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

đề thi otomat và lời giải

4 6,2K 175
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đề thi Otomat Và Lời Giải
Người hướng dẫn Nguyễn Thanh Bình
Trường học Trường Đại Học Cần Thơ
Chuyên ngành Tin Học
Thể loại Đề thi
Năm xuất bản 2007
Thành phố Cần Thơ
Định dạng
Số trang 4
Dung lượng 127,08 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

đề thi otomat và lời giải

Trang 1

TRƯỜNG ĐẠI HỌC CẦN THƠ Đề thi môn: TIN HỌC LÝ THUYẾT

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 2

ĐÁ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 3

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 4

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

Ngày đăng: 26/08/2013, 21:25

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w