1701066332
生命是什么
1701066333
1701066334
第5章介绍了一些生命进化的思想史。但是有一些问题没有提到,例如生命是如何起源的?生命的要素到底是什么?这些都是科学界最具争议的问题,至今没有确定的答案。在这里我不讨论前一个问题,不过复杂系统对此有一些让人着迷的研究。 [112]
1701066335
1701066336
生命到底是什么,这是一个经久不衰的问题。不管是大众还是科学家,对此都没有达成共识。像“生命是如何诞生的”或者“生命在其他星球上是什么样子”总是能激起热烈的讨论,甚至引起敌意。
1701066337
1701066338
创造人工生命的想法也由来已久,至少可以追溯到两千年前的石人传说(Golem)和奥维德(Ovid)的皮格马利翁, [113] 19世纪又有福兰克斯坦的怪兽(Frankenstein’s monster)的故事,更不要说现在的《刀锋战士》和《黑客帝国》这些影片,以及《模拟生命》(Sim Life)这类计算机游戏。
1701066339
1701066340
科幻作品提出了一个新版本的“生命是什么”的问题:计算机和机器人可以被认为有生命吗?这个问题将计算、生命和进化的问题联系到一起。
1701066341
1701066342
如果你问10个生物学家什么是生命的10个要素,每次得到的答案都会不一样。可能大部分会包括自主、新陈代谢、自我复制、生存本能,还有进化和适应。我们能不能将这些过程机械化,并用计算机来实现呢?
1701066343
1701066344
许多人认为绝对不可能,理由如下:
1701066345
1701066346
自主:计算机本身什么都做不了;只能执行程序的指令。
1701066347
1701066348
新陈代谢:计算机无法像生物那样从环境中获取能量;它们必须由人提供能源(例如电力)。
1701066349
1701066350
自我复制:计算机不能复制自身;要复制自身就必须包含对自身的描述;而这个描述又包含其本身的描述,这样反复无穷。
1701066351
1701066352
生存本能:计算机不关心自己能不能生存,它们也不关心自己是不是成功。(有一次听一位杰出的心理学家的讲座,他在谈论计算机象棋程序时说:“就算深蓝赢了卡斯帕罗夫,它也不会有快乐的感觉。”)
1701066353
1701066354
进化和适应:计算机本身无法进化或适应;它只能严格依照程序员预先设定的方式变化。
1701066355
1701066356
虽然还有很多人相信这些观点,但它们都在人工生命领域中 [114] 以各种方式被否定了。人工生命关注的是在计算机中仿真或“创造”生命。在这一章和下一章我会讨论这些,它们与达尔文主义的自我复制和进化密切相关。
1701066357
1701066359
计算机中的自我复制
1701066360
1701066361
自我复制的观点非常数学化:它认为计算机中的自我复制会导致无穷反复。
1701066362
1701066363
我们先来看看计算机自我复制问题最简单的形式:写一段程序打印其自身。
1701066364
1701066365
在后面我们用一种简单的计算机语言,这样不用是程序员也能看懂。(实际上是一种伪代码,有一些真正的计算机语言所没有的命令,但是是合理的,只是让事情更简单一些。)
1701066366
1701066367
下面来试一下,首先从程序的名字开始:
1701066368
1701066369
program copy
1701066370
1701066371
然后加一条指令将程序的名字打印出来:
1701066372
1701066373
program copy
1701066374
1701066375
print(“program copy”)
1701066376
1701066377
指令print只是简单地将引号之间的字符显示到屏幕上然后换行。现在增加一条指令将第二行打印出来:
1701066378
1701066379
program copy
1701066380
[
上一页 ]
[ :1.701066331e+09 ]
[
下一页 ]