CSE 105 Theory of Computation
Post on 24-Feb-2016
43 Views
Preview:
DESCRIPTION
Transcript
CSE 105Theory of
Computation
Alexander TsiatasSpring 2012
Theory of Computation Lecture Slides by Alexander Tsiatas is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.Based on a work at http://peerinstruction4cs.org.Permissions beyond the scope of this license may be available at http://peerinstruction4cs.org.
CLOSURE PROOFSREVIEWING OUR EXAMPLE
Guaranteed to be on exams
From last time
• Are regular languages closed under union?
• a) True• b) False
Union of two regular languages• L1 = {w | b’s never appear after a’s}
• L2 = {w | length(w) is odd}
• L1 U L2 = {w | b’s never appear after a’s OR length(w) is odd}
Regular because there’s a DFA
Union of two regular languages
• L1 U L2 = {w | b’s never appear after a’s OR length(w) is odd}
• Does this prove that regular languages are closed under union?– (a) True or (b) False
It’s just one example
Thm. The class of regular languages is closed under the union operation.
• Proof:• Given: Two regular languages L1, L2.
• Want to show: L1 U L2 is regular.
• Because L1 and L2 are regular, we know there exist DFAs M1 = (Q1,Σ,δ1,q01,F1) and M2 = (Q2,Σ,δ2,q02,F2) that recognize L1 and L2. We construct a DFA M = (Q,Σ,δ,q0,F), s.t.:– Q = Q1 x Q2
– δ((x,y),c) = (δ1(x,c), δ2 (y,c)), for c in Σ and (x,y) in Q– q0 = (q01, q02)– F = {(x,y) in Q | x in F1 or y in F2}
• M recognizes L1 U L2.• Correctness: ___________________________________• A DFA recognizes L1 U L2, so L1 U L2 is regular, and the class of regular languages
is closed under union. Q.E.D.
Final form for your homework/test:
Could you come up with this, and write it correctly, in a short amount of time on an exam??
NONDETERMINISTIC FINITE AUTOMATANFA
They’re really good guessers!
What is deterministic?
DFA or NFA?
a) DFAb) NFAc) Both DFA and NFA
DFA or NFA?
a) DFAb) NFAc) Both DFA and NFA
Tracing in an NFA• What are the two sequences of
states on the input “100”?a) (q0,q0,q1,q2[accept]),
(q0,q1,q2[accept]) Final: Accept
b) (q0,q0,q1,q2[accept]), (q0,q1,q2[reject]) Final: Accept
c) (q0,q0,q1,q2[accept]), (q0,q1,q2[reject]) Final: Reject
d) (q0,q0,q1,q2[reject]), (q0,q1,q2[reject]) Final: Reject
“100”
b
DFAs vs. NFAs
DFAs• For each character in the
alphabet, exactly one transition leaving every state
• Computation is “deterministic,” i.e. determined by the input, i.e., the same every time for a given input
NFAs• There may be 0, 1, or many
transitions leaving a single state for the same input character
• Transition function defined on “epsilon” in addition to alphabet characters
• There may be several different ways to reach an accept state for a single string—the computation may not determined by the input (“nondeterministic”)
12
Formal Definition of an NFA
• An NFA M1 is defined as a 5-tuple as follows:
• M1 = (Q, Σ, δ, q0, F), where:– Q is a finite set of states– Σ is a finite set of characters, the alphabet– δ: Q x Σ -> P(Q), the transition function– q0, a member of Q, the start state– F, a subset of Q, the accept state(s)
NEED TO USE THIS FOR PROOFS---CANNOT MAKE GENERAL STATEMENTS BY DRAWING SPECIFIC
EXAMPLES!
WHAT IS the POWER SET?
13
Nondeterminism
• Because NFAs are non-deterministic, the outcome (accept/reject) of the computation may be different from run to run (i.e., isn’t determined by the input)
a) TRUEb) FALSE
REG. LANGS. CLOSED UNDER UNION(WHY NFAS ARE SO USEFUL IN PROOFS)
A different (easier!) way to prove what we just proved
Thm. The class of regular languages is closed under the union operation.
• Proof:• Given: Two regular languages L1, L2.
• Want to show: L1 U L2 is regular.
• Because L1 and L2 are regular, we know there exist DFAs M1 = (Q1,Σ,δ1,q01,F1) and M2 = (Q2,Σ,δ2,q02,F2) that recognize L1 and L2. We construct a DFA M = (Q,Σ,δ,q0,F), s.t.:– Q = Q1 x Q2
– δ((x,y),c) = (δ1(x,c), δ2 (y,c)), for c in Σ and (x,y) in Q– q0 = (q01, q02)– F = {(x,y) in Q | x in F1 or y in F2}
• M recognizes L1 U L2.• Correctness: ___________________________________• A DFA recognizes L1 U L2, so L1 U L2 is regular, and the class of regular languages
is closed under union. Q.E.D.
Final form for your homework/test:
Could you come up with this, and write it correctly, in a short amount of time on an exam??
Thm. The class of regular languages is closed under the union operation.
• Proof:• Given: Two regular languages L1, L2.
• Want to show: L1 U L2 is regular.
• Because L1 and L2 are regular, we know there exist DFAs M1 = (Q1,Σ,δ1,q01,F1) and M2 = (Q2,Σ,δ2,q02,F2) that recognize L1 and L2. We construct an NFA M = (Q,Σ,δ,q0,F), s.t.:– Q =– δ(x,c) =– q0 =– F =
• M recognizes L1 U L2.• Correctness: ___________________________________• An NFA recognizes L1 U L2, so L1 U L2 is regular, and the class of regular
languages is closed under union. Q.E.D.
Final form for your homework/test:
Could you come up with this, and write it correctly, in a short amount of time on an exam??
Back to our working example
Thm. The class of regular languages is closed under the union operation.
• Proof:• Given: Two regular languages L1, L2.
• Want to show: L1 U L2 is regular.
• Because L1 and L2 are regular, we know there exist DFAs M1 = (Q1,Σ,δ1,q01,F1) and M2 = (Q2,Σ,δ2,q02,F2) that recognize L1 and L2. We construct an NFA M = (Q,Σ,δ,q0,F), s.t.:– Q = – δ(x,c) =– q0 is a new state not in Q1 or Q2
– F =
• M recognizes L1 U L2.• Correctness: ___________________________________• An NFA recognizes L1 U L2, so L1 U L2 is regular, and the class of regular
languages is closed under union. Q.E.D.
Final form for your homework/test:
Discrepancy here NFA vs DFA
Thm. The class of regular languages is closed under the union operation.
• Because L1 and L2 are regular, we know there exist DFAs M1 = (Q1,Σ,δ1,q01,F1) and M2 = (Q2,Σ,δ2,q02,F2) that recognize L1 and L2. We construct an NFA M = (Q,Σ,δ,q0,F), s.t.:– Q = ?– δ(x,c) =– q0 is a new state not in Q1 or Q2
– F = ?
– a) Q = Q1 X Q2, F = F1 X F2
– b) Q = Q1 X Q2, F = {(x,y) in Q | x in F1 or y in F2}
– c) Q = Q1 U Q2, F = F1 U F2
– d) Q = Q1 U Q2 U {q0}, F = F1 U F2
Why q0 in {}?
Thm. The class of regular languages is closed under the union operation.
• Proof:• Given: Two regular languages L1, L2.
• Want to show: L1 U L2 is regular.
• Because L1 and L2 are regular, we know there exist DFAs M1 = (Q1,Σ,δ1,q01,F1) and M2 = (Q2,Σ,δ2,q02,F2) that recognize L1 and L2. We construct an NFA M = (Q,Σ,δ,q0,F), s.t.:– Q = Q1 U Q2
– δ(x,c) = ?– q0 is a new state not in Q1 or Q2
– F = F1 U F2
• M recognizes L1 U L2.• Correctness: ___________________________________• An NFA recognizes L1 U L2, so L1 U L2 is regular, and the class of regular
languages is closed under union. Q.E.D.
Final form for your homework/test:
Discrepancy here NFA vs DFA
Thm. The class of regular languages is closed under the union operation.
– Q = Q1 U Q2
– δ(x,c) = • δ1(x,c) if x in Q1
• δ2(x,c) if x in Q2
• {q01,q02} if x = q0 and c = ε• { } if x = q0 and c != ε
– q0 is a new state not in Q1 or Q2
– F = F1 U F2
Almost done: we have shown there is an NFA accepting L1 U L2. Does this mean it’s regular? Next class!
Zoomed in
Discrepancy here NFA vs DFA
top related