np完全問題,是
世界七大數學難題
之一。 np的英文全稱是non-deterministic polynomial的問題,即
多項式複雜程度的非確定性問題。簡單的寫法是 np=p?,問題就在這個問號上,到底是np等於p,還是np不等於p。
生成問題的乙個解通常比驗證乙個給定的解時間花費要多得多。這是這種一般現象的乙個例子.
人們發現,所有的完全多項式非確定性問題,都可以轉換為一類叫做滿足性問題的邏輯運算問題。既然這類問題的所有可能答案,都可以在多項式時間內計算,人們於是就猜想,是否這類問題,存在乙個確定性演算法,可以在多項式時間內,直接算出或是搜尋出正確的答案呢?這就是著名的np=p?的猜想。 不管我們編寫程式是否靈巧,判定乙個答案是可以很快利用內部知識來驗證,還是沒有這樣的提示而需要花費大量時間來求解,被看作邏輯和電腦科學中最突出的問題之一。它是斯蒂文·考克於2023年陳述的。
而如果任何乙個np問題都能通過乙個多項式時間演算法轉換為某個np問題,那麼這個np問題就稱為np完全問題(non-deterministic polynomial complete problem)。np完全問題也叫做npc問題
這些問題的通常有個演算法,它不能直接告訴你答案是什麼,但可以告訴你,某個可能的結果是正確的答案還是錯誤的。
乙個非凡的性質:
如果任何乙個np完全問題存在有效演算法,那麼所有的np完全問題,都有有效的演算法
插入排序: c1*n^2
歸併排序: c2*n*lgn
《演算法導論》 機械工業出版社 原書第三3版
thomas h.cormen
演算法導論 第一章 演算法在計算中的作用
def 演算法是乙個計算過程,即將輸入轉化為輸出的計算步驟的乙個序列。演算法是解決乙個精確定義的計算問題的工具,演算法用於處理問題,但乙個問題通常可以由不同演算法來解決。正確性 即能夠對每個輸入例項,演算法都以正確的輸出停機,則稱該演算法是正確的,並稱正確的演算法解決了給定的計算問題。複雜性 執行該...
演算法導論 學習筆記 第一章 演算法在計算中的作用
非形式地說,演算法就是任何良定義的計算過程,該過程取某個值或值的集合作為輸入並產生某個值或值的集合作為輸出。資料結構是一種儲存和組織資料的方式,旨在便於訪問和修改。1.1 1 給出現實生活中需要排序的乙個例子或者現實生活中需要計算凸殼的乙個例子 學生時代學習成績的排序是最常見的排序例子 1.1 2除...
演算法導論 學習筆記 第一章 演算法在計算中的作用
非形式地說,演算法是任何良定義 指無歧義的 不會導致矛盾的 符合其應滿足的所有要求的定義 的計算過程,該過程取某個值或值的集合作為輸入並產生某個值或值的集合作為輸出。演算法就是把輸入轉換成輸出的計算步驟的乙個序列。我們也可以把演算法看成是用於求解良說明的計算問題的工具,問題陳述說明了期望的輸入 輸出...