Tải bản đầy đủ (.pdf) (5 trang)

Bài tập ngôn ngữ chính quy và ngôn ngữ phi ngữ cảnh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (283.33 KB, 5 trang )

Bài tp Lý thuyt Ngôn ng Hình thc và Automata

Trng H Bách Khoa - Khoa CNTT - Ngi son: H Vn Quân 1/5
BÀI TP LÝ THUYT NNHT&AUTOMATA
PHN 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}*: mi chui 00 đc theo ngay sau bi mt s 1}
L
3
= {tp tt c các danh hiu ca Pascal}
Mô t danh hiu: bt đu bng mt kí t ch (a đn z, A đn Z) hoc du gch di
(_) sau đó là mt chui bt k bao gm các kí t ch, s (0 đn 9) và du gch di.
L
4
= {tp tt c các s nguyên ca Pascal}
Mô t s nguyên: 12, +12, -12
{tp tt c các s thc ca Pascal}
Mô t s thc: 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 vit di dng khoa hc 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 tp sau trên Σ = {a, b} bao gm:


L
5
= {tt c các chui có đúng mt kí hiu a}
L
6
= {tt c các chui có ít nht mt kí hiu a}
L
7
= {tt c các chui có không nhiu hn ba kí hiu a}
3. Mt “run” trong mt chui là mt chui con có chiu dài ti thiu 2 kí t, dài nht có th và bao
gm toàn các kí t ging nhau. Chng hn, chui abbbaabba cha mt “run” ca b có chiu dài 3,
mt “run” ca a có chiu dài 2 và mt “run” ca b có chiu dài 2. Tìm các nfa và dfa cho mi
ngôn ng sau trên {a, b}.
L
9
= {w: w không cha “run” nào có chiu dài nh hn 3}
L
10
= {w: mi “run” ca a có chiu dài hoc 2 hoc 3}
L
11
= {w: có ti đa hai “run” ca a có chiu dài 3}
4. Tìm các dfa cho các tp trên Σ = {0, 1} đc đnh ngha nh sau:
L
12
= {kí hiu trái nht khác vi kí hiu phi nht.}
L
13
= {mi chui con bn kí hiu có ti đa hai kí hiu 0. Chng hn, 001110 và 011001 là
thuc ngôn ng, còn 10010 thì không.}

L
14
= {kí hiu th t t bên phi khác vi kí hiu trái nht.}
5. Xây dng mt dfa mà chp nhn các chui trên {0, 1} nu và ch nu giá tr ca chui, đc din
dch nh là biu din nh phân ca mt s nguyên, là bng 0 trong modulo ca 5. Chng hn,
0101 và 1111, biu din tng ng các s nguyên 5 và 15, là đc chp nhn.
6. Tìm dfa chp nhn 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} (vi điu kin nfa có không nhiu hn 5 trng thái)
L
3
= {a
n
b

m
: (n+m) mod 3 = 0}
L
4
= {w ∈ {a, b}*: n
a
(w) chn, n
b
(w) l}
L
5
= {w ∈ {0, 1}*: giá tr thp phân ca w chia ht cho 6}
L
6
= {w ∈ {a, b}*: s kí t a trong chui là mt s l}
L
7
= {ab, abc}
*
(vi điu kin nfa ch có 3 trng thái)
L
8
= {a
n
: n ≥ 0} ∪ {b
n
a: n ≥ 1} (vi điu kin nfa ch có 4 trng thái)
8. Bin đi các nfa sau, đc cho di dng đ th và/hoc dng bng truyn, thành các dfa tng
đng:



Bài tp Lý thuyt Ngôn ng Hình thc và Automata

Trng H Bách Khoa - Khoa CNTT - Ngi son: H Vn 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 gn các dfa sau (có th là dfa m rng) đc cho di dng đ th và/hoc dng bng
truyn, thành các dfa tng đ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 tp Lý thuyt Ngôn ng Hình thc và Automata

Trng H Bách Khoa - Khoa CNTT - Ngi son: H Vn Quân 3/5

10. Tìm dfa ti gin 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 chui là mt s l}
L
2
= {w ∈ {0, 1}*: chui con 00 xut hin ti đa mt ln}

(Ghi chú : chng hn nu w có cha 000 thì xem nh chui con 00 xut hin đn 2 ln.)
L
3
= {w ∈ {0, 1}*: w bt đu bng 0 kt tht bng 1 và không cha chui con 00}
12. Tìm biu thc 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 dng 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 dng nfa cho VPTT-P trên.
A → bB|a b) Tìm BTCQ biu th cho ngôn ng đc sinh ra bi vn phm trên.
B → aS|b c) Xây dng VPTT-T tng đng vi VPTT-P trên.
15. Cho hai ngôn ng L
1
và L
2
có hai dfa tng ng M
1
và M
2
sau. Tìm dfa cho thng đúng ca
L
1
/L
2
.




16. Cho hai ngôn ng có hai dfa tng ng sau. Tìm dfa giao ca hai dfa đã cho.



M
1

: M
2
:


17. S dng b đ bm đ chng 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 hoc l ≠ k + 2}
18. Áp dng tính đóng ca h NNCQ đi vi các phép toán đ chng 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à hp s}
bit rng 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 tp Lý thuyt Ngôn ng Hình thc và Automata

Trng H Bách Khoa - Khoa CNTT - Ngi son: H Vn Quân 4/5
PHN NGÔN NG PHI NG CNH

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 dng phng pháp phân tích cú pháp vét cn đ phân tích các chui w
1
, w
2
sau có đc
sinh ra bi vn phm 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 chui w sau trên các vn phm G tng ng. Trình bày dn xut
trái nht nu chui thuc vn phm
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 bin đi các vn phm sau sang vn phm-s tng ng:
G
1:
S → aSb|aAb G
2:
S → aSb | aab
A → bAa|ba.
Da vào đc đim ca vn phm-s hãy phân tích chui w = aabbaabb có đc sinh ra bi vn
phm G
1
trên hay không.
23. Chng minh vn phm sau đây là nhp nhng sau đó hãy xây dng mt vn phm không nhp
nhng tng đng cho nó:
S → aS|AB
A → aA|b|λ
B → b|bb.
24. Hãy cho mt ví d v vic loi b lut sinh-rng có th sinh ra lut sinh đn v, lut sinh-vô dng
loi 1; vic loi b lut sinh-đn v có th sinh ra lut sinh vô dng loi 2; vic loi b lut sinh vô

dng loi 1 có th sinh ra lut sinh vô dng loi 2.
25. Hãy loi b đng thi các lut sinh-rng, lut sinh-đn v, lut sinh-vô dng ca vn phm sau:
S → aABC D → b|bS
A → λ E → cEF
B → λ F → d|dF.
C → AB|D|aE
26. Hãy bin đi các vn phm sau sang các vn phm có dng chun Greibach tng đng:
G
1
: S → BAbABa G
2
: S → SAa
A → aAb A → SbASa
B → bBaAa
27. S dng gii thut CYK đ xác đnh các chui w
1
= abab, w
2
= abaa có đc sinh ra bi các vn
phm tng ng G
1
, G
2
sau đây hay không, nu có hay đa ra các dn xut trái nht cho chúng:
G
1
: S → ABBB G
2
: S → AB
A → BAa A → BBa

B → AAab B → BAb
28. Hãy xây dng các npda cho các ngôn ng sau và tìm dãy chuyn hình trng đ chp nhn các
chui đc cho tng ng  bên cnh.
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 tp Lý thuyt Ngôn ng Hình thc và Automata

Trng H Bách Khoa - Khoa CNTT - Ngi son: H Vn 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 dng các npda cho các vn phm có dng chun Greibach sau:
G
1
: S → aSCaS
1
BaB G
2
: S → aABB|aAA
S
1
→ aS
1
BaB A → aBB|a
B → b B → bBB|A
C → c
Xét chui w
1
= aaabbc. Hãy ch ra dn xut trái nht cho chui này trong vn phm G
1
đng thi
hãy ch ra dãy chuyn hình trng tng ng trong npda tng ng đ chp nhn chui này.
30. Hãy xây dng npda cho các vn phm sau và tìm dn xut trái nht cùng dãy chuyn hình trng
cho các chui w tng 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 dng các dpda cho các ngôn ng sau và tìm các dãy chuyn hình trng đ chp nhn các
chui đc cho tng ng  bên cnh.
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. Chng minh vn phm sau cho ngôn ng L = {w: n
a
(w) = n
b
(w)} không là vn phm LL:
S → aSbbSaSSλ.
33. Tìm các vn phm LL cho các ngôn ng sau (ch ra k bng bao nhiêu) và da vào tính cht ca h
vn phm này hãy phân tích các chui đc cho tng ng  bên cnh có đc sinh ra bi vn
phm 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. Nu không hãy s dng b đ bm
cho NNPNC đ chng 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 tuyn tính hay không. Nu không hãy s dng b
đ bm cho NNPNC tuyn tính đ chng 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) vi G đc cho nh sau:
E → T|E + T
T → F|T * F
F → I|(E)
I → a|b|c
36. Cho vn phm G sau. Hãy phân tích cú pháp cho các chui w
1
= (a+b*c)*a và w
2
= (a + b)*+c
theo phng pháp Earley.
G:
E → T|E + T F → I|(E)
T → F|T * F I → a|b|c

×