交替量词一定更困难吗?
考虑如下两个问题.
问题 1 (SAT). 给定一个多项式大小的布尔表达式 \(C\), 问是否存在一组赋值 \(x\) 使得 \(C(x)\) 被满足.
问题 2 (QBF). 给定一个多项式大小的布尔表达式 \(C\), 问 \(\exists x_1 \forall x_2 \exists x_3 \cdots x_n C(x)\) 的答案.
上面哪个问题更加困难呢? 对于计算理论有基本了解的同学知道, 第一个问题是 NP 完全的, 而第二个问题是 PSPACE 完全的, 而显然 \(\mathsf{NP}\subseteq \mathsf{PSPACE}\), 所以第二个问题更加困难.
但是复杂度类给出的困难性, 主要体现在所有解决 QBF 的算法都可以解决 SAT. 从具体的解决两个问题实例来说, 事情可能并不这么显然.
具体来说, 对于 SAT 而言, 人类还没有找到 \((2-\delta)^n\) 复杂度的算法, 甚至认为不存在这样的算法 (也就是所谓的强指数时间假设, Strong Exponential Time Hypothesis).
但是对于 QBF 而言, 问题似乎却不是这样. 这个问题看起来是一个博弈, 我们可以用剪枝的思想来考虑.
如果一个 \(\exists\) 位置答案是 \(1\), 那么如果 \(x = 0\) 的时候已经知道是 \(1\), 就不需要搜索 \(x=1\) 的分支了. 我们可以考虑随机化: 对于对于博弈树上的每个位置, 我们随机选择一个分支, 先看这个分支的答案能否直接确定这个节点的值, 如果不能再看另一个分支.
那么我们记 \(f_n\) 表示 \(n\) 层的树先手必胜的时候, 最坏期望 dfs 到的叶子节点数量, \(g_n\) 表示先手必败的时候, 最坏期望 dfs 到的叶子节点数量. 那么我们有如下的递推式: \(g_n \leq 2f_{n-1}\), 而 \(f_n \leq \max(g_{n-1}, g_{n-1} + \frac 12 f_{n-1})\). 总而言之, \(f_n\leq g_{n-1} + \frac 12 f_{n-1}\).
因此, 我们有 \(f_n \leq \frac 12 f_{n-1} + 2f_{n-2}\), 解得 \(f_n \leq O(\alpha^n)\), 其中 \(\alpha = \frac 14 (1 + \sqrt{33}) \approx 1.686\).
这给了我们什么启示呢? 可能也没有太多启示, 但是至少再次提醒我们, 对于具体的时间/空间度量而言, 问题的难度和参数的选择有很大关系, 也不能直接通过复杂度类的大小进行比较.