[解決済み] アルファ・ベータ・プルーニングを用いた反復深化の実装方法
2022-02-17 11:16:49
質問
Dots and Boxesをプレイするプログラムを書いているのですが、αBetaで考えた手を反復深化方式でヒューリスティック値に基づいて並べることで、時間効率を上げたいと考えています。基本的には、探索木に入り、反復するごとに深さを増していき、各ノードをalphaBetaで評価したいのです。各反復において、私がノードを考慮する順序は、前の反復からのノードのヒューリスティック値によって決定されます。しかし、これがどのように実装されるのか理解するのに苦労しています。どなたか、標準的なalphaBetaプログラムをどのように反復深化を用いた検索に適応させるか、疑似コードを提供していただけませんか?ありがとうございます。
どのように解決するのですか?
さて。
反復的な深化
を実装することはそれほど難しくありません。すでに検索を行う関数がある場合、それを
alphaBetaAtRoot
を一定の距離で検索するもので、距離1から順に繰り返し呼び出すだけです。
for(int distance = 1; distance < MAX_DISTANCE && !outOfTime(); distance++) {
bestmove = alphaBetaAtRoot(position, distance);
}
play(bestmove);
しかし、重要なのは、このように 転置表 . そうでなければ、各検索がゼロの知識から始まるだけで、より良い手の順序の恩恵を受けることはできません。
関連
-
[解決済み】このコンパイルユニットは名前付きモジュールに関連しているため、名前付きパッケージeclipseを宣言する必要があります。
-
[解決済み】Javaの".class期待値"
-
[解決済み】StringUtils.isBlank() vs String.isEmpty()
-
[解決済み】「'void' type not allowed here」エラーの原因とは?
-
[解決済み】Javaクラスの "型に解決できない"
-
[解決済み] hibernate のプロパティが見つかりません。
-
[解決済み] [Solved] java.lang.NoClassDefFoundError: クラスXXXを初期化できませんでした。
-
[解決済み】Javaの未処理例外について
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] 英数字のランダムな文字列を生成する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] if / for / while 内で "Missing return statement" が発生する。
-
[解決済み】popBackStack()とreplace()の操作はどう違うのですか?
-
[解決済み】Android java.lang.IllegalStateException: Android java.lang.IllegalStateException: Could not execute method of the activity
-
[解決済み】Java、"変数名 "を変数に解決することができない
-
[解決済み] java のクラス内のコンストラクタは、指定された型に適用できない
-
[解決済み】スレッド「main」での例外 java.lang.StringIndexOutOfBoundsException: 文字列のインデックスが範囲外です。0 [閉店]
-
[解決済み】Javaの部分文字列:「文字列のインデックスが範囲外」。
-
[解決済み] Hide Utility Class Constructor : ユーティリティクラスはパブリックまたはデフォルトコンストラクタを持つべきではありません。
-
[解決済み】どういう意味か。Serializableクラスがstatic final serialVersionUIDフィールドを宣言していないとは?重複している] [重複している] [重複している] [重複している
-
[解決済み】koch snowflake java recursion