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 đỡ.