Revision 108480330 of "Benutzer:Schreiber/NC (complexity)" on dewikiIn [[computational complexity theory|complexity theory]], the class '''NC''' (for "Nick's Class") is the set of [[decision problem]]s decidable in [[polylogarithmic time]] on a [[parallel computing|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 [[Big O notation|''O'']](log<sup>''c''</sup> ''n'') using [[Big O notation|''O'']](''n''<sup>''k''</sup>) 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 (complexity)|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'' ([[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 [[parallel random access machine|PRAM]] for descriptions of those models.
Equivalently, '''NC''' can be defined as those decision problems decidable by a [[Boolean circuit|uniform Boolean circuit]] (which can be calculated from the length of the input) with [[polylogarithmic]] depth and a polynomial number of gates.
== The NC Hierarchy ==
'''NC'''<sup>''i''</sup> is the class of decision problems decidable by uniform boolean circuits with a polynomial number of gates and depth ''O''(log<sup>''i''</sup> ''n''), or the class of decision problems solvable in time ''O''(log<sup>''i''</sup> ''n'') on a parallel computer with a polynomial number of processors. Clearly, we have
:<math>\textbf{NC}^1 \subseteq \textbf{NC}^2 \subseteq \cdots \subseteq \textbf{NC}^i \subseteq \cdots \subseteq \textbf{NC}</math>
which forms the '''NC'''-hierarchy.
We can relate the '''NC''' classes to the space classes '''[[L (complexity)|L]]''' and '''[[NL (complexity)|NL]]'''. From Papadimitriou 1994, Theorem 16.1:
:<math> \mathbf{NC}^1 \subseteq \mathbf{L} \subseteq \mathbf{NL} \subseteq \mathbf{NC}^2 \subseteq \mathbf{P}.</math><ref>[http://www.cs.mu.oz.au/677/notes/node18.html Nick's Class<!-- Bot generated title -->] {{Dead link|date=January 2010}}</ref>
Similarly, we have that '''NC'''<sup>''i''</sup> is equivalent to the problems solvable on an [[alternating Turing machine]] with <math>O(\log n)</math> space and <math>(\log n)^{O(1)}</math> alternations.<ref>{{cite journal|author=S. Bellantoni and I. Oitavem|title=Separating NC along the delta axis|journal=Theoretical Computer Science|volume=318|year=2004|pages=57-78}}</ref>
=== Open problem: Is NC proper? ===
One major open question in [[computational complexity theory|complexity theory]] is whether or not every containment in the '''NC''' hierarchy is proper. It was observed by Papadimitriou that, if '''NC'''<sup>''i''</sup> = '''NC'''<sup>''i''+1</sup> for some ''i'', then '''NC'''<sup>''i''</sup> = '''NC'''<sup>''j''</sup> for all ''j'' ≥ ''i'', and as a result, '''NC'''<sup>''i''</sup> = '''NC'''. This observation is known as '''NC'''-hierarchy collapse because even a single equality in the chain of containments
:<math>\textbf{NC}^1 \subseteq \textbf{NC}^2 \subseteq \cdots</math>
implies that the entire '''NC''' hierarchy "collapses" down to some level ''i''. Thus, there are 2 possibilities:
# <math>\textbf{NC}^1 \subset \cdots \subset \textbf{NC}^i \subset \cdots \subset \textbf{NC}</math>
# <math>\textbf{NC}^1 \subset \cdots \subset \textbf{NC}^i = \cdots = \textbf{NC}</math>
It is widely believed that (1) is the case, although no proof as to the truth of either statement has yet been discovered.
==Algorithm Projects Proof==
// count=0 do while m=N e=e–2*y if e=0 then puncture bit Cm Cm 2, from set S0 e=e+2*NC
// else if m%2==0 puncture bit C m from set S0 else if m%2==1 puncture bit Cm2, from set S0
// end if m=m+1 end do if Ni NC ( ) 2 3 1 ≤ y=3*N-Ni e=N m=1 count=0 do while m=N e=e-2*y if
// e=0 then if count %2==0 puncture bit Cm2, from set S0 endif if count %2==1 puncture bit
// Cm1, from set S0 endif e=e+2*NC count=count+1 end if m=m+1 enddo endif above algorithm
// follows turbo code puncturing rules imposed. 3GPP/TSG/RAN/WG1#4 TDOC 338/99 in above
// algorithm, NiNC
// =23 means code rate=1/2 optimal puncturing pattern of code rate 1/2 proposed
// puncturing=
// algorithm provides same puncturing pattern. when NiNC
// 23 is transparent optimal puncturing pattern 1/2. Systematic bits Parity bits 1 Parity
// bits
// 2
// puncturing pattern=1/2 turbo code Simulation Results Simulation conditions are below. ●
// Interleaver depth is 640 ● Internal interleaver is CDI. ● Constraint length of the
// constituent code is 4. ● Conventional termination method is applied. ● A full MAP with
// floating point implementation is used for decoding of constituent encoders ● Iteration
// number
// is 4. ● At BER 10 5−, at least 100 frame errors have to be counted ● Simulations are
// carried out in an AWGN channel ● Conventional puncturing algorithm parameters Comparison
// performed Case 1 : 128 puncturing 1/2 turbo code Effective code rate=640640 2 12
// 12864011640
// 55.+−== Case 2 : 384 puncturing from 1/3 turbo code Effective code rate=640640 3 12
// 38464015480 41*.+−== The simulation results shows proposed puncturing algorithm coding
// gain=
// 0.04 dB at BER 10 5−and 0.015 dB at FER=10 3−in Case 1. In Case 2, proposed
// puncturing=
// algorithm coding gain of 0.1 dB at a BER of 10 5−and 0.07 dB at FER=
// 10−.3GPP/TSG/RAN/WG1#4 TDOC 338/99 1.000E-04 1.000E-03 1.000E-02 1.000E-01 1.000E+00
// Frame=
// and bit error rate comparison of 128 punctured=1/2 turbo code(Case 1) 1.000E-02 1.000E-01
// 1.000E+00 Frame and bit error rate comparison of 384 punctured 1/3 turbo code(Case 2)
To enhance the performance of the conventional puncturing algorithm for turbo code, a novel puncturing algorithm is proposed in which puncturing is only done alternatively between two encoder parity bits. The proposed puncturing algorithm is simple and has superior performance over conventional algorithms.[http://groups.google.com/group/sci.math/browse_thread/thread/22ca261e5b95cc6d#]
==References==
<references/>
* 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
* {{cite book|author = [[Christos Papadimitriou]] | year = 1993 | title = Computational Complexity | publisher = Addison Wesley | edition = 1st edition | isbn = 0-201-53082-1}} Section 15.3: The class '''NC''', pp.375–381.
* {{cite book|author = [[Dexter Kozen]] | year = 2006 | title = Theory of Computation | publisher = Springer | isbn = 1-84628-297-7}} Lecture 12: Relation of ''NC'' to Time-Space Classes
{{ComplexityClasses}}
{{DEFAULTSORT:Nc (Complexity)}}
[[Category:Complexity classes]]
[[Category:Circuit complexity]]
[[de:NC (Komplexitätsklasse)]]
[[es:NC (clase de complejidad)]]
[[ko:NC (복잡도)]]
[[it:NC (complessità)]]
[[ja:NC (計算複雑性理論)]]All content in the above text box is licensed under the Creative Commons Attribution-ShareAlike license Version 4 and was originally sourced from https://de.wikipedia.org/w/index.php?oldid=108480330.
![]() ![]() This site is not affiliated with or endorsed in any way by the Wikimedia Foundation or any of its affiliates. In fact, we fucking despise them.
|