一文读懂什么是P问题、NP问题和NPC问题
你會(huì)經(jīng)常看到網(wǎng)上出現(xiàn)“這怎么做,這不是NP問(wèn)題嗎”、“這個(gè)只有搜了,這已經(jīng)被證明是NP問(wèn)題了”之類(lèi)的話。你要知道,大多數(shù)人此時(shí)所說(shuō)的NP問(wèn)題其實(shí)都是指的NPC問(wèn)題。他們沒(méi)有搞清楚NP問(wèn)題和NPC問(wèn)題的概念。NP問(wèn)題并不是那種“只有搜才行”的問(wèn)題,NPC問(wèn)題才是。好,行了,基本上這個(gè)誤解已經(jīng)被澄清了。下面的內(nèi)容都是在講什么是P問(wèn)題,什么是NP問(wèn)題,什么是NPC問(wèn)題,你如果不是很感興趣就可以不看了。接下來(lái)你可以看到,把NP問(wèn)題當(dāng)成是 NPC問(wèn)題是一個(gè)多大的錯(cuò)誤。
還是先用幾句話簡(jiǎn)單說(shuō)明一下時(shí)間復(fù)雜度。時(shí)間復(fù)雜度并不是表示一個(gè)程序解決問(wèn)題需要花多少時(shí)間,而是當(dāng)問(wèn)題規(guī)模擴(kuò)大后,程序需要的時(shí)間長(zhǎng)度增長(zhǎng)得有多快。也就是說(shuō),對(duì)于高速處理數(shù)據(jù)的計(jì)算機(jī)來(lái)說(shuō),處理某一個(gè)特定數(shù)據(jù)的效率不能衡量一個(gè)程序的好壞,而應(yīng)該看當(dāng)這個(gè)數(shù)據(jù)的規(guī)模變大到數(shù)百倍后,程序運(yùn)行時(shí)間是否還是一樣,或者也跟著慢了數(shù)百倍,或者變慢了數(shù)萬(wàn)倍。不管數(shù)據(jù)有多大,程序處理花的時(shí)間始終是那么多的,我們就說(shuō)這個(gè)程序很好,具有O(1)的時(shí)間復(fù)雜度,也稱(chēng)常數(shù)級(jí)復(fù)雜度;數(shù)據(jù)規(guī)模變得有多大,花的時(shí)間也跟著變得有多長(zhǎng),這個(gè)程序的時(shí)間復(fù)雜度就是O(n),比如找n個(gè)數(shù)中的最大值;而像冒泡排序、插入排序等,數(shù)據(jù)擴(kuò)大2倍,時(shí)間變慢4倍的,屬于O(n^2)的復(fù)雜度。還有一些窮舉類(lèi)的算法,所需時(shí)間長(zhǎng)度成幾何階數(shù)上漲,這就是O(a^n)的指數(shù)級(jí)復(fù)雜度,甚至O(n!)的階乘級(jí)復(fù)雜度。不會(huì)存在O(2*n^2)的復(fù)雜度,因?yàn)榍懊娴哪莻€(gè)“2”是系數(shù),根本不會(huì)影響到整個(gè)程序的時(shí)間增長(zhǎng)。同樣地,O (n^3+n^2)的復(fù)雜度也就是O(n^3)的復(fù)雜度。因此,我們會(huì)說(shuō),一個(gè)O(0.01*n^3)的程序的效率比O(100*n^2)的效率低,盡管在n很小的時(shí)候,前者優(yōu)于后者,但后者時(shí)間隨數(shù)據(jù)規(guī)模增長(zhǎng)得慢,最終O(n^3)的復(fù)雜度將遠(yuǎn)遠(yuǎn)超過(guò)O(n^2)。我們也說(shuō),O(n^100)的復(fù)雜度小于O(1.01^n)的復(fù)雜度。
容易看出,前面的幾類(lèi)復(fù)雜度被分為兩種級(jí)別,其中后者的復(fù)雜度無(wú)論如何都遠(yuǎn)遠(yuǎn)大于前者:一種是O(1),O(log(n)),O(n^a)等,我們把它叫做多項(xiàng)式級(jí)的復(fù)雜度,因?yàn)樗囊?guī)模n出現(xiàn)在底數(shù)的位置;另一種是O(a^n)和O(n!)型復(fù)雜度,它是非多項(xiàng)式級(jí)的,其復(fù)雜度計(jì)算機(jī)往往不能承受。當(dāng)我們?cè)诮鉀Q一個(gè)問(wèn)題時(shí),我們選擇的算法通常都需要是多項(xiàng)式級(jí)的復(fù)雜度,非多項(xiàng)式級(jí)的復(fù)雜度需要的時(shí)間太多,往往會(huì)超時(shí),除非是數(shù)據(jù)規(guī)模非常小。
自然地,人們會(huì)想到一個(gè)問(wèn)題:會(huì)不會(huì)所有的問(wèn)題都可以找到復(fù)雜度為多項(xiàng)式級(jí)的算法呢?很遺憾,答案是否定的。有些問(wèn)題甚至根本不可能找到一個(gè)正確的算法來(lái),這稱(chēng)之為“不可解問(wèn)題”(Undecidable Decision Problem)。The Halting Problem就是一個(gè)著名的不可解問(wèn)題,在我的Blog上有過(guò)專(zhuān)門(mén)的介紹和證明。再比如,輸出從1到n這n個(gè)數(shù)的全排列。不管你用什么方法,你的復(fù)雜度都是階乘級(jí),因?yàn)槟憧偟糜秒A乘級(jí)的時(shí)間打印出結(jié)果來(lái)。有人說(shuō),這樣的“問(wèn)題”不是一個(gè)“正規(guī)”的問(wèn)題,正規(guī)的問(wèn)題是讓程序解決一個(gè)問(wèn)題,輸出一個(gè)“YES”或“NO”(這被稱(chēng)為判定性問(wèn)題),或者一個(gè)什么什么的最優(yōu)值(這被稱(chēng)為最優(yōu)化問(wèn)題)。那么,根據(jù)這個(gè)定義,我也能舉出一個(gè)不大可能會(huì)有多項(xiàng)式級(jí)算法的問(wèn)題來(lái):Hamilton回路。問(wèn)題是這樣的:給你一個(gè)圖,問(wèn)你能否找到一條經(jīng)過(guò)每個(gè)頂點(diǎn)一次且恰好一次(不遺漏也不重復(fù))最后又走回來(lái)的路(滿足這個(gè)條件的路徑叫做Hamilton回路)。這個(gè)問(wèn)題現(xiàn)在還沒(méi)有找到多項(xiàng)式級(jí)的算法。事實(shí)上,這個(gè)問(wèn)題就是我們后面要說(shuō)的NPC問(wèn)題。
下面引入P類(lèi)問(wèn)題的概念:如果一個(gè)問(wèn)題可以找到一個(gè)能在多項(xiàng)式的時(shí)間里解決它的算法,那么這個(gè)問(wèn)題就屬于P問(wèn)題。P是英文單詞多項(xiàng)式的第一個(gè)字母。哪些問(wèn)題是P類(lèi)問(wèn)題呢?通常NOI和NOIP不會(huì)出不屬于P類(lèi)問(wèn)題的題目。我們常見(jiàn)到的一些信息奧賽的題目都是P問(wèn)題。道理很簡(jiǎn)單,一個(gè)用窮舉換來(lái)的非多項(xiàng)式級(jí)時(shí)間的超時(shí)程序不會(huì)涵蓋任何有價(jià)值的算法。
接下來(lái)引入NP問(wèn)題的概念。這個(gè)就有點(diǎn)難理解了,或者說(shuō)容易理解錯(cuò)誤。在這里強(qiáng)調(diào)(回到我竭力想澄清的誤區(qū)上),NP問(wèn)題不是非P類(lèi)問(wèn)題。NP問(wèn)題是指可以在多項(xiàng)式的時(shí)間里驗(yàn)證一個(gè)解的問(wèn)題。NP問(wèn)題的另一個(gè)定義是,可以在多項(xiàng)式的時(shí)間里猜出一個(gè)解的問(wèn)題。比方說(shuō),我RP很好,在程序中需要枚舉時(shí),我可以一猜一個(gè)準(zhǔn)。現(xiàn)在某人拿到了一個(gè)求最短路徑的問(wèn)題,問(wèn)從起點(diǎn)到終點(diǎn)是否有一條小于100個(gè)單位長(zhǎng)度的路線。它根據(jù)數(shù)據(jù)畫(huà)好了圖,但怎么也算不出來(lái),于是來(lái)問(wèn)我:你看怎么選條路走得最少?我說(shuō),我RP很好,肯定能隨便給你指條很短的路出來(lái)。然后我就胡亂畫(huà)了幾條線,說(shuō)就這條吧。那人按我指的這條把權(quán)值加起來(lái)一看,嘿,神了,路徑長(zhǎng)度98,比100小。于是答案出來(lái)了,存在比100小的路徑。別人會(huì)問(wèn)他這題怎么做出來(lái)的,他就可以說(shuō),因?yàn)槲艺业搅艘粋€(gè)比100 小的解。在這個(gè)題中,找一個(gè)解很困難,但驗(yàn)證一個(gè)解很容易。驗(yàn)證一個(gè)解只需要O(n)的時(shí)間復(fù)雜度,也就是說(shuō)我可以花O(n)的時(shí)間把我猜的路徑的長(zhǎng)度加出來(lái)。那么,只要我RP好,猜得準(zhǔn),我一定能在多項(xiàng)式的時(shí)間里解決這個(gè)問(wèn)題。我猜到的方案總是最優(yōu)的,不滿足題意的方案也不會(huì)來(lái)騙我去選它。這就是NP問(wèn)題。當(dāng)然有不是NP問(wèn)題的問(wèn)題,即你猜到了解但是沒(méi)用,因?yàn)槟悴荒茉诙囗?xiàng)式的時(shí)間里去驗(yàn)證它。下面我要舉的例子是一個(gè)經(jīng)典的例子,它指出了一個(gè)目前還沒(méi)有辦法在多項(xiàng)式的時(shí)間里驗(yàn)證一個(gè)解的問(wèn)題。很顯然,前面所說(shuō)的Hamilton回路是NP問(wèn)題,因?yàn)轵?yàn)證一條路是否恰好經(jīng)過(guò)了每一個(gè)頂點(diǎn)非常容易。但我要把問(wèn)題換成這樣:試問(wèn)一個(gè)圖中是否不存在Hamilton回路。這樣問(wèn)題就沒(méi)法在多項(xiàng)式的時(shí)間里進(jìn)行驗(yàn)證了,因?yàn)槌悄阍囘^(guò)所有的路,否則你不敢斷定它“沒(méi)有Hamilton回路”。
之所以要定義NP問(wèn)題,是因?yàn)橥ǔV挥蠳P問(wèn)題才可能找到多項(xiàng)式的算法。我們不會(huì)指望一個(gè)連多項(xiàng)式地驗(yàn)證一個(gè)解都不行的問(wèn)題存在一個(gè)解決它的多項(xiàng)式級(jí)的算法。相信讀者很快明白,信息學(xué)中的號(hào)稱(chēng)最困難的問(wèn)題——“NP問(wèn)題”,實(shí)際上是在探討NP問(wèn)題與P類(lèi)問(wèn)題的關(guān)系。
很顯然,所有的P類(lèi)問(wèn)題都是NP問(wèn)題。也就是說(shuō),能多項(xiàng)式地解決一個(gè)問(wèn)題,必然能多項(xiàng)式地驗(yàn)證一個(gè)問(wèn)題的解——既然正解都出來(lái)了,驗(yàn)證任意給定的解也只需要比較一下就可以了。關(guān)鍵是,人們想知道,是否所有的NP問(wèn)題都是P類(lèi)問(wèn)題。我們可以再用集合的觀點(diǎn)來(lái)說(shuō)明。如果把所有P類(lèi)問(wèn)題歸為一個(gè)集合P中,把所有 NP問(wèn)題劃進(jìn)另一個(gè)集合NP中,那么,顯然有P屬于NP。現(xiàn)在,所有對(duì)NP問(wèn)題的研究都集中在一個(gè)問(wèn)題上,即究竟是否有P=NP?通常所謂的“NP問(wèn)題”,其實(shí)就一句話:證明或推翻P=NP。
NP問(wèn)題一直都是信息學(xué)的巔峰。巔峰,意即很引人注目但難以解決。在信息學(xué)研究中,這是一個(gè)耗費(fèi)了很多時(shí)間和精力也沒(méi)有解決的終極問(wèn)題,好比物理學(xué)中的大統(tǒng)一和數(shù)學(xué)中的歌德巴赫猜想等。目前為止這個(gè)問(wèn)題還“啃不動(dòng)”。但是,一個(gè)總的趨勢(shì)、一個(gè)大方向是有的。人們普遍認(rèn)為,P=NP不成立,也就是說(shuō),多數(shù)人相信,存在至少一個(gè)不可能有多項(xiàng)式級(jí)復(fù)雜度的算法的NP問(wèn)題。人們?nèi)绱藞?jiān)信P≠NP是有原因的,就是在研究NP問(wèn)題的過(guò)程中找出了一類(lèi)非常特殊的NP問(wèn)題叫做NP-完全問(wèn)題,也即所謂的 NPC問(wèn)題。C是英文單詞“完全”的第一個(gè)字母。正是NPC問(wèn)題的存在,使人們相信P≠NP。下文將花大量篇幅介紹NPC問(wèn)題,你從中可以體會(huì)到NPC問(wèn)題使P=NP變得多么不可思議。
為了說(shuō)明NPC問(wèn)題,我們先引入一個(gè)概念——約化(Reducibility,有的資料上叫“歸約”)。
簡(jiǎn)單地說(shuō),一個(gè)問(wèn)題A可以約化為問(wèn)題B的含義即是,可以用問(wèn)題B的解法解決問(wèn)題A,或者說(shuō),問(wèn)題A可以“變成”問(wèn)題B。《算法導(dǎo)論》上舉了這么一個(gè)例子。比如說(shuō),現(xiàn)在有兩個(gè)問(wèn)題:求解一個(gè)一元一次方程和求解一個(gè)一元二次方程。那么我們說(shuō),前者可以約化為后者,意即知道如何解一個(gè)一元二次方程那么一定能解出一元一次方程。我們可以寫(xiě)出兩個(gè)程序分別對(duì)應(yīng)兩個(gè)問(wèn)題,那么我們能找到一個(gè)“規(guī)則”,按照這個(gè)規(guī)則把解一元一次方程程序的輸入數(shù)據(jù)變一下,用在解一元二次方程的程序上,兩個(gè)程序總能得到一樣的結(jié)果。這個(gè)規(guī)則即是:兩個(gè)方程的對(duì)應(yīng)項(xiàng)系數(shù)不變,一元二次方程的二次項(xiàng)系數(shù)為0。按照這個(gè)規(guī)則把前一個(gè)問(wèn)題轉(zhuǎn)換成后一個(gè)問(wèn)題,兩個(gè)問(wèn)題就等價(jià)了。同樣地,我們可以說(shuō),Hamilton回路可以約化為T(mén)SP問(wèn)題(Travelling Salesman Problem,旅行商問(wèn)題):在Hamilton回路問(wèn)題中,兩點(diǎn)相連即這兩點(diǎn)距離為0,兩點(diǎn)不直接相連則令其距離為1,于是問(wèn)題轉(zhuǎn)化為在TSP問(wèn)題中,是否存在一條長(zhǎng)為0的路徑。Hamilton回路存在當(dāng)且僅當(dāng)TSP問(wèn)題中存在長(zhǎng)為0的回路。
“問(wèn)題A可約化為問(wèn)題B”有一個(gè)重要的直觀意義:B的時(shí)間復(fù)雜度高于或者等于A的時(shí)間復(fù)雜度。也就是說(shuō),問(wèn)題A不比問(wèn)題B難。這很容易理解。既然問(wèn)題A能用問(wèn)題B來(lái)解決,倘若B的時(shí)間復(fù)雜度比A的時(shí)間復(fù)雜度還低了,那A的算法就可以改進(jìn)為B的算法,兩者的時(shí)間復(fù)雜度還是相同。正如解一元二次方程比解一元一次方程難,因?yàn)榻鉀Q前者的方法可以用來(lái)解決后者。
很顯然,約化具有一項(xiàng)重要的性質(zhì):約化具有傳遞性。如果問(wèn)題A可約化為問(wèn)題B,問(wèn)題B可約化為問(wèn)題C,則問(wèn)題A一定可約化為問(wèn)題C。這個(gè)道理非常簡(jiǎn)單,就不必闡述了。
現(xiàn)在再來(lái)說(shuō)一下約化的標(biāo)準(zhǔn)概念就不難理解了:如果能找到這樣一個(gè)變化法則,對(duì)任意一個(gè)程序A的輸入,都能按這個(gè)法則變換成程序B的輸入,使兩程序的輸出相同,那么我們說(shuō),問(wèn)題A可約化為問(wèn)題B。
當(dāng)然,我們所說(shuō)的“可約化”是指的可“多項(xiàng)式地”約化(Polynomial-time Reducible),即變換輸入的方法是能在多項(xiàng)式的時(shí)間里完成的。約化的過(guò)程只有用多項(xiàng)式的時(shí)間完成才有意義。
好了,從約化的定義中我們看到,一個(gè)問(wèn)題約化為另一個(gè)問(wèn)題,時(shí)間復(fù)雜度增加了,問(wèn)題的應(yīng)用范圍也增大了。通過(guò)對(duì)某些問(wèn)題的不斷約化,我們能夠不斷尋找復(fù)雜度更高,但應(yīng)用范圍更廣的算法來(lái)代替復(fù)雜度雖然低,但只能用于很小的一類(lèi)問(wèn)題的算法。再回想前面講的P和NP問(wèn)題,聯(lián)想起約化的傳遞性,自然地,我們會(huì)想問(wèn),如果不斷地約化上去,不斷找到能“通吃”若干小NP問(wèn)題的一個(gè)稍復(fù)雜的大NP問(wèn)題,那么最后是否有可能找到一個(gè)時(shí)間復(fù)雜度最高,并且能“通吃”所有的 NP問(wèn)題的這樣一個(gè)超級(jí)NP問(wèn)題?答案居然是肯定的。也就是說(shuō),存在這樣一個(gè)NP問(wèn)題,所有的NP問(wèn)題都可以約化成它。換句話說(shuō),只要解決了這個(gè)問(wèn)題,那么所有的NP問(wèn)題都解決了。這種問(wèn)題的存在難以置信,并且更加不可思議的是,這種問(wèn)題不只一個(gè),它有很多個(gè),它是一類(lèi)問(wèn)題。這一類(lèi)問(wèn)題就是傳說(shuō)中的NPC 問(wèn)題,也就是NP-完全問(wèn)題。NPC問(wèn)題的出現(xiàn)使整個(gè)NP問(wèn)題的研究得到了飛躍式的發(fā)展。我們有理由相信,NPC問(wèn)題是最復(fù)雜的問(wèn)題。再次回到全文開(kāi)頭,我們可以看到,人們想表達(dá)一個(gè)問(wèn)題不存在多項(xiàng)式的高效算法時(shí)應(yīng)該說(shuō)它“屬于NPC問(wèn)題”。此時(shí),我的目的終于達(dá)到了,我已經(jīng)把NP問(wèn)題和NPC問(wèn)題區(qū)別開(kāi)了。到此為止,本文已經(jīng)寫(xiě)了近5000字了,我佩服你還能看到這里來(lái),同時(shí)也佩服一下自己能寫(xiě)到這里來(lái)。
NPC問(wèn)題的定義非常簡(jiǎn)單。同時(shí)滿足下面兩個(gè)條件的問(wèn)題就是NPC問(wèn)題。首先,它得是一個(gè)NP問(wèn)題;然后,所有的NP問(wèn)題都可以約化到它。證明一個(gè)問(wèn)題是 NPC問(wèn)題也很簡(jiǎn)單。先證明它至少是一個(gè)NP問(wèn)題,再證明其中一個(gè)已知的NPC問(wèn)題能約化到它(由約化的傳遞性,則NPC問(wèn)題定義的第二條也得以滿足;至于第一個(gè)NPC問(wèn)題是怎么來(lái)的,下文將介紹),這樣就可以說(shuō)它是NPC問(wèn)題了。
既然所有的NP問(wèn)題都能約化成NPC問(wèn)題,那么只要任意一個(gè)NPC問(wèn)題找到了一個(gè)多項(xiàng)式的算法,那么所有的NP問(wèn)題都能用這個(gè)算法解決了,NP也就等于P 了。因此,給NPC找一個(gè)多項(xiàng)式算法太不可思議了。因此,前文才說(shuō),“正是NPC問(wèn)題的存在,使人們相信P≠NP”。我們可以就此直觀地理解,NPC問(wèn)題目前沒(méi)有多項(xiàng)式的有效算法,只能用指數(shù)級(jí)甚至階乘級(jí)復(fù)雜度的搜索。
順便講一下NP-Hard問(wèn)題。NP-Hard問(wèn)題是這樣一種問(wèn)題,它滿足NPC問(wèn)題定義的第二條但不一定要滿足第一條(就是說(shuō),NP-Hard問(wèn)題要比 NPC問(wèn)題的范圍廣)。NP-Hard問(wèn)題同樣難以找到多項(xiàng)式的算法,但它不列入我們的研究范圍,因?yàn)樗灰欢ㄊ荖P問(wèn)題。即使NPC問(wèn)題發(fā)現(xiàn)了多項(xiàng)式級(jí)的算法,NP-Hard問(wèn)題有可能仍然無(wú)法得到多項(xiàng)式級(jí)的算法。事實(shí)上,由于NP-Hard放寬了限定條件,它將有可能比所有的NPC問(wèn)題的時(shí)間復(fù)雜度更高從而更難以解決。
不要以為NPC問(wèn)題是一紙空談。NPC問(wèn)題是存在的。確實(shí)有這么一個(gè)非常具體的問(wèn)題屬于NPC問(wèn)題。下文即將介紹它。
下文即將介紹邏輯電路問(wèn)題。這是第一個(gè)NPC問(wèn)題。其它的NPC問(wèn)題都是由這個(gè)問(wèn)題約化而來(lái)的。因此,邏輯電路問(wèn)題是NPC類(lèi)問(wèn)題的“鼻祖”。
邏輯電路問(wèn)題是指的這樣一個(gè)問(wèn)題:給定一個(gè)邏輯電路,問(wèn)是否存在一種輸入使輸出為T(mén)rue。
什么叫做邏輯電路呢?一個(gè)邏輯電路由若干個(gè)輸入,一個(gè)輸出,若干“邏輯門(mén)”和密密麻麻的線組成。看下面一例,不需要解釋你馬上就明白了。
這是個(gè)較簡(jiǎn)單的邏輯電路,當(dāng)輸入1、輸入2、輸入3分別為T(mén)rue、True、False或False、True、False時(shí),輸出為T(mén)rue。
有輸出無(wú)論如何都不可能為T(mén)rue的邏輯電路嗎?有。下面就是一個(gè)簡(jiǎn)單的例子。
上面這個(gè)邏輯電路中,無(wú)論輸入是什么,輸出都是False。我們就說(shuō),這個(gè)邏輯電路不存在使輸出為T(mén)rue的一組輸入。
回到上文,給定一個(gè)邏輯電路,問(wèn)是否存在一種輸入使輸出為T(mén)rue,這即邏輯電路問(wèn)題。
邏輯電路問(wèn)題屬于NPC問(wèn)題。這是有嚴(yán)格證明的。它顯然屬于NP問(wèn)題,并且可以直接證明所有的NP問(wèn)題都可以約化到它(不要以為NP問(wèn)題有無(wú)窮多個(gè)將給證明造成不可逾越的困難)。證明過(guò)程相當(dāng)復(fù)雜,其大概意思是說(shuō)任意一個(gè)NP問(wèn)題的輸入和輸出都可以轉(zhuǎn)換成邏輯電路的輸入和輸出(想想計(jì)算機(jī)內(nèi)部也不過(guò)是一些 0和1的運(yùn)算),因此對(duì)于一個(gè)NP問(wèn)題來(lái)說(shuō),問(wèn)題轉(zhuǎn)化為了求出滿足結(jié)果為T(mén)rue的一個(gè)輸入(即一個(gè)可行解)。
有了第一個(gè)NPC問(wèn)題后,一大堆NPC問(wèn)題就出現(xiàn)了,因?yàn)樵僮C明一個(gè)新的NPC問(wèn)題只需要將一個(gè)已知的NPC問(wèn)題約化到它就行了。后來(lái),Hamilton 回路成了NPC問(wèn)題,TSP問(wèn)題也成了NPC問(wèn)題。現(xiàn)在被證明是NPC問(wèn)題的有很多,任何一個(gè)找到了多項(xiàng)式算法的話所有的NP問(wèn)題都可以完美解決了。因此說(shuō),正是因?yàn)镹PC問(wèn)題的存在,P=NP變得難以置信。P=NP問(wèn)題還有許多有趣的東西,有待大家自己進(jìn)一步的挖掘。攀登這個(gè)信息學(xué)的巔峰是我們這一代的終極目標(biāo)。現(xiàn)在我們需要做的,至少是不要把概念弄混淆了。
∑編輯?|?Gemini
來(lái)源 |?Matrix67博客
算法數(shù)學(xué)之美微信公眾號(hào)歡迎賜稿
稿件涉及數(shù)學(xué)、物理、算法、計(jì)算機(jī)、編程等相關(guān)領(lǐng)域,經(jīng)采用我們將奉上稿酬。
投稿郵箱:math_alg@163.com
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的一文读懂什么是P问题、NP问题和NPC问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 爱因斯坦鲜为人知的另一面
- 下一篇: 转行程序员?你可能忽略了一件事。