私はCS188を公開し、edx.orgにアクセスしています。今、私はここに示すように、すべてのペレットを食べるためにA *探索のためのヒューリスティックを開発する必要があります。 A *アルゴリズムのヒューリスティックが許容できないのはなぜですか?
私は(許容し、一貫性の両方として)、仕事と確信していた私のヒューリスティックは、次のように行ってきました:
- は、ペレットが食べていないが0
- はパックマン
- の現在位置とPOSを初期化することが時間と呼ばれるヒューリスティックアキュムレータを初期化:
- ASTAR検索(ヒューリスティックとしてマンハッタン距離)
- を使用して、POSから最も近いペレットをペレット
私はまた、以前に計算された距離をキャッシュするので、最も近いペレットを見つけるためのastar探索は、前に状態の別の計算で前に行われていれば完了しません。問題を非常に迅速に解決することができ、結果は最適です。
このアルゴリズムをオートグラードで使用すると、許容性テストに失敗します。
問題の解決方法を求めているわけではありません。私の現在の解決策はなぜ受け入れられないのですか?私の頭の中の絵の例を見ると、ヒューリスティックはコストを過大評価することはありません。
誰もがこれを理解することができ、あなたの意見が大変ありがとうございました。
ちょうどあなたの距離機能は壁を正確に説明していますか? – Leeor
**すべてのものは、ちょうど最寄りのペレットに行くのではなく、Aスターの検索を意図したものではありませんか? – Dukeling
@Dukeling検索はどのようにしてA *になりますか?検索のための単一の「目標」はありません。 @ Zach:問題や質問の正確な説明を投稿したりリンクしたりできますか?マンハッタンの距離は間違いなく許容できるはずです。おそらくあなたのコードにはオフ・バイ・ワンのエラーがあるので、途中に障害物がない場合のヒューリスティックは実際のコストよりも大きいですか? –