下面引入p類問題的概念:如果乙個問題可以找到乙個能在多項式的時間裡解決它的演算法,那麼這個問題就屬於p問題。p是英文單詞多項式的第乙個字母。哪些問題是p類問題呢?通常noi和noip不會出不屬於p類問題的題目。我們常見到的一些資訊奧賽的題目都是p問題。道理很簡單,乙個用窮舉換來的非多項式級時間的超時程式不會涵蓋任何有價值的演算法。
接下來引入np問題的概念。這個就有點難理解了,或者說容易理解錯誤。在這裡強調(回到我竭力想澄清的誤區上),np問題不是非p類問題。np問題是指可以在多項式的時間裡驗證乙個解的問題。np問題的另乙個定義是,可以在多項式的時間裡猜出乙個解的問題。比方說,我rp很好,在程式中需要列舉時,我可以一猜乙個準。現在某人拿到了乙個求最短路徑的問題,問從起點到終點是否有一條小於100個單位長度的路線。它根據資料畫好了圖,但怎麼也算不出來,於是來問我:你看怎麼選條路走得最少?我說,我rp很好,肯定能隨便給你指條很短的路出來。然後我就胡亂畫了幾條線,說就這條吧。那人按我指的這條把權值加起來一看,嘿,神了,路徑長度98,比100小。於是答案出來了,存在比100小的路徑。別人會問他這題怎麼做出來的,他就可以說,因為我找到了乙個比100 小的解。在這個題中,找乙個解很困難,但驗證乙個解很容易。驗證乙個解只需要o(n)的時間複雜度,也就是說我可以花o(n)的時間把我猜的路徑的長度加出來。那麼,只要我rp好,猜得準,我一定能在多項式的時間裡解決這個問題。我猜到的方案總是最優的,不滿足題意的方案也不會來騙我去選它。這就是np問題。當然有不是np問題的問題,即你猜到了解但是沒用,因為你不能在多項式的時間裡去驗證它。下面我要舉的例子是乙個經典的例子,它指出了乙個目前還沒有辦法在多項式的時間裡驗證乙個解的問題。很顯然,前面所說的hamilton迴路是np問題,因為驗證一條路是否恰好經過了每乙個頂點非常容易。但我要把問題換成這樣:試問乙個圖中是否不存在hamilton迴路。這樣問題就沒法在多項式的時間裡進行驗證了,因為除非你試過所有的路,否則你不敢斷定它「沒有hamilton迴路」。
之所以要定義np問題,是因為通常只有np問題才可能找到多項式的演算法。我們不會指望乙個連多項式地驗證乙個解都不行的問題存在乙個解決它的多項式級的演算法。相信讀者很快明白,資訊學中的號稱最困難的問題——「np問題」,實際上是在**np問題與p類問題的關係。
很顯然,所有的p類問題都是np問題。也就是說,能多項式地解決乙個問題,必然能多項式地驗證乙個問題的解——既然正解都出來了,驗證任意給定的解也只需要比較一下就可以了。關鍵是,人們想知道,是否所有的np問題都是p類問題。我們可以再用集合的觀點來說明。如果把所有p類問題歸為乙個集合p中,把所有 np問題划進另乙個集合np中,那麼,顯然有p屬於np。現在,所有對np問題的研究都集中在乙個問題上,即究竟是否有p=np?通常所謂的「np問題」,其實就一句話:證明或推翻p=np。
PnP問題求解
pnp演算法是指已知3d點及其在相機上的投影,求相機姿態的問題。投影方程可以表示為 u v1 k rt xy z1 lambda begin u v 1 end k begin r t end begin x y z 1 end uv 1 k r t xy z1 這裡的k為相機內參矩陣,是已知的。我...
PNP問題調研
最近,在閱讀一篇openface的文章,在頭部姿態檢測方面,他提到利用面部地標3d檢測後,再使用正投影將它們投影到影象中,這使得通過求解pnp問題,可以準確地估計出目標的大小。下面對pnp問題做乙個簡單的調研。關於pnp問題,就是對物體的定位問題,是求解3d到2d點對的運動的方法。pnp問題 假定攝...
東野圭吾小說中的P NP問題
鄭昀 玩聚sr 20091117 連續看到兩篇熱文 計算機科學家給經濟學家的教誨 納什均衡是np問題 和 假如p np,世界將會怎樣?講到p np問題。solidot在 p np問題現狀 大致講述了這是乙個什麼問題 這裡的p指多項式時間 polynomial 乙個複雜問題如果能在多項式時間內解決,那...