Lecture 14-16 Ref. handout page 57 -65 Turing Machines Lecture 14-16 Ref. handout page 57 -65
Alan Turing 1912-1954 Great mathematician The father of the modern computer
Bletchley Park is near Milton Keynes Half hour from London Alan Turing’s Statue at Bletchley Park Bletchley Park is near Milton Keynes Half hour from London
Historical Notes For a long time it was believed that any mathematical problem could, at least in principle, be proved from the basic axioms 1931, Kurt Gödel proposed the theorem of undecidability – there exist theorems which can neither be proved or disproved Later, Alonso Church and Alan Turing also found other problems which had no algorithmic solution
Alan Turing was interested in whether there was a way to define which problems were/were not decidable (computable)? can we create a machine to simulate the human brain so that those computable problems can be solved automatically? 1935-36, Turing was working on a paper, “computable numbers”. The Turing machine in this paper turned out to be the simplest prototype of all computers!
Turing’s Idea thinks reads a+b*x/y makes notes State of mind changes
The Turing Machines control unit ...... ...... head Current state control unit Read/Write head ...... ...... (Infinitely long) tape, one symbol per square
A Turing Machine Conceptualization - - - reset - start -
Actions of a Turing Machine depending on current state and current tape symbol Change state Write a new symbol onto the current tape square Move left/right one square
State Transitions A B X,Y / L read write move
State Transitions – comparing with FA and PDA B X,Y / L read write move for TM input value on stack/ op of stack for PDA
A State Transition Table read write move new 1 a b L 2 R 3 c 2 1 3
The Infinite Tape a b a c a Initial position of read/write head (the left most) a b a c a Initial data (finite) Blank tape (infinite)
A Turing Machine Example Test for a palindrome □ □ □ □ aabbabbaaa □ □ □ □ □ □ If ‘a’ then replace with space go to right hand end check for ‘a’ if not found halt -> error else go to left hand end do the same for ‘b’
Cont. Transition Table for checking ‘a’ state read write move New state start a □ findA b deleteA
Answer (cont. TM for detecting palindromes) a,a/R b,b/R findA delA □,□/L a,□/L a,□/R a,a/L b,b/L b,b/L □,□/L start □,□/L yes no return □,□/L a,a/L b,□/R b,□/L findB □,□/L delB a,a/R b,b/R □,□/R
Memo for In-class test 14 [ /5] questions my answers correct answers comments 1 2 3 4 5
Turing Machine Tricks Write as many y’ as there are x’s before □ □ □ □ x x x x □ □ □ □ after □ □ □ □ x x x x □ y y y y □ □ □ □
Answer
Unary Numbers 0 x x x x x + x x x = x x x x x x x x ? + ? = ? x x x ...... x x x x + x x x = x x x x x x ? + ? = ?
The Limitations of TMs control unit ...... ...... Control Unit does one thing only control unit ‘hardware’ specific ...... ......
The 2-Tape Turing Machine control unit data tape program tape ...... ...... program tape stores the description of a 1-tape TM’s transition table
The 2-tape TM – The Universal TM control unit Data tape Program tape ...... ......
2-Tape Transitions tape 1 tape 2 state read write move new Includes ‘no move’
extras, e.g. the current state The Emulator control unit data tape program tape ...... ...... extras, e.g. the current state
An Example of UTM (Universal Turing Machine) Adding one to a binary number e.g. before □ □ □ □ 1 0 1 0 □ □ □ □ after □ □ □ □ 1 0 1 1 □ □ □ □ before □ □ □ □ 1 0 1 1 □ □ □ □ after □ □ □ □ 1 1 0 0 □ □ □ □ before □ □ □ □ 1 1 1 1 □ □ □ □ after □ □ □ 1 0 0 0 0 □ □ □ □
An Example of UTM Cont. How to go about writing a TM for adding one (a single-tape first)? Idea (algorithm): Move the head to the right most position If the right most is 0, replace it by 1,stop move to left one space If the current value is ‘0’ or a blank replace it by 1, stop Go to step 3
An Example of UTM Cont. start 1 R check □ L _ stop carry start check state read write mov new start 1 R check □ L _ stop carry □,□ /L start check 1,0,L 1,0,L 0,1,_ carry stop 0,1,_ □,1, _ A TM which adds one in binary
Cont. change to 3-tape TM Program tape S 1 1 R S S 0 0 R S S □ □ L C Data tape 1 1 0 1 Extra tape S
What’s so Special? The lever – many lifting jobs The wheel – lots of uses UTM – anything you can ‘program’ UTM
Memo for In-class test 15 [ /5] questions my answers correct answers comments 1 2 3 4 5
A Real Computer Control unit: processor Data tape: user memory Program tape: program memory Extra tape: system memory I/O facilities added
TMs and ‘Real’ Computer - 2 Write a TM which simulates a PC TM Anything a real computer can do,a TM can do
TMs and ‘Real’ Computer - 1 Write a Java program which simulates a TM TM Anything a TM can do, a real computer can do
The Church-Turing Thesis Anything which can be computed can be computed by a Turing Machine corollary Anything which can’t be done by a TM can’t be done by any computer
So ...... If there is anything a TM can’t do it probably can’t be done But may be a TM can do anything we can imagine (?) Is there anything which TMs can’t do???
Decision Problems It is harder to say what we will never be able to do rather than what we can do (computable). Consider only simpler problems – decision problems where the answer is ‘yea’ or ‘no’. Consider only TMs with two halt states ‘yes’ and ‘no’. A problem is decidable if we can have a TM for it which eventually enters either the ‘yes’ or ‘no’ state depending on its input.
The Halting Problem ...... In searching of an undecidable problem. The best-known such problem is called the halting problem. Given an arbitrary program with an arbitrary input, can we make a Turing Machine to test whether the program stop or loop forever?
The Barber Paradox (by Bertrand Russell ) Once upon a time, a village barber put a notice outside his shop I shave all and only those men in the village who do not shave themselves. Q. Does the barber shave himself?
The Barber Paradox U = { every man in the village } S = { men shave themselves } U \ S = { men don’t shave themselves} Where does the barber belong to, S or U \ S ?
The Barber Paradox – trouble in either ways Assume: the barber does shave himself Any man in this village who shaves himself is not shaved by barber. Therefore, the barber does not shave himself. Assume: the barber doesn’t shave himself Any man in this village is shaved by the barber if and only if he is not shaved by himself. Therefore, the barber does shaves himself.
Why is the Barber Paradox important? A paradox with importance to mathematical logic and set theory. It was constructed to demonstrate the self-contradictory nature of the elementary set theory It underlies the proof of Alan Turing’s proof of the undesirability of the halting problem.
Program Testing – (another way to look at the halting problem) A Java program is stored in a file The title is called ‘abc.java’ I have tested ‘abc’ with different data It always works It’s never got into an infinite loop Can I be sure it never will for any input?
Automated Program Testing A file containing a program A file of test data Prog Test MyTest infinite loop /halt
The Java Prog Test Class public class Prog Test { Public boolean halt(String prog, String data) if prog halts when given data as input return true; else return false; }
Using Prog Test import Prog Text public class MyTest { static public void main(String[] args) { String s = args[0]; if(ProgTest.halt(s,s)) // loop forever while(true) continue; }
Running MyTest java MyTest MyTest.java MyTest (program To test) with itself as data command to run java
Suppose It Loops static public void main(String[] args) { String s = args[0]; s = MyTest.java if(ProgTest.halt(s,s)) // loop forever while(true) continue; } ProgTest.halt(“MyTest.java, “MyTest.java”)
The Dilemma If it halts it loops forever ... If it loops forever it halts ...
The Solution The result is nonsense – MyTest must halt or loop We got into this mess by assuming that ProgTest.halts could be written So ProgTest.halts doesn’t (can’t) exist.
Conclusion There are some things computer can’t do ProgTest.halts can’t be written No program exists which can tell whether any given program halts for any given data There are some things computer can’t do
Memo for In-class test 16 [ /5] questions my answers correct answers comments 1 2 3 4 5