PCP - Probabilistic Checkable Proof

PS: PCP可以说是理论计算机领域近20年来的最重要的结果之一,它给了NP问题一个新的刻画,并且提供了一种证明近似算法下界的方法。下面是yijia写的PCP介绍。

作者:yijia

我们可以从最基本的NP开始。一般NP的定义是基于nondeterministic Turing machine,但我们也可以用类似于Interactive Proof的系统来刻画:

一个语言Q是在NP内当且仅当存在一个多项式时间的算法V  (i.e., prover) 满足下面一系列条件:

  1. V有两个输入xy,并且|y|=poly(|x|)
  2. 对于任意的x, 我们有
    2.1. 如果x \in Q,那么存在一个y使得V(x,y)=1,i.e., V accepts (x,y);
    2.2 如果x \not\in Q,那么对于任意y都有V(x,y)=0,i.e.,V rejects (x,y).

在2.1中,y可以看成是x \in Q 的一个证明。对于3Sat问题,我们可以设计这样的V: x是一个3CNF公式,而y是一个对x中所有变元的赋值。Prover V就是用来验证y是否满足x。直观上V必须读完整个y才能确认x\in Q。 那么有没有可能改进这一点,让V只读y的一部分,来增加效率? 比如现有的Graph Minor Theory的证明有几百页,如果只要其中几页就能确认其正确那么就会省去Reviewer的很多时间。如果V是个确定时间的算法,这就等价于要求|y|=o(|x|)。那么如果每个NP问题都有这样的Prover, 我们就可以证明NP包含Subexponential Time里。一般公认这不可能成立。

但如果我们允许V使用Randomness,问题就开始变得有趣了。这也就是Probabilistic Checkable Proof (PCP)。

要定义一个PCP系统, 我们先要给定两个函数r,q: N \rightarrow N。我们说一个随机算法V是一个(r(n),q(n))-restricted verifier, 如果V在输入(x,y)上使用O(r(|x|))位随机数,访问yO(q(|x|))位。直观上,V 扔了O(r(|x|))个骰子,然后根据结果去访问证明y 的O(q(|x|))位。 当然V还要是一个多项式时间算法,|y|=poly(|x|), 同时满足所谓的non-adaptive条件(写起来太罗嗦了,所以就不写了)。

我们说这样的V定义了一个语言Q当且仅当对于任意的x, 我们有
(a) 如果x \in Q,那么存在一个y 使得Pr[V(x,y)=1]=1;
(b) 如果x \not\in Q,那么对于任意y都有Pr[V(x,y)=1]<1/2.

要注意的是并不是所有的V都定义了一个语言,因为(b)不是总能满足的。

非常壮观的PCP定理就是

Theorem 1. NP=PCP(\log n,1)

也就是说,对于每个NP语言我们都可以构造一个V,在每个(x,y)上,仅使用O(\log|x|)位随机数,访问证明y中的常数多位,就能以很高的概率正确判断是否x \in Q

由于可以证明PCP(\log n,1)对于多项式时间规约(PTIME reductions)封闭,所以PCP定理也可以叙述为

Theorem 2. 3Sat \in PCP(\log n,1)

除了本身非常有趣和counter intuitive,PCP的一个重要应用就是近似算法的下界:

Corollary. 如果NP\neP, 那么Max-3Sat没有PTAS,同时Max-Clique不存在constant approximation。

这个结论的证明就是通过PCP,构造所谓的Gap Instances:给定常数\delta \in (0,1)Gap_\delta-3Sat是如下的问题

input: 一个3CNF公式x使得要么存在一个满足x的赋值,要么所有的赋值最多满足\delta-fraction的clauses。
question:x 是否可满足?

Corollary 3. 存在一个\delta,使得存在一个3Sat到Gap_\delta-3Sat的规约。

实际上我们可以证明

Theorem PCP定理成立当且仅当上面的Corollary成立。

现在PCP定理有两个证明:一个就是由Arora,Sudan等人在90初完成的基于代数的方法,直接证明Theorem 2。证明的核心某种意义上就是Error Correcting Code。另一个就是Dinur前几年完成的基于Expander的组合方法,直接证明Cororllary 3。前者的证明很长,但实际上比较初等,而后者短一些且非常漂亮。

查看更多关于, , , 的内容。

你可能感兴趣的
相关文章

5条留言 -> 跳到留言表格

  • At 2008.10.19 17:30, 严酷的魔王 said:

    沙发~

    如果NP=P是不能被证明或者否定的怎么办?

    • At 2008.10.21 10:16, yijia said:

      PCP成立与否与NP=P无关。当然如果NP=P,那么其证明就变得trivial了。
      甚至我们有NP=PCP(1,1)。

      但通过PCP定理证明近似算法下届的时候,我们需要NP \ne P的假设。

    • At 2008.10.19 19:19, b2bdata said:

      写这样含有数学符号的文章,很辛苦吧

      • At 2008.10.19 19:51, zhiqiang said:

        我开发了一个WordPress插件Latex,可以直接在文章里面引用latex符号,所以写公式也没有多麻烦

      • At 2008.10.24 13:46, FDY1045 said:

        有一次听过PCP的报告.很有趣

        (Required)
        (Required, not published)

          B | I | U | D | 添加链接 | 插入引用 | 插入代码 | 插入表情 | | + | ?
        guest | 注册 | BBS | 管理 | English | 繁體 | https
        Loading...
        Loading...
        Loading...