Bổ túc toán 5

27 341 0
Bổ túc toán 5

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 Văn phạm phi ngữ cảnh (Context Free Grammar) Nội dung: • Văn phạm phi ngữ cảnh (CFG) • Giản lược văn phạm phi ngữ cảnh • Chuẩn hóa văn phạm phi ngữ cảnh • Các tính chất của văn phạm phi ngữ cảnh Chương 5: 2 Văn phạm phi ngữ cảnh Định nghĩa: là hệ thống gồm 4 thành phần G(V, T, P, S) • V : tập hữu hạn các biến (ký tự chưa kết thúc) • T : tập hữu hạn các ký tự kết thúc (V ∩ T = Ø) • P : tập hữu hạn các luật sinh dạng A → α (α∈ (V∪T)*) • S : ký hiệu bắt đầu của văn phạm S → AB A → aA A → a B → bB B → b S → AB A → aAa B → bBb hay Quy ước: • V: chữ in hoa (A, B, C, ); T: chữ in thường (a, b, c, , w, x, y ) • α, β, γ, biểu diễn chuỗi ký hiệu kết thúc và biến Ví dụ: G=({S, A, B}, {a, b}, P, S) với P gồm các luật sinh: 3 Dẫn xuất và ngôn ngữ Dẫn xuất: • Nếu A → β là luật sinh trong văn phạm G và α, γ là 2 chuỗi bất kỳ, thì khi áp dụng luật sinh A → β vào chuỗi αAγ ta sẽ thu được chuỗi αβγ : αAγ ⇒ G αβγ • Giả sử: α 1 ⇒ G α 2 , α 2 ⇒ G α 3 , ., α m-1 ⇒ G α m , ta có: α 1 ⇒* G α m • Ta có: α ⇒* G α với mọi chuỗi α • Thông thường, ta sẽ dùng ⇒ và ⇒* thay cho ⇒ G và ⇒* G Ngôn ngữ sinh bởi CFG: cho CFG G(V, T, P, S) L(G) = { ww ∈ T* và S ⇒* G w } (chuỗi w gồm toàn ký hiệu kết thúc và được dẫn ra từ S) 4 Cây dẫn xuất Định nghĩa: cây dẫn xuất (hay cây phân tích cú pháp) của một văn phạm G(V, T, P, S) có đặc điểm (1) Mỗi nút có một nhãn, là một ký hiệu ∈ (V ∪ T ∪ {ε} ) (2) Nút gốc có nhãn là S (ký hiệu bắt đầu) (3) Nếu nút trung gian có nhãn A thì A ∈ V (4) Nếu nút n có nhãn A và các đỉnh n 1 , n 2 , ., n k là con của n theo thứ tự từ trái sang phải có nhãn lần lượt là X 1 , X 2 , ., X k thì A → X 1 X 2 .X k là một luật sinh trong P (5) Nếu nút n có nhãn là ε thì n phải là nút lá và là nút con duy nhất của nút cha của nó 5 Cây dẫn xuất Ví dụ: xét văn phạm G({S, A}, {a, b}, P, S}, với P gồm: S → aASa A → SbASSba Một dẫn xuất của G: S ⇒ aAS ⇒ aSbAS ⇒ aabAS ⇒ aabbaS ⇒ aabbaa 1 3 6 10 2 5 9 4 7 8 11 S A b b a S a S A a a Định lý 5.1: nếu G(V, T, P, S) là một CFG thì S ⇒* α nếu và chỉ nếu có cây dẫn xuất trong văn phạm sinh ra α. 6 Dẫn xuất trái nhất - Dẫn xuất phải nhất Dẫn xuất trái nhất (phải nhất): nếu tại mỗi bước dẫn xuất, luật sinh được áp dụng vào biến bên trái nhất (phải nhất) Ví dụ: xét văn phạm G với luật sinh: S → AB A → aAa B → bBb • Các dẫn xuất khác nhau cho từ aaabb: (a) S ⇒ AB⇒ aAB ⇒ aaAB ⇒ aaaB ⇒ aaabB ⇒ aaabb (b) S ⇒ AB⇒ AbB ⇒ Abb ⇒ aAbb ⇒ aaAbb ⇒ aaabb (c) S ⇒ AB⇒ aAB ⇒ aAbB ⇒ aAbb ⇒ aaAbb ⇒ aaabb (d) S ⇒ AB⇒ aAB ⇒ aaAB ⇒ aaAbB ⇒ aaabB ⇒ aaabb • Dẫn xuất (a) là dẫn xuất trái nhất, (b) là dẫn xuất phải nhất • Các dẫn xuất tuy khác nhau, nhưng có cùng một cây dẫn xuất 7 Văn phạm mơ hồ Khái niệm: một văn phạm phi ngữ cảnh G được gọi là văn phạm mơ hồ (ambiguity) nếu nó có nhiều hơn một cây dẫn xuất cho cùng một chuỗi w. Ví dụ: xét văn phạm G với luật sinh: E → E + E  E * E  (E)  a Với chuỗi a + a * a, ta có thể vẽ đến 2 cây dẫn xuất khác nhau a E E * E + EE a a E E + E E * E a a a Điều này có nghĩa là biểu thức a + a * a có thể hiểu theo 2 cách khác nhau: (a + a) * a hoặc a + (a * a) 8 Văn phạm mơ hồ Khắc phục văn phạm mơ hồ: • Quy định rằng các phép cộng và nhân luôn được thực hiện theo thứ tự từ trái sang phải (trừ khi gặp ngoặc đơn) E → E + T  E * T  T T → (E)  a • Quy định rằng khi không có dấu ngoặc đơn ngăn cách thì phép nhân luôn được thực hiện ưu tiên hơn phép cộng E → E + T  T T → T * F  F F → (E)  a 9 Giản lược văn phạm phi ngữ cảnh Trong CFG có thể chứa các yếu tố thừa: ● Các ký hiệu không tham gia vào quá trình dẫn xuất ra chuỗi ký hiệu kết thúc ● Luật sinh dạng A → B (làm kéo dài chuỗi dẫn xuất) ⇒ giản lược văn phạm nhằm loại bỏ những yếu tố vô ích, nhưng không được làm thay đổi khả năng sản sinh ngôn ngữ của văn phạm • Mỗi biến và mỗi ký hiệu kết thúc của văn phạm đều xuất hiện trong dẫn xuất của một số chuỗi trong ngôn ngữ • Không có luật sinh A → B (với A, B đều là biến) ● Nếu ngôn ngữ không chấp nhận chuỗi rỗng ε thì không cần luật sinh A → ε . 10 Các ký hiệu vô ích Khái niệm: một ký hiệu X được gọi là có ích nếu có một dẫn xuất S ⇒* αXβ ⇒* w với α, β là các chuỗi bất kỳ và w ∈ T*. ⇒ có 2 đặc điểm cho ký hiệu có ích • X phải dẫn ra chuỗi ký hiệu kết thúc • X phải nằm trong dẫn xuất từ S [...]... thế luật sinh sao cho nếu Ai → Ajγ thì j > i • Nếu j i), Ai → aγ hoặc Bk → γ với γ ∈ (V ∪ {B1,B2, ,Bi-1})* Bước 4: thay thế các Ai – luật sinh về đúng dạng (áp dụng bổ đề 3) Bước 5: thay thế các Bk – luật sinh về đúng dạng (bổ2 2 3) đề Dạng chuẩn Greibach (GNF) Giải thuật : (thay thế sao cho... Các ký hiệu vô ích Định lý 5. 2: mỗi ngôn ngữ phi ngữ cảnh (CFL) không rỗng được sinh ra từ một văn phạm phi ngữ cảnh (CFG) không có ký hiệu vô ích Ví dụ: xét văn phạm • Áp dụng bổ đề 1: V' = {S, A, B, D} S→A A → aBb | ε B → A | cB D → ab S→A A → aBb | ε B → A | cB | cC C → AC | BCD D → ab • Áp dụng bổ đề 2: V' = {S, A, B} S→A A → aBb | ε B → A | cB 13 Luật sinh ε Định lý 5. 3: (loại bỏ luật sinh A →...  bBA1A1  aA1 aA2A1A3  bA1A3  aA2BA1A3  bBA1A3  aA3 Bước 5: thay thế các Bk – luật sinh B → aA2A1A1A2  bA1A1A2  aA2BA1A1A2  bBA1A1A2  aA1A2 aA2A1A3A2  bA1A3A2  aA2BA1A3A2  bBA1A3A2  aA3A2  aA2A1A1A2B bA1A1A2B  aA2BA1A1A2B  bBA1A1A2B  aA1A2B aA2A1A3A2B  bA1A3A2B  aA2BA1A3A2B  bBA1A3A2B  aA3A2B 25 Bổ đề bơm cho CFL Bổ đề bơm: cho L là một CFL bất kỳ, tồn tại một số n chỉ phụ thuộc... ΔE = {E, T, F} ⇒ thêm vào P' các luật sinh E → E + T T * F  (E)  a Tương tự: ΔT = {T, F} ⇒ thêm vào P' : T → T * F  (E)  a ΔF = {F} ⇒ thêm vào P' : F → (E)  a 17 Dạng chuẩn Chomsky (CNF) Định lý 5. 5: một ngôn ngữ phi ngữ cảnh bất kỳ không chứa ε đều được sinh ra bằng một văn phạm nào đó mà các luật sinh có dạng A → BC hoặc A → a, với A, B, C là biến và a là ký hiệu kết thúc Cách tìm: giả sử CFL... CbB  b Ca → a Cb → b D1 → BA 20 Dạng chuẩn Greibach (GNF) Bổ đề 3: (thay thế các luật sinh trực tiếp) Cho G(V, T, P, S) là một CFG, đặt A → α1Bα2 là luật sinh trong P và B → β1β2 βr là các B - luật sinh; văn phạm G1(V, T, P1, S) thu được từ G bằng cách loại bỏ luật sinh A → α1Bα2 và thêm vào luật sinh A → α1β1α2α1β2α2 α1βrα2 tương đương G Bổ đề 4: (dùng loại bỏ văn phạm đệ quy trái) Đặt G(V, T,...Các ký hiệu vô ích Bổ đề 1: (loại bỏ các biến không dẫn ra chuỗi ký hiệu kết thúc) Cho CFG G(V, T, P, S) với L(G) ≠ Ø, có một CFG G'(V', T', P', S) tương đương sao cho mỗi A ∈ V' tồn tại w ∈ T* để A ⇒* w Giải thuật tìm V': Begin (1) (2) (3) (4) (5) (6) End; OldV' := ∅; NewV' := { A  A → w với w ∈ T* }; While OldV' ≠ NewV' do begin... dạng GNF cho văn phạm G sau: A1 → A2A1 A2A3 A2 → A3A1 a A3 → A2A2 b Bước 1: G thỏa CNF Bước 2: ta có V = {A1, A2, A3} Bước 3: ta cần sửa đổi luật sinh A3 → A2A2 • Áp dụng bổ đề 3: A3 → A3A1A2 aA2 A3 → A3A1A2 aA2  b • Áp dụng bổ đề 4, ta thu được tập luật sinh: A1 → A2A1 A2A3 A2 → A3A1 a A3 → aA2  b  aA2B  bB B → A1A2 A1A2B 24 Dạng chuẩn Greibach (GNF) Bước 4: A3 đã có dạng chuẩn Thay thế... → AB ⇒ S ∈ Nullable Bước 2: xây dựng tập luật sinh P' S → AB  Aε  εB A → aA  aε B → bB  bε Chú ý: văn phạm G' không chấp nhận chuỗi rỗng ε như văn phạm G 15 Để G' tương đương G, ta cần thêm luật sinh S → ε vào G' Luật sinh đơn vị Định lý 5. 4: (loại bỏ luật sinh A → B) Mỗi CFL không chứa ε được sinh ra bởi CFG không có ký hiệu vô ích, không có luật sinh ε hoặc luật sinh đơn vị Cách tìm: đặt L=L(G)... viết z=uvwxy sao cho: |vx| ≥ 1, |vwx| ≤ n và ∀i ≥ 0 ta có uviwxiy ∈ L Ví dụ: chứng minh L = {aibici | i ≥ 1} không là CFL • Giả sử L là CFL, khi đó tồn tại số n theo bổ đề bơm • Xét chuỗi z = anbncn, |z| ≥ n, ta có thể viết z=uvwxy thỏa bổ đề • Ta có: vwx ∈ anbncn, |vwx| ≤ n nên vwx không thể đồng thời chứa cả ký hiệu a và c (vì giữa a và c có n ký hiệu b) → vx cũng không thể chứa cả ký hiệu a và c... không bằng nhau 26  Nếu vx không chứa ký hiệu a thì khi bơm chuỗi vx, số ký hiệu a không đổi, nhưng số ký hiệu b (hoặc c) sẽ thay đổi Tính chất đóng của CFL Định lý 5. 7: CFL đóng với phép hợp, phép kết nối và phép bao đóng Kleen Định lý 5. 8: CFL không đóng với phép giao Hệ quả: CFL không đóng với phép lấy phần bù 27 . .X k là một luật sinh trong P (5) Nếu nút n có nhãn là ε thì n phải là nút lá và là nút con duy nhất của nút cha của nó 5 Cây dẫn xuất Ví dụ: xét văn phạm. G: S ⇒ aAS ⇒ aSbAS ⇒ aabAS ⇒ aabbaS ⇒ aabbaa 1 3 6 10 2 5 9 4 7 8 11 S A b b a S a S A a a Định lý 5. 1: nếu G(V, T, P, S) là một CFG thì S ⇒* α nếu và chỉ

Ngày đăng: 06/07/2013, 01:25

Từ khóa liên quan

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

Tài liệu liên quan