def alphabeta(board, node, depth, a, b, maximizer):
if depth == 0:
return evaluate.node(node)
if maximizer == True:
value = -10**3 # Number that's smaller than what the evaluation algorithm can return
for child in board.get_all_nodes(node):
m = alphabeta(board, child, depth-1, a, b, False)
value = max(value, m)
a = max(a, value)
if a >= b:
break
return value
else:
value = 10**3 # Number that's bigger than what the evaluation algorithm can return
for child in board.get_all_nodes(node):
m = alphabeta(board, child, depth - 1, a, b, True)
value = min(value, m)
b = min(b, value)
if a >= b:
break
return value
Проблема в том, что этот код возвращает оценку наилучшего возможного хода, а не само дерево ходов. Как мне найти лучший ход, не запуская всю функцию заново?
Я пытаюсь создать шахматный движок, основная идея которого заключается в том, что когда я нажимаю кнопку, компьютер делает ход. Вот мой код:
[code]def alphabeta(board, node, depth, a, b, maximizer): if depth == 0: return evaluate.node(node)
if maximizer == True: value = -10**3 # Number that's smaller than what the evaluation algorithm can return for child in board.get_all_nodes(node): m = alphabeta(board, child, depth-1, a, b, False) value = max(value, m) a = max(a, value) if a >= b: break return value else: value = 10**3 # Number that's bigger than what the evaluation algorithm can return for child in board.get_all_nodes(node): m = alphabeta(board, child, depth - 1, a, b, True) value = min(value, m) b = min(b, value) if a >= b: break return value [/code]
Проблема в том, что этот код возвращает оценку наилучшего возможного хода, а не само дерево ходов. Как мне найти лучший ход, не запуская всю функцию заново?
Я занимался оптимизацией своего шахматного движка на Python, когда проводил некоторое тестирование этой позиции (черный движок) с глубиной 4:
доски, и все казалось хорошо, пока я не посмотрел на оценки для каждой позиции. При перемещении белой пешки...
Я пытаюсь сократить свою модель глубокого обучения с помощью глобального сокращения. Оригинальная модель UnPruned весит около 77,5 МБ. Однако после обрезки, когда я сохраняю модель, размер модели такой же, как и оригинал. Может ли кто-нибудь помочь...
Я работаю с односвязным списком в Java, и мне нужно реализовать метод, который может одновременно находить k-й узел с конца и m-й узел с начала списка за один обход. Решение должно быть эффективным и не требовать дополнительного места, кроме...
Я работаю с односвязным списком в Java, и мне нужно реализовать метод, который может одновременно находить k-й узел с конца и m-й узел с начала списка за один обход. Решение должно быть эффективным и не требовать дополнительного места, кроме...