Dijkstra의 알고리즘을 그래프로 실행하려고합니다. 그래프 모델링 언어 (그래프, 정점 및 가장자리 데이터 구조에 gml 파일)를 읽어야합니다. GML 파일 [ 노드 [ ID 0 라벨 "브리검 영" 값 7 ] 노드 [ ID 1 라벨 "FloridaState" 값 0 ] 연출이 그래프처럼 다소 인 . . . . java에는이 데이터를 클래스에 읽을 수있는 라이브러리가 있습니까? 또는 Java에서 파서를 만드는 방법에 대한 제안?. 나는 jgraphT를 시험하고 있지만 알아낼 수는 없다. GMLImporter 클래스가 있지만 사용법을 이해할 수 없습니다. 버텍스 프로 바이더와 에지 프로 바이더가 필요합니다. 몇 가지 해결 방법을 제안하십시오!자바 용 jGraphT 라이브러리
0
A
답변
0
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"));
VertexProvider
및 EdgeProvider
방법 정점/가장자리 객체를 생성하는 수입을 말한다.