Download presentation
Presentation is loading. Please wait.
1
1 FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY 15-453 (For next time: Read Chapter 1.3 of the book)
2
2 1 0 0 q1q1 q2q2 q3q3 q4q4 ε
3
3 Q is the set of states Σ is the alphabet : Q Σ ε → 2 Q is the transition function Q 0 Q is the set of start states F Q is the set of accept states A non-deterministic finite automaton (NFA) is a 5-tuple N = (Q, Σ, , Q 0, F) 2 Q is the set of subsets of Q and Σ ε = Σ {ε}
4
4 1 0 0 q1q1 q2q2 q3q3 q4q4 N = (Q, Σ, , Q 0, F) Q = {q 1, q 2, q 3, q 4 } Σ = {0,1} Q 0 = {q 1, q 2 } F = {q 4 } Q ε 0 1ε q1q1 q2q2 q3q3 q4q4
5
5 1 0 0 q1q1 q2q2 q3q3 q4q4 N = (Q, Σ, , Q 0, F) Q = {q 1, q 2, q 3, q 4 } Σ = {0,1} Q 0 = {q 1, q 2 } F = {q 4 } Q 0 1ε q1q1 {q 3 } q2q2 {q 4 } q3q3 {q2}{q2} q4q4 ε
6
6 1 0 0 q1q1 q2q2 q3q3 q4q4 N = (Q, Σ, , Q 0, F) Q = {q 1, q 2, q 3, q 4 } Σ = {0,1} Q 0 = {q 1, q 2 } F = {q 4 } Q ε, 0 0 1ε q1q1 {q 3 } q2q2 {q 4 } q3q3 {q 2,q 4 } {q2}{q2} q4q4 00 L(N)? 01 L(N)?
7
7 Let w Σ* and suppose w can be written as w 1... w n where w i Σ ε (ε is viewed as representing the empty string ) Then N accepts w if there are r 0, r 1,..., r n Q such that 1.r 0 Q 0 2.r i+1 (r i, w i+1 ) for i = 0,..., n-1, and 3.r n F A language L is recognized by an NFA N if L = L (N). L(N) = the language of machine N = set of all strings machine N accepts
8
8 1 0 0 q1q1 q2q2 q3q3 q4q4 N = (Q, Σ, , Q 0, F) Q = {q 1, q 2, q 3, q 4 } Σ = {0,1} Q 0 = {q 1, q 2 } F = {q 4 } Q ε, 0 0 1ε q1q1 {q 3 } q2q2 {q 4 } q3q3 {q 2,q 4 } {q2}{q2} q4q4 00 L(N)? 01 L(N)?
9
9 Q = 2 Q : Q Σ → Q (R, ) = ε( (r, ) ) rRrR q 0 = ε(Q 0 ) F = { R Q | f R for some f F } FROM NFA TO DFA Input: N = (Q, Σ, , Q 0, F) Output: M = (Q, Σ, , q 0, F) * For R Q, the ε-closure of R, ε(R) = {q that can be reached from some r R by traveling along zero or more ε arrows}, *
10
10 a a, b a 2 3 1 b ε Given: NFA N = ( {1,2,3}, {a.b}, , {1}, {1} ) Construct: equivalent DFA M ε({1}) = {1,3} N
11
11 a a, b a 2 3 1 b ε Given: NFA N = ( {1,2,3}, {a,b}, , {1}, {1} ) Construct: equivalent DFA M ε({1}) = {1,3} N N = ( Q, Σ, , Q 0, F ) = (Q, Σ, , q 0, F) ab {1} {2} {2,3} {3} {1,3} {1,2} {2,3} {1,3} {2} {2,3} {1,2,3} {3} {1,2,3} {2,3} q 0 =
12
12 a a, b a 2 3 1 b ε Given: NFA N = ( {1,2,3}, {a,b}, , {1}, {1} ) Construct: equivalent DFA M ε({1}) = {1,3} N N = ( Q, Σ, , Q 0, F ) = (Q, Σ, , q 0, F) ab {1} {2} {2,3} {3} {1,3} {1,2} {2,3} {1,3} {2} {2,3} {1,2,3} {3} {1,2,3} {2,3} q 0 =
13
13 REGULAR LANGUAGES CLOSED UNDER STAR Let L be a regular language and M be a DFA for L We construct an NFA N that recognizes L* 0 0,1 0 0 1 1 1 ε ε ε
14
14 Formally: Input: M = (Q, Σ, , q 1, F) Output: N = (Q, Σ, , {q 0 }, F) Q = Q {q 0 } F = F {q 0 } (q,a) = { (q,a)} {q1}{q1} {q1}{q1} if q Q and a ≠ ε if q F and a = ε if q = q 0 and a = ε if q = q 0 and a ≠ ε else DFA NFA
15
15 Show: L (N) = L* 1.L (N) L* 2. L (N) L*
16
16 1. L (N) L* Assume w = w 1 …w k is in L*, where w 1,…,w k L We show N accepts w by induction on k Base Cases: k = 0 k = 1 Inductive Step: Assume N accepts all strings v = v 1 …v k L*, v i L and let u = u 1 …u k u k+1 L*, v j L Since N accepts u 1 …u k (by induction) and M accepts u k+1, N must accept u (w = ε) (w L)
17
17 Assume w is accepted by N, we show w L* If w = ε, then w L* If w ≠ ε accept ε ε L* 2. L (N) L* By induction
18
18 REGULAR LANGUAGES ARE CLOSED UNDER REGULAR OPERATIONS Union: A B = { w | w A or w B } Intersection: A B = { w | w A and w B } Negation: A = { w Σ* | w A } Reverse: A R = { w 1 …w k | w k …w 1 A } Concatenation: A B = { vw | v A and w B } Star: A* = { w 1 …w k | k ≥ 0 and each w i A }
19
19 The PUMPING LEMMA and REGULAR EXPRESSIONS
20
20 SOME LANGUAGES ARE NOT REGULAR B = {0 n 1 n | n ≥ 0} is NOT regular!
21
21 WHICH OF THESE ARE REGULAR C = { w | w has equal number of 1s and 0s} D = { w | w has equal number of occurrences of 01 and 10} NOT REGULAR REGULAR!!!
22
22 THE PUMPING LEMMA Let L be a regular language with |L| = Then there exists a positive integer P such that 1. |y| > 0 2. |xy| ≤ P 3. xy i z L for any i ≥ 0 if w L and |w| ≥ P then w = xyz, where:
23
23 Let P be the number of states in M Assume w L is such that |w| ≥ P q0q0 qiqi qjqj q |w| … There must be j > i such that q i = q j Let M be a DFA that recognizes L 1. |y| > 0 2. |xy| ≤ P 3. xy i z L for any i ≥ 0 We show w = xyz x
24
24 USING THE PUMPING LEMMA Use the pumping lemma to prove that B = {0 n 1 n | n ≥ 0} is not regular Hint: Assume B is regular Let B = L(M), for DFA M, and let P be larger than the number of states in M Try pumping s = 0 P 1 P
25
25 USING THE PUMPING LEMMA Use the pumping lemma to prove that B = {0 n 1 n | n ≥ 0} is not regular Hint: Assume B is regular, and try pumping s = 0 P 1 P If B is regular, s can be split into s = xyz, where for any i ≥ 0, xy i z is also in B If y is all 0s: xyyz has more 0s than 1s If y is all 1s: xyyz has more 1s than 0s If y has both 1s and 0s: xyyz will have some 1s before some 0s
26
26 Use the pumping lemma to prove that C = { w | w has an equal number of 0s and 1s} is not regular Hint: Try pumping s = 0 P 1 P If C is regular, s can be split into s = xyz, where for any i ≥ 0, xy i z is also in C and |xy| ≤ P
27
27 WHAT DOES D LOOK LIKE? (0(0 1)*0) (1(0 1)*1) 1 0 ε D = { w | w has equal number of occurrences of 01 and 10} = { w | w = 1, w = 0, w = ε or w starts with a 0 and ends with a 0 or w starts with a 1 and ends with a 1 }
28
28 REGULAR EXPRESSIONS is a regular expression representing { } ε is a regular expression representing {ε} is a regular expression representing If R 1 and R 2 are regular expressions representing L 1 and L 2 then: (R 1 R 2 ) represents L 1 L 2 (R 1 R 2 ) represents L 1 L 2 (R 1 )* represents L 1 *
29
29 PRECEDENCE Tightest Star (“*”) Concatenation (“.”, “”) LoosestUnion (“ ”, “+”, “|”)
30
30 R2R2 R1*R1*( EXAMPLE R 1 *R 2 R 3 = ()) R3R3
31
31 { w | w has exactly a single 1 } 0*10*
32
32 What language does * represent? {ε}{ε}
33
33 { w | w has length ≥ 3 and its 3rd symbol is 0 } 000(0 1)* 010(0 1)* 100(0 1)* 110(0 1)* = (0 1)(0 1)0(0 1)*
34
34 { w | every odd position of w is a 1 } 1((0 1)1)*(0 1 ε) ε Also (1(0 1))*(1 ε)
35
35 EQUIVALENCE L can be represented by a regexp L is a regular language
36
36 L can be represented by a regexp L is a regular language Given regular expression R, we show there exists NFA N such that R represents L(N) Induction on the length of R:
37
37 Given regular expression R, we show there exists NFA N such that R represents L(N) Induction on the length of R: Base Cases (R has length 1): R = (matches a single symbol) R = ε (matches the empty string) R = (matches nothing)
38
38 Inductive Step: Assume R has length k > 1 and that any regular expression of length < k represents a language that can be recognized by an NFA Three possibilities for R: R = R 1 R 2 R = R 1 R 2 R = (R 1 )* (Union Theorem!)
39
39 L can be represented by a regexp L is a regular language Have Shown
40
40 Transform (1(0 1))* to an NFA 1ε1,0 ε
41
41 L can be represented by a regexp L is a regular language
42
42 L can be represented by a regexp L is a regular language Proof idea: Transform an NFA for L into a regular expression by removing states and re- labeling the arrows with regular expressions
43
43 NFA ε ε ε ε ε Add unique and distinct start and accept states While machine has more than 2 states: Pick an internal state, rip it out and re-label the arrows with regexps, to account for the missing state 0 1 0
44
44 NFA ε ε ε ε ε While machine has more than 2 states: Pick an internal state, rip it out and re-label the arrows with regexps, to account for the missing state 01*0
45
45 q1q1 b a ε q2q2 a,b ε q0q0 q3q3 R(q 0,q 3 ) = (a*b)(a b)*
46
46 q2q2 a,b ε a*b q0q0 q3q3 R(q 0,q 3 ) = (a*b)(a b)*
47
47 (a*b)(a b)* q0q0 q3q3 R(q 0,q 3 ) = (a*b)(a b)*
48
48 q3q3 q2q2 b a b q1q1 b a a ε ε ε bb
49
49 q2q2 b a b q1q1 a a ε ε ε bb a ba b
50
50 bb (a ba)b*a a ba q2q2 b q1q1 a ε ε bb b b (a ba)b* = R(q 1,q 1 ) (bb (a ba)b*a)* (b (a ba)b*)
51
51 Convert the NFA to a regular expression q3q3 q2q2 b b q1q1 a a, b ε ε ε b (a b)b*b bb*b (a b)b*b(bb*b)* (a b)b*b(bb*b)*a
52
52 ((a b)b*b(bb*b)*a)* ((a b)b*b(bb*b)*a)*(a b)b*b(bb*b)*
53
53 Formally: Run CONVERT(G): (return regexp) If #states = 2 return the expression on the arrow going from q start to q accept Add q start and q accept to create G If #states > 2
54
54 Formally:Add q start and q accept to create G If #states > 2 select q rip Q different from q start and q accept define Q = Q – {q rip } define R as: R(q i,q j ) = R(q i,q rip )R(q rip,q rip )*R(q rip,q j ) R(q i,q j ) return CONVERT(G) Run CONVERT(G): (return regexp) } Defines: G (GNFA)
55
55 CONVERT(G) is “equivalent” to G Proof by induction on k (number of states in G) Base Case: k = 2 Inductive Step: Assume claim is true for k-1 states We first note that G and G are “equivalent” But, by the induction hypothesis, G is “equivalent” to CONVERT(G) And CONVERT(G) is equivalent to CONVERT(G ) QED
56
56 ε
57
57 DFA NFA Regular Language Regular Expression DEF
58
58 Read Chapter 1.3 of the book for next time
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.