NC (complexity)

NC (complexity)
Unsolved problems in computer science
Is NC = P ?

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. In other words, a problem is in NC if there exist constants c and k such that it can be solved in time O(logc n) using O(nk) parallel processors. Stephen Cook coined the name "Nick's class" after Nick Pippenger, who had done extensive research on circuits with polylogarithmic depth and polynomial size.

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 polylogarithmic parallel computations can be simulated by polynomial-time sequential ones. It is unknown whether NC = P, but most researchers suspect this to be false, meaning that there are probably some tractable problems which are "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, when using NC reductions, 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 a uniform Boolean circuit (which can be calculated from the length of the input) with polylogarithmic depth and a polynomial number of gates.

Contents

The NC Hierarchy

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

\textbf{NC}^1 \subseteq \textbf{NC}^2 \subseteq \cdots \subseteq \textbf{NC}^i \subseteq \cdots \textbf{NC}

which forms the NC-hierarchy.

We can relate the NC classes to the space classes L and NL. From Papadimitriou 1994, Theorem 16.1:

 \mathbf{NC}^1 \subseteq \mathbf{L} \subseteq \mathbf{NL} \subseteq \mathbf{NC}^2 \subseteq \mathbf{P}.

Similarly, we have that NC is equivalent to the problems solvable on an alternating Turing machine with O(log n) space and (log n)O(1) alternations.[1]

Open problem: Is NC proper?

One major open question in complexity theory is whether or not every containment in the NC hierarchy is proper. It was observed by Papadimitriou that, if NCi = NCi+1 for some i, then NCi = NCj for all j ≥ i, and as a result, NCi = NC. This observation is known as NC-hierarchy collapse because even a single equality in the chain of containments

\textbf{NC}^1 \subseteq \textbf{NC}^2 \subseteq \cdots

implies that the entire NC hierarchy "collapses" down to some level i. Thus, there are 2 possibilities:

  1. \textbf{NC}^1 \subset \cdots \subset \textbf{NC}^i \subset ... \subset \textbf{NC}^{i+j} \subset \cdots \textbf{NC}
  2. \textbf{NC}^1 \subset \cdots \subset \textbf{NC}^i = ... = \textbf{NC}^{i+j} = \cdots \textbf{NC}

It is widely believed that (1) is the case, although no proof as to the truth of either statement has yet been discovered.

Barrington's theorem

A branching program with n variables of width k and length m consists of a sequence of m instructions. Each of the instructions is a tuple (i, p, q) where i is the index of variable to check (1 ≤ in), and p and q are functions from {1,2,...,k} to {1,2,...,k}. The program initially starts in state 1, and each instruction (i, p, q) changes the state from x to p(x) or q(x), depending on whether i-th variable is 0 or 1.

A family of branching programs consists of a branching program with n variables for each n.

It's easy to show that every language L on {0,1} can be decided using a family of branching programs of width 4 and exponential length, or using a family of exponential width and linear length.

Every regular language on {0,1} can be recognized with a family of branching programs of constant width and linear number of instructions (since a DFA can be converted to a branching program).

Barrington's theorem[2] says that the class of languages recognized with a family of branching programs of width 5 and polynomial length is exactly nonuniform NC1. The proof uses nonsolvability of symmetric group S5.

The theorem is rather surprising. It implies that majority function can be computed with a family of branching programs of constant width and polynomial size, while intuition might suggest that to achieve polynomial size, one needs linear number of states.

Proof of Barrington's theorem

A branching program of constant width and polynomial size can be easily converted (via divide-and-conquer) to a circuit in NC1.

Conversely, suppose a circuit in NC1 is given. Without loss of generality, assume it uses only AND and NOT gates.

Lemma 1: If there exists a branching program that sometimes works as permutation P and sometimes as Q, by right-multiplying permutations in first instruction by α, and in last instruction left-multiplying by β, we can make a circuit of the same length that behaves as βPα or βQα respectively.

Call a branching program α-computing a circuit C if it works as identity when C's output is 0, and as α when C's output is 1.

As a consequence of lemma 1 and the fact that all cycles of length 5 are conjugate, for any two 5-cycles α,β if there exists a branching program α-computing a circuit C, then there exists a branching program β-computing the circuit C, of the same length.

Lemma 2: There exists 5-cycles γ,δ such that their commutator \gamma \delta \gamma^{-1} \delta^{-1} = \epsilon is a 5-cycle. For example, γ = (12345), δ = (13542).

We will now prove Barrington's theorem by induction.

Assume that for all subcircuits D of C and 5-cycles α, there exists a branching program α-computing C. We will show that for all 5-cycles α, there exists a branching program α-computing C.

  • If the circuit outputs xi, the branching program has one instruction checking xi and outputting identity or α respectively.
  • If the circuit outputs \neg C, where C is a different circuit. Create a branching program α − 1-computing C, and multiply output of the program (using lemma 1) by α to get a branching program outputting id or α, i.e. α-computing \neg C.
  • If the circuit outputs C \wedge D, join the branching programs that δ − 1-compute D, γ − 1-compute C,δ-compute D, γ-compute C. If one of the circuits outputs 0, the resulting program will be identity; if both circuits output 1, the resulting program will work as \epsilon. In other words, we get a program \epsilon-computing C \wedge D. Because \epsilon and α are two 5-cycles, they are conjugate, and there exists a program α-computing C \wedge D.

The size of the branching program is at most 4d, where d is the depth of the circuit. If the circuit has logarithmic depth, the branching program has polynomial length.

References

  1. ^ S. Bellantoni and I. Oitavem (2004). "Separating NC along the delta axis". Theoretical Computer Science 318: 57–78. 
  2. ^ D. A. Barrington. Bounded-Width Polynomial-Size Branching Programs Recognize Exactly Those Languages in NC1

Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Complexity management — is a business methodology that deals with the analysis and optimization of complexity in enterprises. Effects of complexity pertain to all business processes along the value chain and hence complexity management requires a holistic approach.… …   Wikipedia

  • Complexity theory and organizations — Complexity theory and organizations, also called complexity strategy or complex adaptive organization, is the use of Complexity theory in the field of strategic management and organizational studies. Contents 1 Overview 2 Early research 3 Later… …   Wikipedia

  • compLexity — coL Логотип организации Страна …   Википедия

  • Complexity theory and strategy — Complexity theory has been used extensively in the field of strategic management and organizational studies, sometimes called complexity strategy or complex adaptive organization on the internet or in popular press. Broadly speaking, complexity… …   Wikipedia

  • Complexity (journal) —   Discipline Complex Systems …   Wikipedia

  • Complexity, Problem Solving, and Sustainable Societies — is a paper on energy economics by Joseph Tainter from 1996. Contents 1 Focus 1.1 Attempts 1.2 Requirement of knowledge 2 See …   Wikipedia

  • Complexity theory — may refer to: The study of a complex system or complex systems Complexity theory and organizations, the application of complexity theory to strategy Complexity economics, the application of complexity theory to economics Chaos theory, the study… …   Wikipedia

  • compLexity — Kürzel coL Manager Vereinigte Staaten Jason „1“ Lake …   Deutsch Wikipedia

  • Complexity — Com*plex i*ty, n.; pl. {Complexities}. [Cf. F. complexit[ e].] 1. The state of being complex; intricacy; entanglement. [1913 Webster] The objects of society are of the greatest possible complexity. Burke. [1913 Webster] 2. That which is complex;… …   The Collaborative International Dictionary of English

  • complexity — complexity. См. сложность генома. (Источник: «Англо русский толковый словарь генетических терминов». Арефьев В.А., Лисовенко Л.А., Москва: Изд во ВНИРО, 1995 г.) …   Молекулярная биология и генетика. Толковый словарь.

  • complexity — index complication, confusion (turmoil), enigma, entanglement (confusion), imbroglio, impasse …   Law dictionary

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”