The Turing Machine
June 26, 2011 Leave a comment
Thursday marked the would be 99th birthday of one of the most important (and possible under-appreciated) mathematician and computer scientist of the modern era. To mark this occasion, I thought an article on his still very relevant living legacy would be rather appropriate.
We all know Alan Turing from his pivotal role at Bletchley Park and his contributions to cryptanalysis during the second world war and in particular, his role in cracking the enigma code. However, he was also a main player in birth of computer science of which some concepts are still very relevant today. The “Turing Machine” is one of them. It is a theoretical thought experiment described by Alan Turing in 1932 and to this day helps computer scientist understand the limits of mechanical computation.
It’s basic idea is to determine if a task is computable, i.e. if it is possible to specify a sequence of instructions (known as an algorithm) which, when carried out, will result in the completion of the task. The concept makes it unnecessary to know how the machine carries out these instructions. As we are purely interested in the limitations of what can be computed, it is only required that the instructions can be uniquely defined and the assumption that the theoretical machine can be carry out these instructions.
There are many different definitions of this theoretical machine, however in simple terms, the Turing Machine is a state machine and that the instructions consist of conditions under which the machine will transition between one state and another. The consideration must then be made that this machine must be able to transition between states and hence carry out the instructions in order to determine if a particular task is computable.
As in most definitions available in the literature, the Turing Machine has a tape which is infinitely long and split into cells each containing a single symbol. It contains a read-write head which is capable of reading the current cell and modifying it if necessary. The action of the machine is then determined completely by the current state of the machine, the symbol in the cell currently being scanned by the head and a table of transition rules, which serve as the “program” for the machine.
The transition rules follow the general form “if the machine is in a current state and the cell being scanned contains a particular symbol then move into the next state by taking a particular action” i.e. by writing a new symbol on the cell, moving to next cell etc.
If a particular task whose computability is to be tested can be defined by a particular states and a unique clearly defined table of transition rules, then the task is computable. This however, does not mean that there exists a machine which can actually perform the task. For example, the Turing Machine’s tape is assumed to be infinitely long. This is analogous to a computer’s memory. There is of course, a limit to how much memory a computer can use. Similarly, in practical terms, it is arguable that a task can be termed “computable” if it requires an infinite amount of time.
In the real world, this is a very simple model for for a modern computer. It shows the importance of logic which is the fundamental requirement of all modern computing techniques. It has given birth to many areas of computer science ensuring that the legacy of Alan Turing continues to live on. Next year will be his 100th birthday. Let’s hope it’s marked properly.