Turing machine

**Turing machine** is a term from computer science. A Turing machine is a system of rules, states and transitions rather than a _real_ machine. It was first described in 1936 by English mathematician and computer scientist Alan Turing. There are two purposes for a Turing machine: deciding formal languages and solving mathematical functions. Turing machines are one of the most important formal models in the study of computer science.

## Common basics

A Turing machine consists of the following components (simplified):
- A limited set of states (with one state marked as _start state_; while running, a Turing machine always has a _current state_)
- An infinite tape with storage cells and a _read/write-device_ that can move on the tape
- A definition of a so-called _transition function_

Also, a working-alphabet (set of characters) has to be defined.

When a Turing machine is started, a word (out of the working-alphabet) must be present on the infinite tape of the machine. The read/write-device on the first character now reads the first character and, depending on the current state of the Turing machine, the read/write-device overwrites the character with a new one or moves one cell to the left or to the right. Furthermore, the current state of the machine can be switched.

### Turing machines that decide languages

For decidability theory a Turing machine is said to _decide a language_ if it is always able to determine whether a given word is contained in a certain language or not. Therefore, the machine usually has two special states marked as _Accept_ and _Reject_. After a while one of the two states will be reached (depending on the input word) and the machine is halted. If only one of the two states will ever be reached, the Turing machine is said to _semi-decide_ a language.

### Turing machines that compute functions

If a Turing machine is used for the computation of functions it only has one _end state_. When the machine comes to that state it is halted and the result of the function (depending on the input) can be found on the tape.

## Impact of Turing machines

Turing machines were not invented to be built in reality, but they are very important for theoretical computer science as they are one of the simplest models for computers. The Church-Turing thesis states that all computers are only as powerful as Turing machines. This can be used to prove if a problem is solvable by a computer or not.

## Variations

- A Turing machine can consist of multiple infinite tapes (and multiple read/write-devices). However it is proven that such machines are only as powerful as single-tape machines. Multi-tape machines are useful when dealing with more complex problems.
- If a Turing machine has a nondeterministic transition function there can be multiple transitions from one state to many others when reading a character. Again this does not enhance the power of Turing machines. However _nondeterministic Turing machines_ (as they are called then) may possibly decrease the computation time by a strong amount. This question is covered in the P versus NP-discussion and is not solved yet. Most scientists assume however that nondeterministic machines can work much faster on certain problems.
- A Universal Turing Machine is a variation which can simulate a Turing Machine with an input.

## Other websites

- Turing Machine -Citizendium