計算複雜性理論

2021-06-29 04:10:20 字數 1160 閱讀 1557

計算複雜性理論所研究的資源中最常見的是時間(要通過多少步演算才能解決問題)和空間(在解決問題時需要多少記憶體)。其他資源亦可考慮,例如在平行計算中,需要多少並行處理器才能解決問題。

時間複雜度是指在電腦科學與工程領域完成乙個演算法所需要的時間,是衡量乙個演算法優劣的重要引數。時間複雜度越小,說明該演算法效率越高,則該演算法越有價值。

空間複雜度是指電腦科學領域完成乙個演算法所需要占用的儲存空間,一般是輸入引數的函式。它是演算法優劣的重要度量指標,一般來說,空間複雜度越小,演算法越好。我們假設有乙個圖靈機來解決某一類語言的某一問題,設有x個字(word)屬於這個問題,把x放入這個圖靈機的輸入端,這個圖靈機為解決此問題所需要的工作帶格仔數總和稱為空間

複雜度理論和可計算性理論不同,可計算性理論的重心在於問題能否解決,不管需要多少資源。而複雜性理論作為計算理論的分支,某種程度上被認為和演算法理論是一種「矛」與「盾」的關係,即演算法理論專注於設計有效的演算法,而複雜性理論專注於理解為什麼對於某類問題,不存在有效的演算法。

多項式時間(

英語:polynomial time

)在計算複雜度理論中,指的是乙個問題的計算時間

複雜度類,此類包括可於此機器以多項式時間求解的問題。

以數學描述的話,則可說

數學家有時把「如多項式時間長的演算法」視為快速計算,相對應的是超多項式時間,表示任何多項式時間的輸入數目只要夠大,超多項式時間所需的解題時間終究會大大超過任何多項式時間的問題。指數時間就是一例。

可以在決定型依序機器上(例如圖靈機)以多項式時間解決的決定性問題,其屬於的複雜度類被稱為p。可以在多項式時間驗證答案的決定性問題稱為np。而np也是可以在非確定型圖靈機以多項式時間解決的問題(np兩字為non-deterministicpolynomial的縮寫)。

多項式時間在決定型機器上是最小的複雜度類別,且在機器模型改變時依舊強韌,且也是可在副程式組合過程中保持封閉的類別。

強多項式時間指的是此問題的運算時間不因輸入資料的數字大小而變動,而是依照輸入資料的結構複雜度(例如圖中的頂點數量)。

計算機複雜性理論

計算複雜性理論 computational complexity theory 是理論電腦科學和數學的乙個分支,它致力於將可計算問題根據它們本身的複雜性分類,以及將這些類別聯絡起來。乙個可計算問題被認為是乙個原則上可以用計算機解決的問題,亦即這個問題可以用一系列機械的數學步驟解決,例如演算法。如果乙...

《計算複雜性與演算法分析》和《計算複雜性》學習

今天偶然間碰到數學界著名的七大千禧難題,關注了p和np問題,但是裡面提到關於演算法的複雜性的描述已經超出了自己的知識範圍,我找到了一本書來彌補這個不足,即 計算複雜性與演算法分析 希望自己在看完這本書之後能夠對計算複雜性有完整的概念 首先看看它的目錄 其實大部分的知識都有接觸過,但是沒有形成體系 接...

決策樹 排序問題的計算複雜性

對排序演算法計算時間的分析可以遵循若干種不同的準則,通常以排序過程所需要的演算法步數作為度量,有時也以排序過程中所作的鍵比較次數作為度量。特別是當作一次鍵比較需要較長時間,例如,當鍵是較長的字串時,常以鍵比較次數作為排序演算法計算時間複雜性的度量。當排序時需要移動記錄,且記錄都很大時,還應該考慮記錄...