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 Chng 2 Ôtômat hu hn Chng Chng 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 MTT n MTT 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 – – VN PH VN 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 Chng Chng 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 Bng v Bng 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 bng v c trên bng v à à o o 5/ 5/ 56 56 Mô h Mô h ì ì nh c c nh c c u c u c á á c bng t c bng 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 bng v i trên bng 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 bng a bng 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 bng a w trên bng , , 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 ∈ ∈ Σ Σ * * Bng v Bng 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 Bt B B t t Tt 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 nm nm : : 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à trng thái đu, p = q0 δ(p, a) = q và δ(p, b) = q δ(p, a) = q q là trng thái cui, 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 trng đ ng trng đ 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 Dng 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 tha nhn câu vào w=110 (hay nhng câu có mt s l con 0 (hoc 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 cha đ i cha đ 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 trng đ ng trng đ 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 Gm nhng câu có “láo nháo các con a và b” ri kt thúc bi mt con b. Trong cuc sng : “Anh ta nói “rng thì là mà là” gia 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 hn n hn 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 tng t a tng t ôhh đđ ôhh đđ , n , n hng l hng 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 nm nm : : 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 nng c nng 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 nng c nng 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 đđ tng đng tng đng \ \ Hai ôtômat hh M v Hai ôtômat hh M v à à M M ’ ’ l l à à tng đng v tng đ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 hn n hn 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 bng v a bng 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 đđ tng đng v ôhh đđ tng đ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 hn n hn 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 ’ ’ ) ) tng đng v tng đ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 ∈ ∈ Σ Σ cha x cha 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 gn trng thái Thu gn trng 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 tng c tng 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 tng ng BTCQ tng 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 phng ph ng phng 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 chng p chng 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