CSCI 2670
Introduction to Theory of
Computing
October 4, 2005
1
Agenda
• Last week
– Turing machines
• This week
– Sections 3.2 & 3.3
• Variants of Turing machines and the
definition of algorithm
October 4, 2005
2
Announcements
• Homework due next Tuesday
– 3.7, 3.15 b & c, 3.16 d
• 3.7 and 3.15 are same in both texts
• 3.16 d – Show the collection of Turingrecognizable languages is closed under the
operation of intersection.
• Quiz tomorrow
– Turing machine definition, calculation,
and design
October 4, 2005
3
Group project 1
• Design a Turing machine to accept any
string in {a,b}* after making a copy of
it on the tape
– The tape will start with w
– After TM processes the string, the tape
should read ww
October 4, 2005
4
Group project 2
• Write a Turing machine that accepts
the language {w {a,b}* | |w| is even}
October 4, 2005
5
Group project 3
• Write a Turing machine that accepts
the language {anbm | nm and nm}
October 4, 2005
6
Group project 4
• Write a Turing machine that accepts
the language {anbman+m | n0 and m1}
October 4, 2005
7
Group project 5
• Write a Turing machine that accepts
the language {wwR | w{a,b}*}
October 4, 2005
8
Group project 6
• Design a Turing machine that accepts
the language
{w{a,b}* | w has more a’s than b’s}
October 4, 2005
9
Group project 1
• Design a Turing machine to accept any
string in {a,b}* after making a copy of
it on the tape
– The tape will start with w
– After TM processes the string, the tape
should read ww
October 4, 2005
10
TM design
• Read first symbol
– If a, replace with x, move to end and
write x
– If b, replace with y, move to end and
write y
• Move left to first x or y
• Move left to next x or y
– If x, replace with a and move right
– If y, replace with b and move right
October 4, 2005
11
TM design (cont.)
• Read symbol at tape head
– If x, replace with a and accept
– If y, replace with b and accept
– If neither, loop to beginning
October 4, 2005
12
States
• Start state q1
• Move right
– Write a at end, write b at end, write x
at end, write y at end
• Move left to first x or y
• Move left to second x or y & replace
with a or b
• Replace a or b with x or y
October 4, 2005
13
Copy machine
qreject
a→R
b→R
a→ x,R
~ → x,R
b→ y,R
a→R
b→R
~ → a,R
a→L
b→L
~→L
x→L
y→L
a→L
b→L
x → a,R
y → b,R
a→ x,R
b→ y,R
~ → y,R
~→L
a,b,x,y → R
~ → b,R
a,b,x,y → R
x → a,R
y → b,R
qaccept
October 4, 2005
14
Variants of Turing machines
• Robustness of model
– Varying the model does not change the
power
• Unlike finite automata (making finite
automata nondeterministic changes the class
of languages accepted)
• Simple variant of TM model
– Add “stay put” direction
• Other variants
– More tapes
– Nondeterministic
October 4, 2005
15
Multitape Turing machines
• Same as standard Turing machine, but
have several tapes
• TM definition changes only in
definition of δ
δ : Q × Гk → Q × Гk × {L,R}k
October 4, 2005
16
Equivalence of machines
Theorem: Every multitape Turing
machine has an equivalent single tape
Turing machine
Proof method: construction
October 4, 2005
17
Equivalent machines
0 1 ~ ~ ~ ~~ ~
M
a a a ~ ~ ~ ~ ~
a b ~ ~ ~~ ~ ~
S
# 0 1 # a a a # a b# ~ ~
October 4, 2005
18
Simulating k-tape behavior
• Single tape start string is
#w#~#...#~#
• Each move proceeds as follows:
– Start at leftmost slot
– Scan right to (k+1)st # to find symbol at
each virtual tape head
– Make second pass making updates
indicated by k-tape transition function
– When a virtual head moves onto a #,
shift string to right
October 4, 2005
19
Corollary
Corollary: A language is Turingrecognizable if and only if some
multitape Turing machine recognizes
it.
October 4, 2005
20
Example
• Using 2-tape Turing machine, write a
copy machine
• Copy tape 1 to tape 2
• Move tape 1 to beginning
• Copy tape 1 to tape 2
• Accept
October 4, 2005
21
Copy machine
{a,~}→ {a,a},{R,R}
{b,~}→ {b,b},{R,R}
{a,~}→ {x,a},{R,R}
{b,~}→ {y,b},{R,R}
qreject
{a,~}→ {L,S}
{a,~}→ {a,a},{R,R}
{b,~}→ {L,S}
~,~ → {L,S}
{b,~}→ {b,b},{R,R}
{x,~} → {a,a},{R,R}
{y,~} → {b,b},{R,R}
{~,~} → {L,L}
{~, ,~}→ {R,R}
qaccept
October 4, 2005
22
© Copyright 2026 Paperzz