打字猴:1.701066331e+09
1701066331 复杂 [:1701064764]
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
1701066358 复杂 [:1701064765]
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 ]  [ 下一页 ]