博弈论06——PPAD复杂度问题
这篇幅太难,不是为了考试和搞学术就别看了
这篇我理解了2-3天,看了youtube+B战上6个不同国外老师视频。简单阅览是基本看不懂的(巨佬当我没说)
别自我折磨
需要可帮助理解
自己写完都不想看
PPAD复杂度问题
- 1 Games and Equilibrium 博弈和均衡
- 1.1 历史背景
- 1.2 考虑的问题
- 2 Brouwer's Theorem 布劳威尔定理
- 3 ε-Nash equilibrium
- 3.1 ε-Nash equilibrium 的定义
- 3.2 ε-Nash equilibrium和Nash equilibrium的区别
- 4 α-approximate fixed point(α-近似不动点)
- 5 近似不动点 = ε-Nash
- 5.1 理论理解
- 5.2 公式理解
- 6 PPAD
- 6.1 PPAD 是啥?
- 6.2 PPAD 问题的特点
- 6.3 代表问题:End Of The Line
- 6.4 PPAD图End Of The Line的编码过程(考过)
- 6.4.1 目标(问题本身)
- 6.4.2 输入
- 6.4.3 边 EEE 的定义
- 6.4.4 输出条件
- 7 搜索问题
- English
- 中文
- 说人话
- 8 Sperner 引理 离散化
1 Games and Equilibrium 博弈和均衡
1.1 历史背景
冯.诺依曼(von Neumann)证明了,任何两个参与者的零和博弈都存在这样的均衡。
均衡(Equilibrium): A pair of randomized strategies so that no player has incentive to deviate if the other stays put. 一对随机化策略,使得在对方保持不变的情况下,没有任何一方有动机偏离当前策略。
即使一开始,我们不清楚博弈中是否存在满足纳什均衡的策略,但一定有。
第一个得出这个结论的是20世纪20年代的冯诺依曼,他证明了,如果一个博弈是双人零和博弈,那这个博弈总会存在一个均衡。
不过,当时这个均衡不叫纳什均衡,因为当时纳什还没出生,这个定理被称为最小最大均衡(minmax equilibrium)。后来,当丹齐格(Dantzig)和冯诺依曼一起研究线性规划对偶性时,他们意识到这个定理实际上是强LP对偶性所蕴含的。他们还花了很多年,发现使用线性规划可以计算这些类型的博弈中的均衡。我们知道,这个命题和强LP对偶性是等价的数学命题。因此双人零和博弈中均衡的存在等价于线性规划+对偶
[von Neumann 1928]:在双人零和博弈中,总是存在均衡。 ⇐ 线性规划强对偶性 + 均衡可以通过线性规划在多项式时间内计算出来
纳什证明,任何有限博弈,必然存在纳什均衡。
1.2 考虑的问题
第一个问题
了解问题的复杂性(understand the computational complexity of this problem)。给定一场比赛,找到纳什均衡有多难?
2 Brouwer’s Theorem 布劳威尔定理
给定一个函数,将欧几里得空间的凸、封闭且有界的子集映射到其自身,那它一定有一个在函数下不会移动的点。
Brouwer 不动点定理(Brouwer 1910)
设
f:D→Df: D \to Df:D→D
是从欧几里得空间中凸且紧(即闭且有界)的子集 DDD 映射到自身的一个连续函数,
那么存在一个 x∈Dx \in Dx∈D,使得
x=f(x)x = f(x)x=f(x)
其中 凸且紧:convex and compact = closed and bounded
3 ε-Nash equilibrium
3.1 ε-Nash equilibrium 的定义
纳什均衡近似解,上下&
定义: 如果对任意玩家 iii,换成其他策略后,收益最多只提高 ε\varepsilonε,那么这个策略组合就是一个 ε-Nash equilibrium。
公式表示:
∀i,πi(σ)≥πi(σi′,σ−i)−ε\forall i,\ \pi_i(\sigma) \ge \pi_i(\sigma_i', \sigma_{-i}) - \varepsilon ∀i, πi(σ)≥πi(σi′,σ−i)−ε
其中:
πi\pi_iπi 表示玩家 iii 的收益
σi′\sigma_i'σi′ 表示玩家 iii 改变后的策略
σ−i\sigma_{-i}σ−i 表示其他玩家的策略
核心思想:不要求完全最优,只要“差不多”就行。
3.2 ε-Nash equilibrium和Nash equilibrium的区别
为了解决多人(>2)博弈
精确 Nash equilibrium 的困难
两人零和博弈:用线性规划在多项式时间内精确求出 Nash。
三人及以上的博弈:巨难
——Nash 均衡可能涉及 无理数(比如 2\sqrt{2}2这种),无法精确用有限位二进制存储;
——计算问题属于 PPAD-complete,目前没有已知的多项式时间算法;
——精确搜索需要遍历或计算超多组合,复杂度爆炸。
退而求其次:ε-Nash equilibrium
ε-Nash equilibrium 定义:允许玩家即使改变策略,收益最多只增加 ε。
ε 越小,解越接近真正的 Nash equilibrium。当 ε=0 时,就是真正的 Nash equilibrium。
好处:
计算上更容易:不追求完全精确,而是找一个误差可控的近似解。
理论上可行:用离散化 + Sperner 引理,可以保证在多项式时间内找到近似不动点(从而得到 ε-Nash equilibrium)
近似不动点与 ε-Nash 的关系
Nash 均衡 = 函数 f 的精确不动点。
ε-Nash = 函数 f 的近似不动点(距离真实不动点不超过某个 α)
用 Sperner 引理 找到一个“完全着色”的小单元,就能保证它包含一个近似不动点。
近似不动点带来的策略组合,就是 ε-Nash equilibrium。
4 α-approximate fixed point(α-近似不动点)
定义: 有一个函数
f:S→Sf : S \to S f:S→S
(输入和输出都在集合 SSS 内)。
如果一个点 x∗x^*x∗ 满足:
∥f(x∗)−x∗∥∞≤α\| f(x^*) - x^* \|_{\infty} \le \alpha ∥f(x∗)−x∗∥∞≤α
就称它为 α-近似不动点。
公式解释:
- 这里的 ∥⋅∥∞\| \cdot \|_{\infty}∥⋅∥∞ 是 无穷范数(∞-norm),表示所有坐标差值中的最大值。
- 这个条件的含义是:函数输出 f(x∗)f(x^*)f(x∗) 和输入 x∗x^*x∗ 在每个坐标上都非常接近,最大差距不超过 α。
如果 α=0\alpha = 0α=0,就退化为真正的不动点条件:
f(x∗)=x∗f(x^*) = x^* f(x∗)=x∗
5 近似不动点 = ε-Nash
5.1 理论理解
从博弈-->到函数
设想一个博弈,有 nnn 个玩家,每个玩家的策略是一个概率分布(混合策略),这些策略组合成一个 策略空间(这是一个闭的、有界的、凸的集合)。
现在定义一个 函数 fff:
输入:当前的策略组合 xxx(每个玩家的混合策略)
输出:每个玩家都根据当前策略,调整到自己最优反应方向 后得到的新策略组合
大家都不想改 = 不动点
如果 xxx 是 fff 的不动点,也就是说:f(x)=xf(x)=xf(x)=x
意思是:
经过“每个人都改成自己最优反应”的步骤后,策略没变。也就是说,所有玩家在当前策略下已经是最优的,没有人有动力单方面改变,这恰好就是 Nash 均衡 的定义。
Nash均衡一定存在 & = 不动点一定存在
策略空间是闭、有界、凸的,函数 f 是连续的(因为收益函数是连续的)
Brouwer 不动点定理 保证:这样的 f 在这个空间里一定至少有一个不动点
所以一定存在至少一个 Nash 均衡
把“每个玩家的最优反应”做成一个连续函数 f,f 的不动点就是 Nash 均衡;Brouwer 不动点定理保证 f 一定有不动点,所以 Nash 均衡一定存在。
Nash 定理 可以用 Brouwer 不动点定理 证明:
连续函数在闭、有界、凸集上一定有不动点。
如果能找到一个 近似不动点,就能得到一个 ε-Nash equilibrium。
5.2 公式理解
α-approximate fixed point 是几何上“不动点的近似版本”。
我们真正想要的是博弈中的ε-Nash equilibrium。
在证明里,有一个结论(Fact 6.3):
只要 α 满足一定的大小,就能把 α-近似不动点转成一个 ε-Nash equilibrium。
这个关系公式是:
α=εd2⋅pmax\alpha = \frac{\varepsilon}{d^2 \cdot p_{\max}} α=d2⋅pmaxε
其中:
- pmaxp_{\max}pmax = 博弈中最大和最小收益的差
- ddd
d=∑i∈[n]∣Si∣d = \sum_{i \in [n]} |S_i| d=i∈[n]∑∣Si∣
- 这里 ddd 表示所有玩家的 纯策略总数。
- SiS_iSi 是第 iii 个玩家的纯策略集合,∣Si∣|S_i|∣Si∣ 是它的大小。
- 把每个玩家的纯策略数加起来,就是总的纯策略数量 ddd。
6 PPAD
6.1 PPAD 是啥?
PPAD = Polynomial Parity Argument on Directed graphs
直译:有向图上的多项式时间奇偶性论证
它是计算复杂性理论里的一个复杂度类,用来分类一些搜索问题。一类“总有解”的搜索问题(比如找不动点),但不一定容易算出来
归约关系:
Nash equilibrium →Brouwer →Sperner →End Of The Line →PPAD\text{Nash equilibrium} \ \to \ \text{Brouwer} \ \to \ \text{Sperner} \ \to \ \text{End Of The Line} \ \to \ \text{PPAD} Nash equilibrium → Brouwer → Sperner → End Of The Line → PPAD
已知:
- 精确 Nash equilibrium 是 PPAD-complete
- 含义:它可能非常难算(类似 NP-complete 问题的困难度)
6.2 PPAD 问题的特点
- 一定有解(因为有数学定理保证,比如不动点定理、奇偶性原理)
- 输入是一个特殊的有向图
- 每个顶点最多有一个前驱、一个后继(所以它是由很多链组成)。
- 给定一个起点(有后继但没有前驱)。
任务:找到另一个端点(有前驱没后继,或有后继没前驱)
难点:虽然一定有解,但不一定能多项式时间快速找到
6.3 代表问题:End Of The Line
代表问题: End Of The Line:在一个特殊的有向图里,从起点出发找到另一个没有前驱或后继的点。
想象一个迷宫,规则是:
每个房间最多有一条进路和一条出路。
你知道一个入口(起点)。
问题:找到出路
数学定理告诉你一定有另一个出路,但要在指数多的房间里找出来可能很难。
6.4 PPAD图End Of The Line的编码过程(考过)
6.4.1 目标(问题本身)
一个有向图:每个点最多 1 条入边、最多 1 条出边。已知一个端点(有后继但无前驱的起点)sss。
任务:找出另一个端点(要么无后继,要么无前驱)
6.4.2 输入
输入不是一张完整的邻接表,而是下面这三样:
-
一个正整数 (k)
顶点集合被定义为所有 (k) 位二进制串:
V={0,1}k(共有 2k个点)V = \{0,1\}^k \quad (\text{共有 } 2^k \text{ 个点}) V={0,1}k(共有 2k 个点)
每一个点都被kkk位的二进制串表示了。 -
两个多项式规模的布尔电路(或等价的多项式时间可计算函数)
S,P:{0,1}k→{0,1}kS,\, P:\ \{0,1\}^k \to \{0,1\}^k S,P: {0,1}k→{0,1}k- S(x)S(x)S(x): x 的后继(successor)
- P(x)P(x)P(x): x 的前驱(predecessor)
-
一个指定的起点 s∈{0,1}ks \in \{0,1\}^ks∈{0,1}k(标准做法常取 s=0ks = 0^ks=0k),满足:
- 无前驱:P(s)=sP(s)=sP(s)=s(有的定义写成 ⊥\bot⊥;为保持比特串,这里用“映回自身”表示“没有”);
- 有后继:S(s)≠sS(s)\ne sS(s)=s。
这三样 k、电路 S,P、起点 s 就是图的全部输入。
6.4.3 边 EEE 的定义
对任意顶点 v∈{0,1}kv \in \{0,1\}^kv∈{0,1}k,令 u=S(v)u = S(v)u=S(v)。
如果同时满足
u≠v且P(u)=v,u \ne v \quad \text{且} \quad P(u) = v, u=v且P(u)=v,
就把一条边 v→uv \to uv→u 放进图里;否则 vvv 没有出边。
6.4.4 输出条件
一个点 xxx 是 端点 当且仅当它的入度和出度不同为 1。
用编码可以快速判定:
- 无前继(源点):P(x)=x且 S(x)≠xP(x) = x \ \text{且} \ S(x) \ne xP(x)=x 且 S(x)=x
- 无后继(汇点):S(x)=x且 P(x)≠xS(x) = x \ \text{且} \ P(x) \ne xS(x)=x 且 P(x)=x
EoTL 的任务:
在已知的起点 sss 之外,找到任意一个这样的端点 x≠sx \ne sx=s。
奇偶性(parity)保证:每条路径都有两个端点。
既然给了一个端点 sss,图中必有另一个端点存在——但不保证容易找到,这就是 PPAD 的含义。
7 搜索问题
English
We call a problem a search problem if each instance xxx has a search space SxS_xSx of bit-strings of polynomial length (that is, polynomial in ∣x∣|x|∣x∣) and the valid solutions are given by a non-empty subset Qx⊆SxQ_x \subseteq S_xQx⊆Sx. The set QxQ_xQx must allow a polynomial-time test of membership, i.e., whether a y∈Sxy \in S_xy∈Sx is contained in QxQ_xQx.
We also define reduction between search problems.
A reduction from one search problem Π1\Pi_1Π1 to another Π2\Pi_2Π2 is a pair of polynomial-time computable functions (f,g)(f, g)(f,g), where fff maps instances of Π1\Pi_1Π1 to instances of Π2\Pi_2Π2 and ggg maps solutions of Π2\Pi_2Π2 back to solutions of Π1\Pi_1Π1.
More precisely, for any instance x∈Π1x \in \Pi_1x∈Π1 we have f(x)∈Π2f(x) \in \Pi_2f(x)∈Π2, and for any solution yyy of Π2\Pi_2Π2 on input f(x)f(x)f(x), the string g(x,y)g(x,y)g(x,y) is a valid solution of Π1\Pi_1Π1 on input xxx.
PPAD is the class of all search problems that reduce to EndOfTheLine in the way stated above.
中文
我们称一个问题为 搜索问题:若对每个实例 xxx,存在一个由多项式长度(相对 ∣x∣|x|∣x∣)比特串组成的搜索空间 SxS_xSx,并且有效解由一个非空子集 Qx⊆SxQ_x \subseteq S_xQx⊆Sx 给出;同时,必须能够在多项式时间内判定任意 y∈Sxy \in S_xy∈Sx 是否属于QxQ_xQx。
我们还定义搜索问题之间的 归约。
从搜索问题 Π1\Pi_1Π1 到搜索问题 Π2\Pi_2Π2 的归约是一对多项式时间可计算的函数 (f,g)(f, g)(f,g):函数 fff 将 Π1\Pi_1Π1 的实例映射为 Π2\Pi_2Π2 的实例,函数 ggg 将 Π2\Pi_2Π2 的解映射回 Π1\Pi_1Π1 的解。
更具体地,任意实例 x∈Π1x \in \Pi_1x∈Π1 满足f(x)∈Π2f(x) \in \Pi_2f(x)∈Π2;并且对输入 f(x)f(x)f(x) 的任意 Π2\Pi_2Π2 的解 yyy,都有 g(x,y)g(x,y)g(x,y) 是输入 xxx 的 Π1\Pi_1Π1 的一个有效解。
PPAD 定义为所有能够以上述方式归约到 EndOfTheLine 的搜索问题的集合。
说人话
搜索问题:一坨点集SxS_xSx,里面有部分点是我们要找的点QxQ_xQx。在规定时间内我们能判断任何一个点是不是我们要找的点。
归约:问题1 我们不会解,问题2 会解。把问题1的输入,转成问题2的输入。用问题2计算,把问题2的结果转成问题1的结果。别问为啥能相互转,学过函数懂的都懂。
我真搞不懂,为什么难的学术本质就是高中数学,但包装的鬼都看不懂。所谓故弄玄虚。
8 Sperner 引理 离散化
用 Sperner 引理 离散化:
- 把空间切成小块
- 给每个点涂色
- 找到一个“完全着色”的小块 → 对应近似不动点
找 Nash equilibrium
→ 转成找不动点(Brouwer 定理)
→ 转成找完全着色的网格(Sperner 引理)
→ 转成 End Of The Line
→ PPAD