CS计算机代考程序代写 algorithm Microsoft PowerPoint – CS332-Lec09-ann

Microsoft PowerPoint – CS332-Lec09-ann

BU CS 332 – Theory of Computation

Lecture 9:
• Turing Machines

Reading:
Sipser Ch 3.1, 3.3

Mark Bun
February 22, 2021

Turing Machines – Motivation
We’ve seen finite automata as a restricted model of 
computation

Finite Automata / Regular Expressions
• Can do simple pattern matching (e.g., substrings), check parity, 
addition

• Can’t perform unbounded counting
• Can’t recognize palindromes

Somewhat more powerful (not in this course):
Pushdown Automata / Context‐Free Grammars

• Can count and compare, parse math expressions
• Can’t recognize  𝑎 𝑏 𝑐 𝑛 0

2/22/2021 CS332 ‐ Theory of Computation 2

Turing Machines – Motivation
Goal:
Define a model of computation that is

1) General purpose. Captures all algorithms that can be 
implemented in any programming language.

2) Mathematically simple. We can hope to prove that 
things are not computable in this model.

2/22/2021 CS332 ‐ Theory of Computation 3

A Brief History

2/22/2021 CS332 ‐ Theory of Computation 4

1900 – Hilbert’s Tenth Problem

2/22/2021 CS332 ‐ Theory of Computation 5

David Hilbert   1862‐1943

Given a Diophantine equation with any 
number of unknown quantities and with 
rational integral numerical coefficients: To 
devise a process according to which it can 
be determined in a finite number of 
operations whether the equation is 
solvable in rational integers.

1928 – The Entscheidungsproblem

2/22/2021 CS332 ‐ Theory of Computation 6

David Hilbert   1862‐1943

The “Decision Problem”

Is there an algorithm which 
takes as input a formula (in 
first‐order logic) and 
decides whether it’s 
logically valid?

Wilhelm Ackermann  1896‐1962

1936 – Solution to the Entscheidungsproblem

2/22/2021 CS332 ‐ Theory of Computation 7

Alonzo Church  1903‐1995

Alan Turing  1912‐1954

“An unsolvable problem of elementary 
number theory“

Model of computation: 𝜆‐calculus   (CS 320)

“On computable numbers, with an 
application to the Entscheidungsproblem”

Model of computation: Turing Machine

Turing Machines

2/22/2021 CS332 ‐ Theory of Computation 8

The Basic Turing Machine (TM)

2/22/2021 CS332 ‐ Theory of Computation 9

Tape 𝑎 𝑏 𝑎 𝑎

Finite 
control

• Input is written on an infinitely long tape
• Head can both read and write, and move in both 
directions
• Computation halts as soon as control reaches 
“accept” or “reject” state

Input

0 → 0,𝑅

⊔ → ⊔,𝑅

accept

reject

0 → 0,𝑅

⊔ → ⊔,𝑅

Example

𝑞0 𝑞1

0 → 0,𝑅

⊔ → ⊔,𝑅

accept

reject

0 → 0,𝑅

⊔ → ⊔,𝑅

Example

𝑞0 𝑞1

Example

0 → 0,𝑅

⊔ → ⊔,𝑅

accept

reject

0 → 0,𝑅

⊔ → ⊔,𝑅

0 → 0,𝑅
⊔ → ⊔, 𝐿

𝑞0 𝑞1

𝑞3

What does this TM do on input 000?
a) Halt and accept
b) Halt and reject
c) Halt in state 𝑞
d) Loop forever without halting

Three Levels of Abstraction
High‐Level Description
An algorithm (like CS 330)

Implementation‐Level Description
Describe (in English) the instructions for a TM
• How to move the head
• What to write on the tape

Low‐Level Description
State diagram or formal specification

2/22/2021 CS332 ‐ Theory of Computation 13

Example

Determine if a string 

High‐Level Description

Repeat the following forever:
• If there is exactly one  in  , accept
• If there is an odd number of  s in  , reject
• Delete half of the  s in 

2/22/2021 CS332 ‐ Theory of Computation 14

Example
Determine if a string 

Implementation‐Level Description

1. While moving the tape head left‐to‐right:
a) Cross off every other 0
b) If there is exactly one 0 when we reach the right end of the 

tape, accept
c) If there is an odd number of 0s when we reach the right 

end of the tape, reject
2. Return the head to the left end of the tape
3. Go back to step 1

2/22/2021 CS332 ‐ Theory of Computation 15

Example
Determine if a string 
Low‐Level Description

2/22/2021 CS332 ‐ Theory of Computation 16

TMs vs. Finite Automata

2/22/2021 CS332 ‐ Theory of Computation 17

Formal Definition of a TM
A TM is a 7‐tuple 
• is a finite set of states
• is the input alphabet (does not include  )
• is the tape alphabet (contains  and  )
• is the transition function

…more on this later
• is the start state
• is the accept state
• is the reject state ( )

2/22/2021 CS332 ‐ Theory of Computation 18

TM Transition Function

means “move left” and  means “move right”
means:

• Replace 𝑎 with 𝑏 in current cell
• Transition from state 𝑝 to state 𝑞
• Move tape head right

means:
• Replace 𝑎 with 𝑏 in current cell
• Transition from state 𝑝 to state 𝑞
• Move tape head left UNLESS we are at left end of tape, in 
which case don’t move

2/22/2021 CS332 ‐ Theory of Computation 19

Configuration of a TM
A string with captures the state of a TM together with the 
contents of the tape

2/22/2021 CS332 ‐ Theory of Computation 20

Configuration of a TM: Formally
A configuration is a string  where  and  ∗

• Tape contents =  (followed by blanks  )
• Current state = 
• Tape head on first symbol of 

2/22/2021 CS332 ‐ Theory of Computation 21

Example:     

How a TM Computes

Start configuration: 

One step of computation:
• yields  if 
• yields  if 
• If we are at the left end of the tape in configuration  , 
what configuration do we reach if  ?

2/22/2021 CS332 ‐ Theory of Computation 22