220 likes | 332 Views
CSCI 2670 Introduction to Theory of Computing. October 4, 2005. Agenda. Last week Turing machines This week Sections 3.2 & 3.3 Variants of Turing machines and the definition of algorithm. Announcements. Homework due next Tuesday 3.7, 3.15 b & c, 3.16 d
E N D
CSCI 2670Introduction to Theory of Computing October 4, 2005
Agenda • Last week • Turing machines • This week • Sections 3.2 & 3.3 • Variants of Turing machines and the definition of algorithm October 4, 2005
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 Turing-recognizable languages is closed under the operation of intersection. • Quiz tomorrow • Turing machine definition, calculation, and design October 4, 2005
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
Group project 2 • Write a Turing machine that accepts the language {w {a,b}* | |w| is even} October 4, 2005
Group project 3 • Write a Turing machine that accepts the language {anbm | nm and nm} October 4, 2005
Group project 4 • Write a Turing machine that accepts the language {anbman+m | n0 and m1} October 4, 2005
Group project 5 • Write a Turing machine that accepts the language {wwR | w{a,b}*} October 4, 2005
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
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
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
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
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
qreject a → R b → R ~ → a,R a → L b → L ~ → L a → L b → L a,b,x,y → R a→ x,R ~ → x,R x → a,R y → b,R x → L y → L a → R b → R a→ x,R b→ y,R b→ y,R ~ → y,R a,b,x,y → R x → a,R y → b,R ~ → L ~ → b,R qaccept Copy machine October 4, 2005
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
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
Equivalence of machines Theorem: Every multitape Turing machine has an equivalent single tape Turing machine Proof method: construction October 4, 2005
0 1 ~ ~ ~ ~ ~ ~ a a a ~ ~ ~ ~ ~ M a b ~ ~ ~ ~ ~ ~ # 0 1 # a a a # a b # ~ ~ S Equivalent machines October 4, 2005
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
Corollary Corollary: A language is Turing-recognizable if and only if some multitape Turing machine recognizes it. October 4, 2005
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
qreject {a,~}→ {a,a},{R,R} {b,~}→ {b,b},{R,R} {a,~}→ {L,S} {b,~}→ {L,S} {a,~}→ {a,a},{R,R} {b,~}→ {b,b},{R,R} {a,~}→ {x,a},{R,R} {b,~}→ {y,b},{R,R} ~,~ → {L,S} {x,~} → {a,a},{R,R} {y,~} → {b,b},{R,R} {~,~} → {L,L} {~, ,~}→ {R,R} qaccept Copy machine October 4, 2005