Alpha-Beta プルーニングを使用して Minimax アルゴリズムのパフォーマンスを向上させるために、反復深化を実装しました。
public Integer iterativeDeepening(int maxDepth, boolean isFirstPlayer) {
Integer bestCell = -1;
for (Integer depth = 1; depth <= maxDepth; depth++) {
bestCell = alphabeta.minimax(depth, false, Integer.MIN_VALUE, Integer.MAX_VALUE)[1];
}
return bestCell;
}
where メソッドiterativeDeepening
は単純にベスト ムーブの ID を返します。
まず、これが Iterative Deepening を実装する正しい方法かどうかはわかりません。
次に、AI が間違った動きをし始めたことに気付きました。反復的深化が意思決定に影響を与える可能性はありますか?
転置テーブルと Iterative Deepening を使用している間、アルゴリズム速度の大幅な改善を測定しますが、速度のために AI の品質を犠牲にしたくはありません。