生命游戏与遗传编程

生命游戏与遗传编程
生命游戏与遗传编程

今天在一本书中读到一个很神奇的故事,在九十年代,生物学家Thomas S. Ray写过一个80条指令的病毒,并把这条病毒放在计算机里面『培养』,这些病毒不断复制和变异,变化出了各种不可思议的变种,比如在几十亿次运行之后,出现了仅仅有22条指令却有完善功能的病毒,当时麻省理工的科学家尝试用最短的指令来写一只病毒,却还是用了31条指令。

指令的多少关系到对计算机资源的索取,所以45条指令的病毒比80条指令的病毒更具优势,这位生物学家调整了计算机规则,给不同指令的病毒分配不同的资源,以达到某种『平等』,但是在一百五十亿次『繁衍』之后,出现了一种36条指令的病毒,这个病毒很『狡猾』,他在末尾多占用了一个字节,以『骗取』了多一倍的运行资源,结果横扫了整个系统。

作者还提出一种设想,让计算机程序也在运行中做到生物那样的自我进化,非人为的变得越来越人性化,比如Word,在你每次用完它之后就会默默的自我更新以达到更漂亮的外观和更人性化的体验,当然,前提是你应该为这些『程序生物』的繁衍设定一些规则。

看到这些神奇的东西,我感到我多年的计算机知识白学了。我立马开始搜索这方面的资料,我的感受是,这个世界太奇妙了。

『让计算机模拟生物进化』一直以来都是计算机科学和生物学的课题,事实上,早在1970年,美国数学家John Horton Conway就发明了一种『细胞自动机』,这也被称之为『生命游戏』。


生命游戏
生命游戏

生命游戏是一个零玩家游戏。它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。实际中,玩家可以设定周围活细胞的数目怎样时才适宜该细胞的生存。如果这个数目设定过高,世界中的大部分细胞会因为找不到太多的活的邻居而死去,直到整个世界都没有生命;如果这个数目设定过低,世界中又会被生命充满而没有什么变化。

实际中,这个数目一般选取2或者3;这样整个生命世界才不至于太过荒凉或拥挤,而是一种动态的平衡。这样的话,游戏的规则就是:当一个方格周围有2或3个活细胞时,方格中的活细胞在下一个时刻继续存活;即使这个时刻方格中没有活细胞,在下一个时刻也会“诞生”活细胞。

在这个游戏中,还可以设定一些更加复杂的规则,例如当前方格的状况不仅由父一代决定,而且还考虑祖父一代的情况。玩家还可以作为这个世界的“上帝”,随意设定某个方格细胞的死活,以观察对世界的影响。

在游戏的进行中,杂乱无序的细胞会逐渐演化出各种精致、有形的结构;这些结构往往有很好的对称性,而且每一代都在变化形状。一些形状已经锁定,不会逐代变化。有时,一些已经成形的结构会因为一些无序细胞的“入侵”而被破坏。但是形状和秩序经常能从杂乱中产生出来。

显然Thomas S. Ray的『病毒生物』比生命游戏中的这些『细胞』更加强大,它们运行在计算机系统中而非软件中,换言之,它们更加『高级一层』,所以这些病毒造成的变异更加神奇,而不仅仅是生命游戏中的形状体现。很遗憾我没有找到Thomas S. Ray的病毒样本 Thomas S. Ray的项目主页是:这里,有下载,有论文,自取。不过我找到了好几款现在还可以运行的生命游戏,有兴趣的不妨看看:这个,还有个程序员在Conway的生命游戏的基础上进行了更多的设置,使得其更加复杂有趣,这个『高级版』可以在这找到:这里

后来我知道,Thomas S. Ray的程序其实属于遗传编程(GP)的范畴,按照百科的解释,遗传编程是一种特殊的利用进化算法的机器学习技术, 它开始于一群由随机生成的千百万个计算机程序组成的"人群",然后根据一个程序完成给定的任务的能力来确定某个程序的适合度,应用达尔文的自然选择(适者生存)确定胜出的程序,计算机程序间也模拟两性组合,变异,基因复制,基因删除等代代进化,直到达到预先确定的某个中止条件为止。

复杂的生命形式可以通过最简单的规则来进行演化,生命之奇妙莫过于此。更直观的感受可以通过以下一个五分钟的小视频来感受:

视频

算法是人写的,可是演化却是人所不能控制的,这种由简单规律和大量个体智慧共同作用的结合让我想到了分布式计算和大数据,我们炒的很火的新概念,其实早就根植于我们进化的基因当中,而拥有强大运算能力的现代计算机,则是潘多拉的魔盒,我们通过它来研究生命,但是里面也充满着未知。

我们所有计算机老师都告诉我们计算机是最老实的,你让它做什么它就做什么,可是计算机也有不老实的时候,某些时候,计算机的『失控』比『受控』更加令人兴奋。

失控的计算机,带来的是崭新的世界,诸如人工智能,进化模拟等等领域,我们需要的正是出乎我们预料的结果。

其实我也一直好奇,是什么让这些变异发生?让这些进化开启?让人所写的程序变得不被人理解?想来,这个原因应该和我们之所以从细胞进化到人,而又从石器时代走到信息时代的原因一样,这个原因就是生命之与世界的奥秘。

能够知道这些奇妙的东西真是太爽了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容