JUNG APIを使用して、中規模のグラフ(20〜100ノード)の複数のノード間の最短パスを計算します。現在、ノードを反復処理しており、単純な「ShortetsPath」関数を使用して、2つのノードの最短パスを計算しています。最短パスはすべてArrayListに入れられます。
UnweightedShortestPath<Vertex, SEdge> dist = new UnweightedShortestPath<Vertex, SEdge>(undir);
ArrayList<Vertex> tv = new ArrayList<Vertex>(); // contains nodes for shortestpath
ArrayList<Integer> distances = new ArrayList<Integer>(); // for the distances
for (int j = 0; j <tv.size()-1;j++){ //iterate over nodes
Vertex one = tv.get(j);
for (int k = j+1; k<tv.size();k++){ //iterate over next nodes
Vertex two = tv.get(k);
Number n = dist.getDistance(one, two);
int d;
if (n == null) {
d = 5000000;
}
else {
d = n.intValue();
}
distances.add(d);
}
}
多くのグラフやノードで計算する必要があるため、計算を高速化したいと思います。私の知る限り、JUNGAPIで使用できるのはダイクストラだけです。だから私の質問は次のとおりです:パフォーマンスを向上させるためにダイクストラを使用できますか?JUNG APIで他のアルゴリズムを利用できますか?最短経路に対してより多くの異なる方法を提供する別のグラフ実装を使用することは理にかなっていますか?
これまでのところありがとう:)