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