0% found this document useful (0 votes)
39 views27 pages

CSCI 2670 Introduction To Theory of Computing: September 28, 2005

This document provides an overview of a lecture on Turing machines. It discusses Turing machines and their ability to model any computation. It provides examples of Turing machines to find the middle of a string and add two numbers. It also formally defines the components of a Turing machine and how they operate based on transition functions to read/write tape symbols and change state.

Uploaded by

mohit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
39 views27 pages

CSCI 2670 Introduction To Theory of Computing: September 28, 2005

This document provides an overview of a lecture on Turing machines. It discusses Turing machines and their ability to model any computation. It provides examples of Turing machines to find the middle of a string and add two numbers. It also formally defines the components of a Turing machine and how they operate based on transition functions to read/write tape symbols and change state.

Uploaded by

mohit
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 27

CSCI 2670

Introduction to Theory of
Computing

September 28, 2005


Agenda
• This week
– Turing machines
– Read section 3.1

September 28, 2005


Announcements
• Tests will be returned tomorrow
• 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

September 28, 2005


Recap to date
• Finite automata (both deterministic
and nondeterministic) machines
accept regular languages
– Weakness: no memory
• Pushdown automata accept context-
free grammars
– Add memory in the form of a stack
– Weakness: stack is restrictive

September 28, 2005


Turing machines
• Similar to a finite automaton
– Unrestricted memory in the form of a
tape
• Can do anything a real computer can
do!
– Still cannot solve some problems
• Church-Turing thesis: any effective
computation can be carried out by
some Turing machine
September 28, 2005
Touring machine schematic

Control
a b a ~

• Initially tape contains the input string


– Blanks everywhere else (denoted ~ in
class … different symbol in book)
• Machine may write information on the
tape

September 28, 2005


Touring machine schematic

Control
a b a ~

• Can move tape head to read


information written to tape
• Continues computing until output
produced
– Output values accept or reject

September 28, 2005


Touring machine schematic

Control
a b a ~

• Turing machine results


– Accept
– Reject
– Never halts
• We may not be able to tell result by
observation
September 28, 2005
Differences between TM and FA
1. TM has tape you can read from and
write to
2. Read-write head can be moved in
either direction
3. Tape is infinite
4. Accept and reject states take
immediate effect

September 28, 2005


Example
• How can we design a Turing machine
to find the middle of a string?
– If string length is odd, return middle
symbol
– If string length is even, reject string
• Make multiple passes over string Xing
out symbols at end until only middle
remains

September 28, 2005


Processing input
1. Check if string is empty
 If so, return reject
2. Write X over first and last non-X symbols
 After this, the head will be at the second X
3. Move left one symbol
 If symbol is an X, return reject (string is
even in length)
4. Move left one symbol
 If symbol is an X, return accept (string is
even in length)
5. Go to step 2
September 28, 2005
Example
• 00110~
– First check if string is empty
– X first and last non-X symbols
• X011X~
– Move left one symbol
• X011X~
– Is symbol an X? No
– Move left one symbol
• X011X~
– Is symbol an X? No
– Write X over first and last non-X symbols
September 28, 2005
Example
• XX1XX~
– Move left one symbol
• XX1XX~
– Is symbol an X? No
– Move left one symbol
• XX1XX~
– Is symbol an X? Yes
– Return accept

September 28, 2005


Formal definition of a TM
Definition: A Turing machine is a 7-
tuple (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. : QQ{L,R} is the transition
function,
September 28, 2005
What is the Transition Function??
Q = set of states,  = tape alphabet
: QQ{L,R}
Given:
• The current internal state  Q
• The symbol on the current tape cell
Then  tells us what the TM does:
• Changes to new internal state  Q
• Either writes new symbol  
• Or moves oneSeptember
cell28,left
2005 or right
Formal definition of a TM
Definition: A Turing machine is a 7-
tuple (Q,,,,q0,qaccept,qreject), where
Q, , and  are finite sets and
5. q0Q is the start state,
6. qacceptQ is the accept state, and
7. qrejectQ is the reject state, where
qrejectqaccept

September 28, 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 28, 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 28, 2005


Another TM example
• We want to create a TM to add two
numbers
• Use a simple tape alphabet {0,1} plus
the blank symbol
• Represent a number n by a string of
n+1 1’s terminated by a zero
• Input to compute 3+4 looks like this:

September 28, 2005


Result of the TM addition example
• Note that the TM is initially positioned on
the leftmost cell of the input.
• When the TM halts in the accept state, it
must also be on the leftmost cell of the
output:

September 28, 2005


Breaking down the addition problem
• Good computer scientists like to
simplify
• A successor TM appends a 1 to the
right end of a string of 1’s

September 28, 2005


The successor subroutine

• The TM starts in the initial state s0,


positioned on the leftmost of a string of 1’s
• If it sees a 1, it writes a 1, moves right,
and stays in state s0
• If it sees a 0, it September
writes a 1 and moves to
28, 2005
Successor subroutine state transitions
• <s0, 1, s0, » >
• < s0, 0, s1, 1 >
• < s1, 1, s1, « >
• < s1, 0, s2, » >
(original state, input, new state, action)

September 28, 2005


TM state interpretation
• S0 – the TM has seen only 1’s so far
and is scanning right
• S1 – the TM has seen its first zero
and is scanning left
• S2 – the TM has returned to the
leftmost 1 and halts.
View movie of this TM

September 28, 2005


From successor TM to addition TM
• The successor TM will join the two blocks
of n+1 1’s and m+1 1’s into a single block of
n+m+3 1’s
• To complete the computation, knock off
two 1’s from left end (states s2 and s3)

September 28, 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 28, 2005
Acknowledgements
• TM addition example from Stanford,
http://plato.stanford.edu/entries/turing-machine/

September 28, 2005

You might also like