CS 3240 – Chapter 9 Turing Machines From Alan Turing, 1936 Turns out to be the LAST machine The only machine you'll ever need The Church-Turing Thesis All algorithms have a Turing Machine equivalent ▪ Some TMs are not algorithms, however 4/8/2015 CS 3240 - Chapter 9 2 We have shown that anbncn is not context free By the Pumping Lemma What if we add an extra stack to a PDA? 4/8/2015 CS 3240 - Chapter 9 3 input, pop1/pop2, push1/push2 4/8/2015 CS 3240 - Chapter 9 4 an is accepted by an FA anbn is accepted by a PDA anbncn is accepted by a 2PDA What about anbncndn? 4/8/2015 CS 3240 - Chapter 9 5 4/8/2015 CS 3240 - Chapter 9 6 An FA is a machine with no auxiliary memory A PDA is like an FA but with unlimited, restricted memory LIFO access A Turing Machine is like an FA but with unlimited, unrestricted memory We can move to any memory cell We can both read and write there 4/8/2015 CS 3240 - Chapter 9 7 Language Machine Grammar Regular Finite Automaton Regular Expression, Regular Grammar Context-Free Pushdown Automaton Context-Free Grammar Recursively Enumerable Turing Machine Unrestricted PhraseStructure Grammar CS 3240 - Introduction 8 4/8/2015 CS 3240 - Chapter 9 9 4/8/2015 CS 3240 - Chapter 9 10 Control Unit (Deterministic) states (1 start state; 1 or more or halt states) transitions: input,output,move (L or R) I/O Tape (2-way, infinite) pre-populated with (finite) input output left on tape after processing special blank symbol ☐ ▪ not part of input alphabet ▪ used as a separator and/or a boundary 4/8/2015 CS 3240 - Chapter 9 11 Contents left on tape is ignored Typically has only one accepting state with no out-edges Any string that causes the TM to halt in an accepting state is in the TM’s language otherwise it is not in the language (an explicit reject state may also be used) 4/8/2015 CS 3240 - Chapter 9 12 Pseudocode: Replace the first a with an X Move right to first b, replace with Y Move to right first c, replace with Z Move left to right-most X Repeat When no more a’s, skip over all Y’s and Z’s Halt and accept or reject 4/8/2015 CS 3240 - Chapter 9 13 4/8/2015 CS 3240 - Chapter 9 14 aabbcc Xabbcc Xabbcc XaYbcc XaYbcc XaYbZc XaYbZc XaYbZc XaYbZc XaYbZc XXYbZc XXYbZc 4/8/2015 XXYYZc XXYYZc XXYYZZ XXYYZZ XXYYZZ XXYYZZ XXYYZZ XXYYZZ XXYYZZ XXYYZZ XXYYZZ☐ XXYYZZ☐☐ (accept) CS 3240 - Chapter 9 15 q0aabbcc Xq1abbcc Xaq1bbcc XaYq2bcc XaYbq2cc XaYq3bZc Xaq3YbZc Xq3aYbZc q3XaYbZc Xq0aYbZc XXq1YbZc XXYq1bZc 4/8/2015 XXYYq2Zc XXYYZq2c XXYYq3ZZ XXYq3YZZ XXq3YYZZ Xq3XYYZZ XXq0YYZZ XXYq4YZZ XXYYq4ZZ XXYYZq4Z XXYYZZq4☐ XXYYZZ☐q5☐ (accept) CS 3240 - Chapter 9 16 A sequence of configurations in a TM leading to a halt state i.e., it doesn’t crash If the TM is an acceptor, it explicitly accepts or rejects If the TM represents some function, f, it leaves f(x) on the tape, for each valid input x 4/8/2015 CS 3240 - Chapter 9 17 4/8/2015 CS 3240 - Chapter 9 18 What would be a reasonable strategy? 4/8/2015 CS 3240 - Chapter 9 19 4/8/2015 CS 3240 - Chapter 9 20 The initial configuration of the tape is the input What’s left on the tape is the output A model of a function Exercising such a TM constitutes a computation 4/8/2015 CS 3240 - Chapter 9 21 Suppose f: D→R is a function from domain D to range R If there is a TM that transforms every d in D to f(d) That is, it reads d from the tape and leaves f(d) on the tape… Then f is Turing-computable This is the formal definition of an algorithm 4/8/2015 CS 3240 - Chapter 9 22 Must first decide how to encode numbers on a TM tape Then we must separate the numbers, so we can distinguish between them Plan: represent the numbers in unary notation then move the 1’s from one number to the other! ▪ i.e., just remove the separator and move the 1’s together 4/8/2015 CS 3240 - Chapter 9 23 11101111 11101111 11101111 11101111 11111111 11111111 11111111 11111111 11111111_ 1111111_ 4/8/2015 CS 3240 - Chapter 9 24 4/8/2015 CS 3240 - Chapter 9 25 Using unary notation, as usual 4/8/2015 CS 3240 - Chapter 9 26 4/8/2015 CS 3240 - Chapter 9 27 Trace ababb 4/8/2015 CS 3240 - Chapter 9 28 TMs typically have one start and one or two halt states (but can have many): one if the TM is a function two if the TM is an acceptor You can “call” a TM as a routine by setting up appropriate “linkage” return to the desired state in the calling machine make sure the tape workspace is in an acceptable configuration 4/8/2015 CS 3240 - Chapter 9 29 Tape configuration: start: [x]0[y]0 finish: [x]0[y]0[xy] First, modify copy to accommodate a 0delimiters: 0[y]0… → 0[y]0…[y] and finish by positioning at left of y Then, mark a 1 in x with a, copy y to end, and repeat; then restore x’s a’s to 1’s 4/8/2015 CS 3240 - Chapter 9 30 4/8/2015 CS 3240 - Chapter 9 31 4/8/2015 CS 3240 - Chapter 9 32 See Example 9.11 for an explanation of Comparer 4/8/2015 CS 3240 - Chapter 9 33 T = (Q, ∑, Γ, δ, q0, H) Q = set of states ∑ = input alphabet Γ = tape alphabet includes ∑ and blank symbol (☐) q0 = start state H = one or more halt states each typically represents a different meaning 4/8/2015 CS 3240 - Chapter 9 34 δ(q0,1) = (q0,1,R) δ(q0,0) = (q1,1,R) δ(q1,1) = (q1,1,R) δ(q1,☐) = (q2,☐,L) δ(q2,1) = (qh,☐,R) 4/8/2015 CS 3240 - Chapter 9 35 δ q0 q1 q2 ☐ 0 1 (q1,1,R) (q0,1,R) (q1,1,R) (q2,☐,L) (qh,☐,R) δ(q0,1) = (q0,1,R) δ(q0,0) = (q1,1,R) δ(q1,1) = (q1,1,R) δ(q1,☐) = (q2,☐,L) δ(q2,1) = (qh,☐,R) 4/8/2015 CS 3240 - Chapter 9 36 q0,1,q0,1,R q0,0,q1,1,R q1,1,q1,1,R q1,B,q2,B,L q2,1,qh,B,R (B = ☐; Use in Program 4) 4/8/2015 CS 3240 - Chapter 9 37 Input: A TM ▪ quintuple format: state1,input,state2,output,direction An input string (initial tape contents) Output: A trace of the actions of the machine ▪ with the current state positioned as the read-write head Final state and tape contents 4/8/2015 CS 3240 - Chapter 9 38 TMs can make multiple passes over the data in multiple directions And can process an arbitrary amount of auxiliary data in addition to the original input They can give more meaningful output vs. just yes/no Interesting fact: TMs came first! 4/8/2015 CS 3240 - Chapter 9 39 TMs suffer from a vulnerability that FAs and PDAs do not: They are not guaranteed to halt They may hang (loop forever)! Depends on the nature of the computation More on this later 4/8/2015 CS 3240 - Chapter 9 40 “Any computation that can be carried out by mechanical means can be performed by some TM” 1. Anything that can be done on any digital computer can be done by a TM it’s the “lowest-level” programming language 2. No one has yet found a solvable problem for which a TM cannot be written 3. No alternative computation model invented is more powerful then a TM 4/8/2015 CS 3240 - Chapter 9 41 The Turing Machine is the model for most programming as we know it Imperative Programming Defines a machine architecture Characterized by reading and writing memory Instructions and data share the same memory There are other models of computation Lambda Calculus (Functional paradigm; CS 4450) Post Systems, Markov Systems, Structured Prog… 4/8/2015 CS 3240 - Chapter 9 42