人生中的一大快乐 - 突然发现世界上有另外一个人和你思考同样的问题,并且还想到了一块儿。
序
这是一本让我激动不已的书籍,忽然发现自己曾经想过的问题也是众多天才和大师尝试回答的问题,自己顿时不觉得孤独和寂寞了。
生命是计算机和混沌的产物–《复杂》
恰好,我在得到App中购买了王立铭教授的《生命科学五十讲》,一边在听王教授讲解生命到底是什么,如果要制造生命,最重要的要解决什么问题呢?一个是能量从哪来,另外一个是自我怎么复制。
王教授说到1994年,约翰·沃克用技术手段,观察到了ATP合成酶,这个蛋白质大分子就像我们现实中的发电机。它有一个能够转动的旋转头,旋转头有3个叶片,两两之间相隔120度。
不能不感叹这个蛋白质的立体结构实在是太精巧,太美了。它是几十亿年生物演化的产物,同时居然和人类自己创造出的机器,在功能和结构上那么相像。
下一个问题就是自我复制,毫无疑问我们都知道关键是DNA,可是DNA的自我复制的模式是怎么样的呢?王立铭教授说深入浅出,通俗易懂。整好在这个时候我读完了《复杂》这本书,看完冯诺依曼对图灵机的实现的时候,我再次为冯诺依曼和图灵喝彩,因为他们的假想的人工生命自我复制的机制,和真实的世界是多么的一致!
复杂性,生物智能的起源
蚂蚁、白蚁以及人类这样的社会生物会聚集在一起,共同形成复杂的社会结构,从而增加种群整体的生存机会,目前还没有人确切地知道其背后的机理。类似的还有,免疫系统如何抵抗疾病,细胞如何自组织成眼睛和大脑,经济系统中自利的个体如何形成结构复杂的全球市场。最为神秘的是,所谓的“智能”和“意识”是如何从不具有智能和意识的物质中涌现出来的。
大脑、免疫系统、细胞、昆虫社会、经济、万维网,所有这些系统都表现出“适应性的”、“类似生命的”、“智能性的”和“涌现性的”行为。这些术语都没有精确的定义,也使得目前还不可能形式化地定义“复杂系统”。
通俗的来说,复杂系统是:
由大量相互作用的部分组成的系统,与整个系统比起来,组成的部分相对简单,没有中央控制,部分之间也没有全局性的通讯,并且部分的相互作用导致了复杂行为。这里“复杂行为”指的是前面列出的那些术语(适应性、涌现,等等)。
混沌与分形,科学世界中不羁的精灵
简单的确定性方程,能产生类似于随机嗓声的确定性轨道,这个事实有着让人困扰的实际含义。……另外,还可以看到,在混沌中,不管初始条件有多接近,在足够长的时间之后,它们的轨道还是会相互分开。这意味着,即使我们的模型很简单,所有的参数也都完全确定,长期预测也仍然是不可能的。
通俗的说混沌系统就是一种给了你方程式,你也没法准确预测方程式执行了一万次,两万次,三万次的结果。倘若你觉得我们应该借鉴微积分的做法,假设一个容错区间,这一万次、两万次、三万次的结果应该都在这个范围内,不就可以了吗?我可以很负责的告诉你,做不到!因为范围扩的太大本身是不具备意义的,正如你去算命,算命先生回答,人固有一死。
混沌系统的确定性与不可预测性,注定了它是一门不羁的科学,他无法直接宣告拉普拉斯妖死亡,只能说人类想做到拉普拉斯妖的事情是不可能的。牛顿的伟大之处在于他认识到这些定律不仅适用于地面上的物体,对天上的物体也同样适用,此后科学的重要意义在于确定性,意味着同一种科学实验方法,可以不断的被重复,得到预期的结果。一门科学,是确定性的,但是却无法得到预期的结果,是不是一个矛盾体?混沌的发现使得科学的许多核心原则被重新加以思考:
- 看似混沌(随机)的行为有可能来自确定性系统,无须外部的随机源。
- 一些简单的确定性系统的长期变化,由于对初始条件的敏感依赖性,即使在原则上也无法预测。
- 虽然混沌系统的具体变化无法预测,在大量混沌系统的普适共性中却有一些“混沌中的秩序”,例如通往混沌的倍周期之路,以及费根鲍姆常数。因此虽然在细节上“预测变得不可能”,在更高的层面上混沌系统却是可以预测的。
对于大部分人,对混沌的认识可能仅限于洛伦兹著名的讲演“蝴蝶效应”,可是大部分人难以理解这种“蝴蝶效应”对确定性科学的打击有多么巨大,再者混沌的另一个分支由曼德布劳特创立的“分形”,让人们看到了真实世界的混沌,因为分数阶维度和自相似现象大量的存在于物理世界与生物科学中(包括那个趋于无限的英国海岸线问题以及人类毛细血管的分数阶维度)。或许标题中写生命是混沌与计算机的产物有点哗众取众,但却一点儿也不过分。
分形一词是由法国数学家曼德布劳特(Benoit Mandelbrot)提出来的。他认识到自然界到处(海岸线、山脉、雪花和树是很典型的例子)都有分形——现实世界中许多事物都有自相似结构,甚至宇宙也是分形的。一般来说分形指的是“在任何尺度上都有微细结构”的几何形状,想象一下毛细血管就能明白了(参考万维钢的《生物篇 : 身体里的分形》)。分形维数决定了物体的自相似拷贝的数量。
中心化与非中心化,图灵机的两种实现方法
图灵机是我们所有计算机科班生必学的一个内容,鄙人不才,竟然到看这本书的时候,才大致明白图灵想通过图灵机的停机问题说明什么!简单的说说一个背景资料,数学家希尔伯特说数学是完美的,认为:
- 所有数学命题都可以用一组有限的公理证明或证否
- 可以证明的都是真命题
- 对所有命题都有明确程序(definite procedure)可以在有限时间内告诉我们命题是真是假
天才的哥德尔证明了1和2是矛盾的,意味着数学不是完美的,二者只能得其一。另一个天才图灵用了类似哥德尔的方法,证明了3也是错误的,这个证明问题就是“停机问题”。图灵机就是为了证明这个问题而假设出来的一个小玩意儿,如果说停机问题是一份主菜的话,图灵机只是一份佐料。
这个佐料经过冯·诺依曼的料理后,变成了一道重磅主食,改变了这个世界。后面的故事大家都很清楚,可是包括我在内都不甚了解的,其实当年冯·诺依曼提出了两个可以实现图灵机的设计方案:
- 一个就是我们熟悉的冯诺依曼计算机体系结构,称作“通用图灵机”,现实世界所有的计算设备,你能看到的,使用到的都是这个体系结构。
- 另外一个就是冯诺依曼发明的“非冯·诺依曼体系结构”,称作元胞自动机,一个可以用来模拟人工生命的体系结构。元胞自动机也是由大量简单个体(元胞)组成,不存在中央控制,每个个体都只与少量其他个体交互。
又出现了一名天才,沃尔夫勒姆,15岁的时候发表了自己的第一篇物理论文,被诺奖得主盖尔曼看上。于是在加州理工(著名的科学家钱学森的母校)获得了理论物理博士学位,而这时他才20岁。意气风发的他做了一个让人意想不到的决定,研究元胞自动机动力学,并为了工作方便,设计了软件“Mathematica”。至于Mathematica有多牛,我大概说说两部电影:
- 获得诺奖的基普·索恩用它来仿真了电影《星际穿越》的大黑洞“卡冈图雅”,这是迄今为止人类能想象出的黑洞的真实样子;
- 《降临》中关于外星文字的设计与分析,都是通过Mathematica完成的;
沃尔夫勒姆进一步认为,自然界中各种过程实现的计算在复杂程度上都几乎等价,为此写了一本表达自己学术观点的书《A New Kind of Science》,并不相信自然界真的存在无穷小数,即便是自然界,参与计算的时候也是有限精度的。
在我学习了混沌之后,我一直认为混沌这种诡异的复杂系统应该是揭示世界本质的一种方式,毕竟可以通过简单的规则,实现复杂的系统与架构,而且世界作为一个大型的计算机,计算的时候精度也是有限的。当我读到沃尔夫勒姆理论的时候,我激动不已!毕竟,我的那些猜想都被认为是可笑的,也从未有人和我讨论过这个话题。如果,当年我能了解到这个混沌这个世界更多的分支和理论的时候,我必然会义无反顾的投身这个学科。
DNA,生命的微处理器
不管从哪方面看,生命系统都是复杂的—它们处于有序和无序之间的某个地方。王立铭教授很通俗把薛定谔在《生命是什么》一文关于负熵与生命过程的表述解释成,生命就是一种吸收低熵排出高熵的过程,抗衡宇宙的热力学死寂。
冯·诺依曼是最早思考计算机和生物体之间关系的学者之一,他给出了第一个能自我复制的机器的完整设计。
1 | program selfcopy |
如果有程序基础的人,大概是能看懂这段精辟的代码的,其中ip就是程序计数器,相当于记录读到的内存的行数。不懂代码的人也没关系,只要明白,冯·诺依曼设计的这段“生命程序”基本上和DNA自我复制的机制差不多,就能瞬间感受到大师的伟大之处了。
这段程序只能在内存中执行,因为在冯诺伊曼体系计算机的底层,指令和数据是混在一起的,这是这段程序之所以为生命程序的关键,一旦离开了内存,高级程序这么干,是会破坏整个程序的运行,而这一点恰好就是黑客最喜欢的地方,只要是这个体系,不可能存在完美的没有bug的系统,所以苹果的费力封堵,最后还是会被越狱。
DNA是由核苷酸序列组成。特定的子序列(基因)编码构成蛋白质的氨基酸,其中包括解开双螺旋和用信使RNA、转运RNA、核糖体等复制各股DNA的酶(特定种类的蛋白质)。作一个宽泛的类比,对执行复制的酶进行编码的DNA序列大致上对应于自复制程序的代码。这些DNA中的“代码”在产生酶和作用于DNA自身时就相当于被执行,DNA本身则相当于被解开和复制的数据。
结语
所以,如果学了计算机只为了写代码的话,真的就是只见树木不见森林了。
计算机,生物学,混沌,这三个看起来没有什么联系的学科,实际上相互影响。不得不说,视野的开阔与否,真的决定了一个科学研究的人能走多远。
对了,说个题外话,多用Mathematica吧,别只知道有Matlab(在我看来,Mathematica与Matlab的区别就好像Python与C一样)。
附:一些计算模型的意义
- 麦克斯韦妖:用来研究熵的概念的理想模型。
- 图灵机:用来对“明确程序”进行形式化定义以及研究计算概念的理想模型。
- 逻辑斯蒂模型和逻辑斯蒂映射:用来预测种群数量的极简模型;后来成为研究动力学和混沌一般性概念的理想模型。
- 冯·诺依曼自复制自动机:用来研究自复制“逻辑”的理想模型。
- 遗传算法:用来研究适应性概念的理想模型。有时候也作为达尔文进化的极简模型。
- 元胞自动机:用于研究一般性的复杂系统的理想模型。
- 科赫曲线:用来研究海岸线、雪花等分形结构的理想模型。
- 模仿者:用来研究人类类比思维的理想模型。”