Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
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
1 Cho máy Turing M = (Σ, Q, Γ, δ, q0, B, F), Σ = {0, 1}, Q = {q0, q1, q2, q3, q4}, Γ = { 0, 1, B}, F = {q4} δ cho bảng sau →q0 q1 q2 q3 *q4 (q0, 0, R) B (q1, 1, L) (q1, 0, L) (q3, B, R) (q3, 0, R) (q1, 1, L) (q4, B, R) (q3, 1, R) (q2, B, R) (q4, 0, R) (q1, 0, L) a) Giải thích hoạt động M b) Mơ tả q trình thực M xâu (i) 00; (ii) 01; (iii) 10; (iv) 11 Xét xem xâu M thừa nhận? c) Xác định độ phức tạp tính tốn M? Giải a) Máy Turing M hoạt động sau: δ(q0, 0) = (q0, 0, R): Gặp 0, thay 0, chuyển q0 dịch phải δ(q0, 1) : Dừng không thừa nhận δ(q0, B) = (q1, 1, L): Gặp B, thay B 1, chuyển q8 dịch trái δ(q1, 0) = (q1, 0, L): Gặp 0, thay 0, chuyển q1 dịch trái δ(q1, 1) = (q1, 1, L): Gặp 1, thay 1, chuyển q1 dịch trái δ(q1, B) = (q2, B, R): Gặp B, thay B B, chuyển q2 dịch phải δ(q2, 0) = (q3, B, R): Gặp 0, thay B, chuyển q3 dịch phải δ(q2, 1) = (q4, B, R): Gặp 1, thay B, chuyển q4 dịch phải δ(q2, B) : Dừng không thừa nhận δ(q3, 0) = (q3, 0, R): Gặp 0, thay 0, chuyển q3 dịch phải δ(q3, 1) = (q3, 1, R): Gặp 1, thay 1, chuyển q3 dịch phải δ(q3, B) = (q3, 1, R): Gặp B, thay B 0, chuyển q4 dịch phải δ(q4, 0) : Dừng thừa nhận δ(q4, 1) : Dừng thừa nhận δ(q4, B) = (q1, 0, L): Gặp B, thay B 0, chuyển q1 dịch trái b) Mô tả trình thực M 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 thừa nhận (ii) 01: q001 ⇒ 0q01: Dừng không thừa nhận (iii) 10: q010: dừng không thừa nhận (iv) 11: q011: Dừng không thừa nhận c) Xác định độ phức tạp tính tốn M: Ký hiệu n độ dài xâu input w Nếu w chứa ký tự T(n) ≤ n L(n) = n Nếu w chứa ký tự T(n) = O(n2) L(n) = O(n2) Kết luận: T(n) = O(n2) L(n) = O(n2) Cho máy Turing M = (Σ, Q, Γ, δ, q0, B, F), Σ = {x, y, z}, Q = {q0, q1, q2}, Γ = {x, y, z, B}, F = {q2} δ cho bảng sau x (q0, x, R) →q0 q1 (q0, x, R) *q2 a) Giải thích hoạt động M y (q0, y, R) z (q1, x, R) (q0, y, L) B (q0, B, R) (q2, z, R) b) Mơ tả q trình thực M xâu (i) xyz; (ii) xxyy; (iii) xxzyy Xét xem xâu M thừa nhận? c) Xác định độ phức tạp tính tốn M? Cho máy Turing M = (Σ, Q, Γ, δ, q0, B, F), Σ = {1, 2, 3}, Q = {q 0, q1, q2, q3, q4, q5, q6}, Γ = {1, 2, 3, B}, F = {q6} δ cho bảng sau →q0 q1 q2 q3 q4 q5 * q6 (q1, B, R) (q1, 1, R) (q5, 1, L) (q5, 1, L) (q2, B, R) (q2, 2, R) (q4, 2, L) (q3, B, R) (q4, 3, L) B (q0, B, R) (q1, B, R) (q2, B, R) (q6, B, L) (q4, B, L) (q0, B, R) a) Giải thích hoạt động M b) Mơ tả trình thực M xâu (i) 123; (ii) 112 Xét xem xâu M thừa nhận? c) Đánh giá độ phức tạp tính toán M Cho máy Turing ngẫu nhiên RM có băng input băng ngẫu nhiên Mỗi ký hiệu băng có dạng (XY), X ký hiệu băng input, Y ký hiệu băng ngẫu nhiên Mỗi hướng di chuyển có dạng (DE), D hướng di chuyển đầu đọc-ghi băng input, E hướng di chuyển đầu đọc-ghi băng ngẫu nhiên Biết rằng, đầu đọc-ghi di chuyển sang phải (R), sang trái (L) đứng yên (S) Bảng hàm chuyển δ: 00 q100RS 01 q301SR 10 q210RS 11 q311SR → q0 q1 q100RS q2 q210RS q3 q300RR q311RR *q4 Như vậy, RM có trạng thái đầu q0, trạng thái thừa nhận q4 B0 B1 q4B0SS q4B0SS q4B0SS q4B1SS a) Giải thích hoạt động M b) Mơ tả q trình thực M xâu: (i) Xâu băng input w = 11111, xâu băng ngẫu nhiên rw = 00101 (ii) Xâu băng input w = 11001, xâu băng ngẫu nhiên rw = 10101 c) Tính xác suất để RM thừa nhận xâu: (i) w = 1111111; (ii) w = 1001100 Giải a) Máy Turing ngẫu nhiên RM hoạt động sau: δ(q0, 00) = (q1, 00, R,S): Gặp 00, thay 00 00, chuyển q1 dịch phải băng Input đứng yên băng ngẫu nhiên δ(q0, 01) = (q3, 01, S, R): Gặp 01, thay 01 01, chuyển q đứng yên băng Input dịch phải băng ngẫu nhiên δ(q0, 10) = (q2, 10, R,S): Gặp 10, thay 10 10, chuyển q2 dịch phải băng Input đứng yên băng ngẫu nhiên δ(q0, 11) = (q3, 11, S, R): Gặp 11, thay 11 11, chuyển q đứng yên băng Input dịch phải băng ngẫu nhiên δ(q1, 00) = (q1, 00, R, S): Gặp 00, thay 00 00, chuyển q dịch phải băng Input đứng yên băng ngẫu nhiên δ(q1, B0) = (q4, B0, S, S): Gặp B0, thay B0 B0, chuyển q đứng yên băng Input đứng yên băng ngẫu nhiên δ(q2, 10) = (q2, 10, R, S): Gặp 10, thay 10 10, chuyển q dịch phải băng Input đứng yên băng ngẫu nhiên δ(q2, B0) = (q4, B0, S, S): Gặp B0, thay B0 B0, chuyển q đứng yên băng Input đứng yên băng ngẫu nhiên δ(q3, 00) = (q1, 00, R, R): Gặp 00, thay 00 00, chuyển q dịch phải băng Input dịch phải băng ngẫu nhiên δ(q3, 11) = (q3, 11, R, R): Gặp 11, thay 11 11, chuyển q dịch phải băng Input dịch phải băng ngẫu nhiên δ(q3, B0) = (q4, B0, S, S): Gặp B0, thay B0 B0, chuyển q đứng yên băng Input đứng yên băng ngẫu nhiên δ(q3, B1) = (q4, B1, S, S): Gặp B1, thay B1 B1, chuyển q đứng yên băng Input đứng yên băng ngẫu nhiên δ(q0, B0), δ(q0, B1), δ(q1, 01), δ(q1, 10), δ(q1, 11), δ(q1, B1), δ(q1, B1), δ(q2, 00), δ(q2, 01), δ(q2, 11), δ(q2, B1), δ(q3, 01), δ(q3, 10): Dừng không thừa nhận δ(q4, 00), δ(q4, 01), δ(q4, 10), δ(q4, 11), δ(q4, B0), δ(q4, B1): Dừng thừa nhận b) Mô tả trình thực M xâu (i) Xét w = 11111 rw = 00101: q 011111|q000101 ⇒ 1q21111|q000000 ⇒ 11q2111|q200101 ⇒ 111q211|q200101 ⇒ 1111q21|q200101 ⇒ 11111q2B|q200101 ⇒ 11111q4B|q200101: Dừng RM thừa nhận w (ii) Xét w = 11001 rw = 10101: q 011001|q010101 ⇒ q311001|1q30101 ⇒1q21001|1q20101 ⇒ 11q2001|1q20101: Dừng RM không thừa nhận w c) Xác suất để w thừa nhận RM : (i) w = 1111111 tổng xác suất thừa nhận w 1 −7 129 -1 -(7+1) + = +2 = 2 256 (ii) w = 1001100 có tổng xác suất thừa nhận w 2-(7+1) = 256 Thiết kế máy Turing thừa nhận ngôn ngữ {0n1n0nn ≥ 0} Giải Máy Turing M thừa nhận xâu w = 0n1n0n, n ≥ 1, hoạt động sau : q0 trạng thái ban đầu, đầu đọc ghi ô input Bước 1: Nếu gặp 0, thay B dịch phải, chuyển bước 2; Nếu gặp dừng khơng thừa nhận w; Nếu gặp B dừng thừa nhận w; Nếu gặp x giữ nguyên dịch phải Bước 2: Nếu gặp thay 0, dịch phải; Nếu gặp thay x, dịch phải chuyển bước 3; Nếu gặp B dừng khơng thừa nhận w; Nếu gặp x giữ nguyên dịch phải Bước 3: Nếu gặp hoăc giữ nguyên dịch phải; Nếu gặp B giữ nguyên, dịch trái chuyển bước Bước 4: Nếu gặp thay B, dịch trái chuyển bước 5; Nếu gặp 1, x, B dừng khơng thừa nhận w Bước 5: Nếu gặp B giữ nguyên, dịch phải chuyển bước Bảng hàm chuyển sau: 10 Thiết kế máy Turing thừa nhận xâu nhị phân W có số lượng kí tự số lượng kí tự Giải Máy Turing M thừa nhận xâu nhị phân w hoạt động sau : q0 trạng thái ban đầu, đầu đọc ghi ô input Bước 1: Nếu gặp thay B, dịch phải chuyển bước 2; Nếu gặp thay B, dịch phải chuyển bước 3; Nếu gặp B thay B B, dừng thừa nhận w; gặp x giữ nguyên dịch phải; Bước 2: Nếu gặp x giữ nguyên dịch phải; Nếu gặp thay x, dịch trái chuyển bước 4; Nếu gặp B dừng khơng thừa nhận; Bước 3: Nếu gặp x giữ nguyên dịch phải; Nếu gặp thay x, dịch trái chuyển bước 4; Nếu gặp B dừng không thừa nhận; Bước 4: Nếu gặp 0, 1, x giữ nguyên dịch trái; Nếu gặp B giữ nguyên, dịch phải chuyển bước 1; 12 Bảng hàm chuyển: →q0 q1 q2 q3 *q4 (q1, B, R) (q2, B, R) x (q0, x, R) B (q4, B, L) (q1, 0, R) (q3, x, L) (q3, 0, L) (q3, x, L) (q2, 1, R) (q3, 1, L) (q1, x, R) (q2, x, R) (q3, x, L) (q0, B, R) 13 Thiết kế máy Turing kiểm tra xâu x với kí tự thuộc tập hợp {a, b, c} có phải xâu đối xứng hay khơng? Nếu x đối xứng giá trị băng 1, ngược lại, giá trị băng Giải Máy Turing M kiểm tra tính đối xứng xâu x hoạt động sau : q0 trạng thái ban đầu, đầu đọc ghi ô input Bước : Thay kí tự x B, dịch phải Nếu kí tự chuyển bước ; Nếu kí tự chuyển bước 3; ngược lại chuyển bước Bước : Tìm ký tự cuối x Nếu khơng tìm thay B 1, dịch trái dừng Nếu tìm = chuyển bước ; ≠ chuyển bước Bước : Tìm ký tự cuối x Nếu khơng tìm thay B 1, dịch trái dừng Nếu tìm = chuyển bước 5; ≠ chuyển bước Bước 4: Tìm ký tự cuối x Nếu khơng tìm thay B 1, dịch trái dừng Nếu tìm = chuyển bước 5; ≠ chuyển bước Bước 5: Tìm ký tự x Nếu tìm chuyển bước Nếu khơng tìm thay B 1, dịch trái dừng Bước 6: Thay kí tự vừa tìm 0, dịch trái chuyển bước ; Bước 7: Thay kí tự x B dịch trái; Nếu gặp B dừng Bảng hàm chuyển: 14 →q0 q1 q2 q3 q4 q5 q6 q7 q8 * q9 (q1, B, R) (q2, B, R) (q3, B, R) B (q9, 1, R) (q1, 0, R) (q2, 0, R) (q3, 0, R) (q7, B, L) (q8, 0, L) (q8, 0, L) (q7, 0, L) (q8, B, L) (q1, 1, R) (q2, 1, R) (q3, 1, R) (q8, 0, L) (q7, B, L) (q8, 0, L) (q7, 1, L) (q8, B, L) (q1, 2, R) (q2, 2, R) (q3, 2, R) (q8, 0, L) (q8, 0, L) (q7, B, L) (q7, 2, L) (q8, B, L) (q4, B, L) (q5, B, L) (q6, B, L) (q9, 1, R) (q9, 1, R) (q9, 1, R) (q0, B, R) (q9, B, R) ⇒ M = (Σ, Q, Γ, δ, q1, B, F), Σ = {0, 1, 2}, Q = {q0, q1, q2, q3, q4, q5, q6, q7, q8, q9}, Γ = {0, 1, 2, B}, F = {q9} δ cho bảng 15 Thiết kế máy Turing kiểm tra xâu nhị phân x khác rỗng có chứa số chẵn kí tự hay khơng? Nếu x chứa số chẵn kí tự giá trị băng 1, ngược lại, giá trị băng Giải a) Máy Turing M kiểm tra xâu nhị phân x ≠ ∅ hoạt động sau: q0 trạng thái ban đầu, đầu đọc ghi ô input Bước 1: Nếu gặp thay B, dịch phải; Nếu gặp thay B chuyển bước Nếu gặp B thay B chuyển bước Bước 2: Nếu gặp thay B, dịch phải; Nếu gặp thay B chuyển bước Nếu gặp B thay B chuyển bước Bước Dừng kết giá trị lại băng Bảng hàm chuyển : Trạng thái →q0 q1 * q2 Ký hiệu băng input B (q0, B, R) (q1, B, R) (q2, 1, L) (q1, B, R) (q0, B, R) (q2, 0, L) Như vậy, xây dựng máy Turing M = (Σ, Q, Γ, δ, q0, B, F), Σ = {0, 1}, Q = {q0, q1, q2}, Γ = {0, 1, B}, F = {q2} δ cho bảng 16 a) Thiết kế máy Turing M tính hàm cộng tập số tự nhiên > sau: f(x) = f(a1, a2) = a1 + a2 , input x = 1a1 x11a2 x By , output giá trị f(x) = 1a1 + a2 yB b) Tính giá trị f(2, 3) c) Đánh giá độ phức tạp tính tốn M Giải Input : x = 1a1 x11a2 x By Output : f(x) = a1 + a2 yB Máy Turing M thực hàm cộng hoạt động sau : Bước 1: Số bên trái thay B dịch phải Bước 2: Tìm x2 thay x2 1, dịch phải gặp B thay B x 2, dịch phải gặp y thay y B, dịch phải găp B thay B y dịch trái chuyển sang bước Bước 3: Tìm bên trái trước x1 Nếu tìm chuyển bước Nếu khơng tìm chuyển bước Bước 4: Thay x1 B; thay x2 y, thay y B dừng 17 Bảng hàm chuyển: → q0 q1 q2 q3 *q4 (q1, B, R) x1 (q3, B, R) x2 y B (q1, 1, R) (q2, 1, L) (q3, 1, R) (q1, x1, R) (q2, x1, L) (q1, 1, R) (q2, x2, L) (q3, y, R) (q1, x2, R) (q2, y, L) (q0, B, R) (q0, B, R) (q4, B, L) Như vậy, xây dựng máy Turing M = (Σ, Q, Γ, δ, q0, B, F), Σ = {1}, Q = {q0, q1, q2, q3, q4}, Γ = {1, B, x1, x2, y}, F = {q4} δ cho bảng 18 10 Thiết kế máy Turing tính hàm trừ tập số tự nhiên > sau: TRU(x) = TRU(m, n) = m – n m > n TRU(m, n) = 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 hàm TRU(m, n) hoạt động sau : Bước 1: Số bên trái thay B dịch phải Bước 2: Nếu tìm số trước x thay B, dịch trái chuyển sang bước Nếu khơng tìm gặp y, thay y dịch phải Gặp B thay B y, dịch trái chuyển bước Bước 3: Tìm bên trái trước x1 Nếu tìm chuyển bước Nếu khơng tìm chuyển bước Bước 4: Chuyển tất trước x1 sang bên trái y chuyển sang bước Bước 5: Thay x1 tất bên phải x B; thay y 0, ghi y vào ô B dừng Bước 6: Thay x1, x2 B dừng Bảng hàm chuyển : 19 → q0 q1 q2 q3 q4 q5 q6 q7 q8 *q9 (q1, B, R) x1 (q8, B, R) x2 (q1, 1, R) (q3, B, L) (q3, 1, L) (q4, 1, L) (q6, B, R) (q6, 1, R) (q9, 1, L) (q8, B, R) (q1, x1, R) (q4, x1, L) (q3, x1, L) (q4, x1, L) (q5, B, R) (q6, x1, R) (q2, x2, L) (q4, x2, L) (q7, B, R) (q6, x2, R) (q7, B, R) (q8, B, R) y B (q4, y, L) (q0, B, R) (q5, B, R) (q6, 1, R) (q4, y, L) (q8, 0, R) (q9, y, L) Như vậy, máy Turing M = (Σ, Q, Γ, δ, q1, B, F), Σ = {0, 1}, Q = {q0, q1, q2, q3, q4, q5, q6, q7, q8, q9}, Γ = {0, 1, B, x1, x2, y}, F = {q9} δ cho bảng 20 11 a) Thiết kế máy Turing M tính giá trị hàm nhân f(x) tập số nguyên dương sau: f(x) = f(a1, a2) = a1 * a2 , input x = 1a1 x11a x By , output giá trị f(x) = 1a1 *a y b) Tính giá trị f(2, 3) c) Đánh giá độ phức tạp tính tốn M Giải a) Máy Turing M tính hàm f(x) = f(a 1, a2) = a1 * a2 , input x = 1a1 x11a2 x2 By , output giá trị f(x) = 1a1*a2 yB hoạt động sau: - Hoạt động M : Chép a1 lần liên tiếp khối a2 số 1, lần chép khối, loại bớt số khối 1a1 ⇒ Bx11a2 x21a1*a2 yB Cuối cần xóa tiền tố x11a2 x2 ⇒ 1a1*a2 yB lại băng giá trị hàm Hàm chuyển : 21 →q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 *q14 (q1, B, R) (q1, 1, R) (q3, 2, R) (q3, 1, R) (q4, 1, L) (q6, 2, R) (q6, 1, R) (q7, 1, L) (q8, 1, R) (q9, 1, L) (q11, B, R) (q11, 1, R) (q12, B, R) (q13, B, L) x1 (q12, B, R) x2 y B (q4, y, L) (q3, 1, R) (q6, 1, R) (q7, y, L) (q8, 1, R) (q7, y, R) (q10, B, R) (q2, x1 , R) (q13, B, L) (q3, x2, R) (q4, x2, L) (q7, x2, L) (q6, x2, R) (q7, x2, L) (q8, x2, R) (q5, 2, R) (q8, 2, R) (q9, 1, L) (q9, x1, L) (q12, B, R) (q5, x1, R) (q13, B, R) (q13, B, L) (q14, B, R) 22 Như vậy, xây dựng máy Turing M = (Σ, Q, Γ, δ, q14, B, F), Σ = { 1}, Q = {q1, q2, , q14}, Γ = {1, 2, x1, x2, y, B}, F = {q14} δ cho bảng b) Tính giá trị f(2, 3) : x = 11x1111x2By ⇒ … ⇒ 111111y Vậy f(2, 3) = c) Đánh giá độ phức tạp tính tốn M : Đặt n = max(a1, a2) Có T(n) ≤ 2(2n+5)(2n + 3)2 ⇒ T(n) = O(n3) L(n) ≤ 2n + + n2 ⇒ L(n) = O(n2) 23 12 Để mã hóa xâu nhị phân, cho khóa mã cod(0) = 01 cod(1) = 10 Khi 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ị hàm MA(x), input x = u 1u2…unBy, output giá trị hàm MA(x) = Cod(u1)Cod(u2)…Cod(un)y, u1, u2, …, un số nhị phân b) Tính giá trị MA(0110) c) Đánh giá độ phức tạp tính tốn M Giải a) Máy Turing M tính giá trị hàm MA(x), input x = u 1u2…unuBy, output giá trị hàm MA(x) = Cod(u1)Cod(u2)…Cod(un)y, u1, u2, …, un số nhị phân hoạt động sau: q0 trạng thái ban đầu, đầu đọc ghi ô input Bảng hàm chuyển : 24 → q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 *q10 (q1, B, R) (q2, B, R) (q1, 0, R) (q2, 0, R) x y (q1, 1, R) (q2, 1, R) B (q10, B, R) (q3, 1, R) (q4, 0, R) (q6, 0, L) (q8, B, R) (q8, 0, R) (q9, 0, R) (q6, 1, L) (q9, B, R) (q8, 1, R) (q9, 1, R) (q6, x, L) (q10, B, R (q8, x, R) (q9, x, R) (q3, x, R) (q4, x, R) (q5, 0, R) (q5, 1, R) (q6, y, L) (q7, B, R) (q8, 0, R) (q9, 1, R) (q5, 1, R) (q5, 0, R) Như vậy, xây dựng máy Turing M = (Σ, Q, Γ, δ, q0, B, F), Σ = {0, 1}, Q = {q0, q1, q2, q3, q4, q5, q6, q7, q8, q9}, Γ = {0, 1, x, y, B}, F = { q10} δ cho bảng b) MA(0110) = 01101001 c) Ký hiệu n độ dài xâu u Có : T(n) ≤ 2(2n)2 Suy T(n) = O(n2) 25 L(n) ≤ 2(n +5) Suy L(n) = O(n) 26 ... Dừng thừa nhận (ii) 01: q001 ⇒ 0q01: Dừng không thừa nhận (iii) 10: q010: dừng không thừa nhận (iv) 11: q011: Dừng không thừa nhận c) Xác định độ phức tạp tính tốn M: Ký hiệu n độ dài xâu input w... {q2} δ cho bảng 16 a) Thi? ??t kế máy Turing M tính hàm cộng tập số tự nhiên > sau: f(x) = f(a1, a2) = a1 + a2 , input x = 1a1 x11a2 x By , output giá trị f(x) = 1a1 + a2 yB b) Tính giá trị f(2, 3)... bảng 20 11 a) Thi? ??t kế máy Turing M tính giá trị hàm nhân f(x) tập số nguyên dương sau: f(x) = f(a1, a2) = a1 * a2 , input x = 1a1 x11a x By , output giá trị f(x) = 1a1 *a y b) Tính giá trị f(2,