關於NP問題與P問題的認識

2021-07-29 14:08:01 字數 1820 閱讀 1827

時間複雜度

先用幾句話簡單說明一下時間複雜度。時間複雜度並不是表示乙個程式解決問題需要花多少時間,而是當問題規模擴大後,程式需要的時間長度增長得有多快。

複雜度可以分為兩種級別:一種是o(1),o(log(n)),o(n^a)等,我們把它叫做多項式級的複雜度,因為它的規模n出現在底數的位置;另一種是o(a^n)和o(n!)型複雜度,它是非多項式級的,其複雜度計算機往往不能承受。當我們在解決乙個問題時,我們選擇的演算法通常都需要是多項式級的複雜度,非多項式級的複雜度需要的時間太多,往往會超時,除非是資料規模非常小。

p問題

在多項式複雜度時間內能解決它的演算法的問題。如果乙個問題可以找到乙個能在多項式的時間裡解決它的演算法,那麼這個問題就屬於p問題。

np問題

具有多項式複雜度的不確定性問題

or可以在多項式時間內驗證乙個解的問題

or在多項式時間內可以才出乙個解的問題

在某些情況下,求乙個解很難,但是驗證乙個解要容易的多

np問題與p問題的關係

p問題必然是np問題,因為可以用多項式解決的問題必然可以用多項式驗證。但是兩者並不等價

接下來,為了說明np問題,我們先引入乙個概念,

約化(reducibility),

也叫做歸約。a問題可以歸約到b問題的含義是:可以用解決b問題的方法解決a問題,即問題a可以轉化為問題b。這裡有乙個很重要的直觀意義,b的時間複雜度高於或等於a的時間複雜度,即問題b並不比問題a簡單。

約化還有一條重要的性質,即可傳遞性,很好理解不必贅述了。

約化的概念

如果能找到這樣乙個變化法則,對任意乙個程式a的輸入,都能按這個法則變換成程式b的輸入,使兩程式的輸出相同,那麼我們說,問題a可約化為問題b。

注意,這裡說的可約化是指可多項式地約化,即變換輸入的方法是能在多項式時間內完成的,約化的過程只有用多項式的時間內完成才有意義。

從上述描述中可以看出,雖然時間複雜度在增加,但是歸約後的問題適用範圍更加廣泛了,繼續設想,如果時間複雜度繼續增加,進一步對問題進行歸約,那麼最終我們可以得到乙個可以解決所有np問題的超級np問題,那麼它是否存在呢?答案是肯定的,事實上,這種問題不是乙個,而是一類,就是傳說中的npc問題。接下來給出稱為npc問題必須具備的兩個條件

npc問題

·第一,它要是乙個np問題

·第二,所有的np問題都可以約化到它

既然所有的np問題都能約化成npc問題,那麼只要任意乙個npc問題找到了乙個多項式的演算法,那麼所有的np問題都能用這個演算法解決了,np也就等於p 了。因此,給npc找乙個多項式演算法太不可思議了。因此,前文才說,「正是npc問題的存在,使人們相信p≠np」。我們可以就此直觀地理解,npc問題目前沒有多項式的有效演算法,只能用指數級甚至階乘級複雜度的搜尋。

np-hard問題

np-hard問題是這樣一種問題,它滿足npc問題定義的第二條但不一定要滿足第一條(就是說,np-hard問題要比 npc問題的範圍廣)。np-hard問題同樣難以找到多項式的演算法,但它不列入我們的研究範圍,因為它不一定是np問題。即使npc問題發現了多項式級的演算法,np-hard問題有可能仍然無法得到多項式級的演算法。事實上,由於np-hard放寬了限定條件,它將有可能比所有的npc問題的時間複雜度更高從而更難以解決。

!!!npc問題不是一紙空談,不是以太這種靠想像出來現實中不存在的東西。實際上,邏輯電路是npc問題的鼻祖

np問題一直是資訊學的巔峰~~~高山仰止,期待有志者的探索。。。

P問題 NP問題 NP完全問題和NP難問題

在講p類問題之前先介紹兩個個概念 多項式,時間複雜度。知道這兩概念的可以自動跳過這部分 1 多項式 axn bxn 1 c 恩.就是長這個樣子的,叫x最高次為n的多項式.咳咳,別嫌我囉嗦。有些人說不定還真忘了啥是多項式了。例如第一次看到的鄙人 2 時間複雜度 我們知道在計算機演算法求解問題當中,經常...

關於P和NP問題的概念

當我們遇到乙個問題時,我們總是很自然的開始恩考求解這個問題的演算法.我們大多數人都沒有注意到問題本身的可解性.其實很多問題很難想出一種有效演算法的,當然,遍歷演算法除外.如果我們有一台超強的計算機,那麼一切演算法都是沒有意義的,因為一切問題都可以用遍歷來解.演算法的效率其實正是體現在問題的大規模輸入...

P問題 NP問題 NPC問題 NP難問題的概念

你會經常看到網上出現 這怎麼做,這不是np問題嗎 這個只有搜了,這已經被證明是np問題了 之類的話。你要知道,大多數人此時所說的np問題其實都是指的npc問題。他們沒有搞清楚np問題和npc問題的概念。np問題並不是那種 只有搜才行 的問題,npc問題才是。好,行了,基本上這個誤解已經被澄清了。下面...