gpt4 book ai didi

java - 使用 jGraphT 读取图形 GML 文件

转载 作者:行者123 更新时间:2023-12-01 09:12:37 28 4
gpt4 key购买 nike

我正在尝试在图表上运行 Dijkstra 算法。我需要阅读图形建模语言(gml 文件到我的图形、顶点和边数据结构中)。gml文件有点像这样图形[ 定向 0 节点 [ 编号 0 标签“杨百翰” 值 7 ] 节点 [ 编号 1 标签“佛罗里达州” 值 0 ]。。。。java 是否有任何库可以将这些数据读取到我的类中?或者关于用 java 创建解析器有什么建议吗?我正在尝试 jgraphT 但似乎无法弄清楚。有一个类 GMLImporter 但我不明白如何使用它。它需要顶点提供商和边缘提供商。请建议一些解决方法!

最佳答案

在 2016 年 9 月发布的 1.0.0 版本中,我们包含了全新的 GML 导入器/导出器。使用它们非常容易。 Jgrapht 中的每个类都附带了广泛的测试套件(只是为了确保我们不会在版本之间破坏任何内容)。这些测试类的好处是它们包含大量示例。例如,请参见类 GmlImporterTest.java

示例:从 GML 文件读取无向加权图:

Graph<String, E> g=new SimpleWeightedGraph<String, E>(DefaultWeightedEdge.class);

VertexProvider<String> vp = new VertexProvider<String>()
{
@Override
public String buildVertex(String label, Map<String, String> attributes)
{
return label;
}
};

EdgeProvider<String, E> ep = new EdgeProvider<String, E>()
{

@Override
public E buildEdge(String from, String to, String label, Map<String, String> attributes)
{
return g.getEdgeFactory().createEdge(from, to);
}

};

GmlImporter<String, E> importer = new GmlImporter<String, E>(vp, ep);
importer.importGraph(g, new File("myGraph.gml"));

VertexProviderEdgeProvider 告诉导入器如何创建顶点/边对象。

关于java - 使用 jGraphT 读取图形 GML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40825995/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com