关于图灵机的三个问题分析

合集下载

理论计算机科学中的图灵机

理论计算机科学中的图灵机

理论计算机科学中的图灵机图灵机是理论计算机科学中的一个重要概念。

它被认为是能够计算任何可计算问题的最基本的计算机模型。

理解图灵机对于对计算机科学的学习和研究都至关重要。

一、图灵机的定义和原理图灵机是由英国数学家图灵提出的一种计算模型。

它包括一个有限控制器和一条无限长的纸带。

纸带被划分为一系列的单元格,每个单元格上可以写上一个字符。

控制器通过读取纸带上的字符和控制器内部的状态来进行计算。

它可以进行有限的计算,而且可以处理无限长的输入。

在图灵机模型中,所有的操作都是基于读取和写入单元格上的字符来进行。

图灵机具有非常简单的结构,但它却能够计算出任何可计算问题。

二、图灵机的应用图灵机能够计算出任何可计算问题,因此它在理论计算机科学中有着非常重要的应用。

它被用于证明计算机科学中的许多重要问题,例如停机问题和可计算性问题。

通过证明一个问题是不可计算的,我们可以得出它是无法用计算机解决的。

这对于计算机的设计和实现都有着重要的指导意义。

此外,图灵机还被广泛应用于计算机语言和自动机理论的研究中。

我们可以使用图灵机来描述计算机语言的语法和语义,并且使用它来定义自动机模型。

这在编程语言的编译、解释和分析中都有着广泛的应用。

三、图灵机的限制尽管图灵机是一种非常强大的计算模型,它仍然存在着一些限制。

其中最明显的一点是图灵机的速度。

尽管图灵机能够计算出任何可计算问题,但某些问题可能需要非常长的时间才能得到结果。

例如,计算出一个长文本的哈希值可能需要几分钟,而对于一个复合的问题,甚至需要几个世纪才能计算得出。

此外,图灵机还无法解决某些问题,例如非计算问题和不规则问题。

这些问题之所以无法用图灵机解决,是因为它们没有确定的方法来解决它们。

这些问题是无法用算法来解决的,并且需要人类直接进行解决。

四、结语图灵机是理论计算机科学中最重要的概念之一。

它被认为是能够计算出任何可计算问题的最基本计算机模型。

通过图灵机的研究,我们可以深入理解计算机科学的基本原理,理解计算机能力和限制。

NOIP2009年普及组初赛题目及答案解析

NOIP2009年普及组初赛题目及答案解析

NOIP2009年普及组初赛题目及答案解析一、单项选择题(共20题,每题1.5分,共计30分。

每题有且仅有一个正确答案。

)1、关于图灵机下面的说法哪个是正确的:(D)A.图灵机是世界上最早的电子计算机。

B.由于大量使用磁带操作,图灵机运行速度很慢。

C.图灵机是英国人图灵发明的,在二战中为破译德军的密码发挥了重要作用。

D.图灵机只是一个理论上的计算模型。

【解析】所谓的图灵机就是指一个抽象的机器,它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。

有一个机器头在纸带上移来移去。

机器头有一组内部状态,还有一些固定的程序。

在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后进行移动。

2、关于计算机内存下面的说法哪个是正确的:(B)A.随机存储器(RAM)的意思是当程序运行时,每次具体分配给程序的内存位置是随机而不确定的。

B.1MB内存通常是指1024*1024字节大小的内存。

C.计算机内存严格说来包括主存(memory)、高速缓存(cache)和寄存器(register)三个部分。

D.一般内存中的数据即使在断电的情况下也能保留2个小时以上。

【解析】A项:RAM不是位置随机,而是随时访问。

所谓“随机存储”,指的是“当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。

”B项:1MB=1024KB,1KB=1024BC项:计算机内存包括严格来说包括只读存储器(RAM)、随机存储器(ROM)和高速缓存(CACHE)。

如果不严格来说只包含只读存储器和随机存储器。

D项:内存中的数据断电立即丢失。

3、关于BIOS下面说法哪个是正确的:(A)A.BIOS是计算机基本输入输出系统软件的简称。

B.BIOS里包含了键盘、鼠标、声卡、显卡、打印机等常用输入输出设备的驱动程序。

C.BIOS一般由操作系统厂商来开发完成。

P-NP-NPC三者问题阐述

P-NP-NPC三者问题阐述

P NP NPC三者问题阐述1)”P对NP问题”是什么意思?首先说明一下问题的复杂性和算法的复杂性的区别,下面只考虑时间复杂性。

算法的复杂性是指解决问题的一个具体的算法的执行时间,这是算法的性质;问题的复杂性是指这个问题本身的复杂程度,是问题的性质.比如对于排序问题,如果我们只能通过元素间的相互比较来确定元素间的相互位置,而没有其他的附加可用信息,则排序问题的复杂性是O(nlgn),但是排序算法有很多,冒泡法是O(n^2),快速排序平均情况下是O(nlgn)等等,排序问题的复杂性是指在所有的解决该问题的算法中最好算法的复杂性。

问题的复杂性不可能通过枚举各种可能算法来得到,一般都是预先估计一个值,然后从理论上证明。

为了研究问题的复杂性,我们必须将问题抽象,为了简化问题,我们只考虑一类简单的问题,判定性问题,即提出一个问题,只需要回答yes或者no的问题。

任何一般的最优化问题都可以转化为一系列判定性问题,比如求图中从A到B的最短路径,可以转化成:从A 到B是否有长度为1的路径?从A到B是否有长度为2的路径?…从A到B是否有长度为k的路径?如果问到了k的时候回答了yes,则停止发问,我们可以说从A到B的最短路径就是k。

如果一个判定性问题的复杂度是该问题的一个实例的规模n的多项式函数,则我们说这种可以在多项式时间内解决的判定性问题属于P类问题。

P类问题就是所有复杂度为多项式时间的问题的集合.然而有些问题很难找到多项式时间的算法(或许根本不存在),比如找出无向图中的哈米尔顿回路问题,但是我们发现如果给了我们该问题的一个答案,我们可以在多项式时间内判断这个答案是否正确。

比如说对于哈米尔顿回路问题,给一个任意的回路,我们很容易判断他是否是哈米尔顿回路(只要看是不是所有的顶点都在回路中就可以了)。

这种可以在多项式时间内验证一个解是否正确的问题称为NP问题.显然,所有的P类问题都是属于NP问题的,但是现在的问题是,P是否等于NP?这个问题至今还未解决。

10大悖论

10大悖论

10大悖论1. 邱奇-图灵悖论邱奇-图灵悖论源自数理逻辑中的一个重要命题:不可能存在一个算法,能够判断任意算法是否停机。

这个命题的证明过程非常复杂,但其结论却具有深刻的哲学意义。

在计算机科学中,图灵机是一种抽象的计算模型,被认为是现代计算机的理论基础。

邱奇和图灵分别独立提出了图灵机的概念,并证明了它的等价性。

然而,他们的工作也揭示出了一个无法解决的问题:无法判断一个算法是否会停机。

这意味着,即使我们拥有了最强大的计算机和最聪明的算法,我们仍然无法预测一个算法是否会在有限的时间内停止运行。

这个悖论挑战了我们对计算机科学的基本认识,也引发了对人工智能和机器学习领域的深思。

2. 赫胥黎悖论赫胥黎悖论是关于集合论的一个重要悖论。

在集合论中,我们通常认为一个集合是由它的成员所确定的。

然而,赫胥黎悖论却质疑了这一观点。

考虑一个由所有不包含自己的集合组成的集合。

根据我们的直觉,这个集合应该是一个合法的集合。

然而,如果我们问这个集合是否包含自己,我们会发现一个悖论:如果这个集合包含自己,那么根据定义,它不应该包含自己;如果这个集合不包含自己,那么根据定义,它应该包含自己。

这个悖论揭示了我们对集合的理解存在一些隐含的问题,也引发了对集合论基础的深入思考。

3. 费尔马定理悖论费尔马定理是数学中一个著名的未解之谜。

它声称没有正整数解的方程x^n + y^n = z^n,其中n大于2。

然而,费尔马定理悖论在于,虽然费尔马定理已经被证明是正确的,但其证明过程却非常复杂,以至于无法在有限时间内完成。

这个悖论引发了对数学证明的思考:我们如何确定一个命题是否为真?费尔马定理悖论表明,即使我们相信一个命题是真的,我们也可能无法证明它。

这对于数学和逻辑的发展产生了重要影响。

4. 佩亚诺悖论佩亚诺悖论源自数学中的一个基本问题:是否存在一个能够判断所有数学命题真假的公理系统?佩亚诺悖论证明了这是不可能的。

如果我们假设存在这样一个公理系统,那么我们可以构造一个命题:这个命题在公理系统中是不可证明的,但它却是真的。

图灵机不可判定问题

图灵机不可判定问题

一.图灵机简介一台图灵机(Turing Machine)有有限个状态。

其中一个状态是开始状态。

状态集合的一个子集是接受状态,还有一个子集是拒绝状态。

接受状态子集和拒绝状态子集不相交(也就是不能有一个状态既是接受状态,也是拒绝状态)。

有一个字符集Σ,图灵机以Σ上的字符串ω作为输入(ω∈Σ*,Σ*是一个集合,它的元素是:由0 个或多个Σ上的字符组成的有限长度的字符串)。

图灵机还有一个字符集Γ,是“带”(tape)字符集。

Γ包含Σ中的所有字符,还必须有一个Σ中没有的字符,就是空白字符(blank)。

Γ中也可以还有Σ中没有的更多字符。

图灵机的带(tape)上一开始默认都是空白字符。

图灵机的带,是一个无限长的带子,分成一个个的单元格,每一个单元格上写一个字符(初始都是空白符)。

图灵机有一个读写头,总是位于带的某一个单元格之上。

读写头对当前的单元格进行读写。

读写头可以顺着带子左右移动,但一次只能移动一个单元格。

Γ就是图灵机可以向带子上写的字符的集合。

图灵机的动作是这样的:根据当前所处的状态和当前读到的字符,在当前单元格上写下一个字符,向左或右移动一个单元格,进入另一个状态。

读到一个什么字符就写下哪个字符并怎么移动读写头,对于这个行为的定义,就是这台图灵机的转移函数δ。

状态集合Q 、输入字符集Σ、带字符集Γ、转移函数δ、开始状态∈Q 、接受状态集合以及拒绝状态集合就定义了一台图灵机。

一开始,将输入字符串ω(ω∈Σ*)放在带子上,把图灵机的读写头对准ω的第一个字符,并让图灵机处于开始状态。

然后图灵机就开始一步一步地运行:读字符、写字符、移动读写头、进入新状态,然后再重复......直到图灵机进入某一个接受状态,这时图灵机停机并接受ω。

图灵机也有可能进入一个拒绝状态而停机,这种情况下图灵机拒绝ω。

除了这两种情况,还有第三种情况:那就是图灵机永远不会停机。

图灵机既不进入接受状态,也不进入拒接状态,而是一直运行下去。

PNP问题

PNP问题

P/NP问题是在理论信息学中计算复杂度理论领域里至今没有解决的问题,它被“克雷数学研究所”(Clay Mathematics Institute, 简称CMI)在千禧年大奖难题中收录。

P/NP问题中包含了复杂度类P与NP 的关系。

1971年史提芬·古克(Stephen A. Cook) 和Leonid Levin 相对独立的提出了下面的问题,即是否两个复杂度类P和NP是恒等的(P=NP?)。

P 和NP复杂度类P包含所有那些可以由一个确定型图灵机在多项式表达的时间内解决的问题;类NP由所有其肯定解可以在给定正确信息的多项式时间内验证的决定问题组成,或者等效的说,那些解可以在非确定型图灵机上在多项式时间内找出的问题的集合。

很可能,计算理论最大的未解决问题就是关于这两类的关系的:P和NP相等吗?在2002年对于100研究者的调查,61人相信答案是否定的,9个相信答案是肯定的,22个不确定,而8个相信该问题可能和现在所接受的公理独立,所以不可能证明或证否。

对于正确的解答,有一个$1,000,000美元的奖励。

NP-完全问题(或者叫NPC)的集合在这个讨论中有重大作用,它们可以大致的被描述为那些在NP中最不像在P中的。

(确切定义细节请参看NP-完全)理论计算机科学家现在相信P, NP,和NPC类之间的关系如图中所示,其中P和NPC类不交。

假设P ≠ NP的复杂度类的图解.如P = NP则三个类相同.简单来说,P = NP问题问道:如果是/不是问题的正面答案可以很快验证,其答案是否也可以很快计算?这里有一个给你找点这个问题的感觉的例子。

给定一个大数Y,我们可以问Y是否是复合数。

例如,我们可能问53308290611是否有非平凡的因子。

回答是肯定的,虽然手工找出一个因子很麻烦。

从另一个方面讲,如果有人声称答案是"对,因为224737可以整除53308290611",则我们可以很快用一个除法来验证。

图灵机

图灵机

图灵测试
• 图灵测试(又称“图灵判断”)是图灵 提出的一个关亍机器人的著名判断原则 。所谓图灵测试是一种测试机器是丌是 具备人类智能的方法。 • 被测试的有一个人,另一个是声称自己 有人类智力的机器。图灵测试是测试人 在不被测试者(一个人和一台机器)隔开 的情况下,通过一些装置(如键盘)向 被测试者随意提问。问过一些问题后, 如果测试人丌能确认被测试者30%的答 复哪个是人、哪个是机器的回答,那么 这台机器就通过了测试,幵被认为具有 人类智能。还没有一台机器能够通过图 灵测试。
问题示例:
• 问:你会下国际象棋吗 ? • 答:是的。 • 问:你会下国际象棋吗 ? • 答:是的。 • 问:请再次回答,你会 下国际象棋吗? • 答:是的。 • 你他么的会下国际象棋 么? • 答:是的。 • 问: 你会下国际象棋吗? • 答:是的。 • 问:你会下国际象棋吗? • 答:是的,我丌是已经说过 了吗? • 问:请再次回答,你会下国 际象棋吗? • 答:你烦丌烦,干嘛老提同 样的问题 • 问:你他么的会下国际象棋 么? • 答:我艹,你他么的有病吧, 我会!!
question:
• 请问:IPhone的siri,微信的小黄鸡等具备智能聊天功能 的软件在图灵测试方面表现如何? • 是否说明我们目前的技术已经可以通过图灵测试?
THANKS~
艺术化的图灵机
• 图灵机是一种状态机, 如图上半部是一个简单 的状态机,有三个状态 ,A,B,C,外加终止 状态 H。这个状态机读 入指令流,指令流以字 符串方式呈现,只有 0 戒者 1 两个值。每次读 入一个指令字符,机器 从一个状态转换到另一 个状态,同时执行三个 动作 Print,Left move ,Right move 中的一 个戒两个动作。 • 下半部是实现图灵机的 一个想象的电子装置

图灵机工作原理

图灵机工作原理

图灵机工作原理图灵机是一种理论上的计算模型,由英国数学家艾伦·图灵于1936年提出。

它是一种抽象的计算设备,能够模拟任何可以通过算法计算的问题。

图灵机的工作原理主要包括输入、状态转换和输出三个基本部分。

首先,图灵机接受输入。

输入是指由输入符号构成的无限长的纸带,纸带上的每个符号都属于有限的字母表。

图灵机的读写头可以在纸带上移动,并能够读取当前位置的符号。

这些输入符号代表了问题的初始状态,图灵机需要根据这些输入符号进行计算和处理。

其次,图灵机通过状态转换来处理输入。

图灵机在内部有一个状态转换表,根据当前状态和读取的输入符号,图灵机可以根据状态转换表中的规则进行状态转换。

这些状态转换规则包括了读取当前符号后的下一步动作,如写入新符号、移动读写头的位置或改变内部状态等。

通过不断的状态转换,图灵机可以模拟出复杂的计算过程。

最后,图灵机输出结果。

当图灵机完成状态转换并停止时,纸带上的符号就代表了问题的计算结果。

图灵机可以通过读取纸带上的符号来输出最终的计算结果。

图灵机的工作原理可以用简洁的数学模型来描述,这种模型包括了输入符号、状态转换表和内部状态等重要元素。

通过这些元素的相互作用,图灵机能够模拟出任何可以通过算法计算的问题。

这种抽象的计算模型为计算机科学的发展提供了重要的理论基础,对于计算机算法和程序设计具有重要的指导意义。

总的来说,图灵机的工作原理是基于输入、状态转换和输出这三个基本部分的。

通过这些部分的相互作用,图灵机能够模拟出任何可以通过算法计算的问题,这为计算机科学的发展提供了重要的理论基础。

图灵机的工作原理不仅对计算机科学具有重要的指导意义,同时也为人工智能和机器学习等领域的发展提供了重要的思想参考。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

写这篇文章,是想尝试回答学习图灵机模型中遇到的三个问题:1) 为什么图灵机有不可判的问题?2) 为什么强大的图灵机会不停机?3) 为什么图灵当初要设计图灵机?图灵机(Turing machine)是英国数学家阿兰·图灵(Alan Turing)于1936年设计的一种抽象机器,用于定义和模拟计算(computing)。

图灵机虽然构造简单,但却及其强大,它能模拟现代计算机的所有计算行为,堪称计算的终极机器。

然而即便是这个终极机器,也有令它无能为力的问题,这便是第一个要回答的问题:为什么图灵机有不可判的问题?首先明确什么是图灵可识别(Turing recognizable)和图灵可判定(Turing decidable)。

图灵机的识别对象是语言,图灵可识别当然不是说图灵本人能识别的语言(照这样说汉语可能是图灵不可识别的~),事实上这只是简称,全称应该是图灵机可识别语言(Turing machine recognizable language)和图灵机可判定语言(Turing machine decidable language)。

一台图灵机在读取一个串后可能进入三种状态:接受、拒绝、循环,如果图灵机进入循环状态,那它将永不停机。

现在假设有语言A,如果能设计出一台图灵机M,对于任意字符串ω,如果ω∈A,那么M读取ω后会进入接受状态,那么A是一个图灵可识别语言。

注意这个定义对于ω不属于A的情况没有做出限制,所以M读取到不属于A的ω,那么它有可能拒绝,也有可能循环。

图灵可判定语言的要求更严格,它要求对于语言A能设计出一台图灵机M:如果ω∈A,M 进入接受状态;否则进入拒绝状态。

如果一个语言是图灵可判定的,总能设计出一台图灵机,能在有限步数内判定一个字符串是不是属于这个语言。

如果一台图灵机对所有输入总是停机,那么称它为判定器(decider)。

然而第一个问题指明一定有所有判定器都不能判定的问题,要证明这一点,得从康托(Georg Cantor)说起。

康托最大的贡献可能是创建了现代集合论,他认为某些不同的无穷集合有不同的大小。

1891年,康托发表了一篇只有5页的论文,证明实数集的基数大于自然数集,并在这篇论文中提出了传说中的对角线方法(方法虽然巧妙但很简单,wiki上有我就不赘述)。

图灵机的不可判定问题便需要借助对角线方法。

而实数集“大于”自然数集这个事实,可以这么想:“无限×无限”比“无限×有限”大。

每个自然数是有限的,集合是一阶无限,自然数集就是一阶无限;相较之下,一个实数是一阶无限,集合又是一阶无限,那么实数的集合就是二阶无限。

这个一阶二阶只是我个人的说法,关于不同集合之间的大小关系,康托提出连续统假设,即希尔伯特第一问题,认为不存在一个基数绝对大于可数集而绝对小于实数集的集合,不过这跟今天的话题没有关系,不再展开。

回到正题:图灵机。

图灵机能够识别语言,而图灵机本身当然也可以由语言描述。

什么是语言?给定一个字母表∑,一个{[由∑中的字母组成的序列]的集合}就是∑上的一个语言(为了消除歧义,算式可以加括号,语言当然也可以)。

必须清楚这些概念中哪些是有限的,哪些是无限的:一个语言包含的字符串数可以是有限的也可以是无限的,但一个字母表上的所有语言的数目是无限的,而语言中任意一个字符串的长度是有限的。

首先要证明的是:一个字母表上所有语言构成的集合不仅是无限的,而且是不可数的。

这里需要借助无限二进制序列的集合来帮助证明。

一个无限二进制序列(即{0,1}组成的无限序列)是一阶无限,那么这些序列组成的集合就是“无限×无限”,可以通过对角线方法证明无限二进制序列是不可数的,也可以将实数集的元素唯一地映射到无限二进制序列集合。

用后者的方法,可以这样建立二者之间的映射:二进制序列每4个为一组,用8421BCD码编码,4位对应实数中的一位,再用1111表示小数点,这样每个实数总能映射到一个唯一的二进制序列,既然实数集不可数,那么无限二进制序列也不可数。

接下来证明,{无限二进制序列的集合B}与(任意字母表){∑上的所有语言组成的集合L}是同样规模的,仍然通过建立映射的方法。

设∑上所有字符串的集合按字典序排序成∑*={s1, s2, s3, ...},L中的每个语言A都对应一个二进制序列b:如果si∈A,bi=1;否则bi=0,这样的序列称作A的特征序列。

举个例子,如果∑={a,b},A是所有包含b的串构成的语言,则A的特征序列b如下:∑*={a, b, aa, ab, ba, bb, aaa, aab,...}A ={ b, ab, ba, bb, aab,...}b = 0 1 0 1 1 1 0 1 ,...反之,每个二进制序列b也能对应一个唯一的语言,所以L与B等势,又因为B是不可数集,所以{∑上的所有语言组成的集合L}也是不可数的。

好,明确了所有语言构成的集合是不可数的之后,我要回答下面这个问题:为什么图灵机集合是可数的?(reserve:哥德尔配数法)从图灵机的定义入手,图灵机是1个7元组(Q,∑,Γ,δ,q0,qaccept,qreject)。

每一台图灵机总是由有限个字符编码而成:1) 有限的状态集Q。

2) 有限的输入字母表∑。

3) 有限的带字母表Γ。

4) 有限的转换函数δ。

5) 1个起始状态q0。

6) 有限个接受状态qaccept。

7) 有限个拒绝状态qreject。

若上述每个元素都用二进制编码表示,任意一台图灵机都只需要有限个二进制位。

再将这些二进制串按照字典序排列,就可以得到一个{图灵机集合}->自然数集的一一对应。

好,给定一个字母表∑:[∑上的所有语言]的集合<=>[二进制无限序列]的集合<=>实数集<=>不可数集[所有图灵机]的集合<=>自然数集<=>可数集有不可数个语言,却只有可数个图灵机,语言的集合“大于”图灵机的集合,所以从本质上证明了必然存在图灵机不能识别的语言。

推论:必然存在图灵机不能判定的语言。

理由是图灵可判定语言的集合不会大于图灵可识别语言。

图灵可判定语言要求更严格,所以应该存在这样的语言:它是图灵可识别的,但同时不是图灵可判定的。

事实确实如此,图灵自己就给出了一个:A={<M, ω> | M描述一台图灵机,且M描述的机器接受ω}首先证明A是图灵可识别的(形式化证明太过繁琐,这里只给出很高层次的证明)。

设通用图灵机U这样运行:U接受参数<M, ω>,它可根据图灵机M的描述模拟M的行为,并在虚拟的M上计算ω。

如果M接受ω,那么U进入接受状态;否则拒绝。

依据定义以及通用图灵机的存在性,U能识别A,所以A是图灵可识别的。

证毕。

顺着这个证明走下去,如果M本身遇到输入ω时会陷入循环,那么模拟M的U也会陷入循环,所以U不是判定器。

如果U知道M在ω上不停机,那么它可以进入拒绝状态,问题是它不知道。

那么能判定A的图灵机存在吗?我们就假设存在H,使得:1)若M接受ω,则H(<M,ω>) =接受2)若M不接受ω,则H(<M,ω>) =拒绝根据H的定义,无论M接不接受ω,H总能停机。

进一步再假设有图灵机D,以H为子程序,接受一个描述图灵机的串<M>,在H上运行H(<M,<M>>),并返回相反的结果:1)若H(<M,<M>>)=接受,则D(<M>)=拒绝2)若H(<M,<M>>) =拒绝,则D(<M>)=接受也就是说,如果一台图灵机M接受描述它自身的串<M>,那么D(<M>)进入拒绝状态。

构造这样一台奇怪的D是为了让它做下面这件事情,现在对D输入描述它自己的串<D>,看看会发生什么:1)若D接受<D>,即H(<D,<D>>)=接受,则D(<D>)=拒绝2)若D拒绝<D>,即H(<D,<D>>) =拒绝,则D(<D>)=接受到底是接受还是拒绝呢?兜了一个圈子,D绕回原地,产生了矛盾。

所以D是不存在的,所以H也是不存在的,语言A不可判定。

证毕。

上述证明比较绕,我用一阶逻辑再改写一遍。

命题:1)P:存在语言A的判定器H2)Q:存在以H为子程序的图灵机D(描述见上)已知条件:1)P→Q:如果有H,总能设计出D2)┐Q:D是不存在的(证明见上)证明:1 P 假设2 P→Q 已知条件3 Q 1,24 ┐Q 已知条件5 ┴推出矛盾6 ┐P 假设不成立上面的证明中,图灵机D的构造简直是神来之笔,图灵怎么想到的?虽然之前的证明没有直接给出不可判定的语言,但已经从数量上证明有图灵机不能判定的语言,由于判定器的要求更严格,所以可以推断所有判定器构成的集合小于所有语言构成的集合。

这是个与“实数集的势大于自然数集”类似的命题,所以应该能用类似的方法——对角线方法证明。

好,尝试一下。

康托构造映射表格时,表格的每一行由一个自然数表示这是第几行,每一列也由一个自然数标识列数,对角线法构造出来的实数实际上是一行,然而这一行却和每一行都不一样。

刚才的证明我们看到,图灵机集合是可数集,可将其对应自然数,标识表格的每一行,那么每一列用什么标识呢?怎样让列数与行数相等呢?行和列的交叉处是什么呢?自然数/实数的例子中,每一行由一个自然数对应一个实数,在这个问题中,行由图灵机标识了,那么不难想到,每一行应该是一个语言。

语言又该如何表示?下面依次回答这些问题。

列应该用什么来标识?在对角线方法中,表格的行列数一致,行和列都用自然数集标识。

那么首先可以想到既然行用图灵机标识,那么列也可以用图灵机标识。

但是这样的话行列交汇处就没什么意义了,试问随意挑选的两台图灵机之间能擦出什么火花?脑子再转一下,图灵机与图灵机之间没有什么一般化的关系,图灵机识别的是语言,是字符串,那么将标识列的图灵机换成描述图灵机的串,既保持了行列数一致性,又让行列交汇处有了非平凡的意义!即,用M1, M2, M3...标识第1行、第2行、第3行……再用描述图灵机的字符串<M1>, <M2>, <M3>...标识第1列、第2列、第3列……行列交汇处就填入accept 或reject,表示一台图灵机是否接受描述某一台图灵机的串!这样,每一行刚好也就是一个语言,每一个部分的意义都正好是我们想要的。

<M1><M2><M3><M4>……M1acceptrejectrejectrejectM2rejectrejectacceptrejectM3acceptacceptrejectacceptM4rejectacceptrejectaccept…………为构造对角线准备的表格走到这一步,离结果就很近了。

相关文档
最新文档