計算複雑性理論において、NC(Nick's Class)とは多項式個数のプロセッサで構成される並列計算機で,問題サイズの対数について多項式時間で解ける決定問題の複雑性クラスである。換言すれば、NC に属する問題は、O(nk)個の並列プロセッサを使って O((log n)c) の時間で解ける(c と k は定数)。"Nick's Class" という用語はスティーブン・クックの造語で、計算機科学者 Nick Pippenger にちなんでいる。
クラス P と同様、NC に属する問題は並列計算機で効率的に解くことができると見なされている。並列計算機は通常の計算機でシミュレート可能であるため、NC は P に含まれる。NC = P かどうかは判っていないが、おそらく違うだろうと言われている。つまり、多項式時間で解ける問題には「本質的に逐次的」なものがあり、並列化によって高速化できないと考えられている。NP完全問題は効率的に解けないと考えられているように、P完全問題は「本質的に並列化不可能」または「本質的に逐次的」であると考えられている。
この定義における並列計算機は「並列ランダムアクセス機械」(PRAM)である。これは、共有メモリ型の並列計算機の計算モデルで、全プロセッサがどのメモリ位置についても一定の時間でアクセスできるものと定義されている。NC の定義は PRAM において複数のプロセッサが同じメモリ位置にアクセスした場合の対処方法には影響されない。この排他モデルとして CRCW、CREW、EREW がある。詳しくはPRAMを参照されたい。
NC の別の定義として、対数多項式
の深さと多項式個の論理ゲートからなる一様ブール回路で解ける決定問題の集合という定義もある。NCi は、多項式個の論理ゲートからなる一様ブール回路(深さ O((log n)i))で解ける決定問題の集合である。また、多項式個のプロセッサからなる並列計算機上で O((log n)i) 時間で解ける決定問題の集合でもある。
NC クラス群と L および NL の関係は Papadimitriou 1994, Theorem 16.1 により次のように示される。
N C 1 ⊆ L ⊆ N L ⊆ N C 2 {\displaystyle \mathbf {NC^{1}\subseteq L\subseteq NL\subseteq NC^{2}} }
同様に、NCi は、交替性チューリングマシンで O(log n) の領域と (log n)O(1) 回の交替で解ける決定問題の集合と同じである。
参考文献
Greenlaw, Raymond, James Hoover, and Walter Ruzzo. Limits To Parallel computation; P-Completeness Theory. ISBN 0-19-508591-4
Heribert Vollmer. ⇒Introduction to Circuit Complexity -- A Uniform Approach. ISBN 3-540-64310-9
Christos Papadimitriou (1993年). Computational Complexity (1st edition ed.). Addison Wesley. ISBN 0-201-53082-1 Section 15.3: The class NC, pp.375?381.
Dexter Kozen (2006年). Theory of Computation. Springer. ISBN 1-84628-297-7 Lecture 12: Relation of NC to Time-Space Classes
表
話
編
歴
主な複雑性クラス
実用的な時間で解けるクラス
DLOGTIME
AC0
ACC0
TC0
L
SL
RL
NL
NC
SC
CC
P
P完全
ZPP
RP
BPP
BQP
APX
実用的な時間で解けないと疑われているクラス
UP
NP
NP完全
NP困難
co-NP
co-NP完全
AM
QMA
PH
?P
PP
#P
#P完全
IP
PSPACE
実用的な時間では解けないクラス
EXPTIME
NEXPTIME
EXPSPACE
ELEMENTARY
PR
R
RE
ALL
クラス階層
多項式階層
指数階層
グジェゴルチク階層
算術的階層
ブーリアン階層
クラスの族
DTIME
NTIME
DSPACE
NSPACE
PCP
対話型証明系
一覧・ カテゴリ