為什麼停機問題是圖靈不可計算問題?
若人腦是圖靈機
那麼舉個例子:你在做一道題時,你想要知道你自己能不能在有限時間內做出這道題
但是如果這道題是證明或證偽黎曼猜想
那你就不知道你自己能不能在有限時間內做出這道題了
因為你有可能一生都做不出來,也有可能某個靈感就做出來了,這個結果你不知道
嚴謹證明
首先有結論:圖靈機可以被自然數編碼,這樣你也可以向圖靈機輸入圖靈機
構造問題“這個圖靈機在輸入他本身的結果是否不為 \(1\)”,這個問題的輸入為一臺圖靈機
這樣對於所有圖靈機,輸入它本身的結果 總是不等於 這個問題代入這個圖靈機本身的結果
先證明這個問題圖靈不可計算
反證法:若有圖靈機可以計算對於所有圖靈機的這個問題
則它也可以計算 “這個問題代入它本身”這個問題 A 的結果
則它最終反饋出來計算這個問題 A 的結果就是這個問題 A 的結果
而剛才有問題 A 代入這個圖靈機本身的結果 總是不等於 這個圖靈機代入它本身的結果
匯出矛盾
回顧這個構造過程,有一個要點:“圖靈機反饋出這個問題的結果如果是正確的,那麼它反饋出的結果一定就是這個問題真實的結果/答案”
如果存在一個圖靈機,它計算一個問題 反饋的結果總是與答案相反,那麼如上證明是不是就不成立了呢?
實際上你構造問題“這個圖靈機在輸入它本身的結果是否為 \(1\)”,上面假設的圖靈機就不能計算這個問題
更實際地,實際上這個圖靈機的假設本身都不成立,其本質就是“一個人說‘我一直在說假話’”
而原“停機問題”可以等價於這個問題
具體地,若你可以計算這個問題,那麼你先對“指定圖靈機輸入指定 輸入”後計算出這個問題的結果,以知道它是否正常接受這個輸入(圖靈機定義:若接受這個輸入,則返回 \(1\) 並停機)
若正常接受,直接模擬這個圖靈機即可(顯然的,圖靈機可以模擬另一個圖靈機);若不正常接受,返回不會停機.
但是原問題不能圖靈計算,所以這個問題也不能圖靈計算
證畢