2016-11-27 16 views
0

私はDijkstraのアルゴリズムをグラフ上で実行しようとしています。グラフモデリング言語(グラフ、頂点、エッジデータ構造にgmlファイル)を読み込む必要があります。 GMLファイルは幾分この グラフ よう【ノード [ ID 0 ラベル "ブリガム・ヤング" 値7 ] ノード [ ID 1つの ラベル "FloridaState" 値0 ] に向けられています。 。 。 。 javaには、このデータをクラスに読み込むライブラリがありますか。またはjavaでパーサーを作成するための提案?私はjgraphTを試していますが、それを理解できないようです。クラスGMLImporterがありますが、私はそれを使用する方法を理解していません。 Vertex ProviderとEdgeプロバイダが必要です。いくつかの回避策を提案してください!Java用jGraphTライブラリ

答えて

0

2016年9月からの1.0.0リリースでは、新しいGMLインポーター/輸出業者が含まれています。それらを使用することは非常に簡単です。 Jgraphtのすべてのクラスには、広範なテストスイートが付属しています(リリース間で何かを壊さないようにするため)。これらのテストクラスに関する素晴らしい点は、数多くの例が含まれていることです。たとえば、クラスGmlImporterTest.javaを参照してください。

例:VertexProvider

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")); 

及びEdgeProvider頂点/エッジ・オブジェクトを作成する方法を輸入に教える:GMLファイルから無向重みつきグラフを読み取ります。

関連する問題