Turing Machines

Abstract:

The finite-state machine is too limited to even be able to recognize simple sets like tex2html_wrap_inline119 , where tex2html_wrap_inline121 stands for n copies of a. In 1936 Alan Turing proposed a machine (now called a ``Turing Machine'') which is general enough to implement any algorithm to date. It is a simple modification of the finite-state machine, as we see below.

The Turing Machine

Definition: Let S be a finite set of states and I a finite set of tape symbols, including a special symbol b (for ``blank''). A Turing Machine is a set of quintuples of the form (s,i,i',s',d) where

and no two quintuples begin with the same s and i symbols (ensuring that the machine is deterministic - that is, that it gives the same results every time, given the same initial state and input.

The machine acts on an ``infinite tape'' (so it's hard to implement...), with at most a finite number of non-blank entries (so it has unlimited memory, only a finite amount of which is actually non-blank).

The Turing machine processes the tape until it arrives at a state and input which is not found in the set SxI, at which point it terminates.

This is very similar to the finite state machine in some ways: we think of

Only the last element d seems particularly different than before; but the output is also considerably different: it overwrites the input on the tape. Hence the machine can ``reread its input and ... erase and write over its input.''

``...[A] finite-state machine is a very special case of a Turing machine, one that always prints the old symbol on the cell read, always moves to the right, and always halts on the symbol b.'' p. 591.

Turing machines can be used as

Since any algorithm can be implemented in a Turing machine, the next questions to ask might be:

You've got your work cut out for you: to tackle these and other difficult problems. Go to it!



LONG ANDREW E
Tue Apr 23 18:53:20 EDT 2002