Difference between revisions of "User:Joachim Draeger/sandbox"
| Line 1: | Line 1: | ||
| − | {{MSC|68Q05}} | + | {{MSC|68Q05}} |
{{TEX|done}} | {{TEX|done}} | ||
| Line 6: | Line 6: | ||
The universality property of Turing machines states that it exists a Turing machine, which can simulate the behaviour of each other Turing machine. This property is of great practical importance. It says that a Turing machine can be adapted to different tasks by ''programming''; from the viewpoint of computability it is not necessary to build special-purpose machines. | The universality property of Turing machines states that it exists a Turing machine, which can simulate the behaviour of each other Turing machine. This property is of great practical importance. It says that a Turing machine can be adapted to different tasks by ''programming''; from the viewpoint of computability it is not necessary to build special-purpose machines. | ||
| − | ===Universality | + | ===Definition of Universality=== |
A [[Turing machine]] $T=(Q,\Sigma,\Gamma,\sqcup,q_0,q_f,\delta)$ can be interpreted as partially defined function | A [[Turing machine]] $T=(Q,\Sigma,\Gamma,\sqcup,q_0,q_f,\delta)$ can be interpreted as partially defined function | ||
$$F_T\colon\Sigma^\ast \longrightarrow \Sigma^\ast; i \mapsto | $$F_T\colon\Sigma^\ast \longrightarrow \Sigma^\ast; i \mapsto | ||
| − | \begin{cases} j & | + | \begin{cases} j & |
| − | \text{$T$ stops in the final state $q_f\in Q$ with output $j$} \\ | + | \text{$T$ stops in the final state $q_f\in Q$ with output $j$} \\ |
| − | \bot & \text{otherwise} \end{cases}$$ | + | \bot & \text{otherwise} \end{cases}$$ |
| − | Using $F_T$, we are introducing the notions of simulation and universality. A Turing machine $U$ ''simulates'' a Turing machine $T$, if $\exists t\in\Sigma^\ast \forall s\in\Sigma^\ast \colon F_U(t, s) =F_T(s)$. The Turing machine $U$ is called ''universal'', if it can simulate every Turing machine $T$. | + | The definition can be generalized to multiple arguments in a canonical way. Using $F_T$, we are introducing the notions of simulation and universality. A Turing machine $U$ ''simulates'' a Turing machine $T$, if $\exists t\in\Sigma^\ast \forall s\in\Sigma^\ast \colon F_U(t, s) =F_T(s)$. The Turing machine $U$ is called ''universal'', if it can simulate every Turing machine $T$. |
| − | ===Existence of | + | ===Existence of an Universal Turing Machine=== |
| − | Via [[Gödelization]] it can be proven that a | + | Via [[Gödelization]] it can be proven that a universal Turing machine $U$ exists. For reasons of simplicity we will assume that $U$ uses the same input/output- and band alphabet as the machine $T=(Q,\Sigma,\Gamma,\sqcup,q_0,q_f,\delta)$ to be simulated. The basic idea is for realizing $U$ is as follows: The components of $T$ are codified in $\Sigma^\ast$ giving a Gödel number $g(T)$ (W.r.o.g we assume here that the input alphatbet $\Sigma\subset^{\text{fin}}\mathbb{N}$ of $U$ is a finite subset . Furthermore remember, that $\delta$ can be represented as a table). The same strategy is used to codify configurations (of $T$) and computations steps (of $T$) in the alphabet $\Sigma$. |
| − | universal Turing machine exists. The basic idea is as follows: The components | ||
| − | of $T$ are | ||
| − | (W.r.o.g we assume here that $\Sigma\subset^{\text{fin}}\mathbb{N}$. | ||
| − | Furthermore remember, that $\delta$ can be represented as a table). | ||
| − | The same strategy is used to | ||
| − | computations steps (of $T$) in the alphabet $\Sigma$. | ||
| − | We will designate the Turing machine $T$ with Gödel number $g(T)$ | + | We will designate the Turing machine $T$ with Gödel number $g(T)$ as $M_{g(T)}$ in the following. Now, a Turing machine $U$ can simulate $M_{g(T)}$ using its Gödel number $g(T)$. Assuming $M_{g(T)}$ is given the input $s$, the machine $U$ translates $s$ to the corresponding start configuration $c_s\in C$ of $T$. Afterwards, $U$ simulates each calculation step of $M_{g(T)}$ by looping over the following operation sequence |
| − | as $M_{g(T)}$ in the following. Now, a Turing machine $U$ can simulate | + | * Identify the actual configuration $c$ of the simulated Turing machine $M_{g(T)}$ |
| − | $M_{g(T)} | + | * Identify the transition operation to be applied to $c$ according to the (codified) transition function $\delta$ of $M_{g(T)}$ |
| − | Gödel number $g(T)$. Assuming $M_{g(T)}$ is given the input $s$, the | + | * Update the old configuration $c$ to the new configuration $c'$ using the identified transition operation |
| − | machine $U$ translates $s$ to the corresponding start configuration | + | * Stop executing the loop if either no suitable transition operation exist (remember that $\delta$ is a partial function) or if in $c'= (B,i,q)$ it holds $q=q_f$. |
| − | $c_s\in C$ of $T$. Afterwards, $U$ simulates each calculation step of | + | Invalid Gödel numbers are assigned to a Turing machine looping for all inputs. In effect, this gives $ U(g(T),s) = M_{g(T)}(s) $ for all $s\in\Sigma^\ast$. |
| − | $M_{g(T)}$ by looping over the following operation sequence | ||
| − | * Identify the actual configuration $c$ of the simulated Turing machine $M_{g(T)}$ | ||
| − | * Identify the transition operation to be applied | ||
| − | * Update $c$ to the new configuration $c'$ using the identified transition operation | ||
| − | * Stop executing the loop if either no suitable transition operation exist (remember that $\delta$ is a partial function) or if in $c'= (B,i,q)$ it holds $q=q_f$. | ||
| − | Invalid Gödel numbers are assigned to a Turing machine looping for all inputs. | ||
| − | In effect, this gives $ U(g(T) | ||
| − | $s\in\Sigma^\ast$. | ||
===Interpretation of Universality=== | ===Interpretation of Universality=== | ||
| − | The universality property shows that Turing machines are quite powerful | + | The universality property shows that Turing machines are quite powerful instruments. A Turing machine equipped with a suitable transition function $\delta$ can simulate each other Turing machine. For the other members of the Chomsky-hierarchy this closure property does not hold. Universality has far-reaching consequences for practice. It assures the usability for general purposes, i.e. the adaptability to all possible computable tasks by using a corresponding ''program'' as input. |
| − | instruments. A Turing machine equipped with a suitable transition function | ||
| − | $\delta$ can simulate each other Turing machine. For the other members of | ||
| − | the Chomsky-hierarchy this closure property does not hold. Universality | ||
| − | has far-reaching consequences for practice. It assures the general | ||
| − | |||
| − | by using a corresponding ''program'' as input. | ||
| − | On the other hand, universality | + | On the other hand, universality is a strong limitation as well. It exist an uncountable number of functions $f\colon\mathbb{N}\rightarrow\mathbb{N}$, but for a universal machine only a countable subset of them is computable. This is caused by the necessary usage of a [[Gödelization]]. |
| − | exist uncountable | ||
| − | but for a universal machine only a countable subset of them is computable. | ||
| − | This is caused by the necessary usage of a [[Gödelization]]. | ||
===References=== | ===References=== | ||
Revision as of 18:21, 4 August 2013
2020 Mathematics Subject Classification: Primary: 68Q05 [MSN][ZBL]
The universality property of Turing machines states that it exists a Turing machine, which can simulate the behaviour of each other Turing machine. This property is of great practical importance. It says that a Turing machine can be adapted to different tasks by programming; from the viewpoint of computability it is not necessary to build special-purpose machines.
Definition of Universality
A Turing machine $T=(Q,\Sigma,\Gamma,\sqcup,q_0,q_f,\delta)$ can be interpreted as partially defined function $$F_T\colon\Sigma^\ast \longrightarrow \Sigma^\ast; i \mapsto \begin{cases} j & \text{$T$ stops in the final state $q_f\in Q$ with output $j$} \\ \bot & \text{otherwise} \end{cases}$$ The definition can be generalized to multiple arguments in a canonical way. Using $F_T$, we are introducing the notions of simulation and universality. A Turing machine $U$ simulates a Turing machine $T$, if $\exists t\in\Sigma^\ast \forall s\in\Sigma^\ast \colon F_U(t, s) =F_T(s)$. The Turing machine $U$ is called universal, if it can simulate every Turing machine $T$.
Existence of an Universal Turing Machine
Via Gödelization it can be proven that a universal Turing machine $U$ exists. For reasons of simplicity we will assume that $U$ uses the same input/output- and band alphabet as the machine $T=(Q,\Sigma,\Gamma,\sqcup,q_0,q_f,\delta)$ to be simulated. The basic idea is for realizing $U$ is as follows: The components of $T$ are codified in $\Sigma^\ast$ giving a Gödel number $g(T)$ (W.r.o.g we assume here that the input alphatbet $\Sigma\subset^{\text{fin}}\mathbb{N}$ of $U$ is a finite subset . Furthermore remember, that $\delta$ can be represented as a table). The same strategy is used to codify configurations (of $T$) and computations steps (of $T$) in the alphabet $\Sigma$.
We will designate the Turing machine $T$ with Gödel number $g(T)$ as $M_{g(T)}$ in the following. Now, a Turing machine $U$ can simulate $M_{g(T)}$ using its Gödel number $g(T)$. Assuming $M_{g(T)}$ is given the input $s$, the machine $U$ translates $s$ to the corresponding start configuration $c_s\in C$ of $T$. Afterwards, $U$ simulates each calculation step of $M_{g(T)}$ by looping over the following operation sequence
- Identify the actual configuration $c$ of the simulated Turing machine $M_{g(T)}$
- Identify the transition operation to be applied to $c$ according to the (codified) transition function $\delta$ of $M_{g(T)}$
- Update the old configuration $c$ to the new configuration $c'$ using the identified transition operation
- Stop executing the loop if either no suitable transition operation exist (remember that $\delta$ is a partial function) or if in $c'= (B,i,q)$ it holds $q=q_f$.
Invalid Gödel numbers are assigned to a Turing machine looping for all inputs. In effect, this gives $ U(g(T),s) = M_{g(T)}(s) $ for all $s\in\Sigma^\ast$.
Interpretation of Universality
The universality property shows that Turing machines are quite powerful instruments. A Turing machine equipped with a suitable transition function $\delta$ can simulate each other Turing machine. For the other members of the Chomsky-hierarchy this closure property does not hold. Universality has far-reaching consequences for practice. It assures the usability for general purposes, i.e. the adaptability to all possible computable tasks by using a corresponding program as input.
On the other hand, universality is a strong limitation as well. It exist an uncountable number of functions $f\colon\mathbb{N}\rightarrow\mathbb{N}$, but for a universal machine only a countable subset of them is computable. This is caused by the necessary usage of a Gödelization.
References
| [H77] | F. Hennie, "Introduction to Computability", Addison-Wesley 1977 |
| [HU79] | J. Hopcroft, J. Ullman, "Introduction to Automata Theory, Languages and Computation", Addison-Wesley 1979 |
| [P81] | C. Papdimitriou, "Elements of the theory of computation", Prentice-Hall 1981 |
Joachim Draeger/sandbox. Encyclopedia of Mathematics. URL: http://encyclopediaofmath.org/index.php?title=Joachim_Draeger/sandbox&oldid=30044