Có phải mọi ngôn ngữ đệ quy được công nhận bởi một máy Turing không?


15

Chúng tôi nói rằng Turing Machine là trọng số nếu M tạm dừng cho mọi cấu hình bắt đầu (đặc biệt, nội dung băng và trạng thái ban đầu có thể tùy ý). Có phải mọi ngôn ngữ đệ quy được công nhận bởi một máy Turing không? (tức là nếu có một TM chấp nhận L , thì cũng có TM sinh tử chấp nhận L )MMLL


1
Bạn có thể cung cấp (các) tài liệu tham khảo cho các máy Turing Mortal không? Cảm ơn :)
Tayfun Trả tiền vào

Làm thế nào mà trạng thái ban đầu có thể tùy ý? Không phải máy Turing chết người chỉ là một TM dừng lại trên mỗi đầu vào sao?
Philip White

6
@Marcin: bạn có quan tâm đến các máy dừng trên tất cả các cấu hình, bao gồm cả các cấu hình vô hạn hoặc chỉ các máy dừng trên tất cả các cấu hình hữu hạn không?
Joshua Grochow

1
Tôi nghĩ rằng ông có nghĩa là cấu hình bắt đầu hữu hạn. Đúng?
Philip White

1
@Philip: Chỉ cần tưởng tượng máy ở trạng thái và cấu hình tùy ý, sau đó chạy tính toán chuyển tiếp từ thời điểm đó theo các quy tắc thông thường.
Joshua Grochow

Câu trả lời:


14

Dưới đây là hai kết quả được trích dẫn trong Charles E. Hughes "Không thể giải quyết được sự hội tụ hữu hạn cho việc ghép, chèn và các toán tử xáo trộn giới hạn" :

Định lý 3 : Lớp máy Turing chết người chính xác là lớp máy Turing có thời gian chạy liên tục.

st cho tất cả các cấu hình ban đầu C , M tạm dừng ở không quá s bước }ConStT= ={M|SCMS}

Vì vậy, tôi nghĩ rằng chúng ta có thể lấy được những điều sau: cho một chết máy Turing , chúng ta hãy M ' , s là tương ứng liên tục TM thời gian và thời gian chạy của nó. Các ngôn ngữ được công nhận bởi M trên bảng chữ cái Σ = { 0 , 1 } là chính xác:MM',SMΣ= ={0,1}

{xy||x|SM' chấp nhận x không quá s bước,y{0,1}*}

Vì vậy, lớp ngôn ngữ được công nhận bởi các máy Turing trọng là một tập hợp con của lớp ngôn ngữ thông thường. Ví dụ, bạn có thể sử dụng để đánh lừa mọi TM thời gian liên tục.L= ={(0|1)*1*}

Mọi thứ trở nên thú vị khi chúng ta cố gắng quyết định xem một máy Turing có phải là phàm nhân hay không bởi vì chúng ta phải đối mặt với băng và trạng thái ban đầu tùy ý (hữu hạn).

Định lý 4 : tập hợp các máy Turing sinh tử được liệt kê đệ quy.


9

Tôi nghĩ có. Chúng ta phải làm cho mỗi L một M chấp nhận nó theo cách sao cho tất cả các bước di chuyển của anh ta được ghi lại trên một cuộn băng và sau mỗi "bước chính", nó sẽ kiểm tra xem tất cả các bước của anh ta cho đến khi điểm đó có thực sự hợp lệ hay không. Dưới đây tôi đưa ra một bản phác thảo về cách tạo ra một chiếc máy như vậy (có thể chứa một số lỗi nhỏ nhưng ý tưởng chính sẽ ổn).

Suy ra một máy chấp nhận L bởi T. Bây giờ chúng tôi mô tả M. Đầu tiên, chúng tôi sao chép x vào một băng nhớ riêng. Sau đó, bất cứ khi nào T thực hiện một động thái, chúng tôi ghi nó vào băng nhớ này, sau x. Sau đó, chúng tôi sao chép toàn bộ nội dung của băng T vào một số băng hoạt động thêm và kiểm tra xem từ cấu hình ban đầu T có thực sự trở về trạng thái hiện tại không sau các bước được ghi trên băng nhớ. Nếu không, chúng tôi dừng lại. Nếu có, chúng tôi tiếp tục.


trong khi viết câu trả lời của tôi, tôi đọc câu trả lời của bạn ... điều ngược lại :-) ... có lẽ tôi đang hiểu sai một chuỗi được chấp nhận bởi một máy Turing chết người là gì?
Marzio De Biasi

2
@MarzioDeBiasi: Khái niệm người chết được xem xét trong bài báo đó yêu cầu dừng máy trong một số bước hữu hạn ngay cả khi nó được bắt đầu với một lượng dữ liệu tùy ý vô hạn trên băng của nó. Nhưng tôi nghĩ rằng việc xây dựng của domotorp tại hầu hết các công trình cho các cấu hình hữu hạn. Ví dụ: trong cấu hình có đầu vào có độ dài vô hạn, M của domotorp bị kẹt trong một chuỗi vô hạn sao chép đầu vào có độ dài vô hạn vào băng nhớ riêng biệt ...
Joshua Grochow

Vâng, sự khác biệt là tôi cho rằng mọi nội dung băng là hữu hạn và chúng tôi biết ranh giới ở đâu. Mặt khác, TM của người chết chỉ là hằng số, như bạn viết.
domotorp
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.