タグ付けされた質問 「a-star」

3
ワームホールノードで最短パスを見つける方法
これは、コードでやりたいことの例です。ジャンプポイント検索を使用して、緑のノードから赤のノードに問題なく、またはA *でも簡単に取得できることを知っています。しかし、これをワープでどのように計算しますか。 画像では、青のパスを取るときに緑のノードから赤のノードに到達するのに8回の移動しか必要ないことがわかります。青いパスは、紫色のノードから次のノードにすぐに移動します。中央に2移動するスペースは、移動する必要がある2つのワープゾーンの間のポイントです。 黄色のパスまで半分(大まかに)移動するだけでよいので、青いパスを取る方が明らかに高速ですが、プログラムでこれを行うにはどうすればよいですか? この問題を解決するために、使用可能なグラフの周りに複数の紫色の「ワープ」があり、各紫色のポイントがワープする場所とグラフ上のどこにあるかを正確に把握します。 紫色のワープには双方向のものとそうでないものがあります。つまり、片側からしかワープに入ることができず、ワープ後に戻ることができない場合があります。 私は解決策について考えましたが、各ワープポイントまでの距離(一方向のポイントを差し引いたもの)、それらのポイント間の差、およびそれらに近いポイントをチェックすることで問題を計算できると結論付けました。 プログラムは、最初のジャンプから歩くのではなく、2番目のワープを取る方がより有益であることを何らかの方法で把握する必要があります。したがって、6つのスポットを移動してからワープし、残りの8ステップを徒歩で移動する代わりに(ワープをまったく使用しない場合よりも高速です)、6つの動きを取り、2つの動きを2番目のワープに移動します。 編集:青のパスは実際には8回ではなく12回の動きをすることに気付きましたが、問題は同じままです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.