Computer Science 456/656
Automata and Formal Languages

The Circuit Value Problem

One important question that arises in connection with parallel or distributed computing is, given a certain problem that takes a certain amount of time, can the work be partitioned amoung many processors (which are allowed to communicate with each other) in such a way as to speed up the computation?
The real question is, which problems can be worked in O(log^k(n)) time using polynomially many processors? For example, the minimum element in an array of size n can be found in O(log n) time using n processors. The class of all such problems is called NC, or "Nick's Class", named after Nicholas Pippenger.
Can every problem in the class P be worked in polylogarithmic time with polynomially many processors? This question is open. It is trivial that NC is a subclass of P.
The Circuit Value Problem. A Boolean circuit is defined to be a directed acyclic graph with seven kinds of nodes: We define a satisfying assignment of a Boolean circuit to be the assignment of a truth value to each node, which is "consistent" at each node. The definition of consistency at a node is as follows: A Boolean circuit can be encoded as a string. Fix an encoding scheme. We then define CVP to be the language of encodings of satisfiable Boolean circuits. It is easy to see that CVP is in the class P, i.e., polynomial time. But it is also an example of a P-complete problem, that is, if the circuit value problem in the class NC, then P = NC. The importance question is of the same order of magnitude as the importance of the better known question of whether P = NP.

Exercises:

  1. Prove that every regular language is in NC.
    Hint.
  2. Write a parallel algorithm that uses n/log(n) processors to find the maximum of n items in an array in O(log n) time.
  3. Can you prove that every context-free language is in NC? Try to parallelize the CYK algorithm.
  4. Prove that the special version of CVP where not-gates are not allowed is NC.
  5. Find a good definition of NC in terms of machines, in the same spirit as the usual definition of NP in terms of NTMs. (Try the world-wide-web.)