Bài giảng Ngôn ngữ hình thức: Chương 3 Văn phạm phi ngữ cảnh, cung cấp cho người học những kiến thức như: Suy dẫn phi ngữ cảnh; Cây suy dẫn và sự nhập nhằng; Giản lược văn phạm phi ngữ cảnh; Dạng chuẩn Chomsky. Mời các bạn cùng tham khảo!
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 tốn – Nguyễn Văn6 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 X1, 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 b b 10 S 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 10 Loại bỏ kí hiệu vơ ích Định nghĩa: Cho văn phạm G=( , ,P,S), đặt V= X V có ích tồn suy dẫn: S=>* Xβ=>*w ( , β V*; w * ) Nếu khơng kí hiệu vơ ích Vậy kí hiệu có ích X là: Kí hiệu hữu sinh, nghĩa tồn xâu x * mà X=>*x Kí hiệu đến được, nghĩa tồn hai xâu ,β V* cho S=>* Xβ 17 Loại bỏ kí hiệu vơ sinh Bổ đề III.1 (Loại bỏ kí hiệu vơ sinh) Tồn thuật tốn cho phép, với văn phạm phi ngữ cảnh G mà L(G)≠ , thành lập văn phạm phi ngữ cảnh tương đương G’ có kí hiệu hữu sinh Thuật tốn: Thành lập tập kí hiệu hữu sinh W: W = ; Wi=Wi-1 {A |Ǝ Wi-1*: A P} (với i>0) W= Wi (i≥0) Quá trình bổ sung dừng tập W Thành lập văn phạm G’=( , ’, P’,S): ’=W ; P’={Au P|A ’, u ( ’)*} 18 Loại bỏ kí hiệu vơ sinh Ví dụ: Cho G=( , , P, S) đó: ={a, b}; ={S, A, B, C} P={SaA| bAB| abA AaB| bA| a BaB| bB CaA| bS| a } Tìm văn phạm G’ tương đương khơng cịn kí hiệu vơ sinh 19 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 tốn: Thành lập tập hợp kí hiệu đến được: W ={S}; U = 0 W =W | ƎB Wi-1, Ǝu1, u2 ( )*: Bu1Au2 P} i i-1 {A U =U {a | ƎB Wi-1, Ǝu1, u2 ( )*: Bu1au2 P} i i-1 W= W ; U= Ui (i≥0) i Thành lập văn phạm G’=(U, W, P’, S) đó: P’={Au P|A W u (U W)*} 20 Loại bỏ kí hiệu khơng đến Ví dụ: Cho G’ ví dụ gồm sản xuất: SaA| abA AbA| a CaA| bS| a Tìm văn phạm G’’ gồm kí hiệu đến được: 21 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) khơng có -sản xuất mà: L(G’)=L(G)-{ } 22 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*: Au P} (i>0) E= Ei (i≥0) Thành lập sản xuất P’: Với sản xuất AX X …X n P ta đưa vào P’ tất sản xuất có dạng A 2… n đó: (1) Nếu Xi E i =Xi (2) Nếu Xi E i =Xi i = 23 Loại bỏ -sản xuất Ví dụ: Cho văn phạm: SABC, ABB| , BCC|a, CAA|b Loại bỏ -sản xuất văn phạm 24 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 AB (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ỏ 25 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) khơng có sản xuất đơn Thuật tốn: Thành lập G’ Cho R quan hệ định nghĩa là: ARB AB P Đặt: P’={A | ƎB P, với AR*B} (R* bao đóng phản xạ, bắc cầu R) 26 Loại bỏ sản xuất đơn Ví dụ: Cho văn phạm G: EE+T| T TT*F| F F(E)| a Tìm văn phạm G’ khơng cịn sản xuất đơn 27 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: ABC Aa 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) 28 Đư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 AY1Y2…Yk (k>2) thay sản xuất hai sản xuất AY1A’ 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 Caa 29 Đưa văn phạm dạng chuẩn Chomsky Ví dụ: Đưa văn phạm dạng chuẩn Chomsky SaAB| BBBA ABAB| a B AS| b Lời giải: B1: Các sản xuất dạng chuẩn Chomsky Aa BAS| b B2: Đưa sản xuất lại dạng chuẩn Chomsky SaAB thay SCAB Ca SCAB thay SCD DAB SBBBA thay SBE EBBA EBBA thay EBF FBA ABAB thay ABT TAB 30 Đư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’={ SCD| BE Ca DAB EBE FBA ABT| a TAB BAS| b} 31 ... gồm kí hiệu đến được: 21 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:... 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|…