# Machine of Turing

A machine of Turing is an abstract model of the operation of the mechanical apparatuses of calculation, a such Ordinateur and its memory, created by Alan Turing in order to give a precise definition to the concept of algorithm or “mechanical procedure”. This model is always largely used in theoretical Informatique, to solve the problems of algorithmic Complexité in particular and of Calculabilité, one associates to him for that a oracle.

The thesis Church-Turing postulates that any problem of calculation based on an algorithmic procedure can be solved by a machine of Turing. This thesis is not a mathematical statement, since it does not suppose a precise definition of algorithmic procedure. On the other hand, it is possible to define a concept of “acceptable system of programming” and to show that the capacity of such systems is equivalent to that of the machines of Turing (Turing-complete).

In the beginning, the concept of machine of Turing, invented before the computer, was supposed to represent a virtual person carrying out a well defined procedure, by changing the contents of the boxes of an infinite table, by choosing these contents among a finished whole of Symbole S. In addition, the person must memorize a particular state among a finished whole of states. The procedure is formulated in very simple terms of stages, of the type: “if you are in state 42 and that the symbol contained on the box which you look at is “0”, then to replace this symbol by one “1”, to pass in state 17, and to look at an adjacent box (right or left)”.

## Definition

Implementation the concrete of a machine of Turing is carried out with the following elements:

1. a “ribbon” divided into consecutive boxes. Each box contains a symbol among a Alphabet finished. The alphabet contains a special symbol “white” (“0” in the examples which follow), and one or more other symbols. The ribbon is supposed to be infinite length towards the left or towards the line, in other words the machine must always have enough length of ribbon for its execution. It is considered that the not yet written boxes of the ribbon contain the “white” symbol.
2. a “read/write head” which can read and write the symbols on the ribbon, and to move towards the left or the right-hand side of the ribbon.
3. a “register of state” which memorizes the current state of the machine of Turing. The number of possible states is always finished, and there exists a special state called “starting state” which is the initial state of the machine before its execution.
4. a “table of actions” which indicates to the machine which symbol to write, how to move the play-back head (“G” for a box towards the left, “Of for a box towards the line), and which is the new state, according to the symbol read on the ribbon and of the current state of the machine. If no action exists for a given combination of a symbol read and a current state, the machine stops.

## Example

The machine of Turing which follows has an alphabet {`0', `1'}, `0' being the “  blanc  ”. It is supposed that the ribbon contains a series of `1', and that the read/write head is initially above the `1' on the left. This machine causes to double the number of `1', by intercalating a `0' between the two series. For example, “  111  ” becomes “  1110111  ”.
The whole of possible states of the machine is {e1, e2, e3, e4, e5} and the initial state is e1.
The table of actions is the suivante :

The execution of this machine could be for example (the position of the read/write head on the ribbon is registered in bold characters and red)  :
| | | |}

The behavior of this machine can be described like a boucle :

• It starts its execution in the state e1, replaces first 1 by one 0.
• Then it uses the state e2 to move towards the line, while jumping the 1, and the first 0 which it meets.
• the state e3 is then used to jump the following sequence of 1 (initially no) and to replace first 0 met by one 1.
• e4 makes it possible to return towards the left until finding one 0, and passing in the state e5.
• e5 then again makes it possible to move towards the left until finding one 0, written at the beginning by the state e1.
• the machine replaces this 0 by one then 1, moves of a box towards the line and passes again in the state e1 for a new iteration of the loop.
This process is repeated until e1 falls on one 0 (it is the 0 of the medium between the two sequences of 1)   ; at this time, the machine stops.

## Universal machines of Turing

Any machine of Turing calculates the result of a function partial on character strings made up of the characters of its alphabet. In this direction, a machine of Turing behaves like a computer with a program déterminé.
But, as Alan Turing described it, one can encoder the table of actions of a machine of Turing in the shape of a character string. One can thus try to build a machine of Turing which supposes the existence on its ribbon of a character string encodant a table of actions, followed by a character string constituting the effective data of the ribbon, and calculates the contents of the ribbon that the machine of Turing encodée would have calculé.
As Alan Turing showed it, it is possible to create such a machine of Turing and since it can simulate the behavior of any other machine of Turing, it is called “universal machine of Turing”.

Thanks to this encoding of the tables of actions in the form of character strings, it becomes in theory possible that the machines of Turing answer questions in connection with the behavior of other machines of Turing. However, the majority of these questions are indécidables, i.e. the function in question cannot be calculated by a machine of Turing.
For example, the question of knowing if a machine of Turing reaches at a time given never does not reach a stopped state or it for a particular entry, or for all the possible entries, known under the name of Problème of the stop, was shown as being indécidable by Turing. The Théorème of Rice watch that any noncommonplace property on the language accepted by a machine of Turing is indécidable.

If one widens the definition to include there the machines of Turing which simulate models of Turing-complete calculation S, and either only the machines of Turing which directly simulate other machines of Turing, a universal machine of Turing can be relatively simple, and use only some states and symbols. For example, there exists a universal machine of Turing of size 2×18 (i.e. 2 states, and 18 symbols).
The smallest known universal machines of Turing have the following sizes: 2×18, 3×10, 4×6, 5×5, 7×4, 10×3, 22×2. These last simulate a model called Tag system .

A machine of Turing of size 2×3 proposed by Stephen Wolfram, was announced like the smallest universal machine of Turing. The proof is due to Alex Smith. However the concept of universality used in this proof is not the same one as that described informellement above. In particular, it requires to initially write an infinity of symbols on the ribbon to prepare calculation.

A universal machine of Turing is Turing-complete. It can calculate all recursive Fonction, analyze all recursive Langage, and accept all partially Langage décidable. According to the theorem of Church-Turing, the solvent problems by a universal machine of Turing are exactly the solvent problems by a algorithm or a concrete method of calculation , by supposing a reasonable definition of these terms.

## A real machine of Turing

It is rather easy to simulate a machine of Turing on a modern computer… Until the moment when the memory of the computer becomes possibly full (if the machine of Turing uses most of the ribbon)!

It is also possible to build a purely mechanical machine of Turing. The mathematician Karl Scherer built one in 1986 of them by using building sets out of metal and plastic, and wood. Its machine, high of one meter and half uses strings for reading, moving and to write the data (represented using rolls of the dice).

The machine is currently exposed in the hall of the department of data processing of the Université of Heidelberg in Germany.

In the same way, by using approximately 200 mirrors, it is possible to create an optical machine of Turing universal by using the method known as of the horseshoe conceived by Stephen Smale.

 Random links: Evolution of the use of navigators Internet | Béhuard | Castle of Angers | Kestrel (bird) | Dariusz Dziekanowski