《暗时间》读书感想(一)

  最近在读刘未鹏的《暗时间》,读到P180,第三篇 跟波利亚学解题,第六章 康托尔、哥德尔、图灵——永恒的金色对角线,第二小节 “停机问题”。

  在这里我发现了一些我自己像不太清楚,疑惑不解的地方。

  PS:电子版地址 http://blog.csdn.net/pongba/article/details/1336028

  首先我来描述一下我从阅读到感到困惑的过程。

  我卡住的地方的前一章是第六篇第五章(为什么有必要知其所以然)。然后第六章开始要讲一些逻辑或者说一些具体问题的推理过程。于是,我觉得应该顺着第五章的做法走,要知其所以然。

  于是我开始顺着作者书写的思路走,试图知道每个我认为应该注意到的层次的细节问题,而不是关键的地方被“显然”、“易知”等等手法一笔带过。所以当我看到——现在,我们从这个God_algo出发导出一个新的算法——这句话的时候我仿佛看到了“显然”、“易知”等著名的手法。

bool God_algo(char* program, char* input)
{
     if(<program> halts on <input>)
         return true;
     return false;
}
bool Satan_algo(char* program)
{
     if( God_algo(program, program) ){
        while(1); // loop forever!
        return false; // can never get here!
     }
     else
        return true;
}

  我不知道这个Satan_algo是为什么会出现在这里,怎么来的,干什么的,然后后面看着作者的文字证明过程好像是那么回事,但是感觉我读完之后没有自己的思考,按照作者的思考路径接受起来也马马虎虎,我说不上什么地方有问题。可能我觉得最敏感的,最让我如鲠在喉的就是上面的这个while(1);吧。这一行以及下面的return false;这一行的组合貌似在告诉我这里有些没有白纸黑字明文写着的默认前提条件、性质、定理之类的东西。然后找朋友讨论之后他觉得是我自己太纠结了,这里的while(1);就是为了在反证法的过程中找一个特例,加上while(1);就说明这个停机问题是一个悖论,不加就说明停机问题的程序是存在的。

  所以也就是说,Santa_algo这个如此特别的算法是纯粹是为了用反证法证明图灵停机问题,而人为设计出来以做有悖论产生的例子。

  学习理解到这里还是比较正统的主流思想,但是我始终还是无法释怀while(1);我总觉得有什么秘密藏在里面,由于我说不出理由来,所以我能做的只是去寻找类似的问题作为参考比照——悖论。

 

  然后从这里开始是个分水岭,上面部分表示我承认确实是图灵停机程序在一个如此“巧妙设计”的问题中是被其反证为了不存在。然而我更在意的是这下面部分的内容,因为上面部分的证明过程就像《暗时间》作者刘未鹏自己在书中抨击的“欧几里德式教科书”,然而我觉得我下面进行的应该是他所推崇的“独立思考”。

  在开始之前我要说明一下我大概要思考的问题的范围,虽然目前我还没有非常有逻辑、有体系的考虑周全,但我觉得还是应该用一句话来概括一下,也许以后项想明白了之后可以再回头来看看。

  我想要搞清楚的是,悖论的产生是由于逻辑本身有缺陷,还是例子中隐藏着逻辑的错误使用

  这里可能说得有点绕,简单举个不是特别恰当的例子来说,比如你拿到一个几何题,你发现用你学过的几何逻辑怎么都无解。那么问题是究竟是你学得几何逻辑根本就不完善以至于解不出这个题,还是问题本身就有问题,又或者是你没有用对。因为你解其他大部分题都解得出来。

  由于我不是一个数学科班出身,数学功力也很烂,所以我只能从一些既有的资料来分析。

  让我们来看一些经典悖论。

  引用地址:http://zh.wikipedia.org/wiki/%E6%82%96%E8%AE%BA

经典悖论

  今天时间有点晚了,先写到古希腊的四大悖论吧。这四大悖论基本上大家一看就能知道大概逻辑错误在哪里。

  两分法悖论,忽略了物体的运动还有时间这个因素。

  芝诺悖论,这个芝诺悖论其实是一个悖论集合,中文wiki上解释的不是特别清楚,有兴趣可以去看看english版的。

  阿喀琉斯悖论,这个悖论是由于芝诺悖论中文wiki混乱漏掉的。大致的说明可以去google 人龟赛跑,也很容易发现用到现有的高等数学中的极限的概念也很容易知道悖论在哪里出现不合理的推理。

  飞矢不动,同两分法悖论类似吧。

  游行队伍悖论,这个悖论中很明显的错误是由于忽略了参照物。

  以上这四个古希腊悖论在现在看来都是很容易发现问题的所在的,那是因为当时的科学水平不够,人们对于某些在当时的认知与当时科学水平所推导出的矛盾的地方不理解,因此才产生的悖论,拿到现在来给一个高中生看也许都能看到问题的所在,因为古希腊时物理还没有这么多的内容,数学中还没有引入极限,等比数列求和等知识。

  好吧,先写到这吧,太晚了。

 

  第二次书写,时间是第一次写之后的2个星期。

  在这段时间内,我看完了《暗时间》,然后发现我第一次书写的内容有点像是无意义的对我所直觉认为的“真理”的探寻。

  还是先接着把第一次要说的说完吧。

  钱包悖论和Braess悖论看了悖论描述之后很容易发现他们是一种类型的悖论,错误的地方也类似。实际上钱包悖论的错误在于误导了双方的想法,Braess悖论的错误在于误导了广大司机对于约定的认识。

  谎言者悖论、苏格拉底悖论、唐·吉诃德悖论也都很类似,都是运用了一种类似某个人说自己说的是错的。有点类似于罗素悖论。很不错,在这种悖论里面我们目前找不到哪里有不合逻辑的地方,因为一切似乎都是跟着逻辑走的。只是某人说自己说的是错的类似于表示这样一个命题:A的存在证明A的不存在。可以想见这是一个非常的特殊的命题,似乎听起来怪怪的,但是你却在现有的逻辑中找不出他有什么地方是不对的,就好像是所谓的“阳谋”,你感觉他有问题,但是你就是说不出来问题出在哪里。等你由此命题得出悖论的时候你才发现结果确实有问题,那么到底是不是因为原因有问题呢,用逻辑的方法无法判断和肯定,你只是会觉得怪怪的。

  后面的那些悖论我就不一一说明了,大致都是和谎言者悖论一样的悖论,确实是找不出其条件在逻辑上的不合理,但是推导出的结果就是错误的或者是不确定的或者是与条件相矛盾。

  总结一下就是说如上这些悖论,得出以下信息:

  1.出现比较早的悖论,在当时的科技水平下看是不符合逻辑的,或者说当时的逻辑和理论是不完备的,但是后来由于科学的发展,相关的逻辑和理论扩充了,覆盖到了之前那些有矛盾的地方,于是,那些悖论,在我们现在看来,已经不是悖论了,而是条件上来说就是逻辑残缺的。

  2.其他的比较现代的悖论,有些看起来像是“阳谋”,有些看起来条件是合情合理,但是结果却是截然不同的。

  3.由1中的悖论来联想2中的悖论,我们是否能猜想等到若干年之后,当科技发达到一定水平之后,2中的悖论可以被转换为1中悖论的类型。

  4.若步骤3能一直进行,则是否当科技发展到一定程度的时候,悖论将完全消失?

 

  所以当第一次内容写完的接着几天内,我看了那些悖论的资料后,心中的想法就是如上4点。

  接着,我就继续看《暗时间》。看他讲了Y Combinator、哥德尔不完备性定理等等。看完之后我发现了我想知道的以上4点的答案。(限于篇幅和问题的复杂度,我建议对以下结论的得出过程感兴趣的人直接去读《暗时间》中“康托尔、哥德尔、图灵”这一章的内容。)

  1.正如我所说,确实是由于科技水平的限制产生的这些悖论。

  2.这些悖论之所以看起来像“阳谋”,是因为首先我们自然地认为我们的逻辑是完备的,但是却又找不出来为什么会有这样的悖论产生。

  3.这样的转换过程确实能在科技发展的过程中进行。

  4.引用《暗时间》P204的一句话,“哥德尔定理其实就是说明了无论你给出多少个公理,即无论你建立多么完备的公理体系,这个系统里面都有由你的那些公理出发所推导不到的地方,这些黑暗的角落,就是人类直觉之光才能照射到的地方!”。当然,我的观点,哥德尔定理如果用在他自身,也说明他会有不完备性,当然,除非我们能建立出推翻哥德尔定理的理论,否则,在此之前,我们的公理体系将永远都是不完备的,这就是所谓的“科学无止境”。

 

posted on 2012-07-29 00:59  九江北  阅读(443)  评论(0编辑  收藏  举报

导航