
AC
0 (alternating circuit) is a
complexity class
In computational complexity theory, a complexity class is a set (mathematics), set of computational problems "of related resource-based computational complexity, complexity". The two most commonly analyzed resources are time complexity, time and s ...
used in
circuit complexity
In theoretical computer science, circuit complexity is a branch of computational complexity theory in which Boolean functions are classified according to the size or depth of the Boolean circuits that compute them. A related notion is the circui ...
. It is the smallest class in the
AC hierarchy, and consists of all families of circuits of depth O(1) and polynomial size, with unlimited-
fanin AND gate
The AND gate is a basic digital logic gate that implements the logical conjunction (∧) from mathematical logic AND gates behave according to their truth table. A HIGH output (1) results only if all the inputs to the AND gate are HIGH (1). If a ...
s and
OR gate
The OR gate is a digital logic gate that implements logical disjunction. The OR gate outputs "true" if any of its inputs is "true"; otherwise it outputs "false". The input and output states are normally represented by different voltage levels.
...
s (we allow
NOT gate
Not or NOT may also refer to:
Language
* Not, the general declarative form of "no", indicating a negation of a related statement that usually precedes
* ... Not!, a grammatical construction used as a contradiction, popularized in the early 1990 ...
s only at the inputs).
[ It thus contains NC0, which has only bounded-fanin AND and OR gates.][ Such circuits are called "alternating circuits", since it is only necessary for the layers to alternate between all-AND and all-OR, since one AND after another AND is equivalent to a single AND, and the same for OR.
]
Example problems
Integer addition and subtraction are computable in AC0, but multiplication is not (specifically, when the inputs are two integers under the usual binary or base-10 representations of integers).
Since it is a circuit class, like P/poly, AC0 also contains every unary language.
Descriptive complexity
From a descriptive complexity
Descriptive complexity is a branch of computational complexity theory and of finite model theory that characterizes complexity classes by the type of logic needed to express the formal language, languages in them. For example, PH (complexity), PH, ...
viewpoint, DLOGTIME-uniform
A uniform is a variety of costume worn by members of an organization while usually participating in that organization's activity. Modern uniforms are most often worn by armed forces and paramilitary organizations such as police, emergency serv ...
AC0 is equal to the descriptive class FO+BIT of all languages
Language is a structured system of communication that consists of grammar and vocabulary. It is the primary means by which humans convey meaning, both in spoken and signed forms, and may also be conveyed through writing. Human language is ch ...
describable in first-order logic with the addition of the BIT predicate, or alternatively by FO(+, ×), or by Turing machine
A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer algori ...
in the logarithmic hierarchy.
Separations
In 1984 Furst, Saxe, and Sipser showed that calculating the PARITY of the input bits (unlike the aforementioned addition/subtraction problems above which had two inputs) cannot be decided by any AC0 circuits, even with non-uniformity. Similarly, computing the majority is also not in .
It follows that AC0 is strictly smaller than TC0. Note that "PARITY" is also called " XOR" in the literature.
However, PARITY is only barely out of AC0, in the sense that for any , there exists a family of alternating circuits using depth and size . In particular, setting to be a large constant, then there exists a family of alternating circuits using depth , and size only slightly superlinear.
More precise bounds follow from switching lemma In computational complexity theory, Håstad's switching lemma is a key tool for proving lower bounds on the size of constant-depth Boolean circuits. It was first introduced by Johan Håstad to prove that AC0, AC0 Boolean circuits of depth ''k'' requ ...
. Using them, it has been shown that there is an oracle separation between the polynomial hierarchy
In computational complexity theory, the polynomial hierarchy (sometimes called the polynomial-time hierarchy) is a hierarchy of complexity classes that generalize the classes NP and co-NP. Each class in the hierarchy is contained within PSPACE. ...
and PSPACE
In computational complexity theory, PSPACE is the set of all decision problems that can be solved by a Turing machine using a polynomial amount of space.
Formal definition
If we denote by SPACE(''f''(''n'')), the set of all problems that can ...
.
can be divided further, into a hierarchy of languages requiring up to 1 layer, 2 layers, etc. Let be the class of languages decidable by a threshold circuit family of up to depth :The following problem is -complete under a uniformity condition. Given a grid graph of polynomial length and width , decide whether a given pair of vertices are connected.
The addition of two -bit integers is in but not in .
References
{{ComplexityClasses
Circuit complexity
Complexity classes