Arithmetic circuit complexity

Last updated

In computational complexity theory, arithmetic circuits are the standard model for computing polynomials. Informally, an arithmetic circuit takes as inputs either variables or numbers, and is allowed to either add or multiply two expressions it has already computed. Arithmetic circuits provide a formal way to understand the complexity of computing polynomials. The basic type of question in this line of research is "what is the most efficient way to compute a given polynomial ?"

Contents

Definitions

A simple arithmetic circuit. ArithmeticCircuit.svg
A simple arithmetic circuit.

An arithmetic circuit over the field and the set of variables is a directed acyclic graph as follows. Every node in it with indegree zero is called an input gate and is labeled by either a variable or a field element in Every other gate is labeled by either or in the first case it is a sum gate and in the second a product gate. An arithmetic formula is a circuit in which every gate has outdegree one (and so the underlying graph is a directed tree).

A circuit has two complexity measures associated with it: size and depth. The size of a circuit is the number of gates in it, and the depth of a circuit is the length of the longest directed path in it. For example, the circuit in the figure has size six and depth two.

An arithmetic circuit computes a polynomial in the following natural way. An input gate computes the polynomial it is labeled by. A sum gate computes the sum of the polynomials computed by its children (a gate is a child of if the directed edge is in the graph). A product gate computes the product of the polynomials computed by its children. Consider the circuit in the figure, for example: the input gates compute (from left to right) and the sum gates compute and and the product gate computes

Overview

Given a polynomial we may ask ourselves what is the best way to compute it — for example, what is the smallest size of a circuit computing The answer to this question consists of two parts. The first part is finding some circuit that computes this part is usually called upper bounding the complexity of The second part is showing that no other circuit can do better; this part is called lower bounding the complexity of Although these two tasks are strongly related, proving lower bounds is usually harder, since in order to prove a lower bound one needs to argue about all circuits at the same time.

Note that we are interested in the formal computation of polynomials, rather than the functions that the polynomials define. For example, consider the polynomial over the field of two elements this polynomial represents the zero function, but it is not the zero polynomial. This is one of the differences between the study of arithmetic circuits and the study of Boolean circuits. In Boolean complexity, one is mostly interested in computing a function, rather than some representation of it (in our case, a representation by a polynomial). This is one of the reasons that make Boolean complexity harder than arithmetic complexity. The study of arithmetic circuits may also be considered as one of the intermediate steps towards the study of the Boolean case, [1] which we hardly understand.

Upper bounds

As part of the study of the complexity of computing polynomials, some clever circuits (alternatively algorithms) were found. A well-known example is Strassen's algorithm for matrix product. The straightforward way for computing the product of two matrices requires a circuit of size order Strassen showed that we can, in fact, multiply two matrices using a circuit of size roughly Strassen's basic idea is a clever way for multiplying matrices. This idea is the starting point of the best theoretical way for multiplying two matrices that takes time roughly

Another interesting story lies behind the computation of the determinant of an matrix. The naive way for computing the determinant requires circuits of size roughly Nevertheless, we know that there are circuits of size polynomial in for computing the determinant. These circuits, however, have depth that is linear in Berkowitz came up with an improvement: a circuit of size polynomial in but of depth [2]

We would also like to mention the best circuit known for the permanent of an matrix. As for the determinant, the naive circuit for the permanent has size roughly However, for the permanent the best circuit known has size roughly which is given by Ryser's formula: for an matrix

(this is a depth three circuit).

Lower bounds

In terms of proving lower bounds, our knowledge is very limited. Since we study the computation of formal polynomials, we know that polynomials of very large degree require large circuits, for example, a polynomial of degree require a circuit of size roughly So, the main goal is to prove lower bound for polynomials of small degree, say, polynomial in In fact, as in many areas of mathematics, counting arguments tell us that there are polynomials of polynomial degree that require circuits of superpolynomial size. However, these counting arguments usually do not improve our understanding of computation. The following problem is the main open problem in this area of research: find an explicit polynomial of polynomial degree that requires circuits of superpolynomial size.

The state of the art is a lower bound for the size of a circuit computing, e.g., the polynomial given by Strassen and by Baur and Strassen. More precisely, Strassen used Bézout's theorem to show that any circuit that simultaneously computes the polynomials is of size and later Baur and Strassen showed the following: given an arithmetic circuit of size computing a polynomial one can construct a new circuit of size at most that computes and all the partial derivatives of Since the partial derivatives of are the lower bound of Strassen applies to as well. [3] This is one example where some upper bound helps in proving lower bounds; the construction of a circuit given by Baur and Strassen implies a lower bound for more general polynomials.

The lack of ability to prove lower bounds brings us to consider simpler models of computation. Some examples are: monotone circuits (in which all the field elements are nonnegative real numbers), constant depth circuits, and multilinear circuits (in which every gate computes a multilinear polynomial). These restricted models have been studied extensively and some understanding and results were obtained.

Algebraic P and NP

The most interesting open problem in computational complexity theory is the P vs. NP problem. Roughly, this problem is to determine whether a given problem can be solved as easily as it can be shown that a solution exists to the given problem. In his seminal work Valiant [4] suggested an algebraic analog of this problem, the VP vs. VNP problem.

The class VP is the algebraic analog of P; it is the class of polynomials of polynomial degree that have polynomial size circuits over a fixed field The class VNP is the analog of NP. VNP can be thought of as the class of polynomials of polynomial degree such that given a monomial we can determine its coefficient in efficiently, with a polynomial size circuit.

One of the basic notions in complexity theory is the notion of completeness. Given a class of polynomials (such as VP or VNP), a complete polynomial for this class is a polynomial with two properties: (1) it is part of the class, and (2) any other polynomial in the class is easier than in the sense that if has a small circuit then so does Valiant showed that the permanent is complete for the class VNP. So in order to show that VP is not equal to VNP, one needs to show that the permanent does not have polynomial size circuits. This remains an outstanding open problem.

Depth reduction

One benchmark in our understanding of the computation of polynomials is the work of Valiant, Skyum, Berkowitz and Rackoff. [5] They showed that if a polynomial of degree has a circuit of size then also has a circuit of size polynomial in and of depth For example, any polynomial of degree that has a polynomial size circuit, also has a polynomial size circuit of depth roughly This result generalizes the circuit of Berkowitz to any polynomial of polynomial degree that has a polynomial size circuit (such as the determinant). The analog of this result in the Boolean setting is believed to be false.

One corollary of this result is a simulation of circuits by relatively small formulas, formulas of quasipolynomial size: if a polynomial of degree has a circuit of size then it has a formula of size This simulation is easier than the depth reduction of Valiant el al. and was shown earlier by Hyafil. [6]

See also

Further reading

Footnotes

  1. L. G. Valiant. Why is Boolean complexity theory difficult? Proceedings of the London Mathematical Society symposium on Boolean function complexity, pp. 84–94, 1992.
  2. S. J. Berkowitz. On computing the determinant in small parallel time using a small number of processors. Inf. Prod. Letters 18, pp. 147–150, 1984.
  3. Shpilka, Amir; Yehudayoff, Amir (2010). "Arithmetic Circuits: a survey of recent results and open questions" (PDF). Foundations and Trends in Theoretical Computer Science. 5 (3–4): 207-388. doi:10.1561/0400000039.
  4. L. G. Valiant. Completeness classes in algebra. In Proc. of 11th ACM STOC, pp. 249–261, 1979.
  5. Valiant, L. G.; Skyum, S.; Berkowitz, S.; Rackoff, C. (1983). "Fast Parallel Computation of Polynomials Using Few Processors". SIAM Journal on Computing. 12 (4): 641–644. doi:10.1137/0212043. ISSN   0097-5397.
  6. Hyafil, Laurent (1979). "On the Parallel Evaluation of Multivariate Polynomials". SIAM Journal on Computing. 8 (2): 120–123. doi:10.1137/0208010. ISSN   0097-5397.

Related Research Articles

In computer science, the computational complexity or simply complexity of an algorithm is the amount of resources required to run it. Particular focus is given to computation time and memory storage requirements. The complexity of a problem is the complexity of the best algorithms that allow solving the problem.

In computational 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 with input size n is in NC if there exist constants c and k such that it can be solved in time O((log n)c) 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.

In theoretical computer science, communication complexity studies the amount of communication required to solve a problem when the input to the problem is distributed among two or more parties. The study of communication complexity was first introduced by Andrew Yao in 1979, while studying the problem of computation distributed among several machines. The problem is usually stated as follows: two parties each receive a -bit string and . The goal is for Alice to compute the value of a certain function, , that depends on both and , with the least amount of communication between them.

<span class="mw-page-title-main">Time complexity</span> Estimate of time taken for running an algorithm

In theoretical computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations performed by the algorithm, supposing that each elementary operation takes a fixed amount of time to perform. Thus, the amount of time taken and the number of elementary operations performed by the algorithm are taken to be related by a constant factor.

<span class="mw-page-title-main">Complexity class</span> Set of problems in computational complexity theory

In computational complexity theory, a complexity class is a set of computational problems "of related resource-based complexity". The two most commonly analyzed resources are time and memory.

In computer science, parameterized complexity is a branch of computational complexity theory that focuses on classifying computational problems according to their inherent difficulty with respect to multiple parameters of the input or output. The complexity of a problem is then measured as a function of those parameters. This allows the classification of NP-hard problems on a finer scale than in the classical setting, where the complexity of a problem is only measured as a function of the number of bits in the input. This appears to have been first demonstrated in Gurevich, Stockmeyer & Vishkin (1984). The first systematic work on parameterized complexity was done by Downey & Fellows (1999).

In theoretical computer science and cryptography, a pseudorandom generator (PRG) for a class of statistical tests is a deterministic procedure that maps a random seed to a longer pseudorandom string such that no statistical test in the class can distinguish between the output of the generator and the uniform distribution. The random seed itself is typically a short binary string drawn from the uniform distribution.

In mathematics, the resultant of two polynomials is a polynomial expression of their coefficients that is equal to zero if and only if the polynomials have a common root, or, equivalently, a common factor. In some older texts, the resultant is also called the eliminant.

<span class="mw-page-title-main">Boolean circuit</span> Model of computation

In computational complexity theory and circuit complexity, a Boolean circuit is a mathematical model for combinational digital logic circuits. A formal language can be decided by a family of Boolean circuits, one circuit for each possible input length.

TC0 is a complexity class used in circuit complexity. It is the first class in the hierarchy of TC classes.

<span class="mw-page-title-main">Circuit complexity</span> Model of computational 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 circuit complexity of a recursive language that is decided by a uniform family of circuits .

In mathematics, polynomial identity testing (PIT) is the problem of efficiently determining whether two multivariate polynomials are identical. More formally, a PIT algorithm is given an arithmetic circuit that computes a polynomial p in a field, and decides whether p is the zero polynomial. Determining the computational complexity required for polynomial identity testing, in particular finding deterministic algorithms for PIT, is one of the most important open problems in algebraic computing complexity.

The #P-completeness of 01-permanent, sometimes known as Valiant's theorem, is a mathematical proof about the permanent of matrices, considered a seminal result in computational complexity theory. In a 1979 scholarly paper, Leslie Valiant proved that the computational problem of computing the permanent of a matrix is #P-hard, even if the matrix is restricted to have entries that are all 0 or 1. In this restricted case, computing the permanent is even #P-complete, because it corresponds to the #P problem of counting the number of permutation matrices one can get by changing ones into zeroes.

In Boolean algebra, a parity function is a Boolean function whose value is one if and only if the input vector has an odd number of ones. The parity function of two inputs is also known as the XOR function.

In computational complexity the decision tree model is the model of computation in which an algorithm is considered to be basically a decision tree, i.e., a sequence of queries or tests that are done adaptively, so the outcome of previous tests can influence the tests performed next.

In theoretical computer science, a circuit is a model of computation in which input values proceed through a sequence of gates, each of which computes a function. Circuits of this kind provide a generalization of Boolean circuits and a mathematical model for digital logic circuits. Circuits are defined by the gates they contain and the values the gates can produce. For example, the values in a Boolean circuit are boolean values, and the circuit includes conjunction, disjunction, and negation gates. The values in an integer circuit are sets of integers and the gates compute set union, set intersection, and set complement, as well as the arithmetic operations addition and multiplication.

In mathematics and computer algebra the factorization of a polynomial consists of decomposing it into a product of irreducible factors. This decomposition is theoretically possible and is unique for polynomials with coefficients in any field, but rather strong restrictions on the field of the coefficients are needed to allow the computation of the factorization by means of an algorithm. In practice, algorithms have been designed only for polynomials with coefficients in a finite field, in the field of rationals or in a finitely generated field extension of one of them.

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 Boolean circuits of depth k require size to compute the parity function on bits. He was later awarded the Gödel Prize for this work in 1994.

Bounded arithmetic is a collective name for a family of weak subtheories of Peano arithmetic. Such theories are typically obtained by requiring that quantifiers be bounded in the induction axiom or equivalent postulates. The main purpose is to characterize one or another class of computational complexity in the sense that a function is provably total if and only if it belongs to a given complexity class. Further, theories of bounded arithmetic present uniform counterparts to standard propositional proof systems such as Frege system and are, in particular, useful for constructing polynomial-size proofs in these systems. The characterization of standard complexity classes and correspondence to propositional proof systems allows to interpret theories of bounded arithmetic as formal systems capturing various levels of feasible reasoning.

In mathematics and computer science, polynomial evaluation refers to computation of the value of a polynomial when its indeterminates are substituted for some values. In other words, evaluating the polynomial at consists of computing See also Polynomial ring § Polynomial evaluation