如何解决Alpha Beta修剪返回修剪后的值
我是python的新手,我试图对一组值执行alpha-beta修剪,我的输出应该是从树中修剪的值,这是输出返回根节点的最佳值的代码,但是我希望输出是被修剪的子节点的值。如果有人可以引导我完成该操作,那将是非常不错的。
谢谢
示例: 输入: 2 4 13 11 1 3 3 7 3 3 2 2 输出: 3 6 7 10 11
代码:
MAX,MIN = 1000,-1000
def minimax(深度,nodeIndex,maximizingPlayer, 值,alpha,beta):
# Terminating condition. i.e
# leaf node is reached
if depth == 3:
return values[nodeIndex]
if maximizingPlayer:
best = MIN
# Recur for left and right children
for i in range(0,2):
val = minimax(depth + 1,nodeIndex * 2 + i,False,values,alpha,beta)
best = max(best,val)
alpha = max(alpha,best)
# Alpha Beta Pruning
if beta <= alpha:
break
return best
else:
best = MAX
# Recur for left and
# right children
for i in range(0,2):
val = minimax(depth + 1,True,beta)
best = min(best,val)
beta = min(beta,best)
# Alpha Beta Pruning
if beta <= alpha:
break
return best
驱动程序代码
如果名称 ==“ 主要”:
values = [2,4,13,11,1,3,7,2,2]
print("The optimal value is :",minimax(0,MIN,MAX))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。