簡體   English   中英

圖靈機的停止到底是什么?

[英]what is exactly the halting in turing machines ?

我是新手。 我讀了暫停問題,但沒有得到它實際上暗示的內容。 我已經搞砸了解釋。

誰能為我提供任何合理的解釋或至少一些細節,這將對您有很大幫助?

您可以將圖靈機視為一種可以執行程序的理論計算機。 圖靈機的程序由一組狀態以及這些狀態之間的轉換組成。 在圖靈機上運行的程序可以訪問稱為磁帶的單個輸入源,該輸入源具有程序可以處理的某些字符串(可能為空)。 圖靈機的所有程序要么return true (暫停接受), return false (暫停拒絕),要么根本不return任何內容while (true) ; return true; while (true) ; return true; 根據您的定義,機器也可能會throw異常(崩潰)。 但通常將崩潰視為try { /*crash*/ } catch (Exception) { return false; } try { /*crash*/ } catch (Exception) { return false; } ,表示當機意味着停頓。

那么,暫停問題是您是否可以為圖靈機編寫程序,其輸入是圖靈機的另一個程序以及一些輸入字符串,如果該程序返回truefalse (停止接受或停止拒絕)它已在提供的輸入上暫停,否則返回false (即,如果程序永不停止)。

事實證明,答案是圖靈機不存在這樣的通用程序。 假設一個確實存在, M 給定輸入mi ,如果m停止在i ,則接受,否則拒絕。 我們可以制作另一個專門設計來欺騙M

N(i)
1. if M(N, i) then loop forever;
2. otherwise return true

現在繼續M是否對N

  1. 假設MN在輸入i暫停。 然后N將永遠循環,而M將錯了。

  2. 假設MN永遠在輸入i上循環。 然后, N將返回true並停止,因此M將是錯誤的。

在這兩種情況下, M都會為我們的N錯誤的答案,並且由於我們除了對M進行假設外沒有做出任何假設並解決了停機問題,因此我們可以肯定地得出結論,沒有任何機器可以解決停機問題。

(如果最好不要直接引用M ,則M可以作為輸入傳遞到程序N中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM