逻辑和计算机
从原理上说,计算机是一个无比简单的东西,就是一个逻辑处理器,计算机所做的所有工作最后都是转化成逻辑运算来执行的。所以,任何能进行基本逻辑运算(非,与,和)的东西,都可以用来构成计算机。计算机的构想早在在17世纪就提出来了,不过只能用机械方式。
第一个真正现代意义上的计算机是用电子管实现的,但是它的应用非常有限,庞大,奇贵,速度慢,而且耗能巨大。还有一个致命的缺陷,就是可靠性好不了。
现在的CPU集成了几亿只器件,如果用电子管,意味着上亿个插件,上十亿个焊点,这样复杂的东西没有办法保证质量,更不可能大规模生产。计算机的发展赖于集成电路的进步。
计算机的广泛应用,以至于完全改变了人类的生活,其硬件基础是上个世纪前30年以爱因斯坦为首的那一拨人做的,有了量子物理和相对论,才能有凝聚态物理,才能有集成电路,接下来才可能有计算机,网络的广泛使用。
记得曾经在网上有人讨论爱因斯坦和爱迪生哪一个更牛,这实在有点过分,两个人完全不在一个档次,而且差得很远。爱因斯坦是一个科学家,《维基百科》说也是一个思想家,我以为不错,他奠定了现代物理学的基础,对人类产生了根本的影响,极大地改变了人类的生活以及我们对这个世界的理解,《时代杂志》把他评为上个世纪最伟大的人物,毫不过分。
爱迪生只是一个发明家,发明了白炽灯,留声机这一类应用的产品而以。他的那一套发明的方法已经过时,产品也没有人用了。比如美国已经不生产白炽灯,将来的照明肯定是用发光二极管,效率接近于完美,寿命极长,这也是建立在爱因斯坦的理论基础之上的。
总的说来,科学家对人类的影响是最大的,永久的,什么政治家,帝国不过是过眼云烟罢了。
计算机软件的基础是数理逻辑,它可以看成是上个世纪数学取得的最重要的进展,几乎改变了数学的整个面貌。建立的时间和现代物理基本上在同时,计算机科学可以看成是数理逻辑在这个领域的一个具体运用。当然,一般的“码工”可能用不着知道数理逻辑,那是因为有人为他们弄出了某种计算机语言,但对于那些弄出语言的人,没有数理逻辑作为基础是不可能。
这个问题这样来讲也许容易一点,计算机的界限在哪里。不能说计算机能做什么,因为它能做的事太多了,只能说计算机不能做什么,或者说是人工智能的问题。这个词好像容易引起误解,因为要严格定义人工智能就得定义什么是人的智力,或者思维,而人的思维是一个无法定义的东西,我们弄不清楚。
这个问题得从数学方面来探究,因为计算机说到底是一个逻辑处理器,这是计算机的硬件所决定的,无法改变,这个问题就就能变成:逻辑能干什么?
这个问题主要由三个人的工作而得以阐明,弗雷格,罗素,哥德尔。这是数学最奇妙的一点,数学的一些基础研究在开始的时候,根本看不到有什么用处,只是一些游戏式的东西,或者哲学问题。但是,后来的发展却使这些东西变得有极大的实用价值。那个时候的人根本就不知道什么是现在的计算机。
弗雷格的名字恐怕大多数人都没有听说,但他却是数理逻辑的奠基人,被认为是亚里士多德以后最伟大的逻辑学家。罗素有了集合论这个工具,在弗雷格的基础之上想要完成一件无比宏伟的工作,想把全部数学的基础建立在逻辑的上面。当然,罗素并不是要为计算机做什么,他不怎么不关心这种事,而是出自于一种哲学上的思考,这就是所谓的奥卡姆剃刀。
在弗雷格之前,数学和逻辑可以说是分开的东西。如果数学是一个假设,逻辑是另一个假设(不是所有的人都承认数学只是一个假设的,这个问题我在谈维特根斯坦时比较详细地讨论过,这里不妨当做一个假设接受下来,并不影响下面的讨论),那么把它们变成一个东西就有极大的价值,因为奥卡姆剃刀说:“若无必要,勿增实体”,少一个假设,自然出错的可能将会减少,这可以说是科学的一个基本原则。当然,如果数学就是反映了客观实在,那么更应该能够统一。
但是,罗素失败了,因为他发现了所谓的罗素悖论,到了哥德尔不完备定律做了结论,那不可能成功,就像哥德尔所说:“有些事实被认知为真,但不必然可证。”当然,要是数学不是必然可证的话,那么逻辑怎么能是数学的基础。虽然罗素失败了,但是这些人的努力却极大地推动了数学和哲学的发展,可以认为构成了上个世纪数学和哲学的主流,而且,他们的工作在后来就构成了计算机科学的基础。
图灵被广泛地认为是计算机科学之父:“图灵在他的重要论文《论可计算数及其在判定问题上的应用》,对哥德尔1931年在证明和计算的限制的结果作了重新论述,他用现在叫做图灵机的简单形式裝置代替了哥德尔的以通用算术为基础的形式语言。”《维基百科》这段话大致说明了图灵和哥德尔的关系,图灵不过是把哥德尔的定律用在计算机上(图灵机可以看成是一种理想计算机),这种一致性的背后就是图灵机和形式语言说到底都是逻辑。
图灵最重要的工作是:“停机问题(halting problem)是逻辑数学中可计算性理论的一个问题。通俗的说,停机问题就是判断任意一个程序是否会在有限的时间之内结束运行的问题。该问题等价于如下的判定问题:给定一个程序和输入, 程序在输入下是否能够最终停止。
艾伦·图灵在1936年证明了,一个可以解决停机问题的通用算法是不存在的。这个证明的关键在于对计算机和程序的数学定义,这被称为图灵机。停机问题在图灵机上是不可判定问题。这是最早提出的决定性问题之一。
用数学语言描述,则其本质问题为: 给定一个图灵机 T,和一个任意语言集合 S,是否 T 会最终停机于每一个。其意义相同于可确定语言。显然任意有限 S 是可判定性的,可数的(countable)S 也是可停机的。
停机问题本质是一阶逻辑的不自洽性和不完备性,类似的命题有理发师悖论、全能悖论等。”(本篇所有引用都来自《维基百科》,例外注明)
这里就我自己的理解来解释一下,你要计算机干一个活,必须要知道它能不能胜任,也就是在有限的时间里能不能得到一个结果,不然的话,就是眼前一片黑,所谓理论的指导作用就是这个意思,实际上就是要了解计算机一个什么东西,我想这一点的重要性不难理解。
毫无疑问,语言是人类最重要,也是最伟大的工具,但是,仍然只是一个工具,用于人与人之间的沟通。那么对于一个工具来说,最要紧的就是知道它能够做什么,也许更重要的是要知道它不能做什么,比如说你知道汽车不能在水里开肯定比能开多快要重要得多。在语言哲学家看来,过去哲学的荒谬之处就在于对语言泛用,而根本不知道语言的局限性,就像他们一直在水里开汽车,还在宣称感觉好极了,而且还边开边领悟到了这个世界的真谛。
语言哲学和停机问题是有关联的,它们都是要企图找到一条线,那些是做不到的事情,一个是针对语言,另一个是针对计算机,而且都是以数理逻辑作为基础的,这一点也决不是偶然的。
在维特根斯坦看来,我们真正能理解的,能够达到一致的东西都必须以逻辑作为基础,因为逻辑是一个天生的东西,大家都是一样的。除此以外,达到一致是不可能的,就像你不可能说清楚什么是漂亮。
如果我们认可维特根斯坦关于语言只能确实地表达逻辑结构,那么从计算机的角度来理解语言就会容易一些。如果一些计算机的程序和数据库是一模一样,那么当然,对同一个问题它们的结论也必然是同样的。所以也许可以说,人与人的不同就在于各自程序和数据库并不一样,这个不一样可以认为是与遗传和早年的经历和教育有关,恐怕没有两个人可能一模一样,所以说,人与人的不同是不可以避免的。用维特根斯坦的话来说,人与人的不同就在于各自的原子命题不同,出发点不同,所以各人眼中的世界是不可能一样的。
而哥德尔告诉我们,在逻辑的基础之上,我们不能建立一个无所不包而完美的数学体系。用图灵的话来说,一个可以解决停机问题的通用算法是不存在的。这个问题可以这样来看,我们要让计算机解决哥德巴赫猜想(任一大於2的偶數,都可表示成兩個質數之和),写了一个程序,从小到大尝试将这样的偶数分成两个素数的和。如果它遇到一个不能被分解为两个素数之和的 偶数,它就停机并输出这两个偶数;否则,它就一直运行下去。这样一来,问题就可以变成判断计算机能不能停机,知道计算机会不会停机就是解决这个猜想。很多数学猜想实际上都可以转化成停机问题,所以说,如果有一个通用办法,我们就可以证明很多数学猜想。
但是,图灵告诉我们,没有通用算法,只能有针对各个不同的问题的办法,当然,如果我们找到了一个办法来判断哥德巴赫猜想的停机问题,就是解决了这个猜想。由于计算机是一个逻辑运算的机器,这样我们就能理解哥德尔的说法,不是说哥德巴赫猜想不能用逻辑证明(所谓证明就是逻辑),而只是说我们不能建立一个无所不包而完备的数学体系。那么当然,在逻辑的基础之上,我们也不能建立一个理想的语言体系来说出所有的东西,因为数学可以看成是一种语言,而且是比日常语言要简单得多。
进一步来说,对于计算机,娼妓和淑女的区别仅仅是两个字的代码不同,不可能有自己的好恶感。从这个角度,我们也容易理解伦理学,美学都是与逻辑无关的东西,因此达不到一致,就根本不是哲学所应该讨论的问题。就像罗素所说,所谓好坏与美丑一样,都是各人自己的喜爱,就像萝卜白菜,
逻辑是一个有限的东西,所以计算机不可能什么都能做;同样,逻辑的有限也就造成了语言的有限,用语言表达的所谓绝对真理一定有逻辑上的毛病。这种真理我们无法断定存不存在,但就是有,也是不能用语言说出来的。因此,人的所知非常有限,我们只能依靠逻辑,而逻辑有限。
我们也许还能这样说,如果我们能构造一台完美的计算机,能够解决一切数学问题,那么当然这台计算机可以是一个绝对的参照,其它计算机都要以它来确定对错。但是,哥德尔告诉我们在逻辑上这是不可能的;同理,也就不可能有一个人能做到这一点,没有人能知道什么绝对真理,而让我们可以无条件的追随。那么当然,怀疑和批判就是我们永远必须的。
当然,如果是神那就是另一个故事了,因为神是超人的,宗教与逻辑无关。有人有另一种说法,神其实是靠人来解释的,也可以说是人造的。
所以说,计算机不但不可能是莎士比亚,也不可能写出《红楼梦》,而且,甚至有些数学理论都不是用计算机能得到的,得依靠人的直觉,人的创造能力不能是逻辑的,爱因斯坦那种天才人物永远是我们需要的。
哥德尔是一个奇人,极为低调,家人从别人那里才知道他在数学界的地位。很多人认为他是上个世纪最伟大的数学家,被誉为数学上的爱因斯坦。与他同时的另一个大天才诺依曼曾经在那个问题上作过不小的努力,但却没有成功。
“在普林斯頓時,哥德爾和愛因斯坦成了很好的朋友。後人常將他們比較。哥德爾和愛因斯坦都在自己的範疇有極為重大的貢獻,很聰明,有好奇心,直率。但愛因斯坦性格開朗外向,這點和哥德爾大相径庭。愛因斯坦的死對哥德爾的情緒有很大打擊。”
下面转录几段哥德尔的轶事(以下三段不是来自《维基百科》):“哥德尔曾透露他和爱因斯坦的友谊是基于他们之间观点的不同而不是一致。哥德尔晚年在广义相对论里取得重要成果,并于1951年被授予爱因斯坦奖。爱因斯坦晚年说:“我自己的工作没啥意思,我来上班就是为了能有同哥德尔一起散步回家的荣幸。”我总有些好奇,这二个天才在一起会谈些什么?我们能不能理解?
不过“罗素在普林斯顿访问时,每周都去爱因斯坦家,同爱因斯坦,哥德尔,泡利讨论。他流露出失望:“他们仨都是流亡的犹太人,也都见多识广,但对形而上学都有德国倾向。哥德尔根本就是个柏拉图主义者。"其实哥德尔不是犹太人。”哥德尔相信有神论,而罗素一直对基督教持批评态度,重要原因就是柏拉图的哲学是基督教哲学(经院哲学)直接来源,而批判柏拉图则被罗素视为自己的终身任务。
“数 学家、经济学家摩根斯顿和爱因斯坦同是哥德尔入美国籍的证人(那时入籍要证人)。去移民局的路上,哥德尔号称可以证明美国宪法逻辑上会导致独裁。爱因斯坦 和摩根斯顿都建议哥德尔不要在移民官面前提这事,但哥德尔还是提了。爱因斯坦吸引了移民官注意力,哥德尔顺利变成公民。”这么伟大的一个逻辑学家有这种看法,恐怕是不错的。
“他自幼多病,而且從小就患了强迫症(疑病症)。他還患過抑鬱症。後來他在普林斯頓的醫院絕食而死,因為他認為那些食物有毒。”“哥德爾的妻子Adele Nimbursky 比哥德爾大六歲。哥德爾21歲兩人認識時,Adele 已婚且在夜總會 Der Nachtfalter 工作。他們的婚姻遭到哥德爾家人反對,但有情人終成眷屬,在1938年9月20日結婚。他們沒有小孩。”天才看来和我们这些普通人相距甚远。
我去过普林斯顿高等研究院,那是这二个天才最后工作的地方。那是一个初春,阳光灿烂,但树荫处仍然可见积雪,春风依旧带着阵阵寒意。就像那些美国漂亮的校园,那里开阔而人迹稀少,不由有了一些感叹,这二人的工作完全改变了世界,改变了每一个人生活方式,但是,这里却如此寂寥!
不过这倒是与他们秉性相符,淡漠甚至有些厌恶名利,安安静静做自己喜欢的事情最好。不过我毫无疑问地相信,只要这个世界上还存在科学和数学,他们就绝不会被人遗忘!