Alpha Beta修剪返回修剪后的值

时间:2020-10-14 23:55:46

标签: alpha beta pruning

我是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, nodeIndex * 2 + i, 
                        True, values, alpha, 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,3,7,3,3,2,2] 
print("The optimal value is :", minimax(0, 0, True, values, MIN, MAX)) 

0 个答案:

没有答案
相关问题