論P, NP, NP-Complete, NP-Hard問題
deterministic Turing machine(DTM) 確定性圖靈機 |
Nondeterministic Turing machine (NTM) 非確定性圖靈機 |
---|---|
最早的有限狀態機。 狀態儲存關於過去的資訊,就是說:它反映從系統開始到現在時刻的輸入變化。 轉移指示狀態變更,並且用必須滿足確使轉移發生的條件來描述它。 動作是在給定時刻要進行的活動的描述。 有多種類型的動作: 進入動作(entry action):在進入狀態時進行 退出動作(exit action):在退出狀態時進行 輸入動作:依賴於當前狀態和輸入條件進行 轉移動作:在進行特定轉移時進行 |
非確定型圖靈機和確定型圖靈機的不同之處在於,在計算的每一時刻, 根據當前狀態和讀寫頭所讀的符號,機器存在多種狀態轉移方案, 機器將任意地選擇其中一種方案繼續運作,直到最後停機為止。 |
如果給予 Turing machine 某個 state 和某個 symbol 下,它的下一步如果只有一種可能。 那我們就稱它為 deterministic Turing machine (DTM)。 |
非確定性圖靈機(NTM)是一種理論計算模型,其控制規則在某些給定情況下指定了多個可能的動作。 也就是說,NTM的下一個狀態不是完全由其動作和它所看到的當前符號決定的 |
如果有一群演算法用DTM來做計算所需時間是 polynomial time,那這類演算法或問題被稱為P問題,P就是 polynomial-time 的縮寫。 | 另外如果有一群演算法用NTM來做計算所需時間是 polynomial time,那這類問題被稱為NP問題,NP是 non-deterministic polynomial-time 的縮寫。 |
P | NP | NP-Complete | NP-hard |
---|---|---|---|
一個問題若存在有演算法,其時間上限為O(P(n)), P(n)為n之多項式時,此一演算法即為有效率的演算法。 n為問題大小(即資料數量) |
若一個問題X可以找到non-deterministic algorithm 來處理, 而且演算法執行時間為O(P(n)),則稱X為NP-problem。。 |
|
如果任何一個NP problem Y 皆可以滿足Y∝X 則稱Problem X為NP-hard problem則稱Problem X為NP-hard problem |
the Cook–Levin theorem, also known as Cook's theorem, states that the Boolean satisfiability problem is NP-complete. That is, it is in NP, and any problem in NP can be reduced in polynomial time by a deterministic Turing machine to the Boolean satisfiability problem. 證明了布爾可滿足性問題(SAT)是NP完全問題。 換句話說,任何NP裡面的問題可以在多項式時間內, 使用圖靈機,將之歸約成「一個布林方程式是否存在解」這個問題。 |
|||
史蒂芬庫克(Stephen Cook)證明了一個十分重要的性質:
性質(A):「任一個 NP 內的問題都可以,在多項式時間內,被轉換成滿足問題。」
性質(B):「任一個 NP 內的問題都可以,在多項式時間內,被轉換成任一個 NP-complete 問題。」
性質(C):「任一個 NP 內的問題都可以,在多項式時間內,被轉換成任一個 NP-hard 問題。」
性質(D):「滿足問題在集合 P 中,若且唯若,P=NP。」
性質(A):「任一個 NP 內的問題都可以,在多項式時間內,被轉換成滿足問題。」
性質(B):「任一個 NP 內的問題都可以,在多項式時間內,被轉換成任一個 NP-complete 問題。」
性質(C):「任一個 NP 內的問題都可以,在多項式時間內,被轉換成任一個 NP-hard 問題。」
性質(D):「滿足問題在集合 P 中,若且唯若,P=NP。」
留言
張貼留言