Làm thế nào để ánh xạ các băng của một máy Turing băng k-băng vào một băng duy nhất của một máy Turing Máy 1 băng


11

Tôi đang đọc Sipser và tôi cảm thấy khó hiểu quá trình này là gì nếu bạn đưa cho tôi k Máy Turing có băng k, tôi có thể nhổ ra một máy Turing tương đương chỉ với một băng. Một ví dụ sẽ tốt đẹp. Trên thực tế, một ví dụ điển hình cho thấy cách đi từ TM có băng đến băng có 1 băng là điều tôi thực sự đang tìm kiếm. Tôi đã không thể tìm thấy một cho đến nay. Tôi cũng không tìm kiếm bất kỳ bằng chứng nào.k


"Máy tương đương" nghĩa là gì? Đầu vào là gì và đầu ra là gì? (Có lẽ bạn có nghĩa là một máy Turing có băng ?)k
Yuval Filmus

Đúng. Một máy quay với k băng.
dùng678392

Câu trả lời:


17

Một câu trả lời không biết xấu hổ sao chép từ chính tôi :

Máy Turing nhiều băng hầu hết giống như máy băng đơn, ngoại trừ chúng tôi có chức năng chuyển tiếp mở rộng trong đó là số lượng băng. Vì vậy, ở mỗi trạng thái, chức năng chuyển đổi đọc nội dung của từng băng, chuyển sang trạng thái mới, (có thể) viết một cái gì đó trên mỗi băng và di chuyển từng đầu - giống như một TM thông thường, ngoại trừ bây giờ chúng ta có nhiều thứ để đọc, viết và di chuyển.Q×ΓkQ×Γk×{L,R}kk

Như câu hỏi của bạn cho thấy, một máy như vậy có thể được mô phỏng bằng một TM băng đơn . Thậm chí tốt hơn, nó có thể được thực hiện chỉ với sự chậm lại bậc hai (vì vậy đối với các lớp đóng đa thức, nó đủ để nói về các máy băng đơn).

Bằng chứng cho điều này có phần liên quan và dễ dàng có sẵn với một tìm kiếm trên web đơn giản, vì vậy tôi sẽ chỉ phác thảo ánh xạ chính của các băng thành một băng duy nhất.k

Ý tưởng cơ bản là khá đơn giản; chúng tôi chỉ cần thêm một vài biểu tượng mới và theo dõi từng băng và lần lượt từng băng. Ở mỗi bước trong tính toán, chúng tôi chỉ có thể truy cập một lượng hữu hạn của bất kỳ băng nào, vì vậy chúng tôi chỉ cần lưu trữ nhiều thông tin này về mỗi băng. Do đó, đối với mỗi chúng tôi thêm một ký hiệu mới vào sẽ cho biết vị trí của đầu (cho mỗi băng) tại bất kỳ điểm nào trong tính toán. Chúng tôi cũng giới thiệu một ký tự phân cách cho sẽ chỉ ra điểm bắt đầu và kết thúc của băng "ảo". Cho đầu vàoγΓγ_Γ#Γω=ω1ωn(chúng ta có thể giả định rằng ngay cả trên máy đa băng tất cả các đầu vào là trên băng đầu tiên - chứng minh tại sao là một bài tập tốt) trên máy đa băng, máy đơn băng của chúng tôi sẽ có đầu vào

#ω1_ωn#_#_##_#k sections, one per tape

Sau đó, chúng tôi sử dụng trạng thái của máy băng đơn để mã hóa trạng thái của máy đa băng đó và những gì người đứng đầu đang nhìn. Chức năng chuyển tiếp của máy đơn băng là một mô phỏng nhiều tầng của hàm chuyển tiếp đa băng, nơi mà chúng tôi thực hiện các hành động băng khác nhau một cách thích hợp, di chuyển lên băng duy nhất để mỗi phần lần lượt. Các nếp nhăn duy nhất còn lại là thay đổi mọi thứ khi chúng ta hết dung lượng trong một phần (nhưng máy phụ như vậy là một bài tập đơn giản) - chúng tôi không bao giờ giảm kích thước của mỗi phần.k

Một ví dụ đơn giản (hy vọng):

Giả sử chúng ta có TM 3 băng, trong đó bảng chữ cái đầu vào chỉ là , bảng chữ cái băng là và đầu vào là . Trạng thái băng ban đầu của máy trông giống như: " " là để biểu thị vị trí của đầu đọc / ghi trên mỗi băng.Σ={0,1}Γ={0,1,}ω=10101

Tape 1:10101Tape 2:Tape 3:

Để xây dựng máy băng đơn kết hợp, chúng ta cần thêm các ký hiệu mới vào bảng chữ cái băng:

  1. Chúng ta cần một biểu tượng biểu thị điểm bắt đầu và kết thúc của băng mô phỏng
  2. Đối với mỗi biểu tượng trong chúng tôi cũng cần một phiên bản cho biết rằng đầu băng mô phỏng nằm ở ký tự đó trên băng mô phỏng.Γ

Vì vậy, đối với máy băng đơn, bảng chữ cái băng mới của chúng tôi là . Trạng thái ban đầu của băng là: Lưu ý sự khác biệt giữa đầu của máy ( ) và đầu mô phỏng của 3 băng mô phỏng (các ký tự được gạch chân). Tất nhiên băng kéo dài vô tận bên phải như bình thường. Tôi cũng đã lừa dối nhẹ nhàng bằng cách di chuyển đầu băng đến ký tự đầu tiên trên chuỗi đầu tiên; Nghiêm túc, nó nên bắt đầu từ ô ngoài cùng bên trái, nhưng đây là một kỹ thuật tầm thường.Γ={0,1,,0_,1_,_,#}

#1_0101#_#_#

Vì vậy, chúng tôi có ba phần được đánh dấu (giữa các dấu ), sẽ tương ứng với 3 băng của máy ban đầu.#

Bây giờ hãy tạo một hành động cho máy. Giả sử máy ban đầu đọc từ băng thứ nhất, nếu nhìn thấy , nó ghi trên băng thứ hai, nếu thấy thì ghi trên băng thứ ba. Mỗi lần đọc hoặc viết, đầu di chuyển sang phải.1101

Vì vậy, sau "bước" đầu tiên (có lẽ cần một số trạng thái và chuyển tiếp trong máy thực tế), các băng phải có trên băng thứ hai, và đầu thứ nhất và thứ hai sẽ di chuyển đúng một bước:1

Tape 1:10101Tape 2:1Tape 3:

Trong lần thứ hai đi vòng quanh, băng thứ nhất đọc số , vì vậy chúng tôi ghi vào băng thứ ba thay thế:0

Tape 1:10101Tape 2:1Tape 3:1

Máy băng đơn mô phỏng điều này bằng cách di chuyển phần gạch chân (bằng cách sử dụng phiên bản thay thế của các ký tự trong và viết vào băng mô phỏng thích hợp. Vì vậy, sau bước đầu tiên, băng kết hợp sẽ trông như sau:Γ

#10_101#1_#_#

Sau bước thứ hai:

#101_01#1_#1_#

Tất nhiên đây là chế độ xem cấp cao của quy trình - Tôi đã không cố gắng giải thích cách xây dựng các trạng thái hoặc cách mỗi băng mô phỏng dài hơn (đối với điều này, bạn cần một thói quen nhỏ để kiểm tra xem bạn có chạy vào kết thúc băng mô phỏng, sau đó di chuyển mọi thứ sang bên phải một bước và vắt vào một chỗ trống mới - tức là nó chỉ thêm các ô băng mô phỏng khi cần thiết).


2
Ngoài ra, sử dụng các "bản nhạc " riêng biệt để ghi các băng riêng biệt cạnh nhau trong cùng một không gian. Tuy nhiên, điều đó liên quan đến việc giới thiệu một bảng chữ cái mới.
Hendrik ngày

2
@ user678392 Đi qua quá trình xây dựng một cách chi tiết và viết tất cả lên đây sẽ mất ít nhất vài giờ. Nếu bạn thậm chí sẽ không giải thích ngay cả phần nào bạn không hiểu, tại sao mọi người nên thay mặt bạn làm việc đó? Và nếu ai đó làm gì? Bạn sẽ nói, "Tôi không hiểu điều đó. Ai đó làm điều đó."
David Richerby

1
@ user678392 Cảm ơn. Và, chỉ cần làm rõ, đó có phải là tiếng Anh mà bạn gặp khó khăn (nghĩa là việc đọc lại có khả năng giúp đỡ) hay bạn cần chi tiết hơn trong phần giải thích?
David Richerby

1
@ user678392, tôi đã thêm một ví dụ về chế độ xem cấp cao về các bước đầu tiên của chuyển đổi và đầu ra thực tế trên (các) băng. Tôi đã tránh thảo luận về cách xây dựng tập hợp các trạng thái mới, vì điều đó rất phức tạp và bạn sẽ không nhận được lời giải thích tốt hơn những gì trong Sipser hoặc tương tự - nó vốn dĩ rất khó hiểu và toán học.
Luke Mathieson

1
@RomaKarageorgievich Có vẻ như một số bằng chứng rõ ràng hơn đã biến mất trong 5 năm qua (không tin tưởng vào internet: D). Rõ ràng nhất tôi tìm thấy là ở đây (cảnh báo, tệp .doc!). Bằng chứng trong "Giới thiệu về ngôn ngữ và lý thuyết tính toán" của Martin là khá tốt, nếu bạn có quyền truy cập vào cuốn sách đó (trang 244 trong Ed lần thứ 4). Bằng chứng trong "Giới thiệu về lý thuyết tính toán" của Sipser là đủ (trang 177 trong phần 3).
Luke Mathieson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.