Page QiView

博弈论基础入门教程

博弈论基础入门教程

纳什均衡:定义、计算与应用

纳什均衡是博弈论中最重要的概念之一,由约翰·纳什在1950年提出,并因此获得1994年诺贝尔经济学奖。

正式定义

在n人博弈中,策略组合 $s^* = (s_1^, s_2^, …, s_n^*)$ 是一个纳什均衡,如果对于每一个参与者 $i$,满足:

$$u_i(s_i^, s_{-i}^) \geq u_i(s_i, s_{-i}^*), \quad \forall s_i \in S_i$$

其中:

  • $u_i$ 是参与者 $i$ 的收益函数
  • $s_{-i}^*$ 表示其他所有参与者的均衡策略
  • $S_i$ 是参与者 $i$ 的策略空间

关键特性

1. 自执行性(Self-Enforcing)

一旦达到纳什均衡,没有参与者有单方面偏离的动机。

2. 存在性定理

纳什定理(1950):任何有限博弈(参与者有限,策略有限)至少存在一个纳什均衡(可能是混合策略均衡)。

3. 可能的多重性

一个博弈可能有:

  • 零个纳什均衡(无限博弈可能没有)
  • 一个纯策略纳什均衡
  • 多个纳什均衡
  • 混合策略纳什均衡

计算方法

1. 优势法

通过迭代消除严格劣势策略简化博弈。

2. 最优反应分析

寻找每个参与者对其他参与者策略的最优反应。

3. 代数方法

对于两人有限博弈,可以使用线性规划或代数方法。

4. Python实现示例

import numpy as np
import itertools

def find_pure_nash_equilibria(payoff_matrix_A, payoff_matrix_B):
    """
    寻找两人博弈的纯策略纳什均衡
    """
    n_strategies_A, n_strategies_B = payoff_matrix_A.shape
    equilibria = []
    
    for i in range(n_strategies_A):
        for j in range(n_strategies_B):
            # 检查是否是纳什均衡
            is_equilibrium = True
            
            # 检查参与者A是否有偏离动机
            for k in range(n_strategies_A):
                if payoff_matrix_A[k, j] > payoff_matrix_A[i, j]:
                    is_equilibrium = False
                    break
            
            if not is_equilibrium:
                continue
                
            # 检查参与者B是否有偏离动机
            for l in range(n_strategies_B):
                if payoff_matrix_B[i, l] > payoff_matrix_B[i, j]:
                    is_equilibrium = False
                    break
            
            if is_equilibrium:
                equilibria.append((i, j))
    
    return equilibria

# 示例:性别之战博弈
A = np.array([[2, 0], [0, 1]])  # 参与者A的收益
B = np.array([[1, 0], [0, 2]])  # 参与者B的收益

equilibria = find_pure_nash_equilibria(A, B)
print("纯策略纳什均衡:", equilibria)