Download presentation
Presentation is loading. Please wait.
1
CSE 105 theory of computation
Fall 2017
2
Today's learning goals Sipser 3.1,3.2
State and use the Church-Turing thesis. Describe several variants of Turing machines and informally explain why they are equally expressive. Explain what it means for a problem to be decidable. Justify the use of encoding. Give examples of decidable problems.
3
Review Consider the TM M = "On input w,
What's L(M)? Is M a decider? Review Consider the TM M = "On input w, Run M1 on w. If M1 rejects, rejects. If M1 accepts, go to 2. Run M2 on w. If M2 accepts, accept. If M2 rejects, reject." What kind of construction is this? Formal definition of TM Implementation-level description of TM High-level description of TM I don't know.
4
Describing TMs Sipser Section 3.3, p. 184
Formal definition: set of states, input alphabet, tape alphabet, transition function, state state, accept state, reject state. Implementation-level definition: English prose to describe Turing machine head movements relative to contents of tape. High-level description: Description of algorithm, without implementation details of machine. As part of this description, can "call" and run another TM as a subroutine.
5
Subroutines Consider the TM M = "On input w,
Run M1 on w. If M1 rejects, rejects. If M1 accepts, go to 2. Run M2 on w. If M2 accepts, accept. If M2 rejects, reject."
7
High-level description = Algorithm
Wikipedia "self-contained step-by-step set of operations to be performed" CSE 20 textbook "An algorithm is a finite sequence of precise instructions for performing a computation or for solving a problem." Each algorithm can be implemented by some Turing machine. Church-Turing thesis
8
All these models are equally expressive!
Variants of TMs Scratch work, copy input, … Multiple tapes Parallel computation Nondeterminism Printing vs. accepting Enumerators More flexible transition function Can "stay put" Can "get stuck" lots of examples in exercises to Chapter 3 Also: wildly different models λ-calculus, Post canonical systems, URMs, etc. All these models are equally expressive!
9
"Equally expressive" Model 1 is equally expressive as Model 2 iff
every language recognized by some machine in Model 1 is recognizable by some machine in Model 2, and every language recognized by some machine in Model 2 is recognizable by some machine in Model 1. e.g. DFA, NFA equally expressive Model 1
10
Nondeterministic TMs Sipser p. 178
Transition function Q x Γ P(Q x Γ x {L,R}) Sketch of proof of equivalence: To simulate nondeterministic machine: Use 3 tapes: "read-only" input tape, simulation tape, tape tracking nondeterministic braching.
11
Multitape TMs Sipser p. 176 As part of construction of machine, declare some finite number of tapes that are available. Input given on tape 1, rest of the tapes start blank. Each tape has its own read/write head. Transition function Q x Γk Q x Γk x {L,R}k Sketch of proof of equivalence: To simulate multiple tapes with one tape: Use delimiter to keep tape contents separate, use special symbol to indicate location of each read/write head.
12
Very different model: Enumerators Sipser p. 180
Produce language as output rather than recognize input Computation proceeds according to transition function. At any point, machine may "send" a string to printer. L(E) = { w | E eventually, in finite time, prints w} Finite State Control a b a b …. Unlimited work tape Printer
13
Set of all strings "For each Σ, there is an enumerator whose language is the set of all strings over Σ." Proof: High level description of E Standard string ordering: order strings first by length, then dictionary order. (p. 14)
14
Recognition and enumeration Sipser Theorem 3.21
Theorem: A language L is Turing-recognizable iff some enumerator enumerates L. Proof: Assume L is Turing-recognizable. WTS some enumerator enumerates it. Assume L is enumerated by some enumerator. WTS L is Turing-recognizable.
15
Recognition and enumeration Sipser Theorem 3.21
Assume the enumerator E enumerates L. WTS L is Turing-recognizable. We'll use E in a subroutine for high-level description of Turing machine M that will recognize L. Define M as follows: M = "On input w, Run E. Every time E prints a string, compare it to w. If w ever appears as the output of E, accept." Correctness?
16
Recognition and enumeration Sipser Theorem 3.21
Assume L is Turing-recognizable. WTS some enumerator enumerates it. Let M be a TM that recognizes L. We'll use M in a subroutine for high-level description of enumerator E. Let s1, s2, … be a list of all strings in Σ*. Define E as follows: E = "Repeat the following for each value of i=1,2,3… Run M for i steps on each input s1, …, si If any of the i computations of M accepts, print out the accepted string." Correctness?
17
M is TM that recognizes L
D is TM that decides L E is enumerator that enumerates L If string w is in L then … If string w is not in L then …
18
At start of CSE 105… Pick a model of computation
Classification: is input of type A or not? Decision problem { w | w is of type A} PRIME = { 2, 3, 5, 7, … } SORTED = { <1,3>, <-1, 8, 17> …} Decision problems are coded by sets of strings Pick a model of computation Study what problems it can solve Prove its limits
19
Encoding input for TMs Sipser p. 159
By definition, TM inputs are strings To define TM M: "On input w … .. … For inputs that aren't strings, we have to encode the object (represent it as a string) first Notation: <O> is the string that represents (encodes) the object O <O1, …, On> is the single string that represents the tuple of objects O1, …, On
20
Encoding inputs Payoff: problems we care about can be reframed as languages of strings e.g. "Recognize whether a string is a palindrome." { w | w in {0,1}* and w = wR } e.g. "Check whether a string is accepted by a DFA." { <B,w> | B is a DFA over Σ, w in Σ*, and w is in L(B) } e.g. "Check whether the language of a PDA is infinite." { <A> | A is a PDA and L(A) is infinite}
21
Computational problems
A computational problem is decidable iff the language encoding the problem instances is decidable
22
Computational problems
Sample computational problems and their encodings: ADFA "Check whether a string is accepted by a DFA." { <B,w> | B is a DFA over Σ, w in Σ*, and w is in L(B) } EDFA "Check whether the language of a DFA is empty." { <A> | A is a DFA over Σ, L(A) is empty } EQDFA "Check whether the languages of two DFA are equal." { <A, B> | A and B are DFA over Σ, L(A) = L(B)} FACT: all of these problems are decidable!
23
Proving decidability Claim: ADFA is decidable Proof: WTS that { <B,w> | B is a DFA over Σ, w in Σ*, and w is in L(B) } is decidable. Step 1: construction How would you check if w is in L(B)?
24
Proving decidability Define TM M1 by: M1 = "On input <B,w>
Check whether B is a valid encoding of a DFA and w is a valid input for B. If not, reject. Simulate running B on w (by keeping track of states in B, transition function of B, etc.) When the simulation ends, by finishing to process all of w, check current state of B: if it is final, accept; if it is not, reject."
25
Proving decidability Step 1: construction
Define TM M1 by M1 = "On input <B,w> Check whether B is a valid encoding of a DFA and w is a valid input for B. If not, reject. Simulate running B on w (by keeping track of states in B, transition function of B, etc.) When the simulation ends, by finishing to process all of w, check current state of B: if it is final, accept; if it is not, reject." Step 2: correctness proof WTS (1) L(M1) = ADFA and (2) M1 is a decider.
26
Proving decidability Claim: EDFA is decidable Proof: WTS that { <A> | A is a DFA over Σ, L(A) is empty } is decidable.
27
Proving decidability Claim: EDFA is decidable Proof: WTS that { <A> | A is a DFA over Σ, L(A) is empty } is decidable. e.g.< > is in EDFA ; < > is not in EDFA TM deciding EDFA should accept and should reject
28
Proving decidability Claim: EDFA is decidable Proof: WTS that { <A> | A is a DFA over Σ, L(A) is empty } is decidable. Idea: give high-level description Step 1: construction What condition distinguishes between DFA that accept *some* string and those that don't accept *any*?
29
Proving decidability Claim: EDFA is decidable Proof: WTS that { <A> | A is a DFA over Σ, L(A) is empty } is decidable. Idea: give high-level description Step 1: construction What condition distinguishes between DFA that accept *some* string and those that don't accept *any*? Breadth first search in transition diagram to look for path from state state to an accepting state
30
Proving decidability Claim: EDFA is decidable
Proof: WTS that { <A> | A is a DFA over Σ, L(A) is empty } is decidable. Idea: give high-level description Step 1: construction Define TM M2 by: M2 = "On input <A>: Check whether A is a valid encoding of a DFA; if not, reject. Mark the start state of A. Repeat until no new states get marked: Loop over states of A and mark any unmarked state that has an incoming edge from a marked state. If no final state of A is marked, accept; otherwise, reject.
31
Proving decidability Step 1: construction
Define TM M2 by: M2 = "On input <A>: Check whether A is a valid encoding of a DFA; if not, reject. Mark the state state of A. Repeat until no new states get marked: Loop over states of A and mark any unmarked state that has an incoming edge from a marked state. If no final state of A is marked, accept; otherwise, reject. Step 2: correctness proof WTS (1) L(M2) = EDFA and (2) M2 is a decider.
32
Proving decidability Will we be able to simulate A and B?
Claim: EQDFA is decidable Proof: WTS that { <A, B> | A, B are DFA over Σ, L(A) = L(B) } is decidable. Idea: give high-level description Step 1: construction Will we be able to simulate A and B? What does set equality mean? Can we use our previous work?
33
Proving decidability Will we be able to simulate A and B?
Claim: EQDFA is decidable Proof: WTS that { <A, B> | A, B are DFA over Σ, L(A) = L(B) } is decidable. Idea: give high-level description Step 1: construction Will we be able to simulate A and B? What does set equality mean? Can we use our previous work?
34
Proving decidability Very high-level:
Claim: EQDFA is decidable Proof: WTS that { <A, B> | A, B are DFA over Σ, L(A) = L(B) } is decidable. Idea: give high-level description Step 1: construction Very high-level: Build new DFA recognizing symmetric difference of A, B. Check if this set is empty.
35
Proving decidability Claim: EQDFA is decidable
Proof: WTS that { <A, B> | A, B are DFA over Σ, L(A) = L(B) } is decidable. Idea: give high-level description Step 1: construction Define TM M3 by: M3 = "On input <A,B>: Check whether A,B are valid encodings of DFA; if not, reject. Construct a new DFA, D, from A,B using algorithms for complementing, taking unions of regular languages such that L(D) = symmetric difference of A and B. Run machine M2 on <D>. If it accepts, accept; if it rejects, reject."
36
Proving decidability Step 1: construction
Define TM M3 by: M3 = "On input <A,B>: Check whether A,B are valid encodings of DFA; if not, reject. Construct a new DFA, D, from A,B using algorithms for complementing, taking unions of regular languages such that L(D) = symmetric difference of A and B. Run machine M2 on <D>. If it accepts, accept; if it rejects, reject." Step 2: correctness proof WTS (1) L(M3) = EQDFA and (2) M3 is a decider.
37
Techniques Sipser 4.1 Subroutines: can use decision procedures of decidable problems as subroutines in other algorithms ADFA EDFA EQDFA Constructions: can use algorithms for constructions as subroutines in other algorithms Converting DFA to DFA recognizing complement (or Kleene star). Converting two DFA/NFA to one recognizing union (or intersection, concatenation). Converting NFA to equivalent DFA. Converting regular expression to equivalent NFA. Converting DFA to equivalent regular expression.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.