Máy Turing

Một phần của tài liệu bài giảng automat (Trang 80)

2.1. Định nghĩa

Trước khi đưa ra định nghĩa, chúng ta mô tả sơ lược về máy Turing (TM). Có thể hình dung TM như hình vẽ sau đây:

 B B X1 X2  Xi  Xn B B 

Bộ phận

điều khiển hữu hạn

- 81 -

TM gồm 1 bộ phận điều khiển hữu hạn (finite control) có thể ở 1 trong các trạng thái thuộc tập hợp hữu hạn trạng thái, gồm 1 băng (tape) được chia thành các ô (cell), mỗi ô có thể lưu giữ 1 ký hiệu thuộc tập hợp hữu hạn các ký hiệu.

Khởi đầu dữ liệu vào (input) là 1 xâu ký hiệu vào (input symbol) được đặt trên băng có độ dài hữu hạn được chọn từ 1 bộ chữ cái (alphabet) nào đó. Những ô còn lại của băng, khi được mở rộng vô hạn theo cả 2 phía trái và phải, lúc đầu chứa ký hiệu đặc biệt gọi là ký hiệu trống (blank). Ký hiệu trống là 1 ký hiệu băng (tape symbol) không phải là ký hiệu vào. Trong các ô của băng có thể chứa các ký hiệu khác ngoài những ký hiệu vào và ký hiệu trống.

Có một đầu đọc-ghi (head) luôn chỉ vào một trong các ô của băng, khi chỉ vào ô nào thì gọi là TM đang quét (scan) ô đó. Ban đầu, đầu đọc-ghi chỉ vào ô chứa ký hiệu đầu của xâu vào.

Một bước chuyển (move) của TM là 1 hàm theo trạng thái của bộ phận điều khiển và ký hiệu băng đang được quét. Trong 1 bước chuyển, TM sẽ:

- Thay đổi trạng thái. Trạng thái tiếp theo có thể là trạng thái nào đó thuộc tập hợp hữu hạn trạng thái của TM, cũng có thể là trạng thái hiện tại này.

- Ghi 1 ký hiệu băng vào ô đang được quét. Ký hiệu băng này thay thế ký hiệu băng đang có trong ô đó. Ký hiệu được ghi có thể là ký hiệu nào đó thuộc tập hữu hạn ký hiệu, cũng có thể là chính ký hiệu đang ở ô đó.

- Di chuyển đầu đọc-ghi sang trái hoặc sang phải.

Định nghĩa: Máy Turing là 1 bộ có thứ tự M=<, Q, , , q0, B, F>, trong đó:

-  là tập hợp hữu hạn khác rỗng các ký hiệu vào - Q là tập hợp hữu hạn khác rỗng các các trạng thái -  là tập đầy đủ các ký hiệu băng sao cho  

- q0 là 1 trạng thái thuộc Q gọi là trạng thái ban đầu - B  và B  là ký hiệu trống

- 82 -

-  là hàm chuyển vị (transition function), có đối là cặp gồm trạng thái q và ký hiệu băng X, giá trị của (q, X) nếu được xác định sẽ là một bộ ba (p, Y, D), trong đó:

p  Q, là trạng thái tiếp theo của TM

Y , là ký hiệu sẽ được ghi vào ô quét thay thế ký hiệu đang ở ô đó. D  {L, R}, chỉ hướng di chuyển của đâdu đọc (L: trái, R: phải)

2.2. Mô tả tức thời cho máy Turing

Xét hoạt động của máy Turing M=<, Q, , , q0, B, F>. Mô tả tức thời (instantaneous description: viết tắt là ID) cho máy Turing là tìm cách biểu diễn sự hoạt động của máy. Vì M có băng dài vô tận về 2 phía, mà M chỉ có thể thăm một số hữu hạn các ô trên băng sau một số hữu hạn bước, cho nên chỉ cần mô tả hoạt động của M đối với những ô được thăm trên băng.

Một ID được ký hiệu bởi một dãy ký hiệu X1X2…Xi-1qXiXi+1…Xn trong đó: - q  Q là trạng thái của M

- đầu đọc-ghi đang quét ký hiệu thứ i tính từ trái sang

- X1X2…Xn là phần băng nằm giữa chứa các ký hiệu mà TM thăm. Một bước chuyển trực tiếp của M từ thời điểm này sang thời điểm khác, ta sử dụng ký hiệu ╞ , còn để biểu diễn quá trình chuyển từ một ID này đến một ID khác ta dùng ký hiệu ├ và gọi là 1 suy dẫn. Như vậy 1 suy dẫn là 1 dãy liên tiếp các bước chuyển trực tiếp của M.

Giả sử (q, Xi)=(p, Y, L), nghĩa là bước tiếp theo M sẽ di chuyển sang trái, thì bước chuyển trực tiếp viết như sau:

X1X2…Xi-1qXiXi+1…Xn╞ X1X2…Xi-2pYXi+1…Xn

Cần chú ý là bước chuyển này phản ánh việc chuyển trạng thái từ q sang p và đầu đọc-ghi bây giờ chỉ vào ô i-1. Có 2 ngoại lệ phải xét:

- Nếu i=1 thì M di chuyển đến ô trống bên trái X1 và bước chuyển viết như sau:

- 83 -

- Nếu i=n và Y=B thì ký hiệu B được ghi chồng lên Xn sẽ nối với dãy ô trống vô tận ở bên phải và không xuất hiện trong ID tiếp theo, bước chuyển viết như sau:

X1X2…Xn-1qXn ╞ X1X2…Xn-2pXn-1

Bây giờ giả sử (q, Xi)=(p, Y, R), nghĩa là bước tiếp theo M sẽ di chuyển sang phải, thì bước chuyển trực tiếp viết như sau:

X1X2…Xi-1qXiXi+1…Xn╞ X1X2…Xi-1YpXi+1…Xn

Lần này bước chuyển phản ánh việc chuyển trạng thái từ q sang p và đầu đọc-ghi bây giờ chỉ vào ô i+1. Có 2 ngoại lệ phải xét:

- Nếu i=n thì ô trống bên phải Xn không phải là thành phần của ID nên bước chuyển viết như sau:

X1X2…Xn-1qXn ╞ X1X2…Xn-1YpB

- Nếu i=1 và Y=B thì ký hiệu B được ghi chồng lên X1 sẽ nối với dãy ô trống vô tận ở bên trái và không xuất hiện trong ID tiếp theo, bước chuyển viết như sau:

qX1X2…Xn ╞ pX2…Xn

Ví dụ: Xây dựng TM đoán nhận ngôn ngữ {0n1n n>0}.

Giải: Để xây dựng TM, trước hết phải hình dung cách hoạt động của TM để đoán nhận ngôn ngữ đã cho như thế nào. Trên băng vào sẽ đặt một xâu bit 0, 1. Máy TM sẽ khởi đầu từ bit trái của xâu vào thay bit 0 thành X rồi di chuyển sang phải vượt qua các ký hiệu 0 và Y cho đến khi gặp bit 1 thì thay bằng Y rồi lại chuyển sang trái vượt qua Y và 0 cho đến khi gặp X và tìm bit 0 ở bên phải của X nếu có để thay 0 bằng X, quá trình tiếp tục cho đến khi TM thay thế tất cả 0 thành X đồng thời với 1 thành Y thì xâu vào được chấp nhận, ngược lại thì bác bỏ. Máy Turing được xây dựng như sau:

M=<, Q, , , q0, B, F>.

={0, 1}

Q={q0, q1, q2, q3, q4}

={0, 1, X, Y, B} F={q4}

- 84 - Hàm chuyển  cho bởi bảng sau:

Trạng thái Ký hiệu 0 1 X Y B q0 (q1, X, R)   (q3, Y, R)  q1 (q1, 0, R) (q2, Y, L)  (q1, Y, R)  q2 (q2, 0, L)  (q0, X, R) (q2, Y, L)  q3    (q3, Y, R) (q4, B, R) q4     

M đoán nhận xâu vào 0011 với dãy bước chuyển như sau:

q00011 ╞ Xq1011 ╞ X0q111 ╞ Xq20Y1 ╞ q2X0Y1 ╞ Xq00Y1 ╞ XXq1Y1 ╞ XXYq11 ╞ XXq2YY ╞ Xq2XYY ╞ XXq0YY ╞ XXYq3Y ╞ XXYYq3B ╞ XXYYBq4B

Đối với xâu vào 0010 M đoán nhận tương tự, giống như xâu 0011 cho đến khi ID XXYq10 thì M quét 0 cuối cùng và phải chuyển sang phải, ở lại trạng thái q1, có ID tiếp theo là XXY0q1B. Trong trạng thái q1, M không có bước chuyển nào khi quét ký hiệu B, vì thế M bị “treo” và không đoán nhận được xâu 0010.

2.3. Ngôn ngữ của máy Turing

Cho máy Turing M=<, Q, , , q0, B, F>. M đoán nhận ngôn ngữ như sau: xâu vào  cần đoán nhận được đặt trên băng và đầu đọc-ghi bắt đầu từ ký hiệu đầu trái của  với trạng thái xuất phát q0. Nếu cuối cùng M đến được trạng thái kết thúc thuộc F thì xâu vào  được coi là đoán nhận được.

Tập tất cả các xâu đoán nhận được bởi M gọi là ngôn ngữ đoán nhận được bởi M và ký hiệu là L(M). Có thể định nghĩa L(M) như sau:

L(M)={*  q0├p: , *, p  F}

Ngôn ngữ đoán nhận được bởi TM được gọi là ngôn ngữ kể được đệ quy. Khi đoán nhận ngôn ngữ máy TM không phải lúc nào cũng đoán nhận được thành công xâu vào, vì vậy có thể xảy ra trường hợp TM không dừng. Những máy TM luôn dừng bất kể có hay không đoán nhận được xâu vào là mô hình cho thuật toán dùng để xét một bài toán có giải được hay không giải được.

- 85 -

Một phần của tài liệu bài giảng automat (Trang 80)