- , T ĐẠI HỌC VINH THƯ VIỆN ĐÔ ĐỨC GIÁO W Ế 511 ĐO-G/00 DT 000489 - ọ KỊ Ha N ú i NHÀ XUÂT BÁN ĐAI HOC QUÔC GIA HÀ NÔI Chiu trách nhiêm xuất Giam đốc ban: NGUYỄN VÀN THOA Tổng biên tập NGUYEN THIỆN GIÁP Người nhận TS NGUYEN TUỆ xét: TS HÀ QUANG THỤY Biên tập sửa Trình bày bìa: in: Đ ỗ Hữu PHÚ NGỌC ANH TOÁN RỜI RẠC Mã số : 01 64.ĐH2000 - 55.2000 In 1000 bản, Nhà in Đại học Quốc gia Hà NÓI Số xuất bản: 39/55/CXB Số trích ngang 171 KH/XB In xong nõp lưu chiểu Quý IV năm 2000 L Ờ I NÓI Đ Ầ U Nhằm đáp ứng nhu cầu phục vụ học tập đông đảo sinh viên ngành Tin học Công nghệ thông tin trường đại học Chúng biên soạn giáo trình "Toán rời rác" theo hướng : xếp nội dung tinh giản, hợp lý, đửng thời bảo đảm khôi kiên thức thiểu sở Toán cho Tin học đê sinh viên có điều kiện tiếp thu tốt môn chuyên ngành chương trình đào tạo cử nhân Tin học Công nghệ thông tin giai đoạn li Với khôi kiến thức đề cập giáo trình này, sinh viên có thê tự học, tự đọc không khó khăn cấc tài liệu chuyên sâu lĩnh vực Tin học lý thuyết Nội dung giáo trình bao gửm : Chương 1: Khái niệm thuật toán - Phương pháp quy nạpPhương pháp đệ quy Chương 2: Quan hệ Chương 3: Đử thị hữu hạn Chương 4: Cây Chương 5: Nhập môn văn phạm ngôn ngữ hình thức Chương 6: Ôtômat hữu hạn đoán nhận ngôn ngữ quy Chưởng 7: Otômat xuống đoán nhận ngôn ngữ phi ngữ cảnh Chương 8: Lôgic toán Chương 9: Đại sốboole Trong chương chi đề cập khái niệm nhất, đông thời đưa sô ví dụ minh họa giúp bạn đọc hiểu rõ chất vân đề, cuối chương phần tập đê bạn đọc củng cô kiên thức tiếp thu đưực từ phản lý thuyết Tác giả xin chân thành cảm ơn bạn đồng nghiệp, Khoa Công nghệ thống tin Trường đại học Khoa học Tự nhiên - Đại học Quốc gia Hà Nội động viên, kích lệ biên soạn giáo trình Cảm ơn TS Nguyễn Tuệ, TS Hà Quang Thụy, TS Đinh Mạnh Tường, TS Vũ Ngọc Loàn đọc thảo đóng góp nhiều ý kiến quý báu cảm ơn Nhà xuất đại học Quác gia Hà Nội tạo điều kiện đê sách sớm đến tay bạn đọc Cuốn sách xuất lần hai, không tránh khỏi thiếu sót, chân thành cảm ơn tiếp thu ý kiên bạn đọc đê lần xuất sau đưực hoàn thiện Tác giả Chương Ì KHÁI N I Ệ M THUẬT TOÁN - PHƯƠNG PHÁP QUY NẠP - PHƯƠNG PHÁP ĐỆ QUY |1 KHÁI NIỆM THUẬT TOÁN 1.1 T h u ậ t t o n Thuật toán khái niệm quan trọng toán Nói đến thuật toán nói đèn dãy quy tắc nhằm định dãy thao tác đôi tượng, cho sau sô hữu hạn bước thực thao tác ta đạt mảc cần làm học xác tiêu 1.2 C c đ ặ c t r n g t h u ậ t t o n - Tính dừng: Sau sô hữu hạn bước thuật toán phải dừng - Tính xác định: bước bước thao tác phải rõ ràng không gây liên nhập nhằng Nói rõ điều kiện hai xử lý thực bước thuật toán phải cho kết - Tính hiệu quả: Trước hết thuật toán cần đắn, nghĩa sau chia liệu vào thuật toán hoạt động đưa kết ý muốn • Tính phô dụng: Thuật toán giải toán lốp toán Cụ thể thuật toán có thê có đầu vào liệu khác miên xác định - Yếu tố vào ra: Đối với thuật toán có đối tượng vào (input) đối tượng (output) 1.3 N g ô n ngữ thuật t o n thuật - Ngôn ngữ dùng để miêu tả thuật toán gọi ngôn ngữ toán - Thuật toán thường mô tả bặng dãy lệnh Bộ xử lý thực lệnh theo trật tự định gặp lệnh dừng kết thúc - Ngôn ngữ thuật toán bao gồm : + Ngôn ngữ liệt kê bước; + Sơ đồ khối; + Ngôn ngữ lập trình a) Ngôn ngữ Hét kê bước nội dung sau: Thuật toán: Tên thuật toán chức Vào: Các liệu vào vói tên kiểu Ra: Các liệu vối tên kiểu Biến phụ (nếu có) gồm tên kiểu õ Hành động thao tác vối lệnh có nhãn số tự nhiên Ví dụ : Để giải phương trình bậc hai ax' + bx + c = (a ±-0), ta mô tả thuật toán bặng ngôn ngữ liệt kê sau: Bước 1: Xác định hệ sốa,b,c Bước 2: Kiểm tra xem hệ số a có khác hay không ? Nêu a = quay lại thực bưốc Bước 3: Tính biểu thức A = t r - 4ac Bước 4: Nếu A < thông báo phương trình vô nghiệm chuyển đèn bước -b chuyến sang Nêu A : tính X i 2a Bước õ: bưỏc Bưốc 6: Tính X, b + VÃ b-VÃ Xs = 2a chuyển 2a sang bước Bưóc 7: Thông báo nghiệm X i , x Bưốc 8: Kết thúc thuật toán b) Sơ đồ khôi Để mô tả thuật toán sơ đồ khối ta cần dựa vào nút -au : - Nút thao tác: Biểu diễn hình chữ nhật ghi câu lệnh cần thực Nêu có nhiều câu lệnh liên tiếp cần thực chúng viêt chung hình chữ nhật; - Nút điều kiện: Biểu diễn hình thoi ghi điêu kiện cần kiểm tra trình tính toán; - Nút khởi đầu, kết thúc: Biêu diễn hình elip, thể bỉt đ ầ u hay kết thúc trình; - Cung: Biểu diễn đoạn thẳng có hướng, dùng để đường t h u ậ t toán Nút thao tác Nút điểu kiên Nút khởi đáu, kết thúc Cung Ví du: Dê giải phướng t r ì n h bạc hai ax" I bx + c - (a=0) ta mô t ả thuật toan b ă n g p h n g p h p sơ đồ khối n h sau: c) Ngôn ngữ lập trình Để giải toán thực tè máy tính nguôi ta thường sử dụng J11 ọ t loại ngôn ngữ gọi ngôn ngữ lập trình chẳng hạn ngôn ngữ lập trình Cobol Algol Pascal, v.v Chương trình dãy hữu hạn câu lệnh viết theo quy tắc nhầt định ngôn ngữ l ậ p trình Hav nói cách khác, để giải toán trước hết cần có thuật toán để giải toán Để máy tính hiểu thuật toán người ta sử dụng ngôn ngữ lập trình cụ đế diễn đạt thuật toán thông qua ngôn ngữ Ví dụ: Để giải phương trình bậc hai ax + bx + c = (a^O), thuật toán mô tả chương trình viết Pascal sau: Program GIAI_PHUONG_TRINH_BAC_HAI; uses crt; var a, b, c, denta, x i , x2: real; BEGIN clrscr; write('Nhap he so : '); repeat write('a = '); readln(a); write('b = '); readln(b); write('c = '); readln(c); until a0; denta := sqr(b) - 4*a*c; if denta < then begin write('phuong trinh vo nghiêm'); halt; end else if denta = then begin write("phuong trinh co nghiêm kép x=' -b/(2*a)); exit; end else begin x1:=(-b-sqrt(denta))/(2*a); x2:=(-b+sqrt(denta))/(2*a); writelnCphuong trinh co hai nghiêm phan bỉet'); write('x1= \ x i , ' ,', 'x2 =', x2); exit; end; readln; END 1.4 Đ ô p h ứ c t p t h u ậ t t o n Khi để xuất thuật toán việc quan tâm đèn tính đắn thường phải quan tâm đến số vấn đề như: líu điểm nhược điểm tính phổ dụng thời gian tính toan Với thuật toán sử dụng có tỗn sô cao thuật toan xếp thuật toán tìm kiêm, ta đặc biệt quan tâm đến thời gian cỗn thiết cho việc thực thuật toán Thông thường với thuật toán, liệu vào có kích thước số Chẳng hạn ta xếp dãy sô kích thước liệu xem sô phỗn tử n dãy Rõ ràng với li lốn thòi gian cỗn thiết cho việc xép lớn hàm đôi số lì Ta ký hiệu hàm f(n) 10 Dân xuất đầy đủ 0) D = (I, I) r vói n = : = 4, co = Dãn xuất đầv đủ to : D = (I ABBDF ABB I A B I I A I I I I I I I ) vối n = : = 9.0)= I Dẫn xuất đầy đủ co : D = (I ABBDF ABDCBF ADCBCBF, AAECCBBF A"BBBBDF AAECBCBF AAECBBF, AAAAEBBF, A"BEBF, 4 A B 1, A 4 A BBEF, ri, I V I = ) 11 Một cách tông quát vói co = = ki) n Ta có dẫn xuất đầy đủ cho co là: D= (I ABBDF A'" I f i l l ) I 2(11 "V li I n "DF A'" "V" I (li 1) »2(11 l u I " I A' n , '""I ị ri §5 MỘT S Ố TÍNH CHẤT C Ủ A VĂN PHẠM Định nghĩa 10: (Đồng lực đản xuất) Cho văn phạm G = < Z.A, ì, R> hai dãy dẫn xuất D = (co,,, coI co) D' = (co,,', co,' co,,,') vân phạm G Hai dẫn xuất gọi đồng lực co,, = co,,' co = co,,,' k k Định nghĩa li: (Dan xuất không lặp) Cho văn phạm G = < z A ì, R> dẫn xuất D = (co,> co, co,) Dẫn xuất D gọi dẫn xuất không lặp nêu không tồn t i cặp CO;, coi (i * ị) mà co, = (Oj 225 Định lý 1: Đôi vối dẫn xuất văn phạm ý tồn t i dẫn xuất không lặp đồng lực vối Chứng minh: Giả sử D = (co,,, co, co ị ị (Oi, co co ) Rõ ràng dẫn xuất đồng lực vối Xét trường hợp sau: i(1 k a) Trong D không c ó c ặ p CO; (0j v ố i i ĩ= j mà CO, = tOj Khi D dẫn xuất không lặp đồng lực với b) Trong D có cặp co, = C0j i j Khi ta xét dẫn xuất: D'= (co,,, co Ị to i ị tói toi ti co ) Rõ ràng đâv dẫn xuất đồng lực vối D D' nhận tữ D cách bỏ to ị coi, I C0j Ì co,., co giữ nguvên k k Nếu D' cặp CO), = O p (h * p) l i lặp l i trình D' gồm xâu khác tững đôi Lúc ta dẫn xuất không lặp vối dẫn xuất D Đinh lý 2: Đối vói văn phạm G bao giò xây dựng vàn phạm G' tương đương với G tức L(G) = L(G') Chứng minh: Giả sử G = văn phạm Vói a € H a lập ký hiệu mối a í I u A Đặt Z, = {ã I a e X} R| ={ã —> a Ia Z} Còn Rv tập quy tắc nhận tữ R cách thay thê ký hiệu a có quy tắc cùa R ký hiệu tương ứng a í X U A Khi ta xây dựng văn phạm G' = sau: r = ì À' = s, Kin ta CÓL(G) = L(G') 226 u A r= ì R' = R, u R, T h ậ t v ậ y t r c h ế t c h ứ n g m i n h bao h m t h ứ c L ( G ) c L(G') Xét b ấ t kỳ p L(G) K h i t n t i dẫn x u ấ t đầv đủ D = ( ì co,, co Nêu t r o n g D ta p d ụ n g D ' = ( ì co,', co ' co li = P) t r o n g G t h a y đ ô i m ỗ i q\iy t ắ c t h u ộ c R m quy tắc t n g úng R t h ì ta co ' = P') l m ộ t d ẫ n x u ấ t t r o n g G' T i ế p t ụ c t a k p d ụ n g c c q u v t ắ c t r o n g R i c ủ a G' đôi v i P' ta có d ẫ n x u ấ t D " = (ì, co,' co ' co ' = p k co ' = P) N h ậ n t h ấ y D " l m ộ t d ẫ n k+m x u ấ t đ ầ v đ ủ t r o n g G' đ ó p L ( G ' ) V ì p t u y ý t r o n g L ( G ) suy L ( G ) c L(G') T a c ầ n c h ứ n g m i n h bao h m t h ứ c n g ợ c l i L ( G ' ) C L ( G ) G i ệ s p e L ( G ' ) K h i đ ó t n t i t r o n g G' m ộ t d ẫ n x u ấ t đ ầ v đ ủ D - ( ì , O j \ ©2 < = P) đ â y p ì* T r o n g D ' t a t h a y m ọ i k ý h i ệ u a e X i b i a e y K h i đ ó n h ậ n đ ợ c D = ( ì (lìị, co2 *»k = P) d ẫ n x u ấ t c ủ a p t r o n g G t ứ c l p e L ( G ) T đ ó s u y r a L ( G ) c L ( G ' ) V ậ y ta đ ã c h ứ n g m i n h đ ợ c L ( G ) = L ( G ' ) có n g h ĩ a l G t n g đ n g v ố i G' G i ệ sử z b ệ n g c h ữ n o N h đ ã đ ị n h nghĩa, m ộ t n g ô n n g ữ t r ê n b ệ n g c h ữ c i X m ộ t t ậ p n o đ ó c c x â u t r ê n z t ứ c l m ộ t t ậ p c o n b ấ t k ỳ c ủ a X* l m ộ t n g ô n n g ữ t r ê n y T r ê n l ố p c c n g ô n n g ữ t a có t h ể đ ị n h n g h ĩ a p h é p hợp c c n g ô n n g ữ v p h é p g i a o n g ô n n g ữ t n g t ự n h t r o n g lý t h u y ế t tập hợp N g h ĩ a n ế u L ị L c c n g ô n n g ữ t r ê n z p h é p h ợ p c ủ a c h ú n g đ ợ c k ý h i ệ u L , o L v x c đ ị n h : L ị ^J L = {co I e L i to £ L } 2 v g i a o c ủ a c h ú n g đ ợ c k ý h i ệ u l L , r-> L v x c đ ị n h b i : 227 L] o L = {co I e L i v CO e L } B â y giò t a đ ị n h n g h ĩ a p h é p n h â n n g ô n n g ữ L , v i n g ô n ngữ L n g ô n n g ữ k ý h i ệ u L , L v đ ị n h nghĩa sau: L|.L = {aịi l a L | v p e L } t r o n g đ ó ơ.p k ế t q u ả n ố i g h é p c ủ a h a i x â u a v p Chú ý: N ó i c h u n g L1.L2 *• L L i h a y p h é p n h â n k h ô n g có t í n h g i a o h o n n h n g n ó có t í n h k é t h ợ p t ứ c l L , ( L L ) = (Lq.La).!^ v có t í n h p h â n b ố v ố i p h é p h ợ p v p h é p g i a o h a y Lị.CU v G 228 = 2 a) Ta x â v dựng v ă n p h m Gíị sinh n g ô n n g ữ L | u L n h sau: I , I-> I } í Ta chứng m i n h L(G;j) = L | u L T h ậ t v ậ y trước h ế t chứng m i n h bao h m thức L ( G ) C L | ^J họ G i ả sử p e L ( G ) k h i t n t i d ẫ n x u ấ t đ ầ y đ ủ D = ( co,, co,, co, co ) đ â y co,, - ì co = p X ' = ( ì , u I ) \ T k k cách x â y dựng v ă n p h m G;, ta suy co, = I[ hoợc 03, = I G i ả sử co, = ì,, k h i d ẫ n x u ấ t (coị, to co = P) có dạng k (lị co co.) co - P) d ẫ n xuất đầy đ ủ p v ă n p h m k Gi = < ì , A , J „ R,> hay L(G,) C Li U p e L , = L(G,) V ậ y P e L | U L tức ụ T r n g hợp k h i co, = li t h ì p Ly v p L | u L , ta co L(G;Ị) C L | U LỊ B â y giò ta chứng m i n h bao h m thức ngược l i L i ^ L C L(G ) T h ậ t v ậ y giả sử P e L | U Lọ k h i p L | hoợc p L C h ẳ n g h n p e L) = L(Gi) Theo đ ị n h nghĩa ta có d ẫ n x u ấ t đ ầ v đủ D = ( l ị co,, cov co = P) với p e Xi* K h i d ẫ n k xuất D' = (ì ì,, co, co = P) d ẫ n x u ấ t đ ầ y đ ủ v ă n p h m k G, p l i ' P e ( ì , u Sa)' V ậ y L , L, C L(G,) hay L(G ) = L i W L - tức lớp n g ô n ngữ sinh v ă n p h m dóng đôi vối p h é p b) T v ă n p h m G| G ta x â y dựng v ă n p h m G sinh lớp n g ô n n g ữ L , L-; n h sau : G = < z A ì R> s 229 z = Si u Z-2 A = Ai u A ị u {ì}, R = R , u R a u f l - i l J a } Ta chứng minh L ( G ) = L,.L Trước hết ta bao hàm thức L(G ) C L q L Thật xét p L(G ) Khi G tồn t i dẫn xuất đầv đủ D = (I, I ] I C0J2, co I C I , P ] I P[C0i', 5 a 2 P ( ' P , P = P) 2 Ở đoạn từ ì đến P J áp dụng quy tắc R i nên p, L(G,) = L i Còn đoạn từ p,03,' đến P,P = p có đưịc áp dụng quy tắc R nên P e L'(G ) = L Vậy p = p , p e L,.L 2 2 2 Vậy bao hàm thức L(G ) C L i L đưịc chứng minh Tiếp theo ta chứng minh bao h m thức ngưịc l i Li L C L(G ) Giả sử p L).L tồn t i Pị e L i p e L cho p = p,.p Vì p, L, = L(G,) nên tồn t i dẫn xuất đầy đủ D, = (I C0, C0 (0 =p,) G) p,el,* Do P eL =L(G ) nên tồn t i dẫn xuất đầy đủ Đ-2 = (I2 to ị' co,„'= P ) vói 2 2 k 2 p I2* Lập dẫn xuất D = (I I , I coJ-2 CO2I2 P J - P i ^ i ' Pi^V- •••• P]P = P) Đây dẫn xuất đầy đủ văn phạm G , p - p , p e s = CL U s)* hay p e L(G ) Tóm l i ta có L j L C L(G ) Kết hịp vối khẳng định c ó ta c ó UU = L(G,).L(G ) = L(G ) 2 r 2 5 Vậy lớp ngôn ngữ văn phạm sinh đóng đôi với phép toán n h â n (.) c) Từ văn phạm G G ta xây dựng văn phạm G cho b L(G ) = L i n L sau : Ta xây dựng G = vói E = z, n 230 s r A = A| u A.J u Tị u u {I}, R = R ' , U R'v u { I - > I , u ^ R"| Ư R" r, = { a I a e Z J r, n r = với r 2 z} ={b lb e 2 FT, l t ậ p c c q u y t ắ c n h ậ n t t ậ p q u y t ắ c R | b ằ n g c c h t h a y c c k ý h i ệ u b ả n t r o n g X ] m c h ú n g có m ặ t t r o n g q u v t ắ c c ủ a ĩ?! b ô i k ý h i ệ u m ố i đ ố i n g ẫ u v i n ó R" t ậ p q u y tắc n h ậ n t t ậ p quy tắc R c c h t h a y c c k ý h i ệ u b ả n t r o n g z 2 m c h ú n g có m ặ t t r o n g quy tắc R k ý h i ệ u m ố i đ ố i n g ẫ u với Còn t ậ p quy t ắ c R ' l R ' x c đ ị n h n h s a u : I a I , ,b e z } R\ = {ã b -> b a R'i-{aa - » a I a e X i I , = {a b } A, = { I , } R, = { I , - > a l , b ì , - > ab} v vối Gi = v i l = {ch 2 2 A = { I } R, = { I | - > C I 2 I ->c} 2 X â v d ự n g v ă n p h m G;i = cho L(G;j) = L ( G , ) u L ( G ) v L ( G ) = L ( G , ) L ( G ) T a đ ã b i ế t L ( G , ) = {a"b" I a"b" e ì , * , l i > l í L(G )= {c m le"' I , ' , m > 1} a) L(Ga) = L ( G , ) u L ( G ) = { a b", c n m I n n i > 1} T a x â y d ự n g v ă n p h m G n h sau: I - I ) U l ị = {a b c}: 231 A = A i KJ A u {ì} ì í A| u Aị gọi k ý h i ệ u b a n đ ầ u G :( R = R , u R u { I - > I ì -> I } = í l = {ì, - > a ^ b l ị - > ab ì , - > c l , I —> c ì —> l i , ì -> I } T a c h ứ n g m i n h L ( G , ) = L ( G , ) 1} X é t bao h m t h ứ c L ( G ) c L ( G , ) u L ( G ) g i ả s p e L ( G ) ;í t ứ c t n t i d ẫ n x u ấ t đ ầ v đ ủ D = ( ì , co ị co co = P) ỏ đ â y n co, = ì , co, = I v p e ì* G i ả s co, = l ị , k h i đ ó D = ( I ì , 2 0) = a l , b 0) = a I , b 2 n co = a" ' I , b ' o , = a"b" = P) l d ẫ n đ ầ y n n t đ u c ủ a p = a"b" t r o n g G „ n ê n p é L ( G , ) h a y p e L ( G , ) u L ( G ) 2 T r n g h ợ p co, = I ta có D = ( ì , I , C0 = c l co =c I co 2 co = c m m m+1 = c = P) l d ẫ n x u ấ t đ ầ y đ ủ p t r o n g G h a y m ! I p L ( G ) tức 2 p e L(G,) U L(G ) Vậy L(G )cL(G )^L(G ) (1) L(G ) C L(G ) Giả X é t bao h m t h ứ c n g ợ c l i : L ( G , ) sử p e L ( G i ) u L(G ) Kliông g i ả m t í n h t ng q u t giả p e L ( G | ) K h i đ ó d ẫ n x u ấ t đ ầ y đ ủ c ủ a p t r o n g G , có d n g 2 D ' = ( I „ co,= a l , b , co = a I , b , co,, = a"b" = P) v p ì * T D ' t a có d ẫ n x u ấ t đ ầ y đ ủ c ủ a p l D t r o n g G ị D = ( I ì , o , = a l , b , co = a l ! b n V ậ y p G T r n g h ợ p p G ( T ó m l i t a có n co,, = a b = P) chứng m i n h tương tự L(G,) u L ( G j ) C L(G ) (2) T (1) v (2) t a có L ( G ) = L ( G , ) u L ( G ) b) T a x â y d ự n g G-, cho n n m L ( G ) = L ( G , ) L ( G ) = { a b c I m n > 1} T a x â y d ự n g G n h sau: I = I| D = (ì 1,1, ai,bi, a%b I p, = a'b"e ữ"b%=p l, p,cl, P %.p,c"' t = p.p,) ìC L(GL) p, = c"'e ựG*) hay p = P , P L(G,).L(G ) 2 Vậy bao h m thức L(G-,) C L(G|).L(G ) chứng minh Ta chứng minh bao hàm thức ngược l i : L(G,).L(G,) C L(G ) Thật giả sử p e L(G,).L(G ) hay p = P,P 2 : p,e L(G|) P e L(G ) Vì p,e L(G,) nên tồn t i dẫn xuất đầy đủ D, =(l! co,= al b co = a%b co,, = a"b = p,) G, p, e lị*: P e L(G ) nên tồn t i dẫn xuất đầy đủ D = a c l c% c = p ) G ỏ P € ì.; 2 t n 2 ni 2 2 2 2 n n Lập dẫn xuất D = 1,1, ai,bia a I,b Ị, a b I = P,I p,cl P , C I p,c = p,p ) : P,=a b"eL(G,); P =c eL(G ) hay p = p , p L(G ).L(G,) 2 m n 2 m 2 Vậy bao h m thức L(G|).L(G ) C L(G ) chứng minh hay L(G ) = L(G,).L(G ) S Chú ý: Vì l ị o 1-2 = nên ỏ ta không xét văn phạm G định lý BÀI TỗP Cho bảng đ ũ i E = {0.1} Ta ký hiệu ì * tập tất xâu (kể xâu rỗng A) Hãy viết ngôn ngữ ì * dạng liệt kê theo thứ tự độ dài tăng dần xâu có độ dài theo thứ tự tự điển Tìm cách biển diễn hữu hạn cho ngôn ngữ vô hạn sau: L | = {A ab aabb aaabbb .} 233 L = {A.0,1,00.01.11,000.001,010.011,100.101,110 111, } Ngôn ngữ L i L tập có t h ể biểu diễn thông qua văn phạm Hãy xây dựng hai văn phạm 2 Cho văn phạm sau đây: a) G = vối tập quy tắc sinh R = {I ^ ABC, AB lADj Dij -> j D i , D i e -> BiC iB -» Bi, AB —> A c —> A} vối i, j e {a.b} b) G = với tập quy tắc sinh R = {I -> ABBDF, BD -> DCB, BC -» CB, AD -> AAE, EC -> AE EB -> BE EF -> BBDF, DF-> I B -> I I - > } c) G = < I , A, ì, R> vối tập quy tắc sinh R = {ì -> l i , I -> alb, ì -> bia, I -» ab, I -> ba} d) G = vói tập quy tắc sinh R = { I - > a I I - > a / a e ĩ.} Hỏi văn phạm văn phạm quv, văn phạm văn phạm phi ngữ cảnh v ă n phạm văn phạm ngữ cấu ? Viết l i văn phạm dạng đầy đủ theo định nghĩa v ă n phạm Tìm ngôn ngữ văn phạm sinh Cho ngôn ngữ L = {corô/ t ó e {0,1}* ô ảnh gương co} Xây dựng văn phạm phi ngữ cảnh G cho L(G) = L n m Cho ngôn ngữ L = {a b" c / li, m > 1} Xây dựng văn phạm phi ngữ cảnh G cho L(G) = L Ngôn ngữ L t r ê n tự điển {a,b} g m t ấ t xâu không rỗng mà xâu sô ký tự a sô ký tự b Vì ngôn ngữ L ngôn ngữ phi ngữ cảnh ? 234 Cho v ă n p h m p h i n g ữ c ả n h v i t ậ p q u y t ắ c s i n h l R = { I - > a l a ì —> aa / a e s = {à,, a a„}Ị T ì m n g ô n n g ữ v ă n p h m s i n h r a H ã y c h ỉ r a d ẫ n x u ấ t đ ầ y đ ủ c ủ a x â u co = a a a a , 3 , : ^ ; , t r o n g v ă n phạm Cho n g ô n n g ữ L = {cobra/ to ì * = { a , a-2 a b}*} X â y k d ự n g m ộ t v ă n p h m p h i n g ữ c ả n h G cho L ( G ) = L 10 X â y d ự n g c c v ă n p h m c h í n h q u y s i n h r a c c t ậ p c c s ô t ự nhiên L = { 2, n} v t ậ p Lọ = { i f a = b t h e n cj t ọ n g ứ n g 11 Cho c c v ă n p h m a) Gi v ố i t ậ p quy tắc b) G v i t ậ p q u y t ắ c R = {ì - > l i I - > a ì —> b) c) G v ố i t ậ p q u y t ắ c R = { I - > a A , I - > b B I - > c, A - > I a B ^ - I b } d) G v i t ậ p quy tắc R = = {ì —> a i , ì —> l b , ì —> a l b ì —> c} 3 A B RÌ {ĩ —» A B A —> l e A - > a B - > d B bi e) G- v i t ậ p q u y t ắ c R-, = {ì —> l a i ì —> b} í) G,; v i t ậ p q u y t ắ c R„ = {ì —» a l l ì - > b} g) G v i t ậ p q u y t ắ c R, = { I - » A A A - > a A a A - > b A b A~>c} P h â n l o i ĩ v ă n p h m t r ê n t h e o n h ó m 2, CHOMSKY T ì m L ( G , ) (i = ) v g ọ i t ê n n g ô n n g ữ t h e o p h â n l o i 12 Bài toán 1: C h o v ă n p h m G = < £ A ì , R > H ã y x â y d ự n g v ă n p h m G ' = cho L(G) = L(G|) u L(G ) 2 2 2 Các bước x â y dựng G n h sau: Bưóc Ì : ì = I , KJ z Bưóc : A = A , u A , u {1} Bước : R = R, VJ R I „ ì -> I } 2 K l i i ta có L(G) = L(Gi) u L(G ) a) P h t b i ể u b i t o n cho t r n g hợp tổng q u t : Cho v ă n p h m Gi = (i = I l i ) Xâv dựng G = cho L(G) = Ũ ( G i ) L i=l b) Cho hai v ă n p h m G| = < Z j A| ì, R|> v ố i Z i = {a.b} A, = {I,} R = { I , ~> al,b, I , -> ab, ì, -> ba} G, = < ! , A I , R > với z2 = {c, d h} A = { I , A}, R = í ỉ) -> I h , I * -> A A -> cAd A -» cd} Xây dựng G = < I , A I R> cho L(G) = L(G,) u L(Gj) 2 c) 2 Cho Ga = < ! , A, Ị.; R,> vối s = {0 1} A = {ì3 A BỊ Ry = {la—>Olà I3->À A -> 1A A -> B B -> OB B -> o ị Xây dựng G = cho L(G) = L(Gj) u L(G,) u L(G ) đ â y G|, G cho c â u b, b i 13 236 d) H ã y x â y d ự n g v ă n p h m G = < I , A, ì R > cho L ( G ) = | J L ( G ; ) v i g i ả t h i ế t Gi cho t r o n g b i l i 14 Bài toán Cho h a i v ă n p h m Gi = v G, = < s A L R > X â y d ự n g v ă n p h m G = < I A ì R > 2 cho L ( G ) = L ( G , ) L ( G ) V i ệ c x â y d ự n g G t h ự c h i ệ n t h e o c c b ố c s a u : Bước Ì : ì = ì , u z B c : A = A , u A u {1} Bước3:R = R , u R ^ { I ->I,I } K l i i đ ó t a có L ( G ) = L ( G | ) ^J L ( G ) a) P h t b i ể u b i t o n t r ê n cho t r n g h ợ p t ổ n g q u t : Cho Gi = < ! ; , Ai, I , R > (í = li) Xây dựng G = < I A ì R > cho L ( G ) = L ( G , ) L ( G ) L ( G ) b) n X â y d ự n g v ă n p h m G cho L ( G ) = L ( G | ) L ( G ) đ â y G | v G cho t r o n g c â u b b i 13 c) X â y d ự n g v ă n p h m G cho L(G) = L(G,).L(G,).L(G,) đ â v G, v G đ ợ c cho t r o n g p h ầ n b c ò n G cho t r o n g p h ầ n c c ủ a b i 13 d) X â y d ự n g v ă n p h m G cho L(G) = L ( G , ) L ( G ) ^ L ( G ) L ( G , ) L ( G ) ỏ đâv G| G e) G- c c v ă n p h m p h ầ n b v c 14 H ã y x â y d ự n g v ă n p h m G cho L(G) = L ( G , ) L ( G ) L ( G , ) L ( G < ) L(Gfi) L(G«) L ( G ) , đ â y Gi ( i = 1,7) cho t r o n g b i l i 237 15 S i toán Cho hai v ă n p h m G; = < ! , , A i , I ] , R]> G = < L A , I , R > Xây dựng v ă n p h m G = < I A ì R> 2 2 cho L(G) = L(G,) o L(G ) Việc x â y dựng G theo bước sau đ â y Bước Ì : ì = l i o z Bưốc : A = A , u A u ĩ , u ĩ u{IJ Bước : R = R ) U R I , I } u R ' u R" , 2 2 ỏ ĩ,= { ã / a e ì,} ĩ = {b/be s } tập t ấ t quy tắc Ri m m ọ i ký t ự a e Zi đêu thay t n g ứng v ố i l e I | R-T- t ậ p t ấ t quy tắc R m m ọ i k ý t ự b e z 2 thay ký t ự b e ỵ.2 R' = { ã b - > b ã / a e ì , , b e I ) R" = ã ã - > a / a e a) S , n U Áp dụng b i t o n : Cho G , = < £ , A, l ị , R i > với li = {a.bị R, = { I , -> a l , b ì, > bai A,={I,} G = < s A R > v ố i z = {a b c}, Rĩ = {ỉ-2 -> I C 12 - > 2 2 2 a l b I -> ba} A = {la} Xây dựng G = 2 cho L(G) = L(G,) L ( G ) b) P h t b i ữ u b i t o n t r n g hợp tổng q u t : Cho Gi = < I , Ai l i , Rị> (i = rũ) Xây dựng G = cho L(G,) = L(G|) n L(G ) o n L(G„) = f ) L ( G i ) i=i c) Xây dựng v ă n p h m p h i n g ữ c ả n h G, G , G T i ê p theo x â y dựng G cho L(G) = L(G,) o L ( G ) n L(G ) 238 16 Cho G, = < I „ A„ I„ R,> với ì , = {a} = {I,}, R, = {ì, -> ai,, ì, -> a} Ai G = với z = {a.b}, A, = {I } 2 2 2 R = { I -> al b, I ^ a } 2 2 Xây dựng G = cho a) L(G) = L ( G , ) u L ( G ị ) ; b) L(G) = L ( G , ) n L ( G ) : í c) L(G) = L ( G , ) o L ( G ) L ( G , ) ^ L ( G ) 2 Xây dựng văn phạm tương đương vói văn phạm G câu la, l b le 239 [...]... ta có: 2 2 1 + 2 + + k - = k ^ k + lU2k + l ) 6 Do đó ta có : -,2 o 2 , 2 n ^ 2 k.(k + l).(2k f 1) , , , 1 + 2 + + k + ( k + 1 ) - - ^ + (k +1) 6 _ (k + l ) ( k + 2).(2k + 3) 2 2 2 6 V ậ y đẳng thức đ ú n g với lĩ = k + 1 do đó (1) được chứng minh Ví dụ 2: Chứng minh đ ẳ n g thức sau đ ú n g với mọi l i > 1 1 .1! Ỷ 2.2! + 4 nai! = ( n + l ) ! - l (1) a) Với n = 1 k h i đó hai vê của (1) b ằ n g... ta có : , 22 , v ,2 _ 1 + 2 + + i r - 11 . (11 + l).(2n + 1) - (ì) 6 T h ậ t vậy a) Với n = Ì thì hai vè b ằ n g nhau và b ằ n g 1 b) G i ả sử đẳng thức (1) đ ú n g vối m ọ i li < k có nghĩa là voi • v> mọi l i 1 2 n n n 1 Suy ra q = a q Ì vối n > Ì v à qi=6, t ừ đó ta có q = q a " Vễy n 2 a -a =q a "" n 1 1 1 n n 1 1 2 1 suy ra a = a +q a "" = 6.2"" - 3 2 n 1 1 2 M ộ t chương t r ì n h con đệ quy để t í n h số h ạ n g tổng q u á t a n được m i n h họa n h ư sau: Function fn(n:integer):integer; BEGIN if n=0 then fn:=0 else fn:=2*fn(n -1) +3; END; Ví dụ 2: M ộ t dãy a a a... k= + I a, I + I a 0 1 và Ì, ta có M I f(x) I < Cx" với m ọ i X > k hay f(x) là 0(x ) 2 Ví dụ 2: Cho f(n) = 1 + 2 + 3 + + n Chỉ ra f(n) là 0 ( n ) 2 T h ậ t vậy f(n) < lì + n + n + + 11 = 11 .11 = n , n ê n f(n) là 0(n ) với c = k = 1 Ví dụ 3: Chỉ ra h à m n! là 0 ( n ) và logn! là O(nlogn) 2 n n T h ậ t vậy, ta có n! < n" n ê n n! là 0 ( n ) với c = k = 1 li Từ l i ! < l i k r 1 c = - logn! < nlogn... =(k+2)!-l Vậy đẳng thức (1) đúng vối lì = k +1 và do đó (1) được chứng minh Ví dụ 3: Chứng minh đẳng thức sau đúng vói mọi n > 1 a > - Ì và a * 0 : n (l+a) >l+na (1) a) Vối lì = 2 khi đó vê trái của (1) lớn hơn vê phải của (1) Vậy (1) đúng b) Giả sít (1) đúng vối mọi n < k tức là với k > Ì và l i < k thì ta có: (Ì I à)" > ] + na (2) c) Tiếp theo cần chứng minh bất đảng thức đúng vối n = k +1 tức là cần phải... 1. 2 2 Ì Ì 2 Khi n = 2 T = — + — = 1. 2 2.3 3 1 Vậy liệu chăng tổng T sẽ thỏa mãn đẳng thức „ 1 1 1. 2 Ì • +—+ 2.3 +- n(n + l) n 11 +1 Bằng phương pháp quy nạp toán học ta thấy rằng đẳng thức trên là đúng đắn Tuy nhiên phương pháp quy nạp toán 23 học không phải lò phương pháp duy nhát đè giải quyêt nhúm bài toán như trên Chăng hạn đỏ tính tông l i T = 1. 2 2.3 Ì n(n + 1) Ngoài phương pháp đã nêu trên ta... ta c ũ n g có : f(x) là 0(h(x)) Ví dụ 1: Cho f(x) = a„x" + a„ jx" ' + + a,x + a, vối a, là các số thực (i = 0 Ì li) Khi đó f(x) = 0(x") T h ậ t vậy, với mọi X > Ì : ị a,,x" + a ,x" + + a,x 4 a„ I < I a„ ỉ x" + Ị a„ ỉ x" + + I a, I X 1 I f(x) I = n 1 I I = x n I a, { l 1