科学网

 找回密码
  注册

tag 标签: 可计算性

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

[转载]165页论文或破解困扰爱因斯坦的“量子纠缠”!
quantumchina 2020-1-17 14:33
去年,科学家首次拍到“量子纠缠”的照片引爆互联网,爱因斯坦不愿承认的“幽灵”终于有了铁证。 量子纠缠 现在,纯数学和算法联系的证明将“量子怪诞性”(quantum weirdness)推向全新的高度。 爱因斯坦有句名言:量子力学应该允许两个物体在遥远的距离上瞬间影响彼此的行为,他称之为“幽灵般的超距作用”(spooky action at a distance)。 他去世的几十年后,实验证实了这一点,但是直到今天,人们仍不清楚大自然究竟允许远距离物体之间有多大程度的协调(coordination)。 近日,有五位研究人员说,他们已经解决了一个理论上的问题,表明这个问题的答案在原则上是不可知的。 这篇165页论文题为“MIP*=RE” 研究小组的165页论文发表在arXiv上,但尚未经过同行评审。如果证明成立的话,它可以一举解决纯数学、量子力学以及计算机科学分支一个被称为“复杂性理论”(complexity theory)的许多相关问题。 特别是,它回答了一个40多年来一直没有解决的数学问题。 研究结果从冯·诺依曼代数理论角度,反驳了Connes的嵌入猜想理论 这篇论文证明,由经典验证与多个量子理论验证相互作用而确定的语言类别MIP,相当于递归可枚举语言的类别RE。 研究人员证明建立在的量子低度测试的基础上,整合了最近的新成果,并与递归压缩框架相结合。研究结果的直接作用是,将Halting问题有效地简化为两人非本地量子纠缠值为1或至多为1、2的问题。 量子纠缠值的不确定性意味着对Tsirelson问题做出了否定回答:研究人员举例证明了量子张量积相关集的闭包Cqa严格包含于量子交换相关集Cqc。研究结果从冯·诺依曼代数理论角度,反驳了Connes的嵌入猜想理论。 论文摘要 换言之,这项研究的含义如下: (1)有一个协议,两个纠缠的证明者可以说服多项式时间检验者解决任何可计算问题的答案(!!),或者给定的图灵机真的停止运行了。 (2)在一个类似于Bell / CHSH博弈的两人证明博弈中,对于A和B而言,在数量无限的纠缠中,它们的表现要比在任何数量有限的纠缠中明显更好。 (3)没有算法可以估算出两人证明博弈的纠缠值(也就是说,在A和B使用尽可能最佳的策略并尽可能多地纠缠的情况下,不可能估计出A和B赢得博弈的可能性)。而是,此问题等效于Halting问题。 (4)A和B之间存在着某种类型的相关性,这些相关性可以使用无限的纠缠来产生,但不能通过任何有限的纠缠来近似。 (5)Connes的嵌入猜想是错误的,该猜想源于上世纪70年代的算子代数理论的中心猜想。 专家热议:我从没想过我会在有生之年看到这个问题被解决 如果他们的证明成立,“这将是一个超级美丽的结论”,荷兰代尔夫特理工大学理论量子物理学家Stephanie Wehner说。 本文的核心是复杂性理论中的一个定理的证明,它涉及到算法的效率。早期的研究表明,这个问题在数学上等同于“幽灵般的超距作用”问题,也被称为“量子纠缠”。 这个定理涉及一个博弈论问题,一个由两个玩家组成的团队即使不被允许互相交谈,也能够通过量子纠缠来协调他们的行为。与没有量子纠缠的情况相比,这使两个玩家都能“赢得”更多的钱。 作者们指出,但这两个参与者本质上不可能计算出一个最佳策略。这意味着不可能计算出他们理论上能达到多少协调。 论文合著者Thomas Vidick 加州理工学院的合著者Thomas Vidick说:“没有一种算法能告诉你量子力学中最大违背(maximal violation)是什么。” 伦敦大学学院的量子信息理论家Toby Cubitt说:“令人惊讶的是,量子复杂性理论一直是证明的关键。” 前两天该论文发表后,关于这篇论文的新闻迅速在社交媒体上传播,引发了不小的轰动。 Joseph Fitzsimons推文 “我本以为这是一个复杂的理论问题,可能需要100年的时间来回答。恭喜所有参与这项研究的学者。”新加坡初创公司Horizon Quantum Computing首席执行官Joseph Fitzsimons发推文说。 Mateus Araújo评论 “我勒个去!”另一位物理学家、奥地利科学院(维也纳)的Mateus Araújo说道:“我从没想过我会在有生之年看到这个问题被解决。” 论文结论:原则上,量子系统不能用“有限的”来近似 在纯数学方面,在法国数学家和菲尔兹奖得主Alain Connes之后,这个问题被称为Connes嵌入问题(Connes embedding problem)。这是算子理论(theory of operators)中的一个问题,它是由20世纪30年代为量子力学提供基础的努力产生的一个分支。 运算符是可以具有有限数或无限数行和列的数的矩阵。它们在量子理论中起着至关重要的作用,每一个运算符编码一个物理物体的可观测属性。 在1976年的论文“Classification of Injective Factors Cases II1, II∞, IIIλ, λ ≠ 1”中,使用运算符的语言,Connes提出一个问题:具有无穷多个可测量变量的量子系统是否可以用具有有限数的简单系统来近似。 但是这篇论文表明,答案是否定的:原则上,量子系统不能用“有限的”来近似。 物理学家Boris Tsirelson重新定义了这个问题,根据他的研究,这也意味着,不可能计算出两个这样的系统在纠缠时可以在空间上显示的关联量(correlation)。 研究结果可能没有技术意义,因为所有应用都使用“有限”的量子系统 这个证明令许多社会人士感到惊讶。“我确信Tsirelson的问题得到了答案,”Araújo在评论中补充说,这一结果动摇了他的基本信念,即“在某种模糊的意义上,自然在本质上是有限(finite)的。” 但是,研究人员才刚刚开始了解结果的含义。量子纠缠是量子计算和量子通信这些新兴领域的核心,可用于制造超级安全的网络。 特别是,通过测量通信系统中纠缠对象之间的关联量可以证明它是安全的,不会被窃听。 Wehner说,但是结果可能没有技术意义,因为所有应用都使用“有限”的量子系统。她说,实际上,甚至很难设想一个能在本质上“无限”的系统上测试“量子怪诞性”的实验。 复杂性理论、量子信息和数学的融合意味着很少有研究者说能够掌握这篇论文的方方面面。Connes表示,他没有资格发表评论。但是他补充说,他对这件事有多大的影响感到惊讶。“问题能深入到这个地步,而我从未预见到这一点,太不可思议了!” 清华博士一作,研究团队介绍 这篇论文是由悉尼科技大学、加州理工学院、德克萨斯大学奥斯汀分校和多伦多大学的五位研究者合写的。论文一作是悉尼科技大学量子软件与信息中心季铮锋教授。 季铮锋 季铮锋(Zhengfeng Ji),悉尼科技大学工程与信息技术学院量子软件与信息中心教授。他多年致力于量子计算机科学的研究,主要研究兴趣包括量子算法、量子复杂性理论、量子密码学等。 他于2002和2007在清华大学计算机科学与技术系获得学士和博士学位,师从应明生教授。毕业后,他成为中国科学院软件研究所的助理研究员。后来他移居安大略省滑铁卢,并于2008年在周边理论物理研究所和2011年在滑铁卢大学量子计算研究所担任博士后研究员。 Henry Yuen 论文通讯作者Henry Yuen是多伦多大学计算机科学与数学(联合任命)的助理教授。他是CS理论小组和量子信息与量子控制中心的成员。他还是滑铁卢大学量子计算研究所的会员。他的研究重点是量子计算、复杂性理论、密码学和信息论之间的相互作用。 参考链接: https://www.nature.com/articles/d41586-020-00120-6#ref-CR4 文章来源:新智元微信公众号
个人分类: 量子信息|1798 次阅读|0 个评论
反对角线:从理发师悖论到计算机的极限
热度 3 mayaoji 2018-2-2 16:27
反对角线:从理发师悖论到计算机的 极限 马耀基 1 、理发师悖论 先看两个著名的悖论。 理发师悖论 村子里有两类人,第一类人自己给自己刮胡子,第二类人不给自己刮胡子。 村里的理发师给自己立了一条规定:他给并且只给第二类人刮胡子。 按这条规定,理发师该不该给自己刮胡子呢? 如果他给自己刮胡子,他属于第一类人,按规定他不应该给自己刮胡子。 如果他不给自己刮胡子,那他属于第二类人,所以他又应该给自己刮胡子。 因此,他给自己刮胡子当且仅当他不给自己刮胡子。 还有个类似的悖论叫书目悖论。 书目悖论 有一些书,它的内容里出现自己的名字,而另一些书则不出现自己的名字。 现在有一本书,它的内容就是收录书的名字。它只包括第二类书的名字,即那些不出现自己名字的书。 这本书要不要把自己收录进去呢?如果它把自己收录进去,按规定它属于第一类书,所以它不应该自己收录进去。而它不把自己收录进去,又可推出它应该把自己收录进去。 2 、 反对角线方法 这两个悖论本质上是相同的,下面以书目悖论为例,分析这两个悖论产生的原因。 假设一共有四本书,分别是金庸的《碧血剑》《连城诀》《鹿鼎记》《侠客行》。根据它们的内容是否出现书的名字,绘制了下面这个表格。 表格里 √ 表示行里的书出现了相应列的书的名字, X 则表示不出现名字。比如第二行第一列是《碧血剑》,其他几列分别是 √ 、 X 、 √ 、 √ ,表示《碧血剑》这本书里出现了《碧血剑》《连城诀》这两个书名,而《鹿鼎记》《侠客行》这两个名字则没出现。 我们把收录书名的这本书叫《目录书》,因为《碧血剑》这本书出现了自己的名字,所以《目录书》不收录它,《连城诀》没出现自己的名字,所以目录书收录它,由此类推。 《目录书》那一行的符号,实际上是将相应列的对角线上的符号取反,比如对角线上《碧血剑》那一列的符号是 √ ,则《目录书》在相应列上的符号为 X ,对角线上《连城诀》那一列的符号是 X ,所以《目录书》在相应列上的符号为 √ 。 可见,目录书必然不同于那四本书里的任何一本,因为它和任何一本最少有一个地方不同。 因为《目录书》也是一本书,所以把它添加到表格的列中。问题是:下表右下角那个方格,应该是 √ 还是 X 。它是将对角线上的记号取反,现在对角线上的记号就是它自己。自己和自己相反,这是矛盾的。 理发师悖论和书目悖论的根源是这样的:给定一个集合,我们用反对角线方法构造出一个和原集合所有元素都不同的新元素(简称反例),当这个反例又属于原来的集合时,就出现了悖论。 举个假想的例子,我们要画一棵树,使得它和世界上所有的树都不一样。我们把全部的树编号,然后这样设计这棵新树:它在高度上跟 1 号树不同,叶子数量跟 2 号不同,树枝长短跟 3 号不同,……,总之它和每一棵树都最少有一个地方不同。显然,这将是一棵与众不同的树。但画完后我们发现它竟然和某棵树一模一样,咄咄怪事!悖论! 3 、罗素悖论及其他 利用反对角线方法,我们可以构造出很多悖论。最有意思的还是数学悖论,因为数学出现悖论事关重大,可能会动摇科学的大厦。最有名的数学悖论可能是英国哲学家罗素发现的悖论了,它实际上也是用反对角线方法构造出来的。 罗素悖论 集合有两种:自属集和非自属集。自属集是指集合本身是自己的一个元素,而非自属集则相反,自己不能作为自己的元素。比如 {1} 就是非自属集,因为 {1} 不是 {1} 的元素。而非石头集就是自属集,因为非石头集是所有不是石头的东西所组成的集合,而非石头集本身也不是石头,所以它也是非石头集的元素。 所有的非自属集放在一起组成一个集合(简称集合 A ),请问集合 A 是自己的元素吗,容易推出如果 A 属于自己则 A 不属于自己,如果 A 不属于自己则 A 属于自己。 如果用数学语言叙述罗素悖论,则两行就够了。 理查德悖论 理查德悖论和前几个悖论有点不同,前几个悖论如果用表格表示,它第一行和第一列的元素是相同的,比如书目悖论中第一行和第一列都是书名。而理查德悖论不是这样,它要用到编码方法才能构造反例,这个方法在后面会用到。 理查德是一位中学教师,他发现了下面的悖论。 自然数的某些性质可以用有限长的语句描述,比如“能被 2 整除”,“大于 5 ”等。现在给每个性质分配一个号码,这个号码也是自然数。 有的性质的编号数本身不具有它所编号的性质,这种数称为理查德数。举个例子,假设“能被 2 整除”这个性质被编为 7 号,那 7 就是理查德数,因为它不能被 2 整除。 有的性质的编号数本身具有它所编号的性质,这种称为非理查德数。假如“大于 5 ”这个性质被编码为 10 ,则 10 就是非理查德数。 可见,理查德数和非理查德数,也可用有限长的语句描述,它们本身也应该有编号。假设“是理查德数”这个性质的编号为 n ,现在问 n 是不是理查德数?容易得到: 如果 n 是理查德数,则它不是理查德数。如果 n 不是理查德数,则它是理查德数。 贝里悖论 一位叫贝里的图书管理员也提出了一个悖论,罗素称这是理查德悖论天才般的简化。它是这样的: 考虑“不能用少于 100 个汉字描述的最小正整数”这句话。 假设这句话描述了一个数,则这个数是不能用少于 100 个汉字描述的,但这句话本身少于 100 个字,矛盾。所以它没有描述这个数。 假设这句话没有描述一个数,这又与事实不符,因为它确实描述了一个数。 4 、反对角线方法的应用 我们在最后一部分再讨论如何解决这些悖论,这部分先讨论反对角线法在无穷集合上的应用。无穷集合理论是德国数学家康托创建的,也是他先把反对角线方法用到这个理论上。无穷集合有很多有趣的性质,数学家希尔伯特曾用无穷旅馆的例子来说明它们: 设想一家旅馆,里面有无限个房间,所有的房间都客满了。这时来了一位新客。按照日常的经验,旅馆客满就安排不下新的客人了,但无穷旅馆不一样。旅馆主人把 1 号房间的旅客移到 2 号房间, 2 号房间的旅客移到 3 号房间, 3 号房间的旅客移到 4 号房间等等,这样继续移下去。就这样无中生有般空出了 1 号房间,新客人就被安排住进了这个空房间。 把客人安排进旅馆,本质上是给每人分配一个不同的自然数。所有的客人组成了一个无穷集合,加进来一个客人还是无穷集合。这两个无穷集合每个元素都能分配一个不同号码,即这两个集合的元素都能和自然数形成一一对应,用数学的话来说这两个无穷集合都是可数的。 那是不是任意一个无穷集合都是可数的呢?下面来讨论这个问题。 定理 1 :可以给每个整数都分配一个不同的自然数号码,即整数是可数的 看起来不可能做到,因为整数有正有负,按照定义自然数就是正整数,它只是整数的一部分。但细想这件事不难,把所有的整数按下列顺序排序: 0 , 1 ,— 1 , 2 ,— 2 , 3 ,— 3 ,…… 排第一位的分配号码 1 ,第二位的分配 2 ,第三位的分配 3 ,……,这样问题就解决了。 用专业的话,整数集和自然数集的元素能形成一一映射。整数虽然包含了自然数,但严格来说两者是一样多的,因为按照数学定义,两个集合的元素一样多,就是指两者的元素能建立一一对应。 定理 2 :不可能给每个自然数集合分配一个不同的自然数号码 假设可以做到,那么我们用 S 1 、 S 2 、 S 3 ……来表示这些集合。把它们按顺序排列,用下面的表格来表示它们的元素,其中 √ 表示相应列的数字是相应行那个集合的元素, X 则相反。比如 S 1 包括 1 和 3 ,不包括 2 和 4 。 我们可用反对角线方法构造出一个新的集合,这个集合和表格里所有的集合都不相同。而按照假设,所有的自然数集合都在表格里了,矛盾。 所以假设错误,我们无法给每个自然数集合都分配不同的号码。 上面的证明可以推广: 任一集合都无法和它的幂集的元素形成一 一映射 。 定理 3 :不可能给每个实数分配一个不同的自然数号码 只要证明无法给 [0,1) 之间的实数分配不同的号码就行了。 假设可以做到,那将它们排列如下: a 0 、 a 1 、 a 2 、 a 3 、 a 4 、 a 5 ……。 每个小数都可以用无穷小数表示,比如 0.1=0.100000 ……,后面全是 0 。所以序列中的每个数可以展开如下(下面的每一个 a mn 都是 0 到 9 中的一个数): 用反对角线方法构造新的小数 D , D 的每一位小数都和对角线上的元素不同,这样得到的 D 不同于序列中的任一个小数。而 D 又在 [0,1) 之间,矛盾。所以不能给 [0,1) 的实数分配不同的号码,所以不可能给每个实数分配不同的号码。 (注释 1 ) 想一想,实数可以按自然数顺序排序的假设在证明中起到了什么作用?能不能把证明定理 3 的方法用于证明有理数不可能分配不同的号码,即定理 2 不成立,为什么? 定理 4 :存在无法用计算机计算的函数 首先说明,可计算、可用计算机计算、可用程序计算这些概念在这里是同一个意思。 (注释 2 ) 另外,为了简单,我们这里考虑的函数,变量都是自然数。 我们知道计算机能做很多运算,比如能进行加法运算。进行加法运算实际上是计算 z=x+y 这个函数。一个计算 z=x+y 的程序,就是输入 x 和 y 的值,输出 z 的值,即如果输入 2 和 3 ,它就输出 5 ,输入 3 和 4 ,它就输出 7 。函数 z=x+y 是二元函数,其中 x 、 y 是自变量, z 是因变量。又比如,函数 y=x 2 也是可以计算的,这个函数是一元函数, x 是自变量, y 是因变量。 无法计算的函数,是指不存在这样的程序:当输入自变量的值时,程序 总是 输出这个函数的因变量的值。 我们给所有的计算机程序分配自然数号码(或叫编码),就像每个人都有不同的身份证号码一样,每个程序也有不同的号码。这里编码的不单是指现在世界上存在的所有程序,而是指理论上所有可能的程序,这样的程序数量显然是无限的。 (注释 3 ) 程序能够编码,这是需要严格的证明的。这里省略证明,我们直接接受这个结论。 因为所有的程序都是可以编码的,所以所有计算一元函数的程序也可以编码。现在将所有计算一元函数的程序编号,将这些它们记为 P 1 , P 2 , P 3 ,…… P n ,……,每个程序对应着一个可计算函数。这些程序对应了所有可计算的一元函数,因为按前面的定义,能计算的函数就是能用程序计算的,而所有计算一元函数的程序都在这里了,所以可计算的一元函数也全在这里。 现在反对角线法构造函数 d : d(n)=2 ,如果 P n (n)=1 , d(n)=1 ,如果 P n (n) ≠ 1 ,或者 P n (n) 无定义。 ( P n (n)=1 ,表示当输入为 n 时,程序 P n 的输出是 1 。) 函数 d 与任何一个程序所计算的函数都不同,所以它是任何一个程序不能计算的。 容易证明,如果 d 是可计算的将导致矛盾。假设它是可计算的,则计算它的程序必然分配有号码,假设是 s ,则函数 d 就是程序 P s 计算的函数, P s (s) 的值是什么?按照定义,如果 P s (s)=1 , d(s) ≠ 1 ,但程序 d 就是程序 P s ,所以矛盾。同样,如果 P s (s) ≠ 1 ,也有矛盾。 这里能够构造出无法计算的函数 d ,本质原因是函数的数量比程序多。 5 、进一步的讨论 反对角线方法,是从一个给定集合构造新元素(即反例)的方法。当这个反例又属于原来的集合时,就出现了悖论。 那怎么解决悖论呢?有人认为反例实际上不存在,比如在理发师悖论和书目悖论中,符合规则的理发师和目录书不存在。但这个方法不能用于罗素悖论,因为对任意一个性质,所有符合这个性质的元素就组成一个集合,这叫概括原则。解决罗素悖论有两种主要思路。第一种思路是不允许数学命题出现自指,从而无法构造反例。罗素自己采用了这种思路,他认为自指会出现恶性循环,所以禁止自指,在此基础上他建立了类型论。另一种思路是将反例排除在原集合之外。比如有的人不承认概括原则,认为把所有非自属集放在一起不是一个集合,所以构造出来的反例不是原来集合中的元素,因此不构成悖论。按这种思路,数学家策墨罗重新规定了成为集合的一些条件,建立了公理集合论,这理论里不会出现罗素悖论。 使用反对角线法构造悖论关键在两点: 1 、能够构造反例, 2 、反例属于原集合的一员。 要构造反例,必须先知道对角线上的值,所以必须要知道表格中第一行的元素和第一列的元素。如果第一行和第一列不仅元素相同而且排列顺序相同,我们一定能构造出反例。理发师悖论、书目悖论、罗素悖论都是这样,比如书目悖论中,第一行和第一列都是那些书名且顺序相同。如果第一行和第一列的元素不同,第一行的元素是自然数,比如理查德悖论,这时第一列的元素必须能够按自然数顺序排列(即可数的),才能构造反例。比如构造不可计算的函数 d 时, 要用到对角线 P n (n) 的函数值,这需要先给程序编号才知道 P n 是什么,不知道 P n 就无法构造反例。 在上文证明定理 2 、 3 、 4 时,先假设第一列的元素是可数的,然后构造反例出现矛盾,从而推出假设是错的。 这里假定了数学不会出现矛盾。实际上在建立公理集合论后,人们还没有在数学上发现矛盾。 有时候虽然能构造反例,但反例不属于原集合的一员,就不会出现矛盾。比如将所有有理数排列,然后用反对角线法构造一个反例,但由于我们不能保证这个反例就是有理数,因此不能用反对角线法证明有理数不可数。 注释: 1 、这里的证明是不严格的。因为同一个小数有不同的表示方法,比如 0.100000 …… =0.099999 ……。用反对角线方法构造出来的 D ,看上去虽然和序列中的任一个小数不同,但不能保证它们就不是相同的小数。不过对上面的证明稍作修改,就可以弥补这个漏洞。 2 、这篇文章说的计算机是指图灵机,我们现在所用的计算机本质上都是图灵机。按照丘奇图灵命题,可计算函数和图灵机可算的函数这两个概念是等价的。 3 、不同的程序,功能可以是相同的。比如程序 A ,对输入的变量先加 1 ,再加 2 ,然后将结果输出。程序 B 则是先加 2 ,再加 1 。程序 A 和 B 是不同的,所以它们分配到的号码是不同的,但是功能相同。 相关文章 说谎者悖论:从鳄鱼难题到数学证明的极限
个人分类: 逻辑学|11440 次阅读|6 个评论
计算机算不了的函数是什么样的?
热度 1 mayaoji 2018-1-30 12:39
计算机算不了的函数是什么样的? 马耀基 现在人工智能很热,人们在争论计算机会不会有一天真正具有智慧,超越人类。我们目前还不知道这个问题的答案,但确实知道计算机有很多事情做不了,就连有的函数计算机都算不了。不是人类能力有限设计不出程序来算它们,而是在理论上这些函数就是无法计算的。(可计算,可用计算机计算,可用程序计算,这些概念在本文是同一个意思。) (注释 1 ) 插一句,说起无法计算的函数,我想起一道数学题:请写出一个无法画出图像的函数。 (注释 2 ) 开始觉得神奇,竟然有这样的函数?看了答案后觉得很简单。这里说的不能计算的函数也是一样,看似不可思议,其实很容易理解这些函数为什么不可计算,甚至无需懂得编程,当然第一个人想到这些函数很困难。 举个例子。我们要画一棵树,使得这棵树和世界上所有的树都不一样。假设所有的树都是绿色的,我们只要把它画成黄色的就行了。但用这种方法,你要知道现有的树共同特征是什么。但就算对树一无所知,理论上我们也知道能画出一棵与众不同的树。我们把全部的树进行编号,然后这样设计这棵新树:它在高度上跟 1 号树不同,叶子数量跟 2 号不同,树枝长短跟 3 号不同,……,总之它和每一棵树都最少有一个地方不同。同样,是否存在不能计算的函数呢?回答这个问题我们无需知道具体的可计算的函数长什么样,只要能设计出和每个可计算函数都不同的函数就行了。 我们能画出不同的树,是因为画上的树比真实的树多,与此类似,我们能找到不可计算的函数,本质上是因为函数比程序多。 这篇文章主要的目的是介绍两个不能计算的函数,并且说明它们为什么不能计算。 1 、函数 先复习一下什么是函数。 y=x+1 , z=x+y ,两者都是函数,前者是一元函数, x 是自变量, y 是因变量。后者是二元函数,其中 x 、 y 是自变量, z 是因变量。为什么它们是函数呢?因为自变量的值确定时,因变量有唯一的值与之对应,比如 y=x+1 中,当 x=1 时, y=2 ,当 x=2 时, y=3 ,而函数 z=x+y 在 x=2 , y=3 时, z=5 。在函数中,自变量的值确定了,允许因变量不取任何值,但不允许因变量的取值超过一个。比如函数 y=10/x ,当 x=0 时, y 不取任何值,这时说函数在 x=0 处没有定义。 x 2 +y 2 =1 ,这个方程不是以 x 为自变量的函数,因为 x=0 时,对应的 y 有 1 和 -1 两个值,同样它也不是以 y 为自变量的函数。 什么是函数?如果当自变量的值确定时,因变量有 0 个或 1 个值与之对应,那这些变量间的关系就构成了函数。自变量只有 1 个时,就是一元函数,两个时就是二元函数,由此类推。 无法计算的函数,是指不存在这样的程序:当输入自变量的值时,程序 总是 输出这个函数的因变量的值。 2 、程序 一个计算函数 y=x+1 的程序,就是输入 x 的值,输出 y 的值,即如果输入 2 ,它就输出 3 ,如果输入 5 ,它就输出 6 。如果计算的是二元函数,输入的是两个数,输出的结果还是一个数。 有些程序是 不会结束的,它陷入死循环,永远运行下去。比如有一个程序,当输入数字小于 10 时,它将这个数字加 1 ,然后输出,如果输入的数字大于或等于 10 ,它就不停地进行加 1 运算,永远不停下来。那这个程序计算的是这个函数:当 x10 , y=x+1 。当 x=10 时, y 无定义。 每个程序都计算一个函数。当函数有定义时,程序输出函数值,当没有定义时,程序永远不结束。 (注释 3 ) 我们给所有的计算机程序分配号码(或叫编码),这些号码都是自然数。就像每个人都有不同的身份证号码一样,每个程序也有不同的号码。这里编码的不单是指现在世界上存在的所有程序,而是指理论上所有可能的程序,这样的程序数量显然是无限的。 (注释 4 ) 每个程序都可以分配不同的号码,看上去是显而易见的事情。实际上并非如此,比如我们就无法给每个实数分配号码,因为实数的数量太多了。程序能够编码,这是需要严格的证明的。这里省略证明,我们直接接受这个结论。 因为所有的程序都是可以编码的,所以所有计算一元函数的程序也可以编码。我们把计算一元函数的程序称为一元程序。 3 、无法计算的函数 我们这里构造两个无法计算的函数,一个是反对角线函数,一个是程序结束函数。思路大概这样: 给所有一元程序编码,这些程序对应了所有能计算的一元函数。因为按前面的定义,能计算的函数就是能用程序计算的,而所有的一元程序都在这里了,所以可计算的一元函数也全在这里。构造一个函数,这个函数与任意一个可计算的一元函数,都最少一个在某一个输入值时输出不同。这个函数叫反对角线函数。反对角线函数和所有可计算的函数不同,所以是不可计算的。 另一个是程序结束函数,它能判断任一个程序在任一个输入下是否结束。程序结束函数是无法计算的。有两种证明方法。 1 、如果程序结束函数能够用程序计算,那反对角线函数就能计算。 2 、如果程序结束函数能够用程序计算,那就能设计出一个程序,当这个程序把自己的号码作为输入时,会出现矛盾。 下面具体讨论这两个函数。 为了简单,我们这里考虑的函数,变量都是自然数。 A 、反对角线函数 给所有计算一元函数的程序分配号码,将这些程序记为 P 1 , P 2 , P 3 ,…… P n ,……,每个程序对应着一个可计算函数。 现在构造反对角线函数 d , d 的定义是这样的: d(n)=2 ,如果 P n (n)=1 , d(n)=1 ,如果 P n (n) ≠ 1 ,或者 P n (n) 无定义。 ( P n (n)=1 ,表示当输入为 n 时,程序 P n 的输出是 1 。) 函数 d 的值总是和下表对角线中的不同,所以叫反对角线函数。 函数 d 与任何一个程序所计算的函数都不同。因为 n=1 时, d(1) ≠ P 1 (1) ,在 n=2 时, d(2) ≠ P 2 (2) ,……, n=m 时, d(m) ≠ P m (m) 。所以函数 d 是任何一个程序不能计算的。 还可从另一个角度思考,如果 d 是可计算的将导致矛盾。假设它是可计算的,则计算它的程序必然分配有号码,假设是 s ,则函数 d 就是程序 P s 计算的函数, P s (s) 的值是什么?按照定义,如果 P s (s)=1 , d(s) ≠ 1 ,但程序 d 就是程序 P s ,所以矛盾。同样,如果 P s (s) ≠ 1 ,也有矛盾。 这里的证明关键是程序可以用自然数编码,如果这个条件不成立,证明就无效了。因为定义 d(n) 的值时,要用到 P n (n) 的值,这需要先给程序分配号码才知道 P n 是什么。 B 、程序结束函数 (也称图灵机停机函数) 反对角线函数为什么不能计算呢?看上去似乎是可以计算的,先判断 P n (n) 是否有定义。如果 P n (n) 无定义,则 d(n)=1 ,如果 P n (n) 有定义,就运行程序 P n ,看输入为 n 时 P n 的输出是多少,然后根据规则给 d(n) 赋值。 困难在于判断 P n (n) 是否有定义,即输入为 n 时,程序 P n 是否结束。如果能设计出一个判断程序,对任意的 n 它都能判断 P n (n) 是否结束,则反对角线函数 d 就是可计算的。因为我们知道函数 d 无法计算,所以这样的程序是不存在的。这个(不存在的)判断程序所对应的函数是程序结束函数,也叫图灵机停机函数,它是不可计算的。 程序结束函数 h ,具体来说是这样的: h (m,n)=1 ,如果程序 P m 在输入 n 时,最终会结束。 h (m,n)=2 ,如果程序 P m 在输入 n 时,永远不会结束。 (注释 5 ) 我们还可以从另一个角度思考这个问题。 可以证明,如果存在计算函数 h 的程序 H ,则我们能构造出一个程序 G ,当程序 G 把自己的号码作为输入时会出现矛盾。 程序 G 是这样的。 输入 m ,程序 G 运行程序 H(m,m) ,如果 H(m,m) 输出 1 ,则 G 永远不结束,如果如果 H(m,m) 输出 2 ,则 G 结束。 程序 G 是计算一元函数的,所以 G 也有一个号码,假设这号码是 t ,即程序 G 就是程序 P t 。输入 t 时, G(t) 会结束吗?按定义,如果 P t (t) 结束,则 h(t,t)=1 ,则 G(t) 不结束永远运行。但程序 P t 就是程序 G ,矛盾。同理, h(t,t)=2 时,也会导致矛盾。所以程序 G 不存在,因此程序 H 不存在。 注释: 1 、这篇文章说的计算机是指图灵机,我们现在所用的计算机本质上都是图灵机。按照丘奇图灵命题,可计算函数和图灵机可算的函数这两个概念是等价的。 2 、这样的函数很多,比如狄利克雷函数:当 x 是有理数时, y=1 ,当 x 是无理数时, y=0 。 3 、假设有一个程序,当输入 x 不等于 0 时,它输出 y=10/x 的值,当输入 0 时,输出“输入错误”。严格来说,它算的不是 y=10/x ,它算的是另一个函数,这个函数在 x ≠ 0 时,和 y=10/x 一样,但 x ≠ 0 时, y 仍然有取值。如果算的是 y=10/x ,则 x=0 时,程序不结束。 4 、不同的程序,功能可以是相同的。比如程序 A ,对输入的变量先加 1 ,再加 2 ,然后将结果输出。程序 B 则是先加 2 ,再加 1 。程序 A 和 B 是不同的,所以它们分配到的号码是不同的,但是功能相同。 5 、有人可能会疑惑,当输入为 (m,n) 的时候,判断程序将 m 解码成相应的程序,然后再判断这个程序在输入 n 时是否结束,这样的判断程序 H 为什么不能存在呢?假设这样的判断程序存在,它在判断 P m (n) 是否结束时,有时候要运行 P m (n) ,如果 P m (n) 永远不结束,程序 H 不知道它暂时还没算完,还是永远算不完,因此程序 H 只好继续等待,什么也不输出。因此程序 H 计算的肯定不是函数 h ,因为函数 h 对任意的 n 都有定义。 科学花果山 相关文章 从理发师悖论到计算机的极限
个人分类: 逻辑学|13924 次阅读|1 个评论
CiE2016(Computability in Europe,可计算性在欧洲)(3)
热度 1 liuyu2205 2016-7-3 10:44
CiE(Computability in Europe)是目前关于可计算性理论研究规模最大的国际会议,由于其理论与实践、数学与计算机的跨学科性质,让会议别具风格,简介几点: 一,CiE的前瞻性 会议开始,给参会者发的资料中就已经有了CiE2017在芬兰的Turku举行的广告!而在我参加的别的国际会议中,一般是在本届会议期间产生下一届会议的举办单位的,原来Barry Cooper和同道在筹备第一届CiE时就有了将CiE持续进行下去的决心,他们把2005年在Amsterdam举办的第一届CiE命名为:Computability 2005 : First Meeting of Computability in Europ (CiE) ,足见CiE的前瞻性和忧患意识。 二,CiE独特的会议组织 由于CiE立足于可计算性理论及跨学科的研究,涉及到数学和计算机方面的议题,然而数学和计算机领域的国际会议的组织有很大的不同,计算机方面的国际会议通常需要投稿,稿件有淘汰率,被接受的稿件进会议论文集(proceedings),其稿件的淘汰率影响着会议的水平和知名度,是谓pre-proceeding;然而数学方面的国际会议一般没有会议论文集,参会者交简单的abstract,来报告自己的工作成果,然后再找机会发表自己的论文。CiE为了兼顾数学和计算机方面的学者,保证会议的质量,采取了有严格淘汰率的“Conference proceedings”和满足一般要求的“Abtstract Booklet”(见 http://blog.sciencenet.cn/home.php?mod=spaceuid=2322490do=blogid=986781 ),提交abstract的人若被接受可做“informal presentations”,这样为与会者提供了尽可能大的交流机会! 三,CiE的“Women in Computability Workshop” CiE为了鼓励女性学者参与研究,从2007年起就设立了特别的“Women in Computability Workshop”,此Workshop一般是年长的学者报告,分享她们的经验,希望对年轻的学者有帮助和启发。 这次的Workshop有三个女性学者报告,第一个来自Ecole Polytechnique fédérale de Lausanne的俄罗斯籍学者,报告题目是“计算机不相信眼泪”,讲俄罗斯妇女从事计算机工作的历史;第二个也是俄罗斯籍学者,回顾自己是如何走上曲折的逻辑研究道路的;第三个是伊朗籍学者,讲述自己在纽约大学从事密码研究及各种社会活动的经历。 此外,还有一个特别的报告,是一个年轻的伊朗女性学者,因为人不能来,故通过Skype带着头巾做报告,大家给予了亲切的关注。
个人分类: 不确定性问题和算法讨论|2877 次阅读|1 个评论
CiE2016(Computability in Europe,可计算性在欧洲)(2)
liuyu2205 2016-7-2 11:06
从CiE2016会议( https://lipn.univ-paris13.fr/CIE2016/index.php )回来了,或许可以用“相见恨晚”来形容与CiE2016的相遇吧!有来自欧美近百个学者参会,会议给我的第一印象就是洋溢着一种忧患意识,为此,我不得不再说Barry Cooper(1943--2015),是他与同道一起创建CiE系列会议及“Association Computability in Europe(可计算性在欧洲协会)”,并且他是“图灵百年纪念活动(Alan Turing Centenary)”的推手,。。。 2003年,Barry提议创建一个学术网络,他说[1]: -2003年,基于阿兰·图灵的科学遗产,我创办了一个叫“可计算性在欧洲”的“书呆子”学术网络,并企图得到欧盟的资助,结果失败了。 « In 2003 I founded a geeky academic network called Computability in Europe (CiE), based on Alan Turing’s scientific legacy, and attempted - unsuccessfully - to get EU funding. » 关于图灵的科学遗产,Barry说到[1]: « 。。。The end of that year (1936)saw the publication of a thirty-six page paper by a young mathematician, Alan Turing, claiming to solve a long-standing problem of the distinguished German mathematician david Hilbert. A byproduct of that solution was the first machine-based model of what it means for a number-theortic function to be computable, and the description of what we now call a Universal Turing Machine. 。。。 What is less often remembered is Turing’s theoretical contribution to the understanding of the limitations on what computers can do. There are quite easily described arithmetical functions which are not computable by any computer, however powerful. And even the advent of quantum computers will not change this. » Barry提醒人们,图灵1936年的那篇奠基性文章是为证明著名的“判定问题”而提出图灵机的,但是后来人们只关注图灵论文的副产品-图灵机,而不大记得图灵的初衷了,为此Barry欲创建“可计算性在欧洲”的学术网络,希望能回归图灵的精神。 然而他们的提案几次遭拒,评审报告认为他们的提案过于集中在传统的可计算性理论,而没有留意“新的计算范式”,但是这样的拒绝却成为Barry及同道坚定发展“可计算性”研究的决心和行动。 抱持着这样的决心,Barry在2007年提出举办“图灵百年纪念活动”的倡议,并坚持2012年的CiE会议在英国的剑桥(Cambridge)举行,Barry任图灵百年纪念活动的顾问委员会主席(Turing Centenary Advisory Committee,TCAC),将“图灵百年纪念活动”推向了世界!待“图灵百年纪念活动”结束,Barry不愿到此终止,又将“Alan Turing Year”变成了“Alan Turing Years”,。。。 Barry与CiE一路走过曲折的十几年,却不幸于去年(2015)离开人世,“饮水不忘挖井人”,今年CiE会议的主题之一是纪念Barry Cooper。 参考资料: 1,Benedikt Löwe,Barry Cooper (1942-2015): The engine of Computability in Europe »,Computability, the Journal of the Association CiE, Vol 5, Number 1, 2016.
个人分类: 不确定性问题和算法讨论|2855 次阅读|0 个评论
CiE2016(Computability in Europe,可计算性在欧洲)(1)
热度 1 liuyu2205 2016-6-25 16:32
我们的NP理论以哲学和中国思想为指导,建立在可计算性理论的基础上。我周一(6月27日)去巴黎参加“可计算性在欧洲国际会议”( https://lipn.univ-paris13.fr/CIE2016/index.php ),现简介会议,与大家分享: 一,会议简介 CiE(Computability in Europe,可计算性在欧洲)是一个跨学科的国际年会,旨在促进与可计算性相关的学科的发展,包括数学、计算机科学及各种自然和工程学,如物理学和生物学方面的应用,也包括关于计算的哲学和历史的研究。 今年的CiE会议在巴黎举行(June 27th 2016 - July 1st 2016),其口号是:“通用的追求(Pursuit of the Universal)”。今年也是图灵的奠基性论文《论可计算数及其在判定问题上的应用》( On Computable Numbers, with an Application to the Entscheidungsproblem)发表80周年,论文提出的图灵机为诸学科,如证明论、人工智能、广义可计算性、型信息和自然语言的基本角色、可计算性和可定义性支持的生物信息学等,指出了发展方向。会议提出口号“通用的追求(Pursuit of the Universal)”,是为纪念图灵对跨越科学和人文的通用计算框架的追求。 二,S Barry Cooper, 1943--2015 Barry Cooper是“可计算性在欧洲协会(Association Computability in Europe)”的创始成员和前主席,已经于2015年10月26日去世。 Barry Cooper是英国逻辑学领军人物,也是可计算性理论尤其是度理论(degree theory)的重要学者。Barry Cooper是图灵百年纪念活动的顾问委员会主席(Turing Centenary Advisory Committee,TCAC),多年积极推动和倡导回归图灵提出的基本问题,发展与可计算性相关的跨学科。鉴于近些年可计算性的相关研究未受到学术界应有的重视,Barry Cooper于2005年在阿姆斯特丹主办了第一届CiE2005,遂有如今拥有上千人的“可计算性在欧洲协会”。 今年CiE2016会议的主题之一是纪念Barry Cooper。 三,会议论文集 附上会议分Conference proceedings和Abstract Booklet,也可在会议网址上可以查阅。 bfm%3A978-3-319-40189-8%2F1.pdf abstract-booklet.pdf
个人分类: 不确定性问题和算法讨论|1955 次阅读|1 个评论
图灵1936年论文解读(1):可计算性
热度 2 liuyu2205 2016-6-15 12:19
“可计算性(Computability)”是可计算性理论的核心概念,具有深刻的数学内涵和哲学底蕴,图灵、丘奇、哥德尔等前辈的工作为此概念打下了坚实的基础,应该说对此概念的理解已经不成问题了,然而从“NP是可计算的”流行观念看,此概念并未得到人们充分而正确的解读,这或许是造成千禧年难题“P versus NP”的最根本原因。 我们从回答“什么是可计算性?”说起,来解读学术界流行观点的回答,指出“可计算性”蕴含着“机器”与“问题”二个不同的层次: 一,学术界回答“什么是可计算性?”的典型答案 1,维基( https://zh.wikipedia.org/wiki/可计算性 ) 可计算性(calculability)是指一个实际问题是否可以使用计算机来解决。 2,维基( https://en.wikipedia.org/wiki/Computability ) Computability is the ability to solve a problem in an effective manner. It is a key topic of the field of computability theory within mathematical logic and the theory of computation within computer science. The computability of a problem is closely linked to the existence of an algorithm to solve the problem. One goal of computability theory is to determine which problems, or classes of problems, can be solved in each model of computation. 3,Michael Sipser的书“Introduction to the Theory of Computation” 此书是计算理论领域的经典著作,常被大学选为教材。书中干脆就不谈“可计算性”,直接用“可计算函数”代替(p. 234): COMPUTABLE FUNCTIONS:A Turing machine computes a function by starting with the input to the function on the tape and halting with the output of the function on the tape. 4,Stanford Encyclopedia of Philosophy( http://plato.stanford.edu/entries/computability/ ) A mathematical problem is computable if it can be solved in principle by a computing device. 二,解读“可计算性(Computability)”与“可计算的(computable)” 可见,上述回答实际上是在答“什么是可计算问题(computable problem)?”,而不是直接答“什么是可计算性(Computability)?”,那么,我们不禁要问:“computability”与“computable problem”是一回事吗? 对于“computable problem”的标准答案是由丘奇-图灵论题给出的(https://en.wikipedia.org/wiki/Church–Turing_thesis): J. B. Rosser (1939) addresses the notion of effective computability as follows: Clearly the existence of CC and RC (Church's and Rosser's proofs) presupposes a precise definition of 'effective'. 'Effective method' is here used in the rather special sense of a method each step of which is precisely predetermined and which is certain to produce the answer in a finite number of steps. Thus the adverb-adjective effective is used in a sense of 1a: producing a decided, decisive, or desired effect, and capable of producing a result. In the following, the words effectively calculable will mean produced by any intuitively 'effective' means whatsoever and effectively computable will mean produced by a Turing-machine or equivalent mechanical device. Turing's definitions given in a footnote in his 1939 Ph.D. thesis Systems of Logic Based on Ordinals, supervised by Church, are virtually the same: † We shall use the expression 'computable function' to mean a function calculable by a machine, and let 'effectively calculable' refer to the intuitive idea without particular identification with any one of these definitions. The thesis can be stated as follows: Every effectively calculable function is a computable function. Turing stated it this way: It was stated ... that 'a function is effectively calculable if its values can be found by some purely mechanical process.' We may take this literally, understanding that by a purely mechanical process one which could be carried out by a machine. The development ... leads to ... an identification of computability† with effective calculability. († is the footnote above, ibid.) “如果一个函数的值能被某个纯粹的机械过程求得,那么此函数就是能行可计算的”,可见,“可计算函数”是须要前提的,此前提就是存在着一台可以求解函数值的机器,换句话说,“可计算性”涉及到“问题”与“机器”二个层次,“机器的能力”为本,“问题的性质”为末。于是,用“可计算问题”代替“可计算性”,实际上是忽略了“可计算性”蕴含的二个层次的关系,从而造成认知混淆,。。。 所以,对于“可计算性”的理解应该回到对“机器的能力”的认知上,即回到对“图灵机”的认知上来。追本溯源,“图灵机”是在图灵1936年那篇重要论文《论可计算数及其在判定问题上的应用》( On Computable Numbers, with an Application to the Entscheidungsproblem)中提出来的,让我们一起回到这篇具有历史性意义,但又令人望而生畏,至今使人无法深入的奠基性的论文。 三,《论可计算数及其在判定问题上的应用》中关于“图灵机”的论述 图灵在论文中开门见山指出,“按照我的定义,一个数是可计算的,如果它的十进制的表达能被机器写下来。”就是说,图灵强调预期的结果一定要被机器写下来,才能认为一个数是可计算的。 接下来,他开始设计这样的机器,将之称为“computing machine”。于“Computing machine”,图灵又区分了“circular machine”和“circle-free machine”,“circular machine”是因某些因素如“死循环”而无法写下计算结果的机器;而“circle-free machine”没有这样阻碍,能写下预期结果,换句话说, “circle-free”表达了图灵称之的“可计算性(computability)”。 然而,一个问题是否“computable”须要判断,这就是图灵这篇奠基性的论文的主题,回答“可计算性的判断”,进而回答著名的希尔伯特第十问题,。。。 让我们回到问题:“什么是可计算性?”,相对于流行答案“可计算性是指一个实际问题是否可以使用计算机来解决”,应该说:“可计算性是指算法(图灵机)具有解决一个实际问题的能力”,“可计算问题是指存在着具有可计算性的算法的问题”。。。 附: 1,图灵论文“On Computable Numbers, with an Application to the Entscheidungsproblem”原文: https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf 2,《论可计算数及其在判定问题上的应用》的前言,第一,二章部分译文: “可计算数”简单说是,其十进制的表达用有限的手段可计算的实数。虽然本文的主题表面上讲可计算数,然而几乎可以同样容易定义和研究变量为整数或实数或可计算变量的可计算函数,可计算谓词等。在每种情况下,基本的问题是一样的,我选择可计算数来解释,是因为这样可以涉及最少的技术细节。不久我希望给出可计算数与可计算函数等之间的关系,这将包括用可计算数表达的实数变量的函数理论。按照我的定义,一个数是可计算的,如果它的十进制的表达能被机器写下来。 在§9,10,我给出一些论点,想指出可计算数包括所有的能自然看作可计算的数。比如,它们包括代数数的实数部分,Bessel函数的大小的实数部分,PI, e等等。然而可计算数并不包括所有可定义的数。 尽管可计算数类如此之大,在许多方面类似于实数类,它仍然是可枚举。在§8章,我调查某些证明似乎证明相反的论点。通过正确应用一个论点,可达成一个与哥德尔的结论表面上相似的结论。这些结果可有价值的应用,尤其是,指出(§11)Hilbertian Entscheidungsproblem没有解。 The “computable” numbers may be described briefly as the real numbers whose expressions as a decimal are calculable by finite means. Although the subject of this paper is ostensibly the computable numbers, it is almost equally easy to define and investigate computable functions of an integral variable or a real or computable variable, computable predicates, and so forth. The fundamental problems involved are, however, the same in each case, and I have chosen the computable numbers for explicit treatment as involving the least cumbrous technique. I hope shortly to give an account of the relations of the computable numbers, functions, and so forth to one another. This will include a development of the theory of functions of a real variable expressed in terms of computable numbers. According to my definition, a number is computable if its decimal can be written down by a machine. In §§ 9, 10 I give some arguments with the intention of showing that the computable numbers include all numbers which could naturally be regarded as computable. In particular, I show that certain large classes of numbers are computable. They include, for instance, the real parts of all algebraic numbers, the real parts of the zeros of the Bessel functions, the numbers X, e, etc. The computable numbers do not, however, include all definable numbers, and an example is given of a definable number which is not computable. Although the class of computable numbers is so great, and in many ways similar to the class of real numbers, it is nevertheless enumerable. In §8 I examine certain arguments which would seem to prove the contrary. By the correct application of one of these arguments, conclusions are reached which are superficially similar to those of Gödel . These results {231} have valuable applications. In particular, it is shown (§11) that the Hilbertian Entscheidungsproblem can have no solution. 1,计算机器(Computing machine) 我们已经说过,可计算数是那些可用有限的手段计算而得的表达为十进制的数,这需要较明确的定义。在第九章之前,不对定义作真正合理化的说明,目前我仅说理由是人类的记忆需要限制。 可将一个在计算实数的人与某机器比较,此机器具有有限数目的状态:q1;q2;…qk(m-格局,m-configurations)。给机器提供一条纸带(类似纸张),机器在上面运行,纸带被分为段(方格,squares),每个方格上放置一个符号。在任何时刻,只有一个方格,比如第r个方格,放置符号了S(r),“在机器里”,我们可以称此方格为“扫描方格”,“扫描方格”里的符号称为“扫描符号”,“扫描符号”是机器“直接感知”的唯一符号。然而,通过变化格局,机器可以有效记忆已经“见过(扫描)”的符号。机器在任何时刻可能的行为由m-格局qn,扫描符号S(r)决定,这对(qn,S(r))称为“格局”:于是,格局决定机器可能的行为。在有些格局,扫描方格是空的(即没有符号),机器就在扫描方格上写下一个新的符号;在别的格局,它擦掉扫描符号。机器也可能改变正在扫描的方格,但是仅仅向左右移动一个方格。此外,对任何一个这样的操作,m-格局可能变化。某些写下的符号将形成数字序列( sequence of figures),它是正在计算的表达为十进制的实数,别 的符号只是“辅助记忆”的粗糙纪录,只有那些粗糙纪录可能被擦掉。 我的观点是,这些操作包括了所有用在计算一个数时所需的操作,为此论点辩护要在读者较熟悉机器理论后才会较容易。在下一节,我将着手发展此理论,假设读者已经知道“机器”,“纸带”,“扫描”等。 1. Computing machines. We have said that the computable numbers are those whose decimals are calculable by finite means. This requires rather more explicit definition. No real attempt will be made to justify the definitions given until we reach §9. For the present I shall only say that the justification lies in the fact that the human memory is necessarily limited. We may compare a man in the process of computing a real number to a machine which is only capable of a finite number of conditions q1, q2, ..., qR which will be called “m-configurations”. The machine is supplied with a “tape”, (the analogue of paper) running through it, and divided into sections (called “squares”) each capable of bearing a “symbol”. At any moment there is just one square, say the r-th, bearing the symbol S(r) which is “in the machine”. We may call this square the “scanned square”. The symbol on the scanned square may be called the “scanned symbol”. The “scanned symbol” is the only one of which the machine is, so to speak, “directly aware”. However, by altering its m-configuration the machine can effectively remember some of the symbols which it has “seen” (scanned) previously. The possible behaviour of the machine at any moment is determined by the m-configuration qn and the scanned symbol S(r). This pair qn, S(r) will be called the “configuration”: thus the configuration determines the possible behaviour of the machine. In some of the configurations in which the scanned square is blank (i.e. bears no symbol) the machine writes down a new symbol on the scanned square: in other configurations it erases the scanned symbol. The machine may also change the square which is being scanned, but only by shifting it one place to right or 1eft. In addition to any of these operations the m-configuration may be changed. Some of the symbols written down {232} will form the sequence of figures which is the decimal of the real number which is being computed. The others are just rough notes to “assist the memory”. It will only be these rough notes which will be liable to erasure. It is my contention that these operations include all those which are used in the computation of a number. The defence of this contention will be easier when the theory of the machines is familiar to the reader. In the next section I therefore proceed with the development of the theory and assume that it is understood what is meant by “machine”, “tape”, “scanned”, etc. 2,定义 自动机(Automatic machines) 如果每个阶段机器的运动(在第一章的意义上)完全由格局确定,我们称此机器为«自动机»(a-machine)。 为了某种目的,我们可能使用一些机器(choice machines or c-machines),它的运动部分由格局决定。当这样的机器到达一个这样模棱两可的格局时,只有当外界的操作做某个任意的选择,它才能继续运行。如果我们用机器处理公理系统时会出现这样的情况,在本文中,我只处理自动机,因此往往忽略前缀a-。 计算机器(Computing machines) 如果一台机器打印两类符号,第一类(称为数字)全是0和1,其它被称为第二类符号,则机器将被称为“计算机器”。如果给机器装置一条空白纸带,让它运动起来,从正确的初始m-格局出发,机器打印的第一类符号的子序列称作“机器计算的序列”;在表达为二进制的十进制实数前放上小数点,称作“机器计算的数”。 在机器运动的任何阶段,扫描方格的数,在纸带上所有符号的完整序列,及m-格局,被说成是描述那时刻的“完全格局”。机器和纸带在一系列完整格局之间的变化被称作“机器的运动”。 循环和非循环机器(Circular and circle-free machines) 如果计算机不再写下有限数目的第一类符号,被称作“循环(Circular)”;否则,被称作“无循环(circle-free)”。 如果一台机器达到一个格局,从此不再运动,或者即使继续运动,只能打印第二类符号,而不能打印任何第一类符号,此机器则是“circular”。“circle-free”的意义将在第8章解释。 可计算序列和可计算数(Computable sequences and numbers) 一个序列被说成“可计算的”,如果能够通过一台“circle-free machine”计算而得。一个数是可计算的,如果它与由“circle-free machine”计算的数只差一个整数。 我们应该避免混淆,说可计算序列比说可计算数更经常。 2. Definitions. Automatic machines. If at each stage the motion of a machine (in the sense of §1) is completely determined by the configuration, we shall call the machine an “automatic machine” (or a-machine). For some purposes we might use machines (choice machines or c-machines) whose motion is only partially determined by the configuration (hence the use of the word “possible” in §1). When such a machine reaches one of these ambiguous configurations, it cannot go on until some arbitrary choice has been made by an external operator. This would be the case if we were using machines to deal with axiomatic systems. In this paper I deal only with automatic machines, and will therefore often omit the prefix a-. Computing machines. If an a-machine prints two kinds of symbols, of which the first kind (called figures) consists entirely of 0 and 1 (the others being called symbols of the second kind), then the machine will be called a computing machine. If the machine is supplied with a blank tape and set in motion, starting from the correct initial m-configuration, the subsequence of the symbols printed by it which are of the first kind will be called the sequence computed by the machine. The real number whose expression as a binary decimal is obtained by prefacing this sequence by a decimal point is called the number computed by the machine. At any stage of the motion of the machine, the number of the scanned square, the complete sequence of all symbols on the tape, and the m-configuration will be said to describe the complete configuration at that stage. The changes of the machine and tape between successive complete configurations will be called the moves of the machine.{233} Circular and circle-free machines. If a computing machine never writes down more than a finite number of symbols of the first kind it will be called circular. Otherwise it is said to be circle-free. A machine will be circular if it reaches a configuration from which there is no possible move, or if it goes on moving, and possibly printing symbols of the second kind, but cannot print any more symbols of the first kind. The significance of the term “circular” will be explained in §8. Computable sequences and numbers. A sequence is said to be computable if it can be computed by a circle-free machine. A number is computable if it differs by an integer from the number computed by a circle- free machine. We shall avoid confusion by speaking more often of computable sequences than of computable numbers.
个人分类: 图灵论著专研与精译工作群|22323 次阅读|4 个评论
NP是可计算的吗?- “问题”的分类
热度 4 liuyu2205 2015-12-16 16:03
在现有的NP完备理论(Theory of NP-Completeness)中,一个典型的观念就是:“NP是可计算,但是难计算的”,如此,就有如下的问题分类:                               问题                    ┌───────┴───────┐            可计算 (可判定) 问题       不可判定问题(判定问题)                ┌───┴───┐             易计算(P) 难计算(NP)       因为流行的NP定义(Nondeterministic Polynomial time)基于NDTM(NonDeterministic Turing Machine),而NDTM的本质是“可判定,可计算”,至此NP就与“判定问题”脱离了关系,而相应的NP完备理论也与可计算性理论无关了。 “NP是可计算,但是难计算”的理由是,“NP存在着指数时间复杂度(精确求解)的算法,但目前还没找到多项式时间(精确求解)的算法”。我们认为,这样的观念存在着认知错误,其根源在于人们未深究“可计算性”的本质。 首先,“算法”是计算“实例”的,若一个算法具有“多项式时间复杂度”,表明机器的计算能力能胜任问题实例的规模增长,也就是图灵机的“可计算性”的意义。在这种情况下,可以推导出:对应的“问题”是“可计算的”,这实际上就是P的定义。 但是若算法具有“指数时间复杂度”,则说明机器的计算能力不能胜任问题实例规模的增长。比如:基于“穷举法”求解“SAT问题”的DPLL算法,由于其搜索空间是指数型,故相应的算法复杂度是“指数型”:O(2^n),n是“SAT问题”实例的规模。虽然DPLL能计算一些SAT问题实例,却不能一般性地推导出:DPLL能计算任何SAT问题实例,即不能说“SAT问题是可计算的”,所以: 1,当输入规模是“常量”时,针对“SAT问题实例”,“难”但“可计算”; 2,当输入规模是“变量”时,针对“SAT问题”,就“难”到“不可计算”了。 这就是我们反复分析的“实例与问题、常量与变量”所涉及到的“个别与一般”的二个不同层次,这类似于“人”的二个不同层次,比如说:“保持公共场所卫生,人人有责”,就不能说成“人类有责” 。正是在此意义上,我们认为:NP不是难计算,而是“难”到不可计算! 由于NP毕竟还是需要用计算机来“计算”的,为避免悖论的“不可说”,我们把NP定义为“不确定性问题(Nondeterministic Problem)”,而不称“不可计算问题”;把求解NP的算法定义为“不确定性算法(Nondeterministic Algorithm,NP-Algorithm)”,是有新的问题分类:                              问题                    ┌───────┴───────┐           可计算问题(P)   不确定性问题(NP,判定问题) 如此,相应的理论就是与“可计算性理论”相对的“不确定性理论”(NP理论)了。 由此可见,我们的NP(Nondeterministic Problem)定义的基础是可计算性理论、图灵机和判定问题(Entscheidungsproblem),与流行的NP(Nondeterministic Polynomial time)定义有本质的区别,旨在还原NP消失了的“不确定性”。
个人分类: 不确定性问题和算法讨论|6983 次阅读|20 个评论
可计算性理论的简单小结
williammilo 2010-3-14 21:31
我的博客已经搬家到 xiongbox.com 欢迎访问! 本文永久链接 http://xiongbox.com/可计算性理论的简单小结/ 1. 可计算性理论研究计算的一般性质的数学理论,也称算法理论或能行性理论 。它通过建立计算的数学模型(例如抽象计算机),精确区分哪些是可计算的,哪些是不可计算的。 2.计算的过程 就是执行算法的过程 。可计算性理论的重要课题之一,是将算法这一直观 概念精确化 。算法概念精确化的途径很多,其中之一是通过定义抽象计算机,把算法看作抽象计算机的程序。通常把那些存在算法计算其值的函数叫作可计算函数。因此,可计算函数的精确定义为:能够在抽象计算机上编出程序计算其值的函数。这样就可以讨论哪些函数是可计算的,哪些函数是不可计算的。 3.图灵机是一种在 理论计算机科学中广泛采用的抽象计算机,用于精确描述算法的特征 。可用一个图灵机来计算其值的函数是可计算函数,找不到图灵机来计算其值的函数是不可计算函数。可以证明,存在一个图灵机U,它可以模拟任何其他的图灵机。这样的图灵机U称为通用图灵机。通用图灵机正是后来出现的存储指令的通用数字计算机的理论原型。 4.图灵机的停机问题是不可判定的,即不存在一个图灵机能够判定任意图灵机对于任意输入是否停机。图灵机的停机问题是半可判定的。图灵机的停机问题是很重要的, 由它可以推出计算机科学、数学、逻辑学中的许多问题是不可判定的 。 5.可计算性理论中的基本思想、概念和方法,被广泛应用于计算机科学的各个领域。建立数学模型的方法在计算机科学中被广泛采用。递归的思想被用于程序设计,产生了递归过程和递归数据结构,也影响了计算机的体系结构。 λ演算被用于研究程序设计语言的语义,例如,表处理语言就以λ转换演算为理论基础 。
个人分类: 电子信息工程与计算机科学|7076 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-16 03:05

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部