Chng 7 My Turing Turing Machine Ni dung

  • Slides: 12
Download presentation
Chương 7: Máy Turing (Turing Machine) Nội dung: • Mô hình TM • TM

Chương 7: Máy Turing (Turing Machine) Nội dung: • Mô hình TM • TM nhận dạng ngôn ngữ • TM tính toán hàm số nguyên • Các kỹ thuật xây dựng TM 1

Mô hình TM Định nghĩa: TM là một hệ thống gồm 7 thành phần

Mô hình TM Định nghĩa: TM là một hệ thống gồm 7 thành phần M (Q, Σ, Γ, δ, q 0, B, F) ● Q : tập hữu hạn các trạng thái ● Σ : bộ ký hiệu nhập ● Γ : tập hữu hạn các ký hiệu được viết trên băng ● δ : hàm chuyển Q x Γ → Q x Γ x {L, R, Ø} ● q : trạng thái khởi đầu 0 ● B : ký hiệu dùng để chỉ khoảng trống trên băng ● F Q : tập các trạng thái kết thúc Hình thái: α 1 qα 2 với q là trạng thái hiện hành của TM, α 1α 2 là nội dung của băng tính từ đầu băng cho đến ký hiệu khác Blank bên phải nhất 2

Phép chuyển Định nghĩa: Đặt X 1 X 2. . . Xi-1 q. Xi.

Phép chuyển Định nghĩa: Đặt X 1 X 2. . . Xi-1 q. Xi. . . Xn là một hình thái (ID) Giả sử : δ(q, Xi) = (p, Y, L) • Nếu i - 1 = n thì Xi là B • Nếu i = 1 thì không có ID kế tiếp (đầu đọc không được phép vượt qua cận trái của băng. • Nếu i > 1 ta viết: X 1 X 2. . . Xi-1 q. Xi. . . Xn ⊢ X 1 X 2. . . Xi-2 p. Xi-1 YXi+1. . . Xn Tương tự : δ(q, Xi) = (p, Y, R) X 1 X 2. . . Xi-1 q. Xi. . . Xn ⊢ X 1 X 2. . . Xi-2 Xi-1 Yp. Xi+1. . . Xn Và với : δ(q, Xi) = (p, Y, Ø) X 1 X 2. . . Xi-1 q. Xi. . . Xn ⊢ X 1 X 2. . . Xi-2 Xi-1 p. YXi+1. . . Xn 3

TM nhận dạng ngôn ngữ Định nghĩa: ngôn ngữ được chấp nhận bởi TM

TM nhận dạng ngôn ngữ Định nghĩa: ngôn ngữ được chấp nhận bởi TM M là L(M) = {w | w Γ* và q 0 w ⊢ α 1 pα 2 với p F} Ví dụ: thiết kế TM chấp nhận L = {0 n 1 n | n > 0} Đặt TM M(Q, Σ, Γ, δ, q 0, B, F) với Q = {q 0, q 1, q 2, q 3, q 4}, Γ = {0, 1, X, Y, B}, F = {q 4} Xét chuỗi 0011 ta có: q 00011 ⊢ Xq 1011 ⊢ X 0 q 111 ⊢ X q 20 Y 1 ⊢ q 2 X 0 Y 1 ⊢ X q 00 Y 1 ⊢ XXq 1 Y 1 ⊢ XXY q 11 ⊢ XX q 2 YY ⊢ X q 2 XYY ⊢ XX q 0 YY ⊢ XXYq 3 Y ⊢ XXYYq 3 ⊢ XXYYq 4 4

TM nhận dạng ngôn ngữ 5

TM nhận dạng ngôn ngữ 5

TM như là máy tính hàm số nguyên Quy ước: một số nguyên trong

TM như là máy tính hàm số nguyên Quy ước: một số nguyên trong TM được viết dưới dạng nhất phân là một chuỗi số 0, cách nhau bởi 1 số 1. 000001001000 B = 5, 2, 3 Ví dụ: thiết kế TM tính toán phép trừ riêng • Nếu m < n thì m n = 0 • Ngược lại thì m n = m – n • Input: 0 m 10 n. B Output: 0 mn. B Đặt TM M(Q, Σ, Γ, δ, q 0, B, F) với • Q = {q 0, q 1, q 2, q 3, q 4, q 5, q 6}, Γ = {0, 1, B}, F = {q 6} 6

TM như là máy tính hàm số nguyên Xét chuỗi nhập 0010 (2 -1)ta

TM như là máy tính hàm số nguyên Xét chuỗi nhập 0010 (2 -1)ta có: q 00010 ⊢ B q 1010 ⊢ B 0 q 110 ⊢ B 01 q 20 ⊢ B 0 q 311 ⊢ Bq 3011 ⊢ q 3 B 011 ⊢ Bq 0011 ⊢ BBq 111 ⊢ BB 1 q 21 ⊢ BB 11 q 2 ⊢ BB 1 q 41 ⊢ BBq 41 ⊢ Bq 4 ⊢ Bq 60 Xét chuỗi nhập 0100 (1 -2) ta có: q 00100 ⊢ Bq 1100 ⊢ B 1 q 200 ⊢ Bq 3110 ⊢ q 3 B 110 ⊢ Bq 0110 ⊢ BBq 510 ⊢ BBBq 50 ⊢ BBBBq 5 ⊢ BBBBq 6 7

Kỹ thuật lưu trữ trong bộ điều khiển Ví dụ: thiết kế TM kiểm

Kỹ thuật lưu trữ trong bộ điều khiển Ví dụ: thiết kế TM kiểm tra ký tự đầu tiên của một chuỗi không xuất hiện ở bất kỳ vị trí nào khác trong chuỗi. Xây dựng: TM M(Q, {0, 1}, {0, 1, B}, δ, [q 0, B], B, F) trong đó các trạng thái thuộc Q là một cặp {q 0, q 1} x {0, 1, B} F = {[q 1, B]} Phép chuyển: δ([q 0, B], 0) = ([q 1, 0], 0, R) δ([q 1, 0], B) = ([q 1, B], B, Ø) δ([q 0, B], 1) = ([q 1, 1], 1, R) δ([q 1, 1], B) = ([q 1, B], B, Ø) 8

Kỹ thuật dịch qua (Shifting over) Ví dụ: thiết kế máy Turing để dịch

Kỹ thuật dịch qua (Shifting over) Ví dụ: thiết kế máy Turing để dịch một chuỗi các ký hiệu khác B sang phải 2 ô Xây dựng: TM M(Q, Σ, Γ, δ, q 0, B, F) trong đó Q chứa các phần tử dạng [q, A 1, A 2] với q = q 1 hoặc q 2; A 1 và A 2 thuộc Γ. Trạng thái bắt đầu là [q 1, B, B] Phép chuyển: δ([q 1, B, B], A 1) = ([q 1, B, A 1], X, R) (X là ký hiệu đặc biệt nào đó) δ([q 1, B, A 1], A 2) = ([q 1, A 2], X, R) δ([q 1, A 2], A 3) = ([q 1, A 2, A 3], A 1, R). . . δ([q 1, Ai-2, Ai-1], Ai) = ([q 1, Ai-1, Ai], Ai-2, R). . . δ([q 1, An-1, An], B) = ([q 2, An, B], An-1, R) δ([q 2, An, B], B) = ([q 2, B, B], An, L) 9

Kỹ thuật chương trình con Ví dụ: thiết kế TM thực hiện phép nhân

Kỹ thuật chương trình con Ví dụ: thiết kế TM thực hiện phép nhân 2 số nguyên dương m và n • Input: 0 m 10 n. B • Output: 0 m*n. B • Ý tưởng: đặt số 1 sau 0 m 10 n (0 m 10 n 1), sau đó chép n số 0 sang phải m lần, mỗi lần xóa đi 1 số 0 bên trái của m • Sau khi m đã được xóa, phép nhân đã được thực hiện xong, xóa tiếp 10 n 1. Kếu quả còn lại sẽ là B 0 m*n. B Phân tích: • Xóa 1 số 0 bên trái của m, dịch đầu đọc sang số n để chuẩn bị cho việc copy n số 0: q 00 m 10 n 1 ⊢ B 0 m-11 q 10 n 1 • Copy n số 0 sang phải: B 0 m-11 q 10 n 1 ⊢ B 0 m-11 q 50 n 10 n • Quay lại trạng thái bắt đầu: B 0 m-11 q 50 n 10 n ⊢ Bq 00 m-110 n • Chuẩn bị cho việc copy kế tiếp: B 0 m-11 q 50 n 10 n ⊢ B 20 m-21 q 10 n • Copy n số 0 sang phải. . . 10

Kỹ thuật chương trình con Thủ tục copy n số 0: Biến đổi hình

Kỹ thuật chương trình con Thủ tục copy n số 0: Biến đổi hình thái q 00 m 10 n 1 ⊢ B 0 m-11 q 10 n 1: Biến đổi hình thái Bi 0 m-i 1 q 50 n 10 n*i ⊢ Bi+10 m-i-11 q 10 n*i: 11

Kỹ thuật chương trình con 12

Kỹ thuật chương trình con 12