Jump Point Search(A * with JPS)は非対角グリッドに適用できますか?


8

私はパスファインディングをスピードアップしようとしていて、JPSでA *を発見しまし。基本的に、タイルをOPENセットに追加する前にプルーニングします。

直線方向のみを許可するグリッドでその手法を使用できますか?

回答:


10

記事を読むと、「結論」セクションに未解決の問題としてリストされていることがわかります。

「さらなる作業の興味深い方向の1つは、六角形やテクスなどの他のタイプのグリッドにジャンプポイントを拡張することです(Yap 2002)。正方形グリッドに与えられたものに類似した一連の剪定ルールを開発することによってこれを達成することを提案します。」

したがって、ジャンプポイント検索を直交グリッドに適用するには、そのグリッドのジャンプポイントとしてカウントするポイントを決定する必要があります。これについて少し考えた後、私は思いますが証明されていません!—次のルール(本書の定義1および2に基づいており、読みやすさを考慮して多少言い換えたもの)が機能する可能性があります。

ノードyは、ノードxからのジャンプポイントであり、方向dを向いています。方向dにまっすぐに移動することでyがxから到達可能であり、次の条件の少なくとも1つを満たすためにxに最も近いノードです。

  1. ノードyは目標ノード、
  2. dは水平移動であり、セルy − d(つまり、方向dに移動するときにyの1ステップ前のセル)に垂直に隣接するセルのいずれかがブロックされている、または
  3. dは垂直方向の移動であり、yから(条件1または2によって)ある水平方向d 'へのジャンプポイントであるノードzが存在します。

もちろん、「垂直」と「水平」という言葉は、上記の定義で交換することができます。重要なのは、開いた長方形領域を横断するための可能なパスの1つだけが考慮されるように、対称性を破る何らかの方法を選択する必要があるということです。HaraborとGrastienは「対角線優先」パスを優先することでこれを行いますが、それができないため、代わりに垂直優先(または水平優先)パスを優先する必要があります。

可能性も、このようなターニング上で、現在の見出しを好む、または多分絶えず回し階段パスを好むなど、より「自然な」パスを生成代替剪定ルールを開発することが可能になります。上記で与えたルールは、Halabor&Grastienルールを私が考えることができる直交グリッドに単純に変換したものです。


+1これはまさに私が答えようとしていたものです。これが依然として最適であることを証明することは可能です。
BlueRaja-Danny Pflughoeft 2013年

2

実際、45度ルートの定義を見ると、45度ルートのパスを45度ターンのないパスに変換することは常に可能です。そしてそれも最適です(矛盾することで簡単に証明できます)。

したがって、最も簡単な方法は、ジャンプポイント検索を実行してから、直交ルートに変換することです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.