复杂系统学习(六):细胞自动机II:实现一个模型

目录

1. 引言

2. 模型的实现

3. 应用:Lotka-Volterra

3.1 Lotka-Volterra模型的CA版本

4. 应用:流行病

4.1 SIR疾病模型的CA版本

4.1.1 SIR疾病模型的第一版CA

4.1.2 SIR疾病模型的第二版CA

5. 探索我们的模型行为

6. 基本CA模型的扩展

7. 为什么使用CA?


1. 引言

 细胞自动机的局限性,不能够直接分析行为。

本节的目的是:

  • 认识到在实现CA模型时需要做出的一些关键决策
  • 理解基于ODE模型指定CA模型所涉及的步骤
  • 欣赏模型设计的创造性方面

2. 模型的实现

空间

我们需要思考的问题有:

  • 空间是如何表现的?
  • agent 如何在空间中定位?

并且需要考虑:

  • 离散与连续的空间
  • 单个与多个 cells 占用
  • proximate 与 long-range 的相互作用

时间

我们需要考虑的问题有:

  • 时间是如何体现的?
  • 事件的顺序如何影响行为?

并且需要考虑:

每个单元的状态被更新的顺序

  • 系统的每个组件都会同时更新吗?(同步更新)
  • 还是一次一次地更新?(异步更新)
  • 如果是异步更新,这些组件将以什么顺序被更新?

离散时间与连续时间

  • 离散:检查每个时间步长会发生什么。
  • 连续:接下来会发生什么事件,何时发生?

信息

我们需要考虑的问题有:

  • 组件(cells / agents)使用什么信息?
  • 它们是如何获得的?

并且需要考虑:

  • 变量的范围:global、cell(patch)、agent(turtle)。
  • 如何访问和修改这些变量
  • 感知的(空间)范围:随着范围的扩大会发生什么?(即,什么是邻域?)

状态更新

我们需要考虑的问题有:

  • 更新是确定性的还是随机性的?
  • 这个决定如何影响行为?

并且需要考虑:

  • 一个组件的未来状态是否将由其当前的输入、环境等唯一指定?(确定性更新)
  • 还是会涉及一些随机性?(随机更新)

3. 应用:Lotka-Volterra

Lotka-Volterra模型

  • 猎物(兔子):\frac{dR}{dt}=\alpha R-\beta RF
  • 捕食者(红狐狸):\frac{dF}{dt}=\delta RF-\gamma F

参数

  • \alpha= 兔子数量的增长率
  • \beta = 狐狸捕食(吃)兔子的速度
  • \delta= 狐狸种群的增长率
  • \gamma= 由于死亡和迁移导致的狐狸种群的衰减率

3.1 Lotka-Volterra模型的CA版本

我们不是直接对每个人口的规模(宏观变量)进行建模,而是明确表示每个个体,然后观察(测量)人口的规模。


空间

  • 我们将在一个二维规则格子(网格)上表示每个个体的位置,而不是假设我们的种群混合得很好。
  • 我们将做一个新的假设,即在任何时间点上只有一只动物可以占据一个网格空间。

时间

  • 我们将使用离散的时间步骤,而不是连续处理时间。

信息

  • 我们将假设每个动物个体只知道它的近邻。

状态更新

  • 我们的二维格子中的每个单元将取三个值中的一个:

x_{i,j}=\left\{\begin{matrix} 0 & if\, site\, (i, j)\, is\, empty \\ 1&if\, site\, (i, j) \, contains\, a\, rabbit \, (prey) \\ 2& if \, site\, (i, j)\, contains \, a\, fox\, (predator) \end{matrix}\right.


更新规则

从我们的格子中随机挑选一个单元(A)。

随机选择A的一个邻居(B)。

更新如下:

  • 如果A包含一只兔子,B是空的,那么,在概率为α的情况下,兔子会繁殖,B现在包含一个新的兔子——猎物繁殖

  • 如果A中有一只狐狸,B中有一只兔子,或者如果A中有一只兔子,B中有一只狐狸,那么兔子被吃掉的概率为\beta;并且,如果发生这种情况,以概率\delta,原先含有兔子的细胞现在含有新的狐狸——猎物死亡和捕食者繁殖

  • 如果A中有一只狐狸,而B为空,那么狐狸死亡的概率为\gamma——捕食者死亡

  • 如果A是空的,而B包含一只狐狸或一只兔子,那么相邻的动物就会从B移动到A——动物移动

4. 应用:流行病

SIR疾病模型

  • \frac{dS}{dt}=-\beta SI
  • \frac{dI}{dt}=\beta SI-\gamma I
  • \frac{dR}{dt}=\gamma I

状态变量

  • S = 目前易受感染的人口比例
  • I= 目前具有传染性的人口比例
  • R= 目前已康复的人口比例
  • 注:因此,S+I+R=1

参数

  • \beta= 易感者和传染者之间的有效接触率
  • \gamma= 感染者的康复率

4.1 SIR疾病模型的CA版本

我们不是直接测量每个疾病区间的人口比例(宏观变量),而是明确表示每个个体,标记他们当前的疾病状态,然后观察(测量)每个状态的人口比例。


空间

  • 我们不是假设我们的种群是很好的混合,而是将每个个体的位置表示在一个二维规则格子(网格)上。
  • 我们将作出新的假设,即一个人同时占据一个网格单元,而且人们的位置在一段时间内是固定的(即他们不会移动!)。

时间

  • 我们将使用离散的时间步骤,而不是连续处理时间。

信息

  • 最初,人口中的一部分p是有传染性的,其余的人口是易受感染的。

4.1.1 SIR疾病模型的第一版CA

状态更新

  • 我们的二维格子中的每个单元将取三个值中的一个:

x_{i,j}=\left\{\begin{matrix} 0 & if\, the\, person\, at\, site\, (i, j)\, is\, susceptible \\ 1&if\, the \,person \,at\,site \,(i, j) \,is \,infectious \\ 2& if \,the \,person\, at\, site\,(i, j)\, is\,recovered \end{matrix}\right.


更新规则

  • 一个易感者可以被一个有传染性的邻居感染的概率为\beta
  • 一个受感染的人恢复的概率为\gamma

4.1.2 SIR疾病模型的第二版CA

请注意,对于任何现实世界的系统,我们可能有多种可能的模型可供选择:

如前所述,每个站点对某种疾病可以是易感的(S)、传染的(I)或恢复的(R)。现在,免疫是暂时的,人们以 \omega 的速率再次易感。因此,平均而言,人们是:

  • 感染:q=\frac{1}{\gamma }
  • 恢复(免疫)为:r=\frac{1}{\omega }

状态更新

现在每个单元格可以在 [0, q + r] 范围内取值,如下所示:

x_{i,j}=\left\{\begin{matrix} 0 & if\, the\, person\, at\, site\, (i, j)\, is\, susceptible \\ 1, . . . , q&if\, the \,person \,at\,site \,(i, j) \,is \,infectious \\ q + 1, . . . , q + r& if \,the \,person\, at\, site\,(i, j)\, is\,recovered \end{matrix}\right.


更新规则

  • 如果一个易感者的邻居中至少有一个人具有传染性,那么这个易感者就会受到感染。
  • 感染者在q天后恢复过来 
  • 康复者在r天后失去免疫力并成为易感者(免疫力减退)。 

5. 探索我们的模型行为

参数扫描:

描述模型行为的一种常见方法是进行参数扫描:系统地改变每个参数的值,以了解其对系统行为的影响。

例如(SIR疾病模型的第二版CA),对以下每个组合运行模型:

  • p = 0.01, 0.05, 0.1(传染病人的初始比例)
  • q = 2, 4, 8(一个人感染的天数)
  • r = 2, 4, 8(一个人恢复/免疫的天数)
  • 即,3\times 3\times3=27 种可能的组合

参数扫描:

  • 因为我们的模型行为是随机的,我们可能想把每个参数组合运行几次,考虑系统的平均行为。
  • 对于轨迹(即随时间变化的状态序列),这可能是困难的。通常情况下,我们确定一些全局测量,记录每次模拟运行的值,并报告平均值和标准差。

6. 基本CA模型的扩展

异步或同步CA 

基本的CA在每个时间步骤中同步(在同一时间)更新所有单元。我们也可以在不同时间更新单元。


概率性CA 

基本CA的更新规则是确定性的(Cx.05例子)。我们也可以使用概率/随机的更新规则(Cx.06的例子)。


非同质性CA 

基本CA对每个单元都适用相同的更新规则。我们也可以使用上下文敏感的规则。


网络结构的CA 

基本CA用网格相邻关系来定义邻域。我们也可以使用更复杂的邻居网络拓扑结构(我们将在后面看这个)。

7. 为什么使用CA?

优势

  • 它们(相对)简单,容易实现 
  • 它们可以表示难以用ODEs建模的相互作用和行为 
  • 它们反映了系统组件的内在个性

缺点

  • 它们是相对受限制的(拓扑结构、相互作用、个体行为)。
  • 全局行为可能难以解释 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值