Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Lecture 9 一般策略式博弈的求解 II:纳什均衡

计算纳什均衡:第一条线索

命题 在一个 $n$ 人博弈中,策略组合 $x^\ast$ 是一个纳什均衡,当且仅当存在 $w_1, \cdots, w_n \in \mathbb{R}$,使得以下条件成立:

  1. 对所有玩家 $i$,以及每个 $\pi_{i, j}\in {\rm support}(x_i^\ast)$,都有 $U_i(x_{-i}^*; \pi_{i, j}) = w_i$;并且
  2. 对所有玩家 $i$,以及每个 $\pi_{i, j} \notin {\rm support}(x_i^\ast)$,都有 $U_i(x_{-i}^*; \pi_{i, j}) \leq w_i$。

:这样的 $w_i$ 必然满足 $w_i = U_i(x^\ast)$。

使用我们的第一条线索

  • 假设我们以某种方式知道了某个纳什均衡 $x^\ast = (x_1^\ast, \cdots, x_n^\ast)$ 的支撑集 ${\rm support}_1 \subseteq S_1, \cdots, {\rm support}_n \subseteq S_n$。
  • 那么,利用命题 1,为了找到一个 NE,我们只需要求解下面这个约束系统
    1. $\forall$ 玩家 $i$,并且 $\forall j \in {\rm support}i$,$U_i(x{-i};\pi_{i,j}) = w_i$;
    2. $\forall$ 玩家 $i$,并且 $\forall j \notin {\rm support}i$,$U_i(x{-i};\pi_{i,j}) \le w_i$。
    3. $\forall$ 玩家 $i = 1, \cdots,n$,$\sum_{j=1}^{m_i}x_i(j) = 1$。
    4. $\forall$ 玩家 $i = 1, \cdots,n$,并且对 $j \in {\rm support}_i$,$x_i(j) \ge 0$。
    5. $\forall$ 玩家 $i = 1, \cdots,n$,并且对 $j \notin {\rm support}_i$,$x_i(j) = 0$。
  • 这个系统有 $\sum_{i = 1}^n m_i + n$ 个变量

    \[x_1(1),\cdots, x_1(m_1), \cdots, x_n(1), \cdots, x_n(m_n), w_1, \cdots, w_n\]

我们如何找到 ${\rm support}_1 \& {\rm support}_2$?直接

在 2 人博弈中寻找 NE 的第一个算法

$\text{Input}$:一个 2 人策略式博弈 $\Gamma$,由所有 $s\in S_1$ 和 $s^\prime \in S_2$ 对应的有理数收益 $u_1(s, s^\prime)$ 与 $u_2(s, s^\prime)$ 给出。(也就是说,输入是 $2 \cdot m_1 \cdot m_2$ 个有理数。)

$\text{Alogrithm}$:

  • 对所有可能的 ${\rm support}_1\subseteq S_1$ 和 ${\rm support}_2 \subseteq S_2$:
    • 检查对应的 LP 是否有可行解 $x^\ast, w_1, \cdots, w_n$。(例如使用 Simplex)
    • 如果有,停止:该可行解 $x^\ast$ 就是一个纳什均衡(并且 $w_i = U_i(x^\ast)$)。

命题:每个有限 2 人博弈都有一个有理数 NE。(此外,这些有理数不会太大,也就是说,它们是多项式大小的。)

这个算法可以很容易地改成不仅寻找任意 NE,而是寻找一个好的 NE。例如:

寻找一个最大化效用社会福利的 NE:

  1. 对每一组支撑集,在求解 LP 约束时同时最大化目标函数

    \[f(x,w) = w_1 + \cdots + w_n\]
  2. 记录遇到过的最佳 NE,并在检查完所有支撑集后输出最优 NE。