turing machines - lecture 25 section 9people.hsc.edu/faculty-staff/robbk/coms461/lectures...turing...

37
Turing Machines Lecture 25 Section 9.1 Robb T. Koether Hampden-Sydney College Wed, Oct 26, 2016 Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 1 / 31

Upload: others

Post on 25-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Turing MachinesLecture 25Section 9.1

Robb T. Koether

Hampden-Sydney College

Wed, Oct 26, 2016

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 1 / 31

Page 2: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Outline

1 Introduction

2 Turing Machines

3 Example

4 Different Views of Turing Machines

5 Assignment

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 2 / 31

Page 3: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Outline

1 Introduction

2 Turing Machines

3 Example

4 Different Views of Turing Machines

5 Assignment

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 3 / 31

Page 4: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Computation

Can a DFA or a PDA “compute” that 1 + 1 = 2?

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 4 / 31

Page 5: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Computation

The nearest they can come is to read input of the form a + b = c,with a, b, and c in binary, and accept or reject it.

Accept the input 1 + 1 = 2.Reject the input 1 + 1 = 3.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 5 / 31

Page 6: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Computation

The nearest they can come is to read input of the form a + b = c,with a, b, and c in binary, and accept or reject it.Accept the input 1 + 1 = 2.

Reject the input 1 + 1 = 3.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 5 / 31

Page 7: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Computation

The nearest they can come is to read input of the form a + b = c,with a, b, and c in binary, and accept or reject it.Accept the input 1 + 1 = 2.Reject the input 1 + 1 = 3.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 5 / 31

Page 8: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Computation

But this requires that we input the answer and that the machinesimply confirms it.We want a machine that will read a and b and produce the suma + b.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 6 / 31

Page 9: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Outline

1 Introduction

2 Turing Machines

3 Example

4 Different Views of Turing Machines

5 Assignment

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 7 / 31

Page 10: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Turing Machines

Turing machines are far more powerful than DFAs or PDAs.A Turing machine is as powerful as any computer ever built or everwill be built (provided we are not concerned with efficiency).

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 8 / 31

Page 11: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Abilities of a Turing Machine

A Turing machine is similar to a DFA or a PDA, with the followingdifferences.

It can read and write to the tape.It can move right or left on the tape.It halts as soon as it reaches a state for which the next move is notdefined for the current state and tape symbol.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 9 / 31

Page 12: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

The Transition Function

The transition function willRead the current tape symbol (the symbol at the current position)and thenWrite a symbol to that position andMove one position left or right.

The inputs areThe current stateThe current tape symbol

The outputs areThe new stateThe new tape symbolWhether to move left or right

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 10 / 31

Page 13: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

The Transition Function

The transition function willRead the current tape symbol (the symbol at the current position)and thenWrite a symbol to that position andMove one position left or right.

The inputs areThe current stateThe current tape symbol

The outputs areThe new stateThe new tape symbolWhether to move left or right

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 10 / 31

Page 14: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

The Transition Function

The transition function willRead the current tape symbol (the symbol at the current position)and thenWrite a symbol to that position andMove one position left or right.

The inputs areThe current stateThe current tape symbol

The outputs areThe new stateThe new tape symbolWhether to move left or right

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 10 / 31

Page 15: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Turing Machines

A Turing machine may be viewed as a computer program.The input is the initial contents of the tape.The output is the final contents of the tape.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 11 / 31

Page 16: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Looping

Because we can move right or left on the input tape, it is possiblethat the machine will never halt.If this happens, we will say that the Turing machine loops.How do we detect looping?

Good question!That is the Halting Problem.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 12 / 31

Page 17: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Looping

Because we can move right or left on the input tape, it is possiblethat the machine will never halt.If this happens, we will say that the Turing machine loops.How do we detect looping?Good question!

That is the Halting Problem.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 12 / 31

Page 18: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Looping

Because we can move right or left on the input tape, it is possiblethat the machine will never halt.If this happens, we will say that the Turing machine loops.How do we detect looping?Good question!That is the Halting Problem.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 12 / 31

Page 19: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Definition of a Turing Machine

Definition (Turing machine)A Turing machine is a 7-tuple (Q,Σ, Γ, δ,�,q0,F ), where

Q is a finite set of states,Σ is the finite input alphabet,Γ is the finite tape alphabet,δ is the transition function,� ∈ Γ is the blank,q0 ∈ Q is the start state,F ⊆ Q is the set of final states.

We require that Σ ⊆ Γ and that � /∈ Σ.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 13 / 31

Page 20: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

The Transition Function

Definition (The Transition Function)The transition function

δ : Q × Γ→ Q × Γ× {L,R}.

Furthermore, δ is a partial function, meaning that it is defined only on asubset of Q × Γ.

We leave δ undefined for some elements of Q × Γ so that the Turingmachine will be able to halt.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 14 / 31

Page 21: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

The Tape

The tape is infinite in both directions.The tape is initially filled with blanks.Then we write the (finite) input on the tape and begin processing.Processing begins in the start state with the read head positionedat a specified position which by default is the left end of the input.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 15 / 31

Page 22: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Transitions

Each transitionBegins in a state p,Reads a symbol a,Changes to a state q (possibly q = p),Writes a symbol b (possibly b = a), andMoves left or right (L or R).

We will represent the transition δ(p,a) = (q,b,L) as

a; b, Lp q

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 16 / 31

Page 23: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

The Input Alphabet

Because we are now interested in Turing machines as computers,we will typically let our input alphabet be

Σ = {0,1}.

That is, the input will be encoded in binary.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 17 / 31

Page 24: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Outline

1 Introduction

2 Turing Machines

3 Example

4 Different Views of Turing Machines

5 Assignment

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 18 / 31

Page 25: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Example

ExampleDesign a Turning Machine that will accept the languageL(0∗(10∗10∗)∗), that is, the language of all binary strings that containan even number of 1’s.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 19 / 31

Page 26: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Example

ExampleA DFA for this language is

01

0

1

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 20 / 31

Page 27: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Example

ExampleA Turing machine that accepts this language is

0; 0, R 0; 0, R

1; 1, R

1; 1, R

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 21 / 31

Page 28: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Outline

1 Introduction

2 Turing Machines

3 Example

4 Different Views of Turing Machines

5 Assignment

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 22 / 31

Page 29: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Views of Turing Machines

We may view Turing machines in a variety of ways.Language accepter.Language processor.Language enumerator.Function evaluator.Problem decider.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 23 / 31

Page 30: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Views of Turing Machines

Definition (Language accepter)A language accepter is a Turing machine that reads an input w fromthe tape and, if w is accepted, moves to the accept state, and if w isrejected, either moves to the reject state or loops.

From the previous example, it is easy to see how a Turing machinecould be built that would accept a given regular language.How would we build a Turing machine to accept a context-freelanguage?

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 24 / 31

Page 31: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

L = {anbn | n ≥ 0}

Example (L = {anbn | n ≥ 0})Design a Turing machine that will accept the language

L = {anbn | n ≥ 0}.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 25 / 31

Page 32: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Views of Turing Machines

Definition (Language processor)A language processor is a Turing machine that begins with a wordfrom a language on the tape and halts with a word from anotherlanguage on the tape.

Example (Language processor)The Turing machine COPY replaces the input w with the output w�w .

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 26 / 31

Page 33: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Views of Turing Machines

Definition (Language enumerator)A language enumerator is a Turing machine that begins with a blanktape and writes sequentially all the words in a language L.

Example (Language enumerator)The Turing machine ENUM writes all the strings in {0,1}∗:��0�1�00�01�10�11�000 . . ..

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 27 / 31

Page 34: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Views of Turing Machines

Definition (Function evaluator)A function evaluator is a Turing machine that reads an input w from itstape and writes f (w), for some function f .

Example (Function evaluator)The Turing machine INCR replaces the input n with n + 1, therebycomputing the function f (n) = n + 1.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 28 / 31

Page 35: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Views of Turing Machines

Definition (Problem decider)A problem decider is a Turing machine that reads a decision problemcoded in binary and accepts the input if the answer is “yes” and rejectsthe input if the answer is “no.”

Example (Problem decider)The Turing machine PRIME writes 1 if the input n is a prime numberand writes 0 if it is not prime.

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 29 / 31

Page 36: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Outline

1 Introduction

2 Turing Machines

3 Example

4 Different Views of Turing Machines

5 Assignment

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 30 / 31

Page 37: Turing Machines - Lecture 25 Section 9people.hsc.edu/faculty-staff/robbk/Coms461/Lectures...Turing machines are far more powerful than DFAs or PDAs. A Turing machine is as powerful

Assignment

AssignmentSection 9.1 Exercises 2, 3, 5, 8fgh, 10, 13a

Robb T. Koether (Hampden-Sydney College) Turing Machines Wed, Oct 26, 2016 31 / 31