八 28
关于《生命游戏》和细胞自动机
大家可能已经看到,我又在边栏添加了一个小游戏——Conway’s Game Of Life.因为速度问题,我把这个游戏去掉了。但是,也许他可能不能算是游戏,因为他并没有玩家。我们面对游戏所能做的,也许只是欣赏。
但是并非如此。
先说说生命游戏的规则。在每一次演化中,他的演化结果都决定于上一代的模样。单独考虑一个细胞,如果他的周围细胞数量不是2或3,那么他下一代肯定不存在了,因为太孤单。如果一个细胞周围正好有2或3个,因为环境适宜而保留到下一代。而对于一个没有细胞的地方,只有当他的周围恰好是三个细胞的时候,他才会凭空繁衍出下一代。
这样看起来似乎没有什么意思。但是给大家看一个图(老封会说:给大家感受一下):
这个图是从中文维基上面弄下来的,名字是Gosper glider gun,但我觉得像是伞兵……
看出一点端倪没?(老封会说:感受到了吗?)
生命游戏的精髓,不在于中途过程那些杂乱无章的画面,而在于它简单而富有内涵的规则,以及你如何决定它的初始代。当你决定了它的初始代,这个游戏就会帮你完成后面无穷的过程。当然,这个游戏还有非常非常多的初始模式,例如下面的:
研究如何生成自己想要的图形是一件有趣的事。有人说这是个零玩家游戏。我不同意,因为你作为一个玩家能够决定的初始状态影响到了整个游戏的进程。比如有人构造出了生命游戏的“伊甸园模式”(抱歉,我没有找到这些图——Kai,你不是Searching Geek吗?)——也就是说那些模式是没有上一代的——只能以它作为整个生命史的起点。同时,研究计算机,物理或者控制论的专家们通过深入研究包括生命游戏在内的细胞自动机发现,通过控制规则和初始状态来让一个模式自动演化,是一个很有意思的学问。我们可以将生命游戏修改下,比如将它和祖父辈也联系起来,或者将它扩展到3维空间进行立体的演化。如果想看有一点点公式的浅层科普级理论介绍的,可以参考这里。如果你有兴趣进行自己的构造过程,可以玩玩这个生命游戏程序。我们还可以继续构造出简单而有意思的图形(更多图片请看这里):


刚才提到了细胞自动机,那么我们就继续说说另外一个经典的细胞自动机模型:Langton’s ant。langton‘s ant的确是有一只蚂蚁。它的规则如下:
在平面上的正方形格被填上黑色或白色。在其中一格正方形有一只“蚂蚁”。它的头部朝向上下左右其中一方。对于每一代,若蚂蚁在黑格,右转90度,将该格改为白格,向前移一步;若蚂蚁在白格,左转90度,将该格改为黑格,向前移一步。这样,蚂蚁也就会不断的进行移动,没有终止。
这里是一个经典的Ant演示GIF,可以下下来看。这里是另一个介绍Ant的网站。一定要去看看。
看起来是很简单的东西,但是,发现者Langton在他1986年的PhD论文写的就是这玩意。这有什么神奇的地方?
我们看看一个例子。首先,让我们看看如果一只蚂蚁从一个全都是白格子的地图开始行动,她会怎么走?我们可以将这个过程分为几个阶段。第一个阶段,也就是大概在500步之内,那只蚂蚁会走出一些有点像中心对称的图形。第二个阶段,也就是刚超过了500步,这个对称突然间就会被破坏,那只蚂蚁就像发疯一样到处乱走,不知到他在干嘛。第三阶段,蚂蚁就这样走了大概10000步后,突然,他就像决定了要向哪里走:他开始建造我们称为“高速公路”的很规则的图形——这个图形朝着一个方向延展,就像蚂蚁铺出来的。但是过了100步左右,她有一点点的“漂移”,他转了一个方向,开始建造新的“高速公路”。这个图形十分严谨,能够让那只蚂蚁是分悲哀地永远走下去——如果一路上没有障碍。这里还引伸出了一个十分耐人寻味的观察事实:如果你的布局中黑色的格子是有限的,那么那只蚂蚁不论中途怎样,最后一定是以建造“高速公路”来升华自己的生命……但是这个结果还没有得到证明。真是一个有趣的问题。
最后,这里是一个Ant的Java程序,可以去试试上面那个例子,也希望你构造出上面命题的一个反例~


刚才提到了细胞自动机,那么我们就继续说说另外一个经典的细胞自动机模型:Langton’s ant。langton‘s ant的确是有一只蚂蚁。它的规则如下:
在平面上的正方形格被填上黑色或白色。在其中一格正方形有一只“蚂蚁”。它的头部朝向上下左右其中一方。对于每一代,若蚂蚁在黑格,右转90度,将该格改为白格,向前移一步;若蚂蚁在白格,左转90度,将该格改为黑格,向前移一步。这样,蚂蚁也就会不断的进行移动,没有终止。
这里是一个经典的Ant演示GIF,可以下下来看。这里是另一个介绍Ant的网站。一定要去看看。
看起来是很简单的东西,但是,发现者Langton在他1986年的PhD论文写的就是这玩意。这有什么神奇的地方?
我们看看一个例子。首先,让我们看看如果一只蚂蚁从一个全都是白格子的地图开始行动,她会怎么走?我们可以将这个过程分为几个阶段。第一个阶段,也就是大概在500步之内,那只蚂蚁会走出一些有点像中心对称的图形。第二个阶段,也就是刚超过了500步,这个对称突然间就会被破坏,那只蚂蚁就像发疯一样到处乱走,不知到他在干嘛。第三阶段,蚂蚁就这样走了大概10000步后,突然,他就像决定了要向哪里走:他开始建造我们称为“高速公路”的很规则的图形——这个图形朝着一个方向延展,就像蚂蚁铺出来的。但是过了100步左右,她有一点点的“漂移”,他转了一个方向,开始建造新的“高速公路”。这个图形十分严谨,能够让那只蚂蚁是分悲哀地永远走下去——如果一路上没有障碍。这里还引伸出了一个十分耐人寻味的观察事实:如果你的布局中黑色的格子是有限的,那么那只蚂蚁不论中途怎样,最后一定是以建造“高速公路”来升华自己的生命……但是这个结果还没有得到证明。真是一个有趣的问题。
最后,这里是一个Ant的Java程序,可以去试试上面那个例子,也希望你构造出上面命题的一个反例~
本文由 严酷的魔王 创作,转载或引用前请联系我们。
相关文章:
标签:java, 严肃, 图片, 未解决, 生命, 设计
没看懂…
回复
用弹出式评论的好处是,在首页看了后要评论不用跳到文章里面去…
回复