FACTOID # 25: If you're tired of sitting in traffic on your way to work, move to North Dakota.

 Home Encyclopedia Statistics States A-Z Flags Maps FAQ About

 WHAT'S NEW

SEARCH ALL

Search encyclopedia, statistics and forums:

(* = Graphable)

Encyclopedia > NC (complexity)

In complexity theory, the class NC ("Nick's Class") is the set of decision problems decidable in polylogarithmic time on a parallel computer with a polynomial number of processors. In other words, a problem is in NC if there are constants c and k such that it can be solved in time O((log n)c) using O(nk) parallel processors.

Just as the class P can be thought of as the tractable problems, so NC can be thought of as the problems that can be efficiently solved on a parallel computer. NC is a subset of P because parallel computers can be simulated by sequential ones. It is unknown whether NC = P, but most researchers suspect this to be false, meaning that there are some tractable problems which are probably "inherently sequential" and cannot significantly be sped up by using parallelism. Just as the class NP-Complete can be thought of as "probably intractable", so the class P-Complete can be thought of as "probably not parallelizable" or "probably inherently sequential".

The parallel computer in the definition can be assumed to be a parallel, random-access machine (PRAM). That is a parallel computer with a central pool of memory, and any processor can access any bit of memory in constant time. The definition of NC is not affected by the choice of how the PRAM handles simultaneous access to a single bit by more than one processor. It can be CRCW, CREW, or EREW. See PRAM for descriptions of those models.

Equivalently, NC can be defined as those decision problems decidable by uniform Boolean circuits with polylogarithmic depth and a polynomial number of gates.

NCi is the class of decision problems decidable by uniform boolean circuits with a polynomial number of gates and depth O((log n)i), or the class of decision problems solvable in time O((log n)i) on a parallel computer with a polynomial number of processors.

Stephen Cook coined the name NC ("Nick's class") after Nick Pippenger, who had done extensive research on circuits with polylogarithmic depth and polynomial size.

• Greenlaw, Raymond, James Hoover, and Walter Ruzzo. Limits To Parallel computation; P-Completeness Theory. ISBN 0195085914
• Heribert Vollmer. Introduction to Circuit Complexity -- A Uniform Approach (http://www.thi.uni-hannover.de/forschung/publikationen/cc/index.en.php). ISBN 3-540-64310-9

 Important complexity classes (more) P | NP | Co-NP | NP-C | Co-NP-C | NP-hard | UP | #P | #P-C | L | NC | P-C PSPACE | PSPACE-C | EXPTIME | EXPSPACE | BQP | BPP | RP | ZPP | PCP | IP | PH

Results from FactBites:

 NC (complexity) - Wikipedia, the free encyclopedia (428 words) In complexity theory, the class NC (for "Nick's Class") is the set of decision problems decidable in polylogarithmic time on a parallel computer with a polynomial number of processors. NC is a subset of P because parallel computers can be simulated by sequential ones. Equivalently, NC can be defined as those decision problems decidable by uniform Boolean circuits with polylogarithmic depth and a polynomial number of gates.
 Computational Complexity: The Graduate Complexity Course (749 words) In the spring of 1985 I took a graduate complexity course with Juris Hartmanis at Cornell and in the spring of 1986 took a graduate complexity course with Michael Sipser at Berkeley with only the polynomial-time hierarchy in the intersection of the two courses. I think that any such complexity course should at least expose students to the circuit complexity approach especially since it is the main way to understand low level complexity classes. Complexity theorists need to learn how to use it; other students need some explanation why this course doesn't answer most of the questions it raises.
More results at FactBites »

Share your thoughts, questions and commentary here