AC (complexity)

From Wikipedia, the free encyclopedia

In circuit complexity, AC is a complexity class hierarchy. Each class, ACi, consists of the languages recognized by Boolean circuits with depth and a polynomial number of unlimited fan-in AND and OR gates.

The name "AC" was chosen by analogy to NC, with the "A" in the name standing for "alternating" and referring both to the alternation between the AND and OR gates in the circuits and to alternating Turing machines.[1]

The smallest AC class is AC0, consisting of constant-depth unlimited fan-in circuits.

The total hierarchy of AC classes is defined as

Relation to NC[edit]

The AC classes are related to the NC classes, which are defined similarly, but with gates having only constant fanin. For each i, we have[2][3]

As an immediate consequence of this, we have that NC = AC.[4]

It is known that inclusion is strict for i = 0.[3]


The power of the AC classes can be affected by adding additional gates. If we add gates which calculate the modulo operation for some modulus m, we have the classes ACCi[m].[4]


  1. ^ Regan (1999, p. 27-18)
  2. ^ Clote & Kranakis (2002, p. 437)
  3. ^ a b Arora & Barak (2009, p. 118)
  4. ^ a b Clote & Kranakis (2002, p. 12)


  • Arora, Sanjeev; Barak, Boaz (2009), Computational complexity. A modern approach, Cambridge University Press, ISBN 978-0-521-42426-4, Zbl 1193.68112
  • Clote, Peter; Kranakis, Evangelos (2002), Boolean functions and computation models, Texts in Theoretical Computer Science. An EATCS Series, Berlin: Springer-Verlag, ISBN 3-540-59436-1, Zbl 1016.94046
  • Regan, Kenneth W. (1999), "Complexity classes", Algorithms and Theory of Computation Handbook, CRC Press.
  • Vollmer, Heribert (1998), Introduction to circuit complexity. A uniform approach, Texts in Theoretical Computer Science, Berlin: Springer-Verlag, ISBN 3-540-64310-9, Zbl 0931.68055