Dịch qua (Shifting over)

Một phần của tài liệu công cụ hỗ trợ học tập tin học lý thuyết trên web (Trang 84 - 85)

VIII. MÁY TURING

8.2.4. Dịch qua (Shifting over)

Máy Turing có thể tạo ra một không gian trống trên băng bằng cách dời các ký hiệu không trống trên băng đi sang phải hữu hạn ô. Để làm điều đó đầu đọc

Tin học Lý Thuyết trên WEB‖ phải thực hiện dịch phải, lặp lại việc lƣu ký hiệu đọc đƣợc vào bộ điều khiển và thay thế chúng bằng ký hiệu đọc đƣợc ở ô bên trái. Nếu có đủ ô trống, TM cũng có thể chuyển dịch một khối ký hiệu sang trái một cách tƣơng tự.

Ví dụ 8.5: Xây dựng TM M(Q, ∑, Γ, δ, q0, B, F) dịch toàn bộ các ký hiệu không trống trên băng sang phải 2 ô.

Ta giả sử không có Blank giữa các ký hiệu không trống, vì vậy khi đầu đọc gặp Blank thì nó đã dịch xong các ký hiệu khác trống trên băng. Tập các trạng thái Q chứa các phần tử dạng [q, A1, A2] với q = q1 hoặc q2 và A1, A2 ∈ Γ. Gọi X là

một ký hiệu đặc biệt đƣợc chấp nhận trên băng của M, nó không đƣợc sử dụng với mục đích nào khác ngoài quá trình dịch chuyển trên băng. M bắt đầu với trạng thái [q1, B, B] và hàm chuyển thực hiện nhƣ sau:

Với Ai ∈ Γ - {B, X}

1) δ([q1, B, B], A1) = ([q1, B, A1], X, R)

M lƣu ký hiệu đọc đầu tiên vào thành phần thứ 3 trong bộ điều khiển, ghi X vào ô đang đọc rồi dịch sang phải.

2) δ([q1, B, A1], A2) = ([q1, A1, A2], X, R)

M chuyển ký hiệu ở thành phần thứ 3 sang thành phần thứ 2, lƣu trữ ký hiệu đọc đƣợc vào thành phần thứ 3, viết X vào ô đang đọc rồi dịch sang phải.

3) δ([q1, A1, A2], A3) = ([q1, A2, A3], A1, R)

Bắt đầu từ bƣớc chuyển này, M lần lƣợt đọc vào một ký hiệu, ghi nó vào thành phần thứ 3, chuyển ký hiệu đƣợc ghi trƣớc đó ở thành phần thứ 3 sang thành phần thứ 2, chép lại ký hiệu ở thành phần thứ 2 vào ô đang đọc rồi dịch sang phải.

4) δ([q1, Ai - 2, Ai – 1], Ai) = ([q1, Ai - 1, Ai], Ai - 2, R) 5) δ([q1, An - 1, An], B) = ([q2, An, B], An - 1, R)

Cho đến khi M gặp B, nó dốc nốt 2 ký hiệu cuối đang giữ trong bộ nhớ để bắt đầu đi vào trạng thái kết thúc.

6) δ([q2, An, B], B) = ([q2, B, B], An, L)

Cuối cùng, tất cả các ký hiệu không trống trên băng đã đƣợc chuyển dịch sang phải 2 ô. Lúc đó nó sẽ đƣợc chuyển sang một trạng thái nào đó (có thể quay về trái, trở về đầu băng) để thực hiện một chức năng khác.

Một phần của tài liệu công cụ hỗ trợ học tập tin học lý thuyết trên web (Trang 84 - 85)