fbpx
维基百科

NP完全

NP完全NP完备NP-Complete,縮寫為NP-CNPC),是計算複雜度理論中,決定性問題的等級之一。NP完备是NPNP困难問題的交集,是NP中最難的決定性問題,所有NP問題都可以在多項式時間內被歸約(reduce to)為NP完備問題。倘若任何NP完備問題得到多項式時間內的解法,則該解法就可應用在所有NP問題上,亦可證明NP問題等於P問題,然而目前為止並未發現任何能在多項式時間內解決NP完備問題的方法。

描述P, NP, NP完全,以及NP困难之间关系的欧拉图

正式定義 编辑

 
假設PNP的複雜度類的圖解。若P = NP則三類別相同。

一個決定性問題C若是為NPC(NP完備),則代表它對NP是完備的,這表示:

  1. 它是一個NP問題
  2. 它是一個NP困難問題
  3. 其他屬於NP的問題都可在多項式時間內归约(reduce to)成它。

可歸約(reducible)在此意指對每個問題L,總有一個多項式時間多對一變換,即一個決定性的演算法可以將實例lL轉化成實例cC,並讓c回答Yes当且仅当此答案對l也是Yes。為了證明某個NP問題A實際上是NP完備問題,證明者必須找出一個已知的NP完備問題可以歸約成A

本定義得到一個結論,就是若上述的C有一個多項式時間可解的演算法,則我們可以將所有的NP問題降到P之中。若欲證明一個問題是NPC,最簡單的方法是先證明它屬於NP,然後將「某個已知是NPC的問題」歸約成它。

歷史 编辑

前述定義是史提芬·古克[1]所提出。雖然NPC這個詞並沒有出現在這篇論文上任何地方。在這個資訊科學會議上,資訊科學家激動地討論NPC問題是否可以在一個確定型圖靈機上以多項式時間求解。John Hopcroft總結與會眾人的共識,認為由於沒有人能對某一命題提出駁倒對方的證明,此問題不會於現在解決。此命題就是知名的

P和NP相等嗎?。尚未有人能提出證明,說明NPC問題是否能在多項式時間中解決,使得此問題成為著名的数学中未解决的问题。位于美国麻省剑桥市的「克雷數學研究所」(Clay Mathematics Institute,簡稱CMI)提供了一百萬美元獎金給任何可以證明P=NP或P≠NP的人。

一開始很難相信NPC問題是實際存在的,但著名的古克-李芬定理說明了一切(由Leonid Levin英语Leonid Levin與Cook獨立證出SAT問題是NPC問題(即Cook-Levin理論)。

在1972年,理查德·卡普證明有好幾個問題也是NPC(請見卡普的二十一個NP-完全問題),因此除了SAT問題外,的確存在著一整類NPC問題。從古克開始,數千個問題藉由從其他NPC問題變換而證實也是NPC問題,其中很多問題被蒐集在Garey與Johnson於1979年出版的書之中[2]

滿足條件2(无论是否满足条件1)的問題集合被稱為NP困难。一個NP困难問題至少跟NPC問題一樣難。有一类问题已经被证明属于NP困难但不属于NP,即,这类问题至少与NP-complete一样难,但这类问题又不属于NP(自然也不属于NP-complete)。例如圍棋的必勝下法,就是这样一个問題。[1]

例子 编辑

子集合加總問題 编辑

一個NPC問題的例子是子集合加總問題,題目為

給予一個有限數量的整數集合,找出任何一個此集合的非空子集且此子集內整數和為零。
意即: 是一個包括若干整數的集合,找出任一一个  

這個問題的答案非常容易驗證,但目前沒有任何一個夠快的方法可以在合理的時間內(意即多項式時間)找到答案。只能一個個將它的子集取出來一一測試,它的時間複雜度是  是此集合的元素數量。

圖同構問題 编辑

另一個有趣的例是圖同構(isomorphism)問題,即以圖論方法決定兩個圖是否為同構。兩圖同構的直覺條件是若其中一圖可以經由移動頂點使它與另一個圖重合,則為同構。思考下列兩問題:

  • 圖同構:圖G1是否與圖G2同構?
  • 子圖同構:圖G1是否與圖G2某一子圖同構?

子圖同構問題是NPC,而圖同構問題一般認為不是P也不是NPC問題,雖然它明顯是一個NP問題。這是一個典型被認為很難卻還不是NPC問題的例子。

其他 编辑

下表列出了一些以決定性命題表示的著名NPC問題:

 
變換流程圖。

更多NPC問題的例子,請見NP-complete問題列表英语List of NP-complete problems

右邊是一些NPC問題及證明其為NPC問題的變換流程圖。在流程圖中,箭頭代表的是從何問題變換成另一問題的過程,要注意的是這張圖並不代表這些問題的數學關係,事實上任兩個本質為NPC的問題都可以以多項式時間變換,這圖僅指示可以讓研究者較為簡單地變換問題的順序。

通常一個P與NPC問題的敘述看起來只有一些不同的地方,例如3SAT問題(SAT問題的限制版本)仍然是NPC問題,但更限制的2SAT問題則是個P問題(準確的說,是NL-complete問題),而條件較為寬鬆的MAX 2SAT問題卻又成了NPC問題。決定一個圖是否能被兩色塗滿是P問題,但三色圖是NPC問題,即使我們將它限制在平面圖上。決定一個圖有無迴圈或它是兩分圖很容易(在log空間等級),但是發現一個最大二分圖或最大迴圈子圖則是NPC。以一固定百分比來求郊遊打包問題的最佳解可以在多項式時間解決,但是求最佳解是NPC。

折衷的解法 编辑

目前為止,所有已知解NPC問題的演算法需要依照資料數量而定的超多項式(superpolynomial)時間,目前也不知道是否有任何更快的演算法存在。因此要在輸入資料量大的時候解決一個NPC問題,通常我們使用下列的手段來解:

  • 近似演算法:這類演算法可以快速發現離最佳解在一定差距內的次佳解。
  • 亂數演算法:此類演算法可提供一亂數產生的輸入資料,讓本質上解答分佈均勻的受測程式可以有良好的求解效率。對於解答分佈不均勻的程式,則可以降低亂數程度以改變輸入資料。
  • 特例:此演算法可以在題目呈獻某些特殊情況時快速得解。參數化複雜度英语Parameterized complexity(Parameterized complexity)可視為廣義的此類演算法。
  • 啟發式演算法:這種演算法在許多時候可以產生理性解答(即運用評比或線索找出解),但無法保證它效率的良莠與解答的好壞程度。一個啟發式演算法的例子是用在圖著色問題以O(n log n)的貪婪演算法找次佳解,用在某些編譯器的暫存器配置階段上,此技術又叫圖著色全域暫存器配置(graph-coloring global register allocation)。每頂點視為一變數,每邊代表兩變數同時使用的情況,顏色則代表配置給每一變數的暫存器編號。由於大多數的RISC機器擁有大量通用暫存器,因此啟發式演算法很適合用來解這類題目。

其他歸約法 编辑

依照上述NPC的定義,所謂的歸約(reduce to)其實是多項式時間多對一變換的簡稱。

另一種歸約法稱為多项式时间图灵归约(polynomial-time Turing reduction)。若我們提供一個副函式(subroutine)可以在多項式時間解出"Y",可寫出呼叫此副函式的程式並在多項式時間解出問題"X",代表我們可以將"X"多項式時間圖靈變換成"Y"。相較起來,不同處在於多對一變換只能呼叫上述副函式一次,且副函式的回傳值必須就是整個變換程式回傳的值。

如果有人使用圖靈變換而非多對一變換來解析NPC,此問題的解答集合不一定會小於NPC。孰大孰小其實是個開放問題。如果兩個概念相同,則可導出NP=反NPco-NP)。此結論成立的道理在於NPC與反NPC的定義以图灵归约來看是相等的,且圖靈變換定義的NPC包含多對一變換定義的NPC,反NPC也是相同情況。所以若是兩種變換定義的NPC一樣大的話,反NPC也會比照辦理(在兩者的定義之下)。例如SAT的反問題也會是NPC(在兩者的定義之下)。因此推得NP = 反NP(證明在反NP條目中)。雖然NP是否等於反NP是個開放問題,但一般認為這似乎不大可能,也因此那兩類的NPC定義也不大可能相等。

另一種很常用於NPC證明的歸約手法是對數空間多對一變換(logarithmic-space many-one reduction),它是一種可以在對數量級空間運用的多對一變換法。由於每道可以在對數空間完成的運算也可以在多項式時間做完,因此能使用對數空間多對一變換的場合也可以使用多項式時間多對一變換。本方法較多項式時間多對一變換優雅,它也可以讓我們對演算法複雜度細分出更多分類,例如P完備複雜度。而NPC的定義是否會因為使用不同變換手法而產生差異,仍是一個未知的問題。

参见 编辑

  • NP-complete問題列表英语List of NP-complete problems
  • 幾乎完備英语Almost complete問題與弱完備英语weakly complete問題
  • ASR-complete
  • Ladner理論
  • NP困难
  • P/NP问题
  • 三维匹配问题

参考文献 编辑

引用 编辑

  1. ^ 依据为《Introduction to Algorithms》3rd By Thomas H. Cormen英文版1078页,引理1
  2. ^ How Complicated is Minesweeper? - Richard Kaye (PDF). [2013-05-11]. (原始内容 (PDF)于2012-09-07). 

书籍 编辑

  • ^ S. A. Cook. The complexity of theorem proving procedures, Proceedings, Third Annual ACM Symposium on the Theory of Computing. New York: ACM. 1971: 151–158. 
  • ^ Garey, M.; D. Johnson. Computers and Intractability; A Guide to the Theory of NP-Completeness. 1979. ISBN 978-0-7167-1045-5.  (此書是發展此理論及集多種問題的經典)
  • Paul E. Dunne. An Annotated List of Selected NP-complete Problems. The University of Liverpool, Dept of Computer Science, COMP202. [2006-11-23]. (原始内容于2006-11-25). 
  • Pierluigi Crescenzi; Viggo Kann, Magnús Halldórsson, Marek Karpinski, and Gerhard Woeginger. A compendium of NP optimization problems. Stockholm: KTH NADA. [2006-11-23]. (原始内容于2006-12-05). 
  • Thomas H. Cormen; Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. NP-Completeness. Introduction to Algorithms Second Edition. MIT Press and McGraw-Hill. 2001: 966-1021. ISBN 978-0-262-03293-3. 
  • Michael Sipser. NP-completeness, Additional NP-complete Problems. Introduction to the Theory of Computation. PWS Publishing. 1997: 248-271. ISBN 978-0-534-94728-6. 
  • Christos Papadimitriou. NP-complete problems. Computational Complexity 1st edition. Addison Wesley. 1993: 181–218. ISBN 978-0-201-53082-7. 

网页 编辑

  • Computational Complexity of Games and Puzzles(页面存档备份,存于互联网档案馆
  • Tetris is Hard, Even to Approximate

np完全, 此條目需要精通或熟悉计算机科学的编者参与及协助编辑, 2012年10月14日, 請邀請適合的人士改善本条目, 更多的細節與詳情請參见討論頁, 另見其他需要计算机科学專家關注的頁面, 此條目內容疑欠准确, 有待查證, 2012年10月14日, 請在讨论页討論問題所在及加以改善, 若此條目仍有爭議及准确度欠佳, 會被提出存廢討論, 或np完备, complete, 縮寫為np, c或npc, 是計算複雜度理論中, 決定性問題的等級之一, np完备是np与np困难問題的交集, 是np中最難的決定性問題, 所有. 此條目需要精通或熟悉计算机科学的编者参与及协助编辑 2012年10月14日 請邀請適合的人士改善本条目 更多的細節與詳情請參见討論頁 另見其他需要计算机科学專家關注的頁面 此條目內容疑欠准确 有待查證 2012年10月14日 請在讨论页討論問題所在及加以改善 若此條目仍有爭議及准确度欠佳 會被提出存廢討論 NP完全或NP完备 NP Complete 縮寫為NP C或NPC 是計算複雜度理論中 決定性問題的等級之一 NP完备是NP与NP困难問題的交集 是NP中最難的決定性問題 所有NP問題都可以在多項式時間內被歸約 reduce to 為NP完備問題 倘若任何NP完備問題得到多項式時間內的解法 則該解法就可應用在所有NP問題上 亦可證明NP問題等於P問題 然而目前為止並未發現任何能在多項式時間內解決NP完備問題的方法 描述P NP NP完全 以及NP困难之间关系的欧拉图 目录 1 正式定義 2 歷史 3 例子 3 1 子集合加總問題 3 2 圖同構問題 3 3 其他 4 折衷的解法 5 其他歸約法 6 参见 7 参考文献 7 1 引用 7 2 书籍 7 3 网页正式定義 编辑 nbsp 假設P NP的複雜度類的圖解 若P NP則三類別相同 一個決定性問題C若是為NPC NP完備 則代表它對NP是完備的 這表示 它是一個NP問題 它是一個NP困難問題 其他屬於NP的問題都可在多項式時間內归约 reduce to 成它 可歸約 reducible 在此意指對每個問題L 總有一個多項式時間多對一變換 即一個決定性的演算法可以將實例l L轉化成實例c C 並讓c回答Yes当且仅当此答案對l也是Yes 為了證明某個NP問題A實際上是NP完備問題 證明者必須找出一個已知的NP完備問題可以歸約成A 本定義得到一個結論 就是若上述的C有一個多項式時間可解的演算法 則我們可以將所有的NP問題降到P之中 若欲證明一個問題是NPC 最簡單的方法是先證明它屬於NP 然後將 某個已知是NPC的問題 歸約成它 歷史 编辑前述定義是史提芬 古克 1 所提出 雖然NPC這個詞並沒有出現在這篇論文上任何地方 在這個資訊科學會議上 資訊科學家激動地討論NPC問題是否可以在一個確定型圖靈機上以多項式時間求解 John Hopcroft總結與會眾人的共識 認為由於沒有人能對某一命題提出駁倒對方的證明 此問題不會於現在解決 此命題就是知名的 P和NP相等嗎 尚未有人能提出證明 說明NPC問題是否能在多項式時間中解決 使得此問題成為著名的数学中未解决的问题 位于美国麻省剑桥市的 克雷數學研究所 Clay Mathematics Institute 簡稱CMI 提供了一百萬美元獎金給任何可以證明P NP或P NP的人 一開始很難相信NPC問題是實際存在的 但著名的古克 李芬定理說明了一切 由Leonid Levin 英语 Leonid Levin 與Cook獨立證出SAT問題是NPC問題 即Cook Levin理論 在1972年 理查德 卡普證明有好幾個問題也是NPC 請見卡普的二十一個NP 完全問題 因此除了SAT問題外 的確存在著一整類NPC問題 從古克開始 數千個問題藉由從其他NPC問題變換而證實也是NPC問題 其中很多問題被蒐集在Garey與Johnson於1979年出版的書之中 2 滿足條件2 无论是否满足条件1 的問題集合被稱為NP困难 一個NP困难問題至少跟NPC問題一樣難 有一类问题已经被证明属于NP困难但不属于NP 即 这类问题至少与NP complete一样难 但这类问题又不属于NP 自然也不属于NP complete 例如圍棋的必勝下法 就是这样一个問題 1 例子 编辑子集合加總問題 编辑 一個NPC問題的例子是子集合加總問題 題目為 給予一個有限數量的整數集合 找出任何一個此集合的非空子集且此子集內整數和為零 意即 S displaystyle S nbsp 是一個包括若干整數的集合 找出任一一个S S displaystyle S subset S nbsp 且 x S x 0 displaystyle sum x in S x 0 nbsp 這個問題的答案非常容易驗證 但目前沒有任何一個夠快的方法可以在合理的時間內 意即多項式時間 找到答案 只能一個個將它的子集取出來一一測試 它的時間複雜度是O 2 n displaystyle O 2 n nbsp n displaystyle n nbsp 是此集合的元素數量 圖同構問題 编辑 另一個有趣的例是圖同構 isomorphism 問題 即以圖論方法決定兩個圖是否為同構 兩圖同構的直覺條件是若其中一圖可以經由移動頂點使它與另一個圖重合 則為同構 思考下列兩問題 圖同構 圖G1是否與圖G2同構 子圖同構 圖G1是否與圖G2的某一子圖同構 子圖同構問題是NPC 而圖同構問題一般認為不是P也不是NPC問題 雖然它明顯是一個NP問題 這是一個典型被認為很難卻還不是NPC問題的例子 其他 编辑 下表列出了一些以決定性命題表示的著名NPC問題 nbsp 變換流程圖 布尔可满足性问题 N puzzle問題 華容道問題 背包問題 漢彌爾頓迴圈問題 旅行推销员问题 子圖同構問題 Subgraph isomorphism problem 英语 Subgraph isomorphism problem 子集合加總問題 分團問題 頂點覆盖問題 Vertex cover 英语 Vertex cover 獨立頂點集問題 Independent set problem 英语 Independent set problem 圖著色問題 踩地雷 2 更多NPC問題的例子 請見NP complete問題列表 英语 List of NP complete problems 右邊是一些NPC問題及證明其為NPC問題的變換流程圖 在流程圖中 箭頭代表的是從何問題變換成另一問題的過程 要注意的是這張圖並不代表這些問題的數學關係 事實上任兩個本質為NPC的問題都可以以多項式時間變換 這圖僅指示可以讓研究者較為簡單地變換問題的順序 通常一個P與NPC問題的敘述看起來只有一些不同的地方 例如3SAT問題 SAT問題的限制版本 仍然是NPC問題 但更限制的2SAT問題則是個P問題 準確的說 是NL complete問題 而條件較為寬鬆的MAX 2SAT問題卻又成了NPC問題 決定一個圖是否能被兩色塗滿是P問題 但三色圖是NPC問題 即使我們將它限制在平面圖上 決定一個圖有無迴圈或它是兩分圖很容易 在log空間等級 但是發現一個最大二分圖或最大迴圈子圖則是NPC 以一固定百分比來求郊遊打包問題的最佳解可以在多項式時間解決 但是求最佳解是NPC 折衷的解法 编辑目前為止 所有已知解NPC問題的演算法需要依照資料數量而定的超多項式 superpolynomial 時間 目前也不知道是否有任何更快的演算法存在 因此要在輸入資料量大的時候解決一個NPC問題 通常我們使用下列的手段來解 近似演算法 這類演算法可以快速發現離最佳解在一定差距內的次佳解 亂數演算法 此類演算法可提供一亂數產生的輸入資料 讓本質上解答分佈均勻的受測程式可以有良好的求解效率 對於解答分佈不均勻的程式 則可以降低亂數程度以改變輸入資料 特例 此演算法可以在題目呈獻某些特殊情況時快速得解 參數化複雜度 英语 Parameterized complexity Parameterized complexity 可視為廣義的此類演算法 啟發式演算法 這種演算法在許多時候可以產生理性解答 即運用評比或線索找出解 但無法保證它效率的良莠與解答的好壞程度 一個啟發式演算法的例子是用在圖著色問題以O n log n 的貪婪演算法找次佳解 用在某些編譯器的暫存器配置階段上 此技術又叫圖著色全域暫存器配置 graph coloring global register allocation 每頂點視為一變數 每邊代表兩變數同時使用的情況 顏色則代表配置給每一變數的暫存器編號 由於大多數的RISC機器擁有大量通用暫存器 因此啟發式演算法很適合用來解這類題目 其他歸約法 编辑依照上述NPC的定義 所謂的歸約 reduce to 其實是多項式時間多對一變換的簡稱 另一種歸約法稱為多项式时间图灵归约 polynomial time Turing reduction 若我們提供一個副函式 subroutine 可以在多項式時間解出 Y 又可寫出呼叫此副函式的程式並在多項式時間解出問題 X 代表我們可以將 X 多項式時間圖靈變換成 Y 相較起來 不同處在於多對一變換只能呼叫上述副函式一次 且副函式的回傳值必須就是整個變換程式回傳的值 如果有人使用圖靈變換而非多對一變換來解析NPC 此問題的解答集合不一定會小於NPC 孰大孰小其實是個開放問題 如果兩個概念相同 則可導出NP 反NP co NP 此結論成立的道理在於NPC與反NPC的定義以图灵归约來看是相等的 且圖靈變換定義的NPC包含多對一變換定義的NPC 反NPC也是相同情況 所以若是兩種變換定義的NPC一樣大的話 反NPC也會比照辦理 在兩者的定義之下 例如SAT的反問題也會是NPC 在兩者的定義之下 因此推得NP 反NP 證明在反NP條目中 雖然NP是否等於反NP是個開放問題 但一般認為這似乎不大可能 也因此那兩類的NPC定義也不大可能相等 另一種很常用於NPC證明的歸約手法是對數空間多對一變換 logarithmic space many one reduction 它是一種可以在對數量級空間運用的多對一變換法 由於每道可以在對數空間完成的運算也可以在多項式時間做完 因此能使用對數空間多對一變換的場合也可以使用多項式時間多對一變換 本方法較多項式時間多對一變換優雅 它也可以讓我們對演算法複雜度細分出更多分類 例如P完備複雜度 而NPC的定義是否會因為使用不同變換手法而產生差異 仍是一個未知的問題 参见 编辑NP complete問題列表 英语 List of NP complete problems 幾乎完備 英语 Almost complete 問題與弱完備 英语 weakly complete 問題 ASR complete Ladner理論 NP困难 P NP问题 三维匹配问题参考文献 编辑引用 编辑 依据为 Introduction to Algorithms 3rd By Thomas H Cormen英文版1078页 引理1 How Complicated is Minesweeper Richard Kaye PDF 2013 05 11 原始内容存档 PDF 于2012 09 07 书籍 编辑 S A Cook The complexity of theorem proving procedures Proceedings Third Annual ACM Symposium on the Theory of Computing New York ACM 1971 151 158 Garey M D Johnson Computers and Intractability A Guide to the Theory of NP Completeness 1979 ISBN 978 0 7167 1045 5 引文使用过时参数coauthors 帮助 此書是發展此理論及集多種問題的經典 Paul E Dunne An Annotated List of Selected NP complete Problems The University of Liverpool Dept of Computer Science COMP202 2006 11 23 原始内容存档于2006 11 25 Pierluigi Crescenzi Viggo Kann Magnus Halldorsson Marek Karpinski and Gerhard Woeginger A compendium of NP optimization problems Stockholm KTH NADA 2006 11 23 原始内容存档于2006 12 05 引文使用过时参数coauthors 帮助 Thomas H Cormen Charles E Leiserson Ronald L Rivest and Clifford Stein NP Completeness Introduction to Algorithms Second Edition MIT Press and McGraw Hill 2001 966 1021 ISBN 978 0 262 03293 3 引文使用过时参数coauthors 帮助 引文格式1维护 冗余文本 link Michael Sipser NP completeness Additional NP complete Problems Introduction to the Theory of Computation PWS Publishing 1997 248 271 ISBN 978 0 534 94728 6 Christos Papadimitriou NP complete problems Computational Complexity 1st edition Addison Wesley 1993 181 218 ISBN 978 0 201 53082 7 引文格式1维护 冗余文本 link 网页 编辑 Computational Complexity of Games and Puzzles 页面存档备份 存于互联网档案馆 Tetris is Hard Even to Approximate Minesweeper is NP complete 取自 https zh wikipedia org w index php title NP完全 amp oldid 74880109, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。