日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

浅谈P/NP问题

發(fā)布時(shí)間:2024/3/12 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈P/NP问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  克雷數(shù)學(xué)研究所(Clay Mathematics Institute,CMI)是在1998年由商人蘭頓·克雷(Landon T. Clay)和哈佛大學(xué)數(shù)學(xué)家亞瑟·杰夫(Arthur Jaffe)創(chuàng)立,蘭頓·克雷資助的一家非牟利私營(yíng)機(jī)構(gòu),總部在麻薩諸塞州劍橋市,機(jī)構(gòu)的目的在于促進(jìn)和傳播數(shù)學(xué)知識(shí)。克雷數(shù)學(xué)研究所給予有潛質(zhì)的數(shù)學(xué)家各種獎(jiǎng)項(xiàng)和資助,該研究所在2000年5月24日公布的七個(gè)千禧年難題,它們是:

  (1)霍奇猜想

  (2)龐加萊猜想

  (3)黎曼假設(shè)

  (4)楊-米爾斯規(guī)范場(chǎng)存在性和質(zhì)量間隔假設(shè)

  (5)NS方程解的存在性與光滑性

  (6)貝赫和斯維訥通-戴爾猜想

  (7)P=NP?

  這七個(gè)問(wèn)題被研究所認(rèn)為是“重要的經(jīng)典問(wèn)題,經(jīng)許多年仍未解決”。解答任何一題的第一個(gè)人將獲頒予一百萬(wàn)美元獎(jiǎng)金,所以這七個(gè)問(wèn)題共值七百萬(wàn)美元。

  近20年過(guò)去了,在這7個(gè)問(wèn)題中,只有龐加萊猜想得到了解決。對(duì)于普通的程序員來(lái)說(shuō),前6個(gè)難題或許過(guò)于遙遠(yuǎn),但是你一定聽(tīng)說(shuō)過(guò)NP問(wèn)題的大名。

水滸英雄卡的故事

  在我讀高中的時(shí)候,小浣熊干脆面中的水滸英雄卡曾經(jīng)風(fēng)靡一時(shí)。當(dāng)時(shí)1998年央視版的《水滸傳》剛開(kāi)播不久,再加上課本上《魯提轄拳打鎮(zhèn)關(guān)西》和《林教頭風(fēng)雪山神廟》的助攻,同學(xué)們收集英雄卡的熱情空前高漲。

  卡片雖然精美,但是每袋干脆面只有一張英雄卡,想要收集齊全頗為不易。一個(gè)快速收集的辦法就是多買干脆面。當(dāng)時(shí)的高中生并沒(méi)有多少零花錢,最富裕的同學(xué)也不過(guò)每天買兩袋。在收集時(shí)也發(fā)現(xiàn)了另一個(gè)問(wèn)題,如果在同一家店買,那么得到重復(fù)英雄卡的幾率會(huì)大大增加,有個(gè)運(yùn)氣極差的同學(xué)連吃了兩星期干脆面,居然得到了十幾張豹子頭林沖。

  住校的同學(xué)紛紛求助于我這種走讀生,于是我每天多了一個(gè)任務(wù),在上學(xué)路上的每一所食雜店購(gòu)買小浣熊干脆面。

  英雄卡的人物漸漸豐富起來(lái),大家還互相交換,只是到了畢業(yè),仍然沒(méi)有人把全套英雄卡收集齊全。

  回顧水滸英雄卡的故事,無(wú)論是加大購(gòu)買量還是擴(kuò)大購(gòu)買范圍,都很難達(dá)成“收集全套卡片”的最終目標(biāo),整個(gè)過(guò)程費(fèi)時(shí)費(fèi)力又費(fèi)錢,還需要很大的運(yùn)氣成分。如果沒(méi)有網(wǎng)購(gòu)平臺(tái),我甚至都不知道是否真有人能夠集全。

  水滸英雄卡的故事就是一個(gè)P/NP問(wèn)題,它的焦點(diǎn)在于,集全英雄卡的過(guò)程是否能夠變得輕而易舉?

這些奇怪的名字

  計(jì)算機(jī)可以幫助我們解決很多問(wèn)題,但是仍有一部分問(wèn)題可能永遠(yuǎn)無(wú)法通過(guò)簡(jiǎn)單的計(jì)算得到答案,試著解答它們是計(jì)算機(jī)科學(xué)家和數(shù)學(xué)們的重要挑戰(zhàn)。人們給這類問(wèn)題了一個(gè)奇怪的名字——P/NP問(wèn)題。

P和NP

  我們討論的“有效”算法幾乎都是多項(xiàng)式時(shí)間算法,P/NP中的P就是指多項(xiàng)式時(shí)間(Polynomial)。一個(gè)復(fù)雜問(wèn)題如果能在多項(xiàng)式時(shí)間內(nèi)解決,它就被稱為P問(wèn)題,這意味著計(jì)算機(jī)很容易求解。

  NP問(wèn)題就是除了P問(wèn)題之外的問(wèn)題嗎?如果是就好了。世界總是很復(fù)雜,有時(shí)候我們并不用能證明一個(gè)問(wèn)題能在多項(xiàng)式時(shí)間內(nèi)解決,同時(shí)也沒(méi)法證明它不能在多項(xiàng)式時(shí)間內(nèi)解決,也就是說(shuō)這個(gè)問(wèn)題是懸案,在當(dāng)下看起來(lái)沒(méi)法有效解決,但是誰(shuí)也說(shuō)不準(zhǔn)在未來(lái)是否能很容易解決。對(duì)于這類問(wèn)題,簡(jiǎn)單地歸為非P類問(wèn)題就不和合適了,就像我們無(wú)法把建立月球基地和建立銀河星系聯(lián)盟歸為非P類問(wèn)題。

  NP問(wèn)題不是非P類問(wèn)題,NP不是“Not P”的意思,NP指非確定性多項(xiàng)式時(shí)間(nondeterministic polynomial)。NP問(wèn)題強(qiáng)調(diào)的不是“是否能在多項(xiàng)式時(shí)間內(nèi)找到解”,而是“是否能夠在多項(xiàng)式時(shí)間內(nèi)驗(yàn)證解”,如果一個(gè)問(wèn)題的解可以在多項(xiàng)式的時(shí)間內(nèi)被驗(yàn)證,那么這個(gè)問(wèn)題就是NP問(wèn)題。

  我們?cè)?密碼疑云 (3)——詳解RSA的加密與解密?中曾提到了RSA加密機(jī)制的原理:“將兩個(gè)大素?cái)?shù)相乘很容易,但是想要對(duì)它們的乘積進(jìn)行素因子分解卻極其困難”。假如有人告訴你3999991可以分解成兩個(gè)素?cái)?shù)的乘積,也許你不知道可以分解成哪兩個(gè)素?cái)?shù),但是如果告訴你這兩個(gè)素?cái)?shù)是1997和2003,那么你很容易計(jì)算出1997×2003=3999991。

  大整數(shù)的素因子分解就是典型的NP問(wèn)題,有沒(méi)有多項(xiàng)時(shí)間的分解算法并不重要,重要的是如果有人給了你兩個(gè)素?cái)?shù),你很容易驗(yàn)證這兩個(gè)素?cái)?shù)的乘積是否是那個(gè)大整數(shù)。這符合一般的認(rèn)知:在大多數(shù)時(shí)候,驗(yàn)證一個(gè)解比得到一個(gè)解更容易。

  既然能在多項(xiàng)式時(shí)間內(nèi)解決一個(gè)問(wèn)題,必然也能在多項(xiàng)式時(shí)間內(nèi)驗(yàn)證這個(gè)問(wèn)題的解,這意味著所有的P問(wèn)題都是NP問(wèn)題,P∈NP。

P=NP?

  大約在公元前4200年,古代埃及人按尼羅河水的漲落和農(nóng)作物生長(zhǎng)的規(guī)律,把一年分為泛濫季、耕種季、收獲季3個(gè)季節(jié),每季分為4個(gè)月,每月30天,歲末增加5天節(jié)日,共計(jì)365天。

  5000多年前,中國(guó)就有《陰陽(yáng)歷》,每年366天。魏晉南北朝(公元220年~公元518年)時(shí)期,祖沖之制定《大明歷》,首次將歲差計(jì)算入內(nèi),每年365.2428天,與現(xiàn)在的精確測(cè)量值僅相差52秒。

  古代瑪雅人已經(jīng)知道了一些天體的精確運(yùn)行周期,他們測(cè)得太陽(yáng)年的長(zhǎng)度是365.2420天,比現(xiàn)代的測(cè)量值365.2422只至少了0.0002天,相當(dāng)于17.28秒。

  經(jīng)過(guò)漫長(zhǎng)的歲月,不同的文明在不同的時(shí)期分別獨(dú)立發(fā)現(xiàn)了地球公轉(zhuǎn)的規(guī)律,從而制定了歷法,這至少?gòu)恼軐W(xué)上證明“歷法”這一概念是真實(shí)存在的。類似地,在不同時(shí)期的人們對(duì)很多不同領(lǐng)域問(wèn)題的研究中,也都不約而同地提出了相同的問(wèn)題——是否所有的NP問(wèn)題都是P問(wèn)題?也就是說(shuō),是否所有能夠在多項(xiàng)式時(shí)間內(nèi)驗(yàn)證的問(wèn)題都可以在多項(xiàng)式時(shí)間內(nèi)解決?這個(gè)問(wèn)題被簡(jiǎn)稱為“P=NP?”

  所謂的“P/NP問(wèn)題”,其實(shí)就一句話:證明或推翻P=NP。只要證明一個(gè)任意規(guī)模下的NP問(wèn)題都可以在多項(xiàng)式時(shí)間內(nèi)求解,就可以說(shuō)對(duì)于該問(wèn)題P=NP,即該問(wèn)題是一個(gè)P問(wèn)題。

NPC問(wèn)題

  我經(jīng)常聽(tīng)到程序員們?cè)谟懻搯?wèn)題時(shí)說(shuō):“××是NP問(wèn)題,只能用蠻力法。” 程序員們的說(shuō)法并不完全準(zhǔn)確,NP問(wèn)題可沒(méi)有強(qiáng)調(diào)非得用蠻力法,只強(qiáng)調(diào)了在有解的情況下可以輕松地驗(yàn)證解,他們真正指的應(yīng)該是NPC問(wèn)題。

  NPC問(wèn)題也稱NP完全問(wèn)題,是NP-Complete的縮寫。NPC問(wèn)題滿足兩點(diǎn),首先,NPC問(wèn)題肯定也是NP問(wèn)題;其次,所有NP問(wèn)題都能夠在多項(xiàng)式時(shí)間內(nèi)規(guī)規(guī)約到NPC問(wèn)題。為什么要將NP問(wèn)題規(guī)約到NPC問(wèn)題呢?這是因?yàn)槿藗儼l(fā)現(xiàn)某些NP問(wèn)題的復(fù)雜性與整個(gè)類的復(fù)雜性相關(guān)聯(lián),如果這些問(wèn)題中的任何一個(gè)存在多項(xiàng)式時(shí)間的算法,那么所有該類問(wèn)題都是多項(xiàng)式時(shí)間可解的。這也符合常理,NPC問(wèn)題是NP問(wèn)題規(guī)約來(lái)的,所以NPC問(wèn)題的難度一定大于NP問(wèn)題,只要能在多項(xiàng)式時(shí)間內(nèi)解決NPC問(wèn)題,那么NP問(wèn)題也能在多項(xiàng)式時(shí)間內(nèi)解決,此時(shí)NP問(wèn)題也就變成了P問(wèn)題,P=NP。

  在《西游記》的第二回中,孫悟空學(xué)成本領(lǐng)回到花果山后,得知很多猴子猴孫被混世魔王擄走,連水簾洞中的石盆、石碗也被搶了去。大怒的孫悟空在混世魔王的老巢將其“照頂門一下,砍為兩段。領(lǐng)眾殺進(jìn)洞中,將那大小妖精,盡皆剿滅。”在解救了眾猴后,對(duì)眾道:

  “汝等跟我回去。”眾猴道:“大王,我們來(lái)時(shí),只聽(tīng)得耳邊風(fēng)聲,虛飄飄到于此地,更不識(shí)路徑,今怎得回鄉(xiāng)?”悟空道:“這是他弄的個(gè)術(shù)法兒,有何難也!我如今一竅通,百竅通,我也會(huì)弄。你們都合了眼,休怕!”

  花果山的小猴們顯然沒(méi)法在多項(xiàng)式時(shí)間內(nèi)“弄的個(gè)術(shù)法兒”,但是能很容易驗(yàn)證“弄的個(gè)術(shù)法兒”的結(jié)果,就是“只聽(tīng)得耳邊風(fēng)聲,虛飄飄到于此地”,因此可以把混世魔王的法術(shù)看作NP問(wèn)題。至于孫悟空,在學(xué)藝時(shí)從沒(méi)把猴子或類似的動(dòng)物攝到空中,只修習(xí)了筋斗云和七十二變,但由于七十二變是高端的NPC法術(shù),因此“一竅通,百竅通”,不僅能順利地把眾猴帶回花果山,還在后續(xù)的大鬧天宮和西天取經(jīng)路上施展過(guò)諸如三頭六臂、身外身、隱身法、定身術(shù)、元神出竅、法天象地、擔(dān)山趕月等其他NP法術(shù)。

  NPC問(wèn)題是在P問(wèn)題與NP問(wèn)題上的一個(gè)重大進(jìn)展,問(wèn)題是,想要在NPC問(wèn)題上找到一個(gè)多項(xiàng)式時(shí)間內(nèi)的算法出奇地困難,難倒人們甚至不相信存在這樣的算法,就像孫悟空的“一竅通,百竅通”一樣,反正我沒(méi)見(jiàn)過(guò)誰(shuí)能做到。

  另一個(gè)具有代表性的NPC問(wèn)題是銷售員旅行問(wèn)題(traveling salesman problem)。一個(gè)推銷員要從北京出發(fā),經(jīng)過(guò)上海、南京、杭州、南昌、廣州等n個(gè)城市,最后返回北京。每?jī)蓚€(gè)城市之間都有直達(dá)的飛機(jī)、高鐵等交通工具。銷售員的交通費(fèi)用預(yù)算是Q,他在每個(gè)城市僅駐留一次,是否存在這樣一個(gè)行程,銷售員既能遍歷所有城市,又能讓總費(fèi)用小于Q?

  有人說(shuō)這還不簡(jiǎn)單?從北向南走就好了。現(xiàn)實(shí)生活中也許我也會(huì)這么安排,但是加上預(yù)算費(fèi)用后就不是那么回事了。雖然上海到南京很近,但也許正好有一趟上海到廣州的特價(jià)航班,這時(shí)候又該怎么選擇呢?如果用蠻力法遍歷,3個(gè)城市間會(huì)產(chǎn)生2!種路線,10個(gè)城市會(huì)產(chǎn)生9!=362880種路線,20個(gè)城市會(huì)產(chǎn)生19!≈1.21×1017種路線,在這么多種路線中挑選,簡(jiǎn)直太可怕了。

  銷售員旅行問(wèn)題可以規(guī)約為圖論中一個(gè)著名的問(wèn)題,已給一個(gè)n個(gè)點(diǎn)的完全圖(圖中每?jī)蓚€(gè)頂點(diǎn)之間都存在權(quán)值已知的邊),求每個(gè)頂點(diǎn)正好遍歷一次,且總權(quán)值小于某個(gè)值的封閉回路。這是一個(gè)NPC問(wèn)題,迄今為止仍未一個(gè)找到一個(gè)能夠應(yīng)對(duì)大型問(wèn)題的有效算法。正是由于NPC問(wèn)題的存在,才使人們普遍相信P≠NP。

NP-hard

  NP-hard問(wèn)題也稱NP難題,從名字就知道,它是NP家族中最難的。NPC問(wèn)題屬于NP-hard問(wèn)題,所以NP-hard問(wèn)題肯定沒(méi)有能在多項(xiàng)式時(shí)間內(nèi)找到解算法,至少目前沒(méi)有。NP-hard問(wèn)題之所以hard,是因?yàn)閷?duì)于一些NP-hard問(wèn)題來(lái)說(shuō),即使給出解,也難以在多項(xiàng)式時(shí)間內(nèi)驗(yàn)證,所以NP-hard問(wèn)題未必是NP問(wèn)題。

  “難以在多項(xiàng)式時(shí)間內(nèi)找到解”容易理解,“即使給出解,也難以在多項(xiàng)式時(shí)間內(nèi)驗(yàn)證”又是怎么回事呢?我們把銷售員旅行的問(wèn)題稍作修改,求使銷售員能遍歷所有城市,每個(gè)城市僅駐留一次,且總費(fèi)用最小的行程。首先可以確定至少目前為止還不存在有效的算法,現(xiàn)在給了你一個(gè)解并告訴你這就是最終解,你如何確定它的正確性呢?辦法大概還是遍歷,把這個(gè)解與所有其它行程比對(duì),從而確定它是否是最優(yōu)的,驗(yàn)證解的復(fù)雜度仍然是n!。

  NP、NPC、NP-hard的關(guān)系:

?

如何面對(duì)NP問(wèn)題

  從廣義來(lái)說(shuō),在承認(rèn)P≠NP的前提下,NP問(wèn)題也指難以在多項(xiàng)式時(shí)間內(nèi)求解的問(wèn)題(本章所指的NP問(wèn)題都廣義的NP問(wèn)題)。在實(shí)際工作中,我們經(jīng)常會(huì)遇到很難解決的問(wèn)題,如果這些問(wèn)題是NP問(wèn)題,又該怎么辦呢?

琪琳的甜品創(chuàng)新程序

  琪琳是“甜品之家”的程序員,她為公司編寫了一個(gè)甜品創(chuàng)新的程序,這個(gè)程序能夠微調(diào)各種配料,找到最具口感的甜品。公司使用這個(gè)程序開(kāi)發(fā)了一系列爆款的產(chǎn)品,大賺了一筆。經(jīng)理最近突發(fā)奇想,打算制作一款“風(fēng)味獨(dú)特”的小甜餅,這款小甜餅不僅能夠滿足所有人的味蕾,甚者能讓一個(gè)獨(dú)眼蛤蟆開(kāi)心地笑起來(lái)。但是這次,被寄予厚望的程序失靈了,這可難壞了琪琳,連續(xù)加班一個(gè)月都沒(méi)有絲毫進(jìn)展。另一公室的劉闖得知了情況,拍拍琪琳的肩膀說(shuō):“這很明顯是個(gè)NP問(wèn)題,科學(xué)家都不相信有辦法解決。別浪費(fèi)腦細(xì)胞了,咱們一起去打乒乓球吧!” 琪琳恍然大悟,真的去打乒乓球了。沒(méi)過(guò)多久,經(jīng)理就以“工作不負(fù)責(zé)任”為由,扣掉了她的項(xiàng)目獎(jiǎng)金。

7個(gè)應(yīng)對(duì)辦法

  對(duì)于NP完全問(wèn)題,雖然我們確信無(wú)法找到一個(gè)快速的解決方案,但生活仍要繼續(xù),問(wèn)題還是要解決,此時(shí)不妨試試下面的7個(gè)辦法。

  1.?縮小問(wèn)題規(guī)模

  NP完全問(wèn)題之所以困難,最重要的原因之一就是搜索規(guī)模過(guò)于龐大,因此適當(dāng)?shù)乜s小問(wèn)題規(guī)模就成了需要首先思考的問(wèn)題。

  在構(gòu)建機(jī)器學(xué)習(xí)模型時(shí),經(jīng)常面對(duì)過(guò)于復(fù)雜的數(shù)據(jù)特征,這就需要用到數(shù)據(jù)降維技術(shù)。 數(shù)據(jù)降維,是解決數(shù)據(jù)“維數(shù)災(zāi)難”的有效手段,即通過(guò)某種數(shù)學(xué)變換將原始高維屬性空間轉(zhuǎn)變?yōu)橐粋€(gè)低維的“子空間”,從而極大地縮小的原始問(wèn)題的規(guī)模。

  實(shí)際上“降維”并不僅僅存在于機(jī)器學(xué)習(xí)和科幻小說(shuō)中,它就在我們身邊。《三國(guó)演義》為我們鋪開(kāi)了近100年的歷史畫卷,這里既有軍閥割據(jù)的混戰(zhàn),又有政治和軍事的爭(zhēng)斗,更有叱詫風(fēng)云的英雄人物。神奇的是,這些多維度的故事通過(guò)“文字”這一工具實(shí)現(xiàn)了有效的降維,從而有效縮小了問(wèn)題的規(guī)模,最終呈現(xiàn)在平面媒體上。

  除了降維外,設(shè)置約束條件也是縮小問(wèn)題規(guī)模的有效手段。

  在《三體2·黑暗森林》中,作為“面壁者”邏輯向大史提出了一個(gè)NP問(wèn)題——找一個(gè)二十歲左右的夢(mèng)中女孩兒:

羅輯啜了一口酒,坐到史強(qiáng)身邊:“大史啊,我求你幫個(gè)忙。在你以前的工作中,是不是常常在全國(guó)甚至全世界范圍找某個(gè)人?”“是。我對(duì)此很在行,找人嗎?”“當(dāng)然。那好,幫我找一個(gè)人,一個(gè)二十歲左右的女孩兒,這是計(jì)劃的一部分。國(guó)籍、姓名、住址?都沒(méi)有,她甚至連在這個(gè)世界上存在的可能性都很小。”大史看著羅輯,停了幾秒鐘說(shuō):“夢(mèng)見(jiàn)的?”羅輯點(diǎn)點(diǎn)頭:“包括白日夢(mèng)。”

  這個(gè)“二十歲左右的女孩兒”是邏輯夢(mèng)中的完美女友,人海茫茫,能否找到只能看緣分,甚至是否存在都說(shuō)不準(zhǔn),估計(jì)絕大多數(shù)人都會(huì)拒絕或敷衍這個(gè)找人的請(qǐng)求。但是閱人無(wú)數(shù)的大史警官并沒(méi)有回絕,而是嘗試讓客戶捋清需求,問(wèn)清這個(gè)女孩的具體長(zhǎng)相、愛(ài)好和其他屬性:

  “她是一個(gè),嗯,東方女孩,就設(shè)定為中國(guó)人吧。”羅輯說(shuō)著,拿出紙和筆畫了起來(lái),“她的臉型,是這個(gè)樣子;鼻子,這樣兒,嘴,這樣兒,唉,我不會(huì)畫,眼睛……見(jiàn)鬼,我怎么可能畫出她的眼睛?你們是不是有那種東西,一種軟件吧,可以調(diào)出一張面孔來(lái),按照目擊者描述調(diào)整眼睛鼻子什么的,最后精確畫出目擊者見(jiàn)過(guò)的那人?”

  “有啊,我?guī)У墓P記本里就有。”

  “那你去拿來(lái),我們現(xiàn)在就畫!”

  大史在沙發(fā)上舒展一下身體,讓自己坐得舒服些,“沒(méi)必要,你也不用畫了,繼續(xù)說(shuō)吧,長(zhǎng)相放一邊,先說(shuō)她是個(gè)什么樣的人。”

  羅輯體內(nèi)的什么東西好像被點(diǎn)燃了,他站起來(lái),在壁爐前躁動(dòng)不安地來(lái)回走著,“她……怎么說(shuō)呢?她來(lái)到這個(gè)世界上,就像垃圾堆里長(zhǎng)出了一朵百合花,那么……那么的純潔嬌嫩,周圍的一切都不可能污染她,但都是對(duì)她的傷害,是的,周圍的一切都能傷害到她!你見(jiàn)到她的第一反應(yīng)就是去保護(hù)她……啊不,呵護(hù)她,讓她免受這粗陋野蠻的現(xiàn)實(shí)的傷害,你愿意為此付出一切代價(jià)!她……她是那么……唉,你看我怎么笨嘴笨舌的,什么都沒(méi)說(shuō)清。”

  “都這樣。”大史笑著點(diǎn)點(diǎn)頭,他那初看有些粗傻的笑現(xiàn)在在羅輯的眼中充滿智慧,也讓他感到很舒服,“不過(guò)你說(shuō)得夠清楚了。”

  “好吧,那我接著說(shuō),她……可,可我怎么說(shuō)呢?怎樣描述都說(shuō)不出我心中的那個(gè)她。”羅輯顯得急躁起來(lái),仿佛要把自己的心撕開(kāi)讓大史看似的。

  邏輯提供了一大堆無(wú)助解決問(wèn)題的信息,僅僅是在需求外圍打轉(zhuǎn),這種場(chǎng)景是否似曾相識(shí)?于是大史開(kāi)始引導(dǎo)邏輯:

  大史揮揮手讓羅輯平靜下來(lái),“算了,就說(shuō)你和她在一起的事兒吧,越詳細(xì)越好。”

  羅輯吃驚地瞪大了雙眼,“和她……在一起?你怎么知道?”

  大史又呵呵地笑了起來(lái),同時(shí)四下看了看,“這種地方,不會(huì)沒(méi)有好些的雪茄吧?”

  “有有!”羅輯趕忙從壁爐上方拿下一個(gè)精致的木盒,從中取出一根粗大的“大衛(wèi)杜夫”,用一個(gè)更精致的斷頭臺(tái)外形的雪茄剪切開(kāi)頭部,遞給大史,然后用點(diǎn)雪茄專用的松木條給他點(diǎn)著。

  大史抽了一口,愜意地點(diǎn)點(diǎn)頭,“說(shuō)吧。”

  羅輯一反剛才的語(yǔ)言障礙,滔滔不絕起來(lái)。他講述了她在圖書館中的第一次活現(xiàn),講述他與她在宿舍里那想象中的壁爐前的相逢,講她在他課堂上的現(xiàn)身,描述那天晚上壁爐的火光透過(guò)那瓶像晚霞的眼睛的葡萄酒在她臉龐上映出的美麗。他幸福地回憶他們的那次旅行,詳細(xì)地描述每一個(gè)最微小的細(xì)節(jié):那雪后的田野、藍(lán)天下的小鎮(zhèn)和村莊、像曬太陽(yáng)的老人的山,還有山上的黃昏和篝火……

  在收集到一些信息后,大史開(kāi)始縮小問(wèn)題規(guī)模,將復(fù)雜的描述拆解成一個(gè)個(gè)定類屬性:

  大史聽(tīng)完,捻滅了煙頭說(shuō):“嗯,基本上夠了。關(guān)于這個(gè)女孩兒,我提一些推測(cè),你看對(duì)不對(duì)。”

  “好的好的!”

  “她的文化程度,應(yīng)該是大學(xué)以上博士以下。”

  羅輯點(diǎn)頭,“是的是的,她有知識(shí),但那些知識(shí)還沒(méi)有達(dá)到學(xué)問(wèn)的程度去僵化她,只是令她對(duì)世界和生活更敏感。”

  “她應(yīng)該出生在一個(gè)高級(jí)知識(shí)分子家庭,過(guò)的不是富豪的生活,但比一般人家要富裕得多,她從小到大享受著充分的父愛(ài)母愛(ài),但與社會(huì),特別是基層社會(huì)接觸很少。”

  “對(duì)對(duì),極對(duì)!她從沒(méi)對(duì)我說(shuō)過(guò)家里的情況,事實(shí)上從未說(shuō)過(guò)任何關(guān)于她自己的情況,但我想應(yīng)該是那樣的!”

  “下面的推測(cè)就是猜測(cè)了,錯(cuò)了你告訴我――她喜歡穿那種,怎么說(shuō)呢,素雅的衣服,在她這種年齡的女孩子來(lái)說(shuō),顯得稍微素了些。”羅輯呆呆地連連點(diǎn)頭,“但總有很潔白的部分,比如襯衣呀領(lǐng)子呀什么的,與其余深色的部分形成挺鮮明的對(duì)比。”

  “大史啊,你……”羅輯用近乎崇敬的目光看著大史說(shuō)。

  史強(qiáng)揮手制止他說(shuō)下去,“最后一點(diǎn):她個(gè)子不高,一米六左右吧,身材很……怎么形容來(lái)著,纖細(xì),一陣風(fēng)就能刮跑的那種,所以這個(gè)兒也不顯得低……當(dāng)然還能想出很多,應(yīng)該都差不離吧。”

  羅輯像要給史強(qiáng)跪下似的,“大史,我五體投地!你,福爾摩斯再世啊!”

  大史站起來(lái),“那我去電腦上畫了。”

  大史成功地將一個(gè)NP問(wèn)題加上了若干約束條件,最后找到了這個(gè)女孩兒,名字叫莊顏,只是比幻想中的“她”多了淡淡的憂傷。

?

  2.?繞過(guò)問(wèn)題

  在碰到難題時(shí),除了積極面對(duì)外,我們也應(yīng)當(dāng)思考一下,問(wèn)題是否真的有解決的必要?是否可以繞過(guò)問(wèn)題直指目標(biāo)?

  在第一次世界大戰(zhàn)后,法國(guó)為了防止德軍入侵而在其東北邊境地區(qū)構(gòu)筑起了一道有鋼筋混凝土建造而成的防線,防線內(nèi)部擁有各式大炮、壕溝、堡壘、廚房、發(fā)電站、醫(yī)院、工廠等,通道四通八達(dá),較大的工事中還有有軌電車通道,這就是著名的馬其諾防線。馬其諾防線從1928年起開(kāi)始建造,1940年才基本建成,造價(jià)50億法郎。這道“完全防御”軍事思想的防線被譽(yù)為“不可攻破的防線”。結(jié)果大家都知道了,德國(guó)人沒(méi)有對(duì)著馬其諾防線死磕,而是繞過(guò)防線,率領(lǐng)28個(gè)師穿入阿登山區(qū)進(jìn)攻比利時(shí)、荷蘭和盧森堡,還沒(méi)等法國(guó)人來(lái)得及反應(yīng),德國(guó)軍隊(duì)就兵臨巴黎城下,法國(guó)投降。

  德國(guó)人的目標(biāo)是占領(lǐng)法國(guó),馬奇諾防線是達(dá)到目標(biāo)途中的一個(gè)難題,這個(gè)難題被輕易地繞開(kāi)了。很多時(shí)候,“搬家”或許比“移山”更有效。

?

  3.?轉(zhuǎn)換問(wèn)題

  另一種值得一試的辦法是把待解決的難題轉(zhuǎn)換成另一個(gè)能夠解決的問(wèn)題。

  密碼疑云 (3)——詳解RSA的加密與解密?中,Mallory并沒(méi)有嘗試破解“芒碭山系統(tǒng)”,而是通過(guò)一系列社會(huì)工程學(xué)的知識(shí)騙取了密碼,從而輕易進(jìn)入“號(hào)稱能夠安全運(yùn)行100年”的系統(tǒng)。

  最小二乘法(2)——多項(xiàng)式函數(shù)能夠擬合非線性問(wèn)題原理?中,我們介紹了泰勒展開(kāi),它將一個(gè)難以處理的積分轉(zhuǎn)換成了無(wú)數(shù)個(gè)易于處理的簡(jiǎn)單積分,使用極限的思想求解,達(dá)到化質(zhì)為量的目的。

  網(wǎng)絡(luò)流(3)——找到最小st-剪切?中,我們將多源點(diǎn)的押糧問(wèn)題轉(zhuǎn)換成了標(biāo)準(zhǔn)的最大流問(wèn)題,用已掌握的知識(shí)求解。

?

  4.?退而求其次

  如果在通向目標(biāo)的途中一定要解決某個(gè)NP困難問(wèn)題,那么?搜索的策略(2)——貪心策略、A*搜索詳解(1)——通往基地的最短路線?介紹的一些有啟發(fā)性質(zhì)的算法或許會(huì)提供一些參考;退而求其次(2)——遺傳算法?的遺傳算法還告訴我們,在必要的時(shí)候應(yīng)當(dāng)放棄尋找最優(yōu)解,轉(zhuǎn)而尋找可以接受的較好解。如果考不上清華、北大,其他“985”也不是不可接受。

?

  5.?依賴計(jì)算機(jī)的高速運(yùn)算

  對(duì)于八皇后問(wèn)題,1854年在柏林的象棋雜志上不同的作者發(fā)表了40種不同的解。今天,我們可以通過(guò)近乎蠻力的搜索找到全部的92種解。

  1946年誕生的ENIAC,每秒只能進(jìn)行300次各種運(yùn)算或5000次加法。

  2019年,美國(guó)的“頂點(diǎn)”,取代“神威太湖之光” 成為“世界第一計(jì)算機(jī)”,其預(yù)算速度為20億億次/每秒。

  75年間,計(jì)算機(jī)的速度已經(jīng)得到了極大的提升,雖然NP問(wèn)題仍然是NP問(wèn)題,但是技術(shù)的進(jìn)步給了我們一戰(zhàn)的勇氣,讓我們可以使用蠻力法處理一些中等規(guī)模的問(wèn)題。

  處理器運(yùn)算速度的提升帶給了我們更多的可能性。Square公司于1997年在PS上發(fā)行的角色扮演類游戲《最終幻想7》,盡管劇情優(yōu)秀,但畫質(zhì)著實(shí)“感人”,但是在當(dāng)年,那種充滿方塊感的畫面仍然是PS平臺(tái)上不可逾越的經(jīng)典。2019年6月10日,Square Enix公司在美國(guó)洛杉磯舉辦了《最終幻想7》音樂(lè)會(huì),宣布游戲《最終幻想7:重制版》將于2020年3月3日登陸PS4平臺(tái),并公布了游戲的宣傳片。在宣傳片中,游戲畫面十分華麗,人物幾可亂真。

  計(jì)算機(jī)性能的提升可以幫我們解決相當(dāng)一部分問(wèn)題,這樣看來(lái),蠻力法也不是那么一無(wú)是處。

?

  6.?嘗試NC搜索

  隨著多核技術(shù)和分布式計(jì)算的發(fā)展,我們似乎更有勇氣碰觸一些過(guò)去的禁地。我們把那些能夠通過(guò)并行計(jì)算快速找到答案的搜索稱為NC搜索。然而遺憾的是,NP問(wèn)題的規(guī)模也在擴(kuò)大,我們今天面對(duì)的問(wèn)題也比過(guò)去復(fù)雜得多,因此NC也不是萬(wàn)能藥。

  盡管在未來(lái),NP是否能用NC仍然不得而知,但是NC搜索可以幫我們快速解決一些小規(guī)模的NP問(wèn)題,或者在可接受的時(shí)間解決一些中等規(guī)模的NP問(wèn)題。

?

  7.?打乒乓球去吧

  當(dāng)上述方案都無(wú)效時(shí),大概可以打乒乓球去了。

  其實(shí)P/NP問(wèn)題并不僅僅是一道數(shù)學(xué)難題,它更像是一種指導(dǎo)思想,一種根據(jù)問(wèn)題的困難程度將問(wèn)題分類的工具。當(dāng)面對(duì)一個(gè)NP完全問(wèn)題時(shí),我們知道沒(méi)有一個(gè)能夠在所有情況下都解決該問(wèn)題的算法,我們要做的并不死磕硬打,而是找到某些替代方法,做出某些“退而求其次”或“不得已而為之”的選擇。

如果P=NP

  美國(guó)科幻作家艾薩克·阿西莫夫的小說(shuō)《永恒的終結(jié)》講訴了一個(gè)關(guān)于時(shí)空的神奇故事:27世紀(jì),人類在掌握時(shí)間旅行技術(shù)后,創(chuàng)造了“時(shí)空壺”,并成立了一個(gè)叫做“永恒時(shí)空”的組織,在每個(gè)時(shí)代的背后,默默地守護(hù)著人類社會(huì)的發(fā)展。這一系列功勞都?xì)w功于24世紀(jì)的一個(gè)名叫馬蘭松的偉大科學(xué)家,正是他發(fā)明了時(shí)間力場(chǎng),從而創(chuàng)造了“時(shí)空壺”。盡管馬蘭松的后人們一直在使用“時(shí)空壺”,但并不明白它的運(yùn)作原理,因?yàn)樽鳛椤皶r(shí)間力場(chǎng)”理論基礎(chǔ)的“列斐伏爾方程”在24世紀(jì)還沒(méi)有出現(xiàn)!隨著劇情的推進(jìn),最終揭示了完整的“因果鏈”——來(lái)自27世紀(jì)的庫(kù)珀為24世紀(jì)帶去了“列斐伏爾方程”,并從此留在24世紀(jì),最終改名為馬蘭松。

  歐幾里得在著作《幾何原本》時(shí)不曾想到會(huì)有內(nèi)角和不等于180°的三角形。1830年前后,俄國(guó)數(shù)學(xué)家羅巴切夫斯基發(fā)表了關(guān)于非歐幾何的理論,即后來(lái)的羅氏幾何。在這種幾何里,羅巴切夫斯基平行公理替代了歐幾里得平行公理,即存在直線a及不在a上的一點(diǎn)A,過(guò)A點(diǎn)至少有兩條直線與a共面且不相交。由此可演繹出一系列全無(wú)矛盾的結(jié)論,并且可以得出三角形的內(nèi)角和小于180°。正是羅氏幾何啟發(fā)了愛(ài)因斯坦,成為發(fā)現(xiàn)廣義相對(duì)論的基礎(chǔ)。

  對(duì)于NP問(wèn)題來(lái)說(shuō),強(qiáng)調(diào)的是“不確定”是否在能做多項(xiàng)式時(shí)間內(nèi)解決。隨著科技的發(fā)展,過(guò)去“不確定”的問(wèn)題在未來(lái)未必不可觸及。既然P/NP問(wèn)題的解決可能有賴于大幅度提升的理論和技術(shù),那么我們不妨把希望寄托于未來(lái),暢想一下P=NP的世界。

  如果P=NP,基于NP完全問(wèn)題的密碼大廈將會(huì)瞬間傾塌,安全體系將會(huì)被重構(gòu);如果P=NP,電子游戲?qū)⒉辉倬窒抻诓邉潕熢O(shè)計(jì)好的劇本,而是像《安德的游戲》中的心理測(cè)試游戲一樣,根據(jù)安德的選擇做出自行演化;如果P=NP,DNA密碼將被破解,生命之謎將被解開(kāi),人類將得到新一輪的進(jìn)化;如果P=NP,機(jī)器人將被賦予更高級(jí)的智能,《銀河帝國(guó)》將不再是幻想……到了那時(shí),人類文明應(yīng)當(dāng)通向何方呢?


  作者:我是8位的

  出處:http://www.cnblogs.com/bigmonkey

  本文以學(xué)習(xí)、研究和分享為主,如需轉(zhuǎn)載,請(qǐng)聯(lián)系本人,標(biāo)明作者和出處,非商業(yè)用途!?

  掃描二維碼關(guān)注公作者眾號(hào)“我是8位的”

總結(jié)

以上是生活随笔為你收集整理的浅谈P/NP问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。