Actually talking about Turing machines this time

Similar documents
ECS 120 Lesson 16 Turing Machines, Pt. 2

Enumerations and Turing Machines

CSE 105 THEORY OF COMPUTATION

Computer Sciences Department

Closure Properties of CFLs; Introducing TMs. CS154 Chris Pollett Apr 9, 2007.

Theory of Computation, Homework 3 Sample Solution

Turing Machines. A transducer is a finite state machine (FST) whose output is a string and not just accept or reject.

JNTUWORLD. Code No: R

CT32 COMPUTER NETWORKS DEC 2015

Introduction to Computers & Programming

TAFL 1 (ECS-403) Unit- V. 5.1 Turing Machine. 5.2 TM as computer of Integer Function

CSE 105 THEORY OF COMPUTATION

Decidable Problems. We examine the problems for which there is an algorithm.

(a) R=01[((10)*+111)*+0]*1 (b) ((01+10)*00)*. [8+8] 4. (a) Find the left most and right most derivations for the word abba in the grammar

CS21 Decidability and Tractability

R10 SET a) Construct a DFA that accepts an identifier of a C programming language. b) Differentiate between NFA and DFA?

Multiple Choice Questions

pp Variants of Turing Machines (Sec. 3.2)

CSE 105 THEORY OF COMPUTATION

CSE 105 THEORY OF COMPUTATION

Final Course Review. Reading: Chapters 1-9

I have read and understand all of the instructions below, and I will obey the Academic Honor Code.

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2016

CISC 4090 Theory of Computation

UNIT I PART A PART B


(Refer Slide Time: 0:19)

Variants of Turing Machines

Outline. Language Hierarchy

Theory of Computation p.1/?? Theory of Computation p.2/?? A Turing machine can do everything that any computing

Turing Machines, continued

DHANALAKSHMI SRINIVASAN INSTITUTE OF RESEARCH AND TECHNOLOGY SIRUVACHUR, PERAMBALUR DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

1. (10 points) Draw the state diagram of the DFA that recognizes the language over Σ = {0, 1}

PDA s. and Formal Languages. Automata Theory CS 573. Outline of equivalence of PDA s and CFG s. (see Theorem 5.3)

Theory of Computations Spring 2016 Practice Final Exam Solutions

Universal Turing Machine Chomsky Hierarchy Decidability Reducibility Uncomputable Functions Rice s Theorem Decidability Continued

CSC-461 Exam #2 April 16, 2014

Theory of Languages and Automata

QUESTION BANK. Unit 1. Introduction to Finite Automata

Equivalence of NTMs and TMs

A Characterization of the Chomsky Hierarchy by String Turing Machines

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2018

Theory of Computation Dr. Weiss Extra Practice Exam Solutions

CS5371 Theory of Computation. Lecture 8: Automata Theory VI (PDA, PDA = CFG)

Theory Bridge Exam Example Questions Version of June 6, 2008

Recursively Enumerable Languages, Turing Machines, and Decidability

QUESTION BANK. Formal Languages and Automata Theory(10CS56)

From Theorem 8.5, page 223, we have that the intersection of a context-free language with a regular language is context-free. Therefore, the language

CpSc 421 Final Solutions

Ambiguous Grammars and Compactification

Limitations of Algorithmic Solvability In this Chapter we investigate the power of algorithms to solve problems Some can be solved algorithmically and

14.1 Encoding for different models of computation

CSE 105 THEORY OF COMPUTATION

Formal Languages and Automata

Skyup's Media. PART-B 2) Construct a Mealy machine which is equivalent to the Moore machine given in table.

Finite Automata. Dr. Nadeem Akhtar. Assistant Professor Department of Computer Science & IT The Islamia University of Bahawalpur

Chapter Seven: Regular Expressions. Formal Language, chapter 7, slide 1

Last lecture CMSC330. This lecture. Finite Automata: States. Finite Automata. Implementing Regular Expressions. Languages. Regular expressions

T.E. (Computer Engineering) (Semester I) Examination, 2013 THEORY OF COMPUTATION (2008 Course)

Limits of Computation p.1/?? Limits of Computation p.2/??

Midterm Exam II CIS 341: Foundations of Computer Science II Spring 2006, day section Prof. Marvin K. Nakayama

Models of Computation II: Grammars and Pushdown Automata

Learn Smart and Grow with world

Source of Slides: Introduction to Automata Theory, Languages, and Computation By John E. Hopcroft, Rajeev Motwani and Jeffrey D.

1. [5 points each] True or False. If the question is currently open, write O or Open.

TOPIC PAGE NO. UNIT-I FINITE AUTOMATA

Chapter 14: Pushdown Automata

University of Nevada, Las Vegas Computer Science 456/656 Fall 2016

Theory of Computation

Automata Theory TEST 1 Answers Max points: 156 Grade basis: 150 Median grade: 81%

Turing Machine Languages

Finite Automata Part Three

Rice s Theorem and Enumeration

Name: CS 341 Practice Final Exam. 1 a 20 b 20 c 20 d 20 e 20 f 20 g Total 207

Theory of Computations Spring 2016 Practice Final

Automata Theory CS S-FR Final Review

LECTURE NOTES THEORY OF COMPUTATION

Lexical Analysis. Lecture 2-4

Computability and Complexity

Lexical Analysis. Implementation: Finite Automata

Finite automata. We have looked at using Lex to build a scanner on the basis of regular expressions.

Languages and Automata

CS402 - Theory of Automata Glossary By

Context-Free Grammars

6.045J/18.400J: Automata, Computability and Complexity. Practice Quiz 2

LECTURE NOTES THEORY OF COMPUTATION

CS 44 Exam #2 February 14, 2001

Regular Languages and Regular Expressions

Theory of Programming Languages COMP360

CS210 THEORY OF COMPUTATION QUESTION BANK PART -A UNIT- I

Lecture 18: Turing Machines

CS 125 Section #4 RAMs and TMs 9/27/16

ECS 120 Lesson 7 Regular Expressions, Pt. 1

Regular Languages (14 points) Solution: Problem 1 (6 points) Minimize the following automaton M. Show that the resulting DFA is minimal.

Midterm I - Solution CS164, Spring 2014

Lec-5-HW-1, TM basics

Chapter Seven: Regular Expressions

Definition 2.8: A CFG is in Chomsky normal form if every rule. only appear on the left-hand side, we allow the rule S ǫ.

Finite Automata Part Three

1. Provide two valid strings in the languages described by each of the following regular expressions, with alphabet Σ = {0,1,2}.

Transcription:

Actually talking about Turing machines this time 10/25/17 (Using slides adapted from the book)

Administrivia HW due now (Pumping lemma for context-free languages) HW due Friday (Building TMs) Exam 2 out Friday No class Monday 10/30 Open book on context free languages Due middle of the following week Qs: Allowed to build either grammar or stack machine, what language does this machine accept?

TM for a n b n c n : Recall: Turing machines

The Tuple

The 7-Tuple A TM M is a 7-tuple M = (Q, Σ, Γ, δ, B, q 0, F): Q is the finite set of states Σ is the input alphabet Γ is the tape alphabet, with Σ Γ and Q Γ = {} δ (Q Γ Q Γ {L,R}) is the transition function B is the blank symbol, B Γ, B Σ q 0 Q is the start state F Q is the set of accepting states

The Transition Function δ (Q Γ Q Γ {L,R}) That is, δ(q,x) = (p,y,d), where Input q is the current state Input X is the symbol at the current head position Output p is the next state Output Y is the symbol to write at the current head position (over the X) Output D is a direction, L or R, to move the head δ is deterministic: at most one move from each configuration δ need not be defined over its whole domain, so there may be some q and X with no move δ(q,x)

TM Instantaneous Description An instantaneous description (ID) for a TM is a string xqy: x Γ* represents the tape to the left of the head q is the current state y Γ* represents the tape at and to the right of the head ID strings are normalized as follows: In x, leading Bs are omitted, except when the left part is all Bs, in which case x = B In y, trailing Bs are omitted, except when the right part is all Bs, in which case y = B We define a function idfix(z) that normalizes an ID string z in this way, removing (or adding) leading and trailing Bs as necessary

A One-Move Relation On IDs We will write I J if I is an ID and J is an ID that follows from I after one move of the TM Technically: is a relation on IDs, defined by the δ function for the TM Then for any x Γ*, c Γ, q Q, a Γ, and y Γ*, we have two kinds of moves: Left moves: if δ(q,a) = (p,b,l) then xcqay idfix(xpcby) Right moves: if δ(q,a) = (p,b,r) then xcqay idfix(xcbpy)

Zero-Or-More-Move Relation As we did with grammars, NFAs, and stack machines, we extend this to a zero-ormore-move * Technically, * is a relation on IDs, with I * J if and only if there is a sequence of zero or more relations that starts with I and ends with J Note this is reflexive by definition: we always have I * I by a sequence of zero moves

The Language Accepted By A TM idfix(q 0 x) is the initial ID of M, given input x Σ* (idfix(q 0 x) = Bq 0 x if x ε, or Bq 0 xb if x = ε) Then x is accepted if and only if M has a sequence of zero or moves from idfix(q 0 x) to some ID in an accepting state Regardless of what is left on the tape Regardless of the final position of the head Technically, L(M) = {x Σ* idfix(q 0 x) * ypz for some p F}

Three Possible Outcomes We've seen that a TM accepts if it ever reaches an accepting state We'll say that it halts in that case: It halts and accepts even if there are transitions leaving the accepting state, since they have no effect on L(M) It also halts if it gets stuck: It halts and rejects if does not reach an accepting state, but gets into an ID I with no J for which I J And there is a third possibility: it runs forever: It always has a move, but never reaches an accepting state

Example: M = ({q, r, s}, {0,1}, {0,1,B}, δ, B, q, {s}): δ(q,1) = (r,1,r) δ(q,0) = (s,0,r) δ(r,b) = (q,b,l) Given input 0, M halts and accepts: Bq0 0sB In fact, L(M) = L(0(0+1)*) Given input ε, M halts and rejects: BqB? Given input 1, M runs forever: Bq1 1rB Bq1 1rB Bq1 1rB

Running Forever We can make a TM for L(0(0+1)*) that halts on all inputs In general, though, it is not always possible for TMs to avoid infinite loops, as we will prove in later chapters The risk of running forever is the price TMs pay for their great power

Earlier Infinite Loops NFAs could in some sense run forever, since they can contain cycles of ε- transitions Same with stack machines But these were always avoidable: Any NFA could be converted into one without cycles of ε-transitions (in fact, into a DFA, without ε-transitions at all) Similarly, one can show that for any CFL there is a stack machine without cycles of ε-transitions For TMs they are not avoidable

Three-Way Partition The three possible TM outcomes partition Σ* into three subsets So instead of just defining L(M), a TM really defines three languages: The language accepted by a TM: L(M) = {x Σ* idfix(q 0 x) * ypz for some p F} The language rejected by a TM: R(M) = {x Σ* x L(M) and there is some ID I with idfix(q 0 x) * I and no J with I J} The language on which a TM runs forever: F(M) = {x Σ* x L(M) and x R(M)}

Recursive and RE A TM M is a total TM if and only if F(M) = {} A recursively enumerable (RE) language is one that is L(M) for some TM M A recursive language is one that is L(M) for some total TM M We will see that these two sets of languages are not the same; some languages are RE but not recursive The names are odd, but standard: RE and recursive languages were identified in mathematical studies of computability using recursive function theory

{xcx x {a,b}*} Not context-free, as we've seen Can a TM accept it?

{xcx x {a,b}*} Not context-free, as we've seen A TM for this language can work by checking each symbol in the first x against the corresponding symbol in the second x To keep track of where it is, it will mark those symbols that have already been checked That is, it will overwrite them with marked versions of the same symbols, for instance by overwriting a with a'

A TM For {xcx x {a,b}* }

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Example: abacaba B a b a c a b a B

Two General Techniques Marking: A cell can be marked by overwriting the symbol with a marked version of that symbol Our input alphabet was {a,b,c}, but the tape alphabet was {a,b,c,a',b',b} Remembering A TM can use states to record any finite information Ours remembered whether a or b was seen in the first half, using two paths of states

A 3-Tape TM Simulations are easier if we have a 3-tape TM Like the basic model, but with three tapes, each with an independent read/write head Basic model: δ(q,x) = (p,y,d) Two inputs: current state and symbol at head Three outputs: new state, symbol to write, and direction 3-tape model: δ(q,x 1,X 2,X 3 ) = (p,y 1,D 1,Y 2,D 2,Y 2,D 3 ) Separate read, write, and direction for each of the three heads Otherwise, the same

Same Power The 3-tape model is easier to program, but no more powerful than the basic model For any 3-tape TM we can construct an equivalent basic TM We can encode all the information from the 3 tapes (with their head positions) in a single tape, using an enlarged alphabet

Image the three tapes side by side, each with its current head position Encode all this information on one tape, using triples as symbols in the enlarged tape alphabet:

New Tape Alphabet Each new symbol is a triple Marked elements in the triple indicate head positions For example, (a,p,l) is a symbol of the new tape alphabet, used to show a in this position on the first tape p in this position on the second tape l in this position on the third tape First head at this position, other two elsewhere

Alphabet Construction To make the expanded tape alphabet: First double the alphabet by the adding a marked version of each symbol Γ = {a,b} would become Γ 2 = {a,a',b,b'} Then cube that alphabet by forming 3-tuples Γ 2 = {a,a',b,b'} would become Γ 3 = (Γ 2 Γ 2 Γ 2 ) = {(a,a,a), (a,a,a'), (a,a,b), (a,a,b'), (a,a',a), (a,a',a'),...} The result is the tape alphabet for the 1-tape TM

1-Tape TM Construction Given any 3-tape M 3, construct a 1-tape M 1 Use the alphabet of triples, with (B,B,B) as blank To simulate a move of M 3, M 1 makes two passes: A left-to-right pass, collecting the three input symbols. Keep track (using state) of M 3 s state and input symbols. Now if M 3 accepts, halt and accept; if M 3 rejects, halt and reject. A right-to-left pass, carrying out M 3 s actions at each of its three head positions (writing and moving marks). Leave the head at the leftmost mark and go to step 1. Far more states, symbols, and moves than M 3 But for any input string, M 1 s outcome matches M 3 s

Theorem 16.8 For any given partition of a Σ* into three subsets L, R, and F, there is a three-tape TM M 3 with L(M 3 ) = L, R(M 3 ) = R, and F(M 3 ) = F, if and only if there is a one-tape TM M 1 with L(M 1 ) = L, R(M 1 ) = R, and F(M 1 ) = F. Proof sketch: Given any 3-tape TM we can construct a 1-tape TM that simulates it, as just outlined Given any 1-tape TM we can construct a 3-tape TM that simulates it, simply by not using two of its tapes

Automata As Input Our goal is to make TMs that can simulate other automata, given as input TMs can only take strings as input, so we need a way to encode automata as strings We ll start with the simplest: DFAs

DFAs Encoded Using {0,1} The DFA s alphabet and strings: Number Σ arbitrarily as Σ = {σ 1, σ 2,...} Use the string 1 i to represent symbol σ i Use 0 as a separator for strings For example, if Σ = {a, b}, let a = σ 1 and b = σ 2 ; then abba is represented by 101101101 The DFA s states: Number Q = {q 1, q 2,...}, making q 1 the start state and numbering the others arbitrarily Use the string 1 i to represent symbol q i

DFA Encoding, Continued The DFA s transition function: Encode each transition δ(q i,σ j ) = q k as a string 1 i 01 j 01 k Encode the entire transition function as a list of such transitions, in any order, using 0 as a separator For example, Numbering a as σ 1 and b as σ 2, δ is δ(q 1,σ 1 ) = q 2 δ(q 1,σ 2 ) = q 1 δ(q 2,σ 1 ) = q 1 δ(q 2,σ 2 ) = q 2 That is encoded as: 101011 0 101101 0 110101 0 11011011

DFA Encoding, Continued The DFA s set of accepting states: We already encode each state q i as 1 i Use a list of state codes, separated by 0s Finally, the complete DFA: Transition-function string, 00, accepting-state string: 101011 0 101101 0 110101 0 11011011 00 11

Simulating a DFA We have a way to represent a DFA as a string over {0,1} Now, we ll show how to construct a TM that simulates any given DFA Given the encoded DFA as input, along with an encoded input string for it Decide whether the given DFA accepts the given string We ll use a 3-tape TM

3-Tape DFA Simulator First tape holds the DFA being simulated Second tape holds the DFA s input string Third tape hold the DFA s current state q i, encoded as 1 i as usual

Example: Initial configuration, in the start state, on input abab: Each simulated move performs one state transition and erases one encoded input symbol

First move on abab: read a, go to state q 2

Strategy Step 1: handle termination: If the second tape is not empty, go to step 2 If it is empty, the DFA is done; search the list of accepting states (tape 1) for a match with the final state (tape 3) If found, halt and accept; if not, halt and reject Step 2: look up move: Search tape 1 for the move 1 i 01 j 01 k that applies now, where 1 i matches the current state (tape 3) and 1 j matches the current input symbol (tape 2) Step 3: execute move: Replace the 1 i on the tape 3 with 1 k Write B over the 1 j (and any subsequent 0) on tape 2 Go to step 1

An Easy Simulation That was no challenge for our 3-tape TM Used only a fixed, finite portion of each tape There is (by Theorem 16.8) a 1-tape TM with the same behavior One detail we re skipping: what should the TM do with ill-formed inputs? If we specified behavior for ill-formed inputs, there would have to be an extra initial pass to verify the proper encoding of a DFA and its input

Simulating Other Automata We can use the same 3-tape technique to simulate all our other automata Trickier for nondeterministic models (NFAs and stack machines): our deterministic TM must search all sequences of moves Relatively straightforward for deterministic automata

Language Categories Proofs of these inclusions can be constructed by having total TMs simulate other automata