論P, NP, NP-Complete, NP-Hard問題

deterministic Turing machine(DTM)
確定性圖靈機
Nondeterministic Turing machine (NTM)
非確定性圖靈機
DTM跟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問題
  • 其他屬於NP的問題都可在多項式時間內歸約成它。
如果任何一個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裡面的問題可以在多項式時間內,
使用圖靈機,將之歸約成「一個布林方程式是否存在解」這個問題。
NP關係
NP關係
史蒂芬庫克(Stephen Cook)證明了一個十分重要的性質:
性質(A):「任一個 NP 內的問題都可以,在多項式時間內,被轉換成滿足問題。」
性質(B):「任一個 NP 內的問題都可以,在多項式時間內,被轉換成任一個 NP-complete 問題。」
性質(C):「任一個 NP 內的問題都可以,在多項式時間內,被轉換成任一個 NP-hard 問題。」
性質(D):「滿足問題在集合 P 中,若且唯若,P=NP。」

留言

這個網誌中的熱門文章

[HTML]標籤-下

[Python]基礎課程

[系統]解除電腦限制頻寬

[HTML]標籤-上

[AlaSQL] 多data查詢+累計

How to Check the MySQL Version

[SQL Sever] 日期時間

推薦使用的9款編程字體

類別型態 vs 基本型態