Ngôn ngữ hình thức và văn phạm sinh
Bài tập Toán học rời rạc Bài tập chơng 7 ngôn ngữ hình thức và văn phạm sinh I. ngôn ngữ hình thức 1. Cho bảng chữ cái = {0, 1}. Hãy chỉ ra : a. Các ngôn ngữ có 0 phần tử, 1 phần tử trên bảng chữ cái . b. Các ngôn ngữ có các phần tử là mọi xâu có độ dài 2, độ dài 3. c. Ngôn ngữ có số phần tử nhiều nhất. Liệt kê các phần tử của ngôn ngữ 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ôn ngữ 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ôn ngữ có kí tự cuối cùng của các xâu là 1. 2. Biểu diễn các ngôn ngữ 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, } 3. Biểu diễn các ngôn ngữ 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} 4. Hãy tìm hợp, giao, hiệu, phần bù, nhân ghép, lặp của các ngôn ngữ 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} II. văn phạm hình thức và ngôn ngữ sinh 5. Xây dựng văn phạm G = <, , I, R> sinh các ngôn ngữ sau : a. b. {} c. {a 1 a 2 a n } d. + e. * 6. Tìm các ngôn ngữ đợc sinh bởi văn phạ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. 1 Bài tập Toán học rời rạc 7. Xây dựng văn phạm G = <, , I, R> sinh các ngôn ngữ 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ăn phạm G = <, , I, R> sinh các ngôn ngữ 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ăn phạm G với bảng chữ chỉ gồm 2 chữ cái a, b sinh các ngôn ngữ sau : a. {a | * }. b. {b | * }. 10. Cho các văn phạ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ôn ngữ theo phân loại Chomsky. 11. Xây dựng văn phạm sinh ngôn ngữ : a. L = { a n b n | n 0} b. L = { a n b m | m, n 0} 12. Xây dựng văn phạm sinh ngôn ngữ : a. L = { a n b m | n m 0} b. L = { a n b m | m n 0} 13. Xây dựng văn phạm sinh ngôn ngữ : 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ăn phạm sinh ngôn ngữ : 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ăn phạm sinh ngôn ngữ L = { | là từ đối xứng gơng} trên = {a, b} 16. Xây dựng văn phạm sinh ngôn ngữ L = { b | * } với = {a 1 , a 2 , , a n } 17. Xây dựng văn phạm sinh ngôn ngữ 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ôn ngữ đợc sinh bởi văn phạm G = <, , I, R> với = {a, b} và R gồm các luật sinh : I aB | bA 2 Bài tập Toán học rời rạc 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ăn phạ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ăn phạ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ăn phạ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() } 21. Cho ngôn ngữ 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ăn phạ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ăn phạm Tơng đơng 23. Hãy tìm văn phạm tơng đơng của các văn phạm trong các bài tập từ 7 đến 9. 24. Hãy tìm văn phạm tơng đơng của các văn phạm trong các bài tập từ 10 đến 12. IV. Các Phép toán trên ngôn ngữ 25. Cho các văn phạ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ăn phạm G 4 sao cho L(G 4 ) = L(G 1 ) L(G 2 ). b. Hãy xây dựng văn phạm G 5 sao cho L(G 5 ) = L(G 1 ) L(G 2 ) L(G 3 ). 26. Cho các văn phạm G i = < i , i , I i , R i > (i = 1 3) với : 3 Bài tập Toán học rời rạc 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ăn phạm G 4 sao cho L(G 4 ) = L(G 1 ) L(G 2 ). d. Hãy xây dựng văn phạm G 5 sao cho L(G 5 ) = L(G 2 ) L(G 3 ). 27. Cho các văn phạ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ăn phạm G 4 sao cho L(G 4 ) = L(G 1 ) . L(G 2 ). b. Hãy xây dựng văn phạ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ăn phạm sinh ngôn ngữ 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ăn phạm sinh ngôn ngữ 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ăn phạm sinh ngôn ngữ 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ăn phạm sinh ngôn ngữ L = { a n b m | m, n 1}. Văn phạm do bạn xây dựng đợc tơng đơng với văn phạm nào đã biết. 32. *Xây dựng văn phạm sinh ngôn ngữ L = { a n b m | n m } 33. *Xây dựng văn phạm sinh ngôn ngữ L = { a n b m c k | n m hoặc m k } 4