gpt4 book ai didi

python - alpha-beta剪枝算法中的alpha值是如何使用和更新的?

转载 作者:太空宇宙 更新时间:2023-11-04 08:12:25 32 4
gpt4 key购买 nike

我在看帖子Strange behaviour in a function while implementing the alpha-beta pruning algorithm和接受的答案,其中指出:“您的 rootAlphaBeta 不更新 alpha 值”。我想知道代码的必要添加是什么。

最佳答案

要使 alpha-beta 修剪起作用,alpha 值需要传播到深度优先搜索的顶层。这可以通过以下方式实现:初始化一个变量以在潜在移动的循环外存储 alpha,将对 alphaBeta() 的调用结果存储在其中,然后将其用作 alphaBeta()。在看起来像这样的代码中:

def rootAlphaBeta(self, board, rules, ply, player):
""" Makes a call to the alphaBeta function. Returns the optimal move for a player at given ply. """
best_move = None
max_eval = float('-infinity')

move_list = board.generateMoves(rules, player)
alpha = float('infinity')
for move in move_list:
board.makeMove(move, player)
alpha = -self.alphaBeta(board, rules, float('-infinity'), alpha, ply - 1, board.getOtherPlayer(player))
board.unmakeMove(move, player)

if alpha > max_eval:
max_eval = alpha
best_move = move

return best_move

关于python - alpha-beta剪枝算法中的alpha值是如何使用和更新的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19963555/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com