I currently have another questionは、Javaでのパス検索と関係があります。しかし、私はこれが別の質問だと感じています。複数の可能なエンドポイントで2次元経路を見つけるか?
私はゲームを作っています。パス発見は、複数の可能なエンドポイントに対処できる必要があります。私が見つけたすべての経路発見アルゴリズムとチュートリアルには、1つの終点しかありません。
この変更は、既存のコードのビットに微調整するのが簡単か、ゼロから自分自身を作成する方が良いですか?
I currently have another questionは、Javaでのパス検索と関係があります。しかし、私はこれが別の質問だと感じています。複数の可能なエンドポイントで2次元経路を見つけるか?
私はゲームを作っています。パス発見は、複数の可能なエンドポイントに対処できる必要があります。私が見つけたすべての経路発見アルゴリズムとチュートリアルには、1つの終点しかありません。
この変更は、既存のコードのビットに微調整するのが簡単か、ゼロから自分自身を作成する方が良いですか?
A*
を使用していて、グラフ内にゴールとみなせる複数の頂点がある場合は、各ゴールまでの距離を見積もり、最小値を使用できます。 A*
は、目標までの実際の距離を過大評価しない限り有効です。
この特別な動作により、独自のA*
実装を作成する可能性があります。それは多くのコードではありません。おそらく大学生IIRCの宿題の1日か2日です。
私はゲームについてよく分かりませんが、Floyd-Warshallは複数エンドポイントの最短経路アルゴリズムです。
ビットオーバーキル。可能な限りすべてのペアを取得します。それはそれらのN *(N-1)です。 – MSalters
実際に動作しますか。 A *は基本的にDijkstraを改善する方法です。一般的な典型的なケースを最適化します。 2つの目標が出発点の反対の場合、少し遅くなる可能性があります。あなたは一点に素早く進んで、相手側の多くの点をチェックする必要があります。しかし、それは避けられません。 – MSalters