プリンストン大学アルゴリズム第2部で与えられたグラフAPIの最短経路を見つけるためにダイクストラアルゴリズムを使用していますが、私はチェビシェフ距離でパスを見つける方法を考え出しました。チェビシェフ距離のダイクストラアルゴリズム
コストが1でノードのいずれかの側に移動することはできますが、トータルコストには影響ありませんが、グラフによれば、赤い円、なぜパス探索行がジグザグなくジグザグ移動するのですか?まっすぐ動く?
A *アルゴリズムを使用すると同じことが繰り返されますか?
プリンストン大学アルゴリズム第2部で与えられたグラフAPIの最短経路を見つけるためにダイクストラアルゴリズムを使用していますが、私はチェビシェフ距離でパスを見つける方法を考え出しました。チェビシェフ距離のダイクストラアルゴリズム
コストが1でノードのいずれかの側に移動することはできますが、トータルコストには影響ありませんが、グラフによれば、赤い円、なぜパス探索行がジグザグなくジグザグ移動するのですか?まっすぐ動く?
A *アルゴリズムを使用すると同じことが繰り返されますか?
あなたは「直線」を優先させたい場合は、アカウントに、前のステップの方向性を取る必要があります。考えられる方法の1つは、グラフG'(V', E')
を作成することです。ここで、V'
はすべての隣接する頂点のペアで構成されます。例えば、頂点v = (v_prev, v_cur)
は、パス内の頂点を定義し、v_cur
はパスの最後の頂点であり、v_prev
は前の頂点です。次に、最短経路アルゴリズムの「距離の更新」ステップで、最良の(変化しない)方向の最良の距離を選択することができます。
また、方向の変更の数に等しい距離にプロパティを追加し、最小限の方向変更数で最小距離の方法を見つけることができます。
DijkstraまたはA *によると、といっても、それは総コストには影響しません。ところで、特に無駄なジグザグを避けたいと思っており、一般的に以前の動きと同じ方向に進む動きは特にありません。
DijkstraとA *には「奇妙なパス」の組み込みの嫌悪感はなく、明示的にコストを気にかけているだけで、暗黙のうちに同じコストをどのように扱うかを意識しています。 2つのノードが等しいコスト(GまたはF、あなたはダイクストラまたはAやっているかどうかに応じて*持っている時はいつでも彼らはまっすぐ移動を好む作るためにタイブレーク