8.3. Combining Turing Machines¶
8.3.1. An Important TM¶
1 / 63 Settings<<<>>>In this slideshow, we will trace the acceptance or rejections of some strings. The given machine can accept $L = \{a^nb^nc^n: n> 0\}$.q0q1q2q3q4q5q6a;A,RB;B,R
a;a,Rb;B,RC;C,R
b;b,Rc;C,La;a,L
B;B,L
C;C,L
b;b,LA;A,RB;B,RB;B,R
C;C,R#;#,LC;c,L
B;b,L
A;a,L#;#,R
8.3.2. .¶
.
8.3.3. Combining Turing Machines¶
Turing machine computations can be combined into larger machines:M2 prepares string as input to M1.M2 passes control to M1 with I/O head at start of input.M2 retrieves control when M1 has completed.
8.3.4. Some Basic Machines and Notation¶
|Σ| symbol-writing machines (one for each symbol)Any give letter σ has a symbol-writing machine named σHead-moving machines, name R and L, move the head appropriatelyStart state indicated with >Transitions on anything other than the given symbol (for example, #) are labeled ¯#Multiple copies of a machine get a superscript: R2 means move right twice.
8.3.5. More Machines¶
First do M1, then do M2 or M3 depending on current symbol.
$>M_1$$M_2$$M_3$$a$$b$(For Σ={a,b,c}) Move head to the right until a blank is found.
$>R$$\overline{\#}$
8.3.6. More Machines (2)¶
Find first blank square to left: L#
$>L$$\overline{\#}$$\#$$M$$>L_{\#}$$M$
8.3.7. More Machines (2)¶
Shift a string left.
$R$$L \sigma R$$L\#$$\overline{\#}$$\#$$>L_{\#}$Notice: The last step is “L#”, NOT with # a subscript! Meaning, “move left, then write #”. NOT “Move left until you see a #”.
8.3.8. More Machines (3)¶
Copy Machine: Transform #w#_ into #w#w#_.$R$$\# R^{2}_{\#} \sigma L^{2}_{\#} \sigma$$R_{\#}$$\overline{\#}$$\#$$>L_{\#}$
8.3.9. Turing’s Thesis¶
You now have some intuition for what can be accomplished by a Turing MachineAcceptor, transducer, math computationsMight be painful to write in “machine code”, but possibleAnd we have the beginnings of a more powerful graphical language to express our ideasTuring Thesis: Any computation that can be carried out by mechanical means can be performed by some Turing machine.How would we prove or disprove this?[Technically, we can’t, unless we could really nail down the meaning of “mechanical means”]
8.3.10. Formal Concept of Algorithm¶
A useful working definition:An algorithm to compute a function is a Turing Machine program that solves it.Using this definition lets us reason formally about what problems (functions) do or do not have algorithms.