目录

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模型

  • 猎物(兔子):
  • 捕食者(红狐狸):

参数

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

3.1 Lotka-Volterra模型的CA版本

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


空间

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

时间

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

信息

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

状态更新

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


更新规则

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

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

更新如下:

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

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

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

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

4. 应用:流行病

SIR疾病模型


状态变量

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

参数

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

4.1 SIR疾病模型的CA版本

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


空间

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

时间

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

信息

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

4.1.1 SIR疾病模型的第一版CA

状态更新

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


更新规则

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

4.1.2 SIR疾病模型的第二版CA

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

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

  • 感染:
  • 恢复(免疫)为:

状态更新

现在每个单元格可以在  范围内取值,如下所示:


更新规则

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

5. 探索我们的模型行为

参数扫描:

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

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

  • (传染病人的初始比例)
  • (一个人感染的天数)
  • (一个人恢复/免疫的天数)
  • 即, 种可能的组合

参数扫描:

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

6. 基本CA模型的扩展

异步或同步CA 

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


概率性CA 

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


非同质性CA 

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


网络结构的CA 

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

7. 为什么使用CA?

优势

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

缺点

  • 它们是相对受限制的(拓扑结构、相互作用、个体行为)。
  • 全局行为可能难以解释

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

  1. JMS学习六(ActiveMQ消息传送模型)

    JMS学习六(ActiveMQ消息传送模型) ActiveMQ 支持两种截然不同的消息传送模型:PTP(即点对点模型)和Pub/Sub(即发布 /订阅模型),分别称作:PTP Domain 和Pub/ ...

  2. 复杂系统学习(四):ODE模型II:流行病

    目录 引言:模型术语 1. 基本的SIR模型 2. 基本SIR模型的一个简单实现 2.1 计算出一个事件是否发生? 2.2 运行我们的模型 2.3 人口接触问题 3. 计算感染风险的不同方法 4. 修 ...

  3. swift4.1 系统学习六

    swift学习笔记6 字符和字符串 在swift中,String类型也是结构体,属于值类型,而不是引用类型.这一点,与OC是不一样的. // // main.swift // swift06 // / ...

  4. 复杂系统学习(三):ODE模型I:捕食者—猎物

    目录 1. Lotka-Volterra 模型 1.1 模型假设 1.2 模式制定 2. 解决ODEs问题的一些方法 2.1 用欧拉法解决ODEs问题 2.2 使用中点来提高准确性 2.3 使用Run ...

  5. 捷联惯导系统学习7.5(低成本组合导航系统模型)

    低成本组合导航系统模型 低精度MEMS惯性/卫星/地磁组合导航系统中,选择惯导系统的姿态失准角ϕ\phiϕ.速度误差δvn\delta v^nδvn.定位误差δpn\delta p^nδpn.陀螺仪相 ...

  6. 系统学习机器学习之系统认识

    机器学习(MachineLearning, ML)是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能, ...

  7. SAS系统学习之初探

    以前在学校接触过SAS,跟着课程学习并将SAS用于统计理论的实现,学习期间断断续续,不成系统.2013年有幸参与SAS在高校举办的首次数据分析大赛,并获得"团体十强"的荣誉,之后很 ...

  8. 用python设计一个管理系统思路_Python大佬一个月打造的Python系统学习流程图!

    对于刚开始接触Python的小伙伴来说,没有思路方法,不知道从何开始学习,把软件环境安装好后就不知所措了!接下来我给大家分享下多位大牛倾力打造的python系统学习流程,一个月才设计完的! Pytho ...

  9. python逻辑运算的一些流程图_Python大牛历时一个月打造的Python系统学习流程图,超详细!...

    对于刚开始接触Python的小伙伴来说,没有思路方法,不知道从何开始学习,把软件环境安装好后就不知所措了!接下来我给大家分享下多位大牛倾力打造的python系统学习流程,一个月才设计完的! Pytho ...

  10. 13位Python大牛历时一个月打造的Python系统学习流程图,超详细!

    对于刚开始接触Python的小伙伴来说,没有思路方法,不知道从何开始学习,把软件环境安装好后就不知所措了!接下来我给大家分享下多位大牛倾力打造的python系统学习流程,一个月才设计完的! #Pyth ...

最新文章

  1. PTA数据结构与算法题目集(中文)7-37
  2. Mahout-协同过滤-CF-推荐算法基本概念及代码示例
  3. fiddler设置抓取https请求后打开网页总是报“你的连接不是私密链接”的解决办法
  4. asp 与 database (3)
  5. 云架构的基础转变会带来哪些变化?
  6. 0到1:闲鱼高复杂度高性能社区圈子开发实录
  7. linux设置php时间,修改 linux 时区时间和 php 时区(示例代码)
  8. idea连接Mysql报错
  9. 解除webservice上下传文件大小限制
  10. matlab中度数化成度分秒,度分秒转换:32.68度用度、分、秒表示=? 求解释!?请帮忙...
  11. dnf加点模拟器最新版85级版
  12. 小米平板2刷哪个系统更流畅_你想用什么系统的小米平板2,Win10还是MIUI7?
  13. 第三章第二十四题(游戏:抽牌)(Game: pick a card)
  14. 【数据库自习室#003】Mysql数据库函数
  15. 有密码Win10创建新用户
  16. VGA、HDMI、DP你都懂吗?显示接口大盘点
  17. 生鲜超市 学习进阶第三天 xadmin的后台管理
  18. 关于项目连接docker数据库报错不存在表的问题
  19. 【日常】某B视频网站模拟登录尝试
  20. 日产轩逸如何与安卓手机完成智能互联

热门文章

  1. JS之比较两个对象是否相同
  2. 新浪微博开发之查看详细微博的实现
  3. osx批量删除通过.ics文件导入的calendar event
  4. win10自带移动热点 无法设置
  5. 向量的外积、内积、正交、平行判断
  6. 计算机工程学院文艺部,计算机系学生会文艺部工作计划
  7. PHP学习笔记(三)
  8. mysql8 1251错误_navicat错误1251
  9. 舍得舍得,只有舍,才有得,总是得,总感觉不太好
  10. 工作的时候也要了解这几个职场规则