Bài tp Lý thuyt Ngôn ng Hình thc và Automata Trng H Bách Khoa - Khoa CNTT - Ngi son: H Vn Quân 1/5 BÀI TP LÝ THUYT NNHT&AUTOMATA PHN NGÔN NG CHÍNH QUI 1. Tìm các dfa cho các ngôn ng sau: L 1 = {w ∈ {a, b}*: n a (w) mod 2 = 0, n b (w) mod 2 = 1} L 2 = {w ∈ {0, 1}*: mi chui 00 đc theo ngay sau bi mt s 1} L 3 = {tp tt c các danh hiu ca Pascal} Mô t danh hiu: bt đu bng mt kí t ch (a đn z, A đn Z) hoc du gch di (_) sau đó là mt chui bt k bao gm các kí t ch, s (0 đn 9) và du gch di. L 4 = {tp tt c các s nguyên ca Pascal} Mô t s nguyên: 12, +12, -12 {tp tt c các s thc ca Pascal} Mô t s thc: 12.5, +12.5, -12.5, 12E3, +12E3, -12E3, 12E-3, +12E+3, -12E+3, +12E3, -12E3, 12E-312.5, +12.5, -12.5, Có th có bao nhiêu s 0 đi đu đu đc, ví d: 012, 0012, +012, -012, 012.5, Có th đc vit di dng khoa hc nh sau: 12E3, 12.5E3, +12.5E3, -12.5E3, 12.5E+3, 12.5E-3, -12.5E-3, 2. Tìm các dfa cho các tp sau trên Σ = {a, b} bao gm: L 5 = {tt c các chui có đúng mt kí hiu a} L 6 = {tt c các chui có ít nht mt kí hiu a} L 7 = {tt c các chui có không nhiu hn ba kí hiu a} 3. Mt “run” trong mt chui là mt chui con có chiu dài ti thiu 2 kí t, dài nht có th và bao gm toàn các kí t ging nhau. Chng hn, chui abbbaabba cha mt “run” ca b có chiu dài 3, mt “run” ca a có chiu dài 2 và mt “run” ca b có chiu dài 2. Tìm các nfa và dfa cho mi ngôn ng sau trên {a, b}. L 9 = {w: w không cha “run” nào có chiu dài nh hn 3} L 10 = {w: mi “run” ca a có chiu dài hoc 2 hoc 3} L 11 = {w: có ti đa hai “run” ca a có chiu dài 3} 4. Tìm các dfa cho các tp trên Σ = {0, 1} đc đnh ngha nh sau: L 12 = {kí hiu trái nht khác vi kí hiu phi nht.} L 13 = {mi chui con bn kí hiu có ti đa hai kí hiu 0. Chng hn, 001110 và 011001 là thuc ngôn ng, còn 10010 thì không.} L 14 = {kí hiu th t t bên phi khác vi kí hiu trái nht.} 5. Xây dng mt dfa mà chp nhn các chui trên {0, 1} nu và ch nu giá tr ca chui, đc din dch nh là biu din nh phân ca mt s nguyên, là bng 0 trong modulo ca 5. Chng hn, 0101 và 1111, biu din tng ng các s nguyên 5 và 15, là đc chp nhn. 6. Tìm dfa chp nhn ngôn ng sau trên {a, b}: L 15 = {vwv: w ∈{a, b} * , v= 2}; 7. Tìm các nfa cho các ngôn ng sau: L 1 = {vwv R ∈ {a, b}*: |v| = 2} L 2 = {abab n : n ≥ 0} ∪ {aba n : n ≥ 0} (vi điu kin nfa có không nhiu hn 5 trng thái) L 3 = {a n b m : (n+m) mod 3 = 0} L 4 = {w ∈ {a, b}*: n a (w) chn, n b (w) l} L 5 = {w ∈ {0, 1}*: giá tr thp phân ca w chia ht cho 6} L 6 = {w ∈ {a, b}*: s kí t a trong chui là mt s l} L 7 = {ab, abc} * (vi điu kin nfa ch có 3 trng thái) L 8 = {a n : n ≥ 0} ∪ {b n a: n ≥ 1} (vi điu kin nfa ch có 4 trng thái) 8. Bin đi các nfa sau, đc cho di dng đ th và/hoc dng bng truyn, thành các dfa tng đng: Bài tp Lý thuyt Ngôn ng Hình thc và Automata Trng H Bách Khoa - Khoa CNTT - Ngi son: H Vn Quân 2/5 Dfa M 1 Dfa M 2 Dfa M 3 Dfa M 4 a b λ a b λ a b λ a b λ q 0 q 1 q 3 q 1 q 0 q 1 , q 3 q 3 q 3 q 0 q 1 q 2 q 1 q 0 q 0 , q 1 q 2 q 1 q 2 q 2 , q 0 q 1 q 2 q 2 q 0 q 1 q 1 , q 2 q 3 q 3 q 1 q 2 q 3 q 0 q 2 q 1 q 2 q 1 q 2 q 0 , q 2 q 2 q 3 q 3 q 3 q 0 , q 4 q 3 q 4 q 3 q 4 q 4 q 3 q 2 , q 3 q 3 q 1 , q 2 q 0 q 4 q 3 , q 4 q 4 q 4 q 4 q 3 F = {q 0 } F = {q 2 } F = {q 2 } F = {q 4 } 9. Hãy rút gn các dfa sau (có th là dfa m rng) đc cho di dng đ th và/hoc dng bng truyn, thành các dfa tng đng. Dfa M 1 Dfa M 2 Dfa M 3 Dfa M 4 a b a b a b a b q 0 q 1 q 4 q 0 q 1 q 2 q 0 q 1 q 2 q 0 q 1 q 3 q 1 q 4 q 2 q 1 q 2 q 3 q 1 q 2 q 3 q 1 q 2 q 4 q 2 q 4 q 3 q 2 q 2 q 3 q 2 q 1 q 4 q 2 q 0 q 3 q 3 q 3 q 3 q 5 q 4 q 3 q 4 q 0 q 3 q 1 q 4 q 4 q 4 q 5 q 4 q 5 q 3 q 4 q 3 q 0 q 4 q 2 q 3 q 5 q 4 q 6 q 5 q 5 q 5 F = {q 3 , q 4 } F = {q 3 , q 4 } q 6 q 7 q 6 q 6 q 1 q 7 q 7 q 7 q 7 q 6 q 4 F = {q 1 , q 4 } F = {q 5 } a λ λ q 0 q 1 q 2 M 6 0 1 0, 1 1 0, λ q 0 q 1 q 2 M 7 a, b a a λ b λ q 0 q 1 q 3 q 2 q 4 b a a M 8 a a a b b b a a a a b b b q 0 q 2 q 1 q 5 q 4 q 6 q 3 b M 6 b b a b b b b b a a a a a q 0 q 2 q 1 q 5 q 4 q 6 q 3 a M 7 b a b b a b b a a b a a a b A B F D C G E M 8 0 1 0,1 0 0 1 1 0,1 0,1 q 0 q 1 q 2 q 3 q 4 q 5 M 5 Bài tp Lý thuyt Ngôn ng Hình thc và Automata Trng H Bách Khoa - Khoa CNTT - Ngi son: H Vn Quân 3/5 10. Tìm dfa ti gin cho các ngôn ng sau: L 1 = {anbm: n ≥ 2, m ≥ 1} L 2 = {anb: n ≥ 0} U {bna: n ≥ 1}} L 3 = {an: n ≥ 0, n ≠ 3} 11. Tìm các BTCQ cho các ngôn ng sau: L 1 = {w ∈ {a, b}*: s kí t a trong chui là mt s l} L 2 = {w ∈ {0, 1}*: chui con 00 xut hin ti đa mt ln} (Ghi chú : chng hn nu w có cha 000 thì xem nh chui con 00 xut hin đn 2 ln.) L 3 = {w ∈ {0, 1}*: w bt đu bng 0 kt tht bng 1 và không cha chui con 00} 12. Tìm biu thc chính qui cho các nfa sau: Nfa M 1 Nfa M 2 a B a b q 0 q 1 q 1 q 0 q 1 q 2 q 1 q 2 q 1 q 1 q 3 q 2 q 1 q 2 q 1 F = {q 2 } q 3 q 2 F = {q 3 } 13. Xây dng các nfa và các dfa cho các BTCQ sau: r 1 = aa* + aba*b* r 2 = ab(a + ab)* (b + aa) r 3 = ab*aa + bba*ab r 4 = a*b(ab + b)*a* r 5 = (ab* + a*b)(a + b*a)* b r 6 = (b + a*)(ba* + ab)*(b*a + ab) 14. Cho VPTT-P sau: S → aS|bA a) Xây dng nfa cho VPTT-P trên. A → bB|a b) Tìm BTCQ biu th cho ngôn ng đc sinh ra bi vn phm trên. B → aS|b c) Xây dng VPTT-T tng đng vi VPTT-P trên. 15. Cho hai ngôn ng L 1 và L 2 có hai dfa tng ng M 1 và M 2 sau. Tìm dfa cho thng đúng ca L 1 /L 2 . 16. Cho hai ngôn ng có hai dfa tng ng sau. Tìm dfa giao ca hai dfa đã cho. M 1 : M 2 : 17. S dng b đ bm đ chng minh các ngôn ng sau là không chính qui: L 1 = {a 2n b l : n ≥ 0, l ≥ n + 2} L 2 = {a n b l c k : n = l+1 hoc l ≠ k + 2} 18. Áp dng tính đóng ca h NNCQ đi vi các phép toán đ chng minh ngôn ng sau đây là không chính qui: L 1 = {a n b l c t : n, l, t ≥ 0, t ≠ n + l} L 2 = {a n b l : n + l là hp s} bit rng các ngôn ng L 3 = {a n b n : n ≥ 0} và L 4 = {a n : n là nguyên t} là không chính qui. M 1 : a b a b a, b M 2 : a b a a, b a b b b p 0 p 1 p 2 b b a a q 0 q 2 q 1 Bài tp Lý thuyt Ngôn ng Hình thc và Automata Trng H Bách Khoa - Khoa CNTT - Ngi son: H Vn Quân 4/5 PHN NGÔN NG PHI NG CNH 19. Tìm các VPPNC cho các ngôn ng sau: L 1 = {a 2n+1 bn +2 : n ≥ 0} L 2 = {w ∈ {a, b}*: n a (w) = n b (w) + 1} L 3 = {a n ww R b n+2 : w ∈ {a, b}*} L 4 = {w ∈ {a, b}*: n a (w) > n b (w)} L 5 = {a n b m : 2n ≤ m ≤ 3n} 20. Hãy s dng phng pháp phân tích cú pháp vét cn đ phân tích các chui w 1 , w 2 sau có đc sinh ra bi vn phm sau hay không: w 1 = aababb, w 2 = abababb. S → aSb|SS|aA A → aAa|bAb|a|b. 21. Hãy phân tích cú pháp cho các chui w sau trên các vn phm G tng ng. Trình bày dn xut trái nht nu chui thuc vn phm G 1 : S → aAS | bBS | λ (1, 2, 3) A → aAA | b (4, 5) B → bBB | a (6, 7) w 1 = aababb, w 2 = ababb G 2 : S → aS | bXaS (1, 2) X → aXbX | bXaX | λ (3, 4, 5) w 1 = aababb, w 2 = baabaa 22. Hãy bin đi các vn phm sau sang vn phm-s tng ng: G 1: S → aSb|aAb G 2: S → aSb | aab A → bAa|ba. Da vào đc đim ca vn phm-s hãy phân tích chui w = aabbaabb có đc sinh ra bi vn phm G 1 trên hay không. 23. Chng minh vn phm sau đây là nhp nhng sau đó hãy xây dng mt vn phm không nhp nhng tng đng cho nó: S → aS|AB A → aA|b|λ B → b|bb. 24. Hãy cho mt ví d v vic loi b lut sinh-rng có th sinh ra lut sinh đn v, lut sinh-vô dng loi 1; vic loi b lut sinh-đn v có th sinh ra lut sinh vô dng loi 2; vic loi b lut sinh vô dng loi 1 có th sinh ra lut sinh vô dng loi 2. 25. Hãy loi b đng thi các lut sinh-rng, lut sinh-đn v, lut sinh-vô dng ca vn phm sau: S → aABC D → b|bS A → λ E → cEF B → λ F → d|dF. C → AB|D|aE 26. Hãy bin đi các vn phm sau sang các vn phm có dng chun Greibach tng đng: G 1 : S → BAbABa G 2 : S → SAa A → aAb A → SbASa B → bBaAa 27. S dng gii thut CYK đ xác đnh các chui w 1 = abab, w 2 = abaa có đc sinh ra bi các vn phm tng ng G 1 , G 2 sau đây hay không, nu có hay đa ra các dn xut trái nht cho chúng: G 1 : S → ABBB G 2 : S → AB A → BAa A → BBa B → AAab B → BAb 28. Hãy xây dng các npda cho các ngôn ng sau và tìm dãy chuyn hình trng đ chp nhn các chui đc cho tng ng bên cnh. L 1 = {a n b m c n+m : n, m ≥ 0} w 1 = aabccc L 2 = {a n b n+m c m : n, m ≥ 1} w 2 = abbbcc L 3 = {a n b m : 2n ≤ m ≤ 3n} w 3 = aabbbbb Bài tp Lý thuyt Ngôn ng Hình thc và Automata Trng H Bách Khoa - Khoa CNTT - Ngi son: H Vn Quân 5/5 L 4 = {w: n a (w) = n b (w) + 2} w 4 = abaaba L 5 = {w: n a (w) = 2n b (w)} w 5 = abbaaa L 6 = {w: 2n b (w) ≤ n a (w) ≤ 3n b (w)} w 5 = ababaaa 29. Hãy xây dng các npda cho các vn phm có dng chun Greibach sau: G 1 : S → aSCaS 1 BaB G 2 : S → aABB|aAA S 1 → aS 1 BaB A → aBB|a B → b B → bBB|A C → c Xét chui w 1 = aaabbc. Hãy ch ra dn xut trái nht cho chui này trong vn phm G 1 đng thi hãy ch ra dãy chuyn hình trng tng ng trong npda tng ng đ chp nhn chui này. 30. Hãy xây dng npda cho các vn phm sau và tìm dn xut trái nht cùng dãy chuyn hình trng cho các chui w tng ng: G 1 : S → aAS | bBS | λ (1, 2, 3) A → aAA | b (4, 5) B → bBB | a (6, 7) w 1 = abba, w 2 = bbaaab G 2 : S → aS | bXaS (1, 2) X → aXbX | bXaX | λ (3, 4, 5) w 1 = abaab, w 2 = baaab 31. Hãy xây dng các dpda cho các ngôn ng sau và tìm các dãy chuyn hình trng đ chp nhn các chui đc cho tng ng bên cnh. L 1 = {a n b 2n : n ≥ 0} w 1 = aabbbb L 2 = {w: n a (w) = n b (w)} w 2 = abbaab L 3 = {w: n a (w) > n b (w)} w 3 = abbaaab 32. Chng minh vn phm sau cho ngôn ng L = {w: n a (w) = n b (w)} không là vn phm LL: S → aSbbSaSSλ. 33. Tìm các vn phm LL cho các ngôn ng sau (ch ra k bng bao nhiêu) và da vào tính cht ca h vn phm này hãy phân tích các chui đc cho tng ng bên cnh có đc sinh ra bi vn phm hay không. L 1 = {w: n a (w) = n b (w)} w 1 = abbaab L 2 = {w: n a (w) > n b (w)} w 2 = abbaaba L 3 = L(a*ba) ∪ L(abbb*) w 3 = abbb 34. Hãy xét xem các ngôn ng cho sau đây có PNC hay không. Nu không hãy s dng b đ bm cho NNPNC đ chng minh. L 1 = {a n b j c k : k = jn} L 5 = { a n b j a n b j : n ≥ 0, j ≥ 0} L 2 = {a n b j c k : k > n, k > j} L 6 = { a n b j a k b l : n + j ≤ k + l} L 3 = {a n b j c k : n < j, n ≤ k ≤ j} L 7 = { a n b j a k b l : n ≤ k, j ≤ l} L 4 = {w: n a (w) < n b (w) < n c (w)} L 8 = {a n b n c j : n ≤ j} 35. Hãy xét xem các ngôn ng cho sau đây có PNC tuyn tính hay không. Nu không hãy s dng b đ bm cho NNPNC tuyn tính đ chng minh. L 1 = {a n b n a m b m : n, m ≥ 0} L 2 = { w: n a (w) ≥ n b (w)} L 3 = {a n b j : j ≤ n ≤ 2j - 1} L 4 = L(G) vi G đc cho nh sau: E → T|E + T T → F|T * F F → I|(E) I → a|b|c 36. Cho vn phm G sau. Hãy phân tích cú pháp cho các chui w 1 = (a+b*c)*a và w 2 = (a + b)*+c theo phng pháp Earley. G: E → T|E + T F → I|(E) T → F|T * F I → a|b|c