Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 11 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
11
Dung lượng
389,37 KB
Nội dung
Ch ng Ôtômat đ y xu ng \ Ôtômat đ y xu ng Ngôn ng hình th c Ôtômat (Formal Language & Automata) Automata) u Ngôn ng phi ng c nh u Quan h v i cá ôtômat đ y xu ng u Tính ch t c a cá ngôn ng phi ng c nh \ Khá Khái ni m v phân tí tích nh lý “b m” m” ng d ng u PGS.TS Phan Huy Khá Khánh u khanhph@vnn.vn Các thu t gi i cho cá ngôn ng PNC \ Ôtômat đ y xu ng đ n đ nh Ch ng Ôtômat đ y xu ng u Nguyên lý u Hình th c hó hóa u Các ngôn ng PNC đ n đ nh u Tính ch t c a cá ngôn ng PNC đ n đ nh 2/65 2/65 Mô t ôtômat đ y xu ng (ôđx (ôđx)) Ho t đ ng c a ôđx \ M t ôđx không đ n đ nh (NSA : NonNon-deterministic Stack Automaton, hay NPA : NonNon-deterministic Pushdown Automaton) Automaton) có m t s ph n t t ng t ôhh : u M t b ng vào ch a câu s đ c đoán nh n ( mút trá trái nh t) u M t đ u đ c đ c l n l t cá ký t c a câu b ng u M t t p h p cá tr ng thá thái, đó có m t tr ng thá thái đ u và m t s tr ng thá thái cu i (tr ng thá thái đ t đ c) u M t quan h chuy n ti p làm thay đ i tr ng thá thái v i m i ký t đ c đ c rên b ng Ngoà Ngoài ra, NSA có có : u M t danh sá sách đ y xu ng (Stack/Pushdown (Stack/Pushdown List) List) (DS (DS X) X) có th ch a không h n ch ký t đó u M t đ u ghi đ có th ghi lên DS X Ho t đ ng đoán nh n Ôđx không đ n đ nh nh sau : ng t m t ôhh không đđ, đđ, câu vào w∈ w∈Σ* đ c đ t mút trá trái b ng vào uT đ u, đ u đ c v trí trí w(1) w(1) DS X r ng và ôđx tr ng thá thái đ u q0 u Lúc u uđ cđ cl nl t t ng ký t c a w b ng nhì nhìn m t ph n câu đ nh DS X (Top) đ thay th (Pop(Pop-Push) b ng cá cách ghi (đè) lên m t dãy ký t u Ôđx u Ôđx di chuy n đ u đ c qua ph i và thay đ i tr ng thá thái d ng m i ký t c a w đ c đ c h t th a nh n câu, ho c hó hóc gi a ch ng u Ôhh 3/65 3/65 4/65 4/65 Minh ho ho t đ ng c a ôđx nh ngh a hì hình th c ôđx \ M t NSA là m t b : M = (Q, Σ, Γ, Δ, Z, q0, A) A), trong đó : u Q là t p h p h u h n cá tr ng thá thái u Σ b ng ch vào h u h n (Input Alphabet) Alphabet) u Γ b ch đ y xu ng h u h n (Stack Alphabet) Alphabet) u Z ∈ Γ ký t đ u c a DS X (Initial Stack Symbol) Symbol) β u q0 ∈ Q là tr ng thá thái đ u γ u F ⊆ Q là t p cá tr ng thá thái cu i u Δ ⊂ ((Q × Σ* × Γ*) × (Q × Γ*)) là quan h chuy n ti p Câu vào b ng w=a w=anbn a qi a a b b b α γ Tr c : đ nh DS X là α a a qi+1 a b b b Sau : trên đ nh DS X là β 5/65 5/65 g m m t t p h p h u h n cá quan h ((p, u, β), (q, γ)) p, q ∈ Q ; u ∈ Σ* ; β, γ ∈ Γ* 6/65 6/65 Mô t Các khái ni m \ B ch đ y xu ng Γ c a ôđx : u Ch a t p h p cá ký t s đ u Không nh t thi t phân bi t Γ v i Σ (có (có th Γ∩Σ ≠ ∅) \ Ng i ta c ng đ nh ngh a m t cá cách hì hình th c t ng t ôhh, nh ng có có m t c a DS X cá khái ni m : u C u hì hình u Chuy n ti p m t b c u Chuy n ti p nhi u b c u Ôđx đoán nh n câu vào c đ a vào DS X \ Ký t Z là ký t đ u hay n i dung ban đ u c a DS X \ Các chuy n ti p ((p, u, β), (q, γ)) Δ : u T ng t m t ôhh không đđ u u Có thêm ho t đ ng chuy n ti p c a DS X : ¬ Câu ¬ c th a nh n b i ôđx vào b t đ u b i ti n t u : w = uw’ uw’ ¬ Ôtômat ¬ Ph NN đ chuy n t tr ng thá thái p sang tr ng thá thái q n câu β n m đ nh c a DS X u đ c đ c xong ti n t u c a câu vào ¬ Thay th β đ nh DS X b i câu ph n γ 7/65 7/65 8/65 8/65 C u hì hình Chuy n ti p m t b \ C u hì hình c a ôđx Là b ba C = (q, u, α) ∈ Q × ∑* × Γ* Trong đó : Q∈Q tr ng thá thái c a ôtômat u ∈ ∑* m t ph n c a câu vào s đ α ∈ Γ* n i dung c a DS X \ Cho ôđx M, M, ta nói : C u hì hình C’ C’=(q’, w’ w’, α’) nh n đ c t C=( C=(q, w, α) Kí hi u : (q, w, α) M (q’ (q’, w’ w’, α’) n u : ¬ w = uw’ uw’ ( câu w có có ti n t u ∈ ∑*) ¬ α = βδ ( tr c chuy n ti p, đ nh DS X ch a β∈Γ* n u đ c t trá trái qua ph i) ¬ α’ = γδ ( sau chuy n ti p, ph n β c a DS X đ c thay th b i γ, ký t đ u tiên c a γ bây gi n m đ nh DS X ) ¬ ((q, u, β), β), (q’, γ)) ∈ Δ c x lý u ph n câu s x lý V abbb, AZ) Víí d C = (q11, aaabbb, Vi t g n : q11a abbbAZ aabbbAZ a a a q11 b b c b A Z 9/65 9/65 Minh ho chuy n ti p m t b 10/65 10/65 c Chuy n ti p nhi u b \ C u hì hình C’ C’ nh n đ Ph n câu x lý w=uw’ w=uw’ u p w’ α δ Tr u α = βδ c chuy n ti p ký hi u : C Ph n câu x lý w’ w’ M β δ c t C qua nhi u giai đo n C’ n u w’ q * M c ∃k≥0 và k-1 c u hì hình trung gian C0, C1, C2, , Ck α’ = γδ cho : C = C0, C’ C’ = Ck, Ci M Ci+1 v i ≤ i < k Sau chuy n ti p 11/65 11/65 12/65 12/65 Ôđx đoán nh n câu vào Ôđx th a nh n câu vào \ Cho ôđx M và m t câu vào c n x lí w ∈ ∑ \ Cho ôđx M=( Q, ∑, Γ, Δ, Z, q0, F) M=(Q, F) m t câu vào w∈ w∈∑* \ M t đoán nh n (Execution) Execution) c a M w là dãy c u hì hình : \ Ôđx th a nh n câu w n u quá trì trình đoán nh n đ t đ n m t cá tr ng thá thái k t thú thúc : u Ph n câu x lí l i r ng u (q0, w, Z) *M ( p, ε, γ ) v i p ∈ F * ( q0, w, Z) Z) M ( q1, w1, α1) M M ( qn, ε, γ) đó q0 tr ng thá thái đ u, Z là ký t đá đáy c a DS X và ε câu r ng \ Mô t : u Lúc đ u, DS X ch a ký t đá đáy Z (đ u Câu w n m b ng vào, đ u đ c u M ti n hà hành đoán nh n w b ng cá cách th c hi n liên ti p b c chuy n ti p Ci M Ci+1 u M d ng đoán nh n : ¬ ho c ¬ ho c M b hóc c xem là DS r ng) mút trá trái nh t w(1) \ Do ôđx M không đ n đ nh, nên có có th có nhi u phé phép đoán nh n khác cù m t câu vào m t tr ng thá thái k t thú thúc, ph n câu x lí l i r ng m t tr ng thá thái nà đó 13/65 13/65 14/65 14/65 Bi u di n ôtômat đ y xu ng Dùng đ th bi u di n ôđx \ Cho ôtômat M = (Q, ∑, Γ, Δ, Z, q0, F) F) \ Cho ôđx M = (Q, ∑, Γ, Δ, Z, q0, F) F) quy c v M nh sau : \ Có th bi u di n M t ng t ôhh nh sau : u B ng cá cách li t kê h t cá thành ph n c a M u Dùng đ th p tr ng thái đ u, p = q0 > p \ Th c t , ng ng i ta th ng dù dùng cách bi u di n đ th s tr ng thá thái c a ôtômat không quá l n p u, α|β q ((p, u, α), (q, β)) ∈ Δ q tr ng thái cu i, q ∈ F q 15/65 15/65 16/65 16/65 Ví d : ôđx đ n đ nh \ Ngôn ng { anbn | n ≥ } đ Ôđx M1 đoán nh n câu anbn c th a nh n b i ôđx M1 : Q = { s, p, q } ∑ = { a, b } Γ = { A }, F = { q } Δ g m cá chuy n ti p : (s, a, ε) → ( s, A) (s, b, A) A) A) → ( p, ε) (s, ε, Z) (p, b, A) (p, ε, Z) Z) → ( q, ε) A) → (p, ε) Z) → (q, ε) VV aa đđ cc vv aa ghi ghi nh nh AA DS vvào DS XX nn a đ c a đ c \ Cho câu vào a3b3, ôđx M1 th c hi n đoán nh n nh sau : saaabbbZ M1 M1 pbbAAZ > s XX lý lý câu câu rr ng ng ε ∈ annbnn b, A|ε p ε, Z|ε sabbbAAZ M1 pbAZ M1 sbbbAAAZ ghi nh a M1 pZ ki m tra b th a nh n a, ε|A > s b, A|ε M1 qε cc tt ng ng con bb vvà xoá đđ nh xo xoá nh DS DS XX llà con AA a, ε|A saabbbAZ b, A|ε b, A|ε p ε, Z|ε q ε, Z|ε q \ Nh v y M1 th a nh n cá câu anbn, n≥0, ta vi t L(M1) = anbn ε, Z|ε 17/65 17/65 18/65 18/65 Ví d : ôđx không đ n đ nh Cách v khác c a ôđx M1 \ Ngôn ng {wwR} đ Có th v ôđx M1 theo cá cách khác nh sau : Q = { s, p, q} c th a nh n b i M2 nh sau : ∑ = { a, b } Γ = { A, B } F={q} Δ ch a cá chuy n ti p : a, Z|AZ a, A|AAZ b, A|ε > b, A|ε s ε, Z|ε p (s, a, ε) → (s, A) A) (s, ε, ε) → (p, ε) (p, b, B) B) → (p, ε) (s, b, ε) → (s, B) B) (p, a, A) A) → (p, ε) (p, ε, z) z) → (q, ε) VV aa đđ cc vv aa ghi ghi nh nh A, DS vvào A, BB DS XX ccác ác con a, a, bb đã đđ cc q ε, Z|ε a, ε|A ε ∈ wwRR \ Cho câu vào abba, ôđx M2 th c hi n đoán nh n nh sau : sbbaAZ M2 pbaBAZ M2 paAZ M2 M2 ghi nh a, a, b đ c sbaBAZ pZ qε 20/65 20/65 \ V n câu vào abba, ôđx M2 th c hi n đoán nh n nh sau : M1 sbbaAZ M2 sbaBAZ ghi nh a, a, b đ c chuy n d ch không đ n đ nh M2 saBBAZ M2 sABBAZ hóc : không th đ c ti p a hay b ! ki m tra a, b đ xoá xoá A, A, B DS X M2 pABBAZ ??? a, ε|A sabbaZ c ng v n hó hóc : không th đ c ti p ε, ε|ε a, ε|A ε, Z|ε p > s q Γ = { A, B } F={p} (s, a, ε) → (s, A) A) ( s, ε, ε) → (p, ε) (p, b, B) B) → (p, ε) (s, b, ε) → (s, B) B) (p, a, A) A) → (p, ε) (p, ε, Z) Z) → (p, ε) 22/65 22/65 V n ph m phi ng c nh \ T G, có có th đ nh ngh a NN PNC : L = L(G) \ M t NN L là PNC n u t n t i m t VP PNC s n sinh L a, A|ε p ε, Z|ε \ Theo phân c p VP c a Chomsky, VP phi ng c nh (PNC) : G = ( N, ∑, R, S ) g m cá s n xu t d ng A → β v i A ∈ N, β ∈ (N∪∑) ∪∑)* = V*, có h n ch β Δ g m cá chuy n ti p : ε, ε|ε b, B|ε q 21/65 21/65 \ Có th xây d ng ôđx M3 g m ch hai tr ng thá thái M3 th a nh n ngôn ng wwR v i DS X r ng : a, ε|A ε, Z|ε p Chuy n d ch không đ n đ nh Ví d ôđx không đ n đ nh hai tr ng thá thái ∑ = { a, b } a, A|ε ε, ε|ε b, ε|A ε, Z|ε b, B|ε Chuy n d ch không đ n đ nh > s ôtômat không th a nh n câu abba ! a, A|ε b, ε|A Q = { s, p } ε, Z|ε b, B|ε th a nh n câu abba (thà (thành công) > s q Ôđx M2 đoán nh n câu abba th t b i Ôđx M2 th a nh n câu abba M1 ε, Z|ε p b, ε|A XX lý lý câu câu rr ng ng 19/65 19/65 a, A|ε ε, ε|ε > s sabbaZ cc tt ng ng con a, a, bb vvà xoá đđ nh xo xoá nh DS DS XX llà con A, A, BB b, B|ε ε, Z|ε b, ε|A ε, Z|ε 23/65 23/65 24/65 24/65 Ví d VP2 \D Quan h gi a VP2 ôđx u G1 { S → aSb | ε } L(G1) = u G2 { S → aSa | bSb | ε } L(G1) = wwR u \ Các ngôn ng th a nh n b i cá ôtômat đ y xu ng có có th đ c sinh b i cá v n ph m PNC và ng c l i i làm t s VP PNC : G3 { S → aB | bA | ε anbn, A → bAA | aS n≥ n≥0 \ B → bS | aBB } L(G3) g m cá câu ch a cù s ch a ch b m t th t đó u G4 { S → aAS | a nh lý : M t ngôn ng PNC n u ngôn ng đó đ c th a nh n b i m t ôtômat đ y xu ng L = L(M) = L(G) v i G là VP2 M là ôđx A → SbA | SS | ba } L(G4) = ? 25/65 25/65 Ngôn ng L1 ∪ L2 phi ng c nh Tính ch t c a cá ngôn ng PNC \ Cho L1 L2 hai NN PNC, ta có có tí tính ch t sau : u Các ngôn ng sau phi ng c nh : u ¬ L1 ∪ L phé phép h p c a hai NN PNC ¬ L1 L2 phé phép ghé ghép ti p hai NN PNC ¬ L1* l y bao đóng c a m t NN PNC \ Cho : G1 = (N1, ∑1, R1, S1) G2 = (N2, ∑2, R2, S2 ) L1 ∩ L phé phép giao c a hai NN PNC không h n là phi ng c nh ! u cho L1 = L(G1) cho L2 = L(G2) \ Xây d ng VP2 G sinh ngôn ng L1∪L2 nh sau : G = ( V, ∑, R, S ) v i : u N = N1 ∪ N2 ∪ { S } S là m t ký t m i thêm vào u ∑ = ∑1 ∪ ∑2 u L y ký t m i thêm vào S làm ký t đ u u R = R1 ∪ R2 ∪ { S → S1, S → S2 } Ngôn ng : ¬ 26/65 26/65 Tuy nhiên ngôn ng : ¬ LR ∩ L2 PNC v i LR NNCQ và L2 PNC 27/65 27/65 Ví d L1 ∪ L2 phi ng c nh Ví d L1 L2 phi ng c nh \ Cho : G1 = (N1, ∑1, R1, S1) G2 = (N2, ∑2, R2, S2 ) \ Cho : G1 { A → A+B | a ; B → a } L1 = L(G1) = a(+a)* G2 { C → C−D | b ; D → b } b(− b(−b)* L2 = L(G2) = 28/65 28/65 cho L1 = L(G1) cho L2 = L(G2) \ Xây d ng VP2 G sinh ngôn ng L1 L2 nh sau : G = ( V, ∑, R, S ) v i : u N = N1 ∪ N2 ∪ { S } S là m t ký t m i thêm vào u ∑ = ∑1 ∪ ∑2 u L y ký t m i thêm vào S làm ký t đ u u R = R1 ∪ R2 ∪ { S → S1S2 } \ Xây d ng VP2 G : G { S → A | C ; A → A+B | a ; B → a ; C → C−D | b ; D → b } \ G sinh ngôn ng L1∪L2 nh sau : L = L1 ∪ L2 = L(G) = a(+a)* ∪ b(− b(−b)* 29/65 29/65 30/65 30/65 Ngôn ng L* phi ng c nh Ví d L1 L2 phi ng c nh \ Cho v n ph m PNC G = (N, ∑, R, S) có có L = L(G) \ Cho : G1 { A → aA | ε } G2 { B → bB | ε } L1 = L(G1) = am m≥0 L2 = L(G2) = bn s n sinh ngôn ng L = L(G) \ Xây d ng VP sinh ngôn ng L* nh sau : n≥0 G = (N, ∑, R ∪ { S → SS | ε }, S) \ Xây d ng VP2 G : G c ng là VP phi ng c nh G { S → AB ; A → aA | ε ; B → bB | ε } \ Ví d : u Cho G { S → ab } có có L(G) = { ab } u V n ph m G { S → SS | ab | ε } \ G sinh ngôn ng L1 L2 nh sau : L = L1 L2 = L(G) = ambn m≥0, n≥ n≥0 L g m cá câu có có m t s tu ý a r i m t s tu ý b sinh ngôn ng : { ε, ab, abab, ababab, } = { (ab)* } 31/65 31/65 32/65 32/65 V n đ t o sinh câu c a VP PNC Ví d có nhi u cá cách suy d n \ Cho VP PNC G = (N, ∑, R, S) có có L = L(G) \ Khi áp d ng cá s n xu t đ t o sinh câu, th t áp d ng không quan tr ng : u Xu t phá phát t ký t đ u S, có có th áp d ng tu ý cá s n xu t, hay dù dùng cá d n xu t khác G đ u có có th t o m t câu u Tính “phi ng c nh” nh” th hi n ch : m t ký t không k t thú thúc A∈ A∈N có có th đ c thay th đ c l p v i cá ký t bao xung quanh (tr (tr c A và sau A), không ph thu c vào “ng c nh” nh” \ Tính không quan tr ng v th t áp d ng cá s n xu t đ c tr ng c a cá NN PNC \ Cho v n ph m G : G { S → SS | aSa | bSb | ε } (đánh s s n xu t) \ V i câu w=aabaab, có th có 10 cá cách suy d n khác đ sinh w : Cách (dãy cá SX là 124324) : S ⇒1 SS ⇒2 aSaS ⇒4 aaS ⇒3 aabSb ⇒2 aabaSab ⇒4 aabaab Cách (dãy cá SX là 132424) : S ⇒1 SS ⇒3 SbSb ⇒2 SbaSab ⇒4 Sbaab ⇒2 aSabaab ⇒4 aabaab V.v \ S khác c a cá cá cách suy d n w th t áp d ng cá s n xu t c a G 33/65 33/65 34/65 34/65 Khá Khái ni m v phân tí tích Khá Khái ni m v phân tí tích (CPT) \ Ng i ta s d ng c u trú trúc đ bi u di n quá trì trình áp d ng cá SX c a VP đ suy d n t o sinh câu \ Cho VP PNC G = (V, Σ, R, S) u Cây phân tí tích (Parse (Parse Tree), hay đgl suy d n (Derivation (Derivation Tree) đđ c \ Ng i ta s d ng c u trú trúc đ bi u di n quá trì trình áp d ng cá SX c a VP đ suy d n t o sinh câu \ Cho VP PNC G = (V, Σ, R, S) u Cây phân tí tích (Parse (Parse Tree), hay đgl suy d n (Derivation (Derivation Tree) đ c XD nh sau : ¬ G c (Root) c a là ký t đ u S ¬ M i nút m t ký hi u không k t thú thúc A∈ A∈N ¬ M i nút lá m t ký hi u k t thú thúc a∈ a∈Σ ho c ký t r ng ε ¬ N u v i m i nú nút A có có A → X1X2 Xk m t SX c a G thì (A, X1, X2, , Xk) là m t tr c ti p có có : • A là nút g c • nú nút n i v i A l n l u Câu 35/65 35/65 tt ng ng là X1, X2, , Xk sinh b i CPT b ng cá cách ghé ghép ti p cá lá t trá trái qua ph i 36/65 36/65 Ví d phân tí tích M t s tính ch t c a PT \ Cho VPPNC G, hai m nh đ sau là t ng đ u Câu w ∈ L(G), ngh a là S ⇒*G w u T n t i m t phân tí tích c a VP G đ sinh w \ Cho v n ph m G { S → SS | aSa | bSb | ε } có t ng ng v i cá SX nh sau : S S S a S S S a b S S \ Quá Quá trì trình suy d n t o sinh câu S ⇒*G w đ theo cá cách ch n ký t không k t thú thúc N : u Duy trì trì ch n t trá trái qua ph i u Ho c ch n t ph i qua trá trái u Ho c ch n t gi a hai bên tu ý ε b \ Phé Phép suy d n câu aabaab G : S ⇒1 SS ⇒2 aSaS ⇒4 aaS ⇒3 aabSb ⇒2 aabaSab ⇒4 aabaab có th bi u di n b i phân tí tích : S S a S S a ε b S a S Tính t ng đ b u Có th có nhi u suy d n t a u Có th có nhi u PT t ε 38/65 38/65 Bi n đ i v n ph m ng c a cá v n ph m L(G1) = L(G2) = = L(Gk) ng ng v i m t PT nh t ng ng v i nhi u suy d n 37/65 37/65 \ Ta có có tí tính ch t sau : u M t VP PNC G ch có th s n sinh m t (và (và ch m t) NN L(G) L(G) u Nh ng có có th có nhi u VP PNC cù sinh m t NN L : u Ví c th c hi n \ V i m i câu w ∈ L(G) : ng : v i k>0 d : \ Cho VP PNC G \ Ta có có th bi n đ i G đ nh n đ c G’ G’ cho : u G’ t ng đ ng v i G : G’ ~ G u bi n đ i ng c l i t G’ đ nh n đ c G : G ~ G’ G’ \ Sau ta s bi n đ i G đ nh n đ c G’ G’ cho : u G’ không ch a cá s n xu t d ng A→ε A→ε,, còn đgl ε-SX u G’ không ch a G cá s n xu t d ng A→ A→B L( {S → aSa | bSb | ε } ) = L( {S → A | ε ; A → aAa | bAb} ) = L( {S → ASA | BSB | C ; A → a ; B → b ; C → ε } ) = wwR \ T tí tính ch t trên, ng i ta nói : Hai VP G1 G2 đgl t ng đ ng, ng, ký hi u G1 ~ G2 N u L(G1) = L(G2) 39/65 39/65 40/65 40/65 Lo i b s n xu t d ng A→ε A→ε Cách x lý lo i b ε-SX \ Cho VP PNC G = (N, ∑, R, S) có có ch a cá SX d ng A→ε A→ε lo i b ε-SX t VP PNC G = (N, ∑, R, S) : \ Xây d ng VP PNC G’ G’ ~ G cho G’ G’ không ε-SX : u N u ε ∈ L(G), G’ G’ nh n đ c t G b ng cá cách : Xây d ng t p h p cá ký hi u không k t thú thúc A cho m i suy d n t A đ u nh n đ c câu r ng ε) nh nh sau : ¬ Thêm u L p l i cá b ¬ Ch ¬V E = { A ∈ N | A ⇒*G ε } vào G m t ký t đ u S’ S’ s n xu t S’ S’ → S | ε T E, c v i m i SX có có d ng X → X1X2 Xk v i k>1 : c sau : n m t ε-SX A → ε (không ch n S’ S’→ ε) ¬ Thêm i m i SX có có v ph i ch a A : B → αAβ ∈ R, v i α, β ∈(N∪∑ (N∪∑))* vào R cá SX m i X → X1X2 Xj-1 Xj+1 Xk ∀j =1 k=1 k-1 v i m i Xj ∈ E Thêm vào R m t s n xu t m i B → αβ (b A) Ngh a là thêm vào R nh ng SX m i sau lo i b l n l Lo i b s n xu t A → ε kh i R ký hi u có có m t E t cho đ n G’ G’ không cá ε-SX 41/65 41/65 42/65 42/65 Ví d : lo i b ε-SX Ví d : lo i b ε-SX \ Cho VP PNC G2 có SX : \ Cho VP PNC G1 có SX : { S → ABC ; A → BB | ε ; B → CC | a ; C → AA | b } { S → ABCD ; A → CD ; B → Cb ; C → a | ε ; D → bD | ε } \ XD t p E1 = { A ∈ N | A ⇒*G \ XD t p E2 = { A ∈ N | A ⇒*G ε } = { S, A, B, C } ε } = { A, C, D } \ XD VP PNC G2’ g m cá SX : { S → ABC | BC | AC | AB | A | B | C ; A → BB | B; B → CC | C | a ; C → AA | A | b \ XD VP PNC G1’ g m cá SX : { S → ABCD | BCD | ABD | ABC | BD | BC | AB | B ; A → CD | B | D ; B → Cb | b ; C→a; } D → bD | b } 43/65 43/65 44/65 44/65 Lo i b s n xu t d ng A→ A→B Ví d lo i b SX d ng A→ A→B \ Cho VP PNC G = (N, ∑, R, S) có có ch a cá SX d ng A→ A→B u N u G có có s n xu t d ng A → B và B → A, v i A, B ∈ N, có th d n đ n cá suy d n có có đ dài tù tùy ý : A ⇒ B ⇒ A ⇒ B ⇒ A ⇒ , hay A ⇒* A u Các suy d n A ⇒* A làm đì đình tr hay t c ngh n vi c sinh câu \ Xây d ng G’ G’ ~ G cho G’ G’ không SX d ng A→ A→B : u Tìm cá s n xu t d ng A → B u V i m i s n xu t d ng B → α, v i α∈(N ∪∑))* α∈(N∪∑ thêm vào s n xu t A → α, lo i b A → B A B B α A \ Cho VP PNC G có có SX : { E → E+T | T ; T → T*F | F ; F → (E) | a } \ XD VP PNC G’ G’ g m cá SX : { E → E+T | T*F | (E) | a ; T → T*F | (E) | a ; F → (E) | a } α 45/65 45/65 46/65 46/65 V n ph m nh p nh ng Ví d hi n t \ Cho VP PNC G : u VP G đgl nh p nh ng (Ambiguous Grammar) kh Có hai phân tí tích cù suy d n cho m t câu w∈ w∈L(G) \ Cho L là NN PNC : u NN L đgl nh p nh ng c h u (Inherently Ambiguous Language) kh NN L đ c sinh b i nhi u VP khác L = L(G1) = L(G2) = t t c v n ph m G1, G2 nà đ u nh p nh ng \ Cho VP PNC G nh p nh ng : u Có th bi n đ i G v G’ t ng đ ng, ng, L(G’ L(G’) = L(G), cho u G không là v n ph m nh p nh ng 47/65 47/65 ng nh p nh ng \ Trong NN t nhiên nói chung, ti ng Vi t nói riêng, th ng xuyên x y cá hi n t ng nh p nh ng u Nh p nh ng v t lo i : ¬H c sinh h c sinh h c u Nh p nh ng v ngh a : u Nh p nh ng v phá phát âm : u Nh p nh ng v ti ng Vi t không d u : ¬ Ông ¬ Bà già già nhanh quá Ba b n b n bá bán bá bánh ¬ Nha may Co Gia Lam 48/65 48/65 Ví d v n ph m nh p nh ng M t s ví d khác v VP nh p nh ng \ Cho VP PNC G có có SX : { E → E+E | E*E | a } \ VP G nh p nh ng vì có hai PT sinh câu w=a+a*a : u E ⇒1 E+E ⇒3 a+E ⇒2 a+E*E ⇒3 a+a*E ⇒3 a+a*a u E ⇒2 E*E ⇒1 E+E*E ⇒3 a+E*E ⇒3 a+a*E ⇒3 a+a*a E E E 3 E a + a * E E E E E a a \ Các VP sau đ u nh p nh ng : u G1 { S → aSa | bSb | a | b | ε } u G2 { S → aS | Sa | a } E E E + a * a 49/65 49/65 50/65 50/65 Các d ng chu n c a VP2 \ i v i VP PNC, ng u i ta th ng đ a vào hai d ng chu n : D ng chu n Greibach : M i SX có có d ng A → aα u nh lý “b m” m” cho cá NN PNC nh lý “b m” m” cho NN PNC t A, B, C∈ C∈N, a∈ a∈Σ \ Tính ch t : u M i VP PNC b t k đ u có có th bi n đ i v m t hai d ng chu n Greibach ho c Chomsky ng t NNCQ : u Cho L NNCQ và w∈L có có đ dài v đ , w=xuy v i u≠ u≠ε, câu w’ w’=xuky, ∀k>0, c ng thu c L (l p tu ý m t dòng u c a câu) u Tuy nhiên, n u L là NN PNC, xu t phá phát t m t câu w có có đ dài v đ , có có th xây d ng m t câu khác w’ w’ ∈L b ng cá cách A∈N, a∈ a∈Σ, α∈(N∪ (N∪Σ)* D ng chu n Chomsky : M i SX có có d ng A → BC | a \ l p m t ho c hai dòng c a câu \ N i dung đ nh lý “b m” m” (còn (còn đgl “uvxyz” uvxyz”) : u Cho L NNPNC, t n t i h ng K cho m i câu w∈ w∈L th a mãn u ki n |w| > K và w=uvxyz v i vy ≠ ε (v ≠ ε ho c y ≠ ε), ta đ u có có w’ = uvkxykz ∈ L , ∀k>0 51/65 51/65 52/65 52/65 Ch ng minh đ nh lý “b m” m” Tìm h ng s K đ nh lý “b m” m” \ Cho G là VP PNC v i L(G)=L, c n ch r ng : u Cho w∈ w∈L đ dài, PT cho w ph i ch a m t đ ng mà mà đó, m t bi n A∈ A∈N nà đó xu t hi n nh t hai l n : i l n xu t hi n đ u tiên c a A, ta nh n đ c uAv i l n xu t hi n ti p theo c a A, ta nh n đ c uvAxy A nà này, ta nh n đ c w=uvxyz phé phép suy d n A ⇒* x ¬T u Hai câu v và y gi a hai bi n A có có th l p tu ý l n u n là s ký t không k t thú thúc p = max { |α| | A→α A→α ∈ R } p là đ dài t i đa c a cá SX Khi đó ch n K = pn \ G i T là PT c a m t câu tu ý w∈ w∈L(G) có có đ sâu n : u M i nú nút c a c a T có có t i đa p nú nút th a k u dài t i đa c a w s s t i đa c a T, là pn A ¬T n = Card(N) u S ¬T \ Cho VP PNC G = (N, Σ, R, S) có có : A y v \ T đó, n u ch n K = pn : u M i PT sinh câu có có đ dài l n h n K s ph i ch a nh t m t đ ng dà dài h n n u Theo lý thuy t đ th , trên đ ng nà này, m t bi n A∈ A∈N nà đó s xu t hi n nh t hai l n z x w = uvxyz 53/65 53/65 54/65 54/65 Minh ho đ nh lý “b m” m” Ví d NN anbn th a mãn đ nh lý “b m” m” ng SAAx tho mãn đ nh lý “b m” m” : |uvxyz| > K=pn \ S S A A sâu n u u A y v A z z y v c m t câu w, ch ng h n a3b3 = uvxyz u Th t v y, cho tr u Ch n v m t dãy ch a, y m t dãy ch b có có đ dài : u a3b3 = aa2εb2b u=a, v=a2, x=ε x=ε, y=b2, z=b z=b Khi đó : a(a2)kb(b2)k = a2kb2k ∈ anbn L p kl n A y v x NN PNC anbn =L({S → aSb | ε}) th a mãn đ nh lý “b m” m” x w = uvxyz w = uvkxykz 55/65 55/65 56/65 56/65 NN anbn th a mãn đ nh lý “b m” m” aa SS bb aa SS bb aa SS bb u z v \ Có th b o đ m vy≠ε vy≠ε (v≠ε (v≠ε ho c y≠ε y≠ε)) trên đ ng SAAx : u N u v=y=ε v=y=ε, ph n PT gi a hai bi n A có có th b mà mà không làm thay đ i câu s n sinh u N u v=y=ε v=y=ε x y cho m i đ ng đi, đi, câu câu đ c sinh b i PT không th có đ dài v t quá K = pn SS SS u Nh n xé xét SS bb aa SS bb aa SS bb aa SS bb aa SS bb z x a3b3 = aa2εb2b \ Chú Chú ý : u y v y εε aa v y εε a(a2)2ε(b2)2b = a5b5 ∈ anbn a b an bn c s làm mâu thu n v i đ nh lý “b m” m” ! c cn ? nh lý “b m” m” có th a mãn không, n u L h u h n ? u Câu tr l i : m t NN PNC h u h n không th có câu có đ dài v t quá pn 58/65 58/65 Ngôn ng anbncn không là PNC ! nh lý “b m” m” cho phé phép ki m tra m t s NN không là PNC N u tá tách đ u 57/65 57/65 \ Ví d : Ngôn ng L = {anbncn | n≥ n≥0 } không là PCN u ch ng minh, c n ch r ng có kh n ng tách m t câu có có d ng anbncn thành ph n u, v, x, y và z (v i vy ≠ ε) cho v i m i k > 0, câu uvkxykz ∈ L u c ch rõ x Áp d ng đ nh lý “b m” m” \ Trong phá phát bi u đ nh lý “b m” m”, NN NN L không đ là ph i vô h n u v x v z u vk x yk z C ó th phân tá ách annbnncnn = uvxyz ttách Có uvxyz đ c hay không ? 59/65 59/65 \ Ph n ch ng : Gi s anbncn PNC, PNC, tho mãn đ nh lý “b m” m”, t n t i m t s phân tá tách anbncn = uv uvxyz \ Xét cá kh n ng phân tá tách khác cho v y : u C v y đ u đ c t o thành t phé phép l p c a cù m t ch , ch ng h n v ∈ a* và y ∈ b* : ¬ Khi đó, s ch a, b s nhi u h n s ch c, vi ph m tí tính ch t anbncn u Các câu v y đ c t o thành t ch khác : ¬ Khi đó, cá câu uvkxykz s có d ng a*b*c* \ Nh v y, không th phân tá tách anbncn = uvxyz, đ nh lý “b m” m” không đ c tho mãn : mâu thu n ! 60/65 60/65 10 Các ngôn ng PNC đ n đ nh M t s nh n xé xét \ Các phé phép toá toán giao và bù không ph i luôn tho mãn PNC \ nh lý "b "b m" m" cho phé phép ch ng minh r ng : u T n t i hai ngôn ng PNC L1 L2 cho L1 ∩ L2 không là PNC Th t v y : L1 = {anbncm} và L2 = {ambncn} đ u là ngôn ng PNC \ Cho L ∈ L là PNC đ n đ nh n u : L = L(M), M là m t ôtômat đ y xu ng đ n đ nh \ Ví d : u L1 = { wwR | w ∈ {a, b}* } ch PNC, PNC, không không PNC đ n đ nh u L2 = { wcwR | w ∈ {a, b}* } là NN PNC đ n đ nh ∑*, Tuy nhiên : a, ε|A L1 ∩ L2 = {anbncn} không là PNC ! u Bù c a m t NN PNC không ph i luôn PNC a, A|ε c, ε|ε > s p ε, Z|ε q Th t v y : L1 L2 PNC, PNC, : L1 ∪ L2 ph i là PNC b, B|ε b, ε|A ε, Z|ε Gi s bù c a m t NN PNC là PNC thì : L1 ∪ L2 = L1 ∩ L2 c ng PNC : u nà mâu thu n v i u V i L2, không xá xác đ nh đ u V i L1 v trí trí gi a đ c v trí trí gi a c a câu c xá xác đ nh b i ký t c đ nh n bi t câu 61/65 61/65 Tính ch t c a cá NN PNC đ n đ nh ng d ng c a cá ngôn ng PNC \ L p cá NN PNC đđ và không đđ có có tính ch t khác \ Cho L1 L2 NN PNC đ n đ nh, : u L = ∑* − L1 PNC đ n đ nh u ¬ Cho M ôhh đđ M’ M’ cho L(M)=L1 ¬ Xây d ng ôhh đđ M’ M’ t M, b ng cá cách hoá hoán đ i vai trò tr ng thá thái đ t đ c và không đ t đ c T n t i cá NN PNC nh ng không đ n đ nh ¬ Vì n u m i NN PNC đ u đ n đ nh, thì bù c a m t NN PNC s luôn PNC, u nà không đú u L1 ∪ L2 không ph i luôn PNC đ n đ nh u L1 ∩ L2 không ph i luôn PNC đ n đ nh ¬ ¬ Không ph i luôn xá xác đ nh đ Tính ch t nà đ 62/65 62/65 c w∈ w∈L1 ho c w∈ w∈L2 \ ng d ng chí c a cá NN PNC là : u Mô t cú phá pháp c a cá NNLT nh m t v n ph m PNC G u Phân tí tích cú cú phá pháp t ng ng v i v n ph m PNC G u Các ch ng trì trình đú đ n v cú phá pháp là nh ng câu w∈ w∈L(G) \ Phân tí tích cú cú phá pháp là : u Xác đ nh n u w ∈L(G) u D a vào phân tí tích thi t l p cá cách s n sinh câu w \ Th c t , đ thu t toá toán phân tí tích ch y hi u qu (áp d ng cho cá ch ng trì trình r t dà dài), c n có có h n ch đ i v i ki u v n ph m PNC mu n s d ng : u Ch xét nh ng VP mô t ngôn ng PNC đ n đ nh u H VP LR chuyên đ c s d ng cho cá NNLT c suy t phé phép h i và l y ph n bù bù 63/65 63/65 Bài t p ch 64/65 64/65 ng Mô t ôhh đ y xu ng th a nh n cá NN sau : a) anbncm b) anbmcn Tìm v n ph m PNC s n sinh cá ngôn ng sau : a) anbncm b) anbmcn Ch ng minh r ng NN { aibjck | i ≠ j ho c i ≠ k } là PNC Ph n bù bù c a ngôn ng c ng là PNC ? G i ý : h i c a cá ngôn ng PNC c ng là PNC Ch ng minh r ng NN { an | n là s nguyên t } không là PNC 65/65 65/65 11 [...]...Các ngôn ng PNC đ n đ nh M t s nh n xé xét \ Các phé phép toá toán giao và và bù không ph i luôn luôn tho mãn PNC \ nh lý "b "b m" m" cho phé phép ch ng minh r ng : u T n t i hai ngôn ng PNC L1 và L2 sao cho L1 ∩ L2 không là là PNC Th t v y : L1 = {anbncm} và và L2 = {ambncn} đ u là là các ngôn ng PNC \ Cho L ∈ L là là PNC đ n đ nh n u : L = L(M), M là là m t ôtômat đ y xu ng đ n đ... D a và vào cây phân tí tích thi t l p cá cách s n sinh ra câu w \ Th c t , đ các thu t toá toán phân tí tích ch y hi u qu (áp d ng cho cá các ch ng trì trình r t dà dài), c n có có h n ch đ i v i ki u v n ph m PNC mu n s d ng : u Ch xét nh ng VP mô t các ngôn ng PNC đ n đ nh u H các VP LR chuyên đ c s d ng cho cá các NNLT c suy ra t phé phép h i và và l y ph n bù bù 63/65 63/65 Bài t p ch 64/ 65 64/ 65... NN PNC đ n đ nh ng d ng c a cá các ngôn ng PNC \ L p cá các NN PNC đđ và và không đđ có có tính ch t khá khác nhau \ Cho L1 và L2 là các NN PNC đ n đ nh, khi khi đó đó : u L = ∑* − L1 là PNC đ n đ nh u ¬ Cho M ôhh đđ M’ M’ sao cho L(M)=L1 ¬ Xây d ng ôhh đđ M’ M’ t M, b ng cá cách hoá hoán đ i vai trò các tr ng thá thái đ t đ c và và không đ t đ c T n t i cá các NN PNC nh ng không đ n đ nh ¬ Vì n u m... ph n bù bù 63/65 63/65 Bài t p ch 64/ 65 64/ 65 ng 4 1 Mô t các ôhh đ y xu ng th a nh n cá các NN sau đây : a) anbncm b) anbmcn 2 Tìm v n ph m PNC s n sinh cá các ngôn ng sau đây : a) anbncm b) anbmcn 3 Ch ng minh r ng NN { aibjck | i ≠ j ho c i ≠ k } là là PNC Ph n bù bù c a ngôn ng này c ng là là PNC ? G i ý : h i c a cá các ngôn ng PNC c ng là là PNC 4 Ch ng minh r ng NN { an | n là là s nguyên t }... v y : L1 và L2 là PNC, PNC, khi khi đó đó : L1 ∪ L2 ph i là là là PNC b, B|ε b, ε|A ε, Z|ε Gi s bù c a m t NN PNC là là PNC thì thì : L1 ∪ L2 = L1 ∩ L2 c ng là PNC : đi u nà này mâu thu n v i trên đây u V i L2, không xá xác đ nh đ u V i L1 v trí trí gi a đ c v trí trí gi a c a câu c xá xác đ nh b i ký t c đ nh n bi t câu 61/65 61/65 Tính ch t c a cá các NN PNC đ n đ nh ng d ng c a cá các ngôn ng PNC ... sinh w : Cách (dãy cá SX là 1 243 24) : S ⇒1 SS ⇒2 aSaS 4 aaS ⇒3 aabSb ⇒2 aabaSab 4 aabaab Cách (dãy cá SX là 13 242 4) : S ⇒1 SS ⇒3 SbSb ⇒2 SbaSab 4 Sbaab ⇒2 aSabaab 4 aabaab V.v S khác c a... bD | b } 43 /65 43 /65 44 /65 44 /65 Lo i b s n xu t d ng A→ A→B Ví d lo i b SX d ng A→ A→B Cho VP PNC G = (N, ∑, R, S) có có ch a cá SX d ng A→ A→B u N u G có có s n xu t d ng A → B và B → A,... t đó u G4 { S → aAS | a nh lý : M t ngôn ng PNC n u ngôn ng đó đ c th a nh n b i m t ôtômat đ y xu ng L = L(M) = L(G) v i G là VP2 M là ôđx A → SbA | SS | ba } L(G4) = ? 25/65 25/65 Ngôn ng L1