MatrixGame

MatrixGame[{{,},}]

指定一个零和双人博弈,当玩家 1 和 2 分别采取动作 ij 时,玩家 1 的收益为 ,玩家 2 的收益为 - .

MatrixGame[{{{,},},}]

指定一个一般和双人博弈,当玩家 1 和 2 分别采取动作 ij 时,玩家 1 的收益为 ,玩家 2 的收益为 .

MatrixGame[{{{,,},}}]

指定一个一般的 n 人博弈,当玩家 1n 分别采取动作 i1,,in 时,玩家 k 的收益为 .

更多信息和选项

  • MatrixGame 也被称为标准型博弈(normal form game)、策略型博弈(strategic form game)、同步行动博弈(simultaneous move game)、双矩阵博弈(bimatrix game)和一次性博弈(one-shot game).
  • MatrixGame 通常用于建模两个或更多玩家同时做出决策的问题. 具体例子包括石头剪刀布等手势游戏,以及囚徒困境和市场博弈等军事和商业博弈.
  • 双人博弈可以用收益向量数组 来描述. 如果玩家 1 有 个可能的动作选择,玩家 2 有 个可能的动作选择,则 的维度是 pi,j,k==.
  • 人博弈可以用深度为 的收益向量数组 来描述. 如果玩家 个可能的动作选择,则 的维度是 pi1,,in,k==.
  • 最佳策略可使用 FindMatrixGameStrategies 得到. 策略的预期收益可使用 MatrixGamePayoff 得到.
  • 可以提供以下选项:
  • GameActionLabels Automatic用于动作的标签
    GamePlayerLabels Automatic用于玩家的标签
  • MatrixGame 的属性包括以下属性,可以通过 g["prop"] 来访问:
  • "ComponentPayoffArray"深度为 维玩家数组向量
    "Dataset"收益的类型集 Dataset
    "GameActionLabels"list of action labels
    "GamePlayerLabels"list of player labels
    "PayoffArray" 维收益向量组成的深度为 的数组
    "Plot"可视化
    "TreeGame"将矩阵博弈转换为树博弈
  • There are two main forms to specify a matrix game, namely as an array of payoff vectors "PayoffArray" with dimensions or as a vector of payoff arrays "ComponentPayoffArray" with dimensions .

范例

打开所有单元关闭所有单元

基本范例  (4)

创建一个零和双人博弈:

显示数据集:

创建一个双人博弈:

显示数据集:

创建一个零和三人博弈:

显示数据集:

通过给出复合收益矩阵,创建囚徒困境博弈:

求纳什均衡:

计算纳什均衡的预期收益:

范围  (10)

基本用法  (3)

创建一个零和双人博弈:

对于零和双人博弈,如果玩家 1 的收益为 pi,j,玩家 1 的收益为 -pi,j

创建一个双人博弈:

显示数据集:

创建一个带有动作标签和玩家标签的双人博弈:

显示数据集:

特殊的零和博弈  (2)

将石头剪刀布游戏表示为有向图:

创建石头剪刀布游戏:

绘图:

创建一个具有有向完全图的零和双人博弈:

显示数据集:

基于规则的博弈  (2)

使用数组规则创建零和双人博弈:

显示博弈图:

使用数组规则创建基于矩阵

的对称双人博弈:

显示博弈图:

分量和和复合数组  (2)

手动创建基于分量数组的复合数组:

使用 MatrixGame 创建基于分量数组的复合数组:

手动创建基于复合数组的分量数组:

使用 MatrixGame 创建基于复合数组的分量数组:

博弈属性  (1)

MatrixGame 对象包含提供有关博弈信息的属性:

"Properties" 属性给出可用属性的列表:

"ObjectType" 属性给出博弈的对象类型:

"Summary" 属性给出关于博弈的简单信息摘要:

"CompositePayoffArray" 属性给出游戏收益数组的复合形式:

"ComponentPayoffArray" 属性给出博弈收益数组的分量形式:

"PayoffArray" 属性也给出博弈收益数组的分量形式:

"PayoffData" 属性给出每个玩家可能获得的收益列表:

"Dataset" 属性以收益数据集的形式给出矩阵博弈:

"Plot" 属性以与 MatrixGamePlot 相同的方式绘制矩阵博弈图:

"TreeGame" 属性将 MatrixGame 转换为 TreeGame

选项  (4)

GameActionLabels  (2)

指定每个玩家的动作名称:

这些名称可以通过 GameActionLabels 访问:

这将改变 "Dataset" 属性的结果:

考虑一个以 "p" 开头的蔬菜产量的随机博弈:

查看数据集:

注意,如果提供的动作标签的数量有误,它们将被忽略:

GamePlayerLabels  (2)

指定每个玩家的动作名称:

这些名称可以通过 GamePlayerLabels 访问:

考虑一个关于三位农民的蔬菜产量的随机博弈:

查看博弈图,注意图形的工具提示基于玩家标签:

应用  (11)

进化/生物博弈  (1)

普通的侧斑蜥蜴的雄性有三种不同的交配策略. 橙色颈雄蜥拥有大量的雌性后宫,蓝色颈雄蜥只守护一个或少数几个雌性并更具保护性,而黄色颈雄蜥则伪装是雌性并可以潜入雌性后宫. 根据实地观察,每种雄性策略的适应度都是已知的,这在很大程度上取决于已经存在的雄性策略的频率. 表示在第 种雄性策略占主导的环境中第 种策略的适应度:

假设为对称博弈,找到分量收益数组:

定义一个对称的双人博弈:

从博弈图可以看出,这个博弈和石头剪刀布有点类似:

在混合种群中,每种策略的适应度可以通过交配博弈的预期收益来确定:

假设下一代每种策略的种群数量与当前种群数量成比例,且其适应度可得出以下进化动态:

从 35% 黄颈蜥蜴、50% 蓝颈蜥蜴和 15% 橙颈蜥蜴开始,在前 100 代中可以观察到振荡模式:

求纳什均衡:

当从纳什均衡开始时,可以避免振荡:

休闲游戏  (3)

石头剪刀布基于循环顺序:石头 > 剪刀,剪刀 > 布,布 > 石头. 创建此游戏的图形表示:

使用图表表示创建游戏:

显示数据集:

计算纳什均衡:

通过图建立优势顺序,将石头剪刀布推广为石头剪刀布火水

将整个游戏创建为零和博弈:

显示数据集:

计算纳什均衡:

莫拉游戏Morra) 是一种手势游戏,可以追溯到数千年前的古罗马和希腊时期. 每位玩家同时伸出任意数量的手指,并喊出一个数字. 如果成功猜出所有玩家亮出的手指总数,则该玩家可以得一分.

双人 m 指 莫拉游戏可以按照以下方式构建:

传统的五指莫拉是一种对称零和博弈,两个玩家有 50 种可用动作:

运动比赛  (1)

在各种比赛中,包括足球、棒球和网球,玩家都面临着没有预先确定的最佳行动的决策. 例如,在足球比赛的罚点球时,踢球者和守门员都应该随机选择向右或向左踢球/移动. 由于点球失误和其他失误,得分概率可能会有所不同. 根据现实世界的数据,一个现实的得分矩阵如下所示:

一个明显的问题是踢球者和守门员应该如何随机化他们的策略:

以及这种情况下的得分频率:

当得分概率改变时,可以进行相同的计算:

有趣的是,优先考虑自己优势的传统观点在大多数情况下并不是最佳策略:

经济学博弈  (3)

三个饿汉去餐馆吃饭,决定平摊账单. 有便宜和昂贵的两种餐点可供选择. 便宜餐点的价格合理,为 10 美元,而昂贵餐点的合理价格应为 40 美元,但实际要价过高,为 50 美元. 将这种情况表示为 MatrixGame

绘制博弈图:

求纳什均衡:

价格战是指这样一种博弈:多个企业都有兴趣提供最低价格,但每个企业的收益都与其选择的价格直接相关. 让我们考虑三家企业之间的价格战,其中每家企业都可以在低价和高价之间做出选择:

可视化博弈图:

尽管各方的共同利益都在于尽可能提高价格,但竞争最终会在低价位形成纳什均衡:

一对夫妇可以从活动 A、B、C 中进行选择. 妻子喜欢 A,丈夫喜欢 B,他们都不喜欢 C. 使用 MatrixGame 来表示这种情况:

绘制博弈图:

求纳什均衡:

军事博弈  (1)

上校布洛托博弈(Colonel Blotto game)是一个双人零和博弈,玩家的任务是同时将有限的部队分配到多个战场上. 在每个战场上,部署最多部队的玩家获胜,最终收益等于获胜战场的总数. 让我们考虑一个有两个战场的上校布洛托博弈,其中布洛托上校有 2 个单位的部队,而敌人有 4 个单位的部队:

绘制博弈图:

求几个纳什均衡:

求每个策略的收益:

交通博弈  (2)

两个玩家同时开车到达一个十字路口. 每个玩家可以选择过马路或停下来. 如果两人都试图过马路,将导致致命事故. 成功过马路的收益为 1,而停下来的收益为 0. 将这种情况表示为 MatrixGame

一般来说,不包含致命事故的策略组合都是纳什均衡:

令人惊讶的是,当在道路网络中添加新的道路时,可能会导致整体交通状况变差,这被称为布雷斯悖论. 已知从 ab 有两条不同的路径,一条经过 c,一条经过 d. 道路 acdb 需要 20 n 分钟,其中 n 是道路上的驾驶员数量;cbad 需要 45 分钟,与驾驶员数量无关. 将道路网络表示为图:

对于两个驾驶员 n=2,找出从 ab 的所有路径:

计算每条路径选择的驾驶员数量,得出四种情况:

计算每种情况所花费的总时间:

最大化负通勤时间:

创建基于收益矩阵的交通博弈:

可视化交通博弈:

两种纯策略分别对应通勤者选择不同的路径:

这些纯策略也给出了最短通勤时间为 65 分钟:

按照上面的交通博弈,一般道路网络的建模和求解可以实现自动化. 这里的 startend 是始顶点和终顶点,每个道路段的容量使用边权重进行编码:

dc 之间添加一条短的高容量道路段:

这种情况定义了一种两名驾驶员的新的交通博弈:

可视化交通博弈:

求解该博弈:

在两条先前存在的路线之间切换的新可能性导致了类似囚徒困境的情形,其中唯一稳定的解导致与受限网络(65 分钟)相比更长的通勤时间(82 分钟):

可能存在的问题  (1)

如果给定的数组之一不是完整数组,MatrixGame 则不会进行运算:

巧妙范例  (1)

此博弈的收益是:一只鹰遇到一只鸽子,收益最高(3),但如果它们遇到另一只鹰,则它们都会得到最低收益(0). 一只鸽子遇到一只鹰,收益为 1,而当两只鸽子相遇时,它们都会得到 2.

构建鹰鸽博弈的收益模拟函数:

在每个时间步骤结束时,所有个体都玩过游戏后,每个种群中随机选择的一名玩家会根据以下规则修改其策略鹰或 鸽:我观看我所在种群中的另一个(随机选择的)个体;当且仅当他们获得的收益高于我的收益时,我才会采用他们的策略. 创建种群内模仿模型可视化(intrapopulation Imitation Model visualization):

生成模拟:

Wolfram Research (2025),MatrixGame,Wolfram 语言函数,https://reference.wolfram.com/language/ref/MatrixGame.html.

文本

Wolfram Research (2025),MatrixGame,Wolfram 语言函数,https://reference.wolfram.com/language/ref/MatrixGame.html.

CMS

Wolfram 语言. 2025. "MatrixGame." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/MatrixGame.html.

APA

Wolfram 语言. (2025). MatrixGame. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/MatrixGame.html 年

BibTeX

@misc{reference.wolfram_2025_matrixgame, author="Wolfram Research", title="{MatrixGame}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/MatrixGame.html}", note=[Accessed: 15-January-2025 ]}

BibLaTeX

@online{reference.wolfram_2025_matrixgame, organization={Wolfram Research}, title={MatrixGame}, year={2025}, url={https://reference.wolfram.com/language/ref/MatrixGame.html}, note=[Accessed: 15-January-2025 ]}