P/NP问题是在理论信息学中计算复杂度理论领域里至今没有解决的问题,它被“克雷数学研究所”(Clay Mathematics Institute,简称CMI)在千禧年大奖难题中收录。
P/NP问题中包含了复杂度类P与NP的关系。1971年史提芬·古克(Stephen A. Cook)和Leonid Levin相对独立的提出了下面的问题,即是否两个复杂度类P和NP是恒等的(P=NP?)。
首先,就算P=NP,要摧毁依赖困难问题的学科,首先你要
P=NP是一个constructive proof。也就是说,某个人需要给出解决NP的P算法,而不是证伪P!=NP,后者的证明仅仅证明了一个数学命题,没有任何现实意义;
就算有人给出了NP的P算法,要实用这个算法也必须在现实中效率足够高。比方说,如果这个算法的复杂度是
O
(
n
1000000000000000000000000000000000
)
,那么就算这是P,可能在现实生活中,只要增加足够多的位数,那么这些加密算法都无法在可行时间内被破解。
另外,密码学其实依赖的定理比P!=NP更强。
P=NP虽然是个很重要的问题,但是他对现实的影响可以说并没有十分大。如果大家要讨论这个问题,首先得对这个问题的概况有一定程度的了解。Scott Aaronson写了一片冗长的survey[1],大家感兴趣的话可以去看一看。据说,P=NP的解决保守估计可能还需要100年的时间。