Ngôn ngữ hình thức và Ôtômat - Chương 2 potx

10 311 0
Ngôn ngữ hình thức và Ôtômat - Chương 2 potx

Đang tải... (xem toàn văn)

Thông tin tài liệu

1 Ngôn ng Ngôn ng   h h ì ì nh th nh th   c c v v à à Ôtômat Ôtômat ( ( Formal Language & Automata Formal Language & Automata ) ) PGS.TS. Phan Huy Kh PGS.TS. Phan Huy Kh á á nh nh khanhph@vnn.vn khanhph@vnn.vn Chng 2 Ôtômat hu hn Chng Chng 2 2 Ôtômat h Ôtômat h   u h u h   n n 2/ 2/ 56 56 Tr Tr   u thu u thu   c c : : đ đ   u câu chuy u câu chuy   n n \ \ H H ì ì nh th nh th   c, h c, h ì ì nh th nh th   c ho c ho á á u u     i l i l   p t p t   nhiên nhiên u u Mô t Mô t   , q , q uy  uy    c, ch c, ch   t ch t ch   (không th (không th   b b á á c B c B   ) ) u u Nhu c Nhu c   u GQ v u GQ v   n đ n đ   : tin h : tin h   c/CNTT (ICT) c/CNTT (ICT) \ \ Ngôn ng Ngôn ng   NN NN u u CC CC   trao đ trao đ   i, liên l i, liên l   c c u u MTT n MTT n   hi hi   u chi v u chi v   con ng con ng   i ! i ! u u H H ì ì nh th nh th   c ho c ho á á ngôn ng ngôn ng   ! ! u u X X   lý (h lý (h   c v c v   ) NN : ) NN : ¬ ¬ Ph Ph á á t : (n t : (n ó ó i, vi i, vi   t ) sinh câu t ) sinh câu – – VN PH VN PH   M s M s   n sinh n sinh ¬ ¬ Nh Nh   n : (nghe, c n : (nghe, c   m th m th   ) ) – – ÔTÔMAT đo ÔTÔMAT đo á á n nh n nh   n n 3/ 3/ 56 56 Chng Chng 2 2 Ôtômat h Ôtômat h   u h u h   n n \ \ Ôtômat h Ôtômat h   u h u h   n đn đ n đn đ   nh nh u u Mô t Mô t   u u Mô h Mô h ì ì nh h nh h ó ó a a u u Bi Bi   u di u di   n ôtômat h n ôtômat h   u h u h   n n \ \ Ôtômat h Ôtômat h   u h u h   n không đn đ n không đn đ   nh nh u u Mô t Mô t   u u Kh Kh   b b   t t í í nh không đn đ nh không đn đ   nh nh \ \ Ôtômat h Ôtômat h   u h u h   n v n v à à c c á á c bi c bi   u th u th   c ch c ch í í nh qui nh qui u u Xây d Xây d   ng c ng c á á c ôtômat t c ôtômat t   c c á á c bi c bi   u th u th   c ch c ch í í nh qui nh qui u u Xây d Xây d   ng c ng c á á c ngôn ng c ngôn ng   ch ch í í nh quy t nh quy t   c c á á c ôtômat c ôtômat 4/ 4/ 56 56 Mô t Mô t   phi h phi h ì ì nh th nh th   c ôtômat h c ôtômat h   u h u h   n đn đ n đn đ   nh nh \ \ M M   t ôtômat h t ôtômat h   u h u h   n đn đ n đn đ   nh, ký hi nh, ký hi   u M, vi u M, vi   t t t t   t t ôhhđđ ôhhđđ ( ( DFA: Deterministic Finite State Automaton DFA: Deterministic Finite State Automaton ) ) g g   m c m c á á c ph c ph   n t n t   : : u u Bng v Bng v à à o (Input Tape) : o (Input Tape) : ¬ ¬ Ch Ch   a câu c a câu c   n x n x   lý g lý g   m nhi m nhi   u ô u ô ¬ ¬ M M   i ô ch i ô ch   a m a m   t ký t t ký t   thu thu   c m c m   t b t b   ng ch ng ch   Σ Σ n n à à o đ o đ ó ó u u M M   t đ t đ   u đ u đ   c ( c ( Read Head) Read Head) đ đ   c l c l   n l n l   t t t t   ng ký t ng ký t   trong ô trong ô u u M M   t t t t   p h p h   p h p h   u h u h   n c n c á á c tr c tr   ng th ng th á á i g i g   m : m : ¬ ¬ M M   t tr t tr   ng th ng th á á i đ i đ   u (Initial State) u (Initial State) ¬ ¬ M M   t s t s   tr tr   ng th ng th á á i trung gian i trung gian ¬ ¬ M M   t tr t tr   ng th ng th á á i cu i cu   i hay đ i hay đ   t đ t đ   c (Accepting States) c (Accepting States) u u M M   t h t h à à m chuy m chuy   n ti n ti   p (Transition Function) : p (Transition Function) : ¬ ¬ Chuy Chuy   n M sang tr n M sang tr   ng th ng th á á i ti i ti   p theo p theo t t   tr tr   ng th ng th á á i đang x i đang x é é t v t v à à t t   ký t ký t   v v   a đ a đ   c đ c đ   c trên bng v c trên bng v à à o o 5/ 5/ 56 56 Mô h Mô h ì ì nh c c nh c c   u c u c á á c bng t c bng t   6/ 6/ 56 56 Minh ho Minh ho   ôhhđđ ôhhđđ \ \ Ho Ho   t đ t đ   ng đo ng đo á á n nh n nh   n c n c   a ôhh nh sau a ôhh nh sau : : u u Câu v Câu v à à o w o w ∈ ∈ Σ Σ * * đ đ   c đ c đ   t t   m m ú ú t tr t tr á á i trên bng v i trên bng v à à o o u u L L ú ú c đ c đ   u, u, đ đ   u đ u đ   c c   v v   tr tr í í w(1) m w(1) m ú ú t tr t tr á á i nh i nh   t c t c   a bng a bng u u Ôhh đang Ôhh đang   tr tr   ng th ng th á á i đ i đ   u q u q 0 0 u u     u đ u đ   c đ c đ   c l c l   n l n l   t t t t   ng ký t ng ký t   c c   a w trên bng a w trên bng , , di chuy di chuy   n đ n đ   u đ u đ   c qua ph c qua ph   i v i v à à thay đ thay đ   i tr i tr   ng th ng th á á i i u u Ôhh d Ôhh d   ng khi m ng khi m   i ký t i ký t   c c   a w đã đ a w đã đ   c đ c đ   c h c h   t v t v à à th th   a nh a nh   n câu n câu , , ho ho   c h c h ó ó c gi c gi   a ch a ch   ng (không th ng (không th   a nh a nh   n câu v n câu v à à o) o)     u đ u đ   c di chuy c di chuy   n qua ph n qua ph   i theo chi i theo chi   u m u m   i tên i tên Câu v Câu v à à o w o w ∈ ∈ Σ Σ * * Bng v Bng v à à o o a a a a b b a a b b a a a a Tr Tr   ng th ng th á á i q i q i i 2 7/ 7/ 56 56 V V í í d d   m m   t s t s   ôtômat ôtômat Green Green Green Red Red Red Yellow Yellow Yellow C C   t đ t đ è è n t n t í í n hi n hi   u giao thông u giao thông Bt B B   t t Tt T T   t t Nh Nh   n n n n ú ú t t Nh Nh   n n n n ú ú t t N N ú ú t công t t công t   c thi c thi   t b t b   đi đi   n n q 1 q q 1 1 Ch Ch Ch   1 xu 1 xu M M á á y b y b á á n b n b á á o 5xu/t o 5xu/t   q 3 q q 3 3 1 xu 1 xu 2 xu 2 xu 1 xu 1 xu 2 xu 2 xu K K Nh Nh   n K nh n K nh   n b n b á á o v o v à à v v   l l   i tr i tr   ng th ng th á á i ch i ch   2 xu 2 xu 1 xu 1 xu q 2 q q 2 2 2 xu 2 xu 8/ 8/ 56 56 Mô t Mô t   h h ì ì nh th nh th   c ôtômat h c ôtômat h   u h u h   n đn đ n đn đ   nh nh \ \ M M   t ôhh đn đ t ôhh đn đ   nh đ nh đ   c bi c bi   u di u di   n h n h ì ì nh th nh th   c b c b   i b i b   nm nm : : u u M = (Q, M = (Q, Σ Σ , , δ δ , q , q 0 0 , F , F ) ) trong đ trong đ ó ó : : Q Q t t   p h p h   p h p h   u h u h   n c n c á á c tr c tr   ng th ng th á á i (State) i (State) Σ Σ b b   ng ch ng ch   v v à à o h o h   u h u h   n n δ δ = Q = Q × × Σ Σ → → Q l Q l à à h h à à m chuy m chuy   n ti n ti   p p (Transition Function) (Transition Function) q q 0 0 ∈ ∈ Q Q l l à à tr tr   ng ng th th á á i i đ đ   u u (Initial State) (Initial State) F F ⊆ ⊆ Q Q l l à à t t   p h p h   p c p c á á c tr c tr   ng th ng th á á i cu i cu   i i (Accepting States) (Accepting States) 9/ 9/ 56 56 Bi Bi   u di u di   n n ôtômat ôtômat \ \ Cho ôtômat M = (Q, Cho ôtômat M = (Q, Σ Σ , , δ δ , q , q 0 0 , F) , F) \ \ C C ó ó th th   bi bi   u di u di   n M b n M b   ng c ng c á á ch nh sau ch nh sau : : u u Li Li   t kê h t kê h   t c t c á á c th c th à à nh ph nh ph   n c n c   a M a M u u L L   p b p b   ng gi ng gi á á tr tr   c c   a h a h à à m d m d   ch chuy ch chuy   n n δ δ , , trong đ trong đ ó ó c c ó ó đ đ á á nh d nh d   u c u c á á c tr c tr   ng th ng th á á i đ i đ   u (q0) v u (q0) v à à cu cu   i i u u D D ù ù ng đ ng đ   th th   \ \ Th Th   c t c t   , n , n g g   i ta th i ta th   ng d ng d ù ù ng ng c c á á ch bi ch bi   u di u di   n n đ đ   th th   khi s khi s   tr tr   ng th ng th á á i c i c   a a ôtômat không qu ôtômat không qu á á l l   n n \ \ Trong m Trong m   t s t s   tr tr   ng h ng h   p p ng ng   i ta d i ta d ù ù ng ng c c á á ch bi ch bi   u di u di   n n ph ph   i h i h   p p li li   t kê th t kê th à à nh ph nh ph   n v n v à à l l   p b p b   ng gi ng gi á á tr tr   c c   a h a h à à m m d d   ch chuy ch chuy   n n δ δ 10/ 10/ 56 56 V V í í d d   bi bi   u di u di   n n ôtômat ôtômat q2q1q3 q3q0q2 q0q3q1 q1q2 q0 10 Ký t  đ  c vào Tr  ng thái \ \ X X é é t ôtômat h t ôtômat h   u h u h   n đn đ n đn đ   nh M nh M = (Q, = (Q, Σ Σ , , δ δ , q0, F) , q0, F) : : u u Σ Σ = { 0, 1 } = { 0, 1 } u u Q = { q0, q1, q2, q3 } Q = { q0, q1, q2, q3 } u u F = { q F = { q 0 0 } } u u M M   i ô c i ô c   a b a b   ng bi ng bi   u di u di   n m n m   t quan h t quan h   δ δ : : δ δ (q, a) =q (q, a) =q ’ ’ q , q q , q ’ ’ ∈ ∈ Q Q 11/ 11/ 56 56 Bi Bi   u di u di   n n ôtômat b ôtômat b   ng đ ng đ   th th   \ \ Cho ôtômat M = (Q, Cho ôtômat M = (Q, Σ Σ , , δ δ , q , q 0, 0, A) A) \ \ Quy  Quy    c bi c bi   u di u di   n M b n M b   ng đ ng đ   th th   nh sau nh sau : : u u M M   i tr i tr   ng th ng th á á i c i c   a M l a M l à à m m   t đ t đ   nh h nh h ì ì nh tròn nh tròn u u M M   i chuy i chuy   n ti n ti   p l p l à à m m   t cung n t cung n   i hai đ i hai đ   nh nh u u M M   i cung đ i cung đ   c đ c đ á á nh nhãn l nh nhãn l à à ký t ký t   đ đ   c đ c đ   c c u u Chi Chi   u c u c   a cung n a cung n   i hai đ i hai đ   nh cho bi nh cho bi   t s t s   thay đ thay đ   i tr i tr   ng th ng th á á i : i : ¬ ¬ N N   u u δ δ (p, (p, a a ) = q th ) = q th ì ì cung n cung n   i t i t   p sang q c p sang q c ó ó nhãn l nhãn l à à a a ∈ ∈ Σ Σ ¬ ¬ C C   ng c ng c ó ó th th   vi vi   t ( t ( p, p, a a , q) , q) ∈δ u u Tr Tr   ng th ng th á á i đ i đ   u c u c ó ó g g   n m n m   t d t d   u nh u nh   n > n > u u C C á á c tr c tr   ng th ng th á á i cu i cu   i đ i đ   c bi c bi   u di u di   n b n b   i c i c á á c vòng tròn k c vòng tròn k é é p p 12/ 12/ 56 56 Quy  Quy    c c c c á á ch v ch v   ôtômat : ôtômat : \ \ Cho ôtômat M = (Q, Cho ôtômat M = (Q, Σ Σ , , δ δ , q0, F) , q0, F) q > p q a p q a, b p p là trng thái đu, p = q0 δ(p, a) = q và δ(p, b) = q δ(p, a) = q q là trng thái cui, q ∈ F 3 13/ 13/ 56 56 V V í í d d   bi bi   u di u di   n n ôtômat b ôtômat b   ng đ ng đ   th th   \ \     th th   c c   a a ôtômat h ôtômat h   u h u h   n đn đ n đn đ   nh M trong v nh M trong v í í d d   tr tr   c c nh sau nh sau : : 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 q1 q1 q1 q0 q0 q0 q3 q3 q3 q2 q2 q2 q2q1q3 q3q0q2 q0q3q1 q1q2 q0 10 Ký t  đ  c vào Tr  ng thái 14/ 14/ 56 56 Ôtômat đo Ôtômat đo á á n nh n nh   n câu v n câu v à à o o \ \ Cho câu v Cho câu v à à o w = 110101 o w = 110101 \ \ Qu Qu á á tr tr ì ì nh đo nh đo á á n nh n nh   n nh sau n nh sau (ch (ch   v v   t t   ng trng đ ng trng đ   u đ u đ   c) : c) : δ δ (q0, (q0, 1 1 10101) 10101) ⇒ ⇒ δ δ (q1, (q1, 1 1 0101) 0101) ⇒ ⇒ δ δ (q0, (q0, 0 0 101) 101) ⇒ ⇒ δ δ (q2, (q2, 1 1 01) 01) ⇒ ⇒ δ δ (q3, (q3, 0 0 1) 1) ⇒ ⇒ δ δ (q1, (q1, 1 1 ) ) ⇒ ⇒ q0 q0 ôtômat ôtômat d d   ng v ng v à à th th   a nh a nh   n w do đ n w do đ   c h c h   t w v t w v à à q0 q0 ∈ ∈ F F 110101 110101 110101 110101 110101 110101 110101 q0 q1 q0 q2 q3 q1 q0 Dng 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 q1 q1 q1 q0 q0 q0 q3 q3 q3 q2 q2 q2 Tuy nhiên, M không tha nhn câu vào w=110 (hay nhng câu có mt s l con 0 (hoc con 1) Tuy nhiên, M không th Tuy nhiên, M không th   a nh a nh   n câu v n câu v à à o w=110 o w=110 (hay nh (hay nh   ng câu c ng câu c ó ó m m   t s t s   l l   con 0 (ho con 0 (ho   c con 1) c con 1)   M M 15/ 15/ 56 56 T T í í nh ch nh ch   t c t c   a c a c á á c câu đ c câu đ   c M th c M th   a nh a nh   n n \ \ T T   i m i m   i tr i tr   ng th ng th á á i q i q i i , M ghi nh , M ghi nh   m m   t t t t ì ì nh tr nh tr   ng nh ng nh   t đ t đ   nh nh c c   a câu v a câu v à à o đã đ o đã đ   c nh sau c nh sau : : q0 : ph q0 : ph   n đã đ n đã đ   c g c g   m m m m   t s t s   ch ch   n n s s   0 v 0 v à à m m   t s t s   ch ch   n n s s   1 1 q1 : ph q1 : ph   n đã đ n đã đ   c g c g   m m m m   t s t s   ch ch   n n s s   0 v 0 v à à m m   t s t s   l l   s s   1 1 q2 : ph q2 : ph   n đã đ n đã đ   c g c g   m m m m   t s t s   l l   s s   0 v 0 v à à m m   t s t s   ch ch   n n s s   1 1 q3 : ph q3 : ph   n đã đ n đã đ   c g c g   m m m m   t s t s   l l   s s   0 v 0 v à à m m   t s t s   l l   s s   1 1 V V ì ì q0 q0 ∈ ∈ F nên : F nên : u u Ch Ch   nh nh   ng câu c ng câu c ó ó m m   t s t s   ch ch   n n s s   0 v 0 v à à m m   t s t s   ch ch   n n s s   1 1 m m   i đ i đ   c M th c M th   a nh a nh   n n u u Hay c Hay c ó ó th th   n n ó ó i : M ch i : M ch   th th   a nh a nh   n nh n nh   ng câu ng câu c c ó ó m m   t s t s   ch ch   n n s s   0 v 0 v à à m m   t s t s   ch ch   n n s s   1 1 16/ 16/ 56 56 Kh Kh á á i ni i ni   m h m h ì ì nh tr nh tr   ng (C ng (C   u h u h ì ì nh) nh) \ \ Cho ôtômat hh M, m Cho ôtômat hh M, m   t h t h ì ì nh tr nh tr   ng (Configuration) c ng (Configuration) c   a M : a M : u u l l à à c c   p (q, w) p (q, w) ∈ ∈ Q Q ×Σ ×Σ * * ký hi ký hi   u C = (q, w) u C = (q, w) q q ∈ ∈ Q, w ph Q, w ph   n còn l n còn l   i cha đ i cha đ   c c c c   a câu v a câu v à à o o \ \ C C huy huy   n ti n ti   p (Transition) m p (Transition) m   t b t b   c (one step) trong M c (one step) trong M (q, w) (q, w)   M M (q (q ’ ’ , w , w ’ ’ ), n ), n   u v u v à à ch ch   n n   u ( u ( n n   u u ) ) : : u u w = w = a a w w ’ ’ , , a a ∈ ∈ Σ Σ u u q q ’ ’ = = δ δ (q, (q, a a ) ) \ \ C C huy huy   n ti n ti   p nhi p nhi   u b u b   c trong M, (q, w) c trong M, (q, w)   M M * * (q (q ’ ’ , w , w ’ ’ ) ) n n   u u : : u u ∃ ∃ k k ≥ ≥ 0 v 0 v à à c c á á c h c h ì ì nh tr nh tr   ng (q ng (q i i , w , w i i ), 0 ), 0 ≤ ≤ i i ≤ ≤ k sao cho k sao cho : : u u (q, w) = (q0, w0) (q, w) = (q0, w0) u u (q (q ’ ’ , w , w ’ ’ ) = (q ) = (q k k , w , w k k ) ) u u ∀ ∀ i, 0 i, 0 ≤ ≤ i <k, (q i <k, (q i i , w , w i i ) )   M M (q (q i+1 i+1 , w , w i+1 i+1 ) ) q’ a q 17/ 17/ 56 56 M đo M đo á á n nh n nh   n câu c n câu c   a a ngôn ng ngôn ng   \ \ Ôtômat M đo Ôtômat M đo á á n nh n nh   n (Recognition) câu v n (Recognition) câu v à à o w b o w b   ng c ng c á á ch ch th th   c hi c hi   n dãy chuy n dãy chuy   n ti n ti   p sau p sau : : (q0, w) (q0, w)   M M (q1, w1) (q1, w1)   M M (q2, w2) (q2, w2)   M M   M M (qn, (qn, ε ε ) ) trong đ trong đ ó ó q0 l q0 l à à tr tr   ng th ng th á á i đ i đ   u, u, ε ε l l à à câu r câu r   ng ng \ \ M M   t câu w đ t câu w đ   c th c th   a nh a nh   n b n b   i ôtômat M n i ôtômat M n   u : u : (q0, w) (q0, w)   M M * * (q, (q, ε ε ), q ), q ∈ ∈ F F \ \ Ngôn ng Ngôn ng   đ đ   c th c th   a nh a nh   n b n b   i M, vi i M, vi   t quy  t quy    c L(M) : c L(M) : L(M) = { w L(M) = { w ∈Σ ∈Σ * * ⏐ ⏐ (q0, w) (q0, w)   M M * * (q, (q, ε ε ), q ), q ∈ ∈ F } F } 18/ 18/ 56 56 Ôtômat đo Ôtômat đo á á n nh n nh   n câu v n câu v à à o o \ \ Cho câu v Cho câu v à à o w = 110101 o w = 110101 \ \ Qu Qu á á tr tr ì ì nh đo nh đo á á n nh n nh   n nh sau n nh sau (ch (ch   v v   t t   ng trng đ ng trng đ   u đ u đ   c) : c) : (q0, (q0, 1 1 10101) 10101)   M M (q1, (q1, 1 1 0101) 0101)   M M (q0, (q0, 0 0 101) 101)   M M (q2, (q2, 1 1 01) 01)   M M (q3, (q3, 0 0 1) 1)   M M (q1, (q1, 1 1 ) )   M M ( ( q0, q0, ε ε ) ) ôtômat ôtômat d d   ng v ng v à à th th   a nh a nh   n w do đ n w do đ   c h c h   t w v t w v à à q0 q0 ∈ ∈ F F L(M) g L(M) g   m c m c á á c câu c c câu c ó ó m m   t s t s   ch ch   n n s s   0 v 0 v à à m m   t s t s   ch ch   n n s s   1 1 1 1 0 0 0 0 0 0 1 1 0 0 1 1 1 1 q1 q1 q1 q 0 q q 0 0 q3 q3 q3 q2 q2 q2 4 19/ 19/ 56 56 Gm nhng câu có “láo nháo các con a và b” ri kt thúc bi mt con b. Trong cuc sng : “Anh ta nói “rng thì là mà là” gia láo nháo các câu ! G G   m nh m nh   ng câu ng câu c c ó ó “ “ l l á á o nh o nh á á o c o c á á c con a v c con a v à à b b ” ” r r   i k i k   t th t th ú ú c b c b   i m i m   t con b. t con b. Trong cu Trong cu   c s c s   ng : ng : “ “ Anh ta Anh ta n n ó ó i i “ “ r r   ng th ng th ì ì l l à à m m à à l l à” à” gi gi   a a l l á á o nh o nh á á o c o c á á c câu ! c câu ! M M   t s t s   v v í í d d   1 1 \ \ L(M) l L(M) l à à ngôn ng ngôn ng   g g   m c m c á á c câu k c câu k   t th t th ú ú c b c b   i b i b u u L(M) = (a+b) L(M) = (a+b) * * b b u u V V í í d d   aaabbb = a aaabbb = a 3 3 b b 3 3 ∈ ∈ L(M) L(M) \ \ B B à à i t i t   p t p t   i l i l   p : p : Ki Ki   m tra c m tra c á á c câu : c câu : u u w = bababaab w = bababaab ∈ ∈ L(M) ? L(M) ? u u w = bababaa w = bababaa ∈ ∈ L(M) ? L(M) ? D D ù ù ng c ng c á á ch vi ch vi   t g t g   n : n : q q 0 0 b b ababaab ababaab > > q q 1 1 a a babaab> babaab> b b a a q1 q1 q1q0 q0 q0 a a b b 20/ 20/ 56 56 M M   t s t s   v v í í d d   2 2 a a b b q1 q1 q1q0 q0 q0 b b a a q2 q2 q2 b b a a \ \ L(M) l L(M) l à à ngôn ng ngôn ng   không ch không ch   a hai ch a hai ch   a liên ti a liên ti   p p u u V V í í d d   bbaba bbaba ∈ ∈ L(M) L(M) \ \ B B à à i t i t   p t p t   i l i l   p : p : Ki Ki   m tra c m tra c á á c câu : c câu : u u w = bababab w = bababab ∈ ∈ L(M) ? L(M) ? u u w = aababb w = aababb ∈ ∈ L(M) ? L(M) ? 21/ 21/ 56 56 C C á á c ôtômat h c ôtômat h   u h u h   n đn đ n đn đ   nh nh \ \ Nh Nh   ng ôtômat h ng ôtômat h   u h u h   n v n v   a x a x é é t tr t tr   cc đây đ cc đây đ   u u đn đ đn đ   nh nh v v   i đ i đ   c t c t í í nh : nh : u u T T   i m i m   i th i th   i đi i đi   m, ôhh ch m, ôhh ch   đ đ   c duy nh c duy nh   t m t m   t ký t t ký t   a a ∈ ∈ Σ, Σ, a a ≠ ≠ ε ε u u V V   i m i m   i tr i tr   ng th ng th á á i q, i q, sau khi ôhh đ sau khi ôhh đ   c xong a, c xong a, luôn đ luôn đ   t đ t đ   c c m m   t tr t tr   ng th ng th á á i x i x á á c đ c đ   nh q nh q ’ ’ Ngh Ngh   a l a l à à chuy chuy   n ti n ti   p : p : δ δ (q, a) = q (q, a) = q ’ ’ ⊆ ⊆ Q Q luôn đn đ luôn đn đ   nh (hay TI nh (hay TI   N  N    NH) NH) 22/ 22/ 56 56 Ôtômat h Ôtômat h   u h u h   n không đn đ n không đn đ   nh nh \ \ Ôtômat h Ôtômat h   u h u h   n không đn đ n không đn đ   nh (ô nh (ô hh kđđ hh kđđ ) ) (NFA (NFA - - Non Non - - deterministic Finite deterministic Finite - - State Automata) State Automata) c c ó ó c c á á c đ c đ   c t c t í í nh : nh : u u C C ù ù ng m ng m   t ký t t ký t   , m , m   t tr t tr   ng th ng th á á i c i c ó ó th th   c c ó ó nhi nhi   u chuy u chuy   n ti n ti   p, p, ngh ngh   a l a l à à δ δ (q, a) = q (q, a) = q ’ ’ ⊆ ⊆ Q Q u u T T   n t n t   i chuy i chuy   n ti n ti   p cho câu r p cho câu r   ng ng δ δ (q, (q, ε ε ) = q ) = q ’ ’ ⊆ ⊆ Q Q (ngh (ngh   a l a l à à đ đ   u đ u đ   c không ti c không ti   n t n t   i khi đ i khi đ   c câu v c câu v à à o) o) u u C C ó ó th th   c c ó ó c c á á c chuy c chuy   n ti n ti   p (nh p (nh ó ó m c m c á á c chuy c chuy   n ti n ti   p) p) cho c cho c á á c ph c ph   n câu c n câu c ó ó đ đ   d d à à i l i l   n hn n hn 1, 1, ngh ngh   a l a l à à δ δ (q, u) = q (q, u) = q ’ ’ ⊆ ⊆ Q, u Q, u ∈ ∈ Σ Σ * * , |u| > 1 , |u| > 1 23/ 23/ 56 56 Nh Nh   n x n x é é t t \ \ M M   t ôhh kđđ đ t ôhh kđđ đ   c đ c đ   nh ngh nh ngh   a h a h ì ì nh th nh th   c gi c gi   ng ôhh đđ ng ôhh đđ \ \ S S   kh kh á á c nhau th c nhau th   hi hi   n n   : : u u V V   i i ôhh đđ l ôhh đđ l à à h h à à m chuy m chuy   n ti n ti   p p δ δ (Transition Function) (Transition Function) u u V V   i i ôhh kđđ l ôhh kđđ l à à quan h quan h   chuy chuy   n ti n ti   p p Δ Δ (Transition Relation) (Transition Relation) đ đ   c đ c đ   nh ngh nh ngh   a tng t a tng t   ôhh đđ ôhh đđ , n , n hng l hng l   n n n n à à y vi y vi   c chuy c chuy   n n ti ti   p l p l à à không duy nh không duy nh   t t ¬ ¬ V V   i m i m   i tr i tr   ng th ng th á á i, c i, c ó ó th th   c c ó ó nhi nhi   u tr u tr   ng th ng th á á i ti i ti   p theo cho m p theo cho m   i i ký t ký t   đ đ   c v c v à à o, ch o, ch   ng h ng h   n n δ( δ( q q , , a a ) ) cho q1 v cho q1 v à à q2 q2 ¬ ¬ S S   d d   ng b ng b   ba ba ( ( p, p, σ σ , q , q ) ) đ đ   n n ó ó i r i r   ng n ng n   u ký t u ký t   đ đ   c v c v à à o l o l à à σ σ th th ì ì c c ó ó th th   chuy chuy   n t n t   tr tr   ng th ng th á á i p sang tr i p sang tr   ng th ng th á á i q i q ¬ ¬ T T   i m i m   i th i th   i đi i đi   m đ m đ   u đ u đ   c c c c ó ó th th   đ đ   c m c m   t ph t ph   n câu u n câu u ∈ ∈ Σ Σ * * 24/ 24/ 56 56     nh ngh nh ngh   a h a h ì ì nh th nh th   c ôhh kđđ c ôhh kđđ \ \ Ôtômat h Ôtômat h   u h u h   n không đn đ n không đn đ   nh l nh l à à b b   nm nm : : M M = = ( ( Q, Q, Σ Σ , , Δ Δ , q0, A , q0, A ) ) trong đ trong đ ó ó : : Q l Q l à à t t   p h p h   p h p h   u h u h   n c n c á á c tr c tr   ng th ng th á á i i Σ Σ l l à à b b   ng ch ng ch   h h   u h u h   n n Δ Δ ⊂ ⊂ ( ( Q Q × × Σ Σ * * × × Q Q ) ) l l à à quan h quan h   chuy chuy   n ti n ti   p p q0 q0 ∈ ∈ Q l Q l à à tr tr   ng th ng th á á i đ i đ   u u F F ⊆ ⊆ Q l Q l à à t t   p h p h   p p c c á á c c tr tr   ng th ng th á á i th i th   a nh a nh   n n 5 25/ 25/ 56 56 V V í í d d   ôhh kđđ ôhh kđđ \ \ Cho ôhh kđđ Cho ôhh kđđ : : u u M M = = ( ( { q0, q1, q2, q3, q4 }, { q0, q1, q2, q3, q4 }, { 0, 1 }, { 0, 1 }, Δ Δ , , q0, q0, { q2, q4 }) { q2, q4 }) u u v v   i i Δ Δ đ đ   c cho nh sau c cho nh sau : : { q4 }{ q4 }q4 ∅ { q4 }q3 { q2 }{ q2 }q2 { q2 } ∅ q1 { q0, q1 }{ q0, q3 }q0 10 > 0 q0 q1 1 0, 1 1 0 0, 1 0, 1 q3 q2 q4 26/ 26/ 56 56 V V í í d d   ôhh kđđ ôhh kđđ đo đo á á n nh n nh   n câu n câu \ \ Cho w Cho w = = 01001 01001 ôhh kđđ M ôhh kđđ M đo đo á á n nh n nh   n nh sau n nh sau : : (q0, (q0, 0 0 1001) 1001)   M M (q0, (q0, 1 1 001) 001)   M M (q0, (q0, 0 0 01) 01)   M M (q3, (q3, 0 0 1) 1)   M M (q4, (q4, 1 1 ) )   M M (q4, (q4, ε ε ) ) Câu w đ Câu w đ   c M th c M th   a nh a nh   n v n v ì ì : : ¬ ¬ M đ M đ   c h c h   t câu t câu ¬ ¬ M M   tr tr   ng th ng th á á i cu i cu   i i L(M) = (0+1) L(M) = (0+1) * * 00(0+1) 00(0+1) * * + (0+1) + (0+1) * * 11(0+1) 11(0+1) * * > 0 q0 q1 1 0, 1 1 0 0, 1 0, 1 q3 q2 q4 27/ 27/ 56 56 Kh Kh   nng c nng c ó ó nhi nhi   u chuy u chuy   n ti n ti   p p   M M (q3, 1 001)   M M (q1, 0 01) (q0, 01001)   M M (q4, ε)   M M (q4, 1 )   M M (q3, 0 1)   M M (q0, 1 001) h h ó ó c ! c !   M M (q3, 1 )   M M (q0, 0 01)   M M (q0, 0 1)   M M (q0, ε)   M M (q0, 1 ) > 0 q0 q1 1 0, 1 1 0 0, 1 0, 1 q3 q2 q4 28/ 28/ 56 56 V V í í d d   ôhh kđđ ôhh kđđ \ \ Ngôn ng Ngôn ng   đ đ   c th c th   a nh a nh   n b n b   i ôtômat M : i ôtômat M : L L ( ( M M ) ) = = (( (( a a ∪ ∪ ab ab ) ) * * bbbb bbbb Σ Σ * * ) ) ∪ ∪ (( (( a a ∪ ∪ ab ab ) ) * * abb abb ( ( aa aa ) ) * * a a Σ Σ * * ) ) q2 > a q 4 q 3 q 1 b bbb ab q 0 aa ε a, b b a 29/ 29/ 56 56 V V í í d d   ôhh kđđ ôhh kđđ \ \ Ngôn ng Ngôn ng   đ đ   c th c th   a nh a nh   n b n b   i ôtômat M : i ôtômat M : L L ( ( M M ) ) = = Σ Σ * * ab ab ( ( ab ab ) ) * * ngh ngh   a l a l à à t t   p h p h   p c p c á á c câu k c câu k   t th t th ú ú c c í í t nh t nh   t m t m   t l t l   n l n l   p ab p ab V V í í d d   , câu aaabab , câu aaabab ∈ ∈ L(M) L(M) > aaab q1 b ab q0 q2 30/ 30/ 56 56 C C huy huy   n ti n ti   p trong ôhh kđđ p trong ôhh kđđ Cho ôhh kđđ M Cho ôhh kđđ M \ \ C C huy huy   n ti n ti   p m p m   t b t b   c trong M c trong M (q, w) (q, w)   M M (q (q ’ ’ , w , w ’ ’ ) ) n n   u u : : w w = = uw uw ’ ’ : câu w b : câu w b   t đ t đ   u b u b   i ti i ti   n t n t   u u ∈ ∈ Σ Σ * * ( ( q, u, q q, u, q ’ ’ ) ) ∈ ∈ Δ Δ \ \ C C huy huy   n ti n ti   p nhi p nhi   u b u b   c trong M c trong M (q, w) (q, w)   M M * * (q (q ’ ’ , w , w ’ ’ ) ) n n   u u : : u u ∃ ∃ k k ≥ ≥ 0 v 0 v à à c c á á c h c h ì ì nh tr nh tr   ng (q ng (q i i , w , w i i ), 0 ), 0 ≤ ≤ i i ≤ ≤ k sao cho k sao cho : : u u (q, w) = (q0, w0) (q, w) = (q0, w0) u u (q (q ’ ’ , w , w ’ ’ ) = (q ) = (q k k , w , w k k ) ) u u ∀ ∀ i, 0 i, 0 ≤ ≤ i <k, (q i <k, (q i i , , wi wi ) )   M M (q (q i+1 i+1 , w , w i+1 i+1 ) ) 6 31/ 31/ 56 56   á á nh gi nh gi á á c c á á c ôhh kđđ c ôhh kđđ \ \ Th Th   c t c t   : : u u T T í í nh không đn đ nh không đn đ   nh không thêm kh nh không thêm kh   nng c nng c   a c a c á á c ôhh c ôhh u u C C ó ó th th   thay th thay th   m m   t t ôhh kđđ ôhh kđđ b b   i m i m   t t ôhh đđ ôhh đđ tng đng tng đng \ \ Hai ôtômat hh M v Hai ôtômat hh M v à à M M ’ ’ l l à à tng đng v tng đng v   i nhau i nhau n n   u c u c ù ù ng th ng th   a nh a nh   n m n m   t ngôn ng t ngôn ng   : L(M) = L(M : L(M) = L(M ’ ’ ) ) \ \ Phân bi Phân bi   t gi t gi   a a ôhh kđđ ôhh kđđ NFA v NFA v à à m m   t t ôhh đđ ôhh đđ DFA DFA : : u u T T   n t n t   i c i c á á c chuy c chuy   n ti n ti   p trên c p trên c á á c ph c ph   n câu v n câu v à à o (câu con) o (câu con) c c ó ó đ đ   d d à à i l i l   n hn n hn 1 1 u u T T   n t n t   i c i c á á c chuy c chuy   n ti n ti   p cho c p cho c ù ù ng m ng m   t tr t tr   ng th ng th á á i v i v à à c c ù ù ng m ng m   t t n n   i dung c i dung c   a bng v a bng v à à o (t o (t í í nh không đn đ nh không đn đ   nh) nh) 32/ 32/ 56 56 Xây d Xây d   ng ôhh đđ M ng ôhh đđ M ’ ’ t t   ôhh kđđ M ôhh kđđ M \ \ Cho tr Cho tr   c ôhh kđđ M c ôhh kđđ M , , L(M) l L(M) l à à ngôn ng ngôn ng   đ đ   c M th c M th   a nh a nh   n, n, khi đ khi đ ó ó : : u u C C ó ó th th   xây d xây d   ng ôhh đđ M ng ôhh đđ M ’ ’ t t   t t   ôhh kđđ M ôhh kđđ M u u M M ’ ’ l l à à ôhh đđ tng đng v ôhh đđ tng đng v   i M, L(M i M, L(M ’ ’ ) = L(M) ) = L(M) \ \ Vi Vi   c xây d c xây d   ng M ng M ’ ’ g g   m hai giai đo m hai giai đo   n : n : u u Giai đo Giai đo   n 1 : n 1 : Kh Kh   b b   c c á á c chuy c chuy   n ti n ti   p c p c ó ó đ đ   d d à à i >1 c i >1 c   a M, nh a M, nh   n đ n đ   c M1 c M1 u u Giai đo Giai đo   n 2 : n 2 : Kh Kh   b b   t t í í nh không đn đ nh không đn đ   nh c nh c   a M1 nh a M1 nh   n đ n đ   c M c M ’ ’ 33/ 33/ 56 56 Kh Kh   b b   c c á á c chuy c chuy   n ti n ti   p c p c ó ó đ đ   d d à à i >1 i >1 \ \ Cho NFA M Cho NFA M = = ( ( Q, Q, Σ Σ , , Δ Δ , q0, F , q0, F ) ) , , x x ây d ây d   ng M1 ng M1 = = (Q (Q 1 1 , , Σ Σ 1 1 , , Δ Δ 1 1 , q0 , q0 1 1 , F , F 1 1 ), ), trong đ trong đ ó ó : : u u Q1 = Q, q0 Q1 = Q, q0 1 1 = q0 = q0 , , Δ Δ 1 = 1 = Δ Δ v v à à F F 1 1 = F = F u u V V   i m i m   i chuy i chuy   n ti n ti   p p ( ( q, u, q q, u, q ’ ’ )∈Δ )∈Δ c c ó ó u = u = σ σ 1 1 σ σ 2 2 , , σ σ k k (k>1) (k>1) : : ¬ ¬ Lo Lo   i b i b   chuy chuy   n ti n ti   p n p n à à y kh y kh   i i Δ Δ 1 1 ¬ ¬ Thêm k Thêm k - - 1 tr 1 tr   ng th ng th á á i m i m   i p i p 1 1 , p , p 2 2 , , p , , p k k - - 1 1 v v à à o Q1 o Q1 ¬ ¬ Thêm k chuy Thêm k chuy   n ti n ti   p m p m   i v i v à à o o Δ Δ 1 : 1 : (q, (q, σ σ 1 1 , p , p 1 1 ), (p ), (p 1 1 , , σ σ 2 2 , p , p 2 2 ), . . ., (p ), . . ., (p k k - - 1 1 , , σ σ k k , q , q ’ ’ ) ) \ \ M1 nh M1 nh   n đ n đ   c không ch c không ch   a c a c á á c chuy c chuy   n ti n ti   p trên câu c p trên câu c ó ó đ đ   d d à à i l i l   n hn n hn 1, ngh 1, ngh   a l a l à à ∀ ∀ (q, u, q (q, u, q ’ ’ ) ) ∈ ∈ Δ Δ 1, |u| 1, |u| ≤ ≤ 1 1 q abc q’ q a p 1 b p 2 c q’ 34/ 34/ 56 56 Kh Kh   b b   t t í í nh không đn đ nh không đn đ   nh nh \ \ Gi Gi   s s   M = (Q, M = (Q, Σ Σ , , Δ Δ , q0, F , q0, F ) ) trong đ trong đ ó ó : : u u M M   i chuy i chuy   n ti n ti   p p ( ( q, u, q q, u, q ’ ’ ) ) ∈ ∈ Δ Δ , |u| , |u| ≤ ≤ 1 1 ngh ngh   a l a l à à m m   i chuy i chuy   n ti n ti   p c p c   a NFA M c a NFA M c ó ó d d   ng : ng : ¬ ¬ ho ho   c c ( ( q, q, σ σ , q , q ’ ’ ) ) , , σ σ ∈ ∈ Σ Σ ¬ ¬ ho ho   c c ( ( q, q, ε ε , q , q ’ ’ ) ) \ \ Xây d Xây d   ng DFA M ng DFA M ’ ’ = ( Q = ( Q ’ ’ , , Σ Σ , , δ δ ’ ’ , q0 , q0 ’ ’ , F , F ’ ’ ) ) tng đng v tng đng v   i M i M qua hai b qua hai b   c nh sau c nh sau : : u u X X   lý c lý c á á c chuy c chuy   n ti n ti   p đ p đ   i v i v   i câu r i câu r   ng ng ε ε d d   ng ng ( ( q, q, ε ε , q , q ’ ’ ) ) g g   i t i t   t l t l à à chuy chuy   n ti n ti   p r p r   ng, ng, hay hay ε ε - - chuy chuy   n ti n ti   p p u u Xây d Xây d   ng DFA M ng DFA M ’ ’ 35/ 35/ 56 56 X X   lý c lý c á á c chuy c chuy   n ti n ti   p r p r   ng ng \ \ Th Th   c t c t   , m , m   t DFA không c t DFA không c ó ó c c á á c chuy c chuy   n ti n ti   p cho câu r p cho câu r   ng ng ε ε u u C C   n nh n nh ó ó m t m t   t c t c   c c á á c chuy c chuy   n ti n ti   p r p r   ng c ng c   a M a M v v   i m i m   t chuy t chuy   n ti n ti   p c p c   a m a m   t ph t ph   n t n t   cu cu   Σ Σ : : δ δ (q, a), a (q, a), a ∈Σ ∈Σ \ \ Xây d Xây d   ng t ng t   p h p h   p E p E ( ( q q ) ) nh sau nh sau : : u u V V   i m i m   i q i q ∈ ∈ Q Q c c   a M, E a M, E ( ( q q ) ) l l à à t t   p c p c á á c tr c tr   ng th ng th á á i c i c ó ó th th   đ đ   t đ t đ   c c t t   q b q b   i m i m   t dãy chuy t dãy chuy   n ti n ti   p trên câu r p trên câu r   ng ng : : E(q) = { p E(q) = { p ∈ ∈ Q Q | | (q, w) (q, w)   M M * * (p, (p, w) w) } } u u Nh v Nh v   y, v y, v   i q đã cho i q đã cho , t , t   p h p h   p E p E ( ( q q ) ) g g   m c m c á á c tr c tr   ng th ng th á á i p m i p m à à trong s đ trong s đ   bi bi   u di u di   n ôtômat, t n ôtômat, t   n t n t   i m i m   t đ t đ   ng đi t ng đi t   q sang q sang p c p c ó ó nhãn l nhãn l à à câu r câu r   ng ng ε ε q ε p 1 p2 ε 36/ 36/ 56 56 V V í í d d   xây d xây d   ng t ng t   p h p h   p E p E ( ( q q ) ) \ \ Cho ôtômat h Cho ôtômat h   u h u h   n không đn đ n không đn đ   nh M nh M \ \ Xây Xây d d   ng t ng t   p h p h   p E p E ( ( q q ) ) : : a ε q 1 ε > q 0 q 3 q 4 q 2 b ε b a a b a b a E(q 0 ) = { q 0 , q 1 , q 3 } E(q 1 ) = { q 1 } E(q 2 ) = { q 2 } E(q 3 ) = { q 3 } E(q 4 ) = { q 3 , q 4 } E E ( ( q q 0 ) ) = { = { q 0 , , q 1 , , q 3 } } E E ( ( q q 1 ) ) = { = { q 1 } } E E ( ( q q 2 ) ) = { = { q 2 } } E E ( ( q q 3 ) ) = { = { q 3 } } E E ( ( q q 4 ) ) = { = { q 3 , , q q 4 } } 7 37/ 37/ 56 56 Xây d Xây d   ng DFA M ng DFA M ’ ’ \ \ Gi Gi   s s   đã x đã x   lý lý ε ε - - chuy chuy   n ti n ti   p v p v à à XD xong c XD xong c á á c E c E ( ( q q ) ) , , ∀ ∀ q q ∈ ∈ Q Q Xây d Xây d   ng c ng c á á c ph c ph   n t n t   c c   a DFA M a DFA M ’ ’ ~ NFA M ~ NFA M nh sau nh sau : : u u M M ’ ’ = ( Q = ( Q ’ ’ , , Σ Σ , , δ δ ’ ’ , , q0 q0 ’ ’ , F , F ’ ’ ) ) u u M M   i tr i tr   ng th ng th á á i i q q ∈ ∈ Q Q ’ ’ c c   a M a M ’ ’ l l à à m m   t t t t   p con tr p con tr   ng th ng th á á i c i c   a M a M , , Q = 2 Q = 2 Q Q u u q0 q0 ’ ’ = = E E ( ( q0 q0 ) ) tr tr   ng th ng th á á i m i m à à t t   đ đ ó ó , M c , M c ó ó th th   ti ti   n h n h à à nh đ nh đ   c câu v c câu v à à o, k o, k   c c   ε ε u u δ δ ’ ’ ( ( q q , a) = , a) = ∪ ∪ { E(p) | { E(p) | ∃ ∃ q q ∈ ∈ q q : (q, a, p) : (q, a, p) ∈ ∈ Δ Δ } } u u F F ’ ’ = { = { q q ∈ ∈ Q Q ’ ’ | | q q ∩ ∩ F F ≠ ≠ ∅ ∅ } } 38/ 38/ 56 56 S đ S đ   thu thu   t to t to á á n xây d n xây d   ng DFA M ng DFA M ’ ’ Input Input : M = ( Q, : M = ( Q, Σ Σ , , Δ Δ , q0, F , q0, F ) ) Output Output : M : M ’ ’ = ( Q = ( Q ’ ’ , , Σ Σ , , δ δ ’ ’ , , q0 q0 ’ ’ , F , F ’ ’ ) ) Begin Begin q0 q0 ’ ’ = E(q0) ; Q = E(q0) ; Q ’ ’ = { = { q0 q0 ’ ’ } } Do Do L L   y y q q ∈ ∈ Q Q ’ ’ Do Do L L   y a y a ∈ ∈ Σ Σ T T ì ì m m p p = = δ δ ( ( q q , a) = , a) = ∪ ∪ { E(p) | { E(p) | ∃ ∃ q q ∈ ∈ q q : (q, a, p) : (q, a, p) ∈ ∈ Δ Δ } } Q Q ’ ’ = Q = Q ’ ’ ∪ ∪ { { p p } } While While Không còn a Không còn a ∈ ∈ Σ Σ cha x cha x   lý lý While While Q Q ’ ’ không thay đ không thay đ   i (không còn i (không còn p p n n à à o kh o kh á á c ph c ph   i thêm v i thêm v à à o Q o Q ’ ’ ) ) F F ’ ’ = = { { q q ∈ ∈ Q Q ’ ’ | | q q ∩ ∩ F F ≠ ≠ ∅ ∅ } } End End 39/ 39/ 56 56 V V í í d d   xây d xây d   ng DFA t ng DFA t   NFA NFA q q 3 3 , q , q 4 4 q q 1, 1, q q 3 3 q q 3 3 q q 3 3 q q 1, 1, q q 2 2 q q 4 4 ∅ ∅ ∅ ∅ q q 2 2 q q 2, 2, q q 3 3 q q 2 2 q q 1 1 ∅ ∅ ∅ ∅ q q 0 0 b b a a b a ε q 1 ε > q 0 q 3 q 4 q 2 ε b a a b a b a NFA NFA a {q 3 , q 4 } {q 2 , q 3 , q 4 } b {q 1 , q 2 , q 3 } > {q 0 , q 1 , q 3 } a b a b a DFA~NFA DFA~NFA b 40/ 40/ 56 56 V V í í d d   xây d xây d   ng DFA t ng DFA t   NFA NFA NFA NFA không c không c ó ó ε ε - - chuy chuy   n ti n ti   p : p : q q 2 2 ∅ ∅ q q 3 3 ∅ ∅ q q 3 3 q q 2 2 q q 2 2 q q 1 1 q q 1 1 q q 0 0 q q 0 0 , q , q 1 1 q q 0 0 b b a a b q 1 > q 0 q 3 q 2 b a b a a a L(M) = (a+b) * aa * b(ab) * {q0, q1} a {q 0 , q 2 } > {q 0 } b a a b a DFA~NFA DFA~NFA b b {q0, q1 , q3} 41/ 41/ 56 56 V V í í d d   xây d xây d   ng DFA t ng DFA t   NFA NFA ∅ ∅ D D D D B, D ∅ ∅ C C ∅ ∅ C C B B ∅ ∅ A, B, D A A 1 1 0 0 DFA~NFA DFA~NFA L(M) = 0 * (01) * 0 * NFA NFA ε B > A C 0 0 ε 1 D 0 E(A) = A, B, D E(B) = B, D E(C) = C E(D) = D E(A) = A, B, D E(B) = B, D E(C) = C E(D) = D D 0 B, D > A, B, D 1 0 0 1 A, B, C, D 0 C, D 0 ∅ ∅ 1 1 1 42/ 42/ 56 56 Quan h Quan h   gi gi   a ôhh v a ôhh v à à BTCQ BTCQ \ \ Cho L l Cho L l à à m m   t ngôn ng t ngôn ng   ch ch í í nh qui, M l nh qui, M l à à m m   t ôtômat h t ôtômat h   u h u h   n n \ \ M M   t ngôn ng t ngôn ng   l l à à ch ch í í nh qui nh qui n n   u v u v à à ch ch   n n   u u ngôn ng ngôn ng   đ đ ó ó đ đ   c th c th   a nh a nh   n b n b   i m i m   t ôtômat h t ôtômat h   u h u h   n : n : u u N N   u m u m   t ngôn ng t ngôn ng   đ đ   c ch c ch   đ đ   nh b nh b   i m i m   t bi t bi   u th u th   c ch c ch í í nh qui, nh qui, th th ì ì ngôn ng ngôn ng   đ đ ó ó đ đ   c th c th   a nh a nh   n b n b   i m i m   t ôtômat h t ôtômat h   u h u h   n n không đn đ không đn đ   nh nh L = L( L = L( α α ) ) ⇒ ⇒ L = L(M) L = L(M) u u M M   t ngôn ng t ngôn ng   đ đ   c th c th   a nh a nh   n b n b   i m i m   t ôtômat h t ôtômat h   u h u h   n n không đn đ không đn đ   nh l nh l à à ch ch í í nh qui nh qui L = L(M) L = L(M) ⇒ ⇒ L = L( L = L( α α ) ) 8 43/ 43/ 56 56 Xây d Xây d   ng ôhh t ng ôhh t   bi bi   u th u th   c ch c ch í í nh qui nh qui \ \ Minh ho Minh ho   t t í í nh ch nh ch   t : L = L( t : L = L( α α ) ) ⇒ ⇒ L = L = L L (M) (M) nh sau nh sau : : u u V V   i m i m   i BTCQ c s i BTCQ c s   α α = = ∅ ∅ , , α α = = ε ε , , α α = a, a = a, a ∈Σ ∈Σ , , XD đ XD đ   c m c m   t ôhh th t ôhh th   a nh a nh   n ngôn ng n ngôn ng   do do α α ch ch   đ đ   nh nh u u V V   i m i m   i BTCQ d i BTCQ d   ng ng α α =( =( α α 1 1 α α 2 2 ), ), α α =( =( α α 1 1 ∪α ∪α 2 2 ), v ), v à à α α =(( =(( α α 1 1 ) ) * * ) ) ¬ ¬ G G   i M i M 1 1 v v à à M M 2 2 l l   n l n l   t l t l à à c c á á c ôhh th c ôhh th   a nh a nh   n L( n L( α α 1 1 ) v ) v à à L( L( α α 2 2 ) ) ¬ ¬ XD đ XD đ   c ôhh M th c ôhh M th   a nh a nh   n L( n L( α) α) t t   M M 1 1 v v à à M M 2 2 44/ 44/ 56 56 Xây d Xây d   ng ôhh t ng ôhh t   c c á á c BTCQ c s c BTCQ c s   Ôtômat Ôtômat th th   a nh a nh   n n ∅ ∅ Ôtômat Ôtômat th th   a nh a nh   n n ε ε Ôtômat Ôtômat th th   a nh a nh   n n a a ∈Σ ∈Σ a a 45/ 45/ 56 56 Xây d Xây d   ng ôhh t ng ôhh t   c c á á c BTCQ đn gi c BTCQ đn gi   n n Ôtômat Ôtômat th th   a nh a nh   n n a a ∈Σ ∈Σ a a Ôtômat Ôtômat th th   a nh a nh   n n a a ∪ ∪ b b a a b b a a b b Ôtômat Ôtômat th th   a nh a nh   n n a a ∪ ∪ b b a, b a, b a a b b a a a a Ôtômat Ôtômat th th   a nh a nh   n n a a * * Thu gn trng thái Thu gn trng thái 46/ 46/ 56 56 XD ôhh M th XD ôhh M th   a nh a nh   n L( n L( α α 1 1 ∪α ∪α 2 2 ) ) t t   M M 1 1 v v à à M M 2 2 \ \ Cho c Cho c á á c ôhh : c ôhh : u u M M 1 1 = (Q = (Q 1 1 , , Σ Σ , , Δ Δ 1 1 , s , s 1 1 , F , F 1 1 ), c ), c ó ó L(M L(M 1 1 ) ) = = L( L( α α 1 1 ) ) u u M M 2 2 = (Q = (Q 2 2 , , Σ Σ , , Δ Δ 2 2 , s , s 2 2 , F , F 2 2 ), c ), c ó ó L(M L(M 2 2 ) ) = = L( L( α α 2 2 ) ) \ \ XD ôhh M th XD ôhh M th   a nh a nh   n L( n L( α α ) = ) = L( L( α α 1 1 ∪α ∪α 2 2 ) ) t t   M M 1 1 v v à à M M 2 2 : : M M M 1 M 1 M 2 M 2 M 1 M 1 M 2 M 2 Ghép hai ôtômat Ghép hai ôtômat 47/ 47/ 56 56 XD ôhh M th XD ôhh M th   a nh a nh   n L( n L( α α 1 1 α α 2 2 ) ) t t   M M 1 1 v v à à M M 2 2 \ \ Cho c Cho c á á c ôhh : c ôhh : u u M M 1 1 = (Q = (Q 1 1 , , Σ Σ , , Δ Δ 1 1 , s , s 1 1 , F , F 1 1 ), c ), c ó ó L(M L(M 1 1 ) ) = = L( L( α α 1 1 ) ) u u M M 2 2 = (Q = (Q 2 2 , , Σ Σ , , Δ Δ 2 2 , s , s 2 2 , F , F 2 2 ), c ), c ó ó L(M L(M 2 2 ) ) = = L( L( α α 2 2 ) ) \ \ XD ôhh M th XD ôhh M th   a nh a nh   n L( n L( α α ) = ) = L( L( α α 1 1 α α 2 2 ) ) t t   M M 1 1 v v à à M M 2 2 : : u u Q = Q Q = Q 1 1 ∪ ∪ Q Q 2 2 ; ; Δ Δ = = Δ Δ 1 1 ∪Δ ∪Δ 2 2 ∪ ∪ { (q, { (q, ε ε , s , s 2 2 ) ) ⏐ ⏐ q q ∈ ∈ F F 1 1 } ; q } ; q 0 0 = s = s 1 1 ; F = F ; F = F 2 2 M M M 1 M 1 M 2 M 2 M 1 M 1 M 2 M 2 Ghép hai ôtômat Ghép hai ôtômat 48/ 48/ 56 56 XD ôhh M th XD ôhh M th   a nh a nh   n L( n L( α α 1 1 * * ) ) t t   M M 1 1 v v à à M M 2 2 \ \ Cho ôhh : Cho ôhh : u u M M 1 1 = (Q = (Q 1 1 , , Σ Σ , , Δ Δ 1 1 , s , s 1 1 , F , F 1 1 ), c ), c ó ó L(M L(M 1 1 ) ) = = L( L( α α 1 1 ) ) \ \ XD ôhh M th XD ôhh M th   a nh a nh   n L( n L( α α ) = ) = L( L( α α 1 1 * * ) ) t t   M M 1 1 : : u u C C ó ó th th   gi gi   thi thi   t r t r   ng ng ε ε ∉ ∉ L(M L(M 1 1 ) ) M M M 1 M 1 M 1 M 1 ε ε ε ε 9 49/ 49/ 56 56 Xây d Xây d   ng c ng c á á c ngôn ng c ngôn ng   ch ch í í nh quy t nh quy t   c c á á c ôtômat c ôtômat \ \ Cho ôtômat M, c Cho ôtômat M, c   n xây d n xây d   ng m ng m   t bi t bi   u th u th   c ch c ch í í nh quy ch nh quy ch   đ đ   nh L(M), nh L(M), ngh ngh   a l a l à à : : u u L = L(M) L = L(M) ⇒ ⇒ L = L( L = L( α α ) ) \ \ C C á á ch xây d ch xây d   ng nh sau ng nh sau : : u u X X é é t c t c á á c đ c đ   ng đi t ng đi t   q q 0 0 đ đ   n q n q j j , q , q j j ∈ ∈ F trong M F trong M u u BTCQ BTCQ α α j j nh nh   n đ n đ   c tng c tng   ng v ng v   i m i m   i đ i đ   ng đi l ng đi l à à : : ¬ ¬ Gh Gh é é p (c p (c   ng) liên ti ng) liên ti   p c p c á á c nhãn c c nhãn c   a c a c á á c chuy c chuy   n ti n ti   p p ¬ ¬ C C á á c vòng l c vòng l   p đ p đ   c bi c bi   u di u di   n b n b   i ph i ph é é p to p to á á n l n l   p * p * u u BTCQ BTCQ α α mong mu mong mu   n l n l à à h h   p (Union) c p (Union) c   a c a c á á c c α α j j nh nh   n đ n đ   c c \ \ Riêng đ Riêng đ   i v i v   i c i c á á c vòng l c vòng l   p, c p, c   n xây d n xây d   ng BTCQ tng ng BTCQ tng   ng ng v v   i c i c á á c đ c đ   ng đi n ng đi n   i hai tr i hai tr   ng th ng th á á i c i c ó ó vòng l vòng l   p p 50/ 50/ 56 56 X X   lý c lý c á á c vòng l c vòng l   p b p b   ng quy n ng quy n   p p \ \ Cho ôtômat M v Cho ôtômat M v   i Q = { q i Q = { q 1 1 , q , q 2 2 , , q , , q n n } } \ \     t R(i, j, k) : t R(i, j, k) : u u L L à à t t   p h p h   p c p c á á c câu c câu α α ij ij = Path(q = Path(q i i , q , q j j ) ) u u Trong đ Trong đ ó ó Path(q Path(q i i , q , q j j ) l ) l à à đ đ   ng đi t ng đi t   q q i i đ đ   n q n q j j b b   ng c ng c á á ch ch ch ch   chuy chuy   n qua k n qua k - - 1 tr 1 tr   ng th ng th á á i { q i { q 1 1 , q , q 2 2 , , q , , q k k - - 1 1 } } \ \     nh ngh nh ngh   a R(i, j, k) v a R(i, j, k) v   i k = 1 ( i k = 1 ( c s c s   quy n quy n   p p   b b   c 1 c 1 ), ), x x   y ra hai tr y ra hai tr   ng h ng h   p : p : u u N N   u i u i ≠ ≠ j, j, α α ij ij = Path(q = Path(q i i , q , q j j ) = { w | (q ) = { w | (q i i , w, q , w, q j j ) ) ∈ ∈ Δ Δ } } u u N N   u i = j, u i = j, α α ij ij = Path(q = Path(q i i , q , q j j ) = { ) = { ε ε } } ∪ ∪ { w | (q { w | (q i i , w, q , w, q j j ) ) ∈ ∈ Δ Δ } } 51/ 51/ 56 56     nh ngh nh ngh   a R(i, j, k) v a R(i, j, k) v   i k > 1 i k > 1 \ \ V V   i k>1, i k>1, d d ù ù ng phng ph ng phng ph á á p quy n p quy n   p t p t í í nh nh α α ij ij = Path(q = Path(q i i , q , q j j ), ), ∀ ∀ q q i i , q , q j j : : u u Gi Gi   s s   ∀ ∀ α α ij ij đã đ đã đ   c xây d c xây d   ng ( ng ( gi gi   thi thi   t quy n t quy n   p p   b b   c k c k ) ) R(i, j, k) = Path(q R(i, j, k) = Path(q i i , q , q j j ) ) đi qua k đi qua k − − 1 tr 1 tr   ng th ng th á á i { q i { q 1 1 , q , q 2 2 , , q , , q k k - - 1 1 } } u u Xây d Xây d   ng R(i, j, k+1) ( ng R(i, j, k+1) ( quy n quy n   p p   b b   c k+1 c k+1 ) ) g g   m c m c á á c đ c đ   ng đi ch ng đi ch   đi qua đi qua { q { q 1 1 , q , q 2 2 , , q , , q k k - - 1 1 } : } : ¬ ¬ Path(q Path(q i i , q , q k k ) nh ) nh   n đ n đ   c t c t   q q i i đ đ   n q n q k k , , ¬ ¬ Path(q Path(q k k , q , q k k ) ) * * do nh do nh   n đ n đ   c t c t   q q k k đ đ   n q n q k k m m   t s t s   l l   n tu n tu   ý (*) ý (*) ¬ ¬ Path(q Path(q k k , q , q j j ) nh ) nh   n đ n đ   c t c t   q q k k đ đ   n q n q j j \ \ Ta c Ta c ó ó : : R(i, j, k+1) = R(i, j, k) R(i, j, k+1) = R(i, j, k) ∪ ∪ R(i, k, k) R(k, k, k) R(i, k, k) R(k, k, k) * * R(k, j, k) R(k, j, k) 52/ 52/ 56 56 Mô h Mô h ì ì nh c nh c á á c đ c đ   ng đi t ng đi t í í nh R(I, j, k) nh R(I, j, k) R(i, j, k), R(i, j, k), Path(q Path(q i i , q , q k k ) ) q i q j q j R(i, k, k), R(i, k, k), Path(q Path(q i i , q , q k k ) ) R(k, j, k), R(k, j, k), Path(q Path(q k k , q , q j j ) ) R(k, k, k) R(k, k, k) * * , , Path(q Path(q k k , q , q k k ) ) * * L(M) = R(1, j, n+1) q j ∈A L(M) = L(M) = R(1, j, n+1) R(1, j, n+1) q q j j ∈ ∈ A A ∪ ∪ Gi Gi   thi thi   t M c t M c ó ó n tr n tr   ng th ng th á á i, q i, q 1 1 l l à à tr tr   ng th ng th á á i đ i đ   u, ta c u, ta c ó ó : : 53/ 53/ 56 56 Nh Nh   n x n x é é t t \ \ Cho ôtômat M c Cho ôtômat M c ó ó n tr n tr   ng th ng th á á i, gi i, gi   s s   l l à à q q 1 1 tr tr   ng th ng th á á i đ i đ   u, u, v v à à M c M c ó ó m tr m tr   ng th ng th á á i cu i cu   i i q j 1 , , q j 2 , , , , q j m \ \ Ngôn ng Ngôn ng   th th   a nh a nh   n b n b   i M l i M l à à h h   p c p c   a t a t   t c t c   c c á á c t c t   p h p h   p p câu câu R(i, j, n+1) R(i, j, n+1) , xu , xu   t hi t hi   n trong c n trong c á á c chuy c chuy   n ti n ti   p t p t   tr tr   ng th ng th á á i i đ đ   u đ u đ   n m n m   t trong nh t trong nh   ng tr ng tr   ng th ng th á á i cu i cu   i, b i, b   ng c ng c á á ch v ch v   t t qua t qua t   t c t c   c c á á c tr c tr   ng th ng th á á i c i c   a M a M R(i, j R(i, j 2 2 , n+1) , n+1) q 1 q j 2 q j m q j 1 R(i, j R(i, j m m , n+1) , n+1) > > R(i, j R(i, j 1 1 , n+1) , n+1) 54/ 54/ 56 56 V V í í d d   \ \ Cho ôtômat M : Cho ôtômat M : u u V V   i k=1 v i k=1 v à à k k =2, =2, R(i, R(i, j, j, k) k) đ đ   c đ c đ   nh ngh nh ngh   a nh sau a nh sau : : q 1 q 2 a a > > b b a a b b R(i, j, k+1) = R(i, j, k) ∪ R(i, k, k) R(k, k, k)*R(k, j, k) R(i, j, k+1) = R(i, j, k) R(i, j, k+1) = R(i, j, k) ∪ ∪ R(i, k, k) R(k, k, k)*R(k, j, k) R(i, k, k) R(k, k, k)*R(k, j, k) ε∪ ε∪ b b a a b b ε∪ ε∪ a a k = 1 k = 1 ( ( ε∪ ε∪ b) b) ∪ ∪ a( a( ε∪ ε∪ a)*b a)*b R(2,2,1) R(2,2,1) ∪ ∪ R(2,1,1)R(1,1,1)*R(1,2,1) R(2,1,1)R(1,1,1)*R(1,2,1) R(2,2,k) R(2,2,k) a a ∪ ∪ a( a( ε∪ ε∪ a)*( a)*( ε∪ ε∪ a) a) R(2,1,1) R(2,1,1) ∪ ∪ R(2,1,1)R(1,1,1)*R(1,1,1) R(2,1,1)R(1,1,1)*R(1,1,1) R(2,1,k) R(2,1,k) b b ∪ ∪ ( ( ε∪ ε∪ a)( a)( ε∪ ε∪ a)*b a)*b R(1,2,1) R(1,2,1) ∪ ∪ R(1,1,1)R(1,1,1)*R(1,2,1) R(1,1,1)R(1,1,1)*R(1,2,1) R(1,2,k) R(1,2,k) ( ( ε∪ ε∪ a) a) ∪ ∪ ( ( ε∪ ε∪ a)( a)( ε∪ ε∪ a)*( a)*( ε∪ ε∪ a) a) R(1,1,1) R(1,1,1) ∪ ∪ R(1,1,1)R(1,1,1)*R(1,1,1) R(1,1,1)R(1,1,1)*R(1,1,1) R(1,1,k) R(1,1,k) k = 2 k = 2 10 55/ 55/ 56 56 T T ì ì m L(M) m L(M) \ \ Ngôn ng Ngôn ng   đ đ   c th c th   a nh a nh   n b n b   i M l i M l à à : : L(M) = L(M) = R(1, 2, 3) = R(1, 2, 3) = R(1, 2, 2) R(1, 2, 2) ∪ ∪ R(1, 2, 2)R(2, 2, 2) R(1, 2, 2)R(2, 2, 2) * * R(2, 2, 2) R(2, 2, 2) R(1, 2, 2)( R(1, 2, 2)( ε ε ∪ ∪ R(2, 2, 2) R(2, 2, 2) + + ) ) R(1, 2, 2)R(2, 2, 2) R(1, 2, 2)R(2, 2, 2) * * b b ∪ ∪ ( ( ε∪ ε∪ a)( a)( ε∪ ε∪ a) a) * * b( b( ( ( ε∪ ε∪ b) b) ∪ ∪ a( a( ε∪ ε∪ a)*b)* a)*b)* 56/ 56/ 56 56 B B à à i t i t   p chng p chng 2 2 1. 1. Xây d Xây d   ng c ng c á á c NFA th c NFA th   a nh a nh   n c n c á á c ngôn ng c ngôn ng   sau đây sau đây : : u u Bi Bi   u di u di   n nh n nh   phân c phân c á á c s c s   ch ch   n n u u C C á á c câu trên b c câu trên b   ng ch ng ch   Σ Σ = { a, b } ch = { a, b } ch   a aab ho a aab ho   c aaab c aaab 2. 2. Xây d Xây d   ng c ng c á á c DFA th c DFA th   a nh a nh   n c n c á á c ngôn ng c ngôn ng   đã cho đã cho   1 1 trên đây trên đây 3. 3. Xây d Xây d   ng c ng c á á c ôtômat th c ôtômat th   a nh a nh   n c n c á á c bi c bi   u th u th   c ch c ch í í nh quy : nh quy : u u a*b a*b u u ε ε ∪ ∪ (a (a ∪ ∪ aab)* aab)* 4. 4. Xây d Xây d   ng c ng c á á c bi c bi   u th u th   c ch c ch í í nh quy t nh quy t   ôtômat sau đây ôtômat sau đây : : a a q 0 q 2 q 1 > > b b b b a a b b . 2, 2) R(1, 2, 2) ∪ ∪ R(1, 2, 2) R (2, 2, 2) R(1, 2, 2) R (2, 2, 2) * * R (2, 2, 2) R (2, 2, 2) R(1, 2, 2) ( R(1, 2, 2) ( ε ε ∪ ∪ R (2, 2, 2) R (2, 2, 2) + + ) ) R(1, 2, 2) R (2, 2, 2) R(1, 2, 2) R (2, 2, 2) * * b b ∪ ∪ ( ( ε∪ ε∪ a)( a)( ε∪ ε∪ a) a) * * b( b( ( ( ε∪ ε∪ b) b) ∪ ∪ a( a( ε∪ ε∪ a)*b)* a)*b)* 56/ 56/ 56 56 B B à à i. 1 ( ( ε∪ ε∪ b) b) ∪ ∪ a( a( ε∪ ε∪ a)*b a)*b R (2, 2,1) R (2, 2,1) ∪ ∪ R (2, 1,1)R(1,1,1)*R(1 ,2, 1) R (2, 1,1)R(1,1,1)*R(1 ,2, 1) R (2, 2,k) R (2, 2,k) a a ∪ ∪ a( a( ε∪ ε∪ a)*( a)*( ε∪ ε∪ a) a) R (2, 1,1) R (2, 1,1) ∪ ∪ R (2, 1,1)R(1,1,1)*R(1,1,1) R (2, 1,1)R(1,1,1)*R(1,1,1) R (2, 1,k) R (2, 1,k) b b ∪ ∪ ( ( ε∪ ε∪ a)( a)( ε∪ ε∪ a)*b a)*b R(1 ,2, 1) R(1 ,2, 1) ∪ ∪ R(1,1,1)R(1,1,1)*R(1 ,2, 1) R(1,1,1)R(1,1,1)*R(1 ,2, 1) R(1 ,2, k) R(1 ,2, k) ( ( ε∪ ε∪ a) a) ∪ ∪ ( ( ε∪ ε∪ a)( a)( ε∪ ε∪ a)*( a)*( ε∪ ε∪ a) a) R(1,1,1) R(1,1,1) ∪ ∪ R(1,1,1)R(1,1,1)*R(1,1,1) R(1,1,1)R(1,1,1)*R(1,1,1) R(1,1,k) R(1,1,k) k. c ó ó L(M L(M 1 1 ) ) = = L( L( α α 1 1 ) ) u u M M 2 2 = (Q = (Q 2 2 , , Σ Σ , , Δ Δ 2 2 , s , s 2 2 , F , F 2 2 ), c ), c ó ó L(M L(M 2 2 ) ) = = L( L( α α 2 2 ) ) XD ôhh M th XD ôhh M th   a

Ngày đăng: 01/08/2014, 22:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan