欢迎来到博弈论(Game Theory)的世界!
欢迎来到离散数学中最引人入胜的章节之一。虽然这个名称可能会让你联想到桌游或电子游戏,但博弈论实际上是经济学家、军事战略家和生物学家用来模拟冲突与合作的强大工具。
在本章中,你将学习如何分析那些涉及两位“博弈者”作出决策的情况,且每个人的结果都取决于对方的选择。如果刚开始觉得这有点像逻辑谜题,别担心,我们会一步步拆解它!
1. 收益矩阵(Pay-off Matrix)与零和博弈(Zero-Sum Games)
我们在这里研究的每一场游戏都是零和博弈。这意味着一方赢得多少,另一方就输掉多少。游戏中的“财富”总额始终保持为零。
我们使用收益矩阵来表示这些游戏。按照惯例,矩阵中的数字显示的是列博弈者(Row Player)的收益。如果数字为负,则意味着列博弈者输掉了该金额(而行博弈者赢得了该金额)。
关键概念:
- 列博弈者(Row Player, R): 总是试图最大化自己的收益。
- 行博弈者(Column Player, C): 总是试图最小化列博弈者的收益(因为 R 的获利即是 C 的损失)。
快速小结:
矩阵始终是从列博弈者的角度编写的。高数值对列博弈者有利;低数值对行博弈者有利。
2. 简化矩阵:优势论点(Dominance Argument)
有时候,矩阵比实际需要的更大。我们可以使用优势(Dominance)来简化它。如果存在另一种策略,无论对手做什么,它总是更好或相等,那么原本的策略就是“受支配的(dominated)”。
如何简化:
- 针对列: 如果第 1 列的每个元素都小于或等于第 2 列的对应元素,则第 1 列是受支配的。删掉它!(列博弈者绝对不会选择它)。
- 针对行: 如果第 1 行的每个元素都大于或等于第 2 行的对应元素,则第 1 行是受支配的。删掉它!(记住:行博弈者想要的是更小的数字)。
记忆技巧: 列=“越大越好”。行=“越小越精明”。
关键小结:
务必先检查是否有优势策略。这能为你节省大量后续的计算时间!
3. 纯策略:保险策略与稳定解
在投入复杂的数学计算之前,我们需要检查是否存在纯策略(Pure Strategy)。这是指两位博弈者都能找到一个始终坚持采取的单一行动。
保险策略(Play-Safe Strategy):
- 列博弈者(Maximin): 对于每一列,找出最小值。然后,从这些最小值中选择最大值。
- 行博弈者(Minimax): 对于每一行,找出最大值。然后,从这些最大值中选择最小值。
稳定解(鞍点 Saddle Points):
如果 Maximin = Minimax,该游戏就有一个稳定解或鞍点。在这种情况下,两位博弈者都没有动机去改变他们的行动。这个数值也被称为游戏价值(Value of the Game, V)。
你知道吗? 鞍点的名称源于山径的形状(马鞍)——它是山脊上的最低点,却是山谷之间最高的地方!
纳什均衡(Nash Equilibrium):
纳什均衡是指一组策略,其中任何博弈者在其他博弈者策略不变的情况下,单方面更改自己的策略都无法获利。在具有稳定解的零和博弈中,鞍点就是纳什均衡。
关键小结:
如果 Maximin = Minimax,游戏就解开了!无需再进行进一步计算。
4. 混合策略:当没有稳定解时
如果 Maximin 不等于 Minimax 怎么办?这种情况下,博弈者不应该坚持单一行动,否则会被对手预测到。相反,他们会使用混合策略(Mixed Strategy),以一定的概率采取不同的行动。
A. 解 2x2 游戏(联立方程)
假设列博弈者以概率 \(p\) 采取策略 \(R_1\),并以概率 \((1-p)\) 采取 \(R_2\)。我们要找到一个 \(p\) 值,使得无论行博弈者怎么做,期望收益都相同。
逐步教学:
- 将 \(p\) 和 \((1-p)\) 分配给列博弈者的选项。
- 计算若行博弈者采取 \(C_1\) 时的预期收益。
- 计算若行博弈者采取 \(C_2\) 时的预期收益。
- 将这两个算式设为相等,然后解出 \(p\)。
B. 解 2xN 游戏(图解法)
如果列博弈者有 2 个选项,但行博弈者有很多选项,我们就使用图表。
- 设 x 轴为 \(p\)(从 0 到 1)。
- 对于行博弈者的每一种策略,画一条代表列博弈者预期收益的线。
- 找出所有这些线的下边界(lower boundary)(因为行博弈者会试图最小化列博弈者的收益)。
- 这个下边界上的最高点就是列博弈者的最佳 \(p\)。
刚开始觉得困难也不用担心! 只要记住:列博弈者想要的是图表中“最低部分的最高点”。
关键小结:
混合策略是用来让对手无法预测。我们计算概率以确保获得一个保证的平均“游戏价值”。
5. 进阶策略:单纯形法(Simplex Method)重构
对于比 2x2 或 2xN 更大的游戏,简单的代数和图表是不够的。我们必须将游戏转化为线性规划(Linear Programming)问题,并使用单纯形算法来解决。
流程:
- 给矩阵中的所有元素加上一个常数,确保它们全部为正数(这不会改变策略,只会改变最终价值)。
- 定义变量 \(x_1, x_2, ... x_n\),其中 \(x_i = \frac{p_i}{V}\)。
- 目标变为最大化 \(P = x_1 + x_2 + ... + x_n\)(这等同于最小化游戏价值)。
- 根据矩阵的行建立约束条件。
常见错误: 忘记加上常数以使所有值变为正数。在这种设置下,单纯形法无法直接处理负值的“价值”变量!
关键小结:
大型游戏其实就是复杂的优化问题。我们利用单纯形法来找出多种策略下的“最佳组合”。
最后总复习
- 零和博弈: 我的收益 = 你的损失。
- 优势: 删除“劣势”列(低值)和“劣势”行(高值)。
- 保险策略: 列取 Maximin,行取 Minimax。
- 鞍点: 当 Maximin = Minimax 时,游戏稳定。
- 混合策略: 当没有鞍点时,使用概率(\(p\) 和 \(1-p\))。
- 价值 (V): 若双方皆采取最佳策略,列博弈者预期能赢得的平均金额。
鼓励的话: 你一定行的!先练习识别鞍点——它们是博弈论题目中“唾手可得”的分数!