【问题标题】:Is it possible to use alpha-beta pruning for non-zero-sum games with more than two players?是否可以对两个以上玩家的非零和游戏使用 alpha-beta 修剪?
【发布时间】:2019-04-09 09:45:41
【问题描述】:

我在某处读到,minimax 算法可以推广到两个以上的玩家。想象一下,我们有 3 个玩家,他们每个人都想最大化自己的答案。在这种情况下是否可以使用 alpha-beta 修剪?还是没用?为什么?

注意:游戏是非零和游戏。

【问题讨论】:

  • 这不是stackoverflow意义上的编程相关问题。不过仍然是个好问题。您可能想在stats.stackexchange.com 上提问

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


【解决方案1】:

是的,但您必须清楚游戏机制。您给定的树首先显示蓝色移动,然后是绿色移动,最后选择红色。

这里有两种方法,具体取决于游戏机制。如果每个玩家的唯一目的是最大化他们自己的结果,那么您需要为活跃玩家解决每个级别,只考虑相关的奖励。

在给定的示例中,假设奖励按顺序(蓝色、绿色、红色)列出,那么红色在 (2-4)、(9-4)、(0-6) 对中的四个选择, (0-2) 将是 R,L,R,R;以值 (8-5),(9-3) 呈现 green。从这些中,green 将选择 L,L; blue 获得选择 (6-8) 并将做出 R 选择,并在 (8, 9, 6) 上确定游戏值。


但是,如果玩家有任何其他动机,例如最大化整体收益(我们碰巧在上面实现)或赋予净差异价值,那么您将需要使用更复杂的决策算法;同样的逻辑也适用。

对于一个足够复杂的游戏,其中玩家是对立的,并且同时进行秘密行动,您可能必须切换到“一对多”模型,其中每个玩家都假设其他人将做出最小化选择玩家奖励的选择。这种最坏情况的规划将您带回到一个简单的极小极大过程,其中两个对手合并为一个玩家,假装游戏实际上是一个零和问题。

【讨论】:

  • 不可能,原因如下。正如问题中提到的那样,游戏是非零和游戏。所以玩家之间没有竞争,每个人都想最大化自己的价值。因此 alpha-beta 修剪在这里没有用!
  • 开始概述了您描述的游戏的过程,并给出了在树的每一层做出的详细选择。如果这就是您真正需要的,那么请停止在水平线上阅读;你完成了。
猜你喜欢
  • 2020-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多