Turing Machine
<computability> A hypothetical machine defined in 19356 by Alan Turing
and used for computability theory proofs. It consists of an infinitely long
"tape" with symbols (chosen from some finite set) written at regular intervals.
A pointer marks the current position and the machine is in one of a finite set
of "internal states". At each step the machine reads the symbol at the current
position on the tape. For each combination of current state and symbol read, a
program specifies the new state and either a symbol to write to the tape or a
direction to move the pointer (left or right) or to halt.
In an alternative scheme, the machine writes a symbol to the tape *and* moves at
each step. This can be encoded as a write state followed by a move state for the
writeormove machine. If the writeandmove machine is also given a distance to
move then it can emulate an writeormove program by using states with a
distance of zero. A further variation is whether halting is an action like
writing or moving or whether it is a special state.
[What was Turing's original definition?]
Without loss of generality, the symbol set can be limited to just "0" and "1"
and the machine can be restricted to start on the leftmost 1 of the leftmost
string of 1s with strings of 1s being separated by a single 0. The tape may be
infinite in one direction only, with the understanding that the machine will
halt if it tries to move off the other end.
All computer instruction sets, high level languages and computer architectures,
including parallel processors, can be shown to be equivalent to a Turing Machine
and thus equivalent to each other in the sense that any problem that one can
solve, any other can solve given sufficient time and memory.
Turing generalised the idea of the Turing Machine to a "Universal Turing
Machine" which was programmed to read instructions, as well as data, off the
tape, thus giving rise to the idea of a generalpurpose programmable computing
device. This idea still exists in modern computer design with low level
microcode which directs the reading and decoding of higher level machine code
instructions.
A busy beaver is one kind of Turing Machine program.
Dr. Hava Siegelmann of Technion reported in Science of 28 Apr 1995 that she has
found a mathematically rigorous class of machines, based on ideas from chaos
theory and neural networks, that are more powerful than Turing Machines. Sir
Roger Penrose of Oxford University has argued that the brain can compute things
that a Turing Machine cannot, which would mean that it would be impossible to
create artificial intelligence. Dr. Siegelmann's work suggests that this is true
only for conventional computers and may not cover neural networks.
See also Turing tarpit, finite state machine.
(19950510)
Nearby terms:
Turbo Pascal « Turbo Prolog « Turing « Turing
Machine
» Turingol » Turing Plus » Turing tarpit
