artificial-intelligence - 是否可以对两个以上玩家的非零和游戏使用 alpha-beta 修剪?
问题描述
我在某处读到,minimax 算法可以推广到两个以上的玩家。想象一下,我们有 3 个玩家,他们每个人都想最大化自己的答案。在这种情况下是否可以使用 alpha-beta 修剪?还是没用?为什么?
注意:游戏是非零和游戏。
解决方案
是的,但你必须清楚游戏机制。您给定的树首先显示蓝色移动,然后是绿色移动,红色有最终选择。
这里有两种方法,具体取决于游戏机制。如果每个玩家的唯一目的是最大化他们自己的结果,那么您需要为活跃玩家解决每个级别,只考虑相关的奖励。
在给定的示例中,假设奖励按顺序列出(蓝色、绿色、红色),那么红色对 (2-4)、(9-4)、(0-6)、(0- 2) 将是 R,L,R,R; 呈现green
值 (8-5),(9-3)。从这些中,green
将选择 L,L;blue
获得选择 (6-8) 并将做出 R 选择,并选择 (8, 9, 6) 作为游戏价值。
但是,如果玩家有任何其他动机,例如最大化整体收益(我们在上面碰巧实现了)或赋予净差异价值,那么您将需要使用更复杂的决策算法;同样的逻辑也适用。
对于一个足够复杂的游戏,其中玩家是对立的,并且同时进行秘密行动,您可能必须切换到“一对多”模型,其中每个玩家都假设其他人会做出最小化选择玩家奖励的选择。这种最坏情况的计划将您带回到一个简单的极小极大过程,其中两个对手合并为一个玩家,假装游戏实际上是一个零和问题。
推荐阅读
- vb6 - 打开一个 VB6 项目
- sql - SQLite:使用规范化表生成日期范围(月)的客户计数
- javascript - 用 VueJS 切换排序功能
- vb6 - 如何在 VB 6.0 上运行插入查询?
- html - CSS - 图像无响应
- python - 首先按值对字典排序,然后在 python 3 中按键排序
- python - 我已经安装了 tensorflow 和 tflearn 以在导入期间创建聊天机器人,但它显示错误
- amazon-web-services - 在 aws CDK stepfunction 中调用 LambdaInvoke 时出错
- tfs - 带有附件链接的 TFS 构建摘要通知
- c# - 我的流编写器创建文件但不插入数据?