私は、ドットとボックスを再生するプログラムを作成しています。反復的な深化スキームのヒューリスティックな値に基づいて、アルファベータで考える動きを順序付けすることで時間効率を上げたいと考えています。基本的には、検索ツリーに入り、繰り返しごとに深度を増やし、各ノードをalphaBetaで評価したいと考えています。各連続反復において、ノードを考慮する順序は、前の反復からのノードのヒューリスティックな値によって決定される。しかし、私はこれがどのように実装されるのか理解するのが難しいです。誰かが標準的なalphaBetaプログラムが反復的な深化を使って検索する方法に擬似コードを提供できますか?ありがとうございました!アルファベータプルーニングで反復深化を実装する方法
答えて
まあ、Iterative Deepeningは実装が難しくありません。重要である何
for(int distance = 1; distance < MAX_DISTANCE && !outOfTime(); distance++) {
bestmove = alphaBetaAtRoot(position, distance);
}
play(bestmove);
は、しかし、です:あなたはすでに検索を実行する機能を持っている場合は、のは、あなただけの距離を1から始めて、それを繰り返し呼び出して一定の距離で検索を実行alphaBetaAtRoot
を、それを呼びましょうTransposition Tableを実装します。そうしないと、各検索がゼロ知識で開始されるため、より良い移動順序の恩恵を受けることはありません。
私は以下のリンクを発見しました:https://github.com/nealyoung/CS171/blob/master/AI.java 私はあなたに役立つことを願っています。
ようこそ。リンクのみの回答は、このサイトの基準を満たしていないことに注意してください。 http://stackoverflow.com/help/how-to-answer –
Wow!を参照してください。どうもありがとうございます! –
- 1. 反復深化検索C#
- 2. 反復法の実装
- 3. は、反復深化深さ優先探索に
- 4. 指定された深さ制限なしの反復深化
- 5. インタフェースの実装を反復する
- 6. JavaScriptで反復深化ラッシュアワーアルゴリズムを最適化するのに問題がある
- 7. javascriptでCaesar Cipherの暗号化/復号化を実装する方法
- 8. 反復内でのwait_forの実装
- 9. C#で暗号化と復号化を実装するベストプラクティス
- 10. バイナリ検索ツリーの&mut反復子を実装する方法は?
- 11. Matlabの積分方程式の反復解法を実装する
- 12. RSA暗号化/復号化の実装
- 13. 反復最短ポイントの実装
- 14. poset反復実装の正確
- 15. このJSONを反復でマップして反復する方法
- 16. C++で反復可能な優先度キューを実装する
- 17. Open AI Gymでポリシー反復メソッドを実装する
- 18. 深さ最初のアルゴリズムを反復から反復に変更する
- 19. シェルスクリプトで反復を非同期で実行する方法
- 20. 反復するmysqlデータを非正規化する方法は?
- 21. 反復せずに多くの型に対して同じ方法で特性を実装する方法は?
- 22. SQLで反復を実行する方法
- 23. Cで反復メソッドの実装を避ける
- 24. 反復法を使ってラジオシティ線形システムを実装する方法を知りたいのですが?
- 25. Androidで反応するネイティブマップを実装する方法
- 26. ウォーターでラジオボタンを反復する方法
- 27. mvelでマップを反復する方法
- 28. バイナリツリーの幅を最初に印刷する深さの最初の反復深化アルゴリズム
- 29. 反復的なフォールバックメカニズムを実装するためのデザインパターン
- 30. iOS 10でGCMモードの暗号化と復号化を使用してAESを実装する方法は?
ありがとうございました!私は移調テーブルの必要性を理解していませんでした。私はもう少し読んだことがあり、これは多くの助けになりました。 –