Для повышения производительности Минимакса алгоритма с альфа-бета отсечением, я реализовал Итерационное Углубление:Реализация итеративного углубление
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;
}
где метод iterativeDeepening
просто возвращает идентификатор лучшего хода.
Во-первых, я не уверен, что это правильный способ реализации итерационного углубления.
Во-вторых, я заметил, что ИИ начал делать неправильные ходы. Возможно ли, что Итерационное углубление влияет на принятие решений?
При работе с таблицами транспонирования и итерационным углублением я измеряю значительные улучшения скорости алгоритма, но я действительно не хочу жертвовать качеством ИИ для скорости.