BàigiảiToánhọcrờirạc Chơng 7 Vănphạmvàngônngữhìnhthức I. ngônngữhìnhthức 1. Cho bảng chữ cái = {0, 1}. Hãy chỉ ra : a. Các ngônngữ có 0 phần tử, 1 phần tử độ dài 0, 1 phần tử độ dài 1 trên bảng chữ cái . b. Các ngônngữ có các phần tử là mọi xâu có độ dài 2, độ dài 3. c. Ngônngữ có số phần tử nhiều nhất. Liệt kê các phần tử của ngônngữ này theo thứ tự tự điển và độ dài tăng dần của các xâu. d. Liệt kê các phần tử theo thứ tự tự điển và độ dài tăng dần của các xâu của ngônngữ có kí tự đầu tiên của các xâu là 0. e. Liệt kê các phần tử theo thứ tự tự điển và độ dài tăng dần của các xâu của ngônngữ có kí tự cuối cùng của các xâu là 1. Lời giải : f. L = , L = {}, L 1 = {0}, L 1 = {1} g. L 2 = {00, 01, 10, 11}, L 3 = {000, 001, 010, 011, 100, 101, 110, 111} h. * = {, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101, 110, 111, } i. L 1 = {0, 00, 01, 000, 001, 010, 011, } j. L 2 = {1, 01, 11, 001, 011, 101, 111, } 2. Biểu diễn các ngônngữ sau dới dạng mô tả tính chất : a. L = {, ab, aabb, aaabbb, } b. L = {, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101, 110, 111, } Lời giải : a. L 1 = {a n b n | n 0} b. * = {i 1 i 2 i n | i j {0, 1} n 0 } 3. Biểu diễn các ngônngữ sau dới dạng liệt kê : a. L = {a, bc} * b. L = {a n b n | n 1} c. L = { a n b m | m, n 1} d. L = {(01) n 0 m | n, m 1} Lời giải : a. L = {, bc, bcbc, , a, abc, abcbc, , aa, aabc, aabcbc, } b. L = {ab, aabb, aaabbb, } c. L = {ab, abb, abbb, , aab, aabb, aabbb, aaab, aaabb, } 1 BàigiảiToánhọcrờirạc d. L = {010, 0100, 010000, , 010100, 01010000, } 4. Hãy tìm hợp, giao, hiệu, phần bù, nhân ghép, lặp của các ngônngữ L 1 và L 2 sau : a. L 1 gồm các xâu bắt đầu bởi 1 và L 2 gồm các xâu kết thúc bởi 0. b. L 1 = {ab, aabb, aaabbb, } và L 2 = {ab, abab, ababab, } c. L 1 = {a n b n | n 0} và L 2 = { a n b m | m, n 0} d. L 1 = {a n b m | m n 0} và L 2 = { a n b m | 0 m n} Lời giải : L 1 L 2 a. {1, 0 | * } b. II. vănphạmhìnhthứcvàngônngữ sinh 5. Xây dựng vănphạm G = <, , I, R> sinh các ngônngữ sau : a. b. {} c. {a 1 a 2 a n } d. + e. * 6. Tìm các ngônngữ đợc sinh bởi vănphạm G = <, , I, R> với = {a, b} và R đợc cho : a. R = {I aIb | }. Xây dựng dẫn xuất của xâu aaabbb và aaaabbbb. b. R = {I aI | bI | a | b}. Xây dựng dẫn xuất của xâu abbaab và abbabbaa. c. R = {I aI | bA, A bA | }. Xây dựng dẫn xuất của xâu aaabb và aaabbbb. 7. Xây dựng vănphạm G = <, , I, R> sinh các ngônngữ sau : a. {a n b | n 0 }. Hãy chỉ ra dẫn xuất của xâu aaab và aaaaab. b. {ba n | n 0 }. Hãy chỉ ra dẫn xuất của xâu baaa và baaaaa. 8. Xây dựng vănphạm G = <, , I, R> sinh các ngônngữ sau : a. Tập xâu nhị phân bắt đầu bằng 1 còn lại toàn bit 0. b. Tập xâu nhị phân kết thúc bằng 0 còn lại toàn bit 1. 9. Xây dựng vănphạm G với bảng chữ chỉ gồm 2 chữ cái a, b sinh các ngônngữ sau : a. {a | * }. b. {b | * }. 10. Cho các vănphạm : a. G 1 với tập qui tắc I aI | Ib | aIb | c b. G 2 với tập qui tắc I II | a | b c. G 3 với tập qui tắc I aA | bB | c , A Ia, B Ib d. G 4 với tập qui tắc I AB, A Ic | a, B dB | b e. G 5 với tập qui tắc I IaI | b f. G 6 với tập qui tắc I aII | b g. G 7 với tập qui tắc I AA , A aAa | bAb | c Hãy tìm L(G i ) (i = 1 7) và gọi tên ngônngữ theo phân loại Chomsky. 11. Xây dựng vănphạm sinh ngônngữ : 2 BàigiảiToánhọcrờirạc a. L = { a n b n | n 0} b. L = { a n b m | m, n 0} 12. Xây dựng vănphạm sinh ngônngữ : a. L = { a n b m | n m 0} b. L = { a n b m | m n 0} 13. Xây dựng vănphạm sinh ngônngữ : a. L = { a n b n a n | n 0} b. L = { a n b n c m | m, n 0} 14. Xây dựng vănphạm sinh ngônngữ : a. L = { a n b n a m | m, n 0} b. L = { a m b n a n | m, n 0} 15. Xây dựng vănphạm sinh ngônngữ L = { | là từ đối xứng gơng} trên = {a, b} 16. Xây dựng vănphạm sinh ngônngữ L = { b | * } với = {a 1 , a 2 , , a n } 17. Xây dựng vănphạm sinh ngônngữ L = { | * } với = {a 1 , a 2 , , a n } 18. *Kí hiệu d(a, ) là số chữ cái a xuất hiện trong xâu . Cho L là ngônngữ đợc sinh bởi vănphạm G = <, , I, R> với = {a, b} và R gồm các luật sinh : I aB | bA A aI | bAA | a B bI | aBB | b Chứng minh rằng L = { | * và d(a, ) = d(b, ) } Gợi ý : Hãy chứng minh bằng qui nạp theo độ dài của xâu các khẳng định sau : i. I |- d(a, ) = d(b, ) ii. A |- d(a, ) = d(b, ) + 1 iii. B |- d(a, ) = d(b, ) 1 19. *Ngôn ngữ L trên bảng chữ = {a, b} đợc định nghĩa nh sau : i. ab, ba L ii. Nếu 1 , 2 L thì a 1 b, b 1 a, 1 2 L iii. Tập L chỉ gồm các xâu đợc sinh theo qui tắc trên. a. Chứng minh rằng mọi xâu L đều có d(a, ) = d(b, ) và ngợc lại. b. Xây dựng vănphạm phi ngữ cảnh sinh ra L. c. Xây dựng thủ tục đệ qui sinh ra dẫn xuất đầy đủ của xâu trong vănphạm G. 20. *Kí hiệu pre() để chỉ khúc đầu của . ( đợc gọi là khúc đầu của nếu có thể biểu diễn đ- ợc = , khi đó cũng còn đợc gọi là khúc sau của ). Cho vănphạm G có tập qui tắc R = { I aI | aIbI | } và = {a, b}. Chứng minh rằng : L(G) = { * | d(a, pre()) d(b, pre()), pre() } 3 BàigiảiToánhọcrờirạc 21. Cho ngônngữ L = { | d(a, ) = 2d(b, ) }. a. Hãy phát biểu định nghĩa đệ qui của L. b. Xây dựng vănphạm sinh L. 22. Tơng tự bài 21. với L là tập các biểu thức Bool 2 biến với 3 phép toán +, . và ơ. III. Vănphạm Tơng đơng 23. Hãy tìm vănphạm tơng đơng của các vănphạm trong các bài tập từ 7 đến 9. 24. Hãy tìm vănphạm tơng đơng của các vănphạm trong các bài tập từ 10 đến 12. IV. Các Phép toán trên ngônngữ 25. Cho các vănphạm G i = < i , i , I i , R i > (i = 1 3) với : R 1 = {I 1 aI 1 b | ab | ba } ; R 2 = {I 2 I 2 e | A, A cAd | cd } ; R 3 = {I 3 0I 3 | A, A 1A | B, B 0B | 0 } a. Hãy xây dựng vănphạm G 4 sao cho L(G 4 ) = L(G 1 ) L(G 2 ). b. Hãy xây dựng vănphạm G 5 sao cho L(G 5 ) = L(G 1 ) L(G 2 ) L(G 3 ). 26. Cho các vănphạm G i = < i , i , I i , R i > (i = 1 3) với : R 1 = {I 1 aI 1 b | ba } ; R 2 = {I 2 aI 2 b | I 2 c | ba } ; R 3 = {I 3 aI 3 b | a } c. Hãy xây dựng vănphạm G 4 sao cho L(G 4 ) = L(G 1 ) L(G 2 ). d. Hãy xây dựng vănphạm G 5 sao cho L(G 5 ) = L(G 2 ) L(G 3 ). 27. Cho các vănphạm G i = < i , i , I i , R i > (i = 1 3) với : R 1 với tập qui tắc I II | a | b R 2 với tập qui tắc I IaI | b R 3 với tập qui tắc I aII | b a. Hãy xây dựng vănphạm G 4 sao cho L(G 4 ) = L(G 1 ) . L(G 2 ). b. Hãy xây dựng vănphạm G 5 sao cho L(G 5 ) = L(G 2 ) . L(G 3 ). 28. Bằng cách xét hợp của 2 văn phạm, hãy xây dựng vănphạm sinh ngônngữ L = { a n , b n | n 1}. 29. Bằng cách xét giao của 2 văn phạm, h ãy xây dựng vănphạm sinh ngônngữ L = { a n b n | n 1} (Gợi ý : áp dụng bài 12). 30. Bằng cách xét giao của 2 văn phạm, h ãy xây dựng vănphạm sinh ngônngữ L = { ab | {a, b}*} (Gợi ý : áp dụng bài 9). 31. Bằng cách xét nhân ghép của 2 văn phạm, h ãy xây dựng vănphạm sinh ngônngữ L = { a n b m | 4 BàigiảiToánhọcrờirạc m, n 1}. Vănphạm do bạn xây dựng đợc tơng đơng với vănphạm nào đã biết. 32. *Xây dựng vănphạm sinh ngônngữ L = { a n b m | n m } 33. *Xây dựng vănphạm sinh ngônngữ L = { a n b m c k | n m hoặc m k } 5