既不是P也不是NP完全的NP问题
2015-04-23 17:36
183 查看
介绍
P=?NPP\overset{?}{=}NP问题是计算复杂性理论里面最重要的问题之一,它的重要性在于如果P=NPP=NP是成立的那么life is easy,因为这意味着如果一个问题是容易验证的那么也会容易解决。不过目前的主流观点更倾向于认为P≠NPP\not=NP,因为一方面这是密码学里面很多hard assumption的基础,另一方面现在的很多结果也支持这一结论。本文讨论的问题是:如果P≠NPP\not=NP,那么是否存在一个问题既不属于PP也不属于NPCNPC?
这个问题的答案是肯定的,它最初由Ladner证明,我们接下来给出这个证明。
Ladner′s\mathrm{Ladner's} theorem
Ladner证明的主要思路是构造一个可计算集合AA使得其属于NPNP,使其增长的比PP要“快”,但比NPCNPC“慢”。令M1,M2,⋯,Mn,⋯M_1,M_2,\cdots,M_n,\cdots是所有确定性多项式图灵机的一个枚举,使得Mi(x)M_i(x)在|x|i|x|^i的时间内给出判定。类似的,令fif_i表示对所有多项式时间可计算函数的枚举。
我们给出如下两个条件:
Ri:A≠L(Mi)R_i:A\not=L(M_i)
S_i:Si:S_i:对任意xx,要么x∈SATx\in SAT且fi(x)∉Af_i(x)\not\in A,要么x∉SATx\not\in SAT且fi(x)∈Af_i(x)\in A
我们定义集合AA如下:A={x∣x∈SAT 并且 f(|x|) 是偶数}A=\{x\mid x\in SAT\text{ 并且 }f(|x|)\text{ 是偶数}\}注意到,如果f(n)f(n)能在poly(n)\mathrm{poly}(n)内计算完成,那么A∈NPA\in NP。
我们递归的定义f(n)f(n)。首先,令f(0)=f(1)=2f(0)=f(1)=2。若n>1n>1,我们定义f(n+1)f(n+1)为:如果logf(n)(n)≥n\log^{f(n)}(n)\ge n,那么令f(n+1)=f(n)f(n+1)=f(n)。否则,考虑一下两种情况:
f(n)=2i: f(n)=2i:\ 检查是否存在xx满足|x|≤log(n)|x|\le \log(n)使得满足下面两者之一
Mi(x)M_i(x)接受,并且f(|x|)f(|x|)是偶数与x∈SATx\in SAT不同时满足
Mi(x)M_i(x)拒绝,并且f(|x|)f(|x|)是偶数与x∈SATx\in SAT同时满足
如果这样的xx存在,那么f(n+1)=f(n)+1f(n+1)=f(n)+1,否则f(n+1)=f(n)f(n+1)=f(n)。
f(n)=2i+1: f(n)=2i+1:\ 检查是否存在xx满足|x|\le \log(n)|x|≤log(n)|x|\le \log(n)使得满足下面两者之一
x∈SATx\in SAT,并且f(|fi(x)|)f(|f_i(x)|)是偶数与fi(x)∈SATf_i(x)\in SAT不同时满足
x∉SATx\not\in SAT,并且f(|fi(x)|)f(|f_i(x)|)是偶数与fi(x)∈SATf_i(x)\in SAT同时满足
如果这样的xx存在,那么f(n+1)=f(n)+1f(n+1)=f(n)+1,否则f(n+1)=f(n)f(n+1)=f(n)。
由于f(n)f(n)的计算只检查了|x|≤log(n)|x|\le \log(n)的xx并且|x|i≤logi(n)≤logf(n)(n)≤f(n)|x|^i\le \log^i(n)\le \log^{f(n)}(n)\le f(n)所以f(n)f(n)能在poly(n)\mathrm{poly}(n)内计算完成。
我们现在来讨论为什么A∉PA\not\in P。注意到当f(n)=2if(n)=2i时的条件等价为A≠L(Mi)A\not=L(M_i),如果A=L(Mi)A=L(M_i)对某个ii成立,那么f(n)f(n)将一直为偶数(n>in>i)即AA与SATSAT只有有穷个不同,这与P≠NPP\not=NP矛盾。
AA也不属于NPCNPC,这是因为f(n)=2i+1f(n)=2i+1的条件等价为SiS_i。所以若存在SATSAT到AA的一个归约函数fi(x)f_i(x),那么条件SiS_i将一直不满足,即f(n)f(n)一直为奇数(n>in>i)。这将导致AA为有限集合,这将使得SAT∈PSAT\in P(有限集合的计算为O(1)O(1)),与P≠NPP\not=NP矛盾。□\Box
Reference
[1]. http://oldblog.computationalcomplexity.org/media/ladner.pdf相关文章推荐
- 算法第八章NP完全问题作业
- NP完全问题作业
- 【算法概论习题解答】8.3证明吝啬SAT问题是NP-完全问题
- 《Algorithms》第8章:NP完全问题 学习笔记
- 【NP-完全问题】课后习题8.3
- 管理一个项目团队的问题就是要实现以十当一,而不是以一当十!世界上没有任何两个人是完全相同的,任何人管理自己的方式也没有完全一样的。因而以一当十的英雄式的工作方式不难实现,难的是把这些能以一当十的英雄聚到一起,变成以十当一的团队工作方式
- 证精确的4SAT是NP-完全问题
- 算法设计与应用基础:NP完全问题作业
- NP、NP-完全、NP-难问题
- 证明最大公共子图是NP-完全问题
- 8.15 证明最大公共子图为NP-完全问题
- NP完全问题证明:hitting set problem
- NP完全问题
- NP完全问题 8.12
- 【算法期末作业】8.3 证明STINGY SAT是NP-完全问题
- NP完全问题名单[转]
- NP完全问题 8.9
- NP完全问题
- 8.3 证明吝啬SAT问题是NP-完全问题
- 几个NP-完全问题的证明