Matrix difference equation: Difference between revisions
en>Tom.Reding m Disambiguated: quadratic → quadratic function |
en>BD2412 m →Extracting the dynamics of a single scalar variable from a first-order matrix system: Fixing links to disambiguation pages, improving links, other minor cleanup tasks using AWB |
||
Line 1: | Line 1: | ||
'''Configuration graphs''' are a theoretical tool used in [[computational complexity theory]] to prove a relation between [[Graph (mathematics)|graph]] [[reachability]] and [[Computational_complexity_theory#Complexity_classes|complexity classes]]. | |||
== Definition == | |||
A theoretical computational model, like [[Turing machine]] or [[finite automata]], explains how to do a computation. The model explains both what is an initial configuration of the machine and which steps can be taken to continue the computation, until we eventually stop. A ''configuration'', also called an ''Instantaneous Description(ID)'' is a finite representation of the machine at a given time. For example, for a finite automata and a given input, the configuration will be the current state and the number of read letters, for a Turing machine it will be the state, the content of the tape and the position of the head. A configuration graph is a directed [[labeled graph]] where the label of the vertices are the possible configurations of the models and where there is an edge from one configuration to another if it correspond to a computational step of the model. | |||
The initial and accepting configuration(s) of the machine are special vertices of the configuration graph. The computation accepts if and only if there is a path from an initial vertex to an accepting vertex. | |||
==Useful property== | |||
If the computation is deterministic then from any configuration there is at most one possible step, so the graph is of out-degree 1, and there is exactly one initial state. | |||
Once we add a dummy initial vertex with an edge to every initial vertex and a dummy accepting vertex with an edge from every accepting vertex, checking if there is an accepting computation only requires to check if there is a path from the initial vertex to the accepting vertex, which is the [[reachability]] problem. | |||
A cycle in the graph means that there is a possible infinite loop in the computation. | |||
==Size of the graph== | |||
The computational graph can be of infinite size if there are no restrictions on possible configurations; indeed, it is easy to see that there are Turing machines which can reach arbitrarily large configurations. | |||
It is also possible to have finite graphs: on [[Deterministic finite automaton]] with <math>s</math> sates, for a given word of size <math>n</math> the configuration is composed of the position of the head and the current state. So the graph is of size <math>(n+1)s</math>, and the accessible part from the intitial state is of size <math>n+1</math>. | |||
== Use of this object == | |||
This notion is useful because it reduces computational problems to graph [[reachability]] problems. | |||
For example, since [[reachability]] is in [[NL (complexity)|NL]] when we can represent configurations in space which is logarithmic in the size of the input, and since the configuration of the Turing Machine in [[NL (complexity class)|NL]] is indeed of logarithmic size, then graph-reachability is [[Complete (complexity)|complete]] for NL.<ref name="papa">[[Christos Papadimitriou|Papadimitriou, Christos H.]] (1994). ''Computational Complexity'', Reading, Massachusetts: Addison-Wesley. ISBN 0-201-53082-1.</ref> | |||
In the other direction, it helps to verify the complexity of a computation model; the decision problem for a (deterministic) model whose configuration are of space which is logarithmic in the size of the input is in ([[L (complexity)|L]]) [[NL (complexity)|NL]]. This is for example the case of finite automata and finite automata with one counter. | |||
== References == | |||
{{Reflist}} | |||
* {{cite book|author = [[Sanjeev Arora]] and [[Boaz Barak]] | year = 2009 | title = Computational complexity, a modern approach | publisher= Cambridge University Press | isbn = 978-0-521-42426-4}} Section 4.3: NL-completeness, p. 87. | |||
{{DEFAULTSORT:Computational Complexity Theory}} | |||
[[Category:Computational complexity theory|*]] |
Revision as of 03:24, 27 December 2013
Configuration graphs are a theoretical tool used in computational complexity theory to prove a relation between graph reachability and complexity classes.
Definition
A theoretical computational model, like Turing machine or finite automata, explains how to do a computation. The model explains both what is an initial configuration of the machine and which steps can be taken to continue the computation, until we eventually stop. A configuration, also called an Instantaneous Description(ID) is a finite representation of the machine at a given time. For example, for a finite automata and a given input, the configuration will be the current state and the number of read letters, for a Turing machine it will be the state, the content of the tape and the position of the head. A configuration graph is a directed labeled graph where the label of the vertices are the possible configurations of the models and where there is an edge from one configuration to another if it correspond to a computational step of the model.
The initial and accepting configuration(s) of the machine are special vertices of the configuration graph. The computation accepts if and only if there is a path from an initial vertex to an accepting vertex.
Useful property
If the computation is deterministic then from any configuration there is at most one possible step, so the graph is of out-degree 1, and there is exactly one initial state.
Once we add a dummy initial vertex with an edge to every initial vertex and a dummy accepting vertex with an edge from every accepting vertex, checking if there is an accepting computation only requires to check if there is a path from the initial vertex to the accepting vertex, which is the reachability problem.
A cycle in the graph means that there is a possible infinite loop in the computation.
Size of the graph
The computational graph can be of infinite size if there are no restrictions on possible configurations; indeed, it is easy to see that there are Turing machines which can reach arbitrarily large configurations.
It is also possible to have finite graphs: on Deterministic finite automaton with sates, for a given word of size the configuration is composed of the position of the head and the current state. So the graph is of size , and the accessible part from the intitial state is of size .
Use of this object
This notion is useful because it reduces computational problems to graph reachability problems.
For example, since reachability is in NL when we can represent configurations in space which is logarithmic in the size of the input, and since the configuration of the Turing Machine in NL is indeed of logarithmic size, then graph-reachability is complete for NL.[1]
In the other direction, it helps to verify the complexity of a computation model; the decision problem for a (deterministic) model whose configuration are of space which is logarithmic in the size of the input is in (L) NL. This is for example the case of finite automata and finite automata with one counter.
References
43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.
- 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.
My blog: http://www.primaboinca.com/view_profile.php?userid=5889534 Section 4.3: NL-completeness, p. 87.
- ↑ Papadimitriou, Christos H. (1994). Computational Complexity, Reading, Massachusetts: Addison-Wesley. ISBN 0-201-53082-1.