在計算複雜度理論中，一個複雜度類指的是在考慮某種特定的計算資源時，由一群同類問題所構成的集合。時間和空間是最常見的兩種計算資源。 一般而言，一個複雜度類的定義需要具有三個要素： 欲研究問題之型別； 所用之計算模型； 所研究之計算資源的上界。 許多常見的複雜度類皆是基於使用圖靈機解決決定性問題時所需時間或空間（記憶體）的多少來定義的。例如，P 類問題包含了所有可由確定型圖靈機在多項式時間內解決的問題。當然，也存在基於其他問題型別（如和函式問題）或計算模型（如機率圖靈機、互動式證明系統和和量子計算機）定義的複雜度類。 許多複雜度類可為數學邏輯所描述刻劃，請見。 布盧姆複雜度則不需實際抽象機器就可定義複雜度類。 背景 決定性問題 決定性問題可以被不嚴謹地定義為 所有可被描述為是非問題的問題。比如，給定正數 x，問 x 是否能被 3 整除？ 便是一個決定性問題。該例子中，x 為輸入變數。對於每一個輸入 x 來說，該問題的答案要麼是 是，要麼是 否。那些回答為 是 的 x 被稱為 真例項，回答為 否 的 x 被稱為 假例項。將所有真例項蒐集為一個集合，即可得到與該問題的對應的語言 語言的本質上是字串的集合。每一個決定性問題都有它所對應的語言 事實上，每一個語言也定義了一個決定性問題：對於輸入 x，x 是否存在於這個語言中？。 圖靈機 圖靈機是 1936 年由英國數學家艾倫圖靈提出的一種理想化的計算模型。它的執行邏輯非常簡單，但其計算能力等價於任何有限的數學邏輯過程。邱奇 圖靈論題認為任何有效演算法都可被某一個圖靈機實現。通俗地說，任何演算法都可以被視為一臺圖靈機。這也意味著，如果某一問題不能被任何圖靈機解決，則該問題亦不能被任何演算法解決。對於任意輸入，圖靈機可能 接受（輸出 真）或 拒絕（輸出 否），但也有可能進入死迴圈，永遠不停機給出答案。 重要的複雜度類 不可判定問題 某些決定性問題不能被任何單一固定的圖靈機解決，這類問題被稱為不可判定問題或不可判定語言。其中最著名的是停機問題，即判斷一個給定的圖靈機 M 將一個給定的字串 w 作為輸入執行時，是否能在有限步內停機。不可判定問題的語言必定是無窮大的 否則，可以直接羅列其中的所有字串，一一與輸入字串比較，即得到一個判定之的圖靈機。 RE 與反 RE RE 類問題是一類能被圖靈機部分解決的問題。其可被定義為：對於某一決定性問題 L，如果存在一個圖靈機 M 滿足：輸入任何 L 的真例項時， M 停機並回答 是；且輸入任何 L 的假例項時， M 不回答 是（允許不停機），則 L 屬於 RE。 RE 的名稱源於該類的英語名稱 Recursively Enumerable，即 遞迴可列舉。該名稱來源於它基於列舉器的一個等價定義。 反 RE 問題，或 coRE，是另一類能被圖靈機部分解決的問題。它包含所有屬於 RE 的語言的補集。將上述 RE 類問題的定義中的 真例項 與 假例項 互換，即得到反 RE 的定義。 RE 與反 RE 的交集 R 被稱為可判定問題或遞迴語言。不在 R 中的問題都被稱為不可判定問題。 P P 類問題，或稱多項式時間問題，是指能被某一圖靈機於多項式時間內解決的問題的集合。P 是 Polynomial 的縮寫。許多一般意義上的 簡單 計算問題皆屬於 P。例如判斷某數是否為另兩個數的最大公因數、問題等。2002 年發現質數的判定問題也屬於 PManindra Agrawal Neeraj Kayal Nitin Saxena PRIMES is in P Annals of Mathematics 160 2004 no 2 pp 781793 。P 類問題被認為是一類 簡單問題。事實上，認為，P 類問題是僅有的 有可能被實際解決的問題。 NP NP 類問題，或稱非確定性多項式時間問題，是指能被某一非確定性圖靈機於多項式時間內解決的問題的集合。NP 是 Nondeterministic Polynomial 的縮寫。 根據定義，所有 P 問題都屬於 NP 直接將非確定性圖靈機當作普通圖靈機使用即可。另外，許多常見的難解問題都屬於 NP，例如旅行推銷員問題的決定性問題版本、圖論中的分團問題等，但尚不清楚這些問題是否其實亦屬於 P。即，尚未證明圖靈機的非確定性在解決這些問題時確實必要。這便是著名的 PNP 問題。 PSPACE PSPACE 類問題是指所有能被圖靈機在多項式空間內所解決的問題的集合。直覺上，由於空間可以重複利用，而時間不能，因而會比只能利用多項式時間的 P 類問題包含更多、更復雜的問題。可以證明 P 和 NP 均包含於 PSPACE，但判定該包含關係是否為真包含的問題尚未得到解決。 有類似 NP 之於 P 定義的，將定義中確定性圖靈機替換為非確定性圖靈機而得到的 NPSPACE 類。然而，根據薩維奇定理，NPSPACE PSPACE，這意味著非確定性對於空間來說並不能對如同時間般有效地來降低開銷。 許多較為簡單的桌遊的優勝問題（即判定某一玩家是否有必勝策略的問題），如推廣版本的井字棋和接龍游戲皆屬於 PSPACE。直覺上，這是因為只需要線性的空間就可以模擬出棋盤上的所有可能的變局，同時遊戲的總的可能步數維持在棋盤格子數的多項式數量之內。 EXPTIME 與 NEXPTIME EXPTIME 類問題是指所有能被圖靈機在指數時間內所解決的問題的集合。PSPACE subseteq EXPTIME，這是因為圖靈機在多項式空間上僅有指數多種不同的格局，因此雖然沒有明文規定 PSPACE 圖靈機的執行時間上限，它們依然隱含一個指數的時間上限，執行時間超過該上限之後便可判定為進入死迴圈。 另外，根據時間階層定理，可以確認有 P subsetneq EXPTIME。 一些更復雜的桌遊的優勝問題，如推廣版本的國際象棋和國際跳棋皆屬於 EXPTIME。與井字棋等簡單桌遊不同，國際象棋等遊戲的步數數量隨著棋盤的擴大呈現指數級增長。 類似 NP 之於 P，可以類似地定義 NEXPTIME 類問題。目前，同樣僅能確認 EXPTIME subseteq NEXPTIME。不過如果 P NP，則有 EXPTIME NEXPTIME。 根據時間階層定理，可以確認有 NP subsetneq NEXPTIME。 EXPSPACE 類似 EXPTIME 之於 P，EXPSPACE 之於 PSPACE 擁有了更多的可用空間 它是所有能被圖靈機在指數空間內所解決的問題的集合。比如判斷兩個正則表示式是否能生成同樣的語言就屬於 EXPSPACE。 根據空間階層定理，可以確認有 PSPACE subsetneq EXPSPACE。 複雜度類之間的關係 下表簡列了一些屬於複雜度理論的問題（或語言、文法等）類別。如果類別 X 是類別 Y 的子集合，則 X 將會畫在 Y 底下，並以一黑線相連。如果 X 是子集合，但不知是否與 Y 相等，則以較輕的虛線相連。實際上可解與不可解問題更屬於可計算性理論，但是它有助於更透徹瞭解複雜度類的問題。 決定性問題 型別 0（遞迴可列舉） 未決定問題 遞迴 EXPSPACE NEXPTIME EXPTIME PSPACE 型別 1（上下文有關） 反 NP BQP NP BPP P NC 型別 2（上下文無關） 型別 3（正則） 擴充閱讀 複雜度類大觀園 ：一個巨大的複雜度類列表，專家級使用。 複雜度類架構圖，由製作，展示複雜度類的階層架構與它們是如何定位的。 與 Computers and Intractability A Guide to the Theory of NPCompleteness New York W H Freeman Co 1979 NPcomplete（NPC 問題是解決某些數學難題的重要關鍵，這問題暗示人們是否可以將某些演演算法的執行效率提升到可接受的範圍）問題的標準指南。 註解 參見 複雜度類列表 Category 計算複雜性理論