一. 纳什均衡求解
纳什均衡,又称为非合作博弈均衡,是博弈论中的一个核心概念。纳什均衡描述的是在非合作博弈中,每个参与者都选择了自己的最优策略,并且考虑到了其他参与者的策略选择。在这种状态下,没有任何一个参与者可以通过单方面改变自己的策略来获得更好的结果。
在具有完全信息的有限策略博弈中,如果每个参与者的策略都是对其他参与者策略的最佳响应,那么这个策略组合就构成了一个纳什均衡。 纳什证明了在有限策略的博弈中,至少存在一个纳什均衡。这是通过固定点定理和拓扑学的方法证明的。 在实际应用中,寻找纳什均衡通常涉及到复杂的算法,如最佳响应动态、迭代删除严格劣策略等。
接下来以一个简单的 2x2 双人博弈为例,假设收益矩阵如下:
策略 A | 策略 B | |
---|---|---|
策略 C | (3,2) | (1,4) |
策略 D | (2,1) | (0,0) |
双人有限策略博弈的定义:
一个双人有限策略博弈可以用收益矩阵来表示。假设有两个玩家,玩家 1 有 m 种策略,玩家 2 有 n 种策略。收益矩阵 A 是一个 m × n 的矩阵,其中 表示当玩家 1 选择策略 i,玩家 2 选择策略 j 时,玩家 1 的收益,同时也是玩家 2 的收益的负值(零和博弈情况下)。对于上述收益矩阵,其元素是二元组,代表两个玩家各自的收益。
可以使用 Python 的scipy
库中的优化函数来求解纳什均衡。以下是解决方案代码:
import numpy as np
from scipy.optimize import linprog
# 收益矩阵
payoff_matrix = np.array([[(3,2),(1,4)],[(2,1),(0,0)]])
# 求解第一个玩家的最优混合策略
c1 = [-1, -1]
A_ub1 = payoff_matrix[0].T - payoff_matrix[1].T
b_ub1 = np.zeros(2)
res1 = linprog(c1, A_ub=A_ub1, b_ub=b_ub1)
p1_strategy = res1.x
# 求解第二个玩家的最优混合策略
c2 = [-1, -1]
A_ub2 = payoff_matrix.T[0] - payoff_matrix.T[1]
b_ub2 = np.zeros(2)
res2 = linprog(c2, A_ub=A_ub2, b_ub=b_ub2)
p2_strategy = res2.x
print(f"玩家一的混合策略:{p1_strategy}")
print(f"玩家二的混合策略:{p2_strategy}")
结果如下:
这些结果的含义如下ÿ