minimax算法怎么能更乐观?

时间:2013-12-13 22:22:13

标签: minimax

Minimax似乎在不失败方面做得很好,但在假设对手不会犯错误时非常宿命。当然很多比赛都是通过平局来解决的,但是一个人应该为#34;尽可能努力推进胜利而不冒失败"即使没有强制获胜也是如此。 也就是说,给定两个具有相同(绘制)结束位置的树,给定最佳游戏,如果对手进行次优移动,或者使对手更有可能,如何调整算法以优先选择最有可能获胜的算法。滑倒?

使用Tic-Tac-Toe的简单示例,一个更强大的玩家通常会设法设置分叉,从而保证胜利。即使对手能够看到这样一个技巧并且事先停止它,他们也更有可能错过,如果你只是将两个X放在空行中并且希望他们暂时忘记他们正在玩什么游戏。同样地,一个强大的玩家往往会从中心或者一个角落开始,但是在简单的极小动作中,没有理由(因为你仍然可以强制平局)而不是选择边缘广场。

2 个答案:

答案 0 :(得分:2)

如果我正确理解你的问题,你就会问如何调整minimax算法,这样它就不会假设对手总是做出最好的动作。

查看expectiminimax algorithm,minimax的变体。 本质上,它不是仅处理最小或最大节点,而是引入机会节点,存储对手将选择当前移动的概率。

为了使其更简单,您可以假设对手以相同的概率选择每个移动(节点)。

简而言之,当对手转身时,不是返回最低分,而是返回他们可能移动的平均分数。

答案 1 :(得分:1)

如何调整" min"节点?

在常规极小极大情况下,当评估对手的位置时,分数是他每次动作的最低分数。可以通过使用与最小值不同的函数来向搜索中注入一些乐观(来自" max"玩家的pov)。 一些可以尝试的事情:

- 使用第二个最差分数

- 使用最小和平均值(或中位数)之间的混合

也许这应该与乐观因素联系在一起,随着节点的深度而增加。这样可以避免在树中较低的对手忽略非常糟糕的移动(在大多数游戏中这意味着更明显的移动)。