我目前正在使用期望极小极大算法,在当前情况下运行得很好:
max -> min -> chance -> max -> min -> chance -> (重复)
由于游戏的机制,我无法执行
max/min -> Chance -> (重复)
如果我继续将算法转换,我觉得alpha值可能会不准确。
在我当前的设置中,除了地平线效应之外,实施剪枝是否会有任何副作用,还是我只是想得太多?
回答:
看起来在这种环境下剪枝仍然有效,我之前有过严重的怀疑,但到目前为止一切都检查过了。也就是说,在不使用剪枝的算法和使用剪枝的算法中,所有测试用例都提供了相同的结果和相同的启发式评估,只是节点更少。
我还发现,在我的情况下,我会将机会节点的控制权交给用户(他们可以决定某些事件是否可以接受的损失)。如果一个能力有95%的命中率和5%的未命中率,用户可以认为这5%是可以忽略的,并忽略未命中率,但这并不意味着启发式评估被视为其100%的值,它仍然保持其95%。在给定的环境中,我遇到过使用一个能力可能产生16种可能结果的罕见情况,我希望在这种情况下有灵活性。
至于游戏,至少在玩法风格上,它类似于《Pokémon》。