随机算法与复杂度类:亚瑟 - 梅林层级与计数类详解
1. 亚瑟 - 梅林层级介绍
想象一下,强大的巫师梅林和国王亚瑟玩一个游戏,游戏的目标是共同解决某个问题,比如判断一对图 $G$ 和 $H$ 是否不同构。他们轮流行动,每一轮都像是一场博弈。梅林总是试图说服亚瑟,给定的图是非同构的,哪怕实际上它们是同构的。他的行动之一就是给出图非同构的证明。而亚瑟生性多疑,不相信这个狡猾的巫师。虽然他自己无法给出如此有力的证明,但他会通过抛硬币等随机选择来挑战梅林的证明。
从计算模型的角度来看,梅林可以用一个非确定性多项式时间机器(NP 机器)$M$ 表示,亚瑟则用一个随机多项式时间有界的图灵机 $A$ 表示。对于问题实例 $x$ 和要解决的问题 $L$,梅林的一次行动是给出 “$x \in L$” 的证明(或见证),他可以通过模拟 $M(x, y)$ 找到这个证明,其中 $y$ 编码了到目前为止的行动历史。亚瑟的一次行动则由 $A(x, y)$ 的计算决定,这个计算依赖于他的随机选择,$y$ 同样编码了之前的游戏历史。
就像多项式层级可以用交替的(多项式长度有界的)存在量词和全称量词描述一样,亚瑟 - 梅林游戏的思想可以用交替的(多项式长度有界的)存在量词和概率量词来捕捉。存在量词 $\exists$ 代表梅林的一次行动,是一个 NP 计算;概率量词 $\exists^+$ 代表亚瑟的一次行动,是一个有界误差概率多项式时间(BPP)计算。由此,我们得到了一个复杂度类的层级,即亚瑟 - 梅林层级。
亚瑟 - 梅林层级的各级复杂度类定义如下:
| 复杂度类 | 定义 |
| ---- | ---- |
| $A$ | $(\exists^+ \mi
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



