“局部随机访问并不足以唯一确定一个模型。性质测试通常查询待测对象本身;概率可检验证明查询额外提供的证明,统计查询得到的则是分布下期望值的近似。可选择坐标、IID 抽样和条件采样也有不同的信息能…”
形式陈述 ​
设
其中
证明 oracle 在随机性产生前已经固定,不能看见查询后临时改答。验证者运行时间、随机 bit 数、查询数和证明长度是不同资源;给定多项式时间地址计算时,可访问位置的编码长度受多项式约束,但具体定理仍应声明证明长度保证。
直觉 ​
PCP 的目标不是从原始见证中随便抽几位,而是先把证明编码成带大量冗余和局部一致性约束的对象。随机性选择少量检查位置;若伪造证明在全局上远离任何合法编码,许多局部约束会被破坏,于是常数次抽查也有固定概率抓到错误。
局部读取不表示证明短,也不表示验证者与证明者交互。随机验证者只访问一份预先写定的字符串;这一顺序正是 soundness 中“对所有
例子与边界 ​
每个
把普通 SAT 赋值原样当作 proof,再随机检查一个子句,并不能在一般公式上自动得到常数 soundness:一个不满足公式可能只违反极少数子句,随机抽查几乎总会错过。PCP 构造需要 gap amplification、低度测试或 proof composition 等机制,把全局错误扩散成可局部察觉的距离。
若 proof oracle 可以在看到查询后改变答案,两个互相矛盾的局部测试可能分别得到量身定制的回应,soundness 推导便失效;那更接近交互证明模型。重复独立运行验证者可以降低 soundness error,但会相应增加随机性和查询数,参数变化必须一并报告。
推论与应用 ​
PCP 记号把“随机多少、读多少、接受正确证明的概率、误收伪证明的概率”拆成可比较参数。它连接编码、局部测试和近似困难性:局部可检验约束提供常数 gap,归约再把这一 gap 传给优化问题。没有相应定理时,定义本身不保证任意 NP 语言具有常数查询证明。
与语言的普通验证定义相比,PCP 把完整读取证书改为 oracle 查询;与交互证明相比,它没有多轮消息;与 property testing 相比,proof 是额外提供的辅助对象。三者都使用随机抽样,但量词顺序与被查询对象不同。
参考资料
- Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach, Cambridge University Press, 2009, Chs. 11 and 22.
- Sanjeev Arora, Carsten Lund, Rajeev Motwani, Madhu Sudan, and Mario Szegedy, “Proof Verification and the Hardness of Approximation Problems,” Journal of the ACM 45(3), 1998, pp. 501–555.