Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的alpha-beta修剪_Python_Algorithm_Alpha_Pruning - Fatal编程技术网

python中的alpha-beta修剪

python中的alpha-beta修剪,python,algorithm,alpha,pruning,Python,Algorithm,Alpha,Pruning,在alpha,beta剪枝算法中, 我有一个类,其中定义了函数def getAction(self,gamestate)id。我在def getAction中又增加了2个函数 比如: 我需要把alpha和beta函数放在我和两者中。但是我在哪里定义alpha和beta值呢。如果我在def me和def中定义了alpha和beta,则会发生错误,因为全局名称alpha不存在 如何生成alpha和beta局部变量,或者如何使其能够正确工作?我想您不需要将alpha和beta定义为类的属性 您可能需要

在alpha,beta剪枝算法中, 我有一个类,其中定义了函数def getAction(self,gamestate)id。我在def getAction中又增加了2个函数

比如:

我需要把alpha和beta函数放在我和两者中。但是我在哪里定义alpha和beta值呢。如果我在def me和def中定义了alpha和beta,则会发生错误,因为全局名称alpha不存在


如何生成alpha和beta局部变量,或者如何使其能够正确工作?

我想您不需要将alpha和beta定义为类的属性

您可能需要一个初始化变量的类构造函数

class BAC:
    def __init__(self):
        self.alpha= 'Hello '
        self.beta= 'World!'
    def me(self):
        print self.alpha + self.beta
或者,您可以初始化属性变量,如:

class BAC:
    def me(self,alpha,beta):
        self.alpha = alpha
        self.beta= beta
        print self.alpha + self.beta
如果想要持久化,只需引用类的属性即可

如果选择第一个解决方案:

my_bac = Bac()
print my_bac.alpha + my_bac.beta
输出将是

Hello World!
Hello World!

alpha-beta算法通常被实现为一个更高级别的函数,该函数将初始值分配给alpha和beta,然后将这些值传递给递归(或者非递归的基于堆栈的)搜索函数


上面给出的类解决方案也很好,不过我可能会添加一个方法来重置alpha和beta,这样就不必在每次搜索开始时实例化类实例。

除了有人会为您提供代码外,您是否还需要其他人?
Hello World!
Hello World!