HOME

TheInfoList



OR:

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 In logic, disjunction is a logical connective typically notated as \lor and read aloud as "or". For instance, the English language sentence "it is raining or it is snowing" can be represented in logic using the disjunctive formula R \lor ...
, and negation gates. The values in an integer circuit are
set Set, The Set, SET or SETS may refer to: Science, technology, and mathematics Mathematics *Set (mathematics), a collection of elements *Category of sets, the category whose objects and morphisms are sets and total functions, respectively Electro ...
s of
integer An integer is the number zero (), a positive natural number (, , , etc.) or a negative integer with a minus sign ( −1, −2, −3, etc.). The negative numbers are the additive inverses of the corresponding positive numbers. In the languag ...
s and the gates compute set union, set intersection, and set complement, as well as the arithmetic operations addition and multiplication.


Formal definition

A circuit is a triple (M, L, G), where * M is a set of values, * L is a set of gate labels, each of which is a function from M^ to M for some non-negative integer i (where i represents the number of inputs to the gate), and * G is a labelled
directed acyclic graph In mathematics, particularly graph theory, and computer science, a directed acyclic graph (DAG) is a directed graph with no directed cycles. That is, it consists of vertices and edges (also called ''arcs''), with each edge directed from one ...
with labels from L. The vertices of the graph are called ''gates''. For each gate g of in-degree i, the gate g can be labeled by an element \ell of L if and only if \ell is defined on M^.


Terminology

The gates of in-degree 0 are called ''inputs'' or ''leaves''. The gates of out-degree 0 are called ''outputs''. If there is an edge from gate g to gate h in the graph G then h is called a ''child'' of g. We suppose there is an order on the vertices of the graph, so we can speak of the kth child of a gate when k is less than the out-degree of the gate. The ''size'' of a circuit is the number of nodes of a circuit. The ''depth of a gate'' g is the length of the longest path in G beginning at g up to an output gate. In particular, the gates of out-degree 0 are the only gates of depth 1. The ''depth of a circuit'' is the maximum depth of any gate. ''Level i'' is the set of all gates of depth i. A ''levelled circuit'' is a circuit in which the edges to gates of depth i comes only from gates of depth i + 1 or from the inputs. In other words, edges only exist between adjacent levels of the circuit. The ''width'' of a levelled circuit is the maximum size of any level.


Evaluation

The exact value V(g) of a gate g with in-degree i and label l is defined recursively for all gates g. : V(g) = \begin l & \text g \text \\ l(V(g_1), \dotsc, V(g_i)) & \text \end where each g_j is a parent of g. The value of the circuit is the value of each of the output gates.


Circuits as functions

The labels of the leaves can also be variables which take values in M. If there are n leaves, then the circuit can be seen as a function from M^ to M. It is then usual to consider a family of circuits (C_n)_, a sequence of circuits indexed by the integers where the circuit C_n has n variables. Families of circuits can thus be seen as functions from M^ to M. The notions of size, depth and width can be naturally extended to families of functions, becoming functions from \mathbb to \mathbb; for example, size(n) is the size of the nth circuit of the family.


Complexity and algorithmic problems

Computing the output of a given Boolean circuit on a specific input is a P-complete problem. If the input is an integer circuit, however, it is unknown whether this problem is decidable. Circuit complexity attempts to classify Boolean functions with respect to the size or depth of circuits that can compute them.


See also

* Arithmetic circuit complexity * Boolean circuit * Circuit complexity * Circuits over sets of natural numbers * The
complexity class 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 general, a complexity class is defined in terms o ...
es NC, AC and TC * Quantum circuit and BQP


References

* *{{cite journal, last= Yang , first= Ke, title= Integer Circuit Evaluation Is PSPACE-Complete, year = 2001, journal= Journal of Computer and System Sciences , volume =63 , issue =2, September 2001 , pages= 288–303 , issn= 0022-0000, doi= 10.1006/jcss.2001.1768, doi-access= free Theory of computation Circuit complexity