锦瑟
随着计算机技术的日新月异,虚拟世界一直是广大电脑爱好者津津乐道的话题。相关的科幻电影作品也是层出不穷,比较经典的有《黑客帝国》系列和《十三度凶间》等。我们能通过电脑程序来创造一个世界吗?我们能模拟出虚拟的“人类”和“社会”吗?对于此类问题,我想从一个程序员的角度来谈一些浅见。
在我看来,它既可能实现又不可能实现。
如何理解这个“可能实现”?以目前的软件开发水平,用程序语言搭建一个可以独立运行的仿真世界并不困难。以最流行的面向对象思想举例:定义一个类叫“猫”(当然也可以是狗、鱼之类的任何生物),它具有猫的各种器官和物理属性,如头、躯干、四肢、尾巴等,同样也具有各种生理动作,如奔跑、捕食、睡眠、嬉闹、清理毛发、交配……以此类推,我们可以定义出其他所有生物的“属性”和“方法”。一切就绪以后,我们启动一个总的计时器,系统的时间开始匀速流动,同时系统中的每一个生命体都开始了“衰老”这一进程,当该物种衰老到预先设定好的寿命范围时,就随机执行“死亡”方法。
那么,这个系统是如何运行的呢?还是以猫为例。任何生物要延续生存,必须以进食为目的,直到达到预设的日均食量为止。猫在其出生时所在的位置开始随机走动并且寻觅食物,这时候,一只老鼠也在为寻找食物而随机走动。当老鼠移动的路线进入猫的视线时,会触发猫的“发现猎物”方法,猫开始奔跑、追逐猎物,同时老鼠在感觉到威胁以后,也会启动相应的“逃跑”方法。二者以各自的速度和敏捷值加上一定的环境影响开始追逐赛。结局有可能是老鼠跑进一个窄洞里,猫无法进入而启用“放弃”方法走开;也可能是猫最终抓住了老鼠而启动“进食”方法,还有可能老鼠在逃窜途中被另一只猫盯上从而上演两猫争食。猫在吃饱喝足以后打个饱嗝,摇摇尾巴,慢慢走进夜色。这时候,蚂蚁、蟑螂等昆虫发现了老鼠的尸体残余而出动,继续着下一层次生物链的竞争。
无数像这样的为生存进行的战争在整个系统的各个角落上演。就像真实世界那样,系统内的植物进行光合作用,食草动物、食肉动物、食腐动物、细菌等在各自的食物链上进行着生生不息的运转和演化。
当然,生物要延续下去,靠的就是繁衍。这在系统内也可以完全表现出来。猫在发情期会寻找异性,一旦找到了合适的异性,自动启动“交配”方法,同时母猫以一定的几率得到“怀孕”属性;一旦怀孕,过一段时问会启动“生育”方法产出小猫,小猫的各项物理属性由系统取得其双亲的数据,经过一系列计算后赋予。小猫诞生以后,母猫会产生一系列变化,增加了“喂养幼仔”、“哺乳”等方法。小猫一开始除了被动进食以外没有任何技能,在长大的过程中,系统会慢慢地讓它学会各项生存所需的方法。从出生到死亡,系统可以把这个过程接近真实地模拟出来。
也许有人会说,你这个系统运行再久也不能反映真实世界,因为没有变化,猫永远是猫,狗永远是狗:而如果是真实世界,几百万年之后生物肯定有不同程度的进化。是的,系统必须要引入进化的理念。我考虑以达尔文的进化论为基础,引入“适者生存”和“基因突变”两条系统规则。在此假设基因突变是生物进化的物理诱因,系统内的100万只猫里,每只猫的基因都有微小的不同,有的向坏的方向突变,比如该猫生出来就是聋子,那么肯定在残酷的大自然中无法生存而被淘汰。有的则向不确定的方向突变,比如一只猫的毛皮比一般的要厚,而恰好这一年该猫所在地气候发生突变,平均气温下降10℃,普降大雪。其他猫忍受不了纷纷被冻死,只有这只猫靠着一身厚毛侥幸活了下来并养活了后代。那么该地区在今后几十年甚至上百年里如果气候不再发生突变,继承了“厚毛”基因的后代将慢慢成为那片地区的主宰,形成一种新的亚种。
相反,如果该地区酷热难当,该猫则有可能提前被淘汰,而其他拥有更适合热带生活的基因的猫会继续繁衍下去。在这样的以基因突变为推动力,以适者生存为评判标准的系统中,物种会不断地向有利其生存的方向进化,我们完全可以期待旧物种的灭绝和新物种的产生。
如果这时加入人类的因素又会怎样呢?既然我们已经可以大致模拟出猫,那么我们只需考虑人与猫有何不同即可。人比动物无非多了“情感”和“思维”。情感还比较好办,可以把人类的所有情感进行归纳和分类,并存储在系统的数据中心。我们只需要把人小时候经历过的所有事件,按照系统的判断为其大脑绑定上一种情感。比如小时候看到玩具熊坏了,我们赋予其“悲伤”的情感。经过多次的“悲伤”强化,那么其长大后看到自己养的小鸟死了,系统经过计算发现该事件与玩具熊坏了的事件是高度相似的,于是就会激发其产生类似的“悲伤”情感。
接下来看思维。思维可以分为两种,基于现有知识的推理型思维和创新型思维。所谓推理型思维,比如我们模拟的人生病了,“他”首先感到不适,然后通过“检查症状”方法发现自己可能患上了疾病。根据常识判断,此时“他”会先在家里找药吃,如果过了几天仍不见好,“他”会判断自己该去医院看医生。在去医院前根据常理“他”知道要带好钱,到了医院“他”会根据平时积累的知识排队、挂号、找医生、付款、拿药等。当然,这一切也不是在默默无声的机器人般的过程中进行的,比如“他”付款时发现药费太贵,会下意识地抱怨几句;发现身边走过的美女小护士时,出于男人预设的“好色”本能会多看几眼等等。完成这一切并不困难,我们只需为每个人的大脑建立一个知识数据库,存放“他”从小到大由父母、朋友、媒体方面获得的所有知识即可。当环境需要时,系统从大脑内提取相关信息并做逻辑推理和判断,选一种对自己最有利的行为。这些只要系统有足够大的空间和足够强的运算能力都可以实现。
真正困难的是创新型思维,即人从现有的知识库里创造出库里不曾有的,甚至这个世界上不曾有的新知识来。比如系统中的人类从原始社会能否自动进化到奴隶社会、封建社会乃至资本主义社会?讓原始人在系统内自己发展下去,最终“他们”能否创造出自己的语言和货币?“他们”能够产生自己的哲学家、数学家、物理学家吗?当一只苹果掉到“他”的头上,“他”会去想“为什么苹果会往下掉,而不是往上飞”这样的问题吗?人类一思考,上帝就发笑。但正是人类的这种思考,成了我们这个社会的主要推动力。而这一切,仅靠从知识库获取知识并推导的过程是不太可能实现的。
目前关于人工智能的研究并没有获得重大突破,我们尚没有办法完美地模拟出人类的思维过程。但是聪明的办法不行,我们也许可以用最笨的办法。即我们不需要去模拟人类的思考过程,只要把一切还原到本来面目,用程序来模拟实现最底层的事物就可以了。我们只需要仿造现实中人脑的构造,以虚拟的原子、分子、细胞来建造一个虚拟的脑结构,然后赋予它们和现实中一样的物理和化学性质。它们自然而然就会产生细胞的分裂及物理化学反应,最终导致脑电波的传送,从而实现虚拟的“思维”。与此类似,我们用虚拟的原子和分子可以建造出整个人体,讓这些最基本的元素遵循现实世界中的物理规则,这个虚拟人也是可以按照自然法则进行运动的。当然要靠模拟所有的原子来实现一个人,这台系统恐怕需要配置天文数字的硬盘和内存以及拥有运算速度无法想象的CPU。但是,计算机科技也在飞速发展中,未来的量子计算机未必无法讓这种可能成为现实。不过这里有一个问题值得我们思考:如果用这样的方式来模拟出一个人,那么我们就无法控制它的思维了,就像真实世界中的人一样,我们只能通过仪器观察到“他”的脑电波活动,但无法知道“他”在想什么。从这个意义上讲,这样的虚拟人就拥有了不以我们的意志为转移的独立思想,这将令人何等激动!
然而,就目前来说,在人类对微观世界原子构成的了解还不够深入,对空间和时间本质的把握还不够准确,对我们自己的世界还未研究透彻的情况下,贸然建立的虚拟仿真世界,是不可能完全真实地再现我们的现实世界的,最多只是部分地、有局限性地对现实世界的一次模拟。但是,即便是这样一个不完备的虚拟世界,也可以给我们提供一些启示和参考。比如用程序虚拟一个地球之初的景象,讓各种无机物在原始海洋里进行化学反应,并模拟阳光照射、闪电、陨石撞击等过程,对于探索生命的起源具有一定的价值。在文章开头所述的那个只有动植物的世界里,我们借助这个有简单进化规则的世界,把系统时间调整快一些,将当前的地球气候条件和环境参数作为系统的初始值,然后讓这些生物以快于正常速度几十倍的速度繁衍,也许可以预知若干万年后地球环境的变化和生命的演化方向,从而提前做出相应的判断和预警,具有一定的现实意义。