图灵完备——停机问题
图灵完备的机器可以解决所有可解问题,亦即任何图灵完备的机器逻辑上都是等价的。
那么什么属于不可解的问题呢?这里我们引出一个问题:不存在这样的一个程序,它可以判定任意程序是否会结束执行(停机问题)。
停机问题:有一个程序,我们这里叫做上帝程序,它有两个输入:程序A和程序A运行所需要的输入。上帝程序可以根据这两个输入得到一个输出,即这个程序会停机或者这个程序不会停机。
再根据上帝程序引入一个程序,叫做撒旦程序。它判断上帝程序的运行结果,如果上帝程序输出会停机,那么撒旦程序就执行一个无限的循环(while(true)这种);如果上帝程序输出不会停机,则撒旦程序停机。
现在,我们运行上帝程序,并且以撒旦程序以及其输入作为上帝程序的输入,则会出现两种情况:上帝程序输出会停机,我们分析发现,撒旦程序停机的时候上帝程序的输出应该是不会停机;而上帝程序输出不会停机的时候,撒旦程序执行无限循环,此时上帝程序应该会输出停机。所以我们从这里得出矛盾。
这个证明由阿兰图灵给出——不存在这样的一个程序,它可以判定任意程序是否会结束执行。
理解这个证明就已经很不容易了,那想到这个证明是不是更不容易。我个人是这么觉得的,但是这个问题的后半段是相对比较容易想到的。后半段的目的是要让上帝程序失效。如果不失效,撒旦程序停机,上帝程序判断出,输出该程序会停机。而要使其失效我们就应该让撒旦程序在上帝程序输出为停机时不断循环;而在上帝程序输出为不停机时撒旦程序停机。
转载于:https://www.cnblogs.com/psymacome/p/9247576.html
图灵完备——停机问题相关推荐
- 计算机科学速成课笔记(六):计算机的未来
计算机科学速成课(Crash Course Computer Science) Alan Mathison Turing 图灵机 停机问题 丘奇-图灵论题 二战 图灵测试 一.机器学习&人工智 ...
- 黑客如何利用技术赚钱_是中国利用黑客在技术战争中取得成功
黑客如何利用技术赚钱 This appeared in The Millennial Source 这出现在千禧年的来源 Chinese state-backed hackers have pilla ...
- 程序员应了解的那些事(107)之图灵完备
目录 什么是图灵机 图灵机的结构包括以下几个部分: 图灵机结构 图灵机可以解决什么问题 什么是图灵完备(对图灵完备的描述) Brainfuck 语言:直观理解图灵完备 图灵机的组成(附) 图灵完备是对 ...
- python 图灵完备_什么是图灵完备?
断断续续研究这个问题许久了,希望这个回答能有帮助,也算是我私心为了以后有迹可循写下一篇学习笔记.答案中如果有任何错误还请指出. 这是一篇旨在帮助理解图灵机及相关概念是什么,而非证明其正确性的回答,它包 ...
- 清华张悠慧:AI时代,「图灵完备」之后,「类脑计算完备」如何设计?
智源导读:2021年6月1日,清华大学计算机系研究员.类脑计算研究会成员张悠慧,在北京智源人工智能大会智能体系架构与芯片论坛做了题为"类脑计算系统基础软件研究"的报告.报告首先简要 ...
- php和python对比-从PHP与Python的语言比较去了解什么是图灵完备
先从一个问题开始.从语言的区别看,有什么功能python能实现,php不能实现的呢? 从非常严格的理论角度来说,答案是:没有.因为PHP和Python都是图灵完备(Turing complete)的语 ...
- 【计算理论】不可判定性 ( 停机问题 | 图灵机语言是否空集问题 | 图灵机是否等价问题 | 是否存在自动机接受图灵机语言问题 | 莱斯定理 Rice‘s Theorem )
文章目录 一.不可判定性 ( Undecidability ) 二."停机问题" 不可判定 三."图灵机语言是否空集问题" 不可判定 四."图灵机是否 ...
- 【计算理论】可判定性 ( 通用图灵机和停机问题 | 可判定性 与 可计算性 | 语言 与 算法模型 )
文章目录 一.通用图灵机和停机问题 二.可判定性 与 可计算性 三.语言 与 算法模型 一.通用图灵机和停机问题 利用 图灵 的结论 , 证明 有哪些 计算问题 是找不到 算法 进行判定的 ; 如 停 ...
- 图灵机停机问题的不可判定性
Turing Machine Halting Problem 停机问题:指判断任意一个程序是否能在有限的时间之内结束运行的问题.图灵机停机问题是不可判定的,意思即是不存在一个图灵机能够判定任意图灵机对 ...
最新文章
- Python 命令行参数
- Java文件下载详解
- bashrc文件中环境变量配置错误,导致linux命令无法正常使用的解决方案
- node.js-------使用路由模块
- apply()与call()
- 滴水穿石--mysql添加授权用户命令
- linux 内核/proc
- 写出优质Java代码的4个技巧
- HTTP请求报文分析
- MyBatis传入参数为0时条件不生效
- 去哪儿网2017校招在线笔试(前端工程师)编程题及JavaScript代码
- mysql的R树_R*树
- 计算机文字排版工作过程,计算机文字录入与排版教学计划.doc
- 简述对CAN协议栈的理解
- java打印两个小人_Swing多线程实现奔跑的小人动画代码实现 | 彬菌
- python爬虫 爬取网页图片
- 质量功能展开(QFD)的基本原理
- 微信公众号文章音视频下载的几种办法-涵盖PC端和手机端
- 054.CSS网页布局
- mdadm彻底删除software RAID