问题描述
我是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 (将#修改为@)