190 likes | 200 Views
Learn about the formal definitions of NFA, NFA acceptance, DFA equivalence, language operations like concatenation and Kleene star, with examples and constructions. Understand closure properties and complement operations of regular languages.
E N D
COSC 3340: Introduction to Theory of Computation University of Houston Dr. Verma Lecture 4 UofH - COSC 3340 - Dr. Verma
Formal definition of NFA acceptance • Define *(q, w) as a set of states: p ε*(q, w) if there is a directed path from q to p labeled w • Example: consider NFA of Lecture 3 • *(q0, 1) = ? • Ans: {q0, q1} • *(q0, 11) = ? • Ans: {q0, q1, q2} UofH - COSC 3340 - Dr. Verma
NFA acceptance (contd.) • w is accepted by NFA M iff *(q0, w) F isnonempty. • L(M) = {w in * | w is accepted by M}. UofH - COSC 3340 - Dr. Verma
NFA vs. DFA • Is NFA more powerful than DFA? • Ans: No. • Theorem: • For every NFA M there is an equivalent DFA M' • Proof Idea: • NFA is in a set of states at any point during reading a string. • DFA will use a lot of states to keep track of this. • Important Assumption: • No transition labeled by epsilon. (Will get rid of this assumption later.) UofH - COSC 3340 - Dr. Verma
Equivalent DFA construction. • NFA M = (Q, , , s, F) • DFA M' = (Q', , , s', F') where: • Q' = 2Q • s' = {s} • F' = {P ε Q' | P F is nonempty} • ({p1, p2, …, pm}, ) = *(p1, ) *(p2, ) ... *(pm, ) i.e. find all the states that can be reached on from all the NFA states in a DFA state. UofH - COSC 3340 - Dr. Verma
Example: Equivalent DFA construction NFA UofH - COSC 3340 - Dr. Verma
Equivalent DFA construction (contd.) UofH - COSC 3340 - Dr. Verma
How to handle epsilon transitions? • Define e-closure of state q as *(q, ). • notation: e-closure(q). • Example: UofH - COSC 3340 - Dr. Verma
Handling epsilon transitions (contd.) • Extend e-closure to sets of states by: • e-closure({s1, ... , sm}) = e-closure(s1) ... e-closure(sm) Now let s' = e-closure({s}). and, ({p1,..., pm}, ) = e-closure(*(p1, )) ... e-closure(*(pm, )) to complete construction of DFA. UofH - COSC 3340 - Dr. Verma
Example: Handling epsilon transitions. UofH - COSC 3340 - Dr. Verma
DFA = ? UofH - COSC 3340 - Dr. Verma
Language Operations • Concatenation. Notation: LL' or just LL' • L L' = {uv | u in L, v in L'}. • Kleene Star. Notation: L* • L* = { w in * | w = w1...wk for some k >= 0 and each wi in L}. • Examples: if L = {a(2n+1) | n >= 0}. L' = {b(2n) | n > = 0}. • LL' = ? • Ans: LL' = {a(2n+1) b(2m)| n, m > = 0} • L* = ? • Ans: {an | n >= 0} • U, ., * are called regular operations. UofH - COSC 3340 - Dr. Verma
Closure properties of regular languages. • Previously we saw closure under and . • New: Regular languages are closed under • Concatenation • Kleene star • Complement. UofH - COSC 3340 - Dr. Verma
Examples L = {w in {a,b}* | w has even a’s } UofH - COSC 3340 - Dr. Verma
Examples L' = {w in {a,b}* | w has at least one b} UofH - COSC 3340 - Dr. Verma
Construction for LL' L’’ = (K,,,s,F)K = K1 K2s = s1F = F2 = 1 2 F1 X {e} X {s2} UofH - COSC 3340 - Dr. Verma
L* and L'* L* M = (K, , , s, F)K = {s} K1F = {s} F1 = 1 F1 X {e} X {s1} {(s, e, s1)} Given M1 = (K1, , 1, s1, F1) L’* UofH - COSC 3340 - Dr. Verma
Complement of L and L' Complement of L Complement of L’ UofH - COSC 3340 - Dr. Verma
General Construction for Complement DFA M = (K, , δ, s, F)K = K1s = s1F = K - F1δ = δ1 L(M) = Complement of L(M1) DFA M1 = (K1, , δ1, s1, F1) Exercise: Will this construction work for NFAs? Explain your answer. UofH - COSC 3340 - Dr. Verma