Top Banner
CSCI 2670 Introduction to Theory of Computing September 28, 2005
27

CSCI 2670 Introduction to Theory of Computing September 28, 2005.

Jan 12, 2016

Download

Documents

Oswald Phelps
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

CSCI 2670Introduction to Theory of

Computing

September 28, 2005

Page 2: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

September 28, 2005

Agenda

• This week– Turing machines– Read section 3.1

Page 3: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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

Page 4: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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

Page 5: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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

Page 6: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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

Page 7: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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

Page 8: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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

Page 9: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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 infinite4. Accept and reject states take

immediate effect

Page 10: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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

Page 11: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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

Page 12: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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

Page 13: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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

Page 14: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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. : QQ{L,R} is the transition function,

Page 15: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

September 28, 2005

What is the Transition Function??

Q = set of states, = tape alphabet: QQ{L,R}Given:• The current internal state Q• The symbol on the current tape cellThen tells us what the TM does:• Changes to new internal state Q• Either writes new symbol • Or moves one cell left or right

Page 16: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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

5. q0Q is the start state,

6. qacceptQ is the accept state, and

7. qrejectQ is the reject state, where qrejectqaccept

Page 17: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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!

Page 18: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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!

Page 19: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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:

Page 20: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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:

Page 21: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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

Page 22: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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 writes a 1 and moves to

Page 23: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

September 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)

Page 24: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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

Page 25: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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)

Page 26: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

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

Page 27: CSCI 2670 Introduction to Theory of Computing September 28, 2005.

September 28, 2005

Acknowledgements

• TM addition example from Stanford, http://plato.stanford.edu/entries/turing-machine/