Loading [MathJax]/jax/output/HTML-CSS/jax.js

7.Combining Turing Machines (1)§

Lemma: If
(q1, w1a1_u1)M(q2, ww2a2_u2)
for string w and
(q2, w2a2_u2)M(q3, w3a3_u3),
then
(q1, w1a1_u1)M(q3, ww3a3_u3).
Insight: Since (q2, w2a2_u2)M(q3, w3a3_u3), this computation must take place without moving the head left of w2.
The machine cannot “sense” the left end of the tape.
And if it had moved left, it would have hung.

Combining Turing Machines (2)

Thus, the head won’t move left of w2 even if it is not at the left end of the tape.
This means that 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 end of input.
M2 retrieves control when M1 has completed.

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 appropriately
Start 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.

More Machines

First do M1, then do M2 or M3 depending on current symbol.

Created with Raphaël 2.1.2
$>M_1$
$M_2$
$M_3$
$a$
$b$

(For Σ={a,b,c}) Move head to the right until a blank is found.

Created with Raphaël 2.1.2
$>R$
$\overline{\#}$

More Machines (2)

Find first blank square to left: L#

Created with Raphaël 2.1.2
$>L$
$\overline{\#}$
$\#$
$M$
$>L_{\#}$
$M$
Shift a string left.
Created with Raphaël 2.1.2
$R$
$L \sigma R$
$L\#$
$\overline{\#}$
$\#$
$>L_{\#}$

More Machines (3)

Copy Machine: Transform #w#_ into #w#w#_.
Created with Raphaël 2.1.2
$R$
$\# R^{2}_{\#} \sigma L^{2}_{\#} \sigma$
$R_{\#}$
$\overline{\#}$
$\#$
$>L_{\#}$

Turing’s Thesis

You now have some intuition for what can be accomplished by a Turing Machine
Acceptor, transducer, math computations
Might be painful to write in “machine code”, but possible
And we have the beginnings of a more powerful graphical language to express our ideas

Turing 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?
What is the technical meaning of the word “thesis”?

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.