可以在expectiminimax算法中实现修剪吗?

时间:2013-11-15 05:23:19

标签: artificial-intelligence alpha-beta-pruning expectiminimax

我目前正在使用expectiminimax算法,该算法在我目前的情况下运行良好:

max -> min -> chance -> max -> min -> chance -> (repeat)

我不能以任何方式做到

max/min -> Chance -> (repeat)

由于游戏的运作方式。

如果我继续转换算法,我觉得alpha会变得不准确。

使用我当前的设置实现修剪(除了地平线效果)是否有任何副作用,或者我只是过度思考?

2 个答案:

答案 0 :(得分:0)

我不确定你要尝试哪种游戏,但听起来确实很有趣。当我们对任何节点的分支因素一无所知或游戏如何进行时,很难得出一个好的答案。我认为这取决于你的游戏。

我在步步高游戏中尝试了不同的修剪方法,基于这种经验我真的认为搜索算法的结果取决于机会节点对游戏期望的影响程度与最小和最大节点的数量相比改变了期望。

如果机会节点可以大幅改变游戏的期望(每个掷骰子的高变化)但是五六个选择之间的动作并没有太大改变情况,那么我认为你不应该担心太多

然而,如果相反,机会节点基本上只是在不影响游戏结果预期的情况下向前推进游戏,而游戏移动(或动作)确实很重要,我认为你可以获得很多好处搜索算法。

同时检查* -minimax算法。 (Bruce Ballard 1983)

同样的事情适用于Expectiminimax和* -minimax作为普通的minimax。首先尝试假定的最佳移动(从某些启发式算法)来创建截止值,但您还应尝试启发式命令机会节点中的机会结果。

当你开始测试时,这实际上非常有趣,但获得好答案的唯一方法就是让你的手指变脏并试一试。

祝你好运!

答案 1 :(得分:0)

看来修剪仍然存在于这种环境中,我有严重的疑虑,但到目前为止一切都已经检查过了。也就是说,非修剪算法和修剪算法中的所有测试用例都在较少的节点中使用相同的启发式提供相同的移动。

我还发现,在我的情况下,我会放弃对用户的机会节点的控制(如果对于某些事件,它们可以确定可接受的损失)。如果该能力有95%的几率命中并且有5%的机会错过用户可能认为这5%可以忽略不计并忽略错失机会,这并不意味着启发式被视为其价值的100%,但是保持95%。在极少数情况下,在环境中使用1种能力可能会产生16种可能的结果,我希望能够灵活应对这种情况。

至于游戏,至少在游戏风格方面与神奇宝贝相似。