Я реализую игру «Крестики-нолики» с искусственным интеллектом, использующим алгоритм Minimax (с альфа-бета-обрезкой) для выбора оптимальных ходов. Однако у меня возникают проблемы с производительностью, когда размер доски увеличивается или количество последовательных оценок, необходимых для победы (k), увеличивается. Текущая реализация отлично работает для досок меньшего размера (например, 3x3), но при увеличении размера доски до более крупных сеток (например, 8x12) производительность значительно падает, особенно с глубиной поиска.Алгоритм работает слишком медленно на больших досках (например, 6x6 или 8x12) с более сложными условиями выигрыша (например, 4 подряд, 5 в ряд). ряд).
Код: Выделить всё
import random
import time
# Check if a player has won
def check_win(board, player, k):
rows = len(board)
cols = len(board[0])
# Check horizontally, vertically, and diagonally
for r in range(rows):
for c in range(cols):
if c
Подробнее здесь: [url]https://stackoverflow.com/questions/79379114/performance-optimization-for-minimax-algorithm-in-tic-tac-toe-with-variable-boar[/url]