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