( CẬP NHẬT : một câu hỏi được hình thành tốt hơn được đặt ra ở đây vì các ý kiến cho câu trả lời được chấp nhận dưới đây cho thấy câu hỏi này không được xác định rõ)
Bằng chứng cổ điển về tính không thể của vấn đề tạm dừng phụ thuộc vào việc chứng minh mâu thuẫn khi cố gắng áp dụng thuật toán phát hiện tạm dừng cho chính nó làm đầu vào. Xem nền dưới đây để biết thêm thông tin.
Mâu thuẫn được chứng minh áp dụng vì một nghịch lý tự tham chiếu (như câu "Câu này không đúng"). Nhưng nếu chúng ta nghiêm cấm việc tự tham khảo như vậy (nghĩa là chấp nhận thực tế là việc tự tham khảo như vậy không thể quyết định được để dừng lại), thì chúng ta sẽ để lại kết quả gì? Là vấn đề tạm dừng cho bộ máy không tự giới thiệu còn lại có thể quyết định dừng lại hay không?
Các câu hỏi là:
Nếu chúng ta xem xét một tập hợp con của tất cả các máy Turing có thể, không tự tham chiếu (nghĩa là không lấy chúng làm đầu vào), chúng ta biết gì về vấn đề tạm dừng cho tập hợp con này?
CẬP NHẬT
Có lẽ một sự cải tổ tốt hơn về những gì tôi đang theo là một sự hiểu biết tốt hơn về những gì định nghĩa một tập hợp quyết định. Tôi đã cố gắng cô lập bằng chứng không thể thiếu cổ điển bởi vì nó không thêm bất kỳ thông tin nào về tính không ổn định ngoại trừ các trường hợp bạn tự chạy HALT.
Bối cảnh: Giả sử có mâu thuẫn rằng có một máy Turing có thể quyết định đầu vào là mã hóa cho máy Turing và , có dừng hay không . Sau đó, hãy xem xét một máy Turing lấy và và sử dụng để quyết định xem dừng hay không, và sau đó làm ngược lại, tức là dừng lại nếu không dừng lại và không dừng lại nếu dừng lại. Sau đó thể hiện một mâu thuẫn, nhưM X M ( X ) K M X Q M ( X ) K M ( X ) M ( X ) K ( K ) K nên dừng lại nếu nó không dừng lại, và không dừng lại khi nó dừng lại.
Động lực: Một đồng nghiệp đang nghiên cứu xác minh chính thức các hệ thống phần mềm (đặc biệt khi hệ thống đã được chứng minh ở cấp mã nguồn và chúng tôi muốn kiểm tra lại phiên bản đã biên dịch của nó, để vô hiệu hóa các vấn đề của trình biên dịch), và trong trường hợp của anh ta, anh ta quan tâm đến bộ chương trình điều khiển nhúng đặc biệt mà chúng tôi biết chắc chắn chúng sẽ không tự tham chiếu. Một khía cạnh của xác minh mà anh ta muốn thực hiện là liệu có đảm bảo rằng chương trình được biên dịch sẽ dừng lại nếu mã nguồn đầu vào được chứng minh là chấm dứt.
CẬP NHẬT
Dựa trên các ý kiến dưới đây, tôi làm rõ ý nghĩa của các máy Turing không tự tham khảo.
Mục tiêu là xác định nó là tập hợp không dẫn đến mâu thuẫn được nêu trong bằng chứng (xem "Bối cảnh" ở trên). Nó có thể được định nghĩa như sau:
Giả sử rằng có một máy Turing quyết định sự cố tạm dừng cho một bộ máy Turing , thì không tự tham chiếu đến nếu loại trừ tất cả các máy gọi trên (trực tiếp hoặc gián tiếp). (Rõ ràng điều đó có nghĩa là không thể là thành viên của )S S Q Q S Q S
Để làm rõ về ý nghĩa của việc gọi trên một cách gián tiếp:S
Gọi trên được biểu thị bằng máy Turing với một tập hợp các trạng thái và một đầu vào ban đầu có thể có trên băng (tương ứng với bất kỳ thành viên nào của ), với đầu ban đầu ở đầu đầu vào đó. Một máy gọi trên "một cách gián tiếp" nếu có một chuỗi các bước (hữu hạn) mà sẽ thực hiện để làm cho cấu hình của nó "đồng hình" với cấu hình ban đầu của .S Q S W Q S W Q ( S )
CẬP NHẬT 2
Từ một câu trả lời dưới đây cho rằng có vô số máy Turing thực hiện cùng một nhiệm vụ và vì vậy không phải là duy nhất, chúng tôi thay đổi định nghĩa ở trên bằng cách nói rằng không phải là một máy Turing duy nhất, mà là bộ (vô hạn) của tất cả các máy tính cùng chức năng (HALT), trong đó HALT là chức năng quyết định máy Turing tạm dừng trên một đầu vào cụ thể.Q
CẬP NHẬT 3
Định nghĩa của đồng cấu Turing Machine:
TM A đồng hình với TM B nếu đồ thị chuyển tiếp của A đồng hình với B, theo nghĩa đồng nhất tiêu chuẩn của đồ thị có các nút VÀ cạnh có nhãn. Biểu đồ chuyển tiếp (V, E) của TM sao cho V = trạng thái, E = cung tròn chuyển tiếp giữa các trạng thái. Mỗi cung được dán nhãn bằng biểu tượng (S, W, D), S = đọc băng và W = ký hiệu được ghi vào đó và D = hướng mà đầu hiển thị di chuyển đến.