Presentation is loading. Please wait.

Presentation is loading. Please wait.

COSC 3340: Introduction to Theory of Computation

Similar presentations


Presentation on theme: "COSC 3340: Introduction to Theory of Computation"— Presentation transcript:

1 COSC 3340: Introduction to Theory of Computation
University of Houston Dr. Verma Lecture 4 Lecture 4 UofH - COSC Dr. Verma

2 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} Lecture 4 UofH - COSC Dr. Verma

3 NFA acceptance (contd.)
w is accepted by NFA M iff *(q0, w)  F is nonempty. L(M) = {w in * | w is accepted by M}. Lecture 4 UofH - COSC Dr. Verma

4 NFA vs. DFA Is NFA more powerful than DFA? Theorem: Proof Idea:
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.) Lecture 4 UofH - COSC Dr. Verma

5 Equivalent DFA construction.
NFA M = (Q, , , s, F) DFA M' = (Q', , , s', F') where: Q' = 2Q s' = {s} F' = {P | 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. Lecture 4 UofH - COSC Dr. Verma

6 Example: Equivalent DFA construction
NFA Lecture 4 UofH - COSC Dr. Verma

7 Equivalent DFA construction (contd.)
Lecture 4 UofH - COSC Dr. Verma

8 How to handle epsilon transitions?
Define e-closure of state q as *(q, ). notation: e-closure(q). Example: Lecture 4 UofH - COSC Dr. Verma

9 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. Lecture 4 UofH - COSC Dr. Verma

10 Example: Handling epsilon transitions.
Lecture 4 UofH - COSC Dr. Verma

11 DFA = ? Lecture 4 UofH - COSC Dr. Verma

12 Language Operations Concatenation. Notation: LL' 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. Lecture 4 UofH - COSC Dr. Verma

13 Closure properties of regular languages.
Previously we saw closure under  and . New: Regular languages are closed under Concatenation Kleene star Complement. Lecture 4 UofH - COSC Dr. Verma

14 L = {w in {a,b}* | w has even a’s }
Examples L = {w in {a,b}* | w has even a’s } Lecture 4 UofH - COSC Dr. Verma

15 Examples L' = {w in {a,b}* | w has at least one b} Lecture 4
UofH - COSC Dr. Verma

16 Construction for LL' L’’ = (K,,,s,F) K = K1  K2 s = s1 F = F2  = 1  2  F1 X {e} X {s2} Lecture 4 UofH - COSC Dr. Verma

17 L* and L'* L* M = (K, , , s, F) K = {s}  K1 F = {s}  F1  = 1  F1 X {e} X {s1}  {(s, e, s1)} Given M1 = (K1, , 1, s1, F1) L’* Lecture 4 UofH - COSC Dr. Verma

18 Complement of L and L' Complement of L Complement of L’ Lecture 4
UofH - COSC Dr. Verma

19 General Construction for Complement
DFA M = (K, , δ, s, F) K = K1 s = s1 F = 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. Lecture 4 UofH - COSC Dr. Verma


Download ppt "COSC 3340: Introduction to Theory of Computation"

Similar presentations


Ads by Google