Văn phạm phi ngữ cảnh

34 1.5K 9
Văn phạm phi ngữ cảnh

Đ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

Chương Văn phạm phi ngữ cảnh Nội dung     Suy dẫn phi ngữ cảnh Cây suy dẫn nhập nhằng Giản lược văn phạm phi ngữ cảnh Dạng chuẩn Chomsky Suy dẫn phi ngữ cảnh   Văn phạm phi ngữ cảnh: văn phạm sản xuất có dạng: Aα với A∈∆; α∈ (∑∪∆)* Suy dẫn phi ngữ cảnh: bước áp dụng sản xuất phi ngữ cảnh Một số ví dụ suy dẫn phi ngữ cảnh    Ví dụ 1: Trong ngôn ngữ lập trình ||  A|B|C|…|Z 0|1|2|3|4|5|6|7|8|9 Kí hiệu không kết thúc: , , Kí hiệu kết thúc: A, B, C, …, Z, 0, 1, 2, …, Một số ví dụ suy dẫn phi ngữ cảnh    Ví dụ 2: Trong văn phạm tiếng Việt có quy tắc:  |  bò|mèo|… tôi|nó|… ăn|nằm|… Kí hiệu không kết thúc: , , , , , Kí hiệu kết thúc: “bò”, “mèo”, “tôi”, “nó”, “ăn”, “nằm”… từ tiếng Việt Suy dẫn phi ngữ cảnh Định lý III.1 (định lý phân dã suy dẫn) Cho G=(∑, ∆, P, S) văn phạm phi ngữ cảnh, đặt V= ∑∪∆ Nếu G có suy dẫn u1u2…un=>kG v ui, v∈V* tồn vi∈V*và ki∈N (i=1, 2,…, n) cho: ui=>ki vi Với i=1, 2, …, n v=v1v2 …vn k1+k2+…+kn=k (Chứng minh: lý thuyết ngôn ngữ tính toán – Nguyễn Văn Ba)  Cây suy dẫn nhập nhằng  Định nghĩa suy dẫn: Trong văn phạm phi ngữ cảnh G=(∑,∆,P,S), Cây suy dẫn mà đỉnh gắn nhãn phần tử thuộc tập ∑∪∆∪{ε} thỏa điều kiện: i Nhãn gốc kí hiệu đầu S ii Nhãn đỉnh kí hiệu không kết thúc Nhãn kí hiệu kết thúc ε iii Với đỉnh có nhãn A có nhãn X 1, X2 …Xk A X1X2Xk sản xuất G iv Nếu có nhãn ε cha Cây suy dẫn (tiếp)   Cây tạo thành đỉnh hậu duệ với nhãn cung liên kết chúng Gốc có nhãn A ta gọi A-cây Biên (kết quả) suy dẫn hay A-cây xâu tạo thành cách ghép trật tự từ trái qua phải ta câu gọi kết Ví dụ suy dẫn 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 G: S => aAS => aSbAS => aabAS => aabbaS => aabbaa S a S a A S b b 10 A a 11 a Cây suy dẫn (tiếp) Định lý III.2: Cho G văn phạm phi ngữ cảnh có xâu w sản sinh G (S=>*Gw ) có suy dẫn văn phạm mà biên w Chứng minh: (1) Giả sử có suy dẫn biên w có suy dẫn S=>*w (2) Giả sử có suy dẫn S=>*w có suy dẫn biên w  Loại bỏ kí hiệu vô sinh  Lời giải:  W ={a, b}  W =W ∪{A, C} (vì có sản xuất Aa, Ca)  W =W ∪{S} (vì có sản xuất SaA)  W =W ∪∅  W={a, b, A, C, S};  G’={∑, ∆’, P’, S} đó: ∆’={S, A, C} P’={SaA| abA, AbA| a, CaA| bS| a} Loại bỏ kí hiệu không đến    Bổ đề III.2 (Loại bỏ kí hiệu không đến được) Tồn thuật toán cho phép với văn phạm phi ngữ cảnh G thành lập văn phạm phi ngữ cảnh tương đương G’ có kí hiệu đến Thuật toán: Thành lập tập hợp kí hiệu đến được:  W ={S}; U =∅ 0  W =W ∪{A∈∆| ƎB∈W , Ǝu , u ∈(∑∪∆)*: Bu Au ∈P} i i-1 i-1 2  U =U i i-1 ∪{a∈∑| ƎB∈Wi-1, Ǝu1, u2∈(∑∪∆)*: Bu 1au 2∈P}  W=∪W ; U= ∪U (i≥0) i i Thành lập văn phạm G’=(U, W, P’, S) đó:  P’={Au∈P|A∈W u∈(U ∪ W)*} Loại bỏ kí hiệu không đến  Ví dụ: Cho G’ ví dụ trên, tìm văn phạm G’’ gồm kí hiệu đến được:  W ={S}; U =∅ 0  W = W ∪{A}; U =U ∪{a, b} 1  W =W ; U =U 2  W={S, A}; U={a, b}  Văn phạm G’’=({a, b}, {S, A}, P’’, S) đó: P’’={SaA| abA AbA|a} Loại bỏ ε-sản xuất   ε -sản xuất:  ε-sản xuất sản xuất có dạng Aε  Khi xâu ε thuộc ngôn ngữ văn phạm phải chứa ε-sản xuất (thường S ε), ε-sản xuất thừa loại bỏ Định lý III.4: Cho văn phạm G=(∑, ∆, P, S) văn phạm phi ngữ cảnh Ta thành lập văn phạm phi ngữ cảnh G’=(∑, ∆, P’, S) ε-sản xuất mà: L(G’)=L(G)-{ε} Loại bỏ ε-sản xuất  Thuật toán:  Thành lập tập hợp kí hiệu không kết thúc sinh xâu rỗng:  Đặt E ={A|Aε∈P}   Ei=Ei-1∪{A| Ǝu∈Ei-1*: Au∈P} (i>0)  E= ∪Ei (i≥0) Thành lập sản xuất P’:  Với sản xuất AX X …X ∈P ta đưa vào P’ tất n sản xuất có dạng Aα1α2…αn đó: (1) Nếu Xi∉E αi=Xi (2) Nếu Xi∈E αi=Xi αi= ε  Loại bỏ tất ε-sản xuất Loại bỏ ε-sản xuất Ví dụ: Cho văn phạm: SABC, ABB|ε, BCC|a, CAA|b Loại bỏ ε-sản xuất văn phạm Lời giải:  E={A, C, B, S}  Văn phạm G’ tương đương là:  SABC| AB| BC| AC| A| B| C  ABB| B  B CC| C| a  C AA| A| b  Loại bỏ sản xuất đơn  Sản xuất đơn:  Sản xuất đơn sản xuất có dạng AB (A, B∈∆)  Sản xuất đơn thường làm kéo dài suy dẫn nên ta cần loại bỏ Loại bỏ sản xuất đơn   Định lý III.6 Cho văn phạm phi ngữ cảnh G=(∑, ∆, P, S) Ta thành lập văn phạm tương đương G’=( ∑, ∆, P’, S) sản xuất đơn Thuật toán: Thành lập G’  Cho R quan hệ ∆ định nghĩa là: ARB AB∈P  Đặt: P’={Aα| ƎBα∈P, với α∉ ∆ AR*B} (R* bao đóng phản xạ, bắc cầu R) Loại bỏ sản xuất đơn  Ví dụ: Cho văn phạm G:  EE+T| T  TT*F| F  F(E)| a Tìm văn phạm G’ không sản xuất đơn Loại bỏ sản xuất đơn  Ta có: R={(E, T), (T, F)} R*={(E, E), (T, T), (F, F), (E, T), (T, F), (E, F)}  Có EE+T mà E+T∉∆, có (E, E)∈R* suy có sản xuất: EE+T  Có T T*F mà T*F∉∆, có (T,T), (E,T) ∈R* suy có sản xuất: TT*F ET*F  Có F(E) mà (E)∉∆, có (F, F), (T, F), (E, F)∈R* suy có sản xuất: F(E) T(E) E(E)  Có Fa mà a∉∆, có (F,F), (T,F), (E,F) ∈R* suy có sản xuất: Fa Ta Ea Loại bỏ sản xuất đơn  Văn phạm tương đương sản xuất đơn: EE+T| T*F| (E)| a TT*F|(E)| a F(E)|a Dạng chuẩn Chomsky   Dạng chuẩn Chomsky: Văn phạm phi ngữ cảnh dạng chuẩn Chomsky văn phạm mà sản xuất hai dạng:  ABC  Aa Trong đó: A, B, C∈∆, a ∈∑ Định lý III.9 Cho văn phạm phi ngữ cảnh G Ta thành lập văn phạm G’ dạng chuẩn Chomsky cho L(G’)=L(G) Đưa văn phạm dạng chuẩn Chomsky  Thuật toán: dựng G’=(∑, ∆’, P’, S) tương đương với G  Nhặt sản xuất P dạng chuẩn Chomsky đưa vào P’  Các sản xuất lại đưa dạng chuẩn Chomsky: (1) Nếu có sản xuất AY1Y2…Yk (k>2) thay sản xuất hai sản xuất AY1A’ A’Y2…Yk Lặp lại độ dài vế phải sản xuất không lớn (2) Nếu có sản xuất mà vế phải độ dài có chứa kí hiệu kết thúc a, ta thêm kí hiệu không kết thúc Ca, thay xuất a sản xuất Ca thêm sản xuất Caa Đưa văn phạm dạng chuẩn Chomsky Ví dụ: Đưa văn phạm dạng chuẩn Chomsky SaAB| BBBA ABAB| a B AS| b Lời giải: B1: Các sản xuất dạng chuẩn Chomsky Aa BAS| b B2: Đưa sản xuất lại dạng chuẩn Chomsky SaAB thay SCAB Ca SCAB thay SCD DAB SBBBA thay SBE EBBA EBBA thay EBF FBA ABAB thay ABT TAB  Đưa văn phạm dạng chuẩn Chomsky  Ta thu văn phạm G’=(∑, ∆’, P’, S) đó: ∆’={S, A, B, C, D, E, F, T} P’={ SCD| BE Ca DAB EBE FBA ABT| a TAB BAS| b} [...]... Văn phạm nhập nhằng  Khái niệm: một văn phạm phi ngữ cảnh G được gọi là văn phạm nhập nhằng (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ăn phạm nhập nhằng (tiếp)   Một ngôn ngữ có thể được sinh ra từ văn phạm nhập nhằng hoặc văn phạm không nhập nhằng Ngôn ngữ được gọi là nhập nhằng (nhập nhằng cố hữu – không nghiên cứu) nếu mọi văn phạm sinh ra nó đều nhập nhằng Văn phạm. .. đơn  Văn phạm tương đương không có sản xuất đơn: EE+T| T*F| (E)| a TT*F|(E)| a F(E)|a Dạng chuẩn Chomsky   Dạng chuẩn Chomsky: Văn phạm phi ngữ cảnh ở dạng chuẩn Chomsky là văn phạm mà các sản xuất của nó ở một trong hai dạng:  ABC  Aa Trong đó: A, B, C∈∆, a ∈∑ Định lý III.9 Cho văn phạm phi ngữ cảnh G Ta có thể thành lập một văn phạm G’ ở dạng chuẩn Chomsky sao cho L(G’)=L(G) Đưa văn phạm. .. một thuật toán cho phép với mọi văn phạm phi ngữ cảnh G thành lập một văn phạm phi ngữ cảnh tương đương G’ chỉ có các kí hiệu đến được Thuật toán: Thành lập tập hợp các kí hiệu đến được:  W ={S}; U =∅ 0 0  W =W ∪{A∈∆| ƎB∈W , Ǝu , u ∈(∑∪∆)*: Bu Au ∈P} i i-1 i-1 1 2 1 2  U =U i i-1 ∪{a∈∑| ƎB∈Wi-1, Ǝu1, u2∈(∑∪∆)*: Bu 1au 2∈P}  W=∪W ; U= ∪U (i≥0) i i Thành lập văn phạm G’=(U, W, P’, S) trong đó:... ε thuộc ngôn ngữ thì văn phạm phải chứa ít nhất một ε-sản xuất (thường là S ε), ngoài ra các ε-sản xuất đều là thừa và có thể loại bỏ Định lý III.4: Cho văn phạm G=(∑, ∆, P, S) là một văn phạm phi ngữ cảnh Ta có thể thành lập một văn phạm phi ngữ cảnh G’=(∑, ∆, P’, S) không có ε-sản xuất mà: L(G’)=L(G)-{ε} Loại bỏ ε-sản xuất  Thuật toán:  Thành lập tập hợp các kí hiệu không kết thúc sinh ra xâu rỗng:... hiệu vô sinh) Tồn tại một thuật toán cho phép, với mọi văn phạm phi ngữ cảnh G mà L(G)≠∅, thành lập một văn phạm phi ngữ cảnh tương đương G’ chỉ có các kí hiệu hữu sinh Thuật toán:  Thành lập tập các kí hiệu hữu sinh W:  W =∑; 0  Wi=Wi-1∪{A∈∆|Ǝα∈Wi-1*: Aα∈P} (với i>0)  W= ∪ W (i≥0) i  Quá trình bổ sung sẽ dừng vì tập W ⊆ ∑∪∆  Thành lập văn phạm G’=( ∑, ∆’, P’,S):  ∆’=W∩ ∆;  P’={Au∈P|A∈∆’, u∈(∑∪... một văn phạm phi ngữ cảnh G=(∑, ∆, P, S) Ta có thể thành lập một văn phạm tương đương G’=( ∑, ∆, P’, S) không có các sản xuất đơn Thuật toán: Thành lập G’  Cho R là quan hệ trên ∆ được định nghĩa là: ARB khi và chỉ khi AB∈P  Đặt: P’={Aα| ƎBα∈P, với α∉ ∆ và AR*B} (R* là bao đóng phản xạ, bắc cầu của R) Loại bỏ các sản xuất đơn  Ví dụ: Cho văn phạm G:  EE+T| T  TT*F| F  F(E)| a Tìm văn phạm. .. được  Ví dụ: Cho G’ ở ví dụ trên, tìm văn phạm G’’ chỉ gồm các kí hiệu đến được:  W ={S}; U =∅ 0 0  W = W ∪{A}; U =U ∪{a, b} 1 0 1 0  W =W ; U =U 2 1 2 1  W={S, A}; U={a, b}  Văn phạm G’’=({a, b}, {S, A}, P’’, S) trong đó: P’’={SaA| abA AbA|a} Loại bỏ ε-sản xuất   ε -sản xuất:  ε-sản xuất là các sản xuất có dạng Aε  Khi xâu ε thuộc ngôn ngữ thì văn phạm phải chứa ít nhất một ε-sản xuất... 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 Biến đổi văn phạm phi ngữ cảnh    Loại bỏ các kí hiệu vô ích Loại bỏ các sản xuất ε Loại bỏ các sản xuất đơn Loại bỏ kí hiệu vô ích   Định nghĩa: Cho văn phạm G=(∑,∆,P,S), đặt V=∑∪∆ X∈V là có ích nếu tồn tại suy dẫn: S=>*αXβ=>*w (α, β∈V*; w∈∑* ) Nếu không thì nó là kí hiệu vô ích... dạng Aα1α2…αn trong đó: (1) Nếu Xi∉E thì αi=Xi (2) Nếu Xi∈E thì αi=Xi hoặc αi= ε  Loại bỏ tất cả các ε-sản xuất Loại bỏ ε-sản xuất Ví dụ: Cho văn phạm: SABC, ABB|ε, BCC|a, CAA|b Loại bỏ các ε-sản xuất của văn phạm trên Lời giải:  E={A, C, B, S}  Văn phạm G’ tương đương là:  SABC| AB| BC| AC| A| B| C  ABB| B  B CC| C| a  C AA| A| b  Loại bỏ các sản xuất đơn  Sản xuất đơn:  Sản xuất... văn phạm về dạng chuẩn Chomsky Ví dụ: Đưa văn phạm trên về dạng chuẩn Chomsky SaAB| BBBA ABAB| a B AS| b Lời giải: B1: Các sản xuất đã ở dạng chuẩn Chomsky Aa BAS| b B2: Đưa các sản xuất còn lại về dạng chuẩn Chomsky SaAB được thay bằng SCAB và Ca SCAB được thay bằng SCD và DAB SBBBA được thay bằng SBE và EBBA EBBA được thay bằng EBF và FBA ABAB được thay bằng ABT và TAB  Đưa văn

Ngày đăng: 28/06/2016, 14:57

Từ khóa liên quan

Mục lục

  • Chương 3 Văn phạm phi ngữ cảnh

  • Nội dung

  • Suy dẫn phi ngữ cảnh

  • Một số ví dụ về suy dẫn phi ngữ cảnh

  • Slide 5

  • Slide 6

  • Cây suy dẫn và sự nhập nhằng

  • Cây suy dẫn (tiếp)

  • Ví dụ về cây suy dẫn

  • Slide 10

  • Suy dẫn trái và suy dẫn phải

  • Suy dẫn trái và suy dẫn phải (tiếp)

  • Văn phạm nhập nhằng

  • Văn phạm nhập nhằng (tiếp)

  • Slide 15

  • Biến đổi văn phạm phi ngữ cảnh

  • Loại bỏ kí hiệu vô ích

  • Loại bỏ kí hiệu vô sinh

  • Slide 19

  • Slide 20

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

Tài liệu liên quan