Monday, 3 December 2012

3.1.4 Turing Machine

In 1930 Kurt Gödel showed there are mathematical statements that could never be proved or disproved. Later Alan Turing showed that it wasn't possible to find out if a mathematical problem would be solvable or not.

Alan Turing was a British Mathematician who introduced the concept of the Turing Machine. A Turing Machine that could solve any problem that could be represented algorithimically. Using this machine he showed that it wasn't possible to determine if a pronlem had a solution or not, this means that we can never tell if a problem has a solution and we haven't put enough resourses into it or if it hasn't got a solution.

The work done by Turing is the basis from which the first computers were developed, this is shown by the fact anything a modern computer can do can be represented on a Turing Machine.

A Turing Machine has 6 components:
   1) an input alphabet
   2) an infinitely long tape
   3) an output alphabet
   4) a tape head that can read/write to the cells of the tape
   5) a finite set of states, one of whihc is the start state
   6) a set of instructions/program
Essentially it's a deterministic FSM with an infitely long tape attached.

A Turing Machine describes an algorithm and since computer programs are essentially algorithms a Turing Machine can run through and check the algortithms independant of the architecture of the machine. However as a result it's more general representation of the algorithm as when running from the machine the architecture makes decisions about how to store values which doesn't happen on the Turing Machine.

Finally Transition Rules are shorthand to show you what happens at each state of the Turing Machine:
δ(1,1)=(2,1,→) means
Transition Function(Current State (1) , Input Symbol (1)) = (Next State (2), Output Symbol (1), Movement (Right))