{{위키데이터 속성 추적}}
'''복잡도 종류'''(複雜度 種類)는 [[계산 복잡도 이론]]에서 [[계산 복잡도]]에 따라서 문제를 분류한 것이다. 복잡도 종류의 일반적 정의는 다음과 같은 형태로 되어 있다.

{{인용문2|[[추상기계]] M이 [[대문자 O 표기법|O]](f(''n'')) 만큼의 자원 R을 이용하여 풀 수 있는 문제의 종류 (''n''은 입력의 길이)}}

예를 들어, [[NP (복잡도)|NP]]는 [[확률적 튜링 기계]]가 [[다항시간]]에 풀 수 있는 [[판정 문제]]의 집합이고 [[PSPACE]]는 [[결정론적 튜링 기계]]가 다항공간에 풀 수 있는 판정 문제의 집합이다. [[함수 문제]]의 집합인 [[FP (복잡도)|FP]] 같은 것도 있다.

구체적인 [[계산모형]] 없이 복잡도 종류를 정의하는 데 사용할 수 있는 [[블럼 공리]]도 있다.

== 복잡도 종류 사이의 관계 ==
아래 표는 복잡도 이론에서 다루는 문제(혹은 언어나 문법)의 종류를 정리한 것이다. 어떤 복잡도 종류 '''X'''가 '''Y'''의 [[진부분집합]]이면, '''X'''는 '''Y''' 아래에 검은 실선으로 연결했다. 만약 '''X'''가 '''Y'''의 부분집합이지만 두 집합이 같은지 아닌지 아직 알려지지 않았으면, 점선으로 연결했다. 엄밀하게 하자면 풀 수 있는 문제와 풀 수 없는 문제를 구분하는 것은 [[계산 복잡도 이론]]이 아니라 [[계산 가능성 이론]]에 속하지만, 전체적인 관계를 설명하기 위해 아래 표에 포함시켰다.


{| cellpadding="0" cellspacing="0" border="0" align="center"
|- align="center"
| colspan="2" | || colspan="4" | 
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightBlue" width="100%" height="100%"
|-
| align="center" | [[판정 문제]]
|}
|- align="center"
| colspan="2" | || [[파일:solidLine.png]]
| colspan="2" | || [[파일:solidLine.png]]
|- align="center"
| colspan="3" |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightBlue" width="100%" height="100%"
|-
| align="center" | [[재귀 열거 언어|Type 0 (재귀 열거)]]
|}
| || colspan="4" | 
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightBlue" width="100%" height="100%"
|-
| align="center" | [[판정 문제|판정 불가능]]
|}
|- align="center"
| colspan="3" | [[파일:solidLine.png]]
|- align="center"
| colspan="3" |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightBlue" width="100%" height="100%"
|-
| align="center" | [[재귀 언어|판정 가능]]
|}
|- align="center"
| colspan="3" | [[파일:solidLine.png]]
|- align="center"
| colspan="3" |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-
| align="center" | [[EXPSPACE]]
|}
|- align="center"
| colspan="3" | [[파일:dottedLine.png]]
|- align="center"
| colspan="3" |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-
| align="center" | [[EXPTIME]]
|}
|- align="center"
| colspan="3" | [[파일:dottedLine.png]]
|- align="center"
| colspan="8" |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-
| align="center" | [[PSPACE]]
|}
|- align="center"
| [[파일:solidLine.png]] || width="40" | [[파일:solidLine.png]]
| [[파일:dottedLine.png]] || [[파일:dottedLine.png]] ||
| [[파일:dottedLine.png]] ||
 || [[파일:dottedLine.png]]
|- align="center"
|
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightBlue" width="100%" height="100%"
|-
| align="center" | [[문맥 의존 문법|Type 1 (문맥민감)]]
|}
| [[파일:solidLine.png]] || [[파일:dottedLine.png]]
| border="1" | [[파일:dottedLine.png]] ||
 || [[파일:dottedLine.png]]
| || colspan="1" | 
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-
| align="center" | [[PSPACE-완전]]
|}
|- align="center"
| [[파일:solidLine.png]] || [[파일:solidLine.png]]
| [[파일:dottedLine.png]] || [[파일:dottedLine.png]] ||
| [[파일:dottedLine.png]]
|- align="center"
| [[파일:solidLine.png]] || [[파일:solidLine.png]]
|
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-
| align="center" | [[co-NP]]
|}
| [[파일:dottedLine.png]] || || colspan="3" | 
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-
| align="center" | [[NP (복잡도)|NP]]
|}
|- align="center"
| [[파일:solidLine.png]] || [[파일:solidLine.png]]
| [[파일:dottedLine.png]] || [[파일:dottedLine.png]] ||
| [[파일:dottedLine.png]] ||
 || [[파일:dottedLine.png]]
|- align="center"
| [[파일:solidLine.png]] || [[파일:solidLine.png]]
| [[파일:dottedLine.png]] ||
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-
| align="center" | [[BPP]]
|}
| width="10" | || 
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-
| align="center" | [[BQP]]
|}
| width="10" | || 
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-
| align="center" | [[NP-완전]]
|}
|- align="center"
| [[파일:solidLine.png]] || [[파일:solidLine.png]]
| [[파일:dottedLine.png]] || [[파일:dottedLine.png]] ||
| [[파일:dottedLine.png]]
|- align="center"
| [[파일:solidLine.png]] || [[파일:solidLine.png]]
| colspan="6" |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-
| align="center" | [[P (복잡도)|P]]
|}
|- align="center"
| [[파일:solidLine.png]] || [[파일:solidLine.png]]
| [[파일:dottedLine.png]]
| colspan="4" | || [[파일:dottedLine.png]]
|- align="center"
| [[파일:solidLine.png]] || colspan="2" |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-
| align="center" | [[NC (복잡도)|NC]]
|}
| colspan="4" | || 
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightGreen" width="100%" height="100%"
|-
| align="center" | [[P-완전]]
|}
|- align="center"
| [[파일:solidLine.png]] || colspan="2" | [[파일:solidLine.png]]
|- align="center"
| colspan="3" |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightBlue" width="100%" height="100%"
|-
| align="center" | [[문맥 자유 문법|Type 2 (문맥무관)]]
|}
|- align="center"
| colspan="3" | [[파일:solidLine.png]]
|- align="center"
| colspan="3" |
{| cellpadding="0" cellspacing="0" border="1" bgcolor="lightBlue" width="100%" height="100%"
|-
| align="center" | [[정규문법|Type 3 (정규)]]
|}
|}

== 참고 문헌 ==
* {{언어링크|en}} [https://web.archive.org/web/20100726082118/http://qwiki.stanford.edu/wiki/Complexity_Zoo The Complexity Zoo]: 복잡도 종류에 대한 방대한 자료
* {{언어링크|en}} [https://web.archive.org/web/20160416021243/https://people.cs.umass.edu/~immerman/complexity_theory.html Neil Immerman이 만든 복잡도 종류 사이의 관계도]
* [[마이클 게리]], [[데이비드 S. 존슨]]: ''Computers and Intractability: A Guide to the Theory of NP-Completeness.'' New York: W. H. Freeman & Co., 1979. NP-완전 문제 목록을 정리한 자료.

== 같이 보기 ==
* [[복잡도 종류 목록]]
* [[콜모고로프 복잡도]]

{{복잡도 종류}}

[[분류:복잡도 종류| ]]