Turing Machines Part II

Similar documents
Turing Machines Part II

Announcements. Problem Set 6 due next Monday, February 25, at 12:50PM. Midterm graded, will be returned at end of lecture.

Turing Machines Part III

Turing Machines Part Two

Decidability and Undecidability

A Note on Turing Machine Design

Complexity Theory Part I

Announcements. Using a 72-hour extension, due Monday at 11:30AM.

Announcements. Final exam review session tomorrow in Gates 104 from 2:15PM 4:15PM Final Friday Four Square of the quarter!

Turing Machines Part One

Friday Four Square! Today at 4:15PM, Outside Gates

CS20a: Turing Machines (Oct 29, 2002)

CS5371 Theory of Computation. Lecture 12: Computability III (Decidable Languages relating to DFA, NFA, and CFG)

Announcements. Problem Set 7 graded; will be returned at end of lecture. Unclaimed problem sets and midterms moved!

Turing Machine Variants

CSE 105 THEORY OF COMPUTATION

More Turing Machines. CS154 Chris Pollett Mar 15, 2006.

Turing Machines A Turing Machine is a 7-tuple, (Q, Σ, Γ, δ, q0, qaccept, qreject), where Q, Σ, Γ are all finite

An example of a decidable language that is not a CFL Implementation-level description of a TM State diagram of TM

CS5371 Theory of Computation. Lecture 10: Computability Theory I (Turing Machine)

CS21 Decidability and Tractability

More About Turing Machines. Programming Tricks Restrictions Extensions Closure Properties

CS5371 Theory of Computation. Lecture 10: Computability Theory I (Turing Machine)

Computability Theory. CS215, Lecture 6,

V Honors Theory of Computation

CS4026 Formal Models of Computation

CPSC 421: Tutorial #1

Computational Models Lecture 8 1

Further discussion of Turing machines

Complexity Theory Part I

Computational Models Lecture 8 1

CSC 5170: Theory of Computational Complexity Lecture 4 The Chinese University of Hong Kong 1 February 2010

Harvard CS 121 and CSCI E-121 Lecture 14: Turing Machines and the Church Turing Thesis

Complexity Theory Part II

Notes for Comp 497 (Comp 454) Week 12 4/19/05. Today we look at some variations on machines we have already seen. Chapter 21

An example of a decidable language that is not a CFL Implementation-level description of a TM State diagram of TM

CSE 105 THEORY OF COMPUTATION

Turing Machines Part Three

CS20a: Turing Machines (Oct 29, 2002)

Most General computer?

CSE 105 THEORY OF COMPUTATION

The Church-Turing Thesis

MA/CSSE 474 Theory of Computation

Busch Complexity Lectures: Turing s Thesis. Costas Busch - LSU 1

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION

Decidability. Human-aware Robotics. 2017/10/31 Chapter 4.1 in Sipser Ø Announcement:

1 Unrestricted Computation

CSCE 551: Chin-Tser Huang. University of South Carolina

SCHEME FOR INTERNAL ASSESSMENT TEST 3

Computational Models Lecture 8 1

Turing machines and linear bounded automata

Theory of Computation (IX) Yijia Chen Fudan University

Foundations of

Decidable Languages - relationship with other classes.

CS 301. Lecture 18 Decidable languages. Stephen Checkoway. April 2, 2018

Turing Machines. 22c:135 Theory of Computation. Tape of a Turing Machine (TM) TM versus FA, PDA

UNIT-VIII COMPUTABILITY THEORY

Introduction to Turing Machines. Reading: Chapters 8 & 9

The Turing machine model of computation

Introduction to Languages and Computation

Chapter 7 Turing Machines

Pushdown Automata (2015/11/23)

CSCE 551: Chin-Tser Huang. University of South Carolina

CISC 4090: Theory of Computation Chapter 1 Regular Languages. Section 1.1: Finite Automata. What is a computer? Finite automata

CSE355 SUMMER 2018 LECTURES TURING MACHINES AND (UN)DECIDABILITY

Turing s Thesis. Fall Costas Busch - RPI!1

CISC4090: Theory of Computation

Recap DFA,NFA, DTM. Slides by Prof. Debasis Mitra, FIT.

Advanced topic: Space complexity

Turing Machines. Lecture 8

CS5371 Theory of Computation. Lecture 18: Complexity III (Two Classes: P and NP)

Final Exam Comments. UVa - cs302: Theory of Computation Spring < Total

Reducability. Sipser, pages

CSE 105 THEORY OF COMPUTATION. Spring 2018 review class

Automata & languages. A primer on the Theory of Computation. Laurent Vanbever. ETH Zürich (D-ITET) October,

Turing Machines. Fall The Chinese University of Hong Kong. CSCI 3130: Formal languages and automata theory

CSE 105 THEORY OF COMPUTATION

Turing Machines Part Three

CSE 2001: Introduction to Theory of Computation Fall Suprakash Datta

Decidable and undecidable languages

Mapping Reducibility. Human-aware Robotics. 2017/11/16 Chapter 5.3 in Sipser Ø Announcement:

CSE 105 THEORY OF COMPUTATION

NP, polynomial-time mapping reductions, and NP-completeness

Finite Automata Part Two

Theory of Computation

Turing Machines (TM) Deterministic Turing Machine (DTM) Nondeterministic Turing Machine (NDTM)

Problems, and How Computer Scientists Solve Them Manas Thakur

CS5371 Theory of Computation. Lecture 15: Computability VI (Post s Problem, Reducibility)

Undecidable Problems and Reducibility

Variants of Turing Machine (intro)

1 Showing Recognizability

Theory of Computation

Turing machines and linear bounded automata

Chapter 3: The Church-Turing Thesis

Chapter 8. Turing Machine (TMs)

Decidability (What, stuff is unsolvable?)

CS 361 Meeting 28 11/14/18

Turing Machines, diagonalization, the halting problem, reducibility

Finite Automata. Mahesh Viswanathan

Turing Machine Extensions, and Enumerators

Transcription:

Turing Machines Part II

Hello Hello Condensed Slide Slide Readers! Readers! This This lecture lecture is is almost almost entirely entirely animations that that show show how how each each Turing Turing machine machine would would be be built built and and how how the the machine machine works. works. I've I've tried tried to to condense condense the the slides slides here, here, but but I think think a lot lot got got lost lost in in the the conversion. I would would recommend reviewing reviewing the the full full slide slide deck deck to to walk walk through through each each animation animation and and see see how how the the overall overall constructions work. work. Hope Hope this this helps! helps! -Keith -Keith

Friday Four Square! Today at 4:15PM, Outside Gates

Announcements Problem Set 6 due next Monday, February 25, at 12:50PM. Email the staff list with questions! (cs103-win1213-staff@lists.stanford.edu)

The Turing Machine A Turing machine consists of three parts: A finite-state control that issues commands, an infinite tape for input and scratch space, and a tape head that can read and write a single tape cell. At each step, the Turing machine Writes a symbol to the tape cell under the tape head, changes state, and moves the tape head to the left or to the right.

, R 0 0, R 0 0, L 1 1, L Go to start 1, L Clear a 1 start, R, L 1, R q acc rej Check for 0 0, R Go to end 0 0, R 1 1, R, R q acc

Key Idea: Subroutines A subroutine of a Turing machine is a small set of states in the TM such that performs a small computation. Usually, a single entry state and a single exit state. Many very complicated tasks can be performed by TMs by breaking those tasks into smaller subroutines.

Turing Machine Memory Turing machines often contain many seemingly replicated states in order to store a finite amount of extra information. A Turing machine can remember one of k different constants by copying its states k times, once for each possible value, and wiring those states appropriately.

The Power of Turing Machines Turing machines can Perform standard arithmetic operations (addition, subtraction, multiplication, division, exponentiation, etc.) Manipulate lists of elements (searching, sorting, reversing, etc.) What else can Turing machines do?

Outline for Today Exhaustive Search A fundamentally different approach to designing Turing machines. Nondeterministic Turing Machines What does a Turing machine with Magic Superpowers look like? The Church-Turing Thesis Just how powerful are Turing machines?

The Hailstone Sequence Consider the following procedure, starting with some n N, where n > 0: If n = 1, you are done. If n is even, set n = n / 2. Otherwise, set n = 3n + 1. Repeat. Question: Given a number n, does this process terminate?

52 11 34 17 26 13 40 20 10 16 8 If If n = 1, 1, stop. stop. If If n is is even, even, set set n = n // 2. 2. Otherwise, set set n = 3n 3n + 1. 1. Repeat. Repeat. 5 4 2 1

The Hailstone Sequence Let Σ = {1} and consider the language L = { 1 n n > 0 and the hailstone sequence terminates for n }. Could we build a TM for L?

The Hailstone Turing Machine Intuitively, we can build a TM for the hailstone language as follows: the machine M does the following: If the input is ε, reject. While the input is not 1: If the input has even length, halve the length of the string. If the input has odd length, triple the length of the string and append a 1. Accept.

The Hailstone Turing Machine 1 1 1 1 1 If If the the input input is is ε, ε, reject. reject. While While the the input input is is not not 1: 1: If If the the input input has has even even length, length, halve halve the the length length of of the the string. string. If If the the input input has has odd odd length, length, triple triple the the length length of of the the string string and and append append a 1. 1. Accept. Accept.

Does this Turing machine always accept?

The Collatz Conjecture It is unknown whether this process will terminate for all natural numbers. In other words, no one knows whether the TM described in the previous slides will always stop running! The conjecture (claim) that this always terminates is called the Collatz Conjecture.

An Important Observation Unlike the other automata we've seen so far, Turing machines choose for themselves whether to accept or reject. It is therefore possible for a TM to run forever without accepting or rejecting.

Some Important Terminology Let M be a Turing machine. M accepts a string w if it enters the accept state when run on w. M rejects a string w if it enters the reject state when run on w. M loops infinitely (or just loops) on a string w if when run on w it enters neither the accept or reject state. M does not accept w if it either rejects w or loops infinitely on w. M does not reject w w if it either accepts w or loops on w. M halts on w if it accepts w or rejects w. does not reject does not accept Accept Loop Reject halts

The Language of a TM The language of a Turing machine M, denoted L( M), is the set of all strings that M accepts: L(M) = { w Σ* M accepts w } For any w L( M), M accepts w. For any w L( M), M does not accept w. It might loop forever, or it might explicitly reject. A language is called recognizable iff it is the language of some TM. Notation: RE is the set of all recognizable languages. L RE iff L is recognizable

A) Double the contents of the string after M. B) Replace III with U. C) Remove UU D) Append U if the string ends in I. MI A MII A MIIII D MIIIIU B MUIU A MUIUUIU C MUIIU

A Recognizable Language Let Σ = { M, I, U } and consider the language L = { w Σ* Using the four provided rules, it is possible to convert w into MU } Some strings are in this language (for example, MU L, MIII L, MUUU L). Some strings are not in this language (for example, I L MI L MIIU L). Could we build a Turing machine for L?

TM Design Trick: Worklists It is possible to design TMs that search over an infinite space using a worklist. Conceptually, the TM Finds all possible options one step away from the original input, Appends each of them to the end of the worklist, Clears the current option, then Grabs the next element from the worklist to process. This Turing machine is not guaranteed to halt.

A Sketch of the Turing Machine M I I To To recognize recognize L, L, our our TM TM M does does the the following: following: While While M has has not not found found the the string string MU: MU: M grabs grabs the the next next string string from from the the worklist. worklist. For For each each possible possible single single step, step, M performs performs that that step step and and appends appends the the result result to to the the worklist. worklist.

The Power of TMs The worklist approach makes that all of the following languages are recognizable: Any context-free language: simulate all possible production rules and see if the target string can be derived. Solving a maze use the worklist to explore all paths of length 0, 1, 2, until a solution is found. Determining whether a polynomial has an integer zeros: try 0, -1, +1, -2, +2, -3, +3, until a result is found.

Searching and Guessing

Nondeterminism Revisited Recall: One intuition for nondeterminism is perfect guessing. The machine has many options, and somehow magically knows which guess to make. With regular languages, we could simulate perfect guessing by building an enormous DFA to try out each option in parallel. Only finitely many possible options. With context-free languages, some NPDAs do not have corresponding DPDAs. Cannot simulate all possible stacks with just one stack.

Nondeterministic TMs A nondeterministic Turing machine (or NTM) is a variant on a Turing machine where there can be any number of transitions for a given state/tape symbol combination. Notation: Turing machine or TM refers to a deterministic Turing machine unless specified otherwise. The term DTM specifically represents a deterministic TM. The NTM accepts iff there is some possible series of choices it can make such that it accepts.

Questions for Now How can we build an intuition for nondeterministic Turing machines? What sorts of problems can we solve with NTMs? What is the relative power of NTMs and DTMs?

Designing NTMs When designing NTMs, it is often useful to use the approach of guess and check: Nondeterministically guess some object that can prove that w L. Deterministically verify that you have guessed the right object. If w L, there will be some guess that causes the machine to accept. If w L, then no guess will ever cause the machine to accept.

Composite Numbers A natural number n 2 is called composite iff it has a factor other than 1 and n. Equivalently: there are two natural numbers r 2 and s 2 such that rs = n. Let Σ = {1} and consider the language L = { 1 n n is composite } How might we design an NTM for L?

A Sketch of the NTM We saw how to build a TM that checks for correct multiplication. Have our NTM Nondeterministically guess two factors, then Deterministically run the multiplication TM. 1 1 1 1 1 1 1 1 1 1

A Sketch of the NTM We saw how to build a TM that checks for correct multiplication. Have our NTM Nondeterministically guess two factors, then Deterministically run the multiplication TM. 1 1 1 1 1 1 1 = 1 1 1 1 1 1 1 1 1 1

q rej, L start Go left 1 1, L Write = =, L Write 1 st 1 1, L Write 2 nd 1 1, L 1, L Guess 1s 1, L Write 2 nd 1 1, L Write 1 st 1, L Guess 1s 1, L, R run old TM 1 1 1 1 1 1 1 = 1 1 1 1 1 1 1 1 1 1

Designing NTMs Suppose that we have a CFG G. Can we build a TM M where L( M) = L( G)? Idea: Nondeterministically guess which productions ought to be applied. Keep the original string on the input tape. Keep guessing productions until no nonterminals remain. Accept if the resulting string matches.

A Sketch of the Construction ( ( ) ( ) ) S SS (S) ε

A Sketch of the Construction ( ( ) ( ) ) S S SS (S) ε

A Sketch of the Construction ( ( ) ( ) ) ( ( ) ( ) ) S SS (S) ε

The Story So Far We now have two different models of solving search problems: Build a worklist and explicitly step through all options. Use a nondeterministic Turing machine. Are these two approaches equivalent? That is, are NTMs and DTMs equal in power?

Review: Tree Computation One interpretation of nondeterminism is as a tree computation. Each node in the tree has children corresponding to each possible choice for the computation. The computation accepts if any node in tree enters an accepting state.

The Key Idea Idea: Simulate an NTM with a DTM by exhaustively searching the computation tree! Start at the root node and go layer by layer. If an accepting path is found, accept. If all paths reject, reject. Otherwise, keep looking. 0 1 2 3 4 5 6 7 8 9 10

Exploring the Tree Each node in this tree consists of one possible configuration that the NTM might be in at any time. What does this consist of? The contents of the tape. The position of the tape head. The current state.

Exploring the Tree Each node in this tree consists of one possible configuration that the NTM might be in at any time. What does this consist of? The contents of the tape. The position of the tape head. The current state. The The tape tape is is infinite!

q rej, L start Go left 1 1, L Write = =, L Write 1 st 1 1, L Write 2 nd 1 1, L 1, L Guess 1s 1, L Write 2 nd 1 1, L Write 1 st 1, L Guess 1s 1, L, R run old TM 1 1 1 1 1 1

q rej, L start Go left 1 1, L Write = =, L Write 1 st 1 1, L Write 2 nd 1 1, L 1, L Guess 1s 1, L Write 2 nd 1 1, L Write 1 st 1, L Guess 1s 1, L, R run old TM 1 1 1 1 1 1

q rej, L start Go left 1 1, L Write = =, L Write 1 st 1 1, L Write 2 nd 1 1, L 1, L Guess 1s 1, L Write 2 nd 1 1, L Write 1 st 1, L Guess 1s 1, L, R run old TM = 1 1 1 1 1 1

q rej, L start Go left 1 1, L Write = =, L Write 1 st 1 1, L Write 2 nd 1 1, L 1, L Guess 1s 1, L Write 2 nd 1 1, L Write 1 st 1, L Guess 1s 1, L, R run old TM 1 = 1 1 1 1 1 1

Instantaneous Descriptions At any instant in time, only finitely many cells on the TM's tape may be non-blank. An instantaneous description (ID) of a Turing machine is a string representation of the TM's tape, state, and tape head location. Only store the interesting part of the tape. There are many ways to encode an ID; we'll see one in a second.

Building an ID Start with the contents of the tape., R 0 0, R 0 0, L 1 1, L q 3 1, L q 2 start, R, L 1, R q acc q acc q 0 0, R q 1 0 0, R 1 1, R, R q acc 0 0 1 1 1

Building an ID Start with the contents of the tape., R 0 0, R Trim uninteresting blank symbols from the ends of the tape (though remember blanks under the tape head). 0 0, L 1 1, L start 1, R q acc q acc q 3 q 0 1, L, R 0, R q 2 q 1, L 0 0, R 1 1, R, R q acc 0 0 1 1 1

Building an ID Start with the contents of the tape., R 0 0, R Trim uninteresting blank symbols from the ends of the tape (though remember blanks under the tape head). Insert a marker for the tape head position that encodes the current state. 0 0, L 1 1, L start 1, R q acc q acc, R q 3 q 0 q acc 1, L, R 0, R q 2 q 1, L 0 0, R 1 1, R 0 0 q 1 1 1 1

Rehydrating IDs 1 1, L 1 1, L, R Start q over 7, L 1 1, R Clear q Marks 6 = =, L 1 1, R = =, R start Cross q off 0 1 1, R Go to q 1, R 1 1, R Find a q 1 2 q 3, R 1 1, R, L 1 1, L = =, L 1 1, L Go to q 5 1, L q 4 = =, R q rej 1 1 1 1 1 = 1 q 3 1 1 1 1

Rehydrating IDs 1 1, L 1 1, L, R Start q over 7, L 1 1, R Clear q Marks 6 = =, L 1 1, R = =, R start Cross q off 0 1 1, R Go to q 1, R 1 1, R Find a q 1 2 q 3, R 1 1, R, L 1 1, L = =, L 1 1, L Go to q 5 1, L q 4 = =, R q rej 1 1 1 1 1 = 1 1 1 1 1

Manipulating IDs Theorem: For any TM M, it is possible to build a second TM Sim M that, given a a tape containing an ID of M, simulates one step of M's computation. Proof sketch: Sim Sim M 's M 's tape. tape. 0 0 q 3 1 1 1

Manipulating IDs Theorem: For any TM M, it is possible to build a second TM Sim M that, given a a tape containing an ID of M, simulates one step of M's computation. Proof sketch: Sim Sim M 's M 's tape. tape. 0 0 q 3 1 1 1 At At this this point, point, Sim Sim M can M can remember remember that that it's it's seen seen state state q 3. 3. There There are are only only finitely finitely many many possible possible states. states.

Manipulating IDs Theorem: For any TM M, it is possible to build a second TM Sim M that, given a a tape containing an ID of M, simulates one step of M's computation. Proof sketch: Sim Sim M 's M 's tape. tape. 0 0 q 3 1 1 1 What What M would would see see here. here. 0 0 1 1 1

Manipulating IDs Theorem: For any TM M, it is possible to build a second TM Sim M that, given a a tape containing an ID of M, simulates one step of M's computation. Proof sketch: Sim Sim M 's M 's tape. tape. 0 0 q 3 1 1 1 0 1, L Sim Sim M now M now knows 1 0, L knows that that M is is in in state state q 3 and 3 and reading reading 1. q 1. 3 Sim Sim M can M can then then go go simulate simulate writing writing a a 0 and and moving moving left. left.

Manipulating IDs Theorem: For any TM M, it is possible to build a second TM Sim M that, given a a tape containing an ID of M, simulates one step of M's computation. Proof sketch: Sim Sim M 's M 's tape. tape. 0 q 3 0 0 1 1 0 1, L Sim Sim M now M now knows 1 0, L knows that that M is is in in state state q 3 and 3 and reading reading 1. q 1. 3 Sim Sim M can M can then then go go simulate simulate writing writing a a 0 and and moving moving left. left.

Manipulating IDs Theorem: For any TM M, it is possible to build a second TM Sim M that, given a a tape containing an ID of M, simulates one step of M's computation. Proof sketch: Sim Sim M 's M 's tape. tape. 0 q 3 0 0 1 1 What What M would would see see here. here. 0 0 0 1 1

Putting Everything Together Theorem: For any NTM N, there exists a DTM D such that L( N) = L( D). Proof sketch: D uses a worklist to exhaustively search over N's computation tree. 1 1 0 0 1, R 1 1, R, L 0 1, R 1 0, R, L start Go qleft 0 1 0, R q 1

Schematically Workspace Worklist of IDs To To simulate simulate the the NTM NTM N with with a DTM DTM D, D, we we construct construct D as as follows: follows: On On input input w, w, D converts converts w into into an an initial initial ID ID for for N starting starting on on w. w. While While D has has not not yet yet found found an an accepting accepting state: state: D finds finds the the next next ID ID for for N from from the the worklist. worklist. D copies copies this this ID ID once once for for each each possible possible transition. transition. D simulates simulates one one step step of of the the computation computation for for each each of of these these IDs. IDs. D copies copies these these IDs IDs to to the the back back of of the the worklist. worklist.

Why All This Matters The equivalence of NTMs and DTMs should be absolutely astounding! Nondeterministic TMs can magically guess a single correct option out of infinitely many options. Deterministic TMs can just zip back and forth across the tape. This suggests that Turing machines are extremely powerful.

Just how powerful are Turing machines?

Effective Computation An effective method of computation is a form of computation with the following properties: The computation consists of a set of steps. There are fixed rules governing how one step leads to the next. Any computation that yields an answer does so in finitely many steps. Any computation that yields an answer always yields the correct answer.

The Church-Turing Thesis states that Every effective method of computation is either equivalent to or weaker than a Turing machine. This is not a mathematical fact it's a hypothesis about the nature of computation.

Regular Languages DCFLs CFLs Problems Solvable by Any Feasible Computing Machine All Languages

Regular Languages DCFLs CFLs Languages Recognized by Turing Machines All Languages

Regular Languages DCFLs CFLs RE All Languages

Next Time Encodings How do we compute over arbitrary objects? The Universal Turing Machine Can TMs compute over themselves? The Limits of Turing Machines A language not in RE.