Máy Turing - băng vô hạn theo một hoặc hai hướng


11

Tôi đã thấy các máy turing ong được đại diện với băng vô hạn theo một, và theo hai hướng. Có sự khác biệt nào về sức mạnh của những cỗ máy bảo vệ như vậy không, hay về cơ bản chúng có tương đương nhau không? Trong đầu tôi nghĩ chúng tương đương nhau, vì tôi đoán rằng phải có cách nào đó để biểu diễn băng vô hạn hai chiều dưới dạng băng vô hạn một chiều, nhưng dường như tôi không thể tìm thấy bằng chứng hay ví dụ.


1
Bạn sao chép các trạng thái và ký hiệu băng, để bạn có phiên bản cho phần bên phải và phần khác cho phần bên trái. Trên băng, bạn lưu trữ các cặp biểu tượng, một bên trái và một bên phải. Bạn điều chỉnh chức năng chuyển đổi để nó chỉ thay đổi một phần của cặp tương ứng với nửa băng bạn đang làm việc. Và thêm một chút quản lý khi bạn phải thay đổi một nửa băng bạn đang xem xét. Đừng quên rằng nếu bạn gấp nửa băng bên phải sang trái, chuyển động của đầu bị đảo ngược. Vì vậy, thay đổi chuyển tiếp của bạn cho đúng trạng thái phù hợp.
babou

@babou Biến thành một câu trả lời đầy đủ?
Yuval Filmus

Câu trả lời:


12

Họ là tương đương trong sức mạnh tính toán. Bất cứ thứ gì có thể tính toán được bằng một trong hai loại máy Turing này, đều có thể tính toán được bằng loại kia. Chúng ta hãy xem làm thế nào để mô phỏng một máy Turing bằng một cuộn băng vô hạn gấp đôi, trên một máy Turing với một băng vô hạn đơn lẻ.

Ý tưởng là cắt băng vô hạn gấp đôi của bạn thành hai, để bạn có hai băng vô hạn đơn, một bên trái và một bên phải, cuối cùng bạn sẽ hợp nhất. Bạn có thể đánh dấu các đầu bằng một vị trí băng có chứa biểu tượng EOF đặc biệt. Bạn cũng nhân đôi điều khiển hữu hạn của mình để có hai điều khiển trạng thái hữu hạn giống hệt nhau. Bạn giả sử rằng bạn có một thiết bị chuyển điều khiển (xem bên dưới), do đó, khi máy bên trái cố gắng vượt ra ngoài đầu bên phải của băng, nó sẽ chuyển điều khiển sang máy bên phải, ở vị trí băng ngoài cùng bên trái của nó (ngay trước đầu bên trái của băng bên phải). Và ngược lại, khi cố gắng vượt qua đầu bên trái của băng bên phải.

Bây giờ, để phân biệt máy bên trái và bên phải, chúng tôi thay đổi tên của các trạng thái và ký hiệu băng, bằng cách lập chỉ mục chúng với và tương ứng cho máy bên trái và bên phải. Và chúng tôi thay đổi theo sự chuyển đổi của hai máy để chúng hoạt động như trước.RL

Bây giờ chúng tôi đã sẵn sàng để hợp nhất hai nửa băng, ví dụ bằng cách gấp cái bên phải lên bên trái. Cho rằng bạn lật một nửa băng bên phải, và bạn cẩn thận sửa đổi cho phù hợp các chuyển đổi, trao đổi bên phải và bên trái cho bên phải. Sau đó, bạn hợp nhất hai nửa băng thành một băng có chứa các cặp ký hiệu, một bên trái và một bên phải, mỗi thành phần có thể trống.

Bạn sửa đổi lại các hiệu ứng chuyển tiếp của cả hai máy, để các chuyển tiếp bên trái (bên phải) sử dụng và chỉ sửa đổi các phần bên trái (bên phải) của các cặp trên băng. Sau đó, bạn hợp nhất điều khiển của hai máy bằng cách kết hợp đơn giản tương ứng cho các trạng thái và cho các chuyển đổi.

Bạn thêm một tập hợp chuyển đổi cho từng trạng thái hiện có, để khi biểu tượng băng là EOF, nó sẽ quay trở lại vị trí băng trước đó (vị trí không phải EOF đầu tiên) và trạng thái thay đổi thành đối tác đối kháng của nó: nếu nó là bên trái (tương ứng bên phải) trạng thái, nó thay đổi sang đối tác bên phải (bên trái) của nó. Đó là thiết bị điều khiển đi qua.

Tôi có thể đã quên một chi tiết, nhưng đây là ý tưởng chung của việc xây dựng. Bằng chứng được để lại như một cuộc hành quyết.

Tất nhiên, băng ban đầu (đầu vào) phải được sửa đổi cho phù hợp. Nhưng điều đó có thể được thực hiện đơn giản bằng cách đặt đầu vào (nếu hữu hạn) ở bên trái (phần không bị lật) của phần cắt băng.

Sau đó, bạn bỏ trình điều khiển vít vì nó có thể gây nguy hiểm cho trẻ em.

PS Tôi chỉ cho thấy rằng băng vô hạn gấp đôi có thể được mô phỏng với một băng vô hạn đơn lẻ. Converse dường như quá rõ ràng.


@DW Cảm ơn bạn đã chỉnh sửa. Tôi nên nghĩ về việc làm nó. Khi tôi nhớ lại, tôi đã chèn dòng cuối cùng như một suy nghĩ sau trong thời gian ân hạn 5 phút sau khi chỉnh sửa. Với các quy tắc hiện có về số lần chỉnh sửa, tôi thường chờ để thu thập các thay đổi cần thiết, trước một phiên chỉnh sửa mới.
babou

Ahh, vâng, các quy tắc chỉnh sửa! Tôi không phải là người hâm mộ các quy tắc giới hạn số lần chỉnh sửa; bất cứ lúc nào nó làm cho mọi người miễn cưỡng cải thiện câu trả lời của họ có vẻ như là một mất mát cho trang web, nhưng oh, whaddya sẽ làm gì? Xin lỗi, tôi đã vượt qua số lần chỉnh sửa của bạn - tôi không muốn làm phiền bạn về số lượng công việc bạn đã đưa vào, nhưng có lẽ tôi nên hỏi trước. Cảm ơn câu trả lời tuyệt vời!
DW

Câu hỏi yêu cầu mô phỏng hiệu quả: cs.stackexchange.com/questions/28901/iêng
Ciro Santilli
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.