关于P和NP
只要對算法稍有興趣的人,總會多多少少的遇到P和NP這兩個概念,而大部分書上似乎都默認大家知道這是怎么回事一樣,而我恰好又不知道。
其實在我的記憶中,我已經(jīng)很多次在網(wǎng)上查詢這兩個概念了,只是遺忘是可怕的……
好吧,今天想再次去搞清楚這兩個概念。
在wiki上從這兩個概念可以引申出很多我陌生有熟悉的概念。
多少寫一些,增強一下記憶,對于在wiki上的鏈接就不貼了,概念太多。
這兩個概念是來形容問題的,也就是說,某個問題是P的,或者NP的,即“……的問題”。
而這里是針對解決問題的算法來說的,也就是說,不管是P還是NP,都是“……的算法的問題”。
我們看到P和NP里面都有P,這個P就是多項式(polynomial)時間,說道這兩個概念,應(yīng)該都是“……多項式時間……的算法的問題”。補充一下,多項式時間,是一種時間測度,通常多項式時間不會隨著參數(shù)的變化而發(fā)生劇烈的變化,當(dāng)然高次還是很可怕的。
有了上面的理解,我們大致可以認為:
當(dāng)然,上述都是在確定行圖靈機上。我喜歡上面這個定義,很直觀。
看,我上面說得很含糊,其實還有一個對比定義P和NP的說法:
我不太喜歡上面這個說法,是因為我還要去了解“確定性圖靈機”和“非確定性圖靈機”,真是個悲傷的結(jié)局……
大概我們直觀上可以認為,P能解決,NP不知道能不能解決,NP里面還有NP-complete和NP-hard,那就是真NP的,和難到要死的NP的……
?補充一個鏈接 http://episte.math.ntu.edu.tw/articles/mm/mm_10_2_04/index.html
轉(zhuǎn)載于:https://www.cnblogs.com/sig3/p/3935502.html
總結(jié)

- 上一篇: 由于代码已经过优化或者本机框架位于调用堆
- 下一篇: PAT (Basic Level) Pr