元胞自动机和康威生命游戏

简介

发展和应用

元胞自动机(Cellular Automata, 简称CA),是冯·诺依曼在20世纪50年代初为模拟生物发育中细胞的自我复制而提出的,但当时并未引起关注和重视。

1970年,剑桥大学的康威(J.H.Conway)设计了“生命游戏”,它是具有产生动态图案和动态结构能力的元胞自动机模型,吸引了众多科学家的兴趣,推动了元胞自动机研究的迅速发展。

之后,Stephen Wolfram对初等元胞自动机的256种规则产生的所有模型进行了详细而深入的研究。他还用熵来描述其演化行为,把元胞自动机分为:平稳型、周期型、混沌型、复杂型四类

现在,元胞自动机在交通流模型、火灾模拟模型、肿瘤细胞的增长机理模拟、股票投资心理模型、计算机的并行计算等很多领域都有应用

元胞自动机的构成

标准元胞自动机是一个由「元胞、元胞状态、邻域和状态更新规则」构成的四元组,用数学符号可以表示为A=(L,d,S,N,f)

  • A代表一个元胞自动机系统
  • L表示元胞空间
  • d表示元胞自动机内元胞空间的维数,是一正整数
  • S是元胞有限的、离散的状态集合
  • N表示某个邻域内所有元胞的集合
  • f表示局部映射或局部规则。

元胞空间

元胞是构成元胞自动机的基本单元,而元胞空间是元胞所分布的空间网点集合。
说白了就是所有元胞可以存在的位置的集合
理论上,元胞空间是在各维向上无限延展的,但实际中无法在计算机上实现。因此,需要定义不同的边界条件。
元胞空间的边界条件主要有三种类型:周期型反射型定值型

  • 周期型。在一维上表示为首尾相连;在二维上则是左右相连,上下相连的一个拓扑圆环面(类似甜甜圈)。周期型与无限空间最为接近,因此在理论研究时常用作试验。
  • 反射型。在边界外邻居的元胞状态是以边界为轴的镜面反射。
  • 定值型。边界外的元胞均取某一固定值。

元胞状态

在一般情况下,某一时刻一个元胞只能有一个状态,取自一个有限集合,比如{0,1},{生,死},{a1,a2,...,an}等等
在不同的应用模型中,这种状态也可以用来表示不同的特征,比如在社会科学中常用来表示个体所持的态度或行为等。

邻域

在空间位置上与元胞相邻的位置称为邻元,所有邻元组成的区域就是元胞的邻域。
一维情形中,常用半径r来确定邻域,距离元胞距离为r的所有元胞都是他的邻域。
如下图中灰色的位置就是黑色元胞的邻域。

邻域.png

在二维的情况下,通常有以下几种类型的邻域:

  • 冯诺依曼型。以上下左右四个相邻元胞为邻域,如图a
  • 摩尔型。以周围八个相邻元胞为领域,如图b。(生命游戏就是以用摩尔型邻域的)
  • 扩展摩尔型。将半径扩大,如图c
  • 马格勒斯型。与上面两种不同,马哥勒斯型是一种元胞分块技术,每次统一处理2×2格子的元胞块,元胞的演化只有元胞块内部的元胞状态决定
二维邻域类型.png
马哥勒斯型.png

状态更新规则

是指根据元胞当前状态及其邻域中元胞的状态决定下一时刻该元胞状态的状态转移函数。
状态更新规则可以写为

其中,表示t时刻的邻域状态集合

标准元胞自动机的特征

  • 离散性
  • 同质性
  • 并行性
  • 局部性
  • 维数高

一维双色元胞自动机

概念简介

  • 一维双色元胞自动机是一种最简单的元胞自动机
  • 一维,指的是这个元胞自动机是在一个维度为1的元胞空间内进行演变的
  • 双色,指的是每个元胞的元胞状态只有2种,如,0 或 1
  • 在邻域半径 r=1 的情况下,一维元胞自动机的状态更新函数可以这样表示

    即在下一个时刻的元胞状态仅和左右两个元胞状态和自身的元胞状态有关

命名规则

为了方便,往往会给每种元胞自动机起一个名字,根据一维双色元胞自动机的状态更新函数,一共有3个变量,每个变量都有两种状态0和1,所以一共有2^3种不同的组合 111,110,101,100,011,010,001,000

根据不同的规则这8中组合对应的函数值可能为0,也可能为1。因此一共有28个函数值的组合,对应着28种规则。比如下面这个就叫#规则90#

规则90.png

迭代演化

以#规则90#为例,我们将初始状态为{0 0 0 1 1 0 0 0}的一个一维双色元胞自动机进行迭代演化,背景空间为定值0.

初始状态.png

迭代四次后

迭代四次.png

迭代100次后

90迭代100次.png

康威生命游戏

生命游戏是剑桥大学的康威(J·H·Conway)在1970年提出的一个二维元胞自动机,因其模拟和显示的图像看起来颇似生命的出生和繁衍过程而得名为“生命游戏” 。游戏中没有玩家之间的竞争,只有细胞的不断死亡和产生,在游戏进行中,杂乱无序的细胞会逐渐演化出各种精致、有形的结构。

其规则也很简单:一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。

其规则为

  • 任何四周邻居存活数少于两个的存活网格将死亡,因为人口稀少。
  • 任何四周邻居存活数多于三个的存活网格将死亡,因为过度拥挤。
  • 任何四周邻居存活数等于两个或三个的存活网格将在下一代中继续存活
  • 任何已经死亡的网格,如果周围邻居存活数为3个,将重新复活。

生物图鉴

虽然生命游戏规则很简单,但是却能产生很多有趣的细胞集群,通过合理改变其规则,还能产生更多复杂有趣的生物。

科学家们总结出来的生物图鉴如下

  • 静态族


它们的名字分别为”方块“、”蜂巢“、”吐司“、”小船“、”浴缸“

  • 震荡族
信号灯
脉冲星
  • 飞船族
    滑翔机
轻型飞船
  • 特殊族
    高斯帕滑翔机枪
繁殖者
河豚

参考资料

https://www.cnblogs.com/bellkosmos/p/introduction_of_cellular_automata.html
简单明了的讲解一下元胞自动机及其应用? - 王茂南的回答 - 知乎
https://www.douban.com/note/690728776/

你可能感兴趣的:(元胞自动机和康威生命游戏)