[解決済み】パックマン:主にどのようなヒューリスティックが使われているのですか?
質問事項
A*、BFS、DFSなどの他に、パックマンでよく使われる良い経路探索アルゴリズム/ヒューリスティックは何ですか?パックマンが見つけるべき果物が1つ以上ある場合、私が挙げたものはうまくいかないと思うのですが。
パックマンができるだけ少ない歩数で迷路をクリアできるような、良い経路探索アルゴリズムが欲しいのです。目安になるものを探してみましたが、今のところ見つかりませんでした。マンハッタン距離のA*はどこでも言及されていますが、取得する果物が1つ(または2つ?あるいは数個まで?)しかない迷路にしか使えません。
ちなみに、シンプルに、幽霊がいない前提で。
初代パックマンの問題からいくつか例を挙げます。 最初 , 第二 と サード
解決方法は?
コメントによると、探しているのは 最短経路 . この問題は、以下のバリエーションです。 ティーエスピー であり、平面グラフの NPハード .
に対する可能なヒューリスティック関数
A*
問題を解決することができるが
許容される
[従って、見つかった経路が最適であることは保証されない]。
すべてのフルーツからエージェントまでのマンハッタン距離の総和。
また、エデュケーション可能なヒューリスティックとして、以下のものを使用することもできます。
#fruits
- が、時間がかかる。
最適なものを探すとなると、まあ......難しいですね。あなたは <強い 果物のあらゆる組み合わせに挑戦 というように、「移動距離の合計」を確認します。この解答は 果物の個数の階乗 もしそれが20より大きいなら、素朴なブルートフォースでは時間がかかりすぎます。この問題を解決するには 問題をTSPに縮小する そして、指数関数的でもある動的プログラミングによる解決策や、TSPのヒューリスティックな解決策を利用するのです。
また、非許容的なヒューリスティック解を改良して いつでも使えるアルゴリズム :
繰り返し実行
A*
ヒューリスティック関数を減少させながら
:
h(v) = h'(v) / m
ここで
h'
はA*の最後の繰り返しに関するヒューリスティック関数であり
m > 1
. これは、ある時点で、あなたのヒューリスティック関数が
h
が許容され、見つかった解が最適となる。しかし、各反復は前のものよりもずっと長くかかると予想される(指数関数的に長くなる...)。
関連
-
[解決済み】クイックソートとヒープソートの比較
-
[解決済み] ポイントルック アット ポイント
-
[解決済み] グラフにおいて最小容量が最大となる経路の探索
-
[解決済み] 決定論的クイックソートとは何ですか?
-
[解決済み] Bogosort (a.k.a Monkey Sort)よりも悪いソートアルゴリズムはあるのか?[クローズド]
-
[解決済み] は、「減少しない」列が「増加する」のか?
-
[解決済み] グラフが半連結であるか否かを判定する
-
[解決済み] k-meansの時間計算量はどの程度ですか?
-
[解決済み] 再帰性 T(n) = T(n^(1/2)) + 1
-
[解決済み】Redisに使用されている基礎的なデータ構造は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Quickselectの時間の複雑さを説明する
-
[解決済み】whileループの時間複雑性とは?
-
[解決済み] T(n) = 2T(n/2) + O(n) からO(nlogn)を得る方法
-
[解決済み] 簡単:T(n)=T(n-1)+nを反復法で解く。
-
[解決済み] 解いてみてください。T(n) = T(n-1) + n [重複] とする。
-
[解決済み] 再帰性 T(n) = T(n^(1/2)) + 1
-
[解決済み] 整数の絶対値の計算方法
-
[解決済み] クイックソートとマージソートの比較 [重複]。
-
[解決済み] ある問題がNP完全であることをどのように証明するか?
-
[解決済み] 二分探索木におけるk番目の最小要素を最適な方法で探す