Turing Machines - Rice University yz2/COMP481/ آ  Turing Machine Machine Move • Change...

download Turing Machines - Rice University yz2/COMP481/ آ  Turing Machine Machine Move • Change symbol under

of 39

  • date post

    24-Oct-2019
  • Category

    Documents

  • view

    6
  • download

    0

Embed Size (px)

Transcript of Turing Machines - Rice University yz2/COMP481/ آ  Turing Machine Machine Move • Change...

  • Turing Machines

  • Part I: Definitions and Properties

  • Finite State Automata

    Deterministic Automata (DFA)

    • M = {Q, Σ, δ , q0, F}

    -- Σ = Symbols

    -- Q = States

    -- q0 = Initial State

    -- F = Accepting States ⊆ Q

    -- δ :Q × Σ→Q = Transition Functions

    Analog Machine

    • Hard Wired

    • No Code

  • Push-Down Automata

    Push Down Automata (PDA)

    • Finite State Automata with a Stack

    • Stack can be used for Counting

    • Accept ⇔ Halts in an Accepting State AND Stack is Empty

    • PDA more Powerful than FSA

    • Non-Deterministic (Analog?) Machine

  • Turing Machine

    Informal Definition

    • Control Unit

    • States

    • Doubly infinite tape

    -- input

    -- output

    -- memory

    • Tape reader

    • Initial state

    • (See Picture)

  • Turing Machine

    • Machine with states -- finite automata • Tape -- mostly blank • Tape head -- on leftmost nonblank symbol

  • Turing Machine

    Formal Definition

    M = {Q, Σ, H ,δ , s0}

    • Q = set of states • s0 = initial state

    • H = halting states ⊂ Q

    • Σ = tape alphabet

    • δ : (Q − H )× Σ→Q × Σ × {R, L}

    -- go to new state

    -- write new symbol on tape -- replace old symbol

    -- move tape head to left or right

    -- list of 5-tuples -- (s, x; s∗, x∗ , L / R)

  • Turing Machine

    Machine Move

    • Change symbol under tape head

    • Move tape head

    • Change state

    • Analog Machine?

    Hardware and Software

    • Turing Machine = Computer (Hardware)

    • 5-tuples = Program (Software)

    Functions

    • M maps the input x to the output y and then halts.

    • M is a partial function because M might not halt.

  • Diagrams of Turing Machines

    Diagrams

    • States = Circles

    • Arrows = Transition Functions

    -- From Current State to Next State

    • Labels on Arrows = x / y / (L  or  R)

    -- Read x

    -- Write y

    -- Move Left or Right

  • Configurations of Turing Machines

    (q,wL ,x, wR ) ≡ (q,wLx wR )

    -- q = current state

    -- x = current symbol on tape

    -- wL = string of non blank symbols to the left of x

    -- wR = string of non blank symbols to the right of x

  • What a Turing Machine Can Do

    • Halt -- Accept or Reject

    • Loop -- Cycle

    • Diverge -- Never Halt or Cycle

  • ` Languages and Turing Machines

    Decidable Languages

    • M Halts in Accept State ⇔ x ∈L

    • M Halts in Reject State ⇔ x ∉L

    Semi Decidable Languages

    • M Halts in Accept State ⇔ x ∈L

    • M may Loop or Diverge for x ∉L

  • Decidable Languages

    L = {anbncn} -- Not Context Free

    L = {wc w|w ∈{a,b}∗} -- Not Context Free

  • Power of Turing Machine

    Lemma: L = {anbncn} can be recognized by a Turing Machine

    (L is not context free -- pumping theorem)

    Proof: If Tape Empty, Halt and Accept

    • Otherwise, Replace first a with 1

    • Move Right to first b and Replace with 2

    -- If no b or if c encountered first, Halt and Reject

    • Move Right to first c and Replace with 3

    -- If no c or if a encountered first, Halt and Reject

    • Continue until all a’s converted to 1’s

    If no b’s or c’s remain, Halt and Accept

    Otherwise, Halt and Reject

  • Functions and Turing Machines

    Turing Machines as Functions

    • Input = Initial String (Non Blanks) on Tape

    -- x ∈X = Domain

    • Output = Final String on Tape when Machine Halts

    -- y ∈Y = Range

    • Function

    -- M : X →Y

    -- M (x) = y

    • Computable (Recursive) Functions

    -- Functions that can be Computed by Some Turing Machine

  • Examples

    Language Recognition

    • x ∈Σ∗ = Domain = Strings

    • Output: Range = {TRUE, FALSE}

    • M recognizes L if and only if

    -- M Halts and Writes TRUE on the Tape when x ∈L

    -- M Halts and Writes FALSE on the Tape when x ∉L

    Functions on Natural Numbers

    • Encode Natural Numbers as Binary (or Decimal) Strings

    -- Input and Output are Binary (Decimal) Strings

    • Example: Adding 1 to a Binary Number

    -- Carrying Function

  • Part II: Equivalent Machines

  • Equivalent Machines for Simplifying Proofs

    1. Multiple Tapes

    2. Nondeterminism

    3. One Way Tape

    4. Two Stacks

  • Multiple Tape Turing Machine

    Description

    • Input on Tape 1

    -- All Other Tapes Start Blank

    ª Output on Tape 1

    -- Contents of All Other Tapes Ignored

    • Move all Tape Heads Simultaneously

    -- Left. Right. or Stay in Same Location

    • Halt

  • Simulating Multiple Tapes with One Tape

    Tape Alphabet

    • Introduce New Tape Symbols to Represent with a Single Symbol

    -- Contents of Each Position on Each Tape

    -- Location of Each Tape Head -- 0, 1

    Program

    • Replace Original Tape Symbols by New Tape Symbols

    • Locate and Store (in State) Symbols at Current Head Locations

    • Change Symbols to Simulate Each Head Move

    • Replace New Tape Symbols by Corresponding Original Tape Symbols

    • Halt

  • Nondeterministic Machines

    Non Deterministic Finite State Automata

    • Simultaneous Transitions to Many Possible Different States

    • No More Powerful than Deterministic Finite State Automata

    Non Deterministic Push Down Automata

    • Simultaneous Transitions to Many Possible Different States and Stacks

    • More Powerful than Deterministic Push Down Automata

  • Nondeterministic Turing Machine

    Simultaneous Transitions

    • Many Possible Different States

    • Multiple Possible Head Directions

    • Writing Many Possible Different Symbols on Current Tape Location

    Accept or Reject

    • Accept if at Least One Computation Accepts

    • Reject if ALL Computations Reject

  • Decidable and Semi-Decidable -- Languages

    Decidable (M Decides L)

    • Finite Number of Paths for Each String

    • Each Path Halts

    • M Accept w ⇔ w∈L

    Semi-Decidable (M Semi-Decides L)

    • M Accept w on at Least 1 Path ⇔ w∈L

  • Non-Determinism and Functions

    M Compute F

    • For Each w in Domain F

    -- Every Path Halts

    -- Final String is the Same F(w) for Every Path

  • Simulating Nondeterminism

    Depth First Search

    • No

    • Why?

    Breadth First Search

    • Yes

    • Why?

  • Simulating 1 Two Way Tape with 3 One Way Tapes

    Tapes

    • Tape #1 = Characters to the Right of Initial Position

    • Tape #2 = Characters Introduced to the Left of Initial Position

    • Tape #3 = Number of Operations in Unary (All 1’s)

    Simulation

    • Initialize Tape #1 to Initial Characters; Tape #2 and Tape #3 Blank

    • Simulate All Moves to Right of Initial Position on Tape #1

    • Simulate All Moves to Left of Initial Position on Tape #2

    • Shift Tape #1 to Right by Number of Steps on Tape #3

    • Move Characters from Tape #2 to Tape #1

  • Turing Machines and Push Down Automata

    Theorems

    1. Every Push Down Automaton can be Simulated with a Turing Machine.

    2. Every Turing Machine can be Simulated by a Push Down Automaton

    with 2 Stacks.

    3. Turing Machines are more powerful than Push Down Automata

    with 1 Stack.

  • Theorem 1

    Every Push Down Automaton can be Simulated by a Non-Deterministic

    Turing Machine with 2 Tapes

    Simulation

    • Tape #1 = Characters in String

    • Read Only

    • Move Only to Right

    • Tape #2 = Characters on Stack

    • Pop -- Scan Left Replacing Symbols by Blanks

    • Push -- Scan Right Replacing Blanks by Symbols

  • Theorem 2

    Every Turing Machine can be Simulated by a Push Down Automaton

    with 2 Stacks

    Simulation

    • Stack #1 = Characters to Left of Head and Under Reading Head

    • Stack #2 = Characters to Right of Reading Head

    • Move Left Move Right

    Pop Stack #1 Pop Stack #2

    Push Stack #2 Push Stack #1

  • Theorem 3

    Turing Machines are more Powerful than Push Down Automaton with 1 Stack.

    Proof

    Turing Machines can Recognize the Language L = {anbncn} .

  • Simulating a Digital Computer with a Turing Machine

    Seven Tapes

    • Tape #1 = Memory = Program + Data

    • Tape #2 = Program Counter = Index into Memory in Tape #1

    • Tape #3 = Address Register

    • Tape #4 = Accumulator

    • Tape #5 = Operation Code of Current Instruction

    • Tape #6 = Input File

    • Tape #7 = Output File