复杂系统学习(五):细胞自动机 I:1D 和 2D CAs

目录

1. 引言

2. 1D 细胞自动机

2.1 1D 细胞自动机——最简单的情况

2.2 1D  细胞自动机——行为

2.2.1 正式地描述1D细胞自动机

2.2.2 命名CA的规则

2.3 Discrete time dynamics

2.4 Wolfram classes

3. 2D Cellular Automata

3.1 Conway’s Game of Life


1. 引言

从宏观到微观:

复杂系统是指其行为由许多单独部分之间的相互作用产生的系统:

Lotka-Volterra模型
单独部分=动物(捕食者和猎物)
相互作用=捕食(捕食者吃猎物)

SIR疾病模型
单独部分=人(易感者、传染者和康复者)
相互作用=疾病传播(从传染者到易感者)

这些系统的ODE模型要求我们用全局(或宏观)变量来表示它们的状态,并根据这些全局变量如何随时间变化来定义更新规则

Lotka-Volterra模型
全局变量=捕食者/猎物的数量
更新规则=以出生率、死亡率和捕食率计算

SIR疾病模型
全局变量=每种疾病状态下的种群比例
更新规则=以感染率和恢复率计算

然而,为了建立这些ODE模型,我们必须对我们的系统做出假设。这两个模型都要求我们假设子种群中的所有个体都是相同的,而且我们种群中的所有个体都有相同的机会相互作用

但是事实是,在讨论这些模型可能存在的问题时,这些假设不断出现,成为限制因素

Lotka-Volterra模型
一些捕食者/猎物可能比其他人更强/更弱
一些捕食者/猎物可能比其他人更快/更慢  
捕食者/猎物种群可能具有非均匀的空间分布 

SIR疾病模型
一些年龄组(如儿童)可能更易受影响/感染
人口可能有不均匀的空间分布(例如,我们90%的人口可能接种了疫苗,但如果没有接种的10%的人都住在同一个郊区,那就是一个高风险的子人口)。

我们可以扩展我们的ODE模型来反映这种异质性(个体之间的变化),但所需的方程和参数的数量将迅速爆炸性增长。

在接下来的几篇博客里,我们将探索能够代表人口中这种异质性的建模方法:

元胞自动机模型
基于代理的模型
网络模型

这些模型将是计算性的而不是数学性的。

这篇博客我们先来学习元胞自动机模型,思考一个问题:

考虑一个SIR模型,在这个模型中,我们人口中的每个人在一个正方形格子(网格)上都有一个固定位置 :

  • 什么是最合适的数据结构?
  • 你可以如何表示状态?
  • 你如何确定谁与谁互动?
  • 状态如何更新?

2. 1D 细胞自动机

细胞自动机(CA)是一种离散动态系统,在简单的局部规则基础上表现出复杂的行为。

自动机:一种理论上的机器,它根据外部输入和自身先前的状态更新其内部状态。

细胞自动机:一个自动机(单元)阵列,其中一个单元的输入是附近单元的当前状态。


在一个CA里:

  • 时间是离散的(如逻辑图)因为是逐次迭代的过程,不是连续的状态改变。
  • 注:逻辑图,
  • 空间是离散的:通常是一维或二维网格(三维也可)。
  • 系统状态是离散的:系统的每个组件都处于一组有限的状态中(例如,开或关);因此,整个系统有有限的、可数的状态。
  • 更新规则是根据组件之间的局部相互作用来定义的。

 

细胞自动机——应用

2.1 1D 细胞自动机——最简单的情况

一些基本的元素

一个一维的单元格:

每个细胞都有两种状态之一:

单元本身及其相邻的两个邻居(K = 3):

 离散迭代(time step):

使用上一代的邻域状态:

  

邻域状态有2^{k}种可能的组合:

这些组合中的每一个都决定了下一代中目标(中心)细胞的状态:


具体的例子:

2.2 1D  细胞自动机——行为

我们可以使用NetLogo来探索一些不同规则的行为,NetLogo的学习文档有:

NetLogo 6.2.2 User Manual

NetLogo 6.2.2 User Manual: BehaviorSpace Guide

2.2.1 正式地描述1D细胞自动机

每个有限自动机由一个有限的单元格状态集\sum、一个有限的输入字母表\alpha和一个过渡函数\Delta组成,它是一个从邻域状态集到单元格状态集的映射。

\Delta =\sum{_{}}^{N} \rightarrow \sum

邻域的状态是由大小为N的邻域模板所覆盖的自动机状态的函数(例如叉积)。因此,每个自动机的输入字母表\alpha由一组可能的邻域状态组成。

K=\left | \sum \right |,(细胞状态的数量) 。

\alpha的大小等于可能的邻域状态的数量:

\left | \alpha \right |=\left | \Delta \right |=\left | \sum {_{}}^{N} \right |=K^{N}

为了定义一个转移函数,\sum中唯一的下一个状态必须与一个可能的邻接状态相关联。

由于有K=\left | \sum \right |的状态可供分配给每一个\sum{_{}}^{N}可能的邻域状态作为下一个状态,所以有K^{K^{N}}个可能的转换函数可以被定义。

D_{N}^{K}是所有可能的过渡函数\Delta的集合,可以用N个邻域和K个状态来定义。


例子:

考虑一个2维的细胞自动机,每个单元使用8个状态;一个有5个单元局部邻域(北、南、东、西)的规则网格。这里,K=8N=5,所以有:

\left | \Delta \right |=K^{N}=8^{5}=32768可能的邻域状态。

对于所有这些相邻状态,有8种不同的状态在\Delta下可供下一个细胞状态选择,所以有:

D_{N}^{K}=K^{K^{N}}=8^{8^{5}}\approx 10^{30000}可能的过渡函数。

2.2.2 命名CA的规则

K^{K^{N}}=2^{2^{3}}可能地规则更新1D CA(K = 2; N = 3)。

0\times 2^{7}+1\times 2^{6}+0\times 2^{5}+1\times 2^{4}+1\times 2^{3}+0\times 2^{2}+1\times 2^{1}+0\times 2^{0}=90

这是Rule 90。

256条规则中的许多规则都是微不足道的相互等价:基础几何的简单转换:

  • mirror:通过垂直轴的反射。
  • complement:交换定义中0和1的角色

256条基本规则中的一些规则仅仅通过重新命名状态或左右颠倒就完全相同,因此本质上不同的基本规则的数量较少(只有88条)。


Rule 30 

Rule 30 显示出非周期性的、混乱的行为:

与自然界中的模式有相似之处,纺织锥螺(Conus textile),鳕鱼洞,大堡礁,澳大利亚:


Rule 110

Rule 110 是图灵完全的,即能够进行普遍计算:

2.3 Discrete time dynamics

之前学习地ODE模型中的许多概念也适用于这里。

  • 我们对系统的长期行为感兴趣:随着时间的推移会发生什么?
  • 我们的状态空间(系统中所有可能状态的集合)是离散和有限的,我们的轨迹是状态的序列 
  • 我们可以观察到瞬态、固定点和极限循环吸引子 
  • 导致每个吸引子的状态构成了它的吸引盆 

2.4 Wolfram classes

". ......许多(也许是所有)CA都属于四个基本的行为类别"——Stephen Wolfram, 1984

3. 2D Cellular Automata

2D CA与 1D CA类似,只是我们必须选择如何定义我们的邻域和我们的更新规则。

两个常见的邻域是:

冯-诺伊曼邻域 \left \{ (0, 0),(\pm 1, 0),(0, \pm 1) \right \}

摩尔邻域 \left \{-1, 0, 1 \right \}\times \left \{ -1, 0, 1\right \}

3.1 Conway’s Game of Life

像 Rule 110 一样,Game of Life 是图灵完全的。

生命的规则:

  • 每个细胞都可以是活的(黑色)或死的(白色)。
  • 如果一个活着的细胞有少于2个活着的邻居,它就会死去—— loneliness。
  • 如果一个活着的细胞有3个以上的邻居,它就会死去——overcrowding。
  • 如果一个活着的细胞有2个或3个活着的邻居,它就会活着——survival。
  • 如果一个死亡的细胞正好有3个活的邻居,它就会活下来——reproduction。

活细胞的初始模式构成了系统的第一代。然后,这些规则同时应用于系统中的每一个细胞,产生第二代,以此类推。系统的长期行为是什么?


Loneliness

如果一个活的细胞少于2个活的邻居,它就会死亡:

Overcrowding

如果一个活着的细胞有超过3个活着的邻居,它就会死亡:

Survival

如果一个活着的细胞有2个或3个活着的邻居,它就能保持活力:

Reproduction

如果一个死细胞正好有3个活的邻居,它就会活过来:


具体地例子:

随着时间的推移,出现了有组织的模式:

可用于实现携带信息的信号和对这些信号的逻辑操作。


总结:

《Game of Life》(以及更普遍的《CA》)便是复杂系统的典型例子,性质如下:

  • many components
  • local interactions
  • decentralised control
  • parallel processing
  • emergent global behaviour
  • self-organisation

然而,它们仍然做出了一些强有力的假设,可能限制了它们作为真实系统模型的适用性:

  • 所有的更新都是同步进行的
  • 所有的更新都是确定性的 

下一篇博客我们将讨论如何创建更现实的CA模型:捕食者与猎物的相互作用和一种传染病的传播。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值