lý thuyết ngôn ngữ hình thức chương 3

18 694 5
lý thuyết ngôn ngữ hình thức chương 3

Đ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

Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 29 Nguyễn §øc ThuÇn -Ch-ơng III văn phạm phi ngữ cảnh Trong ch-ơng khảo sát NN Phi ngữ cảnh, ngôn ngữ gần với ngôn ngữ tự nhiên có vai trò quan trọng việc ứng dụng xây dựng ngôn ngữ lập trình ch-ơng trình dịch 3.1 Xuất xứ Cây suy dẫn Văn phạm Phi ngữ cảnh: 3.1.1 Xuất xứ: Xuất xứ ngôn ngữ phi ngữ cảnh việc mô tả ngôn ngữ tự nhiên Cấu trúc câu ngôn ngữ tự nhiên đ-ợc định nghĩa qui tắc ngữ pháp Ví dụ, câu ngôn ngữ tự nhiên (tiếng việt) đ-ợc định nghĩa qui tắc văn phạm sau: n a u đ đ đ gà đ trống đ đ ăn ® ® thãc Mét c©u ngữ nghĩa đ-ợc suy dẫn từ văn phạm : gà trống ăn thóc Tuy nhiên, với qui tắc ngữ pháp ngôn ngữ phi ngữ cảnh nh- trên, dẫn đến sai sót mặt ngữ nghĩa ngôn ngữ tự nhiên, ví dụ: "thóc trống ăn gà" Nh-ng với nhu cầu biểu diễn ngôn ngữ lập trình, ng-ời ta nhận thấy văn phạm phi ngữ cảnh có khuôn khổ thích hợp Những nhà Tin học đà sử dụng dạng chuẩn BackusNaus (BNF) để diễn tả cú pháp ngôn ngữ lập trình cÊp cao (nh- Algol, Pascal, ) chÝnh lµ mét biÕn t-ớng văn phạm phi ngữ cảnh; với dấu ::= đ-ợc dùng thay cho đ Chẳng hạn, để định nghĩa mét biÓu thøc sè häc ng-êi ta viÕt: h T c g N u D ::= + ::= * ::= () ::= db Với qui tắc đó, ta sinh đ-ợc biểu thøc sè häc cã chøa c¸c to¸n tư +,* cïng toán hạng, biểu diễn ký hiệu db, ngăn cách cặp vòng đơn ( ) Chẳng hạn biểu thức (db+db) *db đ-ợc sinh theo trình diễn tả sau đây: Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 30 Nguyễn Đức Thuần - * ( ) + db db db 3.1 Hình sản sinh xâu n a u Việc nghiên cứu văn phạm phi ngữ cảnh tạo sở lý luận để biểu diễn ngôn ngữ lập trình, việc tìm kiếm giải thuật phân tích cú pháp vận dụng ch-ơng trình dịch cho nhiều ứng dụng khác cho việc xử lý xâu h T c 3.1.2 Cây suy dẫn văn phạm phi ngữ cảnh: 3.1.2.1 Định nghĩa : Cho văn phạm phi ngữ cảnh G = Cây suy dẫn văn phạm phi ngữ cảnh đ-ợc thành lập từ suy dẫn G Mỗi xâu x ẻồ* mà S G x t-ơng ứng với suy dẫn Xâu x đ-ợc gọi kết suy dẫn Cây suy dẫn văn phạm phi ngữ cảnh G = thỏa mÃn yêu cầu sau: g N u D đỉnh đ-ợc gán nhÃn NhÃn gán đỉnh ký hiệu tập ồẩDẩ{e} Gốc đ-ợc gán nhÃn S Mỗi đỉnh đ-ợc gán nhÃn ký hiệu D Mỗi đỉnh (lá cây) đ-ợc gán nhÃn ký hiệu tập ồẩ{e} Nếu đỉnh m đ-ợc gán nhÃn A ẻD, đỉnh n1, n2, , nk đỉnh m theo thứ tự từ trái sang phải, đ-ợc gán nhÃn X1, X2, , Xk t-ơng ứng A đ X1X2 Xk qui tắc P văn phạm G Nếu nút n mang nhÃn e, n phải lá, nút nút mẹ Nếu đọc tất nhÃn (lá đ-ợc gán nhÃn tập ồẩ{e} theo thứ tự từ trái qua phải ta nhận đ-ợc xâu Xâu phần tử L(G) Ví dụ 1: Cho văn phạm G = < {+,-,*,0,1,2,3,4,5,6,7,8,9,z},{A,B,C,D,E,F,G}, S,P> Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 31 Nguyễn Đức Thuần -P: ® ® ® ® ® ® ® S B C D E F G B½ BzD CE +½-½e CF F*½F*F½*F G½FG ½1½2½3½ ½9 Ta nhận đ-ọc dẫn xuất: S B C z D E e F C * F F - F G F G G G G G F h T c u D Ví dụ 2: Xét Văn phạm phi ngữ cảnh sau: G = g N Trong văn phạm có cho kết qđa cïng mét c©u : if b then for c if b then a else a s if b then for a c if S b then A a else S a n a u Lý ThuyÕt Ng«n Ngữ Hình Thức & Ôtômat 32 Nguyễn Đức Thuần -s if b A then S else a for c if b S then A a n a u Chó ý : - Nh- vËy cã thĨ cã nhiều kết quả, ứng với suy dẫn khác cho văn phạm phi ngữ cảnh - ứng kết có nhiều suy dẫn khác - Ta gọi suy dẫn nút đó, víi c¸c nót "con, ch¸u " cđa nã, c¸c nh¸nh nối chúng nhÃn kèm theo Cây giống suy dẫn, khác nhÃn gốc không thiết ký hiệu đầu S Nếu nhÃn gốc A, gọi A-cây h T c u D 3.1.3 Mối liên quan suy dẫn suy dẫn: 3.1.3.1 Định lý: Cho G = văn phạm phi ngữ cảnh, S a có suy dẫn G mà kết a g N Chøng minh: Ta sÏ chøng minh mét mệnh đề rộng hơn: "AẻD, A a có A-cây G mà kết a a.(Điều kiện đủ): Giả sử a kết A-cây Ta chứng minh qui nạp theo số nút A a: - Nếu có nút trong, A-cây có dạng nh- hình: A X1 X2 Xn Hình 3.2 A- víi chØ nót BÊy giê, a= X1X2 Xn Ađ a sản xuất P định nghĩa suy dẫn Vậy A a: Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 33 Nguyễn Đức ThuÇn Gi¶ thiÕt r»ng kÕt luËn có số nút không k-1, với k>1 Cho a kết A-cây với k nút Xét gốc A Chúng Giả sử nhÃn chúng kể từ trái qua phải X1, X2, ,Xn , với n1 Vậy Ađ X1X2 Xn sản xuất P Nếu nút mang nhÃn Xi lá, gốc với kết Nếu nút mang nhÃn Xi lá, cho = Xi Dễ thấy, i< j, nút j nút "con, cháu" bên trái nút i Vậy a = a1a2 an Vì thực phải có nút cây, giả thiết qui nạp với Xi-cây với nút i không lá, tức có Xi Còn nút = Xi, vËy cịng cã Xi ╞═ GhÐp c¸c d·y suy dÉn bé phËn l¹i víi ta cã: A├─ X1X2 Xn ╞═ aiX2X3 Xn ╞═ aia2X3 Xn ╞═ ╞═ aia2a3 a n = a VËy A ╞═ a ( Chó ý suy dÉn nµy chØ lµ nhiỊu suy dẫn đ-ợc thành lập từ suy dẫn đà cho) n a u b (Điều kiện cần) Bây giả sử A a Ta cần chứng minh có A-cây với kết a - NÕu A ╞═ a chØ víi mét b-íc suy dÉn, A a sản xuất P ta có A nh- hình 3.2 với kết a - Giả sử với biến A, nÕu cã A ╞═ a lµ mét suy dÉn Ýt k b-ớc, có Acây với kết lµ a XÐt suy dÉn A ╞═ a lµ k b-ớc Giả sử b-ớc thứ sản xuất đ-ợc dùng A đ X1X2 Xn tức A X1X2 Xn ╞═ a ThÕ th× mäi ký hiƯu a phải trùng với Xi đó, đ-ợc suy dẫn từ Xi nữa, sản xuất có dạng Bđa cho phÐp thay thÕ tõng biÕn 1, cho nªn nÕu i0, nh-ng không k-1 Nh- giả thiết qui nạp, Xi biến có Xi - với kết Gọi Ti Bây ta thành lập A-cây với kết a nh- sau: Tr-ớc hết dựng A-cây với n có nhÃn X1, X2, ,Xn; tiếp đó, nút có nhÃn Xi với Xi biến, đ-ợc thay Ti t-ơng ứng; Xi ký hiệu cuối, không cần thay kết kết thúc chứng minh h T c g N u D A X1 X2 X3 cuèi Xn-1 Xn cuèi T2 T3 H×nh 3.3 A- Tn Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 34 Nguyễn Đức Thuần -3.1.4 Suy dÉn bªn trái nhất, suy dẫn bên phải nhất; Sự nhập nhằng: 3.1.4.1 Định nghĩa : Suy dẫn bên trái (nói gọn suy dẫn trái), b-ớc suy dẫn, biến đ-ợc thay biến nằm bên trái dạng câu T-ơng tự, suy dẫn bên phải (nói gọn suy dẫn phải), b-ớc suy dẫn, biến đ-ợc thay biến nằm bên phải dạng câu Mỗi suy dẫn với kết a, t-ơng ứng với nhiều suy dÉn S╞═ a Chóng cã thĨ chØ kh¸c thứ tự áp dụng sản xuất L-u ý, với xâu aẻ L(G), có nhiều suy dẫn khác nhau, có kết a Nói khác xâu a phân tích có ph¸p theo nhiỊu c¸ch kh¸c 3.4.1.2 Sù nhËp nhằng ngôn ngữ phi ngữ cảnh: n a u Định nghĩa: Cho văn phạm phi ngữ cảnh G = , ta nói văn phạm G nhập nhằng tồn xâu w kết suy dẫn khác G Ngôn ngữ văn phạm G sinh ngôn ngữ nhập nhằng G văn phạm nhập nhằng Ví dụ 3: Cho văn phạm phi ngữ cảnh G = , = {+,a,*}, D={S}, P = {S®S+S, S®S*S, S® a} ë ký hiệu + phép cộng, * phép nhân Xâu a+a*a kết suy dẫn (thực phép * tr-ớc) Suy dẫn bên trái ứng với suy dẫn : S S*S ├─ S+S*S ├─ a+S*S ├─ a+a*S ├─ a+a*a S S * g N S S + h T c u D S a a a Xâu a+a*a kết cđa c©y suy dÉn (thùc hiƯn phÐp + tr-íc) Suy dẫn bên phải ứng với là: S ├─ S*S ├─ S*a ├─ S+S*a ├─ S+a*a├─ a+a*a S S a + S S a * S a Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 35 Nguyễn Đức ThuÇn -Nh- xâu a+a*a kết suy dẫn khác Vì văn phạm ví dụ văn phạm nhập nhằng Để khắc phục nhập nhằng G đó, ta : - Hoặc qui định phép cộng nhân luôn đ-ợc thực theo thứ tự từ trái qua phải (trừ gặp vòng đơn) Qui định đ-ợc thể G1 d-ới đây, t-ơng đ-ơng với G nh-ng không nhập nhằng nữa: S đ S+TẵS*TẵT T đ (S)ẵa - Hoặc qui định rằng, vòng đơn ngăn cách, phép nhân * đ-ợc -u tiên tr-ớc phép cọng + Qui định đ-ợc thể văn phạm G2 d-ới đây, t-ơng đ-ơng với G mà không nhập nhằng S đ S + T ẵT T đ T*F ẵF F đ (S)ẵa 3.2 Giản l-ợc văn phạm phi ngữ cảnh: h T c n a u Trong văn phạm phi ngữ cảnh cã nhiỊu u tè thõa, vÝ dơ cã nh÷ng ký hiệu không tham gia vào trình sinh ngôn ngữ, có qui tắc dạng A đ B làm thời gian trình hình thành xâu ngôn ngữ Vì lẽ cần loại bỏ yếu tố d- thừa ích việc sinh ngôn ngữ, cho việc loại bỏ không làm ảnh h-ởng tới trình sinh ngôn ngữ Điều có nghĩa giữ lại ký hiệu qui tắc có ích văn phạm G mà chúng thực cần thiết trình sinh ngôn ngữ mà g N u D 3.2.1 Ký hiƯu cã Ých vµ ký hiƯu thừa: Cho văn phạm phi ngữ cảnh G = , X đ-ợc gọi ký hiệu có ích, tồn suy dẫn S Xò w, ,ò ẻ(ồẩD)*, X ẻồẩD wẻồ* Nếu ký hiệu X không thỏa mÃn điều kiện X gọi ký hiƯu thõa Nh- vËy X lµ ký hiƯu thõa từ X dẫn xâu w ẻồ* Ký hiệu X có tính chất nhvậy đ-ợc gọi ký hiệu vô sinh Nếu từ ký hiệu ban đầu S không dẫn đ-ợc xâu có chứa ký hiệu X ta nói X ký hiệu không đến đ-ợc Nh- ký hiệu thừa ký hiệu vô sinh không đến đ-ợc 3.2.2 Bổ đề (loại ký hiệu vô sinh) Cho VPPNC G = , với L(G) ạặ Ta xây dựng đ-ợc văn phạm PNC G' = , t-ơng đ-ơng với G, cho A ẻD' có xâu w ẻồ* để A G w Chứng minh: Duyệt tập sản xuất P G kết nạp dần biến vào D' nh- sau: - Nếu A đ w sản xuất, với AẻD,wẻồ* kết nạp A vào D' Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 36 Nguyễn Đức Thuần Nếu A đ X1X2 Xn qui tắc P, mà Xiẻồ Xi biến đà đ-ợc kết nạp vào D' đ-a A vào D' Quá trình xây dựng D' theo giải thuật sau: Begin 1) 2) 3) 4) 5) D cị := Ỉ; D míi := {AẵAđ w, với wẻồ*}; While D cũ D míi begin D cị := D míi; D míi := D cũ ẩ {AẵA đ a với aẻ(ồẩDcũ)* } end; D' := D míi; 6) end Ta thÊy thuËt toán dừng P hữu hạn Thiết lập P' gồm sản xuất P mà ký hiệu thuộc D' ẩồ Ngoài ra: A đ-ợc đ-a vào D dòng 2) hay 5) A suy dẫn xâu ký hiệu kết thúc Ng-ợc lại ta chứng minh A suy dẫn xâu ký hiệu kết thúc, A tr-ớc sau đ-ợc đ-a vào D Chứng minh điều qui nạp theo ®é dµi cđa suy dÉn A╞═ w h T c n a u Cơ sở qui nạp: - Nếu độ dài suy dẫn 1, A đw sản xuất, A đ-ợc kết nạp vào D ë b-íc 2) - Gi¶ sư A ├─ X1X2 Xn╞═ w bëi suy dÉn k b-íc VËy cã thĨ viÕt w = w1w2 wn, ®ã Xi ╞═ wi, víi Ê i Ê n, suy dẫn không đến k b-ớc.Theo giả thiết qui nạp, Xi b-ớc tr-ớc sau đ-ợc kết nạp vào D Ngay sau Xi đ-ợc kết nạp vào D b-ớc 5), trở lại dòng 3) ta có Dcũ D Xi cuối ch-a đ-ợc đ-a vào D cũ Do vòng lặp While đ-ợc thực thêm lần nữa, A đ-ợc kết nạp vào D dòng 5) Bây chứng minh L(G') = L(G): - HiĨn nhiªn L(G') Í L(G) - Ng-ợc lại giả sử có w L(G) nh-ng không L(G') Vậy suy dẫn w G phải có dùng biến D-D' có dùng sản xuất P-P' Nh- vËy tån t¹i biÕn D-D' cho phÐp suy dÉn xâu ký hiệu cuối Đó mâu thn VËy L(G) Í L(G').(®.p.c.m) g N u D 3.2.3 Bổ đề (loại ký hiệu không đến đ-ợc) Cho mét VPPNC G = , ta cã thĨ x©y dùng đ-ợc văn phạm phi ngữ cảnh G' t-ơng đ-ơng với G, G' = , víi å'= {a}, D'={S}, P' = {S đ a} Rõ ràng L(G') = L(G)= {a} u D Chó ý : ViƯc ¸p dơng bổ đề để xây dựng NNPNC từ VPPNC ký hiệu thừa, áp dụng theo thø tù bỉ ®Ị , råi ®Õn bỉ đề 1, không thiết loại bỏ hết c¸c ký hiƯu thõa g N VÝ dơ 5: XÐt văn phạm : S đ ABẵa Ađa áp dụng bổ đề 1, B bị loại với sản xuất S đ AB áp dụng bổ đề cho văn phạm S đa Ađa ta thấy S a đến đ-ợc Vậy văn phạm t-ơng đ-ơng không chứa ký hiệu thừa Nếu tiến hành theo thứ tự ng-ợc lại, áp dụng bổ đề tr-ớc ta không loại đ-ợc ký hiệu nào, sau áp dụng bổ đề 1, ta loại B S đ AB, Vậy văn phạm còn: chứa ký hiệu vô ích A 3.2.5 Các e - sản xuất: Cho văn phạm phi ngữ cảnh G = Nếu P có sản xuất A đe, AẻD ta nói G có e-sản xuất Nếu e ẻL(G), ta loại Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 38 Nguyễn §øc ThuÇn -hết e-sản xuất đ-ợc Ng-ợc lại eẽL(G), ta loại bỏ toàn e-sản xuất khỏi L(G) 3.2.5.1 Định lý: Giả sử G = văn phạm phi ngữ cảnh L(G) ngôn ngữ văn phạm G Khi L\{e} ngôn ngữ phi ngữ cảnh L(G') với văn phạm PNC G' = 2 AđB1B2 Bn thay sản xuất AđB1K1, K1đB2K2, K2đB3K3, ,Kn-2đBn-1Bn K1, K2, ,Kn-2 ký hiệu thêm vào Bn-1Bn} Đặt D1 = D'ẩ {K1, K2, ,Kn-2}, R1={Ađa, AđB1K1, K1đB2K2, K2đB3K3, ,Kn-2 đ Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 41 Nguyễn Đức Thuần -Khi ®ã G1= » G= tháa m·n ®iỊu kiện định lý Định lý đà d-ợc chứng minh Ví dụ 8: Cho văn phạm phi ngữ cảnh G= , ồ= {a,b}, D={S,A}, P={SđaAS, Sđa, AđSbA, AđSS, Ađba} Ta xây dựng văn phạm G1= , t-ơng đ-ơng với văn phạm G cho G1 dạng chuẩn CHOMSKY, tr-ớc hết ta xây dựng văn phạm G'= , với D'={S,A, a , b }, P' = {S ® a, S® a AS, S ®S b A, A®SS, A® b a , a đa, b đb}, P' gồm sản xuất có dạng Ađa, AđB1B2 Bn, A, B1B2 Bn ẻD', aẻồ Tiếp theo ta xây dựng văn phạm chuẩn CHOMSKY G1= , cã : D1= D' È {B1, B2}, P1= {S®a, S® a B1, B1®AS, A®SB2, B2® b A, A®SS, A® b a , a ®a, b ® b} n a u Ta kiểm chứng đ-ợc L(G') = L(G1) V× L(G') = L(G), suy L(G)=L(G1) víi G1 văn phạm dạng chuẩn CHOMSKY h T c Ví dụ : Cho văn phạm phi ngữ cảnh G= , ồ= {a,b}, D={S,A,B}, P={SđbA, SđaB, AđbAA, AđaS, Ađa, BđaBB, BđbS, Bđb} Tìm dạng chuẩn Xây dựng văn ph¹m G' = , víi : D' = DÈ{ a , b }, = {S, A, B, , a , b }, P' = {S ® b A, S® a B, A ® b AA, A® a S, A®a, B® a BB, B® b S, B®b, a ®a, b ®b} KiÓm chøng cã L(G') = L(G) g N u D Từ G' ta xây dựng dạng chuẩn CHOMSKY G1 = nh- sau: å= {a,b}, D1={S,A,B, , a , b , F1, F2} P1= {S ® b A, S® a B, A ® b F1, F1®AA, A® a S, A®a, B® a F2, F2 ® BB, B® b S, B®b, a ®a, b ®b} Ta cã L(G') = L(G1) hay L(G) = L(G1) 3.4 Một số toán định NNPNC Các toán mà kết mang tính chất tổng quát trả lời tính đặc tr-ng cho NNPNC gọi toán định Ví dụ: Một xâu w có phải thuộc ngôn ngữ L(G) không? Hai ngôn ngữ PNC có t-ơng đ-ơng không ? Có số toán định giải đ-ợc nghĩa tồn giải thuật, có số toán không giải đ-ợc Ví dụ toán NNPNC đà cho có nhập nhằng hay không ? toán không giải đ-ợc Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 42 Nguyễn §øc ThuÇn -Trong phần nghiên cứu số toán định giải đ-ợc NNPNC 3.4.1 Tính hữu hạn 3.4.1.1 Định lý : Tồn thuật toán để xác định phải NNPNC cho biết : a Rỗng b Hữu hạn c Vô hạn Chứng minh: Cho mét NNPNC L= L(G) víi G = a TÝnh rỗng - Bổ đề 1, mục 3.2.2 đà cho giải thuật để xác định phải biến có sinh xâu ký hiệu cuối hay không Vậy giải thuật khẳng định ký hiệu đầu S có sinh xâu ký hiệu cuối không, tức cho biết L(G) rỗng hay không n a u b Tính hữu hạn L(G): Định lý Pumping: Mọi ngôn ngữ phi ngữ cảnh L tồn số tự nhiên m cho "wẻL : ẵwẵ m, w phân tích thành: w = uvxyz với ẵvxyẵÊ m, ẵvyẵ i i ị uv xy z ẻL, "i = 0,1,2, h T c u D Chøng minh: Giả sử G = văn phạm sinh L Theo định lý 3.3.2 dạng chuẩn chomsky ta xem L không chứa e G không chứa sản xuất đơn, esản xuất, G dạng chuẩn chomsky Gọi n = ẵDẵ, m= 2n+1 Xét sinh w tõ S , víi ½w½³ 2n+1 S 20 g N 21 w: 2n+1 Ta thấy đ-ờng dài T qua nhiều n+1 đỉnh, có n+1 đỉnh không kết thúc Do ẵDẵ= n, nên có đỉnh chứa ký hiệu không kÕt thóc trïng T Goi A lµ ký tự không kết thúc trùng lần cuối Gọi C đ-ờng dài từ ký hiệu A l l Ê n+1 Nói khác xâu sinh ttừ A xâu w biểu diễn d-ới dạng vxy ẵvxyẵÊ 2n+1 = m Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 43 Nguyễn Đức Thuần -S A l A u v x y z XÐt S ╞═ uAz uvAyz (*) Do b-ớc suy dẫn từ ký hiệu không kết thúc sinh ký hiệu kết thúc ký hiệu không kết thúc ị ½vy½³ (®pcm) Theo (*) ta cã : S ╞═ uAz ╞═ uvAyz ╞═ uv2Ay2z ╞═ ╞═ uviAyiz ỴL, "i³0 n a u Chú ý: Đối với định lý phi ngữ cảnh, định lý có ý nghĩa lớn Nó mô tả cấu trúc ngôn ngữ phi ngữ cảnh vô hạn Trong ngôn ngữ lập trình dùng để mô tả cấu trúc lồng nhau(các ngoặc số học, cặp if then else ) th-ờng đ-ợc dùng để chứng minh ngôn ngữ vô hạn không ngôn ngữ phi ngữ cảnh h T c Ví dụ 10: Chứng minh ngôn ngữ L = {anbncn : n 0} không ngôn ngữ phi ngữ cảnh u D Chứng minh: Giả sử L ngôn ngữ phi ngữ cảnh Xét w = akbkck ẻL , theo định lý Pumping, chọn k >m ta cã w = akbkck = uvxyz ỴL - NÕu vxy chØ chøa ký tù hc a, hc b, c ị uvixyiz (i 1) có số l-ợng ký tự a, b, c không ị uvixyizÏL - NÕu vxy chØ chøa ký tù hc ab, bc t-ơng tự nh- ị uvixyiz (i ³1) sÏ cã sè l-ỵng ký tù a, b, c không ị uvixyizẽL Nếu vxy chứa đủ ký tự a, b, c, ẵxẵ ị vixyi chứa l-ợng a, b, c khác nhau.( i>1) Vậy L không ngôn ngữ phi ngữ cảnh g N Định lý : Có giải thuật xác định ngôn ngữ phi ngữ cảnh L(G) hữu hạn hay không Chứng minh: Theo định lý 3.2.3 ta chuyển dạng chuẩn chomsky ngôn ngữ phi ngữ cảnh L(G) Vì vậy, ta xét ngôn ngữ phi ngữ cảnh L(G) có dạng chuẩn chomsky Theo định lý Pumping: - Nếu $ wẻL(G), mà ẵwẵm =2n+1ị"i0 , w=uvxyz ẻL, "iẻN0: uvixyiz ẻL ịL(G) vô hạn, ng-ợc lại L(G) hữu hạn Theo chứng minh định lý Pumping ta thấy vô hạn xảy cã : A0 ╞═ a1A1b1 ╞═ a2A2b2╞═ ╞═an+1A0bn+1 v× để kiểm chứng tính hữu hạn G , ta lập đồ thị có h-ớng nh- sau : Mỗi đỉnh mộtký tự ch-a kết Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 44 Nguyễn Đức Thuần -thúc, AđBC có cung từ A ®Õn b, vµ mét cung tõ A ®Õn C Ta chứng minh L(G) hữu hạn đồ thị chu trình (*) Nếu có chu trình, chẳng hạn A0A1 AnA0 A0 ├─ a1A1b1 ├─ a2A2b2 ├─ ├─ anAnbn ├─ an+1A0bn+1 ai,bi xâu biến ẵ aibi ẵ= Vì văn phạm ký hiƯu thõa, nªn an+1 ╞═ v, bn+1 ╞═ w, víi v,w ẻồ* ẵvwẵ n+1 Vì n 0, nên v w đồng thời e Mặt khác, ký hiệu thừa, nên phải có suy dÉn S ╞═ xA0y vµ suy dÉn A0 ╞═ z Víi x, y, z Ỵå* Víi mäi i ta cã : S ╞═ xA0y ╞═ xvA0wy ╞═ xv2 A0w2y xvi A0wiy xvi zwiy Vì ẵvwẵ>0 nên xvi zwiy xvj zwjy ,với iạj văn phạm sinh số vô hạn xâu Ví dụ 11: Xét văn phạm : S ® AB A® BC ½a B® CC ½b C®a h T c Đồ thị đ-ợc lập đ-ợc cho hình sau: S S S n a u u D S Đồ thị chu trình Cấp S,A,B,C lần l-ợt 3,2,1, Chẳng hạn đ-ờng dài S S,A,B,C Vậy văn phạm sản sinh hữu hạn xâu, xâu có độ dài không lớn 23 = Thực ra, xâu dài suy dẫn đ-ợc từ S là: g N S ├─ AB ├─ BCB ├─ CCCB ├─ CCCCC aaaaa Nếu ta thêm vào văn phạm sản xuất nữa: C đ AB, ta đ-ợc đồ thị nhsau: S S S S Đồ thị có nhiều chu trình, chẳng hạn A,B,C,A Vậy ngôn ngữ vô hạn Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 45 Nguyễn Đức Thuần -3.4.2 Bài toán thành viên 3.4.2.1 Định lý: Tồn giải thuật để xác định, với VPPNC G= xâu xẻồ*, phải xẻL(G)? Chứng minh : Ng-ời ta đà đề xuất nhiều giải thuật cho toán Sau giải thuật gọi giải thuật CYK (Cocke-Younger-Kasami) với độ phức tạp thời gian tỉ lệ với ẵx3ẵ Giả sử G đà dạng chuẩn chomsky ẵxẵ=n tr-ớc hết ta cách xác định với i,j biến A, phải A xịj ?, xịj xâu x kể từ vị trí i có độ dài j Qui nạp theo j : - với j =1, A xịj A đ xịj sản xuất Với j >1, A xịj có sản xuất AđBC k, 1Ê k Ê j, cho B suy dẫn k ký hiệu đầu xịj C suy dẫn j-k ký hiệu cuối xịj Cũng tức là: n a u B xịk C xị+k, j-k Vì k j-k bé j, theo giả thiết qui nạp, ta đà xác định đ-ợc suy dẫn tồn hay không? đồng thời xác định đ-ợc A xịj hay không h T c Với cách làm đó, ta xác định đ-ợc phải S x1n , nh-ng x1n = x, xẻL(G) S x1n Sau giải thuật CYK thể ý t-ởng trên, Dij tập tất biến A cho A xịj L-u ý r»ng ta cã thĨ gi¶ thiÕt £ i Ê n-j+1, lúc xâu xịj với độ dài j thực tồn Giải thuật CYK: Begin 1) 2) 3) 4) 5) 6) 7) g N u D For i:=1 to n Di1 := {A/ Ađ a sản xuất a mét ký hiÖu thø i X} For j:=2 to n For i:=1 to n-j+1 begin Dij := Æ; For k:=1 to j-1 Dij := Dij È {AẵAđ BC sản xuất, BẻDik, C ẻDi+k,j-k} end; end; 8) If S ỴD1n then wỴ L(G) B-íc xử lý tr-ờng hợp j=1 Vì văn phạm G đà cho sẳn, nên b-ớc thứ chiếm thời gian cố định Vậy b-ớc chiếm thời gian O(n) Các vòng lặp for dòng làm cho b-ớc từ đến lặp lại nhiều n2 lần (do i,j Ên) Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 46 Nguyễn Đức Thuần -B-ớc lần thực chiếm thời gian cố định Vậy tổng thời gian để thực b-ớc 5) O(n2) Vòng lặp For dòng làm cho b-ớc lặp lại n lần Vì b-ớc chiếm thời gian cố định nên b-ớc gộp lại chiếm thời gian O(n) Vì b-ớc đ-ợc thực O(n2) lần, tổng thời gian thực cho b-ớc O(n3) Vậy độ phức tạp giải thuật O(n3) Ví dụ 11: Xét văn phạm dạng chuẩn Chomsky : S đ ABẵBC Ađ BAẵa B đ CCẵb C đ ABẵa xâu vào cần xét baaba Bảng Dij cho theo hình sau Dòng bảng đ-ợc cho b-ớc giải thuật Vì x11=x41= b, nên D11=D44={B} Cßn x21= x31= x51= a Suy D21= D31= D51= {A,C} b i j a a b a B S,A Ỉ Ỉ S,A,C A,C B B S,A,C A,C S,C B B S,A A,C h T c n a u u D §Ĩ tÝnh Dij víi j>1, ta thùc hiƯn vòng lặp For b-ớc Ta phải đối chiếu Dik với Di+k, j-k với k=1,2, ,j-1 để tìm biến D Dik biến E Di+k,j-k cho DE vế phải hay nhiều sản xuất Các vế trái sản xuất đ-ợc đ-a vào Dij Quá trình đối chiếu diễn cách tụt dần cột i, đồng thời trồi dần lên theo đ-ờng chéo qua Dij phía phải theo sơ đồ sau: g N Dij Chẳng hạn để tính D24 đối chiếu D21 ={A,C} với D33 ={B} Ta có D21D33={AB,CB} Vì có sản xuất Sđ AB CđAB nên S C đ-ợc đ-a vào D24 Tiếp đến lại xét D22D42={BS,BA} Vì có sản xuất Ađ BA nên đ-a thêm A vào D24 Xét D23D51={BA,BC} Vậy D24 ={S,AC} Cuối S ẻD15 Vậy xâu baaba thuộc ngôn ngữ sinh văn phạm đà cho ... để chứng minh ngôn ngữ vô hạn không ngôn ngữ phi ngữ cảnh h T c Ví dụ 10: Chứng minh ngôn ngữ L = {anbncn : n 0} không ngôn ngữ phi ngữ cảnh u D Chứng minh: Giả sử L ngôn ngữ phi ngữ cảnh Xét... L không ngôn ngữ phi ngữ cảnh g N Định lý : Có giải thuật xác định ngôn ngữ phi ngữ cảnh L(G) hữu hạn hay không Chứng minh: Theo định lý 3. 2 .3 ta chuyển dạng chuẩn chomsky ngôn ngữ phi ngữ cảnh... c g N u D A X1 X2 X3 cuèi Xn-1 Xn cuèi T2 T3 H×nh 3. 3 A- Tn Lý Thuyết Ngôn Ngữ Hình Thức & Ôtômat 34 Nguyễn Đức Thuần -3. 1.4 Suy dẫn bên trái

Ngày đăng: 09/05/2014, 08:58

Từ khóa liên quan

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

Tài liệu liên quan