缓存可用于alpha-beta搜索算法吗?

问题描述 投票:0回答:1

我正在研究minimax井字游戏算法。我运行正常,将树中的每个状态都缓存了。

然后我实施了alpha-beta修剪,这似乎影响了游戏。我认为问题在于,如果修剪了任何后代(子代,孙代等),则无法“信任”节点。这是真的吗?

目前,如果它们没有修剪后代,我只是在缓存状态。 This图像显示了我的观点(不是井字游戏)。最大的玩家是向上的三角形,应该选择左侧的移动。但是,如果在alpha-beta修剪期间缓存了右边的移动,则红色三角形的假值将为4,因此右边的移动将被错误地选择。

artificial-intelligence tic-tac-toe minimax alpha-beta-pruning
1个回答
0
投票

如果用“高速缓存”表示换位表,则不能总是信任换位表中的值。也就是说,当将值存储在转置表中时,还需要在该状态下存储用于搜索的alpha和beta值(可能还包括深度)。如果alpha和beta值不相同*,则不能使用转置表中的值。

*实际上,它们不必完全相同,表只需要具有包含要用缓存值替换的当前节点上使用的值的超集的值。

© www.soinside.com 2019 - 2024. All rights reserved.