欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

【计算理论】可判定性 ( 对角线方法 | 使用对角线方法证明 通用任务图灵机 语言 不可判定 )

发布时间:2025/6/17 编程问答 55 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【计算理论】可判定性 ( 对角线方法 | 使用对角线方法证明 通用任务图灵机 语言 不可判定 ) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

  • 一、存在性证明
  • 二、证明 通用任务图灵机 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>Mw}

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><m_1><m1><m2><m_2><m2><m3><m_3><m3>⋯\cdots<mn><m_n><mn>
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 语言 是 不可判定的

总结

以上是生活随笔为你收集整理的【计算理论】可判定性 ( 对角线方法 | 使用对角线方法证明 通用任务图灵机 语言 不可判定 )的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。