第165章 NPC,真不是很难!
66读书 www.66dushu.com,最快更新学霸的无限!
所谓“P=NP?”问题,“?”才是关键。
因为不知道等不等于,需要证明的就是等不等于。
简单点的说,计算机解不同的题目,就是将之拆分成加加减减这样最基础的运算。
所以一道题究竟有多难……嗯,主要是对计算机多难,就取决于可以拆分成多少步,或者说花多少时间——计算机基础运算的时间基本一样,所以忽略空间方面的因素,二者大致等价。
这叫时间复杂度,用大O也叫渐进符号表示。
O(1)就是常数级复杂度——最常规的计算,数据规模增加多少,运算花费时间也随之增加多少。
O(logn)就要复杂一点了。
然后还有O(n),O(nlogn),O(n^),O(n!),O(n^n)……
一级一级,难度逐层上升,解题所用时间花式暴涨。
其中O(n^c)之下,是多项式时间内能解决的,就叫做P类问题。
在此之上的,虽然会随着n的增长,出现指数级甚至更过分的暴涨,却有一个共同点,就是正向解很难,给你一个答案去验证,一般就不难了。
比如大数的质因数分解。
想知道一个大数是不是素数很难,需要从2开始,一直除到根下n。
但告诉你它能被某个数整除,你去验证,则就几步的事。
这类可以在多项式时间里验证的问题,就叫做NP问题。
显然所有P类问题,都是NP问题,因为是简单可验证的。
但NP类问题,是否都是P类问题?是否存在某些特殊的算法,能将这些问题的难度降低到多项式时间可以解决,就仿佛给答案去验证的程度上去呢?
这就是“P=NP?”了。
在研究的过程中,又诞生出了NPP-hard问题。
所谓NPP问题可以约化成为的一类问题。
只要解决这样一个问题,就可以附带的解决一大票问题。只要证明了NPC问题有快速算法,就基本证明了P=NP。
【NP-hard就不说了,这是一类包括NPPC的问题,定义是超出NP的,所以和这道题没什么关系。】
最初所有人都以为NPC只是空想,直到真的出现了这样一个问题
也就是NPC的鼻祖——逻辑电路问题。
此后一大堆NPC冒出来,因为要证明新的NPC,只要将之归约为已知的NPC就行了,于是哈密顿回路、TSP问题、SAT问题、背包问题、旅行商问题,都变成了NPC。
不过出这道题的人一定没看到叶寒那篇关于蛋白质折叠的论文……
或者看到了还没来得及改;
也可能想改但是落子无悔,改不了了……
如果P=NP被证明,那整个世界,都会变得与我们认为的完全不同。
灵感与创造将没有任何价值,因为所有问题的解,都可以用努力的算法解决,而且在多项式时间内。
就仿佛是,任何能够欣赏交响乐的人,都能成为莫扎特;每个懂得数学论证的人,都是高斯;每个研究投资策略的人,都可以是巴菲特……
同样道理,预测蛋白质折叠再不需穷举,多项式时间就可以得到确定答案。
怎么可能!
所以对于P=NP?问题,叶寒是倾向于业界多数意见的——不成立。
不过他也没有能够成功证明或证伪,只是提出了某一类NPPC问题并不等价——这已经很强大了。
更强大的是,他搞出了这类问题的混沌模型,并给出了对应的三维流形吸引子,简称叶氏吸引子,然后结合某种空间密铺算法,进行了大幅优化修正。
绝大多数人都知道相对论,知道量子力学,也听过混沌两个字,但不一定知道,混沌理论,和量子力学、相对论并列,被认为二十世纪科学领域的最伟大发现。
很多人说,物理学已经一百多年没有像样的进展了,混沌的发现,绝对算是一个。
从三体问题,到湍流,到分子热运动……包括生物种群、天文研究,无处没有混沌的影子。
虽然仍旧很难给出确切的答案,毕竟混沌问题很难有确切答案,否则就不叫混沌了。
但也算成功给出了这类题型多项式时间内求解的优化算法。
十分幸运,米村给出的题目中,就有一道属于被他解决掉的那一系列的。
虽然表面看上去和蛋白质折叠毫无关系,其实只要证明归约一下,就可以简单复制粘贴了……
==========
到底要不要给出证明呢?
因为给了,就难免被看到了,虽然发表过了,不是又被回收了吗?
叶寒确认的问了一下:“我这证明是肯定没有问题的,不过……你确定出题的人,能看懂我的证明吗?”
这个事一点都不好笑。
提出三大尺规作图不能问题的希腊人,能看懂万芝尔和林德曼的证明吗?
意大利的塔塔利亚、卡尔达诺,看得懂伽瓦罗的群论吗?
就算费马,看得懂安德鲁·怀尔斯那130页的论文吗?
提出问题者,根本没理解自己提出的问题到底有多难,这在数学界稀松平常。
甚至可以说,每一个著名的猜想,都存在同样的问题——猜想岁数不够大,活的时间不够久,那肯定不著名不牛哔。
而只要牛逼,证明过程一定是极复杂的,出题者几乎不可能看懂的。
叶寒论文通过,当初可是经过了长达数月的同行评议的。
米国人那边实力再强,叶寒觉得,想凑齐有资格给自己做评议的同行人数,都是极难的。甚至一个没有的概率,都要远远大过有。
为什么?
如果有,那对宇宙本质,还有量子力学、万有理论这些方面的研究,早应该取得一定进展了,华夏村这边就算参与不进去,也该有所听闻的,但并没有。
如果有,守关题目多半不会如此老旧,拾人牙慧;对外村的策略,想来也不会如此封闭保守不自信……
【哦,他们给出了几组参数,你将参数代入解法,只要规定时间内给出的答案正确,就可以了。】
果然……叶寒忍不住推眼睛。
NPC问题虽然都没有多项式内的最佳解法,却也有不少逼近的算法,什么贪婪算法、分治算法、动态规划算法、遗传算法……
这帮人给出的验证解,十有八九只要算法蒙对了,明明不对也会被认为对。
其实他的算法也是一种逼近算法,只不过能在任何给定的尺度,达到需要的精度,跟那些粗糙low哔的算法完全不是一个档次。
“我可以保证我的算法足够准确,可没法保证那些人给的解足够正确……”
看不懂论文,得靠黑箱测试,如此露怯,叶寒对这帮人给的答案可不乐观。
考试的时候,出题人给错答案的事情难道还少吗?
如此说着,他向系统讨了参数,开始代入验证。
有点意外,虽然这七八组参数数据很多位数很长,复杂度极高,对方给出的答案竟然完全正确。
所以,一遍过!
叶寒的身体,开始欻欻闪光!
【(づ ̄3 ̄)づ…………】
卧去卧去卧去卧去!这家伙真做出来了!