MÁY TURING
4.2. MÁY TURING PHỔ DỤNG 1 Mở đầu:
4.2.1. Mở đầu:
Máy Turing phổ dụng là một máy Turing có thể bắt chước sự hoạt động của bất kỳ máy Turring nào. Máy Turing phổ dụng U có thể được hiểu như sau: với một cách mã hoá thích hợp ánh xạ chuyển trạng thái của máy Turing bất kỳ và từ ω
trên bảng chữ vào. Với từ đã mã hoá này, máy Turing phổ dụng U dừng khi và chỉ
khi máy Turing M dừng với từ ω. Ta có thể xem máy Turing phổ dụng như là mô hình toán học của máy tính điện tử ngày nay. Các máy này thực hiện công việc bằng cách mã hoá chương trình theo ngôn ngữ bên trong được gọi là ngôn ngữ
máy.
Tập các ký hiệu ghi lên băng là hữu hạn nên ta có thể ký hiệu chúng như sau: S0=B, S1, S2, …, Sm và có thể mã hoá bằng bộ các chữ số 1. Chẳng hạn, B−1, S1−11, S2−111, …, Sm−1m+1.
Tương tự, tập các trạng thái là hữu hạn và ta cũng có thể mã hoá chúng: q0−1, q1−11, q2−111, …, qn−1n+1.
Cuối cùng hai ký hiệu L và R cũng có thể mã hoá: L−1, R−11.
Bây giờ để mã hoá ánh xạ chuyển trạng thái của máy Turing, ta sử dụng bảng biểu diễn ánh xạ này. Trong bảng, các cột được ký hiệu bởi các ký hiệu có thể
ghi lên băng, các dòng được ký hiệu bởi các trạng thái. Tiếp theo liệt kê các phần tử của bảng theo dòng cùng với các chỉ số dòng và cột tương ứng của chúng, thứ tự
là các phần tử của dòng 1, dòng 2, …từ trái sang phải. Chẳng hạn, trên một dòng xuất hiện bộ <qi, Sj, Sk, C, qh> có nghĩa là δ(qi, Sj)=<qh, Sk, C>. Giữa các dãy mã
của các bộ năm <qi, Sj, Sk, C, qh> có chèn hai chữ số 0 và giữa mã các ký hiệu trong cùng một bộ năm được chèn bởi một chữ số 0. Máy Turing M được mã hoá như vậy ký hiệu là [M].
Ta chấp nhận mà không chứng minh ở đây là với máy Turing M bất kỳ tồn tại một máy Turing tương đương chỉ có một trạng thái kết thúc, vì vậy ta có thể
xem q0 là trạng thái đầu và q1 là trạng thái kết thúc duy nhất của máy Turing M.
Thí dụ 7: Cho máy Turing M với ánh xạ chuyển được cho bởi bảng sau:
B S1
q0 <S1, R, q1> <S1, R, q0> q1 <S1, L, q2> q2 <S1, L, q2> Các phần tử của bảng được sắp xếp thành dãy dưới đây:
<q0, B, S1, R, q1>, <q0, S1, S1, R, q0>, <q1, S1, S1, L, q2>, <q2, S1, S1, L, q2>. Dãy này sẽđược mã hoá dưới dạng xâu nhị phân:
[M] = 10101101101100101101101101001101101101011100111011011010111. Nếu trên băng vào có ω=S1S1BS1 thì mã tương ứng của nó là:
[ω] = 1101101011.