Professional Documents
Culture Documents
20
Chng III : tmt hu hn v biu thc chnh quy [3] J.A.Garcia and S.Moral- Theory of Finite Automata : http://decsai.ugr.es/~jags/fat.html [4] Donald R. Biggar - Regular Expression Matching Using Finite Automata: http://www3.sympatico.ca/dbiggar/FA.home.html
21
q0
0
1 q1 0 b
a 0 q2 d 1 0 q3
Hnh 3.1 - S chuyn ca mt DFA Mt iu cn lu , DFA s dng mi trng thi ca n gi ch mt phn ca chui s 0 v 1 ch khng phi cha mt s thc s, v th DFA cn dng mt s hu hn trng thi. nh ngha
22
Chng III : tmt hu hn v biu thc chnh quy Mt cch hnh thc ta nh ngha tmt hu hn l b gm nm thnh phn (Q, , , q0, F), trong : . Q l tp hp hu hn cc trng thi. . l b ch ci nhp hu hn. . l hm chuyn nh x t Q Q, tc l (q, a) l mt trng thi c cho bi php chuyn t trng thi q trn k hiu nhp a. . q0 Q l trng thi bt u . F Q l tp cc trng thi kt thc. Ta v DFA nh l b iu khin hu hn, vi mi trng thi thuc Q, DFA c mt chui cc k hiu a t vit trn bng (nh hnh v). Input 0 1 1 0 0 1 0 1
B iu khin Hnh 3.2 - M t mt DFA Trong mt ln chuyn, DFA ang trng thi q c k hiu nhp a trn bng, chuyn sang trng thi c xc nh bi hm chuyn (q, a), ri dch u c sang phi mt k t. Nu (q, a) chuyn n mt trong nhng trng thi kt thc th DFA chp nhn chui c vit trn bng input pha trc u c, nhng khng bao gm k t ti v tr u c va dch chuyn n. Trong trng hp u c dch n cui chui trn bng, th DFA mi chp nhn ton b chui trn bng. Hm chuyn trng thi m rng c th m t mt cch hnh thc hot ng ca mt DFA trn chui, ta m rng hm chuyn p dng i vi mt trng thi trn chui hn l mt trng thi trn tng k hiu. Ta nh ngha hm chuyn nh mt nh x t Q * Q vi ngha (q, w) l trng thi DFA chuyn n t trng thi q trn chui w. Mt cch hnh thc, ta nh ngha : 1. (q, ) = q 2. (q, wa) = ( (q, w), a), vi mi chui w v k hiu nhp a. Mt s quy c v k hiu : Q l tp cc trng thi. K hiu q v p (c hoc khng c ch s) l cc trng thi, q0 l trng thi bt u. l b ch ci nhp. K hiu a, b (c hoc khng c ch s) v cc ch s l cc k hiu nhp. l hm chuyn. F l tp cc trng thi kt thc.
23
Chng III : tmt hu hn v biu thc chnh quy w, x, y v z (c hoc khng c ch s) l cc chui k hiu nhp.
Ngn ng c chp nhn bi DFA Mt chui w c chp nhp bi tmt hu hn M (Q, , , q0, F) nu (q0, w) = p vi p F. Ngn ng c chp nhn bi M, k hiu L(M) l tp hp: L(M) = { w | (q0, w) F } Th d 3.2 : Xt s chuyn hnh 3.1. Theo khi nim hnh thc, ta c DFA c xc nh bi M (Q, , , q0, F) vi Q = {q0, q1, q2, q3}, = {0, 1}, F = {q0} v hm chuyn nh sau: Trng thi q0 q1 q2 q3 Inputs 0 q2 q3 q0 q1 1 q1 q0 q3 q2
Gi s chui w = 110101 c nhp vo M. Ta c (q0, 1) = q1 v (q1, 1) = q0 ,vy (q0, 11) = ((q0,1),1) = (q1, 1) = q0. Tip tc (q0, 0) = q2, vy (q0, 110) = ((q0, 11), 0) = q2. Tip tc ta c (q0, 1101) = q3, (q0, 11010) = q1 V cui cng (q0, 110101) = q0 F. (Hay (q0, 110101) = (q1, 10101) = (q0, 0101) = (q2, 101) = (q3, 01) = (q1, 1) = q0 F) Vy 110101 thuc L(M). Ta c th chng minh rng L(M) l tp mi chui c s chn s 0 v s chn s 1. Theo m t DFA nh trn, ta thy cng c th dng bng hm chuyn (transition table) m t cc php chuyn trng thi ca mt tmt hu hn. Trong bng hm chuyn, hng cha cc trng thi thuc tp trng thi ca tmt v ct l cc k hiu thuc b ch ci nhp. Bng hm chuyn gi cho chng ta mt cu trc d liu m t cho mt tmt hu hn, ng thi cng cho thy c th d dng m phng hot ng ca DFA thng qua mt chng trnh my tnh, chng hn dng cu trc vng lp. Gii thut m phng hot ng ca mt DFA . Input : Chui nhp x kt thc bi $ . Output : Cu tr li "YES" nu DFA chp nhn chui x v "NO" nu ngc li. . Gii thut : q := q0 ; c := nextchar ; { c l k hiu nhp c c tip theo } While c < > $ do begin q := (q, c); c := nextchar ; end
24
Nhn xt : Mt cch tng qut, ta thy tp Q ca DFA th hin cc trng thi lu tr ca tmt trong qu trnh on nhn ngn ng, v nh vy kh nng lu tr ca tmt l hu hn. Mt khc, hm chuyn l hm ton phn v n tr, cho nn cc bc chuyn ca tmt lun lun c xc nh mt cch duy nht. Chnh v hai c im ny m DFA m t nh trn c gi l tmt hu hn n nh.
1 q1 1
q2 0 1 25
Hnh 3.3 - S chuyn ca mt NFA Ch rng c th xem tmt hu hn n nh - DFA (hay gi tt l FA) l mt trng hp c bit ca NFA, trong mi trng thi ch c duy nht mt php chuyn trn mi k hiu nhp. V th trong DFA, vi mt chui nhp w v trng thi q, ch c ng mt ng i nhn w bt u t q. xc nh chui w c c chp nhn bi DFA hay khng ch cn kim tra ng i ny. Nhng i vi NFA, c th c nhiu ng i c nhn l w, v do tt c phi c kim tra thy c hay khng c ng i ti trng thi kt thc. Tng t nh DFA, NFA cng hot ng vi mt b iu khin hu hn c trn bng nhp. Tuy nhin, ti mi thi im, b iu khin c th cha mt s bt k trng thi. Khi c s la chn trng thi k tip, chng hn nh t trng thi q0 trn k hiu nhp 0 hnh 3.3, ta phi tng tng nh c cc bn sao ca tmt ang thc hin ng thi. Mi trng thi k tip m tmt c th chuyn n s tng ng vi mt bn sao ca tmt m ti b iu khin ang cha trng thi . Chng hn, vi chui 01001, ta c : q0
0 0
q0
1 1
q0
0 0
q0
0 0
q0
1 1
q0
q3
q1
q3
0
q3
q1
q4 nh ngha
q4
Mt cch hnh thc ta nh ngha tmt hu hn khng n nh NFA l mt b 5 thnh phn (Q, , , q0, F) trong Q, , q0 v F c ngha nh trong DFA, nhng l hm chuyn nh x t Q 2Q. Khi nim (q, a) l tp hp tt c cc trng thi p sao cho c php chuyn trn nhn a t trng thi q ti p. Hm chuyn trng thi m rng thun tin trong vic m t hot ng tmt trn chui, ta m rng hm chuyn nh x t Q * 2Q nh sau :
26
Chng III : tmt hu hn v biu thc chnh quy 1. (q, ) = {q} 2. (q, wa) = { p | c mt trng thi r trong (q, w) m p thuc (r, a)} = ((q, w), a) 3. (P, w) = q P (q, w) , P Q. Ngn ng c chp nhn bi NFA Ngn ng L(M), vi M l tmt hu hn khng n nh NFA (Q, , , q0, F) l tp hp : L(M) = {w | (q0, w) c cha mt trng thi trong F } Th d 3.4 : Xt s chuyn ca hnh 3.3. Theo khi nim hnh thc, ta c : NFA M ({q0, q1, q2, q3, q4}, {0, 1}, , q0, {q2, q4}) vi hm chuyn nh sau : Trng thi q0 q1 q2 q3 q4 Inputs 0 {q0,q3} {q2} {q4} {q4} 1 {q0,q1} {q2} {q2} {q4}
Xt chui nhp w = 01001 Ta c : (q0, 0) = {q0, q3} (q0, 01) = ((q0, 0),1) = ({q0, q3},1) = (q0, 1) (q3, 1) = {q0, q1} Tng t , ta c th tnh : (q0, 010) = {q0, q3} (q0, 0100) = {q0, q3, q4} v (q0, 01001) = {q0, q1, q4} Do q4 F nn w L (M). Cu hi : 1. Hy cho nhn xt v im khc bit quan trng gia DFA v NFA ? 2. Theo bn, dng n nh hay khng n nh s dng nhn dng mt chui d dng hn ?
Chng III : tmt hu hn v biu thc chnh quy ta c th xy dng mt DFA tng ng (chp nhn cng mt ngn ng vi n). t mt DFA m phng hot ng ca NFA l cho php cc trng thi ca DFA tng ng vi tp cc trng thi ca NFA. Ti mi thi im, DFA lu gi trong b iu khin tt c cc trng thi m NFA c th chuyn n khi c cng mt input nh DFA. NH L 3.1 : Nu L l tp c chp nhn bi mt NFA th tn ti mt DFA chp nhn L. Chng minh t M (Q, , , q0, F) l NFA chp nhn L. Ta xy dng DFA M' (Q, , , q0, F) tng ng nh sau: - Cc trng thi ca M l tt c cc tp hp con ca tp trng thi ca M, hay Q= 2Q. Ti mi thi im, M s lu gi trong trng thi ca n tt c cc trng thi c th ca M. Mt phn t trong Q c k hiu l [q1, q2,..., qi], trong cc trng thi q1, q2,..., qi Q. Ta xem [q1, q2,..., qi] l mt trng thi n ca DFA tng ng vi mt tp trng thi ca NFA. - q0 = [q0]. - F' l tp hp cc trng thi ca Q c cha t nht mt trng thi kt thc trong tp F ca M. - Ta nh ngha hm chuyn nh sau : ([q1, q2,..., qi], a) = [p1, p2,..., pj] nu v ch nu ({q1, q2,..., qi }, a) = {p1, p2,..., pj} By gi ta chng minh quy np theo di ca chui nhp x rng: (q0, x) = [q1, q2,..., qi] (q0, x) = {q1, q2,..., qi} (1) Vi x= 0 , ta c x = v q0 = [q0] nn (1) hin nhin ng Gi s (1) ng vi cc chui nhp c di ti m. Xt chui nhp c di m + 1, t chui ny l xa vi a , ta c : (q0, xa) = ((q0, x), a) Theo nh ngha : ([p1, p2,..., pi], a) = [r1, r2,..., rk] ({p1, p2,..., pj}, a) = {r1, r2,..., rk}. Mt khc theo gi thit quy np (q0, x) = [p1, p2,..., pj] (q0, x) = {p1, p2,..., pj}, nn thay vo ta c : (q0, xa) = [r1, r2,..., rk] (q0, xa) = {r1, r2,..., rk}. D thy rng (q0, x) F' khi v ch khi (q0, x) c cha t nht mt trng thi F. Vy L(M) = L(M) V NFA v DFA chp nhn cng cc tp hp, nn ta s khng phn bit chng tr khi iu tht s cn thit, s n gin hn hiu c hai cng l tmt n nh. Th d 3.5 : Cho NFA M ({q0, q1}, {0, 1}, , q0, {q1}) vi hm chuyn nh sau : (q0, 0) = {q0, q1}, (q0,1) = {q1}, (q1, 0) = , (q1, 1) = {q0, q1} Ta xy dng DFA tng ng M (Q, {0, 1}, , [q0], F) chp nhn L(M) nh sau : . Q : cha tt c cc tp con ca {q0, q1}, vy Q = {[q0], [q1], [q0, q1], } . Hm chuyn :
28
Chng III : tmt hu hn v biu thc chnh quy V (q0, 0) = {q0, q1} nn ([q0], 0) = [q0, q1] Tng t : ([q0], 1) = [q1] ([q1], 0) = ([q1], 1) = [q0, q1] Mt khc : (, 0) = (, 1) = Cui cng : ([q0, q1],0) = [q0, q1] ( v ({q0, q1},0) = (q0, 0) (q1, 0) = {q0, q1} = {q0, q1}) ([q0, q1], 1) = [q0, q1] ( v ({q0, q1},1) = (q0, 1) (q1, 1) = {q1} {q0, q1} = {q0, q1}) . Tp trng thi kt thc F' = {[q1], [q0, q1]} Thc t, c rt nhiu trng thi ca NFA khng c hm chuyn n t trng thi bt u [q0]. Do , thng thng, cch tt nht l ta nn xy dng DFA tng ng bt u t trng thi [q0] v thm vo cc trng thi mi cho DFA ch khi c cc hm chuyn t mt trng thi c thm vo trc . Cu hi : Bn c nhn xt g v kch thc gia mt DFA v mt NFA tng ng vi n chp nhn cng mt tp ngn ng ?
q1
q2
Hnh 3.4 - NFA vi -dch chuyn nh ngha: Mt cch hnh thc ta nh ngha NFA vi -dch chuyn l b 5 thnh phn (Q, , , q0, F) vi tt c cc thnh phn c ngha nh trn, nhng hm chuyn l nh x t Q ( {}) 2Q.
29
Chng III : tmt hu hn v biu thc chnh quy Khi nim (q, a) gm tt c cc trng thi p sao cho c php chuyn nhn a t q ti p, trong a l mt k hiu thuc hoc l . Hm chuyn trng thi m rng: Ta m rng hm chuyn thnh hm chuyn * nh x t Q * 2Q. *(q,w) cha tt c cc trng thi p sao cho c th i t q ti p theo ng i nhn w (c th cha cnh nhn ). Ta s dng -CLOSURE(q) xc nh tp tt c cc nh p sao cho c ng i t q ti p vi nhn . Th d 3.7 : Trong hnh 3.4, -CLOSURE(q0) = {q0, q1, q2}. V ng i ch c mt nh q0 (khng c cung trn ng i) l ng i t q0 ti q0 c tt c cc cnh nhn l . ng i q0, q1 ch ra rng q1 thuc -CLOSURE(q0). V ng i q0, q1, q2 ch ra rng q2 thuc -CLOSURE(q0). t -CLOSURE(P) = qP -CLOSURE(q), trong P l mt tp cc trng thi v q l mt trng thi. Ta nh ngha hm * nh sau: 1. *(q, ) = -CLOSURE(q) 2. *(q, wa) = -CLOSURE(P), trong tp P = {p | c r trong *(q, w) sao cho p (r, a)}, w * v a Hay *(q, wa) = -CLOSURE((*(q, w), a) Ta m rng v * trn tp hp cc trng thi R nh sau : 3. (R, a) = qR (q, a), v 4. *(R, w) = qR *(q, w) Cu hi : Hy so snh s khc bit gia hm chuyn v * ? Nhn xt : *(q, a) v (q, a) khng nht thit bng nhau v *(q, a) gm tt c cc trng thi c th chuyn n c t q trn nhn a gm c ng i nhn , trong khi (q, a) ch gm cc trng thi c th n c t q ch bng cc cung nhn a. Tng t *(q, ) c th cng khng bng (q, ). V vy ta phi phn bit k hiu v * i vi NFA vi -dch chuyn. Ngn ng c chp nhn bi NFA: Ta nh ngha L(M), ngn ng c chp nhn bi NFA M = (Q, , , q0, F) l tp hp cc chui : L(M) = {w | *(q0, w) c cha t nht mt trng thi trong F} Th d 3.8 : Xt s chuyn ca hnh 3.4.
30
Chng III : tmt hu hn v biu thc chnh quy Theo khi nim hnh thc, ta c NFA M ({q0, q1, q2}, {0, 1, 2}, , q0, {q2}) vi hm chuyn nh sau : Inputs Trng thi 0 1 2 q0 {q0 } { q1} q1 {q1} {q1} q2 {q2} Xt chui nhp w = 012. Ta cn tnh *(q0, 012) Ta c : *(q0, ) = -CLOSURE(q0) = {q0, q1, q2} vy *(q0, 0) = -CLOSURE((*(q0, ), 0) = -CLOSURE(({q0, q1, q2}, 0)) = -CLOSURE((q0, 0) (q1, 0) (q2, 0)) = -CLOSURE({q0} ) = -CLOSURE({q0}) = {q0, q1, q2} * v (q0, 01) = -CLOSURE((*(q0, 0), 1)) = -CLOSURE(({q0, q1, q2}, 1)) = -CLOSURE((q0, 1) (q1, 1) (q2, 1)) = -CLOSURE( {q1} ) = -CLOSURE({q1}) = {q1, q2} * (q0, 012) = -CLOSURE(( *(q0, 01), 2)) = -CLOSURE(({q1, q2}, 2)) = -CLOSURE((q1, 2) (q2, 2)) = -CLOSURE( {q2}) = -CLOSURE({q2}) = {q2} * Do (q0, 012) c cha trng thi q2 F nn chui w L(M). Gii thut m phng hot ng ca mt NFA : . Input : Chui nhp x c kt thc bi $. . Output : Cu tr li "YES" nu NFA chp nhn chui x v "NO" nu ngc li. . Gii thut : q := -CLOSURE(q0); c := nextchar ; { c l k hiu nhp c c tip theo } While c <> $ do begin q := -CLOSURE((q, c)); c := nextchar ; end
31
Chng III : tmt hu hn v biu thc chnh quy If q in F then write ("YES") else write ("NO");
32
Chng III : tmt hu hn v biu thc chnh quy Nu *(q0, x) cha mt trng thi trong F th chc chn (q0, x) cha cng trng thi trong F. Ngc li, nu (q0, x) cha mt trng thi trong F khc hn q0 th (q0, x) phi cha mt trng thi trong F (v tp F v F ch chnh lch nhau trng thi q0). Nu (q0, x) c cha trng thi q0 v q0 cng l mt trng thi thuc tp trng thi kt thc F th v *(q0, x) = -CLOSURE(( *(q0, w),a)), nn trng thi chung trong -CLOSURE(q0) v trong F phi trong *(q0, x). Th d 3.9 : Chuyn NFA vi -dch chuyn hnh 3.4 sang dng NFA khng c cha -dch chuyn. Ta xy dng NFA tng ng M(Q, , , q0, F) chp nhn L(M) vi cc thnh phn : . Q = {q0, q1, q2} . = {0, 1, 2} . Trng thi bt u : q0 . F' = {q0, q2} do -CLOSURE(q0) = {q0, q1, q2} c cha q2 F . Hm chuyn ca M c xc nh theo cng thc : * * (q, a) = (q, a) = -CLOSURE(( (q0, ), a) Kt qu c ch ra trong bng hm chuyn sau : Trng thi q0 q1 q2 S chuyn trng thi:
0 Start q0 0, 1 1 q1 0, 1, 2 1, 2 2 q2
Chng III : tmt hu hn v biu thc chnh quy - Vi mi trng thi q v k hiu nhp a, ch c duy nht mt ng truyn n mt trng thi khc. Gi s mi trng thi ca DFA l mt tp trng thi ca NFA, DFA dng trng thi ca mnh lu gi tt c cc trng thi ca NFA t c sau khi NFA c mt k t nhp. Nh vy sau khi c cc k t nhp a1, a2, ... , an, DFA trng thi l tp con ca cc trng thi thuc NFA, t c khi NFA i t trng thi bt u theo mt con ng no c tn a1a2 ... an. S trng thi ca DFA lc phi bng s phn t trong tp ly tha ca s trng thi NFA. Song, trn thc t trng hp xu nht ny t khi xy ra. Cc trng thi thc s c dng trong s chuyn cho mt DFA s c xc nh theo cc php chuyn trng thi trn nhn l mi k hiu t trng thi bt u ca DFA, v sau ln lt c b sung thm vo tp trng thi nu nh n cha c trong . Gii thut chi tit c trnh by nh sau : Input: Mt tmt hu hn khng n nh NFA. Output: Mt tmt hu hn n nh DFA nhn dng cng ngn ng nh NFA. Phng php: Xy dng bng hm chuyn cho DFA m phng ng thi tt c cc chuyn dch ca NFA trn chui nhp cho trc. Ta dng cc tc v sau lu gi cc tp trng thi ca NFA : (q : l mt trng thi ca NFA, T : l tp trng thi ca NFA) a) -closure(q) : l tp trng thi ca NFA t c t trng thi q trn s truyn rng. b) -closure(T) : l tp trng thi ca NFA t c t tt c cc trng thi q thuc tp T trn s truyn rng. c) (T, a) : l tp trng thi ca NFA t c t tt c cc trng thi q thuc tp T trn s truyn bng k hiu a. Phn tch: Trc khi c vo mt k t nhp, DFA c th mt trng thi bt k trong cc trng thi thuc -closure(q0) vi q0 l trng thi bt u ca NFA. Gi trng thi ny l T. Gi s cc trng thi ca T l cc trng thi t c t q0 trn cc k hiu nhp v gi s a l k hiu nhp k tip. Khi c a, NFA c th chuyn n mt trng thi bt k trong tp trng thi (T, a). Khi chng ta cho php s truyn rng, NFA c th bt k trng thi no trong -closure((T, a)) sau khi c a. Gii thut : Trng thi bt u -closure(q0) ch l mt trng thi trong cc trng thi ca DFA v trng thi ny cha c nh du; While C mt trng thi T ca DFA cha c nh du do Begin nh du T; { xt trng thi T}
34
Chng III : tmt hu hn v biu thc chnh quy For Vi mi k hiu nhp a do begin U:= -closure((T, a)) If U khng c trong tp trng thi ca DFA then begin Thm U vo tp cc trng thi ca DFA v trng thi ny cha c nh du; [T, a] := U; {[T, a] l phn t ca bng chuyn DFA} end; end; End; Ta xy dng cc trng thi v bng hm chuyn cho DFA theo cch nh sau : - Mi trng thi ca DFA tng trng bi mt tp trng thi ca NFA m NFA c th chuyn n sau khi c mt chui k hiu nhp gm: tt c s truyn rng c th xy ra trc hoc sau cc k hiu c c. - Trng thi bt u ca DFA l -closure(q0) - Cc trng thi v hm chuyn s c thm vo D bng gii thut trn. - Mt trng thi ca DFA l trng thi kt thc nu n l tp cc trng thi ca NFA cha t nht mt trng thi kt thc ca NFA. Vic tnh ton -closure(T) c th xem nh qu trnh tm kim mt th ca cc nt t cc nt cho trc v th bao gm ton nhng cnh c nhn ca NFA. Gii thut n gin tm -closure(T) l dng Stack lu gi cc trng thi m cnh ca chng cha c kim tra cho s truyn rng. Th d 3.10 : To DFA t NFA sau
2 Start 0
10
Hnh 3.6 Th d chuyn NFA c -dch chuyn Cc bc xy dng tp trng thi cho DFA : 1) Trng thi bt u ca DFA : -closure(0) = {0, 1, 2, 4, 7} = A*
35
Chng III : tmt hu hn v biu thc chnh quy 2) -closure((A, a)) = -closure({3, 8}) = {1, 2, 3, 4, 6, 7, 8} = B* 3) -closure((A, b)) = -closure({5}) = {1, 2, 4, 5, 6, 7} = C* 4) -closure((B, a)) = -closure({3, 8}) = B 5) -closure((B, b)) = -closure({5, 9}) = {1, 2, 4, 5, 6, 7, 9} = D* 6) -closure((C, a)) = -closure({3, 8}) = B 7) -closure((C, b)) = -closure({5}) = C 8) -closure((D, a)) = -closure({3, 8}) = B 9) -closure((D, b)) = -closure({5, 10}) = {1, 2, 4, 5, 6, 7, 10} = E* 10) -closure((E, a)) = -closure({3, 8}) = B 11) -closure((E, b)) = -closure({5}) = C T cc tp trng thi ny, ta xc nh c A l trng thi bt u, E l trng thi kt thc (v trong E c cha trng thi 10 l trng thi kt thc ca NFA) v bng hm chuyn ca DFA nh sau : Trng thi A B C D E K hiu nhp a b B C B D B C B E B C
T bng hm chuyn nh trn, ta xy dng s chuyn trng thi cho DFA tng ng nhn dng cng ngn ng c dng nh sau : b b
Start
C a b b a a D b E
a a
Hnh 3.7 DFA tng ng cho th d 3.10 Nhn xt : Mc d c s khc nhau trong nh ngha, ta thy dng khng n nh NFA c nh ngha tng qut hn dng n nh DFA, nhng r rng kh nng nhn dng cng lp ngn ng ca chng l tng ng nhau. Trong thc t, cc my tnh s hon ton l n nh, trng thi ca chng ti mi thi im l xc nh c duy nht t mt chui nhp bt k v trng thi bt u.
36
Chng III : tmt hu hn v biu thc chnh quy Cu hi : Ti sao cn nh ngha dng khng n nh ? Mt s gi cu tr li: 1. Trong mt s cc bi ton mang tnh chn la, c nhiu hng gii quyt (nhiu cch i) nh trong cc chng trnh tr chi (games) th thng thng hng gii quyt tt nht (cch i tt nht) l khng bit trc c, nhng c th tm thy c bng cch s dng chin lc tm kim quay lui (backtracking). Khi c mt vi kh nng chn la c th, ta chn mt kh nng trong chng v i theo hng cho n khi xc nh hng l tt nht hay cha. Nu cha phi l hng tt nht, ta phi quay v im quyt nh cui cng trc v th kho st theo mt hng khc. Mt gii thut m phng qu trnh tm kim quay lui ny l mt gii thut khng n nh. 2. Khng n nh i khi cn rt hu hiu trong vic gip gii quyt cc bi ton d dng. Chng hn, trong mt s bi ton th vic xy dng mt NFA c v t nhin v n gin hn vic tm mt DFA cho chng. Tng t nh vy, khng n nh cn l mt c ch hiu qu dng m t vn phm sinh ra ngn ng mt cch sc tch (s chn la cc lut sinh sinh t cng mt bin). 3. Trong thc t, mt vi kt qu l d dng c chng minh i vi NFA hn l DFA. V vy vic cho php c ch khng n nh thng lm n gin ha cc l lun hnh thc m khng nh hng n tnh tng qut ca kt lun.
2.1. nh ngha
Cho l mt b ch ci. Biu thc chnh quy trn v cc tp hp m chng m t c nh ngha mt cch quy nh sau: 1) l biu thc chnh quy k hiu cho tp rng
37
Chng III : tmt hu hn v biu thc chnh quy 2) l biu thc chnh quy k hiu cho tp {} 3) a , a l biu thc chnh quy k hiu cho tp {a} 4) Nu r v s l cc biu thc chnh quy k hiu cho cc tp hp R v S th (r + s), (rs) v ( r*) l cc biu thc chnh quy k hiu cho cc tp hp R S, RS, R* tng ng. Trong khi vit biu thc chnh quy ta c th b bt cc du ngoc n vi lu rng th t u tin ca cc php ton xp theo th t gim dn l: php bao ng, php ni kt, php hp. Chng hn : Biu thc ((0(1*)) + 1) c th vit l 01*+ 1. Cu hi : Nh trn ta ni, biu thc chnh quy dng k hiu cho mt lp ngn ng. Bn hy th lit k mt vi chui v hnh dung lp ngn ng c k hiu bi biu thc chnh quy r = 01*+ 1 trn ? Php ton bao ng dng cng c th c s dng khi vit biu thc chnh quy. Ta c th vit rt gn rr* hay r*r thnh r+. Nu cn thit phn bit th ta s dng k hiu r cho biu thc chnh quy r v L(r) cho ngn ng c k hiu bi biu thc chnh quy r; ngc li mt cch tng qut, ta c th dng r cho c hai. Th d 3.11 : Mt s biu thc chnh quy k hiu cho cc ngn ng : . 00 l biu thc chnh quy biu din tp {00}. . (0+1)* k hiu cho tp hp tt c cc chui s 0 v s 1, k c chui rng = {, 0, 1, 00, 01, 10, 11, 010, 011, 0010 ... } . (0+1)*00(0+1)* k hiu cho tp hp tt c cc chui 0,1 c t nht hai s 0 lin tip. = {00, 000, 100, 0000, 0001, 1000, 1001, 011001, ... } . (1+10)* k hiu cho tt c cc chui 0, 1 bt u bng s 1 v khng c hai s 0 lin tip = {, 1, 10, 11, 1010, 111, 101010, ... } * . (0+)(1+10) k hiu cho tt c cc chui khng c hai s 0 lin tip. = {, 0, 01, 010, 1, 10, 01010, 0111, ... } * . (0+1) 011 k hiu cho tt c cc chui 0, 1 tn cng bi 011. = {011, 0011, 1011, 00011, 11011, ... } * * * . 0 1 2 k hiu cho tt c cc chui c mt s bt k cc s 0, theo sau l mt s bt k s 1 v sau na l mt s bt k s 2. = {, 0, 1, 2, 01, 02, 12, 012, 0012, 0112, ... } * * * . 00 11 22 k hiu cho tt c cc chui trong tp 0*1*2* vi t nht mt trong mi k hiu. 00*11*22* c th c vit gn thnh 0+1+2+ Th d 3.12 : Biu thc chnh quy k hiu cho tp hp cc chui tn bin ng trong ngn ng lp trnh Pascal :
38
Chng III : tmt hu hn v biu thc chnh quy Mt chui tn bin (identifiers) c gi l hp l trong mt chng trnh Pascal nu nh n bt u bng t nht mt ch ci v theo sau l cc ch ci, s, k hiu underline hoc mt vi k hiu cho php khc trn bn phm my tnh. Biu thc chnh quy c dng nh sau : r = (A + + Z + a + + z) (A + + Z + a + + z + 0 + + 9 + _ + )* Th d 3.13 : Biu thc chnh quy k hiu cho tp hp cc s nguyn trong ngn ng lp trnh Pascal : Mt chui s nguyn trong mt chng trnh Pascal c th bt u bng du m (-) hoc du dng (+) hay khng cha k hiu du, v theo sau l mt chui cc k hiu s vi t nht l mt s. Biu thc chnh quy c dng nh sau : r = ( + + - + ) ( 0 + + 9 (0 + +9 )* Nhn xt : Thng thng, vic tm mt biu thc chnh quy k hiu cho mt ngn ng kh hn vic xc nh ngn ng c k hiu bi mt biu thc chnh quy v khng c gii thut cho loi bi ton ny.
NH L 3.3: Nu r l biu thc chnh quy th tn ti mt NFA vi -dch chuyn chp nhn L(r). Chng minh Ta s chng minh quy np theo s php ton ca biu thc chnh quy r rng c tn ti mt NFA M vi -dch chuyn c mt trng thi kt thc v khng c cc php chuyn khi trng thi ny chp nhn biu thc chnh quy r: L(M) = L(r). . r khng c php ton: Vy r phi l , hoc a (vi a ). Cc NFA di y tho mn iu kin:
Start
q0
Start
q0 r=
qf
Start
q0
a r=a
qf
r=
Hnh 3.7 - Cc NFA cho cc kt hp n . r c cha cc php ton: Gi s nh l ng vi r c t hn i php ton, i 1. Xt r c i php ton. C 3 trng hp : 1) r = r1+ r2. C hai biu thc chnh quy r1, r2 c t hn i php ton, vy ta c 2 tmt hu hn NFA M1 (Q1, 1, 1, q1, {f1}) v M2 (Q2, 2, 2, q2, {f2}) sao cho L(M1) = L(r1) v L(M2) = L(r2). V cc trng thi c th thay i tn nn ta gi s hai tp trng thi Q1 v Q2 l ri nhau. t q0 l trng thi bt u mi v {f0} l tp trng thi kt thc mi, ta xy dng NFA M (Q1 Q2 {q0, f0}, 1 2, , q0, {f0}), trong c xc nh nh sau: . (q0, ) = {q1, q2} . (q, a) = 1(q, a) vi q Q1 - {f1} v a 1 {} . (q, a) = 2(q, a) vi q Q2 - {f2} v a 2 {} . (f1, ) = (f2, ) = {f0} Ch do gi thit quy np l khng c php chuyn no ra khi f1, f2 trong M1, M2. V vy tt c cc php chuyn ca M1 v M2 u c trong M. Cch xy dng M ch ra trong hnh a. Bt k ng i no trong s chuyn ca M t q0 ti f0 phi bt u bng cch i ti q1 hoc q2 bng nhn . Nu ng i qua q1 th n theo mt ng i no trong M1 ti f1 ri sau ti f0 bng nhn . Tng t trong trng hp ng i qua q2. C mt ng i t q0 n f0 nhn x khi v ch khi c ng i nhn x trong M1 t q1 n f1 hoc c ng i nhn x trong M2 t q2 n f2. Vy L(M) = L(M1) L(M2)
Start 40
q0
q1
M1
f1
f0
q2
M2
B
f2
Hnh a - Php hp
Start q1
M1
f1
q2
M2
f2
Hnh b - Php ni kt
Start q0
q1
M1
f1
f0
Hnh c - Php bao ng Hnh 3.8 - Cc NFA cho kt hp phc 2) r = r1 r2 t M1 v M2 l cc tmt NFA nh trong trng hp trn v ta xy dng tmt M (Q, , , {q1}, {f2}), trong c xc nh nh sau: . (q, a) = 1(q, a) vi q Q1 - {f1} v a 1 {} . (f1, ) = {q2} . (q, a) = 2(q, a) vi q Q2 v a 2 {} Cch xy dng M ch ra trong hnh b. Mi ng i trong M t q1 ti f2 l ng i c nhn x t q1 ti f1 sau l mt cung t f1 ti q2 nhn v tip n l ng i t q2 ti f2. Vy L(M) = {xy | x L(M1) v y L(M2)} hay L(M) = L(M1) L(M2). 3) r = r t M1 (Q1, 1, 1, q1, {f1}) v L(M1) = r1. Xy dng M (Q1 {q0, f0} 1, , q0, {f0}), trong c cho: . (q0, ) = (f1, ) = {q1, f0} . (q, a) = 1(q, a) vi q Q1 - {f1} v a 1 {} Cch xy dng M c ch ra trong hnh c. Mi ng i t q0 ti f0 gm: hoc ng i t q0 ti f0 bng nhn ; hoc ng i t q0 ti q1 bng nhn v sau l ng i t q1 ti f1 trn chui thuc L(M), ri n f0 bng nhn . Nh vy c ng i t q0 ti f0 nhn l x nu v ch nu ta c th vit x = x1 x2 ... xj vi j 0 (trng hp j = 0 khi x = ) xi L(M1). Vy L(M) = L(M1)*.
*
41
Chng III : tmt hu hn v biu thc chnh quy Th d 3.14 : Xy dng NFA chp nhn lp ngn ng c k hiu bi biu thc chnh quy r = 01* + 1. Ta thy L(r) = { 1, 0, 01, 011, 0111, 01111, 011111, } l tp ngn ng cha cc bit n 0, 1 v cc chui bit nh phn bt u bng bit 0, theo sau l mt chui bit 1 vi di tu . Theo quy lut th t u tin, biu thc 01* + 1 thc cht l (0(1*)) + 1, v vy n c dng r1 + r2 vi r1 = 01* v r2 = 1. Ta s ln lt xy dng cc NFA cho cc biu thc chnh quy con, sau da vo cc quy tc kt hp xy dng NFA cho ton b biu thc chnh quy cho. . NFA cho r2 = 1 d dng xy dng :
Start q1
q2
q4
q6
Start q7
q5
q6
q8
Start
q3
q4
q7
q5
q6
q8
42
q1
q2
Start q9
q10
q3
q4
q7
q5
q6
q8
Hnh 3.9 - NFA cho v d 3.13 Phn chng minh ca nh l 3.3 trn cng chnh l c s ca gii thut chuyn i mt biu thc chnh quy thnh tmt hu hn. Mt im cn lu l th t u tin ca cc php ton c s dng trong biu thc chnh quy, iu ny rt quan trng cho qu trnh tch biu thc chnh quy thnh cc biu thc con trong nhng trng hp vit biu thc chnh quy dng tt (khng c du ngoc). By gi, ta cn chng t rng mi tp hp c chp nhn bi mt tmt hu hn th cng c k hiu bi mt s biu thc chnh quy. NH L 3.4 : Nu L c chp nhn bi mt DFA, th L c k hiu bi mt biu thc chnh quy. Chng minh t L l tp hp c chp nhn bi DFA M ({q1, q2,..., qn}, , , q1, F). t Rkij l tp hp tt c cc chui x sao cho (qi, x) = qj v nu (qi, y) = ql, vi y l tin t bt k ca x, khc x hoc , th l k. Tc l Rkij l tp hp tt c cc chui lm cho tmt i t trng thi qi ti qj khng i ngang qua trng thi no (c nh s) ln hn k. (Ch , khi nim "i ngang qua mt trng thi" c ngha l c php chuyn vo v ra khi trng thi , nn i hoc j u c th ln hn k). V ch c n trng thi nn Rnij s l tp hp tt c cc chui lm tmt i t qi ti qj. Ta nh ngha Rkij mt cch quy nh sau: Rkij = Rk-1ik (Rk-1kk ) Rk-1kj Rk-1ij R0ij = { a | (qi, a) = qj } { a | (qi, a) = qj } {}
*
(1) nu i j nu i = j
Mt cch hnh thc, Rkij nh ngha nh trn l cc chui nhp hay nguyn nhn a M t qi ti qj khng i ngang qua trng thi cao hn qk, ngha l xy ra hoc mt trong hai trng hp sau :
43
Chng III : tmt hu hn v biu thc chnh quy 1) Nm trong Rk-1ij ( khng bao gi i ngang qua mt trng thi no cao nh qk). 2) Bao gm mt chui trong Rk-1ik (chui lm M chuyn n qk), theo sau bi khng hoc nhiu chui trong Rk-1kk (chui lm M chuyn t qk tr v qk m khng ngang qua qk hoc mt trng thi no cao hn) v cui cng l mt chui trong Rk-1kj (chui lm M chuyn t qk n qj ). Ta s ch ra rng vi mi i, j v k tn ti biu thc chnh quy rkij k hiu cho ngn ng Rkij. Ta quy np theo k nh sau: . k = 0 : khi R0ij l tp hp hu hn cc chui c mt k hiu hoc . Vy r0ij c th vit di dng a1 + a2 + ... + ap (hoc a1 + a2 + ... + ap+ nu i = j). Trong {a1, a2,..., ap} l tp hp tt c cc k hiu a sao cho (qi, a) = qj. Nu khng c k hiu a no nh th th (hoc khi i = j) k hiu cho r0ij. . Cng thc (1) cho Rkij ch lin quan n cc php ton trn biu thc chnh quy: hp, ni kt, v bao ng. Hn na theo gi thit quy np, vi mi l, k v m tn ti biu thc chnh quy rk-1lm sao cho L(rk-1lm) = Rk-1lm. Vy i vi rkij ta c th chn biu thc chnh quy : (rk-1ik) (rk-1kk)* (rk-1kj) + rk-1ij Cui cng ta c nhn xt rng L(M) = qj F Rn1j v Rn1j k hiu cho tt c cc nhn ca tt c cc ng i t q1 ti qj. Vy L(M) c k hiu bi biu thc chnh quy r = rn1j1 + rn1j2+ ... + rn1jp, trong tp F = {qj1, qj2,..., qjp} Th d 3.15 : Vit biu thc chnh quy k hiu cho ngn ng c chp nhn bi DFA sau :
1 Start q1 0 0 q2 1 0, 1 q3
Hnh 3.10 DFA cho v d 3.13 Gi DFA c ch ra trong hnh 3.10 l M ({q1, q2, q3}, {0, 1}, , q1, {q2, q3}). Ta thy, tp hp tt c cc chui c chp nhn bi DFA trn l cc chui lm cho tmt chuyn t trng thi bt u q1 n mt trong hai trng thi kt thc q2 v q3 v khng chuyn qua s ti a l 3 (k = 3) trng thi ca tmt. Vy ta cn vit biu thc chnh quy k hiu cho tp hp ny nh sau : r = r312 + r313 Theo cng thc c chng minh trong nh l, ta c th tnh c cc gi tr rkij vi i, j l ch s cc trng thi t 1 n 3 v vi k = 0, 1 v 2, nh ch ra trong bng sau: r
44
k
11
k=0
k=1
k=2 (00)*
Chng III : tmt hu hn v biu thc chnh quy rk12 rk13 rk21 rk22 rk23 rk31 rk32 rk33 0 1 0 1 0+1 0 1 0 + 00 1 + 01 0+1 0(00)* 0*1 0(00)* (00)* 0*1 (0 + 1)(00)*0 (0 + 1)(00)* + (0 + 1)0*1
Bng cch dng cc cng thc tng ng nh (r + s) t = rt + st v ( + r)* = r* n gin cc biu thc, chng hn khi tnh biu thc : r122 = r021 (r011 )* r012 + r022 = 0()*0 + = 00 + Tng t, khi n gin biu thc r213 = r112 (r122 )* r123 + r113 = 0(00 + )*(1 + 01) + 1 ta nhn thy (00 + )* tng ng vi (00)* v (1 + 01) th tng ng vi ( + 0)1 nn ta rt gn : r213 = 0(00)*( + 0)1 + 1 Mt khc, ch rng (00)*( + 0) th tng ng vi 0*, v th 0(00)*( + 0)1 + 1 cng bng 00*1 + 1 hay cui cng l 0*1. hon thnh vic xy dng biu thc chnh quy cho M, ta cn tnh r312 v r313. Ta vit: r312 = r213 (r233 )* r232 + r212 = 0*1( + (0 + 1)0*1)*(0 + 1)(00)* + 0(00)* = 0*1((0 + 1)0*1)*(0 + 1)(00)* + 0(00)* v r313 = r213 (r233 )* r233 + r213 = 0*1( + (0 + 1)0*1)*( + (0 + 1))0*1) + 0*1 = 0*1((0 + 1)0*1)* Vy biu thc chnh quy c dng : r = r312 + r313 = 0*1((0 + 1)0*1)*( + (0 + 1)(00)*) + 0(00)*
45
Chng III : tmt hu hn v biu thc chnh quy Cc k hiu t vng (token) trong mt ngn ng lp trnh th hu ht khng c s ngai l, c biu din nh cc tp hp chnh quy. Chng hn, cc nh danh ca ALGOL: cc ch ci vit hoa hoc thng, theo sau bi mt dy bt k ca ch ci (letter) hoc ch s (digit) vi di khng gii hn c th c biu din nh sau : (letter) (letter + digit)* trong "letter" thay th cho A + B +...+ Z + a + b +...+ z v "digit" l 0 + 1 +...+ 9. Mt v d khc, cc nh danh ca FORTRAN c di gii hn l 6 v cc ch ci ch cho php dng ch vit hoa hoc k hiu $ c biu din nh sau : (letter) ( + letter + digit)5 vi "letter" l $ + A + B + ... + Z . Trong SNOBOL, cc hng s s hc c th c biu din nh sau : ( + ) (digit + ( digit * + ) + digit+ ) Mt s cng c pht sinh b phn tch t vng nhn input nh mt dy cc biu thc chnh quy m t cc k hiu t vng v pht sinh mt tmt hu hn n gin nhn dng mi k hiu t vng. Thng thng, chng chuyn i biu thc chnh quy thnh mt NFA vi -dch chuyn v sau xy dng tp hp con cc trng thi c th pht sinh DFA mt cch trc tip hn l tm cch loi b cc php chuyn nhn . Mi trng thi kt thc xc nh k hiu t vng c th tm thy. Hm chuyn ca FA s c m ha bng mt trong vi cch nhm chim t khng gian hn so vi bng hm chuyn t chc di dng mng hai chiu. B phn tch t vng c thit lp bng cch pht sinh mt chng trnh c nh thng dch cc bng m, cng vi cc bng minh ha c th s nhn dng ca FA trn cc k hiu t vng (vit di dng cc biu thc chnh quy). B phn tch t vng dng ny c th c dng nh mt chng trnh con c lp (module) trong mt trnh bin dch ngn ng.
46
Chng III : tmt hu hn v biu thc chnh quy Hay chng hn, mt v d v x l chui khc c p dng cho vic tm kim theo mu trn cc trang Web. Trong tt c cc v d trn, k hiu * xc nh mi biu thc a1 + a2 + ... + an trong cc ai l tt c cc k t cho php trong my tnh tr k t xung dng (newline). Ta c th chuyn mt biu thc chnh quy r sang DFA chp nhn mi r. Ch rng s hin din ca k hiu * s cho php ta nhn dng mt thnh phn ca L(r) bt u t bt k v tr no trong dng. lm c iu ny, cc ng dng phi thc hin qu trnh chuyn i t mt biu thc chnh quy sang NFA. V v c ch hot ng ca NFA kh phc tp nn thng thng ngay sau , NFA li phi c bin i tip thnh dng DFA tng ng. Tuy nhin, s chuyn i t mt biu thc chnh quy sang DFA tn nhiu thi gian hn vic s dng DFA kim tra cc mu bng cch duyt qua chng mt ln, tuy DFA c th c s trng thi l hm m ca di biu thc chnh quy. Thc t, trong trnh son tho vn bn UNIX, biu thc chnh quy vi mi r c chuyn thnh mt NFA c -dch chuyn v sau NFA ny c m phng mt cch trc tip. Cu hi :
Hy t lin h mt s cc ng dng thc t khc dng ch tmt hu hn ? c
Tng kt chng III: Phn ni dung chng III tp trung nghin cu c ch hot ng ca cc dng tmt hu hn, mi tng quan gia chng, cng nh s tng ng ca chng vi biu thc chnh quy. Ty theo cc yu cu thc t ca ng dng, ta c th chuyn t dng phc tp nht sang cc dng n gin hn. C th tm tt s tng quan gia cc nh l trong chng ny theo s sau :
nh l 1
DFA
nh l 4
NFA
nh l 2
RE
nh l 3
NFA
47
BI TP CHNG III
b)
1 A 1 1 B 0 0 C 0 1 D
3.2. Xy dng cc s chuyn tmt hu hn chp nhn cc ngn ng sau trn b ch ci = {0, 1} a) Tp cc chui kt thc l 00. b) Tp cc chui c 3 k hiu 0 lin tip. c) Tp cc chui m k hiu th 3 k t cn phi ca chui l 1. d) Tp mi chui m bt c chui con no c di bng 5 u c cha t nht 2 con s 0. 3.3. Tm cc s chuyn tmt hu hn on nhn cc ngn ng sau : a) Tp cc chui trn {0, 1} c cha mt s chn cc s 0 v mt s l cc s 1 b) Tp cc chui trn {0, 1} c di chia ht cho 3. c) Tp cc chui trn {0, 1} khng cha 101 nh mt chui con. 3.4. Xy dng DFA tng ng vi mi NFA sau : a) N1({0,1,2,3},{a,b},1,0,{3}) vi 1 1 0 1 2 3 a {0, 1} {2} {3} {3} b {1} {2} {3} b) N2 ({0,1,2,3}, {a,b}, 2,0, {1,3}) vi 2 2 0 1 2 3 a {1, 3} {2} {3} b {1} {1, 2} {0} {0}
48
c)
a, b 1 a 2 a, b 3 a, b 4
d)
a, b 1 a, b a a 2 0 a, b 3 a, b a 4
3.5. Tm NFA khng c -dch chuyn nhn dng cng ngn ng vi cc NFA sau : a)
q0 a a, q1 a, b q2 a 1 c, q3
b)
0
q0
0
q2
q3
q1
3.6. Vit biu thc chnh quy v v NFA on nhn cc ngn ng sau : a) Tp hp cc chui trn = {1, 2, 3} sao cho k hiu cui cng c xut hin trc . b) Tp hp cc chui trn = {0, 1} trong c mt cp k t 0 cch nhau bi mt chui con c di 4i, vi i 0 no . 3.7. Vit biu thc chnh quy cho mi ngn ng sau trn = { 0, 1} : a) Tp hp cc chui trong mi cp 0 lin tip u xut hin trc mi cp 1 lin tip.
49
Chng III : tmt hu hn v biu thc chnh quy b) Tp hp cc chui cha nhiu nht mt cp 0 lin tip v nhiu nht mt cp 1 lin tip. 3.8. M t (bng li) ngn ng c cc biu thc chnh quy sau c t : a) 0(0 + 1)* 0 b) (0+ 1)*0(0 + 1) (0 + 1) c) (11+ 0)*(00+ 1) d) (1+ 01+ 001)*( + 0 + 00) e) [ 00 + 11 + (01+ 10) (00+ 11)*(01+ 10)]* 3.9. Chng t cc biu thc chnh quy sau k hiu cho cng mt ngn ng : (aa)* + (a) , (aa + aaaa)* , (aa)* (aa)* (aa)* , 3.10. V NFA vi -dch chuyn c cho bi cc biu thc chnh qui sau. Sau , hy chuyn sang DFA tng ng : a) ( a* + b*)* b) (( + a) b*)* c) (a + b)* abb (a + b)* d) ab + (a + bb) a*b e) (a + ab + aab)*(+ a+ aa) f) 10 + (0 + 11)0*1 g) 01 [ (( 10)*+ 111)* + 0]*1 3.11. Hy tm cc biu thc chnh qui tng ng vi cc s chuyn trng thi sau: a) b)
0 1 0 A 1 1 C 1 C 1 0 0 B A 0 1 0 B
BI TP LP TRNH
3.12. Vit chng trnh trong Pascal / C m phng mt FA chp nhn ngn ng c biu din bi biu thc chnh quy sau : [ A ... Z, a ... Z ]+ [ A ... Z, a ... Z, 0 ... 9, _ ]* + [ 0 ... 9]+ + op 3.13. Vit chng trnh cho ra mt FA tng ng khi u vo l mt biu thc chnh quy.
50
51