您好、欢迎来到现金彩票网!
当前位置:2019年正版全年资料 > 通用图灵机 >

计算复杂性 图灵机和可计算性

发布时间:2019-07-28 08:35 来源:未知 编辑:admin

  简书渲染有问题, 且图片上传方式与我的个人博客不同,请在我博客中的博文图灵计算模型查看最新版。

  本节开始, 我们正式开始讲解现代复杂性理论. 当你看到一套科学理论中有现代这两个字的时候, 你应该做好心里准备, 因为这意味着它并不是那么容易懂. 这些理论是现当代著名科学家的重要研究成果, 需要花上一些时间去理解.

  图灵机是一种计算复杂性常用的一种计算模型, 图灵机由于结构简单并且功能完善[^1]而被广泛采用, 贯穿整个计算复杂性研究的始终.

  这将是非常长的一个章节. 本节开始, 我们正式开始讲解现代复杂性理论. 当你看到一套科学理论中有现代这两个字的时候, 你应该做好心里准备, 因为这意味着它并不是那么容易懂. 这些理论是现当代著名科学家的重要研究成果, 需要花上一些时间去理解.

  渐进记号能够表示一个函数的增长速度, 能够表示一个函数随着自变量增长趋于无穷大时的变化速度. 渐进记号的定义可以转换为极限的定义, 但是, 写作渐进记号会更加方便. 由于我们考虑的问题, 输入可以是任何长度, 因此, 我们会更加关注的是输入较长时的求解问题所占用的计算资源(如CPU时间, 内存空间, 数字电路中门的个数等); 为此我们将引入渐进记号来表示问题的困难程度, 这样做可以方便地比较不同函数的增长速度, 使得研究更加方便.

  图灵机是一种计算复杂性常用的一种计算模型, 图灵机由于结构简单并且功能完善[^1]而被广泛采用, 贯穿整个计算复杂性研究的始终.

  我们前面已经看到, 自动机确实能解决一些判定问题, 即正则语言的判定问题. 那么, 正则语言到底有多少? 实际上我们会发现, 正则语言真的非常少. 判定一个语言是不是正则语言, 可以根据著名的泵引理(pumping lemma)来完成, 我们这里不对其进行正式介绍, 但是我们直接说明, 通过泵引理, 下面这一的简单的语言都不是正则语言:

  图灵机(turing machine)是在自动机的基础上, 和用于记录数据(即符号)的纸带(tape)组成. 图灵机的纸带是无限长的, 并且一般来说是有起点的. 另外, 纸带是离散的, 就像是有一个一个的小格子. 纸带通过读写头(head)来进行操作, 且自动机可以控制读写头的移动, 且一般来说, 我们只允许每一步计算中, 读写头位置保持不变或移动一格. 与自动机不同, 图灵机中的转移函数要根据读写头下纸带上的符号来决定, 同时, 转移的结果也应当包含纸带的移动方向.

  注意: 图灵机的状态集是有限的, 纸带的条数也应该有限, 在你设计图灵机上运行的算法时, 你应该考虑该算法是否对于任意长度的输入都能被有限个状态集和有限条纸袋数目处理.

  由于即使是非常简单的问题, 图灵机的精确描述(即写出它的状态集\转移函数\字母表)都回非常麻烦, 所有我们很少去精确描述一台图灵机, 取而代之, 我们用自然语言大致地叙述其功能. 对于这样的功能具体应该如何实现, 在学习计算复杂性时可以逐步积累. 常简的合法描述包括有例如:

  这里的原理类似于上一条, 只是将移动(实际上就是写和刚读入符号一样的符号)改为写空格即可.

  直接由一系列这样的转移函数控制: 处于任意状态并读到规定的符号转移到随机状态.

  同时, 图灵机的描述不能过于抽象, 以免产生图灵机根本无法在规定条件下完成的指令:

  图灵机的转移函数, 就相当于是CPU中的控制单元, 他们根据微指令(转移函数的前半段)来产生具体操作(包括内存的写入和寻址). 而图灵机的状态机, 就相当于是CPU的寄存器, 它表示CPU当且所处的计算状态. 现代计算机运算的最小单元是一个CPU周期, 而对于图灵机来说, 最小的计算步骤就是一步转移, 在这一点上二者也是很类似的.

  这样看来, 似乎图灵机和标准的计算没有什么隔阂. 实际上, 丘奇-图灵论题将是一个比这个结论强很多的论题, 尽管尚未被证明, 但是目前为止它都未被证伪, 因此它成为了计算机科学的一条公理. 我们将在介绍可计算性的时候介绍这个结论.

  现在我们来尝试构建一台用于计算两个数的加法的图灵机, 为了方便起见, 我们做如下限定:

  这个符号我们永远不会改写, 它的唯一功能就是标注每条纸袋最左边的位置, 方面程序(转移函数)的构造.

  在写好大致的工作步骤后, 我们需要写出更加详细的工作步骤, 来让我们更加详细地写出图灵机.

  此外, 在计算过程中, 遇到任何不符合上述步骤的情况, 均可断定输入是非法的, 此时图灵机直接停机即可.

  即使是这样简单的问题, 解决它的图灵机描述出来也是相当复杂, 因此我们真的会很少这样描述, 因此建立对图灵机能力的直观感受对于研究计算复杂性来说尤为重要.

  在这之前, 我们先说一下, 对于图灵机来说, 计算时间意味着什么? 我们以后经常会讲到一个故事, 这个故事有一个完整的世界观, 里面的主角就是图灵机们. 而同我们的世界一样, 这个世界有它的时空规则, 图灵机们也有自己的信仰. 我们称这个世界为图灵世界(Turing Word). (这个故事和这种说法都是我虚构的, 学术界并没有这么叫, 只是我觉得图灵机很多地方真的可以和人类比, 因此我觉得讲出这个故事有助于读者理解, 如果你不喜欢这个故事, 你完全可以忽略这些内容而不影响阅读).

  关于为什么要引入图灵世界等了解了强丘奇-图灵论题后, 读者应该会觉得引入这个世界自然一些. 很多时候, 我们在讨论密码协议的时候, 我们都直接假设是Alice和Bob或者更多人之间的协议, 也就是人与人之间的协议. 实际上, 这些协议是图灵机与图灵机之间的, 之所以可以这么做, 是因为我们有强丘奇-图灵论题作为假设, 即人也可以看作图灵机, 也就是人, 图灵机, 电脑三者之间是等同的. 更多内容请参考对应章节.

  我们来说图灵世界的时空观. 图灵世界是的时间是离散的, 即量子化的. 所有的图灵机, 在每个时间单位内, 都执行一步计算----无论这个图灵机是复杂还是简单. 对于图灵机来说, 计算的时间就是计算的步数. 而每一步计算, 就是执行一次转移函数. 因此, 请等同这两个概念:计算时间和计算步数.

  图灵机相比自动机, 多了一些结构, 因此可以形成多种不同的变体. 但是, 如何界定图灵机是我们需要考虑的问题----我们将多带图灵机视作了一种图灵机, 而标准的图灵机是单带的. 回忆自动机模型中的内容, 我们从来不认为非确定自动机是自动机, 但是为什么我们能容忍将多带图灵机划分到图灵机中? 为了回答这个问题, 我们首先介绍一些种类的图灵机, 再来考虑如何界定图灵机.

  我们假设我们使用的是双带随机访问图灵机, 即数据输入\输出\工作均在一条纸带上(这条纸带称为工作带), 但配备一条特殊的地址带. 在地址带上写上相应的地址, 然后再进入一个特殊的访问状态, 就可以使得图灵机的工作带上的读写头立即跳转到地址带上内容所标注的地址的内容.

  健忘图灵机是一类特殊的图灵机, 它们在结构上和普通的图灵机没有任何不同, 但是它们在针对具体输入数据时, 读写头运动的方式以及计算的总步数只与输入长度相关, 而与输入的具体内容无关. 换句话说, 也就是健忘图灵机在得到相同长的任意输入时, 读写头运动的方式, 以及从开始计算到停机所经过的总步骤数是相同的.

  试想解密服务者为你提供了解密服务, 你可以询问他任何密文所对应的明文, 假设服务者是用图灵机来为你解密, 如果他的图灵机是非健忘的, 你输入不同密文时, 他给你明文的时间也就不同, 这就泄露了一定的信息. 但是如果解密使用一台健忘图灵机来为你解密, 无论你输入任何数据, 你拿到明文所需要的时间都是相同的-—-你无法从解密时间中得到和密钥相关的任何信息.

  可计算性是一个相对复杂但是有很有趣的话题, 要是单独拿出来写的话可以写成整整一本书. 在这方面, 丘奇可以说是先驱, 之后还有图灵, 哥德尔等很多史诗级的科学家研究. 本节, 我们将介绍可计算性的概念, 评估图灵机的计算能力, 以及应用一个重要的技术来证明问题的不可解性.

  实际上, 这一部分并不是计算复杂性的核心内容, 因为我们很少关注不可计算的问题. 但是学习这一部分有助于理解图灵机的工作原理, 以及熟悉我们经常在计算复杂性\密码学\数学中使用的一个重要技巧:归约(reduction).

  图灵停机问题是一个经典的不能被图灵机解决的问题, 通过这个问题, 你会发现图灵停机并不是可以解决所有的为你, 即并不是所有问题都有解决的算法.

  图灵机不能计算的问题, 人能够计算吗? 也许你会觉得你可以穷举所有的答案. 并不是这这样的, 我们已知丢番图方程问题是图灵不可计算的, 那么如果给你一组丢番图方程, 你能判定他是解还是没有解的吗? 也许这个方程组的解会会非常大, 大到你穷尽一生也无法找到他的解, 也或许他根本就没有解------我们根本不能通过穷举来判定方程是否有解. 一些特殊的丢番图方程, 我们确实能找到求解或判定是否有解的办法, 但是对于所有的丢番图方程, 寻找通用的算法来判定它是否有解, 我们真的无能为力.

  根据大量合理的计算模型构造, 最后都被证明计算能力和图灵机的计算能力等价, 我们有如下结论

  也即是说, 我们造不出来比图灵机更强的计算机. 这个论题虽然没有被证明, 但是也没有被证伪, 是计算理论的一条基本公理(或基本假设).

  为了避免读者没有接触过可计算性的知识, 我们首先解释两个术语:判定和识别. 我们说判定和识别的时候, 都是针对某个语言而言, 正如我们在之前的文章中提到, 语言和判定问题可以视作是等价的概念.

  在计算复杂性理论中, 我们要做的事情的为问题根据其难度分类(或者称分层), 但在这之前我们需要回答的问题时,问题是否真的有难度之分?

  也许你曾经没有注意到, 有些问题真的很难, 因为试卷上让你求解问题真的都很简单—––我们这样说绝对没有针对你的意思, 因为我们所说困难, 不是你一个人做不出来, 而是也许所有人都做不出来. 现在, 让我们思考一下下面的问题.

  这个论题也仅仅是一个猜想, 但是目前为止也是尚未被证明. 该论题直接限制了我们的计算能力. 好消息是, 量子计算机的出现对这一论题发起了挑战, 也许我们真的能算出那些我们之前认为不可能算出的问题.

  时间谱系定理的证明看起来很繁琐, 但是其还是利用我们之前介绍过的对角化方法. (可以理解为将模拟输出翻转后输出的方法).

  有关时间复杂性的重要定理, 如Gap定理和加速定理及其证明, 将在专题中完成. 这些结论是计算机科学中非常怪的结论, 因为我们日常根本见不到这样奇怪的问题, 但是它们确实存在.

  选自王浩的《逻辑之旅》第6章 王浩(1921-1995),美籍华商数字家、辑学家、计算机科学家、哲学家。1921年生于山东济南市。1943年毕业于西南联合大学数学系。1945年于清华大学研究生院哲学系毕业。曾师从金岳霖、王宪钓、沈有鼎等。1946年赴哈佛大学留学,师从蒯因(...

  上一篇介绍了天才图灵所做的时代背景,我们了解那个时代对于数学逻辑,可计算理论的发展。站在更大的时间和空间维度来看,我们看问题的角度会有更高的视角。 这篇我们来具体看下图灵机到底是什么? 从上一篇文章我们知道图灵机首次提出在图灵的一篇论文《论数字计算在决断难题中的应用》中提出...

  文:郑元春 人生苦短,我用Python! 命令式和函数式模型是从数学家图灵、丘奇、克林、波斯特等人在20世纪30年代所做工作的基础上成长起来的。这些先驱者分别基于自动机、符号操作、递归函数、和组合学开发出了几种差异巨大的形式化模型。现在人们已经证明这些不同的理论具有相同能力...

  好课推荐-以计算机的思维看世界。 读史使人明智,读诗使人灵秀,数学使人周密,科学使人深刻,伦理学使人庄重,逻辑修辞之学使人善辩:凡有所学,皆成性格.——培根 又是一年开学季,可爱的小侄女已经要面临升学的压力了,老哥让我帮忙做疏导,索性在这里聊聊专业对个人的影响好了。开篇之前...

  如果有一天我能明白哥德尔的思想,我会很开心。 1. 人工智能和认知科学发展简况 任何自然科学研究都没有比人类彻底认识自己、了解自己、找出解决自身面临的问题更为迫切。在人类最为关注的四大...

  皇家加勒比邮轮之旅 带着这些猜测,我们一家子驱车至广州白云机场集合,在预约好的旅行社在导游组织下,乘坐飞机来到香港机场,然后乘坐旅行社的大巴到达启德码头。 码头上人潮簇拥,背着双肩包的游客手持相机,争先恐后在拍攝停靠在启徳码头的这个庞然大物一一一皇家号邮轮。 除了庞大的...

  上一节我们使用Go语言写了一个进行web服务端口侦听和简单的URL请求输出,但并没有实现我们上网浏览网页时所看到的丰富多彩的html页面,当我们需要把分离出来的html页面加入到Go语言编写的服务时,我们需要在服务程序中导入html/template。 然后我们创建一个te...

  近日,在贵阳发生了一起车祸,一辆玛拉莎蒂在转弯过程中,突然失控直接撞上了一辆停在路边不动的中巴车上。直接导致了玛拉莎蒂撞的报废,中巴车被撞的“飘逸”了近90度。横在了路面上,造成了交通的拥堵。 事情发生在凌晨时分,据目击者表示,当时一辆白色的玛拉莎蒂轿车车速很快的想通过该转...

  是什么让我, 高兴呢? 放暑假了, 我很高兴。 能看好多书, 我很高兴。 和娃娃一起玩, 我很高兴。 有很多让我高兴的事, 哪一种, 是让我最高兴的呢?

http://infomisa.net/tongyongtulingji/444.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有