Có thể giải quyết vấn đề tạm dừng cho tất cả các đầu vào ngoại trừ mã của máy không?


9

Câu hỏi này xảy ra với tôi về vấn đề tạm dừng và tôi không thể tìm thấy câu trả lời hay trên mạng, tự hỏi liệu ai đó có thể giúp đỡ.

Có thể là vấn đề tạm dừng có thể quyết định đối với bất kỳ TM nào trên bất kỳ đầu vào nào miễn là đầu vào không phải là chính TM? Về cơ bản:

Halts(TM, I)
    IF TM == I:
        Undecidable, return a random result/throw an exception, whatever
    ELSE:
        Solve the problem

Halts'(X)
    IF Halts(X, X):
        Loop infinitely
    ELSE:
        Print 'done'

Điều này dường như giải quyết mâu thuẫn. Khi chúng ta gọi Halts nghịch lý '(Halts'), chúng ta không thể mong đợi hành vi nhất quán, nhưng tất cả các cuộc gọi khác đến Halts (và Halts ') đều hợp pháp và có thể giải quyết được.

Tôi hiểu rằng điều này rất không trực quan. Nếu một số mẫu trong các bit có thể tiết lộ hành vi của tất cả các chương trình có thể, tại sao nó đột nhiên sụp đổ khi TM và đầu vào khớp nhau? Nhưng về mặt toán học chúng ta có thể loại bỏ điều này như một khả năng không?

Và vấn đề tạm dừng giảm này sẽ không thú vị chút nào. Ngay cả khi có một số chương trình có ý nghĩa lấy mã riêng làm đầu vào, nó vẫn có thể được viết lại một cách tầm thường để hoạt động trên đầu vào hơi khác. Tất nhiên đề xuất này làm cho nó thậm chí ít dễ hiểu hơn tại sao một giải pháp tạm dừng có thể tồn tại với một cảnh báo này nhưng một lần nữa, chúng ta có thể thực sự loại bỏ khả năng này về mặt toán học không?

Cảm ơn vì bất kì sự giúp đỡ.


7
Sự quyết định không bị ảnh hưởng bởi những thay đổi hữu hạn.

có vô số # TM tương đương và không có cách nào (thể quyết định) để phát hiện các TM tương đương (nghĩa là về cơ bản giống như vấn đề tạm dừng). tuy nhiên có một số "sơ hở" phức tạp; hãy thử Trò chuyện Khoa học Máy tính để phân tích sâu hơn về vấn đề tạm dừng liên quan đến việc tự động chứng minh, v.v ... có thể thử đưa câu trả lời này vào câu trả lời ...
vzn

Cảm động câu hỏi của tôi để rõ ràng hơn một chút, xin lỗi nếu tôi đánh lừa bất cứ ai.
CS101

Câu trả lời là không, như trong câu trả lời này cstheory.stackexchange.com/questions/2853/ Khăn
Mohammad Alaggan

Câu trả lời:


4

Nhưng chúng tôi có thể dễ dàng nhận được hạn chế của bạn. Giả sử một chương trình G mà đảo ngược các bit của đầu vào và gọi bạn H trên kết quả, sau đó xác định !H với tất cả các bit đảo ngược (tức là 0 trong 1 giây, 1 giây cho 0 giây). Sau đó, chúng ta có thể gọi bạn H với G(!H) và chúng tôi đang trở lại vấn đề ban đầu.


Cảm ơn bạn. Sau khi đọc câu trả lời của @David Richerby, tôi bắt đầu nghĩ rằng đây là câu trả lời. Nếu chúng ta có thể xây dựng một Q 'tương đương về chức năng cho tất cả các chương trình Q, thì chúng ta có thể một lần nữa quyết định khả năng tạm dừng cho tất cả các vấn đề, không chỉ các vấn đề ngoài đường chéo. Tôi thấy đây là những gì bạn đang nói.
CS101

12

HQMHM(M)QQQ(Q) tạm dừng nếu, và chỉ nếu, nó không ngừng.

Có thể là vấn đề tạm dừng có thể quyết định đối với bất kỳ TM nào trên bất kỳ đầu vào nào miễn là đầu vào không phải là chính TM?

HHQ,QH

HQQwQ(w)Q(w)H


3
Chỉ riêng đoạn cuối cùng có thể đủ để trả lời câu hỏi: bạn không thể mã hóa tất cả các mã hóa của các máy tương đương bất kể sự thích ứng hữu hạn nào (dựa trên ngữ nghĩa) mà bạn muốn thực hiện. (Điều đó không có nghĩa là phần còn lại của bài viết của bạn không đáng đọc!)
Raphael

Cảm ơn bạn đã trả lời. Không phải là không có khả năng về việc liệu các chương trình có tương đương về mặt chức năng hay không xuất phát từ sự không ổn định của vấn đề tạm dừng? Tại sao điều này sẽ không được lý luận tròn?
CS101

1
HALTHALT

Tự bối rối, quên đi vấn đề tạm dừng hoàn toàn vẫn giống như mọi phỏng đoán của tôi. Cảm ơn.
CS101
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.