Я создал шахматного бота, используя минимаксную и альфа-бета-обрезку, а также создал графический интерфейс. Но мой бот не может идти очень глубоко, пока не станет очень медленным. Уже на глубине 4 на поиск хода может уйти до 40-50 секунд.
Алгоритм выглядит так:
def minimax(depth,board, alpha, beta, is_max):
if depth == 0:
return evaluation(board)
leg_moves = board.legal_moves
if is_max:
value = -9999
for i_move in leg_moves:
move = chess.Move.from_uci(str(i_move))
board.push(move)
value = max(value, minimax(depth - 1, board, alpha, beta, False))
board.pop()
alpha = max(alpha, value)
if beta <= alpha:
return value
return value
else:
value = 9999
for i_move in leg_moves:
move = chess.Move.from_uci(str(i_move))
board.push(move)
value = min(value, minimax(depth - 1, board, alpha, beta, True))
board.pop()
beta = min(beta, value)
if(beta <= alpha):
return value
return value
Подводя итог, как мне сделать это быстрее?