空間複雜度

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書

計算機科學中,一個算法程序空間複雜度定性地描述該算法或程序運行所需要的存儲空間大小。空間複雜度是相應計算問題英語Computational problem輸入值的長度的函數,它表示一個算法完全執行所需要的存儲空間大小。[1]

時間複雜度類似,空間複雜度通常也使用大O記號漸進地表示,例如等;其中n用來表示輸入的長度,該值可以影響算法的空間複雜度。

就像時間複雜度的計算不考慮算法所使用的空間大小一樣,空間複雜度也不考慮算法運行需要的時間長短。

空間複雜度類[編輯]

複雜度類是漸進複雜度相同的一類問題的集合。與時間複雜度類DTIME(f(n))NTIME(f(n))相似,空間複雜度類DSPACE(f(n))英語DSPACENSPACE(f(n))分別表示可以被確定型非確定型圖靈機上使用大小的空間可以決定語言的集合。此外,與PNP類似,如果令可以是任意多項式,就得到複雜度類PSPACENPSPACE。具體的定義為

複雜度類之間的關係[編輯]

根據空間層次定理,對於任意的空間可構函數,總存在這樣一個問題,它可以被一個圖靈機使用存儲空間求解,但不能被任何圖靈機用漸進少於的存儲空間求解。

以下複雜度類之間的包含關係是成立的[2]

另外,根據薩維奇定理,如果,則

上邊結果的一個直接推論是。這個推論意味着對於一個問題而言,非確定性可以為圖靈機節省的存儲空間是相當有限的。作為對比,在時間複雜度理論中,指數時間假說英語exponential time hypothesis猜想,對於時間複雜度而言,非確定型和確定型空間複雜度類之間的差距可能是指數級的。

根據Immerman–Szelepcsényi定理英語Immerman–Szelepcsényi theorem,對於取反操作下閉合(即若一個語言,則其反語言也在中)。這可能意味着空間和時間複雜度類在複雜度類關係上的另一個差別,因為一般認為非確定空間複雜度類在取反操作下不閉合,例如有猜想NP≠co-NP[3][4]

對數空間複雜度類[編輯]

對數空間複雜度類L(或寫作LOGSPACE)是指確定性圖靈機相對於輸入僅需存儲空間就可以解決的問題的集合。考慮到一個最大取值為輸入大小的計數器也需要二進制位,也即的存儲空間;LOGSPACE中的一個算法至多只能使用常數個計數器或其它複雜度相同的變量。

LOGSPACE以及其它次線性空間複雜度的算法在處理輸入大到存不進計算機的隨機存取存儲器的問題時很有用。解決這類問題的算法包括數據流算法英語Streaming algorithm;但次線性空間複雜度只考慮所需要的存儲空間,而數據流算法同時還要考慮輸入數據要怎樣被送入算法中。 此複雜度類的算法在偽隨機性去隨機化英語Derandomization中也有應用,當前的相關開放問題包括L = RL是否成立。[5][6]

與L對應的非確定性空間複雜度類是NL

輔助空間複雜度[編輯]

術語輔助空間是指除被輸入數據占據的空間之外使用的存儲空間。 因此,可以用以下方式來定義輔助空間複雜度:考慮一台擁有兩條紙帶的圖靈機,其中一條「輸入帶」只能讀不能寫,另一條一般的紙帶則可讀可寫。 則輔助空間複雜度只分析第二條紙帶(即作業紙帶,working tape)上的空間使用情況。 例如,對於平衡二叉樹深度優先搜索算法,若二叉樹有個節點,則其輔助空間複雜度是

參見[編輯]

參考資料[編輯]

  1. ^ Kuo, Way; Zuo, Ming J., Optimal Reliability Modeling: Principles and Applications, John Wiley & Sons: 62, 2003 [2021-08-11], ISBN 9780471275459, (原始內容存檔於2021-08-11) 
  2. ^ Arora, Sanjeev; Barak, Boaz, Computational Complexity : A Modern Approach (PDF) draft: 76, 2007 [2021-08-11], ISBN 9780511804090, (原始內容 (PDF)存檔於2021-03-20) 
  3. ^ Immerman, Neil, Nondeterministic space is closed under complementation (PDF), SIAM Journal on Computing, 1988, 17 (5): 935–938 [2021-08-11], MR 0961049, doi:10.1137/0217058, (原始內容 (PDF)存檔於2012-02-07) 
  4. ^ Szelepcsényi, Róbert, The method of forcing for nondeterministic automata, Bulletin of the EATCS, 1987, 33: 96–100 
  5. ^ Nisan, Noam, RL ⊆ SC, Proceedings of the 24th ACM Symposium on Theory of computing (STOC '92), Victoria, British Columbia, Canada: 619–623, 1992, doi:10.1145/129712.129772 .
  6. ^ Reingold, Omer; Trevisan, Luca; Vadhan, Salil, Pseudorandom walks on regular digraphs and the RL vs. L problem (PDF), STOC'06: Proceedings of the 38th Annual ACM Symposium on Theory of Computing, New York: ACM: 457–466, 2006 [2021-08-11], MR 2277171, doi:10.1145/1132516.1132583, (原始內容 (PDF)存檔於2021-06-13)