zoukankan      html  css  js  c++  java
  • 图灵完备——停机问题

    图灵完备的机器可以解决所有可解问题,亦即任何图灵完备的机器逻辑上都是等价的。

    那么什么属于不可解的问题呢?这里我们引出一个问题:不存在这样的一个程序,它可以判定任意程序是否会结束执行(停机问题)。

      停机问题:有一个程序,我们这里叫做上帝程序,它有两个输入:程序A和程序A运行所需要的输入。上帝程序可以根据这两个输入得到一个输出,即这个程序会停机或者这个程序不会停机。

        再根据上帝程序引入一个程序,叫做撒旦程序。它判断上帝程序的运行结果,如果上帝程序输出会停机,那么撒旦程序就执行一个无限的循环(while(true)这种);如果上帝程序输出不会停机,则撒旦程序停机。

        现在,我们运行上帝程序,并且以撒旦程序以及其输入作为上帝程序的输入,则会出现两种情况:上帝程序输出会停机,我们分析发现,撒旦程序停机的时候上帝程序的输出应该是不会停机;而上帝程序输出不会停机的时候,撒旦程序执行无限循环,此时上帝程序应该会输出停机。所以我们从这里得出矛盾。

        这个证明由阿兰图灵给出——不存在这样的一个程序,它可以判定任意程序是否会结束执行。

    理解这个证明就已经很不容易了,那想到这个证明是不是更不容易。我个人是这么觉得的,但是这个问题的后半段是相对比较容易想到的。后半段的目的是要让上帝程序失效。如果不失效,撒旦程序停机,上帝程序判断出,输出该程序会停机。而要使其失效我们就应该让撒旦程序在上帝程序输出为停机时不断循环;而在上帝程序输出为不停机时撒旦程序停机。

  • 相关阅读:
    Servlet
    MySQL游标
    MySQL数据库的备份和还原
    MySQL安全管理
    MySQL存储过程
    MySQL联结——实现多表查询
    MySQL视图
    MySQL触发器
    asp.net core 读取连接字符串
    form表单提交前进行ajax验证
  • 原文地址:https://www.cnblogs.com/psymacome/p/9247576.html
Copyright © 2011-2022 走看看