アルファベータを強化する最良のアルゴリズム?


8

私はAIを勉強しています。私の先生はチェスのようなゲームのソースコードをくれて、それを強化するように頼みました。私の課題は、そのゲームに実装されているアルファ/ベータアルゴリズムを改善することです。プログラマーはすでに転置テーブルを使用しています。MTD(f)はalpha / beta + memoryです(MTD(f)は私が知る限りでは最高のアルゴリズムです)。では、アルファベータ検索を強化するためのより良いアルゴリズムや、ゲームのコーディングにMTD(f)を実装するための良い方法はありますか?

回答:


6

次に、より具体的に一般的にお答えします。まず、私の経験では、教授が尋ねるより良い方法があります。私はすぐに本に行き、問題のアルゴリズムの不足として著者が指摘したものを探します。次に、過去に役立った最適化について検討します。

alpha-betaのようなツリー検索アルゴリズムの場合、検索の数を減らす、またはより可能性の高い場所を最初に検索するようにするヒューリスティックを追加することを検討します。

過去の結果に基づいて、ツリーで取ることができるパスに重みを割り当てます。パスが過去に高いスコアをもたらした場合、それはおそらく、再び進むための良いパスです。要するに、短い話ですが、ヒューリスティックをパスに追加し、アルゴリズムが早く終了できるように、それらを使用することを選択します。

特定のアルゴリズムについてはあまり覚えていないことに注意してください。これはツリーであり、単純なアプローチではこのヒューリスティックは使用されません。



そのように見える。アプローチはすべて同じなので、将来の問題を解決するために、具体的ではない答えを出すようにしました。本当の問題は、risaがアルファ-ベータ最適化を知らないということではなく、特にAIにおいて、これは非常に検索に関連するフィールドであるため、最適化の一般的なアプローチを確認する必要があるということです。
ブランドン、2011

4

ヌルムーブプルーニングやレイトムーブリダクションについては触れませんでした。これらは実装がかなり簡単で、アルファベータプルーニングよりも検索サイズの削減にさらに効果的です。地平線の影響を緩和するには、検索拡張機能も重要です。特に静止検索は、チェスAIにとって非常に重要なコンポーネントです。


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