【计算理论】可判定性 ( 对角线方法 | 使用对角线方法证明 通用任务图灵机 语言 不可判定 )
文章目錄
- 一、存在性證明
- 二、證明 通用任務圖靈機 ATM\rm A_{TM}ATM? 語言 對應的計算模型一定是 不可判定 ( 對角線法 )
一、存在性證明
存在性證明 : 肯定存在一些語言 , 不能被圖靈機接受 ;
使用 語言 可以表示 計算問題 , 計算問題的個數與 實數 一樣多 , 是 不可數的 ;
圖靈機 的個數 與 自然數 一樣多 , 是 可數的 ;
計算問題 要比 計算模型 多很多 , 計算問題 與 圖靈機 之間不是 一一對應的 ;
肯定存在一個計算問題 , 找不出與之對應的圖靈機 , 因此該計算問題肯定是 不可計算的 ,
二、證明 通用任務圖靈機 ATM\rm A_{TM}ATM? 語言 對應的計算模型一定是 不可判定 ( 對角線法 )
ATM\rm A_{TM}ATM? 語言簡介 :
將計算問題進行形式化 , M\rm MM 是圖靈機 , w\rm ww 是字符串 , 如果 M\rm MM 圖靈機 接受 w\rm ww 是字符串 , 將所有的可接受的 w\rm ww 是字符串放在一個集合中 , 組成的語言 稱為 ATM\rm A_{TM}ATM? 語言 ;
ATM={<M,w>∣圖靈機M接受w字符串}\rm A_{TM} = \{ <M , w> | 圖靈機 M 接受 w 字符串 \}ATM?={<M,w>∣圖靈機M接受w字符串}
ATM\rm A_{TM}ATM? 語言 稱為 圖靈機可接受的 ;
ATM\rm A_{TM}ATM? 語言 是可計算的 , 但 不是可判定的 ;
該結論可以區分 可判定語言 與 可計算語言 ;
使用 對角線法 證明 ;
與博客 【計算理論】可判定性 ( 對角線方法 | 證明自然數集 N 與實數集 R 不存在一一對應關系 ) 中證明 自然數集 與 實數集 不能一一對應類似 ;
在 【計算理論】可判定性 ( 計算模型與語言 | 區分 可計算語言 與 可判定語言 | 證明 某語言是 可計算語言 | 通用任務圖靈機 與 特殊任務圖靈機 ) 博客中證明了 通用圖靈機語言 是計算語言 , 本博客中證明 通用圖靈機語言 不可判定 ;
使用反證法證明 :
圖靈機的結果有 333 個狀態 , 接受狀態 , 拒絕狀態 , Loop 不停機狀態 ;
ATM\rm A_{TM}ATM? 語言只包含 接受狀態 的情況 ;
所有的圖靈機 與 自然數集 一樣多 , 所有的圖靈機 是可以枚舉出來的 , M1,M2,M3,?,Mn\rm M_1 , M_2 , M_3, \cdots , M_nM1?,M2?,M3?,?,Mn? 圖靈機 ;
枚舉事務 , 一定有先決條件 , 如自然數集 , 無窮一定是可數的 , 不可數的無窮 , 如實數集 , 不能像上面圖靈機一樣枚舉 , 實數是無法進行枚舉的 ;
可以枚舉的無窮 , 一定是可數無窮 ; 圖靈機個數與自然數一樣多 , 是可數無窮 , 因此可以枚舉出來 ;
垂直表格中是枚舉出來的圖靈機 , 水平表格中是圖靈機語言的編碼 ;
表格中的內容 , 如第一行第一列 , M1\rm M_1M1? 與 <m1><m_1><m1?> 交叉的項 , 表示 圖靈機 M1\rm M_1M1? 在 <m1><m_1><m1?> 編碼上進行運算 , 其運算結果是 接受狀態 ;
對角線意外的項都是有結果的 , 與本次證明無關, 省略了 , 接受或拒絕 ;
| M1\rm M_1M1? | 接受 | ||||
| M2\rm M_2M2? | 拒絕 | ||||
| M3\rm M_3M3? | 接受 | ||||
| ?\rm \vdots? | |||||
| Mn\rm M_nMn? | 拒絕 |
假設 : 存在一個 圖靈機 H\rm HH , ATMA_{TM}ATM? 語言 是可判定的 ;
表格中的 圖靈機 H\rm HH 的結果是已知的 , 接受 或 拒絕 ;
構造 圖靈機 D\rm DD , 根據圖靈機語言編碼 <mn>\rm <m_n><mn?> 上的操作 :
圖靈機 D\rm DD , 在 m1\rm m_1m1? 編碼上的計算結果 , 主要查看第 111 行 , 第 111 列的 , 即 圖靈機 M1\rm M_1M1? 在 <m1><m_1><m1?> 編碼上的結果 , 該計算結果是 接收 的 , 那么 圖靈機 D\rm DD 在 <m1><m_1><m1?> 編碼 上的結果就設定相反的結果 , 拒絕 ;
圖靈機 D\rm DD , 在 m2\rm m_2m2? 編碼上的計算結果 , 主要查看第 222 行 , 第 222 列的 , 即 圖靈機 M2\rm M_2M2? 在 <m2><m_2><m2?> 編碼上的結果 , 該計算結果是 拒絕 的 , 那么 圖靈機 D\rm DD 在 <m2><m_2><m2?> 編碼上的結果就設定相反的結果 , 接收 ;
圖靈機 D\rm DD , 在 m3\rm m_3m3? 編碼上的計算結果 , 主要查看第 333 行 , 第 333 列的 , 即 圖靈機 M3\rm M_3M3? 在 <m3><m_3><m3?> 編碼上的結果 , 如果該計算結果是 接受 的 , 那么 圖靈機 D\rm DD 在 <m3><m_3><m3?> 編碼上的結果就設定相反的結果 , 拒絕 ;
?\vdots?
圖靈機 D\rm DD , 在 mn\rm m_nmn? 編碼上的計算結果 , 主要查看第 nnn 行 , 第 nnn 列的 , 即 圖靈機 Mn\rm M_nMn? 在 <mn><m_n><mn?> 編碼上的結果 , 如果該計算結果是 拒絕 的 , 那么 圖靈機 D\rm DD 在 <mn><m_n><mn?> 編碼上的結果就設定相反的結果 , 接收 ;
構造出的 D\rm DD 一定是圖靈機 , 上述描述的算法對應的計算模型就是圖靈機 ;
一定存在一個 k\rm kk , 圖靈機 D\rm DD 就是 對應的 圖靈機 Mk\rm M_kMk? , 在上述表格對角線位置的結果 , 即在 <mk>\rm <m_k><mk?> 編碼上的計算結果 , 與 圖靈機 D\rm DD 的結果是不同的 ;
這樣就產生了矛盾 , 圖靈機 D\rm DD 的計算結果 是 圖靈機 Mk\rm M_kMk? 在 <mk>\rm <m_k><mk?> 編碼上計算結果相反的結果 ; 而這兩個圖靈機是同一個圖靈機 ;
因此假設 "存在一個 圖靈機 H\rm HH , ATMA_{TM}ATM? 語言 是可判定的 " 不成立 ,
通用任務圖靈機 H\rm HH , ATMA_{TM}ATM? 語言 是 不可判定的
總結
以上是生活随笔為你收集整理的【计算理论】可判定性 ( 对角线方法 | 使用对角线方法证明 通用任务图灵机 语言 不可判定 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算理论】可判定性 ( 对角线方法 |
- 下一篇: 【计算理论】可判定性 ( 通用图灵机和停