《计算理论》学习笔记 II
Lecture 8: Space Complexity
时间复杂度 time complexity
设 \(M\) 是在所有输入上停机的 DTM,\(M\) 的 时间复杂度 time complexity 是 \(f:\N\to \N\),其中 \(f(n)\) 表示输入长度为 \(n\) 的 最大 运行时间。最大运行时间对应的含义是 最坏情况分析 worst-case analysis。
\(\TIM(t(n))\) 表示所有能在 \(\tm{t(n)}\) 时间内被 DTM 判定的语言。\(\NTIM(t(n))\) 表示所有能在 \(\tm{t(n)}\) 时间内被 NTM 判定的语言。NTM 判定语言的时间由任何可能分支的最大时间决定。
定义复杂性类 \(\P = \bigcup_k \TIM (n ^ k)\),\(\NP = \bigcup_k \NTIM(n ^ k)\),\(\EXP = \bigcup_k \TIM(2 ^ {n ^ k})\),\(\NEXP = \bigcup_k \NTIM (2 ^ {n ^ k})\)。
Cobham-Edmonds thesis
任何现实的计算模型都可以用多项式级别的延时相互模拟。
空间复杂度 space complexity
类似时间复杂度定义空间复杂度 \(\SP\) 和 \(\NSP\),其中 \(f(n)\) 表示所用纸带格子数量的最大值。例如 \(\mathrm{SAT}\in \SP(n)\)。
定义复杂性类 \(\L = \SP(\log n)\),\(\NL = \NSP(\log n)\),\(\PSP\) 和 \(\NPSP\)。
那么问题来了,如果输入占据 \(n\) 个格子,那么 TM 如何只用 \(\log n\) 个格子?将输入、输出和工作区隔开,输入只读,输出只写且指针只能向右移动(是否只能向右移动是等价的,因为存在 TM 计算第 \(i\) 位的输出),只有工作区的纸带大小算入空间复杂度。
Example
\[\{a ^ n b ^ n\mid n > 0\} \in \L. \]计数器需要 \(\log n\) 个位置。
一些关于复杂性类的简单关系:
- \(\TIM(f(n))\subseteq \SP(f(n))\)。
- 当 \(f(n) = \O(\log (n))\) 时,\(\SP(f(n))\subseteq \TIM(2 ^ {\tm{f(n)}})\),因为一个停机的 TM 不能重复经过格局,而总共只有 \(2 ^ {\tm{f(n)}}\) 种格局。\(f(n) \cdot 2 ^ {\tm{f(n)}} = 2 ^ {\tm {f(n)}}\)。
- \(\NTIM(f(n))\subseteq \SP(f(n))\)。NTM 的运行时间是最大的猜测数量,而这些猜测可以用大小为 \(\tm {f(n)}\) 的纸带描述。
- \(\NSP(f(n))\subseteq \TIM(2 ^ {\tm{f(n)}})\)。检查格局图上起点能否到达终点。
于是
其中 \(\NL \subseteq \P\),\(\NPSP \subseteq\EXP\) 都是由第四条推出的。
\(\NL\) 完全性 NL completeness
Graph Connectivity
\(\PA\):给定有向图 \(G = (V, E)\) 和 \(s, t\in V\),判定是否存在 \(s\) 到 \(t\) 的路径。
\(\UST\):\(\PA\) 的无向图版本。
Theorem
\[\PA \in \NL. \]从 \(s\) 开始非确定性地走向其邻居,走到 \(t\) 时接受,重复该过程 \(n\) 次。计数器数到 \(n\) 需要 \(\log n\) 空间,存储当前点需要 \(\log n\) 空间,在进行非确定性的猜测时还需要 \(\log n\) 空间(只能一位一位猜)。
在定义 \(\NL\) 完全性之前,首先需要定义如何归约。
定义 \(A\) log 空间归约 log-space reduction 到 \(B\),若存在严格对数空间(不能是 \(\log ^ 2 n\))的 TM \(M\) 满足对任意输入 \(w\),\(w\in A\) 当且仅当 \(f(w)\in B\),记为 \(A\leq_L B\)。
一个语言 \(B\) 称为 \(\NL\) 完全 NL-complete 的,若 \(B\in\NL\) 且对任意 \(A\in \NL\),\(A\leq_L B\)。
Theorem
若 \(A_1\leq_L A_2\) 且 \(A_2\in \L\),则 \(A_1\in \L\)。
一个经典的错误是用 \(D\) 模拟归约 TM \(M\) 在输入 \(w\) 上的输出 \(f(w)\),再检查是否有 \(f(w) \in A_2\),但是 \(f(w)\) 的长度可以是多项式级别的。改正方法:不要存 \(f(w)\)。当读到 \(f(w)\) 的第 \(i\) 位时,用 \(M\) 实时计算。因为 \(\L \subseteq \P\),所以 \(\log i = \tm{\log n}\)。
以上定理的证明给出了更一般的结论:若 \(f, g\) 都是对数空间可计算的,则 \(f\circ g\) 也是对数空间可计算的。思想是类似的。
因为 \(\L \subseteq \P\),所以对数空间归约比多项式时间归约的限制更强,所以如果 \(A\leq_T B\),那么 \(A\leq_P B\)。但它依然很有效:所有已知的 NPC 问题都可以用对数空间归约证明其完全性。目前还不知道由对数空间归约定义的 \(\NPC\) 和多项式时间归约定义的 \(\NPC\) 是否相同。
类似 \(\NPH\),定义 \(B\) 属于 \(\NL\) 困难 NL-Hard,表示对任意 \(A\in \NL\),\(A\leq_L B\)。则
萨维奇定理 Savitch's theorem
定义 \(\L ^ 2 = \SP(\log ^ 2n)\),萨维奇定理 揭示了 \(\L ^ 2\) 和 \(\NL\) 的关系:\(\NL \subseteq \L ^ 2\)。证明分成两部分,\(\PA \in \NLC\) 和 \(\PA \in \L ^ 2\)。
之前我们证明了 \(\PA \in \NL\)。对任意 \(B\in \NL\),存在对数空间的 NTM \(M(x)\) 判定 \(B\)。考虑 \(M\) 的所有格局,用 \(\PA\) 判定起始格局能否到达任何接受格局(总可以让终点只有一个)。因为 \(B\in \NL\),所以 \(M\) 只有 \(2 ^ {\tm{\log n}}\) 个格局,这个归约是对数空间的。
一个简单推论 \(\NL \subseteq \P\):\(\PA\in \P\) 且 \(\PA \in \NLC\)。
关于 \(\PA\in \L ^ 2\),分治即可。
显然 \(\UST \in \L ^ 2\)。简单随机游走可知 \(\UST \in \sf{RL}\)(随机化对数空间)。在 STOC'05 上,Reingold 和 Omer 证明了 \(\UST \in \L\),很神奇。
已知 \(\NSP(\log n)\subseteq \SP(\log ^ 2 n)\),Savitch 定理将这个结论进一步推广:对任意 \(S(n)\geq \log n\),
填充技术 Padding Argument
根据较小的计算复杂类的包含关系,通过在字符串末尾添加重复字符,证明较大的计算复杂类语言的包含关系。
例:假设 \(\P = \NP\),那么 \(\EXP = \NEXP\)。只需说明 \(\NEXP \subseteq \EXP\)。
设 \(L\in \NEXP\),则存在 NTM \(M\) 在 \(2 ^ {n ^ c}\) 的时间内判定 \(L\)。
设 \(L' = \{x1 ^ {2 ^ {|x| ^ c}} \mid x\in L\}\),其中 1 不是 \(L\) 的字符。
考虑判定 \(L'\) 的 \(M'\):给定 \(x'\),检查 \(x'\) 是否形如 \(x1 ^ {2 ^ {|x| ^ c}}\),模拟 \(M\) 检查 \(x\) 是否属于 \(L\)。因为时间是非确定性的 \(2 ^ {|x| ^ c} = \mathrm{poly}(|x'|)\),所以 \(M'\) 是多项式时间 NTM,即 \(L'\in \NP\)。
因为 \(\P = \NP\),所以存在确定性多项式时间 TM \(D'\) 判定 \(L'\),对应确定性指数时间 TM \(D\) 判定 \(L\),即 \(L\in \EXP\)。
简单地说,就是通过将长度变成指数级别的方式,把 \(\NEXP\) 变成 \(\NP\)。根据 \(\NP\) 得到 \(\P\),再倒回来把 \(\P\) 变成 \(\EXP\)。
对 \(f(n)\geq \log n\),\(f : \N\to \N\) 称为 空间可构造 space constructible 的,若将 \(1 ^ n\) 映到 \(f(n)\) 的二进制表示的函数可在 \(\tm {f(n)}\) 的空间内计算。类似对 \(f(n)\geq n\log n\) 定义 时间可构造 time constructible 函数。含义是这个函数要在不超过结果的时间或空间内被算出来,在很多证明时都需要这个条件(例如填充技术检查 \(x'\) 是否形如 \(x1 ^ {2 ^ {|x| ^ c}}\),\(2 ^ {|x| ^ c}\) 就是时间可构造的)。例如 BB 就是时间不可构造的。
推广的萨维奇定理:对任意空间可构造函数 \(S(n)\geq \log n\),\(\NSP(S(n))\subseteq \SP(S(n) ^ 2)\)。使用填充技术即可。该定理同时证明了 \(\PSP = \NPSP\)。
I-S 定理 I-S theorem
\(\PSP\) P-space
\(\PSP\) 是所有可以用多项式空间判定的语言。一个非常经典的例子是 \(\SAT\in \PSP\)。因为 \(\SAT \in \NPC\),所以 \(\NP\subseteq\PSP\)(但这两个复杂性类不太可能相等)。
定义 \(B\) 是 \(\PSPH\) PSPACE-hard 的,若对任意 \(A\in \PSP\),\(A\leq_p B\)。其中 \(\leq_p\) 是 Karp 归约,即多项式 many-one 归约。定义
我们想要研究 \(\PSP\) 完全性,首先得有一个具有代表性的问题。
True Quantified Boolean Formula
给定被谓词完全限定(不含自由变量)的布尔表达式 \(\phi\)(总可以写成前束范式)(总可以认为是 01 变量,因为可以添加原变量长度数量级的独立 01 变量),判定 \(\phi\) 是否为真。
递归检查每个变量取 0 或 1 能否满足,显然有 \(\TQBF \in \PSP\)。
于是还需证明 \(\TQBF\in \PSPH\)。考虑判定 \(L\in \PSP\) 的多项式空间的 TM \(M\),考虑构造多项式大小的 QBF \(\psi\) 使得 \(\psi\) 为真当且仅当 \(M\) 接受 \(x\)。
定义 \(\psi(u, v, t)\) 表示 \(u\) 能否在 \(t\) 步内到达 \(v\),其中 \(u, v\) 是格局。注意 \(t\) 是指数级别的,所以不能直接递归
\[\psi(u, v, t) = (\ex m) [\psi(u, m, t / 2) \land \psi(m, v, t / 2)], \]因为这会让 \(\psi\) 的大小变成指数级别。以时间换空间即可:
\[\psi(u, v, t) = (\ex m) (\fo(a, b)\in \{(u, m), (m, v)\}) [\psi(a, b, t / 2)], \]即
\[(\ex m)(\fo a)(\fo b)[((a = u\land b = m) \lor (a = m\land b = v)) \to \psi(a, b, t / 2)]. \]空间 \(S(t) = S(t / 2) + \poly(|x|, \log t) = \poly(|x|)\)。
Formula Game
给定含有 \(n\) 个变量的布尔表达式 \(\psi\)。两个玩家 A 和 E 依次决定 \(x_i\) 的值。最终 A 获胜当且仅当 \(\psi\) 为假。那么 E 有必胜策略当且仅当
\[(\fo x_1) (\ex x_2) (\fo x_3) \cdots [\psi] \]为真。因此表达式游戏等价于 TQBF。
对任意表达式,为计算树的每个内部点新建变量,用 3-CNF 限制 \(x = y \op {op} z\),可以将表达式转为多项式规模的 3-CNF,即 \(\psi(x) \iff (\ex y) \phi(x, y)\),其中 \(\phi(x, y)\) 是 3-CNF。这说明 3-CNF 表达式游戏是 PSPACE 完全的。
Generalized Geography Game
两个玩家在图上移动石子,不能重复经过一个点。设 \(\rm {GG}\) 为所有 \(\an{G, b}\),使得在 \(G\) 上从 \(b\) 出发时,第一个玩家有必胜策略。类似 TQBF 的递归算法,每走过一个点就删掉,\(\rm {GG}\in \PSP\)。
为了证明 \(\rm{GG}\in \PSPH\),考虑将 3-CNF 表达式游戏归约到 GG。构造的思想是拆点,用最终是否有一个子句没被满足决定谁获胜:如果有子句没有满足,那么这些子句里的所有文字都没有被经过,所以无论对方选哪个文字,我们都可以再走一步(走到原图对应的点),让对方堵住(两组拆点之间用一个中间点连接,这个点一定被经过)。如果所有子句都满足,那么无论我们选什么子句,对方都可以选那个被选中的文字,让我们无路可走。
Lecture 9: Diagonalization and Alternation
分层定理 hierarchy theorems
先看一个例子:构造 \(D(\an M)\) 用 \(|\an M| ^ {1.1}\) 的时间模拟 \(M\) 运行 \(\an M\),若接受则拒绝,否则(拒绝或没有停机)接受。显然 \(L(D)\in \TIM(n ^ {1.1})\)。\(D(\an D)\) 运行 \(n ^ {1.1}\) 时间,但在 UTM 上模拟一个 TM 运行 \(f\) 时间需要 \(c \cdot f \cdot \log f\) 时间。模拟不会结束,所以不矛盾。但这个说法可以用来证明 \(L(D)\notin \TIM(n)\):假设 \(M'\) 在 \(c'\cdot n\) 的时间判定 \(L(D)\),则 \(D(\an {M'})\) 可以模拟出来,和 \(D(\an {M'}) = M'(\an {M'})\) 矛盾。
Time Hierarchy Theorem
对任意时间可构造函数 \(f: \N \to \N\),存在 \(L\) 使得 \(L\in \TIM(f(n))\),但不可在 \(o\l(\fr {f(n)} {\log f(n)}\r)\) 时间内判定。
- 如果是大 O,则上例的 \(M'\) 的常数 \(c'\) 可以任意大,导致无法导出矛盾。
类似有空间分层定理。
Space Hierarchy Theorem
对任意空间可构造函数 \(f : \N\to \N\),存在 \(L\) 使得 \(L\in \SP(f(n))\),但不可在 \(o(f(n))\) 空间内判定。
Corollary
如果 \(f(n), g(n)\) 是空间可构造函数且 \(f(n) = o(g(n))\),则 \(\SP(f(n))\subsetneq \SP(g(x))\)。
空间分层定理告诉我们 \(\L \neq \PSP\)。
Ladner 定理 Ladner's theorem
若 \(\P\neq \NP\),则存在 \(\NP\)-中间问题,既不属于 \(\P\),也不属于 \(\NPC\)。
这部分到最后再补。
多项式层级 polynomial hierarchy
\(\PH\) 的前束范式定义
定义 \(L\in \S_i ^ p\),若存在多项式 TM \(M\) 和多项式 \(q\),使得
其中 \(Q_{1\sim i}\) 是存在量词和全称量词的交替。接下来会省略上标 \(p\),注意和算术层级作区分。
Proposition
\[\S_0 = \P,\ \S_1 = \NP. \]\(\S_1\) 当中的 \(u_1\) 就是多项式长度的验证集。
定义 多项式层级
定义 \(\Pi_i\) 为 co-\(\S_i\):
有 \(\S_i \subseteq \Pi_{i + 1}\subseteq \S_{i + 2}\),所以 \(\PH = \bigcup_i \Pi_i\)。
显然有 \(\PH\subseteq \PSP\)。
Example
最大独立集问题:给定 \(G, k\),判定 \(G\) 的最大独立集大小是否恰为 \(k\)。验证大小为 \(k\) 的独立集 \(S_1\) 存在,以及任何大小大于 \(k\) 的点集 \(S_2\) 都不是独立集,可知该问题既属于 \(\S_2\),又属于 \(\Pi_2\)(因为 \(\ex S_1\) 和 \(\fo S_2\) 无关,可以交换)。
Collapse of Polynomial Hierarchy
如果 \(\P = \NP\),则 \(\PH = \P\)。形象地说,整个多项式层级坍塌到最底层了。
Proof
归纳证明若 \(\S_{i - 1} = \P\),则 \(\S_i = \P\):对任意 \(L\in \S_{i}\),定义 \(L' \in \Pi_{i - 1}\) 为 \(L\) 去掉了第一个存在量词的对应语言。而 \(L' \in \sf {co}\S_{i - 1} = \P\),所以 \(x\in L\iff \exists u_1 \in \{0, 1\} ^ {q(|x|)}[(x, u_1)\in L']\)。于是 \(L\in \NP = \P\)。
类似地,可以证明若 \(\S_i = \Pi_i\),则 \(\PH = \S_i\),整个多项式层级将坍塌到 \(\S_i\)。
\(\PH\) 的神谕图灵机定义
对于复杂性类 \(\sf C\) 和语言 \(A\),定义 \(\sf C ^ A\) 是所有能被含有 \(A\) 的神谕且属于 \(\sf C\) 的 OTM 判定的语言,如 \(\P ^ {\SAT}\) 是所有在有 \(\SAT\) 神谕时可以在多项式时间内判定的语言。
给定 OTM \(M\) 和复杂性类 \(\sf C\),称 \(M ^ {\sf C}\) 判定 \(L\),若存在 \(A\in \sf C\) 使得 \(M ^ A\) 判定 \(L\)。
结合以上定义,给定复杂性类 \(\sf C, \sf D\),\(\sf C ^ {\sf D}\) 在 \(\sf C ^ A\) 的基础上,\(A\) 可以是任意 \(\sf D\) 内的语言。例如 \(\P ^ \SAT = \P ^ \NP\)。
Proposition
\[\S_2 = \NP ^ \NP,\ \Pi_2 = \coNP ^ \NP. \]因为 OTM 不区分 \(\NP\) 和 \(\coNP\),所以 \(\sf C ^ {\NP} = \sf C ^ {\coNP}\)。考虑到 \(\S_2 : x\in L \iff \ex u (\fo v M(x, u, v) = 1)\),所以 \(\S_2 \subseteq \NP ^ \coNP = \NP ^ \NP\)。
设 \(L \in \NP ^ \NP\),存在 \(M, A\in \NP\) 使得 \(M ^ A\) 判定 \(L\)。对于 \(M\in \NP\),除了本来的 \(\ex u\) 以外,非确定性地猜测每个 \(A\) 的神谕的结果。如果结果是 0,可以用 “在任意输入下 \(A\) 的 NTM 的结果都为 0” 来限制,放在全称量词后面。如果结果是 1,可以用 “存在输入使得 \(A\) 的 NTM 的结果为 1” 来限制,放在存在量词后面。所以 \(L\in \S_2\)。
类似可以证明 \(\Pi_2 = \coNP ^ \NP\)。
总结一下,
交错 alternations
交错图灵机 alternating turing machine, ATM 是 NTM 的推广。ATM 的每个状态上有存在量词或全称量词(称为存在状态和全称状态)。如果是存在状态,那么这个状态是接受的,当且仅当存在一个后继状态是接受的。如果是全称状态,那么这个状态是接受的,当且仅当其所有后继状态都是接受的。NTM 是所有状态上都是存在量词的 ATM。
类似 TM 和 NTM 定义 \(\ATIM(t(n)), \ASP(t(n)), \AP, \APSP, \AL\)。
Proposition
对 \(f(n)\geq n\),
\[\ATIM(f(n))\subseteq \SP(f(n))\subseteq \ATIM(f(n) ^ 2). \]DFS 即可证明第一个包含关系。
对于第二个包含关系,类似上一讲 \(\TQBF \in \PSPH\) 证明。\(\SP(f(n))\) 的 TM 有 \(2 ^ {\tm{f(n)}}\) 个格局。构造 \(\psi(u, v, t)\) 表示格局 \(u\) 能否在 \(t\) 步内到达格局 \(v\),对 \(t\) 递归 \(\log 2 ^ {\tm{f(n)}} = \tm{f(n)}\) 层,生成每一层的中间格局 \(m\) 需要 \(\tm {f(n)}\) 的时间,所以在 ATM 上运行的总时间为 \(\tm{f(n) ^ 2}\)。
Proposition
对 \(f(n)\geq \log n\),有
\[\ASP(f(n)) = \TIM(2 ^ {\tm {f(n)}}). \]\(\ASP(f(n))\subseteq \TIM(2 ^ {\tm{f(n)}})\) 的方向是显然的。
考虑 \(\TIM(2 ^ {\tm{f(n)}})\subseteq \ASP(f(n))\)。设 \(C(i, j)\) 表示时刻 \(i\) 的格局图的第 \(j\) 个位置。猜测 \(C(i, j) = d\) 只涉及到 \(C(i - 1, j - 1\sim j + 1)\),可以用 ATM 描述。因为只需要记录当前的 \(i, j, d\),所以空间是 \(\log 2 ^ {\tm{f(n)}} = \tm{f(n)}\)。
以上两条结论给出推论:
Example: Game I
以下游戏是 \(\EXPC\) 的:
- 给定布尔表达式 \(\psi(x_{1\sim m}, y_{1\sim m}, t)\)。
- 玩家 1 先手,令 \(t\gets 1\) 且可以任意改变 \(x_{1\sim m}\)。
- 玩家 2 后手,令 \(t\gets 0\) 且可以任意改变 \(y_{1\sim m}\)。
- 不允许跳过,输掉游戏当且仅当操作后 \(\psi\) 为假。
显然这个游戏是 \(\EXP\)。由 \(\APSP = \EXP\),只需证明这个游戏是 \(\APSPH\) 的。
设 \(M\) 是多项式空间的 ATM,则 \(M\) 的格局是多项式规模。对于 ATM,总可以规定:
- 初始状态是存在状态。
- 存在状态的后继是全称状态。
- 全称状态的后继是存在状态。
- 拒绝状态是存在状态。
- 接受状态是全称状态。
用 \(X\) 和 \(Y\) 表示 \(M\) 的格局。\(f(X, Y) = 1\) 表示 \(X\) 能转移到 \(Y\)。特别地,若 \(X\) 已经是停机状态,则对任意 \(Y\),\(f(X, Y) = 0\)。
用
\[\psi = (\lnot t\lor f(Y, X)) \land (t\lor f(X, Y)) \]规定转移必须是合法的。
一开始 \(X\) 任意,\(Y\) 是初始格局。
玩家 1 会停在全称状态,他的策略 “无论玩家 2 怎么做,玩家 1 总是能赢” 对应 ATM 的 “所有后继都是接受的”。
玩家 2 会停在存在状态,他的策略 “只要玩家 1 有一个可以赢的手段,玩家 1 就能赢” 对应 ATM 的 ”存在后继是接受的“。
因此 \(M\) 接受 \(w\) 当且仅当玩家 1 获胜。这将任意 \(\APSP\) 的语言规约到了这个游戏。
可以将 Game I 归约到国际象棋和中国象棋。此外,跳棋是 \(\EXPC\) 的。
相对结论 relativizing results
在之前的很多证明中,我们将 TM 视为编码,使用 UTM 模拟 TM 的运行。这样的证明方法(称为 对角化方法 diagonalization)在把 TM 换成有 \(A\) 的神谕的 OTM 之后依然成立,例如 \(\L ^ A\subseteq \P ^ A\),\(\P ^ A\neq \EXP ^ A\)。
若一个证明或证明方法在把其中的 TM 换成 OTM 之后依然成立,则称得到的结论为 相对结论 relativizing result。于是,如果存在神谕 \(A\) 使得某个结论是错误的,那么一定不存在相对化证明。更好的情况是既存在使得结论正确的神谕,又存在使得结论错误的神谕。
\(\P\) vs. \(\NP\) is non-relativizing
设 \(A = \TQBF\)。因为 \(\TQBF\in \PSPC\) 且任何 NTM 可以用多项式空间模拟一次 \(\TQBF\) 的神谕,所以
\[\PSP \subseteq \P ^ \TQBF \subseteq \NP ^ \TQBF \subseteq \NPSP. \]而 \(\PSP = \NPSP\),所以 \(\P ^ {\TQBF} = \NP ^ {\TQBF}\)。
对于语言 \(B\),定义
\[L(B) = \{1 ^ k \mid \exists x\in B,\ |x| = k\}. \]尝试找到 \(B\) 使得 \(L(B) \in \NP ^ B - \P ^ B\)。
\(L(B) \in \NP ^ B\) 是显然的,给出 \(x\in B\) 验证即可。还需令 \(L(B)\notin \P ^ B\)。
枚举所有确定性 OTM \(M_0, M_1, \cdots\) 并构造 \(B\)。设 \(X\) 是被排除的串。
在考虑到 \(M_i\) 时,选择 \(n\) 大于所有 \(B\) 和 \(X\) 的字符串的长度。模拟 \(M_i(1 ^ n)\) 运行 \(n ^ {\log n}\) 步。当 \(M_i\) 询问 \(q\) 时,如果 \(|q| < n\),用 \(B\) 回答,否则回答 0 并将 \(q\) 加入 \(X\)。
如果 \(M_i\) 接受 \(1 ^ n\),那么把所有 \(\{0, 1\} ^ n\) 加入 \(X\),此时 \(1 ^ n\notin L(B)\)。否则,因为 \(n ^ {\log n} < 2 ^ n\),将非空的 \(\{0, 1\} ^ n \bs X\) 加入 \(B\),此时 \(1 ^ n\in L(B)\)。
因为等价 OTM 有无穷多个,所以对任意 \(n ^ c\) 时间的 OTM \(M\),总存在和它功能相同的 \(M_i\) 且构造时对应的 \(n > \log c\),则 \(M_i\) 不能判定 \(L(B)\),于是 \(M\) 不能判定 \(L(B)\)。因此 \(L(B)\notin \P ^ B\)。\(\square\)
Lecture 10: Randomized Computation
随机性会带来更多计算能力吗?是否存在概率图灵机可以在多项式时间内解决,但确定性图灵机无法在多项式内解决的问题?
随机化算法例 examples of probabilistic algorithm
2-additive spanner
图 \(G\) 的一个子图 \(S\),使得任意两个点在 \(S\) 上的距离 \(d_S(u, v)\) 不大于其在原图上的距离 \(d_G(u, v)\) 加 2.
接下来考虑 无向无权图。
随机选择 \(n ^ {1 / 2}\) 个点 \(W\),让 \(S\) 包含从 \(W\) 的每个点出发的最短路树。这一步最多只有 \(n ^ {3 / 2}\) 条边。
接下来,对每个点 \(u\),如果存在 \((u, w)\in E\) 使得 \(w\in W\),则将 \((u, w)\) 加入 \(S\),否则将 \(u\) 的所有邻边 \((u, v)\) 加入 \(S\)。如果 \(\deg u > n ^ {1 / 2}\),那么有很大概率存在 \((u, w)\)。这一步的每个点的期望边数是 \(p = n ^ {-1 / 2}\) 的几何分布,即 \(n ^ {1 / 2}\)。
Proof
考虑 \(u\) 到 \(v\) 的最短路。
若 \(u\in W\) 或 \(v\in W\),则 \(d_S(u, v) = d_G(u, v)\)。
否则考虑路径上的第一条边 \((u, u')\)。若 \((u, u')\in S\),则递归地考虑 \(d_S(u, u')\)(数学归纳法)。否则存在 \((u, w)\in S\),则
\[d_S(u, v) \leq d_S(u, w) + d_S(w, v) = 1 + d_G(w, v) \leq 1 + (1 + d_G(u, v)). \]\(\square\)
如果我们能以很高的概率得到一个解,那么它一定存在。于是我们通过给出随机化算法的手段证明了数学上的定理:任何无向无权图存在 \(\tm{n ^ {3 / 2}}\) 条边的 2-additive spanner。
Miller-Rabin
素性测试。
- 若 \(p\) 是质数,则 \(a ^ {p - 1}\equiv 1\pmod p\)。但存在合数 \(p\) 使得对任意 \(a\perp p\),\(a ^ {p - 1} \equiv 1\pmod p\),称为 卡迈克尔数 Carmichael number。
- 若 \(p\) 是奇质数且 \(a ^ {2k}\equiv 1\pmod p\),则 \(a ^ k = \pm 1 \pmod p\)。
随机选择 \(a \in [2, n - 1]\),计算 \(a ^ {n - 1} \bmod n\),若不为 \(1\) 则拒绝。
否则令 \(k = n - 1\)。如果 \(k\) 是奇数,则接受。否则考虑 \(a ^ {k / 2}\bmod n\):
- 如果这个值等于 \(-1\) 则接受。
- 如果这个值等于 \(1\) 则 \(k \gets \fr k 2\) 并重复该过程。
- 如果这个值不等于 \(\pm 1\) 则拒绝。
Proof
首先,如果 \(n\) 是奇质数,则能够成功判定。
如果 \(n\) 是奇合数,则存在 \(t\) 使得算法拒绝。
- 如果 \(n = p ^ i\) 且 \(i\geq 2\),考虑 \(t = 1 + p ^ {i - 1}\),则 \(t ^ n\equiv 1\pmod n\),于是 \(t ^ {n - 1}\not\equiv 1\pmod n\)。
- 如果 \(n = qr\) 且 \(q, r\) 互质,那么选择 \(h ^ k\equiv -1\pmod n\) 且 \(k = \fr {n - 1} {2 ^ i}\) 最大。由 CRT,存在 \(t\) 使得 \(t\equiv h\pmod q\),\(t\equiv 1\pmod r\),所以 \(t ^ k\equiv -1\pmod q\),\(t ^ k\equiv 1\pmod r\)。于是 \(t ^ {2k}\equiv 1 \pmod n\) 但 \(t ^ {k} \not\equiv \pm 1\pmod n\)。
如果 \(a, b\) 接受,则 \(at, bt\) 是不同的拒绝,所以接受的数量不超过拒绝的数量,即算法错误的概率不超过 \(\fr 1 2\)。
\(\square\)
概率图灵机 probabilistic Turing machine
概率图灵机 PTM 是转移存在随机性的 TM。给定输入,可能有不同的运行时间,不同的运行结果,甚至不一定停机。PTM 有三个纸带,第一个纸带放输入,第二个纸带(随机带)是独立均匀随机的 01 变量,第三个纸带是工作纸带。它相当于有额外的只读的随机串的 DTM。
PTM 的时间和空间复杂度由最坏情况给出。定义 \(\BPTIM(T(n))\) 为被某个在 最坏 情况下运行 \(\tm{T(n)}\) 时间且错误率不超过 \(\fr 1 3\)(BP 指 bounded-error probabilistic)的 PTM 判定的所有语言。
定义复杂性类 \(\BPP\) :\(L\in \BPP\) 当且仅当存在 \(\ppt\) probabilistic poly-time TM \(M\) 使得 \(M(x)\) 判定 \(L(x)\) 的错误率不超过 \(\fr 1 3\)。即 \(\BPP = \bigcup_{c} \BPTIM(n ^ c)\)。
很直观地,定义中的 \(\fr 1 3\) 可以换成任意和输入无关的 \([0, \fr 1 2)\) 的常数,通过多次执行取众数实现 误差消减 error reduction 即可。
Error Reduction
对于正确率为 \(\fr 1 2 - \eps\) 的 PTM,执行 \(m = \fr k {\eps ^ 2}\) 次,则正确次数小于 \(\fr m 2\) 的概率
\[\pr\l(X \leq \fr m 2\r) \leq \pr\l(X \leq (1 - \eps)\mu\r) \leq \exp\l(-\fr {\eps ^ 2\mu} 2\r) \leq \exp\l(-\fr k 4\r), \]其中 \(\mu = (\fr 1 2 + \eps) m\)。
\(\BPP\) 是无论 \(x\) 是否属于 \(L\) 都有可能错误。如果只限制一种情况可能错误,另一种情况一定正确(例如 Miller-Rabin),结果如何?以下给出两个例子。
Polynomial Identity Testing
给定含加、减、乘的多项式 \(p(x_{1\sim n})\),判定是否对任意 \(\bf x\in \R ^ n\),都有 \(p(\bf x) = 0\)。
如果能判定上述问题,则能判定两个多项式 \(p, q\) 是否相等:\(p\equiv q \iff p - q \equiv 0\)。
Lemma [Schwarz-Zippel]
设 \(p(x_{1\sim n})\) 非零且 \(\deg p = d\),\(S\) 是一些整数构成的集合,则
\[\pr_{r_i\in S} (p(r_{1\sim n}) = 0)\leq \fr {d} {|S|}. \]Proof
当 \(n = 1\) 时,用代数基本定理。
设 \(p(x_{1\sim n}) = \sum_i x_1 ^ i p_i(x_{2\sim n})\)。设 \(k\) 是最大的 \(i\) 使得 \(p_i(x_{2\sim n}) \not\equiv 0\),则由归纳假设,\(\pr(p_k(r_{2\sim n}) = 0) \leq \fr {d - k} {|S|}\),而代数基本定理告诉我们
\[\pr(p(r_{1\sim n}) = 0 \mid p_k(r_{2\sim n}) \neq 0) \leq \fr k {|S|}. \]所以
\[\pr(p(r_{1\sim n}) = 0)\leq \pr(p_k(r_{2\sim n}) = 0) + \pr(p(r_{1\sim n}) = 0 \mid p_k(r_{2\sim n}) \neq 0) \leq \fr {d} {|S|}. \]\(\square\)
对定义在 \(F\) 上的多项式,选择大小为 \(3d\) 的子集 \(S\subset F\)。从 \(S\) 中随机选择 \(r_{1\sim n}\) 并判定。如果 \(p\equiv 0\),则一定正确,否则由 S-Z 引理,错误概率不超过 \(\fr 1 3\)。
Perfect Matching in a Bipartite Graph
考虑 \(n\times n\) 二分图 \(G\) 的邻接矩阵 \(\{X_{ij}\}_{1\leq i, j\leq n}\)。没有边的位置恒为零,否则有变量 \(x_{ij}\)。
\(X\) 的 行列式 determinant
\[\det(X) = \sum_{\s \in S_n} \op{sgn}(\s) \prod_{i = 1} ^ n x_{i, \s(i)} \]是度为 \(n\) 的多项式。若 \(G\) 不存在完美匹配,则该多项式恒为零。否则根据完美匹配得到变量赋值,可知 \(\det(X)\) 不恒为零。可以使用上例(PIT)进行判定。
特别地,\(X\) 的 积和式 permanent
\[\op{perm}(X) = \sum_{\s \in S_n} \prod_{i = 1} ^ n x_{i, \s(i)} \]计算了 \(G\) 的完美匹配数量。这个问题是 \(\NPH\) 的。
在 PIT 一例中,如果 \(p\equiv 0\),则算法一定正确。类似地,在完美匹配一例中,如果没有完美匹配,则算法一定正确。
定义复杂性类 \(\RP\) randomized poly-time:\(L\in \RP\) 当且仅当存在 \(\ppt\) TM \(M\) 使得
- \(x\in L\implies \pr_y(M(x, y) \text{ accepts}) \geq \fr 1 2\)。
- \(x\notin L\implies \pr_y(M(x, y)\text{ rejects}) = 1\)。
这里 \(y\) 可以看成随机种子。类似地,可以证明这里的 \(\fr 1 2\) 可以换成任意 \((0, 1)\) 的常数(\(1\) 是 \(\P\),\(0\) 是 \(\NP\),\(y\) 可以看成 “证明”)。
类似定义 \(\coRP\) 表示若 \(x\in L\) 则一定正确,否则错误概率不超过 \(\fr 1 2\)。Miller-Rabin 算法即为一个对应的 PTM。
素性测试问题属于 \(\P\)。详见 AKS 算法。
定义复杂性类 \(\ZPP\) zero-error probabilistic poly-time,表示存在 期望 运行多项式时间且一定正确的 PTM。注意,如果是 最坏 时间,则该定义等价于 \(\P\)。
\(\BPP, \RP, \coRP\) 是 Monte Carlo 的(最坏时间有限,可能错误)。\(\ZPP\) 是 Las Vegas 的(期望时间有限,不可能错误)。这两种算法之间可以相互转化。
概率复杂性类 probabilistic complexity class
Proposition
\[\ZPP = \RP \cap \coRP. \]Proof
\(\RP\cap \coRP \subseteq \ZPP\):同时运行 \(A\in \RP\) 和 \(B\in \coRP\)。如果 \(A\) 拒绝,则拒绝。如果 \(B\) 接受,则接受。否则重复该过程。因为 \(A, B\) 是 \(\ppt\) TM 且每轮运行的停机概率不小于 \(\fr 1 2\),所以期望运行多项式时间。
\(\ZPP \subseteq \RP\cap \coRP\):运行两倍期望时间,由 Markov 不等式,错误率不超过 \(\fr 1 2\)。\(\square\)
可知 \(\ZPP\subseteq \RP\),\(\ZPP\subseteq\coRP\),\(\ZPP = \sf{coZPP}\)。
我们有平凡结论 \(\RP, \coRP \subseteq \BPP\),\(\P\subseteq \ZPP\)(最坏多项式时间)和 \(\BPP\subseteq \PSP\)(尝试所有可能的随机种子)。
Proposition
\[\RP\subseteq \NP,\ \coRP\subseteq \coNP. \]将随机种子 \(y\) 看成验证实例。\(x\notin L\implies \pr_y(M(x, y)\text{ rejects}) = 1\) 可知如果 \(x\notin L\) 则不存在 \(y\) 使得 \(M(x, y)\) 接受。相反,如果 \(x\in L\),那么因为 \(M(x, y)\) 的接受概率不为零,则一定存在 \(y\) 使得 \(M(x, y)\) 接受。\(\square\)
目前不知道 \(\BPP\) 和 \(\NP\) 之间的关系。我们甚至不知道 \(\BPP\) 是否和 \(\EXP\) 不一样。
Theorem [Sisper-Gacs-Lautemann 1983]
\[\BPP \subseteq \S_2 \cap \Pi_2. \]Proof
由 error reduction,因为错误率是关于尝试次数指数降低的,所以总存在多项式大小的 \(m\) 使得随机种子的长度为 \(m\) 且错误率不超过 \(\fr 1 {2m}\)。
设 \(y_{1\sim m}, z\in \{0, 1\} ^ m\)。
\[x\notin L\implies (\fo y_{1\sim m}) (\exists z) [\text {none of }M(x, y_i\oplus z) \text{ accepts}]. \]如果 \(x\notin L\),则只有不超过 \(\fr {2 ^ m} {2m}\) 个 \(y\) 使得 \(M(x, y)\) 接受,所以对每个 \(y_i\),只有不超过 \(\fr {2 ^ m} {2m}\) 个 \(z\) 使得 \(M(x, y\oplus z)\) 接受,因而只有不超过 \(2 ^ {m - 1}\) 个 \(z\) 使得至少一个 \(M(x, y_i \oplus z)\) 接受。
\[x\in L\implies (\exists y_{1\sim m}) (\fo z) [\text {at least one of }M(x, y_i\oplus z) \text{ accepts}]. \]如果 \(x\in L\),那么随机 \(y_{1\sim m}\),对任何 \(z\),所有 \(M(x, y_i\oplus z)\) 都拒绝的概率不超过 \(\l(\fr 1 {2m}\r) ^ m\)。于是随机 \(y_{1\sim m}\),存在 \(z\) 使得 \(M(x, y_i\oplus z)\) 都拒绝的概率不超过 \(2 ^ m \cdot \l(\fr 1 {2m}\r) ^ m < 1\),所以一定存在 \(y_{1\sim m}\) 使得对任意 \(z\),\(M(x, y_i\oplus z)\) 并不都拒绝。
以上说明 \(\BPP\subseteq \S_2\)。
因为 \(\BPP\) 自身在补集下封闭(即 \(L\in \BPP\) 当且仅当 \(\ov L\in \BPP\)),所以 \(\BPP \subseteq \Pi_2\)。\(\square\)
于是 \(\BPP\subseteq \PH\)。
Lecture 11: Interactive Proof & Decision Tree
证明系统 proof systems
对语言 \(L\),考虑这样一个 证明系统 \(V\)(验证算法):
- 完备性:若 \(x\in L\),则存在证明 \(p\) 使得 \(V\) 接受 \((x, p)\)。
- 可靠性:若 \(x\notin L\),则不存在证明 \(p\) 使得 \(V\) 接受 \((x, p)\)。
- 高效性:\(V(x, p)\) 是关于 \(|x|\) 的多项式时间。注意这要求 \(p\) 的长度是 \(|x|\) 的多项式级别。
这个证明系统称为 经典证明系统 classical proof system。\(\NP\) 是所有拥有经典证明系统的语言集合:
其中 \(R\) 是 验证器 verifier。这也是我们理解 \(\NP\) 的最常见方式,即存在多项式时间的验证器的问题。
如果我们的验证器可以多次提问会怎么样?如果它只是一股脑地把问题全部抛出来,那么就和经典的 NTM 没有区别了,因为我们可以把所有问题看成一个大问题。于是,我们希望交互器在提问的过程中,能够根据我们的回答来确定自己要提什么问题,这就是交互式证明(当然,确定性的交互式证明和 NTM 也没啥区别)。
对语言 \(L\),定义 交互式证明系统 interactive proof system 是交互式的规则 \((P, V)\),其中 证明器 prover \(P\) 和 验证器 \(V\) 可以进行多轮交互。具体地,设 \(x\) 是输入,\(a_1 = V(x)\),\(a_2 = P(x, a_1)\),以此类推,直到 \(a_k = V(x, a_{1\sim k - 1})\) 是最后一轮交互(必须是验证器给出结果),则 \(\an{V, P}(x) = a_k\)。需要满足交互轮数和 \(a_i\in \{0, 1\} ^ *\) 的长度都是 \(|x|\) 的多项式级别。
这里,证明器类似一个 “神谕”,是任意强大的机器(例如,在点覆盖问题中,证明器可以立刻给出一个最大点覆盖),可以知道要给验证器提供什么信息。而验证器是一个需要时间去验证证明器提供的证明的机器,且验证时间必须是多项式级别。
交互式证明 interactive proof
定义复杂性类 \(\DIP\) deterministic interactive proof,要求进行多项式轮交互,\(V\) 是多项式时间 TM,且
- 完备性:\(x\in L\implies \ex P, \an{V, P}(x) = 1\)。
- 可靠性:\(x\notin L\implies \fo P ^ *, \an{V, P ^ *}(x) = 0\)。
无论证明器有多强,错误的结论都不应该被证明。
\(\DIP\) 有多强?\(\DIP\) 没多强。
Proposition
\[\DIP = \NP. \]Proof
证明器可以直接给出 笔录 certificate \(a_{1\sim k - 1}\) 以供验证器验证。验证器需要验证 \(V(x)\) 是否等于 \(a_1\),根据 \(x\) 和 \(a_1\) 计算 \(a_2\),验证 \(V(x, a_1, a_2)\) 是否等于 \(a_3\),以此类推。这些可以在多项式时间内完成。\(\square\)
令人惊讶的是,允许验证器的随机性将使得验证器能够 ”窃取“ 证明器的计算能力。一个例子如下:
Alice 无法分辨两个物体是否有区别,但 Bob 可以分辨。为了验证两个物体是否有区别,Alice 随机掷硬币并根据结果决定是否交换手中的两个物体。注意这个过程 不能被 Bob 观测。随后她询问 Bob 自己是否交换了这两个物体。如果这两个没有区别,那么无论如何 Bob 的回答正确率都只有 \(\fr 1 2\),但如果这两个物体有区别,那么 Bob 总可以回答正确。根据这个概率的差异,Bob 可以说服 Alice,让她确信这两个物体有区别或者没有区别。
那么,为什么 Bob 不直接告诉 Alice 这两个物体是否有区别呢?因为 Alice 本身无法分辨(计算能力不足),所以她无法有效地验证这个结果。这相当于证明器给了验证器无法在多项式时间内验证的证明。
以上这个例子充分说明了随机性带来的计算能力。验证器可以通过 只有自己知道的随机性 加上 多项式时间的验证 来说服自己相信 无法在多项式时间内验证的证明。换言之,随机性使得证明器无法预先给出笔录,避免了落入 \(\NP\) 的复杂性类。
交互式证明系统的 private coins model
允许存在只有验证器可以看见的随机变量 \(r \in \{0, 1\} ^ m\)。即 \(a_1 = V(x, r)\),\(a_2 = P(x, a_1)\),\(a_3 = V(x, a_1, a_2, r)\),以此类推,直到 \(a_k = V(x, r, a_{1\sim k - 1})\)。
- 完备性:\(x\in L\implies \ex P, \pr_r(\an{V, P}(x, r) = 1)\geq \fr 2 3\)。
- 可靠性:\(x\in L\implies \fo P ^ *, \pr_r(\an{V, P}(x, r) = 1) \leq \fr 1 3\)。
- 高效性:\(V\) 是 \(\ppt\) TM。
通过 error reduction,完备性的概率可以是任意 \((\fr 1 2, 1)\) 的常数,可靠性的概率可以是任意 \((0, \fr 1 2)\) 的常数。
定义复杂性类 \(\IP\) 为所有具有以上交互式证明系统的语言。我们相信一个算法是正确的,不是它完全正确,而是它有很高的概率正确,且随着运行时间的多项式级别的增长,正确的概率可以变得任意高。
如果将可靠性条件从 \(\fr 1 3\) 改成 0,那么就放弃了随机性,得到 \(\NP\)。
可以证明将完备性条件从 \(\fr 2 3\) 改成 1 不会改变 \(\IP\)(在 \(\IP = \PSP\) 小节的最后)。在上例中,如果两个物体不同,Bob 总可以回答正确,因此 Alice 的结果也总是正确的。
显然 \(\NP = \DIP \subseteq \IP\),那么 \(\IP\) 具体有多强?
\(\IP = \PSP\) IP is PSPACE
先来看一个例子。
Graph Isomorphism
定义图同构
\[\GI = \{(G_0, G_1) : G_0\cong G_1\}. \]和图不同构 \(\GNI = \ov {\GI}\)。
显然 \(\GI\in \NP\),但不知道是否属于 \(\coNP\) 和 \(\P\)。类似地,\(\GNI\) 不知道是否属于 \(\NP\)。
Theorem [GMW]
\[\GNI \in \IP. \]这说明 \(\IP\) 有可能比 \(\NP\) 更强。
Proof
验证器随机 \(c\in \{0, 1\}\),随机排列 \(\pi\),给证明器 \(H = \pi(G_c)\)。如果 \(H\cong G_0\),则 \(r = 0\),否则 \(r = 1\)。验证器检查结果是否正确。如果所有询问都正确,则接受(\(G_0\cong G_1\),证明器可以区分),否则证明器无法区分,全部回答对的概率为 \(2 ^ {-k}\)。\(\square\)
\(\SSAT\) 表示 \(\SAT\) 的计数版本,即 \(\phi\) 恰好有 \(k\) 个为真。因为 \((\phi, 0)\) 等价于 \(\ov {\SAT}\),所以 \(\SSAT \in \sf{coNPH}\)。
Theorem
\[\SSAT\in \IP. \]这说明 \(\coNP\subseteq \IP\)。
Proof
一个可能的错误尝试:设 \(k_c\) 为 \(\phi_c = \phi(c, x_{2\sim n})\) 为真的数量。证明器给出 \(k_0, k_1\)。验证器首先检查 \(k_0 + k_1 = k\),然后随机选择 \(c\in \{0, 1\}\) 发送给证明器,让证明器证明 \((\phi_c, k_c)\),直到 \(n = 1\),验证器可以自行验证。如果 \((\phi, k)\in \SSAT\),那么证明器总可以给出正确结果。然而,在另一种情况下,可能只有唯一的 \(c\) 的所有选择使得证明器无法欺骗验证器(如果证明器欺骗了验证器,但验证器往正确的方向一侧递归,则无论如何都会被欺骗),所以错误率高达 \(1 - 2 ^ {-n}\),无法接受。
考虑将 \(\phi\) 代数化为多项式:\(x_i\to x_i\),\(\lnot \phi\to 1 - p_\phi\),\(\phi_1 \land \phi_2\to p_{\phi_1} p_{\phi_2}\),\(\phi_1\lor \phi_2 \to 1 - (1 - p_{\phi_1})(1 - p_{\phi_2})\),则多项式的度数 \(d\leq |\phi|\)。将数域从 \(\{0, 1\} ^ n\) 变成 \(GF(q) ^ n\),其中 \(GF(q)\) 表示大小为 \(q\) 的有限域,即在模 \(q\) 意义下计数。
问题等价于验证
\[k = \sum_{x_{1\sim n}\in \{0, 1\} ^ n} \phi(x_{1\sim n}). \]设 \(k(z)\) 为关于 \(z\) 的多项式 \(\sum_{x_{2\sim n}\in \{0, 1\} ^ {n - 1}} \phi(z, x_{2\sim n})\)。证明器给出 \(s(z)\)。验证器首先检查 \(s(0) + s(1) = k\),然后随机选择 \(z\in GF(q)\) 发送给证明器,让证明器证明 \((\phi_z, s(z))\)。
如果 \((\phi, k)\in \SSAT\),那么证明器总可以给出正确的 \(s(z) = k(z)\)。否则,因为 \(s(0) + s(1) = k \neq k(0) + k(1)\),所以 \(s(z)\neq k(z)\)。由上一小节的 S-Z 引理,有不小于 \(1 - \fr d {q}\) 的概率选出有问题的 \(s(z)\neq k(z)\),所以每一步都出问题(证明器没有欺骗成功)的概率至少为
\[\l(1 - \fr d q\r) ^ n\geq \l(1 - \fr d {2 ^ n}\r) ^ n \geq 1 - \fr {n|\phi|} {2 ^ n} \gg \fr 2 3, \]其中我们认为 \(|\phi| \ll 2 ^ n\)(否则直接验证即可)。\(\square\)
还有一个小细节是 \(k < q\),所以最开始的 \(k\) 不会因为在模 \(q\) 意义下考虑而失真。
现在我们知道 \(\NP, \coNP\subseteq \IP\)。\(\IP\) 还能更强吗?我们知道 \(\TQBF\in \PSPH\),且 \(\TQBF\) 也是和布尔表达式相关的。
Theorem [Shamir 1990]
\[\IP = \PSP. \]Proof
\(\IP\subseteq \PSP\) 是显然的,只需枚举所有可能的交互情况(包括随机种子)即可。
考虑 \(\TQBF\)。关于 \(\QSAT\),经典的代数化手段是 \((\ex x_i)\phi \to \sum_{x_i \in {0, 1}} p_\phi(x_i)\),\((\fo x_i) \phi \to \prod_{x_i\in \{0, 1\}} p_\phi(x_i)\)。于是得到(回忆 \(\TQBF\) 总可以写成 01 变量的交替量词形式)
\[\prod_{x_1 \in \{0, 1\}} \sum_{x_2 \in \{0, 1\}} \cdots \sum_{x_n \in \{0, 1\}} p_\phi(x_{1\sim n}). \]问题等价于判定以上结果是否大于 0,可以直接做等于 \(k\)(结果不超过 \(2 ^ n < q\),第一步不会失真)。但这样构造出来的多项式的每个变量的度数是指数级别的(乘法会让度数翻倍),验证器不好处理。
再次强调,证明器的计算能力可以任意强,所以就算多项式长度是指数级别也没有关系,但证明器要丢给验证器关于某个变量的多项式,验证器需要处理这个多项式,所以度数不能太大。
解决方法很巧妙,也很简单。因为 \(x_i\in \{0, 1\}\),所以 \(x_i ^ k = x_i\),我们总可以让每个变量的指数等于 1。定义 \((Rx_i) \phi\) 表示
\[x_i \cdot p_\phi(x_{1\sim i - 1}, 1, x_{i + 1\sim n}) + (1 - x_i) \cdot p_\phi(x_{1\sim i - 1}, 0, x_{i + 1\sim n}). \]那么 \((Rx_1)(Rx_2)\cdots (R_{x_n})\phi\) 是关于 \(x_{1\sim n}\) 的多线性函数。每次 \(\fo x_i\) 之后都把剩下的变量的度数用 \(R\) 降下来即可,即在量词前面加 \(Rx_i\)。
证明器给出 \(s(x_1)\) 表示加入 \(R\) 之后新的 \(\phi'\) 对应的多项式关于 \(x_1\) 的一元多项式 \(p_{\phi'}(x_1)\)。对于验证器:
- 如果是 \(\fo x_1\),那么检查 \(s(0) \cdot s(1) = k\)。
- 如果是 \(\ex x_1\),那么检查 \(s(0) + s(1) = k\)。
- 如果是 \(R x_1\),那么此时 \(x_1\) 已经被赋值 \(a_1\),检查 \(a_1s(1) + (1 - a_1)s(0) = k\)。
在 \(GF(q)\) 中随机选择 \(a\),递归地检查 \(s(a) = p_{\phi'}(a)\) 即可。
正确性证明是类似的。如果 \(\phi \notin \TQBF\),则每一步都有问题的概率(正确率)不小于
\[\l(1 - \fr d q\r) ^ {n ^ 2}\geq 1 - \fr {n ^ 3|\phi|} {2 ^ n} \gg \fr 2 3. \]\(\square\)
因为在尝试将 \(\TQBF\) 归约到 \(\IP\) 时,最终的交互式证明在 \(\phi\in \TQBF\) 时一定正确,所以将完备性条件的参数 \(\fr 2 3\) 改成 1 不会影响 \(\IP\) 的定义。
在 \(\IP\) 中,我们限制证明器不能得到每次的随机结果。如果随机结果是公开的(随机种子肯定不能公开),情况如何呢?这样定义的复杂性类称为 \(\AM\) Arthur-Merlin。
在 \(\IP = \PSP\) 的证明中,将 \(a\) 发送给证明器不会有任何影响。所以 \(\TQBF\in \AM\)。因此
是否公开硬币对复杂性类的大小没有影响。
决策树 decision tree
决策复杂度 desicion complexity
考虑函数 \(f : \{0, 1\} ^ n \to \{0, 1\}\)。\(f(x)\) 的决策树 \(T\) 的每个点有变量 \(x_i\),根据输入 \(x_i\) 的值决定往哪一个儿子走。需要保证叶子的输出为 \(f(x)\)。
定义 \(\op{cost}(T, x)\) 为有多少个 \(x_i\) 被访问了。如果希望决策树的深度尽可能少,那么等价于访问了多少个点,因为一定不会重复访问相同变量。
定义 \(f\) 的 决策树复杂度 decision tree complexity
即最优的决策树在最坏情况下的访问次数,即所有决策树的深度最小值。
Examples
\[f(x) = x_1 \lor x_2 \lor \cdots \lor x_n \]的决策树复杂度为 \(n\)。对抗式地令最后一个访问的变量为 1,其它均为 0 即可。
\[f(x_{0\sim k - 1}, y_{0\sim 2 ^ {k - 1}}) = y_x \]的决策树复杂度为 \(k + 1\)。对抗式地令 \(y_x\) 为 \(x\) 的 1 的个数的奇偶性(这使得必须访问所有 \(x_{0\sim k - 1}\))异或 0 或 1 即可。
证明复杂度 certificate complexity
可以理解为决策复杂度的非确定性版本。
\(f\) 关于 \(x\) 的 0-证明 为子集 \(S'\subseteq [n]\),使得对任意 \(x'|_S = x|_S\),都有 \(f(x') = 0\),其中 \(x|_S\) 是 \(x\) 在坐标为 \(S\) 上的取值。换言之,如果对于任意在 \(S\) 上和 \(x\) 相等的 \(x'\) 都有 \(f(x') = 0\),那么我们可以断言 \(f(x) = 0\),这也是 “证明” 的思想所在。
1-证明 的定义是类似的。
定义 \(f\) 的 证明复杂度 \(C(f)\) 为最小的 \(k\) 使得任何 \(x\) 都有大小不超过 \(k\) 的 \(f(x)\)-证明。
Example
给定无向图的邻接矩阵,\(f\) 判定该无向图是否连通。
\(D(f) = \binom n 2\)。对任意判定过程,只有当回答 0 会使得图一定不连通时才回答 1,否则回答 0,得到一个输入,则决策树在该输入上需要询问所有边。
\(f\) 的 1-证明是一棵生成树,大小为 \(n - 1\),0-证明是一个割集,大小不超过 \(\max x(n - x)\leq \fr {n ^ 2} 4\)。于是 \(C(f) = \fr {n ^ 2} 4\)。
\(C\) 和 \(D\) 的关系类似 \(\NP\) 和 \(\P\) 的关系,因为 \(\NP\) 是具有属于 \(\P\) 的证明的语言。若判定树的复杂度比较低,则对应 \(\P\)。若 1-证明的复杂度比较低,也就是能够简单地证明 \(f(x) = 1\),则对应 \(\NP\)。若 0-证明的复杂度比较低,则对应 \(\coNP\)。
显然有 \(C(f)\leq D(f)\)。
Theorem
\[D(f)\leq C(f) ^ 2. \]Proof
我们直接构造决策树。
如果 \(f\) 是常数,则直接回答。否则找到某个 \(f(x) = 0\) 的 \(x\) 的 0-证明 \(S\),然后询问 \(S\) 里的所有元素。询问前依然存在(即询问前还没有被排除)的每个 0-证明必然和所有 1-证明相交,否则存在一个串同时有 0-证明和 1-证明。所以询问后依然存在的 1-证明的大小相较于询问前一定至少减小 1。在至多 \(C(f)\) 组询问之后,1-证明的长度为 0,所以仍未被确定的所有 \(f(x)\) 都有 0-证明,直接回答 0。
以上构造说明决策树的深度不超过 \(C(f) ^ 2\)。\(\square\)
Lecture 12: Introduction to Circuit Complexity and Polynomial Method
布尔线路 Boolean circuit
相较于图灵机,布尔线路是一个更简单的计算模型,因此更容易证明下界。
布尔线路 \(C\) 是一个有 \(n\) 个源点和唯一汇点(输出顶点)的 有向无环图。每个叶子对应一个输入 \(x_i\),每个中间结点 \(\land, \lor, \lnot\) 接受对应数量的输入并进行对应类型的计算。
布尔线路(以下简称线路)的大小为结点数量,深度为最长路径的长度。
任何 \(f : \{0, 1\} ^ n \to \{0, 1\}\) 的函数都可以被 \(\tm{n2 ^ n}\) 大小的线路计算。每个 \(f(x) = 1\) 的 \(x\) 可以用大小为 \(n\) 的表达式限制,析取所有这样的表达式即可。
因为线路是有向无环图,所以考虑其拓扑排序。容易证明线路和某个 “直线程序” 等价,即按顺序依次运行每条指令,没有分支和循环的程序。
线路和 TM 的区别是线路只对给定的输入长度有效。所以我们定义 线路族 \(\{C_n\}\) 为一系列线路 \(C_1, C_2, \cdots\)。称线路族计算 \(f : \{0, 1\} ^ *\to \{0, 1\}\),若对任意 \(x\),\(C_{|x|}(x) = f(x)\)。设 \(f\) 对应语言 \(L\),则称 \(\{C_n\}\) 判定 \(L\)。
称线路族的大小为 \(T(n)\),若 \(C_n\) 的大小不超过 \(T(n)\)。
定义复杂性类 \(\SIZ(T(n))\) 为所有被大小 \(T(n)\) 的线路族判定的语言。\(\PP\) 是所有多项式规模的线路族判定的语言,即
Proposition
\[\P \subseteq \PP. \]Proof
设 TM \(M\) 的运行时间为 \(t(n)\),考虑 \(t(n) \times t(n)\) 的计算历史。对每个位置 \((i, j)\) 和所有可能的符号 \(a\in \G\cup Q\),建立布尔变量 \(v(i, j, a)\) 表示 \((i, j)\) 位置上的符号是否为 \(a\)。简单构造线路即可。\(\square\)
这个线路的构造只需要对数空间。
另一个方向如何呢?
\(\PP\) 甚至可以包含不可判定的语言,因为定义中只要求存在而不用构造。例如,设 \(M_n\) 表示编号为 \(n\) 的图灵机。如果 \(M_n\) 停机,则 \(C_n\) 接受所有输入的 AND。否则 \(C_n = 0\)。则该线路族判定 \(\{1 ^ n\mid M_n\text { with no input halts}\}\)。
这是因为线路族的定义本身使得它可以内嵌一些额外的信息,这些信息甚至可能不可计算。解决方法是只考虑能被具有一定效率的 TM 构造出的线路族。
称线路族是 对数空间一致 logspace uniform,若存在 TM \(M\) 在 \(1 ^ n\) 上以对数空间输出 \(C_n\),即要求 \(C_n\) 对数空间可构造。
Theorem
\(\P\) 是所有对数空间一致的多项式规模的线路族判定的语言。
Proof
由 \(\P\subseteq \PP\) 的证明过程可知包含关系。
因为 \(\L\subseteq \P\),所以 \(C_n\) 在多项式时间内可构造。接受当且仅当线路输出为 1。整个过程是多项式时间的,可知反包含关系。\(\square\)
带建言的图灵机 Turing machines that take advice
将线路族可以内嵌额外信息(不一致性)的性质搬到 TM 上。
给 TM \(M\) 加入只读的 建言 advice \(A(n)\),其内容只和输入长度 \(|x|\) 有关。称 \(M\) 判定 \(L\),若 \(x\in L\) 当且仅当 \(M(x, A(|x|))\) 接受。
定义复杂性类 \(\TIM(t(n)) / f(n)\) 为所有能被 \(|A(n)|\leq f(n)\) 的纳言图灵机在 \(t(n)\) 时间判定的语言。
Theorem
\[\PP = \bigcup_{c, d}\TIM(n ^ c) / n ^ d. \]Proof
若 \(L\in \PP\),则 \(L\) 可以被多项式规模的线路族计算,将 \(C_n\) 作为建言即可。
若 \(L\in \TIM(n ^ c) / n ^ d\),则类似 \(\P\subseteq\PP\) 的证明构造线路 \(C_n(x) = D_n(x, A(n)) = M(x, A(n))\)。\(\square\)
\(\PP\) P/poly
一些和 \(\PP\) 相关的结论。
\(\NP\subsetneq \P\) 等价于 \(\NP\) 不含有对数空间一致的多项式规模的线路族。我们甚至相信 \(\NP\subsetneq \PP\)(于是 \(\P\neq \NP\))。
Theorem [Karp-Lipton]
若 \(\SAT\in \PP\),则 \(\PH\) 将坍塌到第二层。
Proof
只需证明 \(\Pi_2 \subseteq \S_2\),另一个方向只需对每个语言取补集即可,即
\[L\in \S_2 \implies \ov L\in \Pi_2\subseteq\S_2 \implies L = \ov {\ov L} \in \Pi_2. \]设 \(L\in \Pi_2\),则 \(L = \{x: (\fo y)(\ex z)[(x, y, z)\in R]\}\),其中 \(R\in \P\)。因为给定 \(x, y\) 检查是否存在 \(z\) 使得 \((x, y, z)\in R\) 是 \(\NP\) 的,那么假设 \(C\) 计算 \(\SAT\),则
\[L = \{x : (\exists C) (\fo y) [(x, y, z)\in R]\}. \]其中 \(z\) 是用多项式规模的线路 \(C\) 计算是否存在 \(z\) 使得 \((x, y, z)\in R\)。\(\square\)
K-L 定理很强,很好用。经常用于证明一些更大的复杂性类不被 \(\PP\) 包含。
Theorem [Shannon]
有 \(1 - o(1)\) 的概率随机函数 \(f : \{0, 1\} ^ n\to \{0, 1\}\) 需要规模 \(\O(2 ^ n / n)\) 的线路。
Proof
\(n\) 个输入的大小为 \(s\) 的线路至多有 \((3(s + n) ^ 2) ^ s\) 种。
\[\bal C(n, c2 ^ n / n) \leq (c' 2 ^ {2n} / n ^ 2) ^ {c2 ^ n / n} \leq \tm{1 / n ^ 2} 2 ^ {2c2 ^ n}. \eal \]取 \(c = \fr 1 2\) 即可。\(\square\)
虽然现在没有找到 \(\NP\) 问题没有多项式规模的线路,但是有一些更弱的结论。
Theorem
\[\EXPSP \subsetneq \PP. \]Proof
设 \(f_n\) 是第一个需要 \(\O(2 ^ n / n)\) 规模的线路的函数。由上述定理,\(f_n\) 存在。于是所有 \(f_{|x|}(x) = 1\) 的 \(x\) 不属于 \(\PP\)。
还需证明构造出的语言 \(L\) 属于 \(\EXPSP\)。枚举所有可能的 \(f\) 需要 \(2 ^ n\) 空间(枚举每个输入的输出)。从小到大枚举所有线路,算出当前的 \(f\) 需要多大规模的线路以判定 \(f\) 是否和 \(f_n\) 相等。找到 \(f_n\) 之后计算 \(f_n(x)\) 即可。\(\square\)
Theorem
\[\EXP ^ {\S_2} \subsetneq\PP. \]Proof
依然考虑上面的 \(L\),需证明 \(L\in \EXP ^ {\S_2}\)。单纯枚举函数已经不可行,因为这需要 \(2 ^ {2 ^ n}\) 的时间。
找到 \(f_n\) 包含两部分,其一是枚举所有函数,其二是算出 \(f\) 需要多大规模的线路。
给定 \(f\)(大小为 \(2 ^ n\)),检查 \(f\) 是否有不超过某个阈值的规模的线路是 \(\NP\) 问题。证明器直接给出线路,验证器检查。
于是,在一段函数的区间上判定是否存在 \(f\) 没有不超过某个阈值的规模的电路是 \(\S_2 = \NP ^ \NP\) 的。证明器给出这样的 \(f\),然后验证器用上面的 \(\NP\) 神谕检查。
使用 \(\S_2\) 神谕在所有 \(2 ^ {2 ^ n}\) 个函数上二分即可。\(\square\)
Corollary
\[\NEXP ^ \NP \subsetneq \PP. \]Proof
假设 \(\NEXP ^ \NP \subseteq \PP\),则 \(\NP \subseteq \PP\)。由 K-L 定理,\(\PH = \S ^ 2\)。于是 \(\P ^ {\S_2} = \S_2 = \NP ^ \NP\)。由填充技术,
\[\EXP ^ {\S_2} = \NEXP ^ \NP \subseteq \PP, \]矛盾。\(\square\)
\(\NC\) Nick's class
因为线路的大小只能是多项式到指数级别,所以我们转而考虑线路的深度,得到更精细的线路复杂性分层。
定义复杂性类 \(\NC ^ k\) 表示所有多项式规模且深度为 \(\tm{\log ^ kn}\) 的一致线路(有些地方的定义不要求一致性,并将要求一致性的 \(\NC\) 视为一致 \(\NC\))判定的语言。线路深度是对数大小说明问题可以有效地 并行。
定义复杂性类 \(\NC = \bigcup_k \NC ^ k\)。因为 \(\P\) 是多项式规模的一致线路,所以 \(\NC \subseteq \P\)。
布尔矩阵乘法计算 \((AB)_{ij}\) 属于 \(\NC ^ 1\),且对应的线路是一个布尔表达式(即结构形成一棵树)。
Theorem
\(L\in \NC ^ 1\) 当且仅当 \(L\) 可以被多项式规模的一致布尔表达式判定。
Proof
设 \(L\in \NC ^ 1\) 且 \(C\) 为对应线路。从根开始把两棵子树重叠的部分分开即可。
设 \(L\) 被多项式规模的一致布尔表达式 \(C\) 判定。因为每个点最多有两个儿子,所以存在一个点 \(D\) 的子树大小在 \([n / 3, 2n / 3]\) 之间。通过枚举 \(D\) 子树的结果,我们能够以增加常数层的代价将 \(D\) 和 \(D\) 子树外的部分分开。于是 \(T(n)\leq T(2n / 3) + \tm 1\),即 \(T(n) = \tm{\log n}\)。\(\square\)
Theorem
\[\NC ^ 1 \subseteq \L. \]Proof
因为一致性且深度为对数级别,容易构造对数空间的 TM 模拟 \(C\in \NC ^ 1\) 的计算。\(\square\)
Theorem
\[\NL\subseteq \NC ^ 2. \]Proof
考虑 \(\PA\)。计算 \((A ^ 2)_{ij}\) 是 \(\NC ^ 1\),倍增即可。\(\square\)
称一个语言 \(L\) 是 \(\P\)-完全的,若 \(L\in \P\) 且所有 \(\P\) 的语言可以对数空间归约到 \(L\)。如果一个 \(\P\)-完全问题属于 \(\NC\),则 \(\P = \NC\)。
Examples
定义 CIRCUIT-VALUE 为所有 \(\an{C, x}\) 使得 \(C(x) = 1\),则 CIRCUIT-VALUE 是 \(\P\)-完全的。类似 \(\P\subseteq \PP\) 的证明,将任何多项式时间的 TM \(M\) 转化为多项式时间的线路。
线性规划也是 \(\P\)-完全的。
我们有 \(\NC\) 层级:
如果 \(\NC ^ i = \NC ^ {i + 1}\),则 \(\NC\) 会坍塌到 \(\NC ^ i\)。
\(\AC\) alternating circuit
复杂性类 \(\AC ^ i\) 和 \(\NC ^ i\) 几乎一样,差别在于一个顶点可以有任意多输入。类似定义 \(\AC = \bigcup_{k} \AC ^ k\)。
因为规模是多项式级别的,所以总可以用 \(\tm{\log n}\) 个二输入顶点模拟任意多输入的顶点。这直接给出了
接下来研究 \(\AC ^ 0\)。
Example
二进制加法属于 \(\AC ^ 0\)。直接模拟需要 \(n\) 次交替。
考虑第 \(k\) 位的进位 \(c_k\),一定由某个位置 \(i < k\) 产生并传播,所以
\[c_k = \bigvee_{0\leq i < k}\l((a_i\land b_i) \land \l(\bigwedge_{i < j < k} (a_j\lor b_j)\r)\r), \]该表达式只会经过常数次交替。
定义奇偶函数为所有值的异或,\(\PAR\) 为对应语言。
Theorem [Furst-Saxe-Sipser 1981]
\[\PAR \notin \AC ^ 0. \]Proof
这个证明使用了 多项式技术 polynomial method:
- 设线路 \(C\) 大小为 \(s\),深度为 \(d\),则 \(C\) 可以被 \(\Z_3 = \{0, \pm 1\}\) 上度为 \((\log s) ^ {\tm d}\) 的多项式 99% 近似。
- \(\PAR\) 不能被 \(\Z_3\) 上度为 \(cn ^ {1 / 2}\) 的多项式 99% 近似。
结合以上两个命题即可。
Proof of statement 1
考虑 \(\phi = x_1\lor \cdots \lor x_n\)。直接按照上一讲的方法会得到度为 \(n\) 的多项式。
随机选择 \(a_i\in \Z_3\),考虑 \(P_A = \sum_{i = 1} ^ n a_ix_i\)。若 \(\phi = 0\),则 \(P_A = 0\)。否则 \(P_A\) 只有 \(\fr 1 3\) 的概率为 0。选择 \(\Theta(\log s)\) 个不同的 \(A_i\) 可以使得 \(1 - \prod_{i} (1 - P_{A_i} ^ 2)\) 的错误概率不超过 \(\fr 1 {100s}\)。所以多项式的度数为 \((\log s) ^ {\tm d}\),且错误率小于 \(s\cdot \fr 1 {100s}\)。\(\square\)
Proof of statement 2
在 \(\Z_3\) 上,任意 \(f : \{0, 1\} ^ n \to \{0, 1\}\) 可以被转化成 \(g : \{-1, 1\} ^ n \to \{-1, 1\}\):
\[g(x_1, \cdots, x_n) = -f(-x_1 - 1, \cdots, -x_n - 1) - 1. \]注意 \(-2 = 1\)。
此时奇偶函数定义为所有 \(x_i\) 的乘积。反证法,假设这个乘积可以被度为 \(c\cdot n ^ {1 / 2}\) 的 \(q(x_1, \cdots, x_n)\) 99% 近似。那么存在 \(S\subseteq \{-1, 1\} ^ n\) 满足 \(|S|\geq 0.99 \cdot 2 ^ n\) 且在 \(S\) 上有 \(x_1 x_2 \cdots x_n = q(x_1, \cdots,x_n)\)。
因为 \(x_i ^ 2 = 1\),所以任何度数 \(d' > \fr n 2\) 的单项式等价于度为 \((n - d') + c\cdot n ^ {1 / 2}\) 的多项式。
因为任何 \(\{-1, 1\} ^ n\to \{-1, 1\}\) 的函数等价于 \(\Z_3\) 上的度为 \(n\) 的多项式,所以任何 \(S\to \{-1, 1\}\) 的函数等价于度为 \(\deg \fr n 2 + c\cdot \sqrt n\) 的多项式(度为 \(n\) 的多项式可以有 \(\fr n 2\) 次单项式)。
前者的数量为 \(2 ^ {|S|} \geq 2 ^ {0.99 \times 2 ^ n}\),而后者的数量为 \(3 ^ {\sum_{i = 0} ^ {n / 2 + c \sqrt n} \binom n i}\approx \sqrt 3 ^ {2 ^ n}\),矛盾。\(\square\)
以上定理告诉我们 \(\AC ^ 0\) 做不了取模。
定义复杂性类 \(\AC ^ 0[p]\),允许存在计算模 \(p\) 是否为 \(0\) 的门。\(\PAR\notin \AC ^ 0\) 的证明告诉我们 \(\PAR \notin \AC ^ 0[3]\)。
Theorem
设 \(p, q\) 是不同的质数,则
\[\sf{MOD}_q \notin \AC ^ 0[p]. \]
定义复杂性类 \(\ACC ^ 0 = \bigcup_p \AC ^ 0[p]\)。
Lecture 13: Hardness in P
细粒度复杂性 fine-grained complexity,研究多项式复杂度的问题下界。AB09 上面没有。
全源最短路的困难性 APSP-hardness
考虑以下几个问题。
All Pair Shortest Path (APSP):给定有向图 \(G\),求任意两点之间的最短路。
Min-Plus Product (MPP):给定矩阵 \(A, B\),求 \(c_{ij} = \min_k a_{ik} + b_{kj}\),记为 \(C = A * B\)。
Negative Triangle (NT):给定有向图 \(G\),求负权三元环。
MPP Verification (MPPV):给定矩阵 \(A, B, C\),检验 \(C = A * B\)。
Min Weight Cycle (MWC):给定有向图 \(G\),求最小权环。
对于普通矩阵乘法,随机选择 \(r \in \{0, 1\} ^ n\) 并检查 \(ABr = Cr\),错误率为 \(\fr 1 2\),时间 \(\tm{n ^ 2}\)。
以上所有问题之间可以相互归约 [Vassilevska, Williams 2010]。这使得一旦一个问题存在 次立方 subcubic 算法,则所有问题都存在次立方算法。具体地,次立方算法指 \(\tm{n ^ {3 - \d} \cdot \rm{polylog}(M)}\) 时间,其中权值范围是 \([-M, M]\)。
一些简单的归约关系如下。
-
MPP 到 APSP:平凡。
-
APSP 到 MPP:倍增 MPP。
-
NT 到 MPP:检查是否有 \((A ^ 2)_{ij} + A_{ji} < 0\)。
-
MPPV 到 MPP:平凡。
-
MWC 到 MPP:倍增 MPP。
MPP to NT
首先将 MPP 归约到 APNT(对所有 \(i, j\),求 \(k\) 使得 \(w(i, j) + w(j, k) + w(k, i) < 0\)):建立三分图 \(V' = I\cup J \cup K\),\(E = I\times J \cup J \times K \cup K\times I\),其中 \(w(j, k) = A_{ij}\),\(w(k, i) = B_{ki}\),使用 APNT 同时对所有 \(i, j\) 二分 \(w(i, j)\) 即可。
考虑将上面的三分图的 APNT 归约到 NT,设后者的时间为 \(T(n)\)。考虑分块,每个块大小为 \(s\)。对于所有 \((n / s) ^ 3\) 种块的组合,在上面运行一次 NT 时间为 \(T(s)\)。如果找到 NT,则删去 \((i, j)\) 继续找,否则这个块组合没有 NT,考虑下一个块组合。
时间为 \(((n / s) ^ 3 + n ^ 2)T(s)\)。如果 \(T(n) = \tm{n ^ {3 - \d}}\),令 \(s = n ^ {1 / 3}\) 即得 \(\tm{n ^ {3 - \d / 3}}\) 的算法。
NT to MWC
将图上所有边的权值加上 \(8M\),则三元环权值不超过 \(27M\),四元环权值不小于 \(28M\)。求 MWC 即最小权三角形。
NT to MPPV
考虑 MPP 到 NT 建出的三分图。令 \(w(j, k) = A_{jk}\),\(w(k, i) = B_{ki}\),\(w(i, j) = C_{ij}\),那么 NT \((i, j, k)\) 等价于
\[A_{jk} + B_{ki} < -C_{ij} \iff \min((A * B)_{ij}, -C ^ T_{ij}) \neq -C ^ T_{ij}. \]简单构造 MPP 即可。
强指数时间假设 strong exponential time hypothesis
考虑以下几个问题。
3SUM:给定 整数 集 \(S\),求 \(a, b, c\in S\) 使得 \(a + b + c = 0\)。
3SUM 猜想 3SUM conjecture:\([-n ^ 3, n ^ 3]\) 上的 3SUM 需要 \(\tm {n ^ {2 - o(1)}}\) 时间。
Orthogonal Vector (OV):给定 \(d\) 维 01 向量集合 \(S\),满足 \(d = \tm{\log n}\),求 \(u, v\in S\) 使得 \(u\cdot v = 0\)。
OV 猜想 OV conjecture:\(n\) 个向量的 OV 需要 \(\tm {n ^ {2 - o(1)}}\) 时间。
Exponential Time Hypothesis
3-SAT 无法在亚指数时间内解决,即存在常数 \(\d\) 使得 3-SAT 至少要 \(2 ^ {\d n}\) 时间。
通过随机赋值和随机翻转,可以得到 3-SAT 的 \(\tm{1.5 ^ n}\) 随机算法(忽略多项式因子)。将每次随机翻转的操作次数上界从 \(n\) 提高到 \(3n\),可得 \(\tm{(4 / 3) ^ n}\) 的随机算法。
Strong ETH
对任意 \(\eps > 0\),存在 \(k\) 使得 k-SAT 无法在 \(\tm{2 ^ {(1 - \eps)n} \cdot \rm{poly}(m)}\) 时间内解决。
不过 k-SAT 存在 \((2 - 2 / k) ^ n\) 的算法 [Schoning 1999]。
SETH to OV
使用 meet-in-the-middle 即可,用点积为 0 限制每个子句要被满足。如果 OV 有 \(\tm{n ^ {2 - \d}}\) 的算法,就能得到 \(\tm{(2 ^ {n / 2}) ^ {2 - \d}} = \tm{2 ^ {n(1 - \d / 2)}}\) 的 k-SAT。
图的直径 diameter
1.5-Approximation of Diameter
以下忽略对数因子,并假设 \(D = 3h\)。
以 \(\fr 1 {\sqrt n}\) 的概率独立加入每个点得到点集 \(S\),则 \(S\) 期望大小为 \(\tm{\sqrt n}\),对每个 \(u\in V\) 计算 \(d(u, S)\),时间 \(\tm{m\sqrt n}\)。
找到 \(w\) 使得 \(d(w, S)\) 最大,设 \(T = \{v : d(w, v) < d(w, s)\}\),则有很大概率 \(T\) 的大小为 \(\tm{\sqrt n}\)。
从 \(S, T\) BFS 找到最长路径并返回,时间 \(\tm{m\sqrt n}\)。
Proof
考虑直径 \(D = d(a, b) = 3h\)。
如果存在 \(u\in S\) 使得 \(d(a, u) \geq 2h\) 或 \(d(b, u)\geq 2h\),则算法正确。
否则对任意 \(u\in S\),\(h < d(u, a), d(u, b) < 2h\)。于是 \(d(w, S) \geq d(a, S) > h\)。
如果 \(d(w, a)\geq 2h\) 或 \(d(w, b) \geq 2h\),则算法正确。
否则 \(d(w, b) > h\)。考虑 \(w\) 到 \(b\) 的最短路上的第 \(h\) 个点 \(y\)。因为 \(d(w, S) > h\),所以 \(y\in T\)。而 \(d(y, b) < h\),所以 \(d(y, a)\geq 2h\),算法正确。\(\square\)
Hardness of Diameter [Roditty, V. Williams 2014]
不存在 \(\tm{m ^ {2 - \d}}\) 的比 1.5 近似更好的近似直径算法。
对每个向量 \(u, v\) 和下标 \(i\) 建立结点。
- 如果 \(u_i = 1\),则在 \((u, i)\) 之间连边。
- 如果 \(v_i = 1\),则在 \((v, i)\) 之间连边。
- 在 \((u, S)\),\((S, i)\),\((i, T)\),\((T, v)\) 之间连边。
如果 \(u \cdot v = 0\),则 \(d(u, v) = 3\),否则 \(d(u, v) = 2\)。因此 \(D = 3\) 当且仅当存在 \(u\cdot v = 0\)。
Single Source Reachablity (SSR):给定一张有向图 \(G\) 和源点 \(s\),支持加边、删边并查询 \(s\) 可达的点的数量。平凡做法的更新时间为 \(\tm{m}\),是否存在 \(\tm{m ^ {1 - \d}}\) 的算法?
OV to SSR [Abbound, V. Williams 2014]
对所有 \(v\),如果 \(v_i = 1\),则连边 \(i\to v\)。
对每个 \(u\),恰好连出 \(s\to i\) 满足 \(u_i = 1\)。如果 \(u\cdot v = 0\),则 \(u\) 不可达 \(v\)。
事实上,只要 APSP,3SUM 或 SETH 有一个是真的,那么 SSR 就需要线性的更新时间。

浙公网安备 33010602011771号