1

Titan 1.0.0 と Cassandra をバックエンドとして使用しています。

ノードとこれらのノード間のエッジとして位置データ (緯度、経度) があります。ノード A からノード B への最短経路を見つけたい。グラフのサイズが非常に大きい。現在、このクエリを使用して 2 つのノード間のパスを検索しています。

g.V(fromNode).repeat(both().simplePath()).until(is(toNode)).limit(1).path().fill(list);

このクエリは非常に非効率的で、パス サイズが 10 を超えるとメモリ エラーが発生します。最短パス アルゴリズムについて読んだ後、A* の実装はダイクストラの実装よりも実現可能であることがわかりました。

これで、JUNG を使用して TitanGraph をメモリにロードし、独自の A* を実装して最短パスを取得できます。しかし、グラフ全体をメモリ内に置きたくありません。

TitanGraph に A* を実装する方法を教えてください。API を使用してグラフをクエリする必要がありますか、または最初にグラフをメモリにロードしてから、インメモリ グラフで A* を実行する必要があります。

他の提案にも感謝します。

4

1 に答える 1