グラフの 2 点間の距離を求める Bellman-Ford 法を使えるライブラリを見つけたので、試してみます。
GitHub - woltsu/deno-graphs: Graph algorithms for deno
Graph …
参考
動作確認
サンプルを元に動作確認してみます。
1 | import { |
指定した点から各点への距離、指定した距離で到達できるかが取得できました。
追加実装
bellmanFord
の実行結果を見てみると、返り値の 2 番目は各点へ到達するために直前の点になっています。
1 | const shortestPaths = bellmanFord(G, a); |
これを使って、経由点の配列を取得します。
1 | import { |
経路を取得できました。
試しに次のように距離を変更して ab 間の距離を 5 にします。
1 | // a--1--c |
1 | import { |
ab 間の距離を大きくしたことで、[ "a", "b", "d", "e" ]
と選択されていた経路が[ "a", "c", "d", "e" ]
に変わりました。
グラフでの経路探索ができました。
NPCをマップ空間上で移動・巡回させるなどさせるとき使えそうです。
このリポジトリ、deno~~
という名前であるものの、Deno の API は介在しないので、ブラウザでの直接読み出しも可能そうです。
ではでは。