1. Trang chủ
  2. » Công Nghệ Thông Tin

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

18 8,2K 29

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 793,22 KB

Nội dung

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... Khi đó sẽ tồn tại một DFA M chấp nhận cho ngôn ngữ L..

Trang 1

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={(anb2 : 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= { an bn+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={(anb2 : n ≥ 0} là:

M = (Q,  ,  , q0 , F)

Với : Q = { q0 , q1 , q2 , q3 } ;  = { a,b} ; F = { q2}

 ( q0, a) = q0

 ( q0, b) = q1

 ( q1, a) = q3

 ( q1, b) = q2

 ( q2, a) = q3

 ( q2, b) = q3

 ( q3, a) = q3

 ( q3, b) = q3

Câu 9 (2.5 đ): Cho văn phạm sau đây:

G= < {a,b} , {S} , P , S >

a

b

Trang 2

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  a3S b3 …  anS bn Thế S  vào ta được dạng thức của dòng ký tự thuộc L(G) là anS bn : 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= { an bn+1: n ≥ 1} là:

M = (Q,  ,  ,  , q0 , z , F) Với :

 ( q0, a , z ) = {( q0 ,az)} ,

 ( q0, a , a ) = {( q0 ,aa)} ,

 ( q0,  , a ) = {( q1 ,a)} ,

 ( q1, b , a ) = {( q1 ,  )} ,

 ( q1, b , z ) = {( q1 ,  )} ,

 ( q1,  , z ) = {( qf ,z)} ,

Q = { q0 , q1 , qf } ;  = { a,b} ;  = {a,z} ; F = { qf}

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 = {wwR : w  { a,b}* } với wR

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 = {wwR

: w  { a,b}* } là:

M = (Q,  ,  ,  , q0 , z , F) Với :

 ( q0, a , z ) = {( q0 ,az)} ,

 ( q0, a , a ) = {( q0 ,aa)} ,

 ( q0, a , b ) = {( q0 ,ab)} ,

 ( q0, b , a ) = {( q0 ,ba)} ,

 ( q0, b , b ) = {( q0 ,bb)} ,

 ( q0, b , z ) = {( q0 ,bz)} ,

 ( q0,  , a ) = {( q1 ,a)} ,

 ( q0,  , b ) = {( q1 ,b)} ,

 ( q1, a , a ) = {( q1 ,  )},

 ( q1, b , b ) = {( q1 ,  )},

 ( q1,  , z ) = {( qf ,z)} ,

Q = { q0 , q1 , qf } ;  = { a,b} ;  = {a,b,z} ; F = { qf}

 Ghi chú: Ký tên:

Trang: 2/2

Trang 3

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 = {ai bj cj di | 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

a

a, b

start

b

Trang 4

ĐÁ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 = {ai bj cj di | 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 = anb1c1dn 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ó uviw ϵ L

Do uv là chuỗi tiền tố của chuỗi z = anb1c1dn 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 uv2w, ta thấy chuỗi uv2w so với chuỗi uvw = z = anb1c1dn 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 uv2w 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 uv2w sẽ có số ký hiệu a nhiều hơn ký hiệu d, hay chuỗi uv2w 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

[q1]

[q2]

[q3]

[q1, q2]

[q2, q3]

[q1,q2,q3] a

b

a

b

b

a

b

a a

b

a

a, b

start

b

q1

start

q2

q3

b

b a

a a

Trang 5

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 → C0SA | C1SB | C0C1

A → C0A | 0

B → C1B | 1

C0→ 0

C1→ 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 → C0D0 | C1D1 | C0C1

A → C0A | 0

B → C1B | 1

C0→ 0

C1→ 1

D0→ SA

D1→ 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 A1, biến A bằng biến A2 Ta có tập luật sinh:

A1 → A1A2 | 0

A2 → A2A1 | 1

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

A1 → 0 | 0B1

A2 → 1 | 1B2

B1 → A2 | A2B1

B2 → A1 | A1B2

Bước 4: các luật sinh từ biến A1 và A2 đã thỏa dạng chuẩn Greibach.

Trang 6

Bước 5: chuyển các luật sinh từ biến B1 và B2 về dạng chuẩn Greibach.

A1 → 0 | 0B1

A2 → 1 | 1B2

B1 → 1 | 1B2 | 1B1 | 1B2B1

B2 → 0 | 0B1 | 0B2 | 0B1B2

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

q7

(X, B, R)

start

(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, Ø)

Trang 7

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

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

c

d

1

0

0

0.1 0,1

NFA

Trang 8

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

letter

<E>  <E><E> (1)

| <E> : <E> (2)

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-left-associative ( because productions are symmetric)

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

<E>  <T> : <E> (1)

<T>  <T> <F> (3)

<F>  (<E>) (5)

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

Trang 9

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>

d

Trang 10

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)

<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”

Trang 11

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>  <T><F> (3)

<M>

<M> | <M>

<Note

c

<M> | <M>

<M>

<M>

<M> | <M>

<Note>

<Note>

<Note>

c

e

g

Trang 12

<F>  <Note> (5)

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

Trang 13

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

Trang 14

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:

L1 = {a 2n+1 b n+2 : n ≥ 0}

L2 = {w ∈ {a, b}*: n a (w) = n b (w) + 1}

L3 = {w ∈ {a, b}*: n a (w) = n b (w) + 1}

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

Đáp án:

G1: S → aaSb | abb

G2(1): S → aSbS | bSaS | λ

G2(2): S → aSb | bSa | SS |λ

G2(2): S → aAS | bBS | λ

A → aAA | b

B → bBB | a

Chú ý: G2(2) là văn phạm thuộc họ LL(1)

G3(1): S → aX | bXaS

X → aXbX | bXaX | λ

G3(2): S → BX

X → aAX | bBX | λ

A → aAA | b

B → bBB | a

Chú ý: G3(2) là văn phạm thuộc họ LL(1)

G4: 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:

G1: S → aSbS | λ

G2: E → E+T | E-T | T

T → T*F | T/F | F

F → (E) | a | b

G3: S → aEbS | aEbScS | λ

E → d | e

Đáp án:

L1 = {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 ((()())(()))((())())

L2 = {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à -

L3 = {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

G1: S → aSbS | bSaS | λ

G2: S → aSb | bSa | SS |λ G G34: S → aSbS | λ : E → E+E | E-E | E*E | E/E | (E) | a | b G5: E → E+T | E-T | T T → T*F | T/F | F

F → (E) | a | b

Ngày đăng: 17/09/2014, 21:03

HÌNH ẢNH LIÊN QUAN

Hình thức thi   Trắc nghiệm - Bộ đề thi có đáp án automat
Hình th ức thi Trắc nghiệm (Trang 13)

TỪ KHÓA LIÊN QUAN

w