CSCI 2670
Introduction to Theory of
Computing
October 7, 2004
Agenda
• Yesterday
– Test
• Today
– Continue Turing Machines
October 7, 2004
2
Announcements
• Homework due Wednesday
– 3.2 b,d 3.5 all, 3.7, 3.8 a,c (high-level
descriptions)
• Reminder: tutorial sessions are
suspended until further notice
– Extended office hours while tutorials
are suspended
• Monday 11:00 – 12:00
• Tuesday 3:00 – 4:00
• Wednesday 3:00 – 5:00
October 7, 2004
3
Formal definition of a TM
Definition: A Turing machine is a 7tuple (Q,,,,q0,qaccept,qreject), where
Q, , and are finite sets and
1. Q is the set of states,
2. is the input alphabet not
containing the special blank symbol ~
3. is the tape alphabet, where ~
and ,
4. : QQ{L,R} is the transition
function,
October 7, 2004
4
Formal definition of a TM
Definition: A Turing machine is a 7tuple (Q,,,,q0,qaccept,qreject), where
Q, , and are finite sets and
5. q0Q is the start state,
6. qacceptQ is the accept state, and
7. qrejectQ is the reject state, where
qrejectqaccept
October 7, 2004
5
Computing with a TM
• M receives input w = w1w2…wn* on
leftmost n squares of tape
– Rest of tape is blank (all ~ symbols)
• Head position begins at leftmost
square of tape
• Computation follows rules of
• Head never moves left of leftmost
square of the tape
– If says to move L, head stays put!
October 7, 2004
6
Completing computation
• Continue following transition rules
until M reaches qaccept or qreject
– Halt at these states
• May never halt if the machine never
transitions to one of these states!
October 7, 2004
7
TM configurations
• The configuration of a Turing machine
is the current setting
– Current state
– Current tape contents
– Current tape location
• Notation uqv
– Current state = q
– Current tape contents = uv
• Only ~ symbols after last symbol of v
– Current tape location
= first symbol of v
October 7, 2004
8
Configuration C1 yields C2
• C1 yields C2 if the TM can legally go
from C1 to C2 in one step
– Assume a, b and u, v *
– uaqibv yields uqkacv if (qi,b)=(qk,c,L)
– uaqibv yields uacqkv if (qi,b)=(qk,c,R)
October 7, 2004
9
Configuration C1 yields C2
• Special cases if head is at beginning
or end of tape
– qibv yields qkcv if (qi,b)=(qk,c,L)
– qibv yields cqkv if (qi,b)=(qk,c,R)
– uaqi is the same as uaqi~
• “handle this case as before”
• uaqi~ yields uqkac~ if (qi,b)=(qk,c,L)
• uaqi~ yields uacqk~ if (qi,b)=(qk,c,R)
October 7, 2004
10
Special configurations
• Start configuration
– q0w
• Halting configurations
– Accepting configuration: uqacceptv
– Rejecting configuration: uqrejectv
• u, v *
October 7, 2004
11
Strings accepted by a TM
•
A Turing machine M accepts input
sequence w if a sequence of
configurations C1, C2, …, Ck exist,
where
1. C1 is the start configuration of M on
input w
2. each Ci yields Ci+1 for i = 1, 2, …, k-1
3. Ck is an accepting configuration
October 7, 2004
12
Language of a TM
•
The language of M, denoted L(M), is
–
•
L(M) = {w | M accepts w}
A language is called Turingrecognizable if some Turing machine
recognizes it
October 7, 2004
13
Deciders
• A Turing machine is called a decider
if every string in * is either
accepted or rejected
• A language is called Turing-decidable
if some Turing machine decides it
– These languages are often just called
decidable
October 7, 2004
14
Turing machine notation
• (qi,b)=(qk,c,D), where D = L or R, is
represented by the following
transition
qi
b c, D
qk
• In the special case where
(qi,b)=(qk,b,D), i.e., the tape is
unchanged, the right-hand side will
just display the direction
October 7, 2004
15
Example
• Write a TM that accepts all strings
of the form 101001000100001 …
– Start with a 1
– End with a 1
– Progressively more 0’s between
consecutive 1’s
October 7, 2004
16
Design
• Check first symbol is a 1
– If not reject
• Move right and check if second
symbol is a 0
– If not reject
– If so, replace with X and begin recursion
October 7, 2004
17
Recursion (high level)
• Go back and forth on either side of
each 1
– Replace 0’s on right side of 1 with an X
– Replace X’s on left side of 1 with a Y
• After all X’s on left side of 1 are
replaced with Y’s, there should be
exactly one on the right side that has
not been X’ed
– If not, reject
– If so, repeat process
(recursion step)
October 7, 2004
18
Exit condition
• If you begin to look for the next
group of 0’s and reach a ~ then
accept
October 7, 2004
19
October 7, 2004
20
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 7, 2004
21
Group project 2
• Write a Turing machine that accepts
the language {w {a,b}* | |w| is even}
October 7, 2004
22
Group project 3
• Write a Turing machine that accepts
the language {anbm | nm and nm}
October 7, 2004
23
Group project 4
• Write a Turing machine that accepts
the language {anbman+m | n0 and m1}
October 7, 2004
24
Group project 5
• Write a Turing machine that accepts
the language {wwR | w{a,b}*}
October 7, 2004
25
Group project 6
• Design a Turing machine that accepts
the language
{w{a,b}* | w has more a’s than b’s}
October 7, 2004
26
© Copyright 2026 Paperzz