どの経路探索アルゴリズムがありますか?[閉まっている]


回答:


34

一般に経路探索について調査し、学習したい場合は、複数のアルゴリズムを学習することをお勧めします。全体的な概念を理解したいが、あなたが取り組んでいるものは何でもそれらを適用することができるでしょう。深刻な経路探索を行う必要があるほとんどのゲーム開発者は、独自のカスタムアルゴリズムを作成することになりますが、既知のソリューションに大きく基づいていますが、ゲームはすべて異なり、要件も異なります。

まず、A *、ダイクストラのアルゴリズム、深さ、幅優先の検索など、よく知られているメソッドをいくつか読んでいきます。これらのそれぞれについて、インターネット上には多くの良い情報があります。(http://en.wikipedia.org/wiki/Pathfinding

それらを読みながら、各アプローチの利点と欠点、およびアルゴリズムが処理できるデータのタイプに注意してください。3次元パスに適用できますか?マップ内の地雷を避けたい人間のAIを説明するために変更できますか?

経路探索に関しては、A *はほとんどの人が使用するゴールデンチケットです。あなたはそれがどのように機能するかを確実に知る必要があります。(http://en.wikipedia.org/wiki/A*_search_algorithm

これは、RTSゲームに適用されるA *の良い例です。RTSゲームでは、さまざまなサイズのエンティティを考慮する必要があります。http//aigamedev.com/open/tutorials/clearance-based-pathfinding/

幸運を!


2
プログラマーが既知のソリューションを適応させることを学ばなければならないことについて少しだけ。これは、ゲーム開発者の多くが理解していないものです。
エンジニア

22

経路探索アルゴリズムは、基本的にグラフ検索問題解決アルゴリズムです。

http://en.wikipedia.org/wiki/Pathfinding#Algorithms

最も知られているのは、ジクストラのアルゴリズム:http : //en.wikipedia.org/wiki/Dijkstra's_algorithm

およびそのバリアントA *検索アルゴリズム:http : //en.wikipedia.org/wiki/A*


2
最後のリンクは*がその一部として見られないため壊れています:en.wikipedia.org/wiki/A%2A
Hendrik Brummermann

fixx0r3d両方のリンク
-tenpn

単純なグラフ検索アルゴリズムは、経路探索の基本にすぎません。
マーティンクネフ

13

これは、非常に簡単なダイジェストアプローチでパス検索のすべての側面を調べる素晴らしい開始リソースです。

パス検索に関するアミットの注意事項

...パスファインディングは、出発点から目標までの良いパスを見つける問題に対処します。障害物の回避、敵の回避、コスト(燃料、時間、距離、装備、お金など)の最小化です。移動は、経路を取り、それに沿って移動する問題に対処します。これらの1つだけに努力を費やすことは可能です。極端な例では、単純な移動アルゴリズムと組み合わせた洗練されたパスファインダー...


1
Amitの場合は+1。私は10年以上前に彼のウェブサイトからA *を学びました。
tenpn

素晴らしいイラストも。高品質。

5

パスファインディングはかなり解決された問題です...ここのほぼすべての回答で述べたように、A *のいくつかのバリエーションが使用するものになります。

私にとって大きな課題は、あなたがあなたのをどのように表現したいかです。グリッド、パスノード、ナブメッシュ、階層グリッドまたはその他の複雑な構造などを使用する

具体的な参考資料はありませんが、AIGameDev調べることで、そこにあるものに関するあらゆる種類のアイデアが得られます。

各表現には長所と短所があることを覚えておいてください。「最適なもの」を見つけることではなく、ゲームプレイに最適なものを見つけることです。


5

ウィキペディアには良いリストがあります: Pathfinding

私の知る限り、A *とD *はどちらもかなり人気があります。


動的A *を言及するための+1はD *としてよりよく知られています
デビッドヤング

4

そこにはいくつかのパス検索アルゴリズムがあります。

最も人気のあるものの1つはおそらくA *(A-Star)です。目標に到達するための推定コストを提供できるヒューリスティック関数がある場合、これは非常に便利なアルゴリズムです(例は、ターゲットまでの見通し距離です)。A *は、開始点から終了点までの最短経路を見つけるのに非常に便利です。

それ以外にも、いくつかのアイテムから最も近いアイテムを見つけるのに非常に役立つダイクストラのアルゴリズムがあります。例えば。ゲームのキャラクターに最も近いパワーアップ(または類似のパワーアップ)を見つけたい場合。

他にもいくつかのアルゴリズムがありますが、A *が最も人気があると思います。Mat BucklandはExampleによる Book Programming Game AIに Path-Findingに関する素晴らしい章を持っています。コピーを入手することを強くお勧めします。それ以外の場合は、「スター検索」を検索して、オンラインで大量の情報を見つけます。


ああ。私がこれをタイプしている間、同じ答えが約10億回与えられました。すみません:)
bummzack

言及された本がGoogle-Booksにもあることに気付いただけです(完全ではありませんが)。ここで読む:books.google.com/books
id



2

これは入門書ではありませんが、2009年秋にアルゴリズムクラスでグラフアルゴリズムについて広範囲に議論しました。

アルゴリズム入門、トーマスH.コーメン、チャールズE.レイザーソン、ロナルドL.リベスト、クリフォードスタインによる第3版

http://mitpress.mit.edu/algorithms/

また、MITクラスからのYouTube講義も付随しています。

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures/

第17章、第18章、および第19章では、最短経路について説明しました。


2

ウィキペディア1の [グラフおよびツリー検索アルゴリズム]を参照してください。それらは、ほとんど状態空間検索のバリエーションです。これらすべてを調べて、どこが違うのかを見つけなければなりません。

Collaborative Diffusionもあります。これは、前述の興味深い方法のアルゴリズムの1つです。


+1 Collaborative Diffusionに関するドキュメントは非常に興味深いものです。
エンジニア

1
リンクが壊れていると思います。たぶんこれは正しいものです:scalablegamedesign.cs.colorado.edu/gamewiki/index.php/…–
pek

-2

これはおもしろそうです:

http://www.codeproject.com/Articles/455 A *よりも優れているのでしょうか?


サイトへようこそ。あなたが与えたものは、リンクのみの回答として知られています。答えにメソッドの品質を要約する方が良いでしょう。次に、テキストで単純に熟考するのではなく、単純なA *よりも優れているかどうかを議論することができます。
セスバティン14

あなたの答えは、この質問に対して多かれ少なかれ同等です(残念です)。私はあなたを選抜するつもりはありません。最初の投稿レビューキューであなたのエントリを渡しました。とにかく、あなたの答えを改善することはいつでも歓迎です。
セスバティン14

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