CDT314 FABER Formal Languages, Automata and Models of Computation Lecture 12 Mälardalen University 2011
ContentChomsky’s Language Hierarchy Turing Machines DeterminismHaltingTM ExamplesStandard TMComputing Functions with TMCombining TMsTuring Thesis
The Language Hierarchy ? ? Context-Free Languages Regular Languages
Recursively enumerable languages Context-free languages Regular Languages
Turing Machines Push-down Automata Finite Automata
http://www.turing.org.uk/turing/ Who was Alan Turing? Founder of Computability Theory, mathematician, philosopher, codebreaker, visionary man before his time. http://www.cs.usfca.edu/www.AlanTuring.net/turing_archive/index.html-Jack Copeland and Diane Proudfoot http://www.turing.org.uk/turing/ The Alan Turing Home PageAndrew Hodges
1912 (23 June): Birth, London1926-31: Sherborne School1930: Death of friend Christopher Morcom1931-34: Undergraduate at King's College, Cambridge University1932-35: Quantum mechanics, probability, logic1935: Elected fellow of King's College, Cambridge1936: The Turing machine, computability, universal machine1936-38: Princeton University. Ph.D. Logic, algebra, number theory1938-39: Return to Cambridge. Introduced to German Enigma cipher machine1939-40: The Bombe, machine for Enigma decryption1939-42: Breaking of U-boat Enigma, saving battle of the Atlantic Alan Turing
1943-45: Chief Anglo-American crypto consultant. Electronic work.1945: National Physical Laboratory, London1946: Computer and software design leading the world.1947-48: Programming, neural nets, and artificial intelligence1948: Manchester University1949: First serious mathematical use of a computer1950: The Turing Test for machine intelligence1951: Elected FRS. Non-linear theory of biological growth1952: Arrested as a homosexual, loss of security clearance1953-54: Unfinished work in biology and physics1954 (7 June): Death (suicide) by cyanide poisoning, Wilmslow, Cheshire. Alan Turing
Hilbert’s Program, 1900 Hilbert’s hope was that mathematics would be reducible to finding proofs (manipulating the strings of symbols) from a fixed system of axioms, axioms that everyone could agree were true. Can all of mathematics be made algorithmic, or will there always be new problems that outstrip any given algorithm, and so require creative acts of mind to solve?
Turing Machines and Computability The question Hilbert raised was whether there could be a general method or process by which one could decide whether a mathematical proposition could be proved. But what exactly was meant by a 'method' or 'process'? People had already used the concept of a 'mechanical' process, and Turing had an idea which made this quite precise: computability. Turing wrote in his first sentences: “The "computable" numbers may be described briefly as the real numbers whose expressions as a decimal are calculable by finite means... a number is computable if its decimal can be written down by a machine. “ http://www.turing.org.uk/turing/scrapbook/machine.html
Turing Machines and Computability The Turing machine concept involves specifying a very restricted set of logical operations, but Turing showed how other more complex mathematical procedures could be built out of these atomic components. Turing argued that his formalism was sufficiently general to encompass anything that a human being could do when carrying out a definite method. Turing's famous 1936-7 paper On computable numbers, with an application to the Entscheidungsproblem, which worked out the theory of Turing machines and the definition of computability, is available as a PDF file on-line: http://www.cs.ox.ac.uk/activities/ieg/e-library/sources/tp2-ie.pdf
Turing Machines Turing’s "Machines". These machines are humans who calculate. (Wittgenstein) A man provided with paper, pencil, and rubber, and subject to strict discipline, is in effect a universal machine. (Turing)
Turing Machine Tape ...... ...... Read-Write head Control Unit
The Tape No boundaries -- infinite length ...... ...... Read-Write head The head moves Left or Right
...... ...... Read-Write head The head at each time step: 1. Reads a symbol 2. Writes a symbol 3. Moves Left or Right
Example Time 0 ...... ...... Time 1 ...... ...... 1. Reads 2. Writes 3. Moves Left
Time 1 ...... ...... Time 2 ...... ...... 1. Reads 2. Writes 3. Moves Right
The Input String Input string Blank symbol ...... ...... head Head starts at the leftmost position of the input string
States & Transitions Write Read Move Left Move Right
Example Time 1 ...... ...... current state
Time 1 ...... ...... Time 2 ...... ......
Example Time 1 ...... ...... Time 2 ...... ......
Example Time 1 ...... ...... Time 2 ...... ......
Determinism Turing Machines are deterministic Not Allowed Allowed No lambda transitions allowed in TM!
Determinism Note the difference between stateindeterminismwhen not even possible future states are known in advance and choice indeterminismwhen possible future states are known,but we do not know which state will be taken.
Partial Transition Function Example ...... ...... Allowed No transition for input symbol
Halting The machine halts if there are no possible transitions to follow
Example ...... ...... No possible transition HALT!
Allowed Not Allowed Final States • Final states have no outgoing transitions • In a final state the machine halts
Acceptance If machine halts in a final state Accept Input If machine halts in a non-final state or If machine enters an infinite loop Reject Input
A TM that accepts the language Turing Machine Example
Time 4 Halt & Accept
Rejection Example Time 0
Time 1 No possible Transition Halt & Reject
Another TM for language Infinite Loop Example
Time 2 Time 3 Time 4 Time 5 ... infinite loop…
Because of the infinite loop: • The final state cannot be reached • The machine never halts • The input is not accepted
Another Turing Machine Example Turing machine for the language