您现在的位置是: 首页 >  Javascript Javascript

生命游戏

冬寂 2020-08-14 00:03:25 【Javascript】 3840人已围观

游戏链接:
链接1:https://yustone.cn/life/lifegame.html
链接2:https://yustone.cn/life/

著名数学家,普林斯顿大学和剑桥大学教授约翰·康威因感染新冠病毒于2020年4月11日去世,享年82岁。

康威活跃于有限群的研究、趣味数学、纽结理论、数论、组合博弈论和编码学等范畴。
他年少时就对数学有强烈的兴趣:
四岁时,其母发现他背诵二的次方;

十一岁时,升读中学的面试,被问及他成长后想干什么,他回答想在剑桥当数学家。

后来康威果然于剑桥大学修读数学,现时为普林斯顿大学的教授。
康威首次提出超实数(surreal numbers)的数字系统,他本人称这是自己对数学的最大贡献。
(以上信息来自维基百科和新闻。)
康威是个有趣的天才,他设计了数不清的游戏。他说自己这辈子哪怕一天也没有工作过,一直都在玩游戏。
其中最著名的一个,就是:
生命游戏。


这个游戏在一个很像围棋的棋盘上玩儿,不同的是,围棋落子在交叉点,而生命“游戏”发生在格子里。
每个方格里会有生命细胞,要么是死,要么是活。是不是也有点儿像围棋棋子的死活?

这个游戏怎么玩儿呢?
我们知道围棋的游戏规则非常简单:气尽棋亡,隔手提劫。
“生命游戏”的规则也非常简单,在讲规则之前,先说一下规则设定的“思路”:
生命游戏是一个零玩家游戏。它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。
一个细胞(如下图中的黑子),在下一个时刻的生死取决于相邻八个方格中(如下图中的白子)活着的或死了的细胞的数量。

如果相邻方格活着的细胞数量过多(如下图的黄人),这个细胞(如下图的☠️)会因为资源匮乏而在下一个时刻死去;

相反,如果周围活细胞过少,这个细胞会因太孤单而死去。

实际中,玩家可以设定周围活细胞的数目怎样时才适宜该细胞的生存。
从生命的角度看,如果这个数目设定过高,世界中的大部分细胞会因为找不到太多的活的邻居而死去,直到整个世界都没有生命;
如果这个数目设定过低,世界中又会被生命充满而没有什么变化。
“生命游戏”的一个过于简单的隐喻是:
一个人太孤独会死,太热闹也会死。
康威为“生命游戏”设定了如下规则:
在一个格子世界里,每一个格子里最多可以长一个细胞。细胞根据规则,一代一代地存活、繁殖或死亡。
规则一:生
与2或3个细胞相邻的细胞将活到下一轮,如下图方块中心打绿钩的细胞;

规则二:死
与4个及以上细胞相邻,则因为过度拥挤而死;与1个或0个细胞相邻,则因为孤独而死,如下图中心打红叉的细胞;

规则三:繁衍
一个空格若与3个细胞相邻,则在下一轮时,这个空格内将产生一个新细胞,如下图中心打黄圈的细胞。

在每一代中,生死、繁衍都是同时发生的。每一代的细胞构成了一个群体,或者说“生命历史”中的一小步。
可以把最初的细胞结构定义为种子,当所有在种子中的细胞同时被以上规则处理后,可以得到第一代细胞图。按规则继续处理当前的细胞图,可以得到下一代的细胞图,周而复始。


举个例子(来自杨洋博士),来演示一下这个游戏怎么玩儿:
第一代(如下图),随机地选择某个状态。

我们按照“生命游戏”的规则分析一下:

根据规则,下一代将发生如下变化。
第二代(如下图的右下部分)

继续迭代,我们在第二代的基础上,按照游戏规则运行。
第三代(如下图的左下部分)

然后,还可以继续一代又一代地演化下去,周而复始。
这个“生命游戏”看起来太简单了,到底有什么意义呢?


在这个游戏里,充满了随机性和涌现。
初始图案会不断地变化,这些变化常常是意想不到的:
有时候,看似很复杂的初始图案在经历许多轮之后会全部消失,或者说灭绝。
灭绝

有时候,会形成稳定状态。
静物
有一些细胞的分布形态非常稳定,不管你运行几代,它们永远都保持一样的形态,毫不变化。这些分布形态就叫做静物(still life)。例如下面这些形态。

振荡器
有时候,会形成振荡状态,在不同的图案间反复切换,这类叫做振荡器(oscillator)。

移动的振荡状态
有时候,会形成“移动的振荡状态”。
例如下面的“太空船”,这种图案可以在方格世界中不停地移动。


滑翔机
例如下图,是生命游戏中的一种可持续繁殖模式:“高斯帕机枪”不断制造“滑翔机”。


在康威的“生命游戏”里,随机并且简单的初始状态,看似杂乱无序,但是在极其简易的规则下,细胞会逐渐演化出各种精致、有形的结构。
经过“演化”,有些死亡,有些静止,有些则像有生命一样移动起来,这些结构往往有很好的对称性,而且每一代都在变化形状,甚至可以跃入另一个层级的演化。
“生命游戏”的意义在于验证了某些科学家的宇宙观,即:
最简单的逻辑规则,能产生出复杂有趣的活动。
康威的“生命游戏”,来自冯·诺依曼关于机器自我进化的思想:
细胞自动机。
细胞自动机是为模拟包括自组织结构在内的复杂现象提供的一个强有力的方法,也称为元胞自动机。
细胞自动机模型的基本思想是:
自然界里许多复杂结构和过程,归根到底只是由大量基本组成单元的简单相互作用所引起。
细胞自动机主要研究由小的计算机或部件,按邻域连接方式连接成较大的、并行工作的计算机或部件的理论模型。
它分为固定值型、周期型、混沌型以及复杂型。
冯·诺伊曼设计元胞自动机的初衷是:
为自然界的自我复制和生物发展提供一个简化理论。
也许是物理学家们处在科学鄙视链的上游,那个年代,不只是冯·诺伊曼,薛定谔也写下了《生命是什么》,从量子物理学的角度去理解生命的本质。
在那次传奇般的跨界演讲中,薛定谔神奇地预测:
如果每个生物分子由1到25个字母组成的一个单词决定,并且该单词由5个不同的字母组成,那么就会有372,529,029,841,191,405种可能的不同组合——这远远超出了任何有机体中目前所知的分子类型的数量。
薛定谔进而总结到:
“微型密码应该对应于一个高度复杂而精准的发育蓝图,并且可能以某种方式包含了使密码起作用的程序,这一点已经不再难以想象了。”
后来,因揭示DNA结构而获得诺贝尔奖的三位科学家,都声称《生命是什么》在他们通向双螺旋之路上发挥了重要作用。

让我们再回到“生命游戏”和“元胞自动机”。
元胞自动机对于生物现象的最大影射在于:
生命的起源更像是一种相变,而进化则像是秩序和混沌之间的挣扎。
徐寒易在《环球科学》的一篇文章里写道:
冯·诺伊曼的追随者们感到它对生命的解释有着非凡的意义。
在这个大背景下,康威在1970年提出了元胞自动机的最佳样本——生命游戏。
纪录片《史蒂芬·霍金之大设计》如此介绍:
“像生命游戏这样规则简单的东西能够创造出高度复杂的特征,智慧甚至可能从中诞生。
这个游戏需要数百万的格子,但是这并没什么奇怪的,我们的脑中就有数千亿的细胞。”
换而言之,“生命游戏”的隐喻是,我们所处的世界,生命的诞生,智慧的形成,可能也是某种“生命游戏”的结果。


那么,这个世界到底有没有设计者?
从“生命游戏”里类似“滑翔机”的图案,我们似乎可以说:在没有设计者的情况下,“设计”和“组织”也会自发出现。
但是,上面的“滑翔机”是在康威的三条规则之下形成的。
那么,是否可以说,造物主设计这个世界,使用了极其简单的规则,然后外加随机性?
进而,类似于“生命游戏”所发生的方格子棋盘,是不是就是宇宙的时空结构?
有趣的是,人们发现“生命游戏”里那些移动的图案,也有自己的不可逾越的“光速”。
“生命游戏”用一种非常简单而且可视的方式,加上计算机的模拟演化,向我们呈现了“涌现复杂性”和“自组织系统”。
这个复杂的世界,是否就是从几条极其简单的规则中“涌现”出来的?

例如,贝壳每次长一层细胞(类似于指甲),这个生长的过程就是一个一维元胞自动机。
图片:Meinhardt, H. (1995). The Algorithmic Beauty of Sea Shells. Springer Verlag. pp.179

有人说,这个世界的“终极算法”,可能一共没有多少行代码。

很赞哦! ( 6 )

站点信息

  • 建站时间:2020-08-10
  • 文章统计100篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我