Transcript Document
CSCI 2670
Introduction to Theory of
Computing
September 29, 2005
Agenda
• Yesterday
– Turing machines
• Today
– Continue Turing Machines
September 29, 2005
Announcements
• Homework due Wednesday
– 3.2 c & e, 3.6, 3.8 b, 3.12, 3.13
• I will accept homeworks until 11:00 Thursday
• Quiz Tuesday
– Turing machine definition, calculation,
and design
• Tests will be returned next Tuesday
• Ignore comment about tutorials being
cancelled
September 29, 2005
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,
September 29, 2005
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
September 29, 2005
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!
September 29, 2005
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!
September 29, 2005
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
September 29, 2005
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)
September 29, 2005
Configuration C1 yields C2
• Special cases if head is at beginning
or end of tape
– uaqibv yields uqjacv if (qi,b)=(qk,c,L)
– uaqibv yields uacqkv if (qi,b)=(qk,c,R)
– Special cases
• qibv~ yields qjac~ if (qi,b)=(qk,c,L) and tape
head is at beginning of tape
• uaqi~ yields uacqk~ if (qi,b)=(qk,c,R)
September 29, 2005
Special configurations
• Start configuration
– q0w
• Halting configurations
– Accepting configuration: uqacceptv
– Rejecting configuration: uqrejectv
• u, v *
September 29, 2005
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
September 29, 2005
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
September 29, 2005
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
September 29, 2005
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
September 29, 2005
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
September 29, 2005
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
September 29, 2005
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)
September 29, 2005
Exit condition
• If you begin to look for the next
group of 0’s and reach a ~ then
accept
September 29, 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
September 29, 2005
Group project 2
• Write a Turing machine that accepts
the language {w {a,b}* | |w| is even}
September 29, 2005
Group project 3
• Write a Turing machine that accepts
the language {anbm | nm and nm}
September 29, 2005
Group project 4
• Write a Turing machine that accepts
the language {anbman+m | n0 and m1}
September 29, 2005
Group project 5
• Write a Turing machine that accepts
the language {wwR | w{a,b}*}
September 29, 2005
Group project 6
• Design a Turing machine that accepts
the language
{w{a,b}* | w has more a’s than b’s}
September 29, 2005