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

Bộ đề thi có đáp án automat

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 (793.22 KB, 18 trang )

DHLTTB01
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
oOo
ĐỀ THI MẪU NĂM 2007 (A)
Chuyên ngành: KHOA HỌC MÁY TÍNH
Môn Thi: Automata
Thời gian làm bài: 90 phút



Câu 7 (2,5 đ): Cho I={a,b}. Hãy xây dựng một automat hữu hạn M sao cho chấp nhận ngôn ngữ
L={(a
n
b
2
: n ≥ 0}


Câu 9 (2,5 đ): Cho văn phạm sau đây:
G= < {a,b} , {S} , P , S >
Với P = { S  aSb, S  } ( với  là ký hiệu ký tự rỗng )

a) Hãy cho biết dạng thức của những dòng ký tự thuộc ngôn ngữ L(G).
(0,5 điểm)
b) Văn phạm G thuộc loại văn phạm gì ?

Câu 8 (2.5 đ): Xây dựng một automat đẩy ngược ( pushdown automata) chấp nhận ngôn ngữ sau đây:
L= { a
n
b


n+1
: n ≥ 1}
Câu 6 (2.5 đ): Xây dựng một automat đẩy ngược ( pushdown automata) chấp nhận văn phạm sau đây:
G= < {a,b} , {S} , P , S >
Với P = { S  aSb, S  } ( với  là ký hiệu ký tự rỗng )


hết
GIẢI

Câu 7 (2.5 đ): Automat hữu hạn M sao cho chấp nhận ngôn ngữ L={(a
n
b
2
: n ≥ 0} là:
M = (Q,  ,  , q
0 ,
F)









Với : Q = { q
0
, q

1
, q
2
, q
3
} ;  = { a,b} ; F = { q
2
}
( q
0
, a) = q
0
( q
0
, b) = q
1

( q
1
, a) = q
3
( q
1
, b) = q
2
( q
2
, a) = q
3
( q

2
, b) = q
3
( q
3
, a) = q
3
( q
3
, b) = q
3



Câu 9 (2.5 đ): Cho văn phạm sau đây:
G= < {a,b} , {S} , P , S >
q
0

q
1

q
3

q
2

a
b

a,b
b
a
a,b
DHLTTB01
Với P = { S  aSb, S  } ( với  là ký hiệu ký tự rỗng )

a) Đặt w  { a,b}* , lúc đó từ P ta có:

S  aSa  aaSbb  a
3
S b
3
 …  a
n
S b
n


Thế S   vào ta được dạng thức của dòng ký tự thuộc L(G) là a
n
S b
n
: n ≥ 0

b) Văn phạm G thuộc loại văn phạm tuyến tính ( hoặc văn phạm phi ngữ cảnh)

Câu 8 (2.5 đ ): Automat đẩy ngược ( pushdown automaton) chấp nhận ngôn ngữ L= { a
n
b

n+1
: n ≥ 1} là:

M = (Q,  ,  ,  , q
0 ,
z , F)
Với :
( q
0
, a , z ) = {( q
0
,az)} ,
( q
0
, a , a ) = {( q
0
,aa)} ,
( q
0
,  , a ) = {( q
1
,a)} ,
( q
1
, b , a ) = {( q
1
, )} ,
( q
1
, b , z ) = {( q

1
, )} ,
( q
1
,  , z ) = {( q
f
,z)} ,

Q = { q
0
, q
1
, q
f
} ;  = { a,b} ; = {a,z} ; F = { q
f
}

Câu 10 (2.5 đ): Xây dựng một automat đẩy ngược ( pushdown automata) chấp nhận ngôn ngữ sau đây:
L = {ww
R
: w  { a,b}* }
với w
R
là sự đảo ngược của dòng ký tự w
và tập ký tự của ngôn ngữ là {a,b}

Giải : Automat đẩy ngược ( pushdown automata) chấp nhận ngôn ngữ L = {ww
R
: w  { a,b}* } là:

M = (Q,  ,  ,  , q
0 ,
z , F)
Với :
( q
0
, a , z ) = {( q
0
,az)} ,
( q
0
, a , a ) = {( q
0
,aa)} ,
( q
0
, a , b ) = {( q
0
,ab)} ,
( q
0
, b , a ) = {( q
0
,ba)} ,
( q
0
, b , b ) = {( q
0
,bb)} ,
( q

0
, b , z ) = {( q
0
,bz)} ,

( q
0
,  , a ) = {( q
1
,a)} ,
( q
0
,  , b ) = {( q
1
,b)} ,

( q
1
, a , a ) = {( q
1
, )},
( q
1
, b , b ) = {( q
1
, )},
( q
1
,  , z ) = {( q
f

,z)} ,

Q = { q
0
, q
1
, q
f
} ;  = { a,b} ; = {a,b,z} ; F = { q
f
}

Ghi chú: Ký tên:

Trang: 2/2



TRƯỜNG ĐẠI HỌC CẦN THƠ Đề thi môn: TIN HỌC LÝ THUYẾT
KHOA CNTT & TRUYỀN THÔNG Lớp: TIN HỌC K.29
Lần 2 – Học kỳ 1 – Năm học 06 - 07
Thời gian làm bài: 120 phút
NỘI DUNG ĐỀ
Câu 1 (1.0 điểm): Áp dụng bổ đề bơm, bạn hãy chứng minh ngôn ngữ sau đây không là ngôn ngữ
chính quy: L = {a
i
b
j
c
j

d
i
| i, j ≥ 1}
Câu 2 (2.0 điểm): Bạn hãy tìm một DFA tương đương với NFA sau:
Câu 3 (1.5 điểm): Bạn hãy vẽ một automata hữu hạn chấp nhận cho ngôn ngữ được ký hiệu bởi
biểu thức chính quy sau: ( (a + ab) b* a )*
Câu 4 (1.0 điểm): Bạn hãy chuyển văn phạm sau đây về dạng chuẩn Chomsky (cho biết rằng văn
phạm không có ký hiệu vô ích):
S → 0SA | 1SB | 01
A → 0A | 0
B → 1B | 1
Câu 5 (1.0 điểm): Bạn hãy chuyển văn phạm sau đây về dạng chuẩn Greibach:
S → SA | 0
A → AS | 1
Câu 6 (1.5 điểm): Bạn hãy thiết kế một PDA tương đương với văn phạm phi ngữ cảnh có tập luật
sinh như sau:
S → 0SA | 1SB | 0 | 1
A → 0A | 0
B → 1B | 1
Câu 7 (2.0 điểm): Bạn hãy thiết kế một máy Turing để thực hiện phép nhân 3 một số nguyên n
dương (n > 0).
Chú ý: trên băng nhập đã được cho trước một ký hiệu X ở đầu băng. Đầu đọc đang chỉ
tại vị trí đầu tiên của băng nhập (ký hiệu X).
Ví dụ: thực hiện phép nhân 3 cho số n = 3 (3 * 3 = 9)
Đầu vào (input): X000
Kết quả (output): 000000000 (9 số 0)
- HẾT -
ĐHCT, ngày 02 tháng 02 năm 2007
Giáo viên ra đề
Nguyễn Thanh Bình

q
1
q
2
q
3
a, b
a
a, b
start
b
ĐÁP ÁN
Câu 1 (1.0 điểm): Áp dụng bổ đề bơm, bạn hãy chứng minh ngôn ngữ sau đây không là ngôn ngữ
chính quy: L = {a
i
b
j
c
j
d
i
| i, j ≥ 1}
Giả sử L là ngôn ngữ chính quy. Khi đó sẽ tồn tại một DFA M chấp nhận cho ngôn ngữ L.
Gọi n là số trạng thái của DFA M đó.
Xét chuỗi z = a
n
b
1
c
1

d
n
. Ta có độ dài của chuỗi z là: |z| = 2n + 2 > n . Theo bổ đề bơm, ta có
thể đặt z = uvw , trong đó u, v, w là các chuỗi con của z với điều kiện như sau:
|uv| ≤ n, |v| ≥ 1 và với mọi i ≥ 0 ta có uv
i
w ϵ L
Do uv là chuỗi tiền tố của chuỗi z = a
n
b
1
c
1
d
n
và uv có độ dài chuỗi không lớn hơn n nên uv
chỉ chứa ký tự a. Vậy v cũng chỉ chứa ký hiệu a (và có ít nhất một ký hiệu a).
Xét chuỗi uv
2
w, ta thấy chuỗi uv
2
w so với chuỗi uvw = z = a
n
b
1
c
1
d
n
có nhiều hơn một chuỗi

v. Mặt khác, trong chuỗi v chỉ chứa ký hiệu a, nên ta suy ra trong chuỗi uv
2
w sẽ có số ký hiệu a
lớn hơn n (và số ký hiệu d không đổi là n). Vậy trong chuỗi uv
2
w sẽ có số ký hiệu a nhiều hơn ký
hiệu d, hay chuỗi uv
2
w không thuộc ngôn ngữ L.
Vậy giả thiết L là ngôn ngữ chính quy sai, hay L không là ngôn ngữ chính quy.
Câu 2 (2.0 điểm): Bạn hãy tìm một DFA tương đương với NFA sau:
DFA tương đương:
Câu 3 (1.5 điểm): Bạn hãy vẽ một automata hữu hạn chấp nhận cho ngôn ngữ được ký hiệu bởi
biểu thức chính quy sau: ( (a + ab) b* a )*
Cách 1:
start
[q
1
]
[q
2
]
[q
3
]
[q
1
, q
2
]

[q
2
, q
3
]
[q
1
,q
2
,q
3
]
a
b
a
b
b
a
b
a
a
b
q
1
q
2
q
3
a, b
a

a, b
start
b
q
1
start
q
2
q
3
b
b
a
a
a
Cách 2: sử dụng cách vẽ đã học theo định lý 3.3 – Giáo trình Tin học lý thuyết – MSc. Võ
Huỳnh Trâm – Đại học Cần Thơ – 2003.
Câu 4 (1.0 điểm): Bạn hãy chuyển văn phạm sau đây về dạng chuẩn Chomsky (cho biết rằng văn
phạm không có ký hiệu vô ích):
S → 0SA | 1SB | 01
A → 0A | 0
B → 1B | 1
Bước 1: bỏ qua (vì đề bài đã cho biết văn phạm không có ký hiệu vô ích, và nhìn vào văn
phạm ta thấy không có luật sinh ε hay luật sinh đơn vị).
Bước 2: thay thế các ký hiệu kết thúc ở các luật sinh có độ dài vế phải lớn hơn 1 bằng các
biến tương ứng.
S → C
0
SA | C
1

SB | C
0
C
1
A → C
0
A | 0
B → C
1
B | 1
C
0
→ 0
C
1
→ 1
Bước 3: thay thế luật sinh có độ dài vế phải lớn hơn 2 bằng các luật sinh có độ dài vế phải
bằng 2.
S → C
0
D
0
| C
1
D
1
| C
0
C
1

A → C
0
A | 0
B → C
1
B | 1
C
0
→ 0
C
1
→ 1
D
0
→ SA
D
1
→ SB
Câu 5 (1.0 điểm): Bạn hãy chuyển văn phạm sau đây về dạng chuẩn Greibach:
S → SA | 0
A → AS | 1
Bước 1: văn phạm đã ở dạng chuẩn Chomsky.
Bước 2: thay biến S bằng biến A
1
, biến A bằng biến A
2
. Ta có tập luật sinh:
A
1
→ A

1
A
2
| 0
A
2
→ A
2
A
1
| 1
Bước 3: khử tính đệ quy trái ở tập luật sinh trên:
A
1
→ 0 | 0B
1
A
2
→ 1 | 1B
2
B
1
→ A
2
| A
2
B
1
B
2

→ A
1
| A
1
B
2
Bước 4: các luật sinh từ biến A
1
và A
2
đã thỏa dạng chuẩn Greibach.
Bước 5: chuyển các luật sinh từ biến B
1
và B
2
về dạng chuẩn Greibach.
A
1
→ 0 | 0B
1
A
2
→ 1 | 1B
2
B
1
→ 1 | 1B
2
| 1B
1

| 1B
2
B
1
B
2
→ 0 | 0B
1
| 0B
2
| 0B
1
B
2
Tập luật sinh trên đã thỏa dạng chuẩn Greibach.
Câu 6 (1.5 điểm): Bạn hãy thiết kế một PDA tương đương với văn phạm phi ngữ cảnh có tập luật
sinh như sau:
S → 0SA | 1SB | 0 | 1
A → 0A | 0
B → 1B | 1
Xây dựng PDA M như sau:
M ({q}, {0, 1}, {S, A, B}, δ, q, S, Ø)
Với các hàm chuyển δ như sau:
δ (q, 0, S) = { (q, SA), (q, ε) }
δ (q, 1, S) = { (q, SB), (q, ε) }
δ (q, 0, A) = { (q, A), (q, ε) }
δ (q, 1, B) = { (q, B), (q, ε) }
Câu 7 (2.0 điểm): Bạn hãy thiết kế một máy Turing để thực hiện phép nhân 3 một số nguyên n
dương (n > 0).
Chú ý: trên băng nhập đã được cho trước một ký hiệu X ở đầu băng. Đầu đọc đang chỉ

tại vị trí đầu tiên của băng nhập (ký hiệu X).
Ý tưởng:
a) Đổi X thành B (để làm chốt chặn ở đầu chuỗi)
b) Gặp số 0 đầu tiên đổi thành 1 (đổi thành 1 để đánh dấu số 0 đó đã được xét)
c) Di chuyển đến cuối chuỗi, đổi 2 ký hiệu B thành ký hiệu 2.
d) Di chuyển về đầu chuỗi cho đến khi gặp ký hiệu 1, dịch phải.
1. Nếu ký hiệu tiếp theo là 0, lặp lại bước b.
2. Nếu ký hiệu tiếp theo là 2 thì di chuyển về cuối chuỗi (cho đến khi gặp B), sau đó
dịch trái đổi các ký hiệu 1 và 2 thành 0. Gặp ký hiệu B ở đầu chuỗi thì kết thúc.
HẾT
q
0
q
1
q
7
(X, B, R)
start
q
5
q
6
q
2
q
3
q
4
(0, 1, R)
(0, 0, R)

(B, 2, R) (B, 2, L)
(0, 0, L)
(2, 2, L)
(1, 1, R)
(2, 2, R)
(2, 2, R)
(2, 2, R)
(B, B, L)
(2, 0, L)
(1, 0, L)
(B, B, Ø)
TUTORIAL-8

Exaple-1: Convert the following NFA into a DFA that accepts the same language.


1. Start state of the DFA is a set of start states for NFA.
2. Create new states for all states reachable from start state.
3. Repeat process for all new states.
4. Stop when no more new states created.



State/Input 0 1
{a, b}
{c}
{b}
{c} {d} {d}
{b} {c}
Φ

{d} {a, b} {b}
Φ Φ Φ


From the above transition table we have to draw the corresponding DFA.

a
b
c
d

1
0
0
0.1
0
,
1
NFA


Example-2: Consider the following grammar where production (4) denotes a single
letter.

<E>  <E><E> (1)
| <E> : <E> (2)
| (<E>) (3)
| <letter> (4)

Q: What are the two sources of the ambiguity present in the above grammar?


Ans: (i) Precedence i.e. in this grammar it is not defined that production (1) has got
higher precedence or production (2) has got higher precedence or production (3) has
got higher precedence.
(ii) Associativity i.e. it is not defined that production (1) or production (2) is left-
associative or right-associative ( because productions are symmetric).


The above grammar has been re-written into the following unambiguous form.

<E>  <T> : <E> (1)
| <T> (2)

<T>  <T> <F> (3)
| <F> (4)

<F>  (<E>) (5)
| <letter> (6)

Q: Production (1) or Production (3) has got higher precedence?

Ans: Production (3) has got higher precedence.
{c}
{b
}
{a,b
}
{d
0
0,

1
1
0
0
DFA
Φ
1
0,1

Q: State whether Production (1) and Production (3) are right-associative or left-
associative?

Ans: Production (1) is right-associative and Production (3) is left-associative.

Q: Draw the parse tree for the string “ab:c:d” using the unambiguous grammar.

Ans:

<E>  <T> : <E> (1)
 <T> <F> : <E> (3)
 <F> <F> : <E> (4)
 <letter><F> : <E> (6)
 a<letter> : <E> (6)
 ab : <T> : <E> (1)
 ab : <F> : <E> (4)
 ab : <letter> : <E> (6)
 ab : c: <T> (2)
 ab: c: <F> (4)
 ab: c : <letter> (6)
 ab : c : d


PARSE TREE:




<E>
<T> <E>
:
<T> <F> <T> <E>
:
<F>
<letter>
<letter
a
b
<F>
<T>
<letter>
<F>
c <letter>
d
Example-3: Consider the following grammar for music expressions where production
(1) denotes parallel composition, production (2) denotes sequential composition and
production (4) denotes a single note of music.

<M>  <M> | <M> (1)
| <M><M> (2)
| (<M>) (3)
| <Note> (4)


<Note>  a’ | a | a# | b’ | b | c | c# | d’ | d | d# | e’ | e | f | f# | g’ | g | g# | r

Q: Give a string in the language generated by <M> that involves productions (1)
to (4) inclusive.

Ans:
<M>  <M> | <M> (1)
 <M><M> | <M> (2)
 (<M>)<M> | <M> (3)
 (<Note>)<M> | <M> (4)
 (a’)<Note> | <M> (4)
 (a’)c# | <Note> (4)
 (a’)c# | g
String in the language is “(a’)c# | g”

Q: Give two parse trees using the above grammar for the same string “c | e | g”

Q: Re-write the grammar into an unambiguous form, so that parallel composition has
a lower precedence to sequential composition and both compositions are left-
associative i.e. “c | e | g” is to be interpreted as “(c | e) | g”

Ans:
<M>  <M> | <T> (1)
| <T> (2)
<T>  <T><F> (3)
| <F> (4)
<M>
<M> <M>
|


<Note
c
<M>
|
<M>
<Note
<Note
e g
<
M
>
<
M
>
|
<
M
>
<
M
>
|
<
M
>
<
Note
>
<

Note
>
<
Note
>
c
e
g
<F>  <Note> (5)
| (<M>) (6)
<Note>  a’ | a | a# | b’ | b | c | c# | d’ | d | d# | e’ | e | f | f# | g’ | g | g# | r



NỘI DUNG ÔN TẬP
MÔN LÝ THUYẾT AUTOMATA & NNHT
DÀNH CHO CÁC LỚP CHÍNH QUI
Lưu ý
Nội dung thi Chương 5 đến Chương 9
Hình thức thi Trắc nghiệm
Thời gian 120 phút
Số lượng câu dự kiến 50 câu
Lý thuyết dự kiến 10 đến 15 câu
Bài tập dự kiến 35 đến 40 câu
Cho phép xem tài liệu trong 2 tờ giấy A4

Lý thuyết
STT Nội dung dự kiến
1 Ngôn ngữ phi ngữ cảnh (NNPNC), VPPNC, NNPNC tuyến tính, VPPNC tuyến tính
2 Dẫn xuất (DX), DX trái nhất - phải nhất, cây DX

3 Tính nhập nhằng trong văn phạm và ngôn ngữ
4 Các phép biến đổi văn phạm và hai dạng chuẩn
5 Phân tích cú pháp (PTCP), độ phức tạp của các giải thuật PTCP
6 Phương pháp vét cạn, giải thuật PTCP theo CYK
7 Automata đẩy xuống không đơn định (NPDA) và đơn định DPDA
8 NNPNC đơn định, các văn phạm cho NNPNC đơn định, văn phạm LL(k)
9 Bổ đề bơm cho NNPNC và NNPNC tuyến tính
10 Tính đóng của họ NNPNC và các tính chất khả quyết định
11 Máy Turing
12 Mô hình phân cấp theo Chomsky


Bài tập
STT Bài tập dự kiến
1 Cho ngôn ngữ L tìm văn phạm G
2 Cho G tìm L
3 Nhận biết G nhập nhằng trên chuỗi nào
4 Tìm dẫn xuất của w trên G
5 Loại bỏ các loại luật sinh - vô dụng, - đơn vị, - trống
6 Biến đổi văn phạm thành dạng chuẩn Chomsky, Greibach
7 Phân tích cú pháp bằng giải thuật CYK
8 Cho L tìm NPDA
9 Cho NPDA tìm L
10 Tìm dãy chuyển hình trạng của NPDA chấp nhận w
11 Cho G tìm NPDA
12 Cho dãy dẫn xuất của w, tìm dãy chuyển hình trạng tương ứng của w
13 Cho L tìm DPDA
14 Cho DPDA tìm L
15 Tìm dãy chuyển hình trạng của DPDA chấp nhận w
16 Cho L tìm văn phạm LL(k) (chủ yếu k = 1 hoặc 2)

17 Nhận biết một văn phạm có thuộc họ LL(k) không (chủ yếu k = 1 hoặc 2)
18 Phân tích cú pháp cho chuỗi w trên văn phạm LL(1)
19 Nhận biết một ngôn ngữ có phi ngữ cảnh hoặc phi ngữ cảnh tuyến tính hay không
20 Cho máy Turing M, nhận biết ngôn ngữ L được chấp nhận bởi M

MỘT SỐ BÀI TẬP ÔN + ĐÁP ÁN
Ghi chú:
Các đáp án ở đây không phải là duy nhất, các bạn sinh viên có thể tìm thấy các đáp án khác.
1. Cho các ngôn ngữ L sau, tìm các văn phạm G tương ứng:
L
1
= {a
2n+1
b
n+2
: n ≥ 0}
L
2
= {w ∈ {a, b}*: n
a
(w) = n
b
(w) + 1}
L
3
= {w ∈ {a, b}*: n
a
(w) = n
b
(w) + 1}

L
4
= {w ∈ {a, b}*: n
a
(w) = 2n
b
(w) + 1}
Đáp án:
G
1
: S → aaSb | abb
G
2
(1): S → aSbS | bSaS | λ
G
2
(2): S → aSb | bSa | SS |λ
G
2
(2): S → aAS | bBS | λ
A → aAA | b
B → bBB | a
Chú ý: G
2
(2) là văn phạm thuộc họ LL(1)
G
3
(1): S → aX | bXaS
X → aXbX | bXaX | λ
G

3
(2): S → BX
X → aAX | bBX | λ
A → aAA | b
B → bBB | a
Chú ý: G
3
(2) là văn phạm thuộc họ LL(1)
G
4
: S → aX | bXaXaS
X → aXaXbX | aXbXaX | bXaXaX | λ

2. Cho các văn phạm G sau, tìm các ngôn ngữ L tương ứng:
G
1
: S → aSbS | λ
G
2
: E → E+T | E-T | T
T → T*F | T/F | F
F → (E) | a | b
G
3
: S → aEbS | aEbScS | λ
E → d | e
Đáp án:
L
1
= {w ∈ {a, b}*: n

a
(w) = n
b
(w), n
a
(v) ≥ n
b
(v) với v là một tiếp đầu ngữ bất kỳ của w}
trong đó n
a
(w), n
b
(w) là các kí hiệu biểu thị số kí tự a và b có trong w.
Chú ý: Nếu thay a bằng dấu mở ngoặc “(“ (hoặc bằng từ khoá begin) và b bằng dấu đóng ngoặc “)”
(hoặc từ khoá end) thì ngôn ngữ trên biểu thị cấu trúc ngoặc lồng nhau, chẳng hạn ((()())(()))((())())

L
2
= {Các biểu thức số học trên các kí hiệu a, b bao gồm các phép (), +, -, *, /}
Chú ý: Văn phạm trên thể hiện độ ưu tiên của các phép toán theo thứ tự sau từ cao đếp thấp: (), * và
/, + và -

L
3
= {Biểu diễn các cấu trúc lệnh if Điều kiện then … và if Điều kiện then … else. Trong đó a là
đại diện cho if, E đại diện cho biểu thức điều kiện nhận hai giá trị d và e lần lượt đại diện cho hai
giá trị true và false, còn c đại diện cho else}

3. Những văn phạm nào sau đây nhập nhằng, nếu có hãy chỉ ra nhập nhằng trên chuỗi nào
G

1
: S → aSbS | bSaS | λ
G
2
: S → aSb | bSa | SS |λ

G
3
: S → aSbS | λ
G
4
: E → E+E | E-E | E*E | E/E | (E) | a | b

G
5
: E → E+T | E-T | T
T → T*F | T/F | F
F → (E) | a | b
Chú ý: Văn phạm G
1
và G
2
biểu diễn cùng một ngôn ngữ, văn phạm G
4
và G
5
biểu diễn cùng một
ngôn ngữ.
Đáp án:
G

1
nhập nhằng trên chuỗi abab.
G
2
nhập nhằng trên chuỗi abab.
G
4
nhập nhằng trên chuỗi a+b*c.
G
3
và G
5
không nhập nhằng.
Ở mỗi chuỗi được chỉ ra mà một văn phạm nhập nhằng, sinh
viên tự tìm hai cây dẫn xuất cho chuỗi trên văn phạm đó.

4. Cho các ngôn ngữ L sau, tìm các npda M tương ứng:
L
1
= {a
2n+k
b
n+l
: n ≥ 0, k, l ≥ 1}
L
2
= {w ∈ {a, b}*: n
a
(w) = n
b

(w) + 1}
L
3
= {w ∈ {a, b}*: n
a
(w) > n
b
(w)}
L
4
= {w ∈ {a, b}*: n
a
(w) = n
b
(w), n
a
(v) ≥ n
b
(v) với v là tiếp đầu ngữ bất kỳ của w}
Đáp án:
Chú ý: q
0
là trạng thái khởi đầu, q
f
là trạng thái kết thúc.
M
1
:
δ(q
0

, λ, z) = (q
1
, c
k
z)
δ(q
1
, a, c) = (q
1
, λ)
δ(q
1
, a, z) = (q
1
, az)
δ(q
1
, a, a) = (q
1
, aa)
δ(q
1
, b, a) = (q
t
, λ)
δ(q
t
, λ, a) = (q
2
, λ)

δ(q
2
, b, a) = (q
t
, λ)
δ(q
2
, b, z) = (q
3
, c
l - 1
z)
δ(q
3
, b, c) = (q
3
, λ)
δ(q
3
, λ, z) = (q
f
, z)
δ(q
1
, b, z) = (q
3
, c
l - 1
z)
M

2
:
δ(q
0
, λ, z) = (q
1
, bz)
δ(q
1
, a, a) = (q
1
, aa)
δ(q
1
, b, a) = (q
1
, λ)
δ(q
1
, a, b) = (q
1
, λ)
δ(q
1
, b, b) = (q
1
, bb)
δ(q
1
, a, z) = (q

1
, az)
δ(q
1
, b, z) = (q
1
, bz)
δ(q
1
, λ, z) = (q
f
, z)
M
3
:
δ(q
0
, a, z) = (q
0
, az)
δ(q
0
, b, z) = (q
0
, bz)
δ(q
0
, a, a) = (q
0
, aa)

δ(q
0
, b, a) = (q
0
, λ)
δ(q
0
, a, b) = (q
0
, λ)
δ(q
0
, b, b) = (q
0
, bb)
δ(q
0
, a, z) = (q
f
, z)
δ(q
f
, a, z) = (q
f
, z)
M
4
:
δ(q
0

, a, z) = (q
0
, az)
δ(q
0
, a, a) = (q
0
, aa)
δ(q
0
, b, a) = (q
0
, λ)
δ(q
0
, λ, z) = (q
f
, z)

5. Cho các ngôn ngữ L sau, tìm các dpda M tương ứng:
L
1
= {a
2n+k
b
n+l
: n ≥ 0, k, l ≥ 1}
L
2
= {w ∈ {a, b}*: n

a
(w) = n
b
(w) + 1}
L
3
= {w ∈ {a, b}*: n
a
(w) > n
b
(w)}
L
4
= {w ∈ {a, b}*: n
a
(w) = n
b
(w), n
a
(v) ≥ n
b
(v) với v là một tiếp đầu ngữ bất kỳ của w}
Đáp án:
Chú ý: q
0
là trạng thái khởi đầu, q
f
là trạng thái kết thúc, q
0f
là trạng thái vừa khởi đầu vừa kết thúc.

M
1
:
δ(q
0
, λ, z) = (q
1
, c
k
z)
δ(q
1
, a, c) = (q
1
, λ)
δ(q
1
, a, z) = (q
1
, az)
δ(q
1
, a, a) = (q
1
, aa)
δ(q
1
, b, a) = (q
t
, λ)

δ(q
t
, λ, a) = (q
2
, λ)
δ(q
2
, b, a) = (q
t
, λ)
δ(q
2
, b, z) = (q
3
, c
l - 1
z)
δ(q
3
, b, c) = (q
3
, λ)
δ(q
3
, λ, z) = (q
f
, z)
δ(q
1
, b, z) = (q

3
, c
l - 1
z)
M
2
:
δ(q
0
, λ, z) = (q
1
, bz)
δ(q
1
, a, a) = (q
1
, aa)
δ(q
1
, b, a) = (q
1
, λ)
δ(q
1
, a, b) = (q
1
, λ)
δ(q
1
, b, b) = (q

1
, bb)
δ(q
1
, λ, z) = (q
f
, z)
δ(q
f
, a, z) = (q
1
, az)
δ(q
f
, b, z) = (q
1
, bz)
M
3
:
δ(q
0
, a, z) = (q
f
, az)
δ(q
0
, b, z) = (q
0
, bz)

δ(q
f
, a, a) = (q
f
, aa)
δ(q
f
, b, a) = (q
t
, λ)
δ(q
t
, λ, z) = (q
0
, z)
δ(q
t
, λ, a) = (q
f
, a)
δ(q
0
, a, b) = (q
t
, λ)
δ(q
t
, λ, b) = (q
0
, b)

δ(q
0
, b, b) = (q
0
, bb)
M
4
:
δ(q
0f
, a, z) = (q
1
, az)
δ(q
1
, a, a) = (q
1
, aa)
δ(q
1
, b, a) = (q
1
, λ)
δ(q
1
, λ, z) = (q
0f
, z)

6. Cho các ngôn ngữ L sau, tìm các máy Turing M tương ứng:

L
1
= {a
n
b
n
c
n
: n ≥ 1}
L
2
= {w ∈ {a, b}*: n
a
(w) = n
b
(w) ≥ 1, n
a
(v) ≥ n
b
(v) với v là tiếp đầu ngữ bất kỳ của w}
L
3
= {w ∈ {a, b}*: n
a
(w) = n
b
(w) ≥ 0}
L
4
= {ww

R
∈ {a, b}*}
Đáp án:
M
1
:
δ(q
0
, a) = (q
1
, x, R)
δ(q
1
, a) = (q
1
, a, R)
δ(q
1
, y) = (q
1
, y, R)
δ(q
1
, b) = (q
2
, y, R)
δ(q
2
, b) = (q
2

, b, R)
δ(q
2
, z) = (q
2
, z, R)
δ(q
2
, c) = (q
3
, z, L)
δ(q
3
, z) = (q
3
, z, L)
δ(q
3
, b) = (q
3
, b, L)
δ(q
3
, y) = (q
3
, y, L)
δ(q
3
, a) = (q
3

, a, L)
δ(q
3
, x) = (q
0
, x, R)
δ(q
0
, y) = (q
4
, y, R)
δ(q
4
, y) = (q
4
, y, R)
δ(q
4
, z) = (q
4
, z, R)
δ(q
4
, ) = (q
f
, , R)
M
2
:
δ(q

0
, a) = (q
0
, a, R)
δ(q
0
, b) = (q
1
, y, L)
δ(q
1
, y) = (q
1
, y, L)
δ(q
1
, x) = (q
1
, x, L)
δ(q
1
, a) = (q
0
, x, R)
δ(q
0
, x) = (q
0
, x, R)
δ(q

0
, y) = (q
0
, y, R)
δ(q
0
, ) = (q
2
, , L)
δ(q
2
, y) = (q
2
, y, L)
δ(q
2
, x) = (q
2
, x, L)
δ(q
2
, ) = (q
f
, , L)
M
3
:
δ(q
0
, a) = (q

1
, x, R)
δ(q
1
, a) = (q
1
, a, R)
δ(q
1
, y) = (q
1
, y, R)
δ(q
1
, b) = (q
2
, y, L)
δ(q
2
, y) = (q
2
, y, L)
δ(q
2
, a) = (q
2
, a, L)
δ(q
2
, x) = (q

0
, x, R)
δ(q
0
, y) = (q
0
, y, R)

δ(q
0
, b) = (q
3
, y, R)
δ(q
3
, b) = (q
3
, b, R)
δ(q
3
, x) = (q
3
, x, R)
δ(q
3
, a) = (q
4
, x, L)
δ(q
4

, x) = (q
4
, x, L)
δ(q
4
, b) = (q
4
, b, L)
δ(q
4
, y) = (q
0
, y, R)
δ(q
0
, x) = (q
0
, x, R)

δ(q
0
, ) = (q
f
, , R)
M
4
:
δ(q
0
, a) = (q

1
, x, R)
δ(q
1
, a) = (q
1
, a, R)
δ(q
1
, b) = (q
1
, b, R)
δ(q
1
, ) = (q
2
, , L)
δ(q
2
, a) = (q
3
, x, L)
δ(q
3
, a) = (q
3
, a, L)
δ(q
3
, b) = (q

3
, b, L)
δ(q
3
, x) = (q
0
, x, R)

δ(q
0
, b) = (q
4
, y, R)
δ(q
4
, b) = (q
4
, b, R)
δ(q
4
, a) = (q
4
, a, R)
δ(q
4
, ) = (q
5
, , L)
δ(q
5

, b) = (q
6
, y, L)
δ(q
6
, b) = (q
6
, b, L)
δ(q
6
, a) = (q
6
, a, L)
δ(q
6
, y) = (q
0
, y, R)

δ(q
0
, x) = (q
f
, x, R)
δ(q
0
, y) = (q
f
, y, R)
δ(q

0
, ) = (q
f
, , R)
MỘT SỐ NGÔN NGỮ CẦN CHÚ Ý

Nhóm các ngôn ngữ dạng {a
n
b
n
}
{a
n
b
m
: n > m}
{a
n
b
m
: n < m}
{a
n
b
m
: n ≠ m}
{a
n
b
2n

: n > m}
{a
n+2
b
2n
: n > m}
{a
2n
b
n+1
: n > m}

Nhóm các ngôn ngữ dạng {w ∈ {a, b}*: n
a
(w) = n
b
(w)}
{w ∈ {a, b}*: n
a
(w) = n
b
(w) + 1}
{w ∈ {a, b}*: n
a
(w) = n
b
(w) + 2}
{w ∈ {a, b}*: n
a
(w) > n

b
(w)}
{w ∈ {a, b}*: n
a
(w) ≥ n
b
(w) + 1}
{w ∈ {a, b}*: n
a
(w) ≠ n
b
(w)}
{w ∈ {a, b}*: n
a
(w) = 2n
b
(w)}
{w ∈ {a, b}*: n
a
(w) + 1 = 2n
b
(w)}
{w ∈ {a, b, c}*: n
a
(w) = n
b
(w) + n
c
(w)}



Nhóm các ngôn ngữ dạng {a
n
b
j
b
k
}
{a
n
b
n
c
n
: n ≥ 0}
{a
n
b
j
c
k
: n = j + k}
{a
n
b
j
c
k
: j = n + k}
{a

n
b
j
c
k
: n = jk}
{a
n
b
j
c
k
: j = nk}
{a
n
b
j
c
k
: n > jk}
{a
n
b
j
c
k
: n > j, n > k}
{a
n
b

j
c
k
: j > n, j > k}
{a
n
b
j
c
k
: n > j > k}

Nhóm các ngôn ngữ dạng {w ∈ {a, b, c}*: n
a
= n
b
= n
c
}
Nhóm các ngôn ngữ dạng {ww
R
: w ∈ {a, b}*}
Nhóm các ngôn ngữ dạng {ww: w ∈ {a, b}*}
Phân tích cú pháp bằng giải thuật Earley trên văn phạm (phần này lớp MT2001 không thi)
E → E + T | T (1, 2)
T → T * F | F (3, 4)
F → (E) | a | b (5, 6, 7)
Xem lại những bài tốn sau:
1- Tìm một dfa hay nfa chấp nhận một ngơn ngữ sinh ra một văn phạm hay ngược lại, có automat hay
ngơn ngữ đi tìm văn phạm như bài tốn 1a, 1b

1. (a) Xây dựng dfa chấp nhận ngôn ngữ sinh ra bởi văn phạm

S -> abA
A -> baB
B -> aA | bb

1. (b) cho trước một automat dfa hay nfa tìm văn phạm tương ứng
2- Tìm một văn phạm cho một ngơn ngữ chính qui cho trước như bài tốn 2
2. Xây dựng văn phạm chính qui cho ngôn ngữ
L =
{
a
n
b
m
: n ≥ 2, m ≥ 3
}


3- Sự liên kết biểu thức chính qui và automat hữu hạn, xây dựng automat biểu diễn một biểu thức chính
qui như bài tốn 3

3. Tìm dfa chấp nhận ngôn ngữ
i.
L (aa* +a ba* b*)

ii.
L (ab(a + ab)* (a + aa))

iii.

L ((abab)* (a +b*)*)


Giải






Cây dẫn xuất:

×