我理解Alpha-Beta剪枝在Minimax算法中的应用,但我不知道在Java中由于无法表示∞,在第一次调用Minimax
方法时,Alpha
和Beta
应该设置成什么初始值?(通常我认为可以将它们设为-∞
和+∞
)。我唯一能想到的值是0,但这会不会产生一些不想要的结果?谢谢!
回答:
这取决于你使用的数值类型。-∞
和+∞
仅仅表示可能的最低和最高值。
如果你选择int
类型,相应的值可以是Integer.MIN_VALUE
和Integer.MAX_VALUE
。算法会正常工作。
此外,Java中是可以表示无穷大的。如果你真的想用,可以使用float
类型,它有正负无穷大的值。你可以直接使用Float.POSITIVE_INFINITY
和Float.NEGATIVE_INFINITY
。不过,对于这个算法,我建议还是使用整数类型。因为整数类型可以避免与舍入和精度相关的任何可能的意外行为。