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

Tài liệu máy turing

12 186 0

Đ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 12
Dung lượng 224 KB

Nội dung

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 Chương 7: 1 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 0 : trạng thái khởi đầu ● 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 3 Phép chuyển Định nghĩa: Đặt X 1 X 2 X i-1 qX i X n là một hình thái (ID) Giả sử : δ(q, X i ) = (p, Y, L) • Nếu i - 1 = n thì X i 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 X i-1 qX i X n ⊢ X 1 X 2 X i-2 pX i-1 YX i+1 X n Tương tự : δ(q, X i ) = (p, Y, R) X 1 X 2 X i-1 qX i X n ⊢ X 1 X 2 X i-2 X i-1 YpX i+1 X n Và với : δ(q, X i ) = (p, Y, Ø) X 1 X 2 X i-1 qX i X n ⊢ X 1 X 2 X i-2 X i-1 pYX i+1 X n 4 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} Xét chuỗi 0011 ta có: q 0 0011 ⊢ Xq 1 011 ⊢ X0q 1 11 ⊢ X q 2 0Y1 ⊢ q 2 X0Y1 ⊢ X q 0 0Y1 ⊢ XXq 1 Y1 ⊢ XXY q 1 1 ⊢ XX q 2 YY ⊢ X q 2 XYY ⊢ XX q 0 YY ⊢ XXYq 3 Y ⊢ XXYYq 3 ⊢ XXYYq 4 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 } 5 TM nhận dạng ngôn ngữ q 0 q 3 q 1 q 2 start (0,X,R) (Y,Y,R) (0,0,R) (Y,Y,R) (1,Y,L) (X,X,R) (0,0,L) (Y,Y,L) (Y,Y,R) q 4 (B,B,Ø) 6 TM như là máy tính hàm số nguyên 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 m\n 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 } 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. 000001001000B = 5, 2, 3 7 TM như là máy tính hàm số nguyên Xét chuỗi nhập 0100 (1-2) ta có: q 0 0100 ⊢ Bq 1 100 ⊢ B1q 2 00 ⊢ Bq 3 110 ⊢ q 3 B110 ⊢ Bq 0 110 ⊢ BBq 5 10 ⊢ BBBq 5 0 ⊢ BBBBq 5 ⊢ BBBBq 6 Xét chuỗi nhập 0010 (2-1)ta có: q 0 0010 ⊢ B q 1 010 ⊢ B0q 1 10 ⊢ B01q 2 0 ⊢ B0q 3 11 ⊢ Bq 3 011 ⊢ q 3 B011 ⊢ Bq 0 011 ⊢ BBq 1 11 ⊢ BB1q 2 1 ⊢ BB11q 2 ⊢ BB1q 4 1 ⊢ BBq 4 1 ⊢ Bq 4 ⊢ Bq 6 0 q 0 start q 1 q 2 q 4 q 3 q 5 q 6 (0,B,R) (1,B,R) (0,0,R) (1,1,R) (1,1,R) (0,1,L) (0,0,L) (1,1,L) (B,B,L) (B,B,R) (1,B,L) (0,0,L) (B,0,Ø) (0,B,R) (1,B,R) (B,B,Ø) 8 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], 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], 1) = ([q 1 , 1], 1, R) δ([q 1 , 1], B) = ([q 1 , B], B, Ø) 9 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 1 , A 2 ], X, R) δ([q 1 , A 1 , A 2 ], A 3 ) = ([q 1 , A 2 , A 3 ], A 1 , R) δ([q 1 , A i-2 , A i-1 ], A i ) = ([q 1 , A i-1 , A i ], A i-2 , R) δ([q 1 , A n-1 , A n ], B) = ([q 2 , A n , B], A n-1 , R) δ([q 2 , A n , B], B) = ([q 2 , B, B], A n , L) 10 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à B0 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 0 0 m 10 n 1 ⊢ B0 m-1 1q 1 0 n 1 • Copy n số 0 sang phải: B0 m-1 1q 1 0 n 1 ⊢ B0 m-1 1q 5 0 n 10 n • Quay lại trạng thái bắt đầu: B0 m-1 1q 5 0 n 10 n ⊢ Bq 0 0 m-1 10 n 10 n • Chuẩn bị cho việc copy kế tiếp: B0 m-1 1q 5 0 n 10 n ⊢ B 2 0 m-2 1q 1 0 n 10 n • Copy n số 0 sang phải . 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. R) δ([q 1 , 1], B) = ([q 1 , B], B, Ø) 9 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,. dạng nhất phân là một chuỗi số 0, cách nhau bởi 1 số 1. 000001001000B = 5, 2, 3 7 TM như là máy tính hàm số nguyên Xét chuỗi nhập 0100 (1-2) ta có: q 0 0100 ⊢ Bq 1 100 ⊢ B1q 2 00 ⊢ Bq 3 110

Ngày đăng: 26/01/2015, 17:13

TỪ KHÓA LIÊN QUAN

w