簡體   English   中英

圖靈機和可判定性

[英]Turing machines and decidability

已知存在可判定問題、半可判定問題和不可判定問題。 TM(圖靈機)接受的語言是 r.e。 set(遞歸可枚舉),在某些情況下,也是一個遞歸集。 一個例子是 r.e。 (但不是遞歸的)是接受某個(固定)字符串“x”的 TM 集。 解釋是這樣的:“這個問題是半可判定的(即集合是 r.e.),因為如果某個 TM_i(i 是它在哥德爾枚舉中的索引)屬於該集合,那么它可以通過算法(procedure, TM, ecc.) 列出所有接受“x”的 TM,並繼續這樣做,在某一點上我將能夠找到 TM_i。 但是,如果 TM_i 不屬於該集合,那么我無法得出任何結論:列出所有接受“x”的 TM 的算法將永遠持續下去。”

現在我試着從不同的角度思考同樣的問題。 假設我有一個隨機圖靈機 TM_j,我想確定它是否屬於上述集合。 我可以將字符串“x”作為輸入給 TM_j,如果它在“接受”state(最終狀態)處停止,那么我知道 TM_j 接受“x”,因此是集合的一部分。 另一方面,如果 TM_j 不接受“x”,它可能會在某個不是最終的 state 處停止(因此我知道 TM_j 拒絕“x”),或者它可能會繼續循環下去。 在第二種情況下,我不能通過觀察兩個相同的配置來列出 TM 在執行期間的所有配置並得出結論它永遠循環(因此拒絕“x”)嗎? 如果“c1, c2, c3, c4, . . . , c21, c3, . . 。” 是 TM_j 的配置列表,我觀察到 c3 是重復的,並且由於機器是確定性的,c3 后面會跟着 c4,c4 依次給出 c5,依此類推,直到 c21,然后又是 c3。 . . 因此,我可以得出結論,TM_j 循環,因此“x”不能被它接受,因為它永遠不會到達最終(接受)state。 然而,這意味着給定一個通用的 TM,我可以確定它是否屬於該集合,因此該集合是遞歸的而不是遞歸可枚舉的!

有人可以幫助我了解我的錯誤在哪里嗎?

錯誤是假設永久循環的 TM 將具有重復的配置(其磁帶 + 其當前狀態)。

您是正確的,如果確定性圖靈機兩次達到特定配置,它將永遠循環。

考慮機器A

Write 0 to the output tape.
While the input tape is 'x':
  Increment the output tape in binary
Otherwise reject

這台機器永遠不會在輸入'x'時停止,但也永遠不會重復配置(它的狀態會重復,但它的磁帶永遠不會)。

而且,如果您認為僅憑狀態就足以確定機器是否永遠循環,請考慮B

Write 0 to the output tape.
While the input tape is 'x' and the output tape is less than some specific but arbitrarily large number k:
  Increment the output take in binary
If the input tape is 'x', accept
Otherwise reject

這台機器將重復其狀態任意次數,最后停止並接受'x'

暫無
暫無

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

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