1. Trang chủ
  2. » Giáo án - Bài giảng

Đề cương ôn thi môn Lý thuyết tính toán

26 1,1K 6

Đ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 26
Dung lượng 318 KB

Nội dung

Thiết kế máy Turing thừa nhận các xâu nhị phân W có số lượng kí tự 0 bằng số lượng kí tự 1.Giải Máy Turing M thừa nhận xâu nhị phân w sẽ hoạt động như sau : q0 là trạng thái ban đầu, đầ

Trang 1

1 Cho máy Turing M = (, Q, , , q0, B, F), trong đó  = {0, 1}, Q = {q0, q1, q2, q3, q4},

 = { 0, 1, B}, F = {q4} và  được cho bởi bảng sau

a) Giải thích hoạt động của M

b) Mô tả quá trình thực hiện của M trên các xâu (i) 00; (ii) 01; (iii) 10; (iv) 11 Xét xem các xâunào được M thừa nhận?

c) Xác định độ phức tạp tính toán của M?

Trang 2

a) Máy Turing M sẽ hoạt động như sau:

(q0, 0) = (q0, 0, R): Gặp 0, thay 0 bởi 0, chuyển q0 và dịch phải

(q0, 1) : Dừng và không thừa nhận

(q0, B) = (q1, 1, L): Gặp B, thay B bởi 1, chuyển q8 và dịch trái

(q1, 0) = (q1, 0, L): Gặp 0, thay 0 bởi 0, chuyển q1 và dịch trái

(q1, 1) = (q1, 1, L): Gặp 1, thay 1 bởi 1, chuyển q1 và dịch trái

(q1, B) = (q2, B, R): Gặp B, thay B bởi B, chuyển q2 và dịch phải

(q2, 0) = (q3, B, R): Gặp 0, thay 0 bởi B, chuyển q3 và dịch phải

(q2, 1) = (q4, B, R): Gặp 1, thay 1 bởi B, chuyển q4 và dịch phải

(q2, B) : Dừng và không thừa nhận

(q3, 0) = (q3, 0, R): Gặp 0, thay 0 bởi 0, chuyển q3 và dịch phải

(q3, 1) = (q3, 1, R): Gặp 1, thay 1 bởi 1, chuyển q3 và dịch phải

(q3, B) = (q3, 1, R): Gặp B, thay B bởi 0, chuyển q4 và dịch phải

(q4, 0) : Dừng và thừa nhận

(q4, 1) : Dừng và thừa nhận

(q4, B) = (q1, 0, L): Gặp B, thay B bởi 0, chuyển q1 và dịch trái

Trang 3

b) Mô tả quá trình thực hiện của M trên các xâu

(i) 00: q000  0q00  00q0B  0q101  q1001  q1B001  Bq2001  BBq301  BB0q31B BB01q3B  BB010q4B  BB01q100  BB0q1100  BBq10100  Bq1B0100  BBq20100

BBBq3100  BBB1q300  BBB10q30  BBB100q3B  BBB1000q4B  BBB100q100 BBB10q1000  BBB1q10000  BBBq110000  BBq1B10000  BBBBq210000 BBBBBq40000: Dừng và thừa nhận

(ii) 01: q001  0q01: Dừng và không thừa nhận

(iii) 10: q010: dừng và không thừa nhận

(iv) 11: q011: Dừng và không thừa nhận

c) Xác định độ phức tạp tính toán của M:

Ký hiệu n là độ dài xâu input w

Nếu w chứa ký tự 1 thì T(n)  n và L(n) = n

Nếu w chỉ chứa ký tự 0 thì T(n) = O(n2) và L(n) = O(n2)

Kết luận: T(n) = O(n2) và L(n) = O(n2)

Trang 4

2 Cho máy Turing M = (, Q, , , q0, B, F), trong đó  = {x, y, z}, Q = {q}, Q = {q0, q1, q2},  = {x, y,z}, Q = {q, B}, F = {q2} và  được cho bởi bảng sau

q0 (q0, x, R) (q0, y, R) (q1, x, R) (q0, B, R)q1 (q0, x, R) (q0, y, L) (q2, z}, Q = {q, R)

*q2a) Giải thích hoạt động của M

b) Mô tả quá trình thực hiện của M trên các xâu

Trang 5

3 Cho máy Turing M = (, Q, , , q0, B, F), trong đó  = {1, 2, 3}, Q = {q0, q1, q2, q3, q4, q5,q6},  = {1, 2, 3, B}, F = {q6} và  được cho bởi bảng sau

a) Giải thích hoạt động của M

b) Mô tả quá trình thực hiện của M trên các xâu (i) 123; (ii) 112 Xét xem các xâu nào được Mthừa nhận?

c) Đánh giá độ phức tạp tính toán của M

Trang 6

4 Cho máy Turing ngẫu nhiên RM chỉ có 1 băng input và băng ngẫu nhiên Mỗi ký hiệu trênbăng có dạng (XY), trong đó X là ký hiệu trên băng input, Y là ký hiệu trên băng ngẫu nhiên.Mỗi hướng di chuyển có dạng (DE), trong đó D là hướng di chuyển của đầu đọc-ghi trên bănginput, E là hướng di chuyển của đầu đọc-ghi trên băng ngẫu nhiên Biết rằng, đầu đọc-ghi có thể

di chuyển sang phải (R), sang trái (L) hoặc đứng yên (S) Bảng hàm chuyển :

Như vậy, RM có trạng thái đầu q0, trạng thái thừa nhận q4

a) Giải thích hoạt động của M

b) Mô tả quá trình thực hiện của M trên các xâu:

(i) Xâu trên băng input w = 11111, xâu trên băng ngẫu nhiên rw = 00101

(ii) Xâu trên băng input w = 11001, xâu trên băng ngẫu nhiên rw = 10101

c) Tính xác suất để RM thừa nhận các xâu:

Trang 7

(i) w = 1111111; (ii) w = 1001100

Giải

a) Máy Turing ngẫu nhiên RM sẽ hoạt động như sau:

(q0, 00) = (q1, 00, R,S): Gặp 00, thay 00 bởi 00, chuyển q1 và dịch phải trên băng Input vàđứng yên trên băng ngẫu nhiên

(q0, 01) = (q3, 01, S, R): Gặp 01, thay 01 bởi 01, chuyển q3 và đứng yên băng Input và dịchphải trên băng ngẫu nhiên

(q0, 10) = (q2, 10, R,S): Gặp 10, thay 10 bởi 10, chuyển q2 và dịch phải trên băng Input vàđứng yên trên băng ngẫu nhiên

(q0, 11) = (q3, 11, S, R): Gặp 11, thay 11 bởi 11, chuyển q3 và đứng yên băng Input và dịchphải trên băng ngẫu nhiên

(q1, 00) = (q1, 00, R, S): Gặp 00, thay 00 bởi 00, chuyển q1 và dịch phải trên băng Input vàđứng yên trên băng ngẫu nhiên

(q1, B0) = (q4, B0, S, S): Gặp B0, thay B0 bởi B0, chuyển q4 và đứng yên trên băng Input

và đứng yên trên băng ngẫu nhiên

(q2, 10) = (q2, 10, R, S): Gặp 10, thay 10 bởi 10, chuyển q1 và dịch phải trên băng Input vàđứng yên trên băng ngẫu nhiên

(q2, B0) = (q4, B0, S, S): Gặp B0, thay B0 bởi B0, chuyển q4 và đứng yên trên băng Input

và đứng yên trên băng ngẫu nhiên

(q3, 00) = (q1, 00, R, R): Gặp 00, thay 00 bởi 00, chuyển q1 và dịch phải trên băng Input và

Trang 8

dịch phải trên băng ngẫu nhiên

(q3, 11) = (q3, 11, R, R): Gặp 11, thay 11 bởi 11, chuyển q3 và dịch phải trên băng Input vàdịch phải trên băng ngẫu nhiên

(q3, B0) = (q4, B0, S, S): Gặp B0, thay B0 bởi B0, chuyển q4 và đứng yên trên băng Input

và đứng yên trên băng ngẫu nhiên

(q3, B1) = (q4, B1, S, S): Gặp B1, thay B1 bởi B1, chuyển q4 và đứng yên trên băng Input

và đứng yên trên băng ngẫu nhiên

Trang 9

(ii) Xét w = 11001 và rw = 10101: q011001|q010101  q311001|1q30101 1q21001|1q20101 11q2001|1q20101: Dừng và RM không thừa nhận w.

c) Xác suất để w được thừa nhận bởi RM :

(i) w = 1111111 thì tổng xác suất thừa nhận w là

7

2 2

1 2

1 

 = 2-1 + 2-(7+1) = 129256 (ii) w = 1001100 có tổng xác suất thừa nhận w bằng 2-(7+1) = 2561

Trang 10

5 Thiết kế máy Turing thừa nhận ngôn ngữ {0n1n0nn  0}.

Giải

Máy Turing M thừa nhận xâu w = 0n1n0n, n  1, sẽ hoạt động như sau :

q0 là trạng thái ban đầu, đầu đọc ghi ở ô đầu tiên của input

Bước 1: Nếu gặp 0, thay thế 0 bởi B và dịch phải, chuyển bước 2; Nếu gặp 1 thì dừng và không

thừa nhận w; Nếu gặp B thì dừng và thừa nhận w; Nếu gặp x thì giữ nguyên và dịch phải

Bước 2: Nếu gặp 0 thì thay 0 bởi 0, dịch phải; Nếu gặp 1 thì thay thế 1 bởi x, dịch phải và

chuyển bước 3; Nếu gặp B thì dừng và không thừa nhận w; Nếu gặp x thì giữ nguyên và dịchphải

Bước 3: Nếu gặp 0 hoăc 1 thì giữ nguyên 0 hoặc 1 và dịch phải; Nếu gặp B thì giữ nguyên, dịch

trái và chuyển bước 4

Bước 4: Nếu gặp 0 thì thay 0 bởi B, dịch trái và chuyển bước 5; Nếu gặp 1, x, B thì dừng và

không thừa nhận w

Bước 5: Nếu gặp B thì giữ nguyên, dịch phải và chuyển bước 1

Bảng hàm chuyển như sau:

Trang 11

 máy Turing M = (, Q, , , q0, B, F), trong đó  = {0, 1}, Q = {q0, q1, q2, q3, q4, q5},  = {0,

1, B, x}, F = {q5} và  được cho bởi bảng trên

Trang 12

6 Thiết kế máy Turing thừa nhận các xâu nhị phân W có số lượng kí tự 0 bằng số lượng kí tự 1.

Giải

Máy Turing M thừa nhận xâu nhị phân w sẽ hoạt động như sau :

q0 là trạng thái ban đầu, đầu đọc ghi ở ô đầu tiên của input

Bước 1: Nếu gặp 0 thì thay thế 0 bởi B, dịch phải và chuyển bước 2; Nếu gặp 1 thì thay thế 1 bởi

B, dịch phải và chuyển bước 3; Nếu gặp B thì thay thế B bởi B, dừng và thừa nhận w; nếu gặp xthì giữ nguyên và dịch phải;

Bước 2: Nếu gặp 0 hoặc x thì giữ nguyên và dịch phải; Nếu gặp 1 thì thay thế 1 bởi x, dịch trái

và chuyển bước 4; Nếu gặp B thì dừng và không thừa nhận;

Bước 3: Nếu gặp 1 hoặc x thì giữ nguyên và dịch phải; Nếu gặp 0 thì thay thế 0 bởi x, dịch trái

và chuyển bước 4; Nếu gặp B thì dừng và không thừa nhận;

Bước 4: Nếu gặp 0, 1, x thì giữ nguyên và dịch trái; Nếu gặp B thì giữ nguyên, dịch phải và

chuyển bước 1;

Trang 14

7 Thiết kế máy Turing kiểm tra một xâu x với các kí tự thuộc tập hợp {a, b, c} có phải là xâu đốixứng hay không? Nếu x đối xứng thì giá trị trên băng là 1, ngược lại, giá trị trên băng là 0.

Giải

Máy Turing M kiểm tra tính đối xứng của xâu x sẽ hoạt động như sau :

q0 là trạng thái ban đầu, đầu đọc ghi ở ô đầu tiên của input

Bước 1 : Thay thế kí tự đầu tiên của x là B, dịch phải Nếu kí tự đầu tiên là 0 thì chuyển bước 2 ;

Nếu kí tự đầu tiên là 1 thì chuyển bước 3; ngược lại chuyển bước 4

Bước 2 : Tìm ký tự cuối cùng của x Nếu không tìm được thì thay thế B bởi 1, dịch trái và dừng.

Nếu tìm được và = 0 thì chuyển bước 5 ;  0 thì chuyển bước 6

Bước 3 : Tìm ký tự cuối cùng của x Nếu không tìm được thì thay thế B bởi 1, dịch trái và dừng

Nếu tìm được và = 1 thì chuyển bước 5;  1 thì chuyển bước 6

Bước 4: Tìm ký tự cuối cùng của x Nếu không tìm được thì thay thế B bởi 1, dịch trái và dừng

Nếu tìm được và = 2 thì chuyển bước 5;  1 thì chuyển bước 6

Bước 5: Tìm ký tự đầu tiên của x Nếu tìm được thì chuyển bước 1 Nếu không tìm được thì

thay thế B bởi 1, dịch trái và dừng

Bước 6: Thay thế kí tự vừa tìm bởi 0, dịch trái và chuyển bước 7 ;

Bước 7: Thay thế các kí tự của x bởi B và dịch trái; Nếu gặp B thì dừng.

Bảng hàm chuyển:

Trang 15

0 1 2 B

q0 (q1, B, R) (q2, B, R) (q3, B, R) (q9, 1, R)q1 (q1, 0, R) (q1, 1, R) (q1, 2, R) (q4, B, L)q2 (q2, 0, R) (q2, 1, R) (q2, 2, R) (q5, B, L)q3 (q3, 0, R) (q3, 1, R) (q3, 2, R) (q6, B, L)q4 (q7, B, L) (q8, 0, L) (q8, 0, L) (q9, 1, R)q5 (q8, 0, L) (q7, B, L) (q8, 0, L) (q9, 1, R)q6 (q8, 0, L) (q8, 0, L) (q7, B, L) (q9, 1, R)q7 (q7, 0, L) (q7, 1, L) (q7, 2, L) (q0, B, R)q8 (q8, B, L) (q8, B, L) (q8, B, L) (q9, B, R)

*q9

 M = (, Q, , , q1, B, F), trong đó  = {0, 1, 2}, Q = {q0, q1, q2, q3, q4, q5, q6, q7, q8, q9},  ={0, 1, 2, B}, F = {q9} và  được cho bởi bảng trên

Trang 16

8 Thiết kế máy Turing kiểm tra một xâu nhị phân x khác rỗng có chứa một số chẵn kí tự 1 haykhông? Nếu x chứa một số chẵn kí tự 1 thì giá trị trên băng là 1, ngược lại, giá trị trên băng là 0.

Giải

a) Máy Turing M kiểm tra xâu nhị phân x   sẽ hoạt động như sau:

q0 là trạng thái ban đầu, đầu đọc ghi ở ô đầu tiên của input

Bước 1: Nếu gặp 0 thì thay thế 0 bởi B, dịch phải; Nếu gặp 1 thì thay 1 bởi B và chuyển bước 2.

Nếu gặp B thì thay thế B bởi 1 và chuyển bước 3

Bước 2: Nếu gặp 0 thì thay thế 0 bởi B, dịch phải; Nếu gặp 1 thì thay 1 bởi B và chuyển bước 1.

Nếu gặp B thì thay thế B bởi 0 và chuyển bước 3

Bước 3 Dừng và kết quả là giá trị còn lại trên băng.

Bảng hàm chuyển :

Trạng thái

Ký hiệu băng của input

q0 (q0, B, R) (q1, B, R) (q2, 1, L)q1 (q1, B, R) (q0, B, R) (q2, 0, L)

*q2Như vậy, xây dựng được máy Turing M = (, Q, , , q0, B, F), trong đó  = {0, 1}, Q ={q0, q1, q2},  = {0, 1, B}, F = {q2} và  được cho bởi bảng trên

Trang 17

9 a) Thiết kế máy Turing M tính hàm cộng trên tập các số tự nhiên > 0 như sau:

f(x) = f(a1, a2) = a1 + a2 , trong đó input x = 1a1x11a2x2By, còn output là giá trị của f(x) = 1a1a2 yB

Máy Turing M thực hiện hàm cộng sẽ hoạt động như sau :

Bước 1: Số 1 bên trái nhất sẽ được thay thế bởi B và dịch phải.

Bước 2: Tìm x2 thay thế x2 bởi 1, dịch phải gặp B thay thế B bởi x2, dịch phải gặp y thay thế ybởi B, dịch phải găp B thay thế B bởi y dịch trái và chuyển sang bước 3

Bước 3: Tìm 1 bên trái nhất trước x1 Nếu tìm được chuyển bước 1 Nếu không tìm được thìchuyển bước 4

Bước 4: Thay thế x1 bởi B; thay thế x2 bởi y, thay thế y bởi B và dừng.

Trang 18

Bảng hàm chuyển:

 q0 (q1, B, R) (q3, B, R)q1 (q1, 1, R) (q1, x1, R) (q1, 1, R) (q1, x2, R) (q2, y, L)

Trang 19

10 Thiết kế máy Turing tính hàm trừ trên tập các số tự nhiên > 0 như sau: TRU(x) = TRU(m, n)

= m – n nếu m > n và TRU(m, n) = 0 nếu m  n Trong đó: Input : x = 1mx11nx2y

Output : Nếu m  n  TRU(x) = 0y Nếu m > n  TRU(x) = 1m-ny

Giải

Input : w = 1mx11nx2y

Output : Nếu m  n  TRU(w) = 0y Nếu m > n  TRU(w) = 1m-ny

Máy Turing M thực hiện hàm TRU(m, n) sẽ hoạt động như sau :

Bước 1: Số 1 bên trái nhất sẽ được thay thế bởi B và dịch phải.

Bước 2: Nếu tìm được số 1 đầu tiên trước x2 thì nó sẽ được thay thế bởi B, dịch trái vàchuyển sang bước 3 Nếu không tìm được thì gặp y, thay y bởi 1 và dịch phải Gặp B thì thay Bbởi y, dịch trái và chuyển bước 4

Bước 3: Tìm 1 bên trái nhất trước x1 Nếu tìm được chuyển bước 1 Nếu không tìm được thì

chuyển bước 5

Bước 4: Chuyển tất cả 1 trước x1 sang bên trái y và chuyển sang bước 6.

Bước 5: Thay thế x1 và tất cả 1 bên phải x2 bởi B; thay thế y bởi 0, ghi y vào ô B tiếp theo

và dừng

Bước 6: Thay thế x1, x2 bởi B và dừng.

Bảng hàm chuyển :

Trang 20

1 x1 x2 y B

 q0 (q1, B, R) (q8, B, R)q1 (q1, 1, R) (q1, x1, R) (q2, x2, L)q2 (q3, B, L) (q4, x1, L)

q4 (q4, 1, L) (q4, x1, L) (q4, x2, L) (q4, y, L) (q5, B, R)q5 (q6, B, R) (q5, B, R) (q7, B, R)

q6 (q6, 1, R) (q6, x1, R) (q6, x2, R) (q6, 1, R) (q4, y, L)

*q9Như vậy, máy Turing M = (, Q, , , q1, B, F), trong đó  = {0, 1}, Q = {q0, q1, q2, q3, q4, q5, q6,q7, q8, q9},  = {0, 1, B, x1, x2, y}, F = {q9} và  được cho bởi bảng trên

Trang 21

11 a) Thiết kế máy Turing M tính giá trị hàm nhân f(x) trên tập các số nguyên dương như sau:f(x) = f(a1, a2) = a1 * a2 , trong đó input x = 1a1x11a2x2By, còn output là giá trị của f(x) = 1a1 *a2 y

Hàm chuyển :

Trang 23

b) Tính giá trị f(2, 3) : x = 11x1111x2By  …  111111y.

Vậy f(2, 3) = 6

c) Đánh giá độ phức tạp tính toán của M :

Đặt n = max(a1, a2) Có T(n)  2(2n+5)(2n + 3)2  T(n) = O(n3)

L(n)  2n + 5 + n2  L(n) = O(n2)

Trang 24

12 Để mã hóa các xâu nhị phân, cho khóa mã cod(0) = 01 và cod(1) = 10 Khi đó mỗi xâu nhị

phân u = u1u2…un có MA(u) = Cod(u1)Cod(u2)…Cod(un)

a) Hãy thiết kế máy Turing M tính giá trị của hàm MA(x), trong đó input x = u1u2…unBy, output

là giá trị của hàm MA(x) = Cod(u1)Cod(u2)…Cod(un)y, còn u1, u2, …, un là các số nhị phân

b) Tính giá trị của MA(0110)

c) Đánh giá độ phức tạp tính toán của M

Giải

a) Máy Turing M tính giá trị của hàm MA(x), trong đó input x = u1u2…unuBy, output là giá trịcủa hàm MA(x) = Cod(u1)Cod(u2)…Cod(un)y, còn u1, u2, …, un là các số nhị phân hoạt động nhưsau:

q0 là trạng thái ban đầu, đầu đọc ghi ở ô đầu tiên của input

Bảng hàm chuyển :

Trang 25

*q10Như vậy, xây dựng được máy Turing M = (, Q, , , q0, B, F), trong đó  = {0, 1}, Q = {q0, q1,q2, q3, q4, q5, q6, q7, q8, q9},  = {0, 1, x, y, B}, F = { q10} và  được cho bởi bảng trên.

b) MA(0110) = 01101001

c) Ký hiệu n là độ dài của xâu u Có :

T(n)  2(2n)2 Suy ra T(n) = O(n2)

Trang 26

L(n)  2(n +5) Suy ra L(n) = O(n)

Ngày đăng: 26/02/2015, 23:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w