数模笔记14-元胞自动机
元胞自动机模型
元胞自动机理论
元胞自动机(Cellular Automata,CA)是一种时空离散的局部动力学模型,是研究复杂系统的一种典型方法,特别适合用于空间复杂系统的时空动态模拟研究。
元胞自动机不是由严格定义的物理方程或函数确定,而是用一系列模型构造的规则构成。凡是满足这些规则的模型都可以算作是元胞自动机模型。因此,元胞自动机是一类模型的总称,或者说是一个方法框架。
在CA模型中,散布在规则格网 (Lattice Grid)中的每一元胞(Cell)取有限的离散状态,遵循同样的作用规则,依据确定的局部规则作同步更新。大量元胞通过简单的相互作用而构成动态系统的演化。
CA模型的特点:时间、空间、状态都离散,每个变量只取有限多个状态,且其状态改变的规则在时间和空间上都是局部的。
元胞自动机的构成
元胞自动机最基本的组成:元胞、元胞空间、邻居及规则四部分。
简单讲,元胞自动机可以视为由一个元胞空间和定义于该空间的变换函数所组成。
元胞自动机的构成
元胞
元胞自动机的最基本组成部分。它分布在离散的一维、二维或多维欧几里德空间的晶格点上。
状态
状态可以是{0,1}的二进制形式,或是{s0,s1,s2,…,si}整数形式的离散集。严格意义上,元胞只能有一个状态变量,但在实际应用中,往往将其进行扩展。
元胞空间
元胞所分布在的空间网点集合就是元胞空间
元胞空间的几何划分
任意维数的欧几里德空间规则划分。对于一维元胞自动机,元胞空间划分只有一种。而高维的元胞自动机,元胞空间的划分则可能有多种形式。对于常见的二维自动机,元胞空间通常可按三角形、四边形或六边形三种网格排列。
三角网格
拥有较少的邻居数目,这在某些时候很有用。缺点是计算机的表达与显示不方便。
四边形网格
直观简单,特别适合于计算机环境下进行表达显示。
六边形网格
能较好的模拟各向同性的现象,因此,模型能更加自然而真实。其缺点同正三角网格一样,在表达显示上较为困难和复杂。
边界条件
理论上,元胞空间在各个维向上是无限延展的。实际应用过程中,无法在计算机上实现这一理想条件。
构形
在某个时刻,在元胞空间上所有元胞状态的空间分布组合。在数学上,它通常可以表示为一个多维的整数矩阵。
邻居、元胞和元胞空间只表示了系统的静态成分,为了将动态引入系统,必须加入演化规则。这些规则是定义在局部空间范围内的,即一个元胞下一时刻的状态决定于本身的状态和它的邻居元胞的状态。因此,在指定规则之前,必须定义一定的邻居规则,明确哪些元胞属于该元胞的邻居。
一维元胞自动机中,通常以半径r来确定邻居,距离一个元胞r内的所有元胞都属于该元胞的邻居。
二维元胞自动机的邻居定义较为复杂,但通常有以下几种(以正方形网格为例 )
规则
根据元胞当前状态及其邻居状况确定下一时刻该元胞状态的动力学函数,简单讲,就是状态转移函数。这个函数构造了一种简单的离散的时间和空间范围的局部物理成分。状态的变化可以由状态转移函数表示:
f:Stt+1=f(Sit,...,SNt)SNt为t时刻的邻居状态组合f:S_t^{t+1}=f(S_i^t,...,S_N^t)\\ S_N^t为t时刻的邻居状态组合 f:Stt+1=f(Sit,...,SNt)SNt为t时刻的邻居状态组合时间
元胞自动机是一个动态系统,它在时间维上的变化是离散的,即时间t是一个整数值,而且连续且等间距。在上述转换函数中,一个元胞在t+1时刻的状态只直接决定于t 时刻的该元胞及其邻居的状态。
元胞自动机特性
把一个空间划分成网络,每一个点表示一个元胞,它们的状态赋值,在网格中用颜色的变化来表示,在事先设定的规则下,元胞的演化就用网格颜色的变化来描述,这样的模型就是元胞自动机。
通过对元胞自动机这些网络中的格点的不同定义,以及初始条件的不同,可以模拟出不同的现象和过程。
元胞自动机的基本特征:
- 离散性:元胞自动机是高度离散的。它不仅仅空间离散时间离散,而且在函数值,即元胞的状态值也是离散的。
- 动力学演化的同步性:元胞自动机具有利用简单的,局部规则的和离散的方法,描述复杂的,全部的和连续系统的能力。
- 相互作用的局部性:元胞自动机的规则是局部的,而动力学行为规则是全局的,在模拟的过程中,具体的演化过程也是局部的,即仅同周围的元胞有关系。
元胞自动机应用的思想
复杂系统又称为非线性系统。如城市的发展与演化、城市人流与交通流以及交通堵塞的形成、自然环境下的动物的空间分布、河网的形成、疾病的传播等。
传统的自顶向下的分析方法是把系统分割成几个部分,对每一个部分逐个进行研究。而目前提出来的分析复杂动态系统的思想:自底向上的研究方法。
基于个体的自底向上的研究方法:
程序的行为完全由它的内部机制决定,通常将个体与程序相连,所模拟的复杂现象包括许多个体。在计算机里生成一个与真实世界对等的虚拟的人工世界,通常这个虚拟的世界包括许多个体,而这许多个体的行为呈现为复杂性。以此来探讨微观的个体行为和宏观复杂性之间的关系。
初等元胞自动机
初等元胞自动机是状态集S只有两个元素{s1,s2},即状态个数k=2,邻居半径r=1的一维元胞自动机。由于在S中具体采用什么符号并不重要,它可取 {0,1},{-1,1},{静止,运动} 等等,重要的是S所含的符号个数,通常我们将其记为 {0,1}。
此时,邻居集N的个数2⋅r=2,局部映射f:S3−>S可记为:Sit+1=f(Si−1t,Sit,Si+1t)此时,邻居集N的个数2·r=2,局部映射f:S_3->S可记为:S_i^{t+1}=f(S_{i-1}^t,S_i^t,S_{i+1}^t) 此时,邻居集N的个数2⋅r=2,局部映射f:S3−>S可记为:Sit+1=f(Si−1t,Sit,Si+1t)
二维元胞自动机
J. Conway和生命游戏
下面介绍生命游戏的构成及规则:
元胞分布在规则划分的网格上;
元胞具有0,1两种状态,0代表“死”,1代表“生”;
元胞以相邻的8个元胞为邻居。即Moore邻居形式;
一个元胞的生死由其在该时刻本身的生死状态和周围八个邻居的状态 (确切讲是状态的和)决定:
在当前时刻,如果一个元胞状态为“生”,且八个相邻元胞中有两个或三个的状态为“生”,则在下一时刻该元胞继续保持为“生”,否则“死”去;
在当前时刻,如果一个元胞状态为“死”,且八个相邻元胞中正好有三个为“生”,则该元胞在下一时刻 “复活”。否则保持为"死"。
从数学模型的角度看,该模型将平面划分成方格棋盘,每个方格代表一个元胞。
元胞状态: 0- 死亡,1- 活着
领域半径: 1
领域类型:Moore型
元胞自动机是一个不可逆的离散动力系统
元胞自动机的演化行为的统计特征
Wolfram将元胞自动机的演化行为归纳为四大类:
- 平稳型(homogeneous):自任何初始状态开始,经过一定时间演化后,经过若干步运算便停留在一个固定的状态。
- 周期型(periodic):经过一定时间演化后,在几种状态之间周期循环。
- 混沌型(chaos):自任何初始状态开始,经过一定时间演化后,处于一种完全无序随机的状态,几乎找不到任何规律。
- 复杂型(edge of chaos):在演化的过程中可能产生复杂的结构,这种结构既不是完全的随机混乱,又没有固定的周期和状态。
固定点—>周期—>复杂—>混沌
森林火灾
规则:
元胞有3个不同的状态。状态为 0是树木,状态= 1是空地,状态= 5是燃烧着的树木。
如果4个邻居中有一个或一个以上的是燃烧着的并且自身是树木,那么该元胞下一时刻的状态是燃烧。
森林元胞(状态为 0 )以一个低概率(例如0.000005 )开始烧(因为闪电)。
一个燃烧着的元胞(状态为 5 )在下一时刻(时间步长可以控制)变成空位的(状态为0 ) 。
空元胞以一个低概率(例如0.01 )变为森林以模拟生长元胞自动机交通流模型
特别注意:第184号规则
车辆行驶规则为:黑色元胞表示被一辆车占据,白色表示无车,若前方格子有车,则停止。若前方为空,则前进一格。
1992年,德国学者Nagel和Schreckenberg在第184号规则的基础上提出了一维交通流CA模型,即,NS 模型(或NaSch模型)
NS模型是一个随机CA交通流模型,每辆车的状态都由它的速度和位置所表示,其状态按照以下演化规则并行更新 :
加速过程:
安全刹车过程:
随机慢化过程:(以随机慢化概率p)
位置更新:
dn=xn+1−xn−L其中:L——车辆长度 7.5md_n=x_{n+1}-x_n-L\\ 其中:L——车辆长度 ~ 7.5m dn=xn+1−xn−L其中:L——车辆长度 7.5m
NS模型的演化规则:
- 加速: 司机总是期望以最大的速度行驶
- 安全刹车: 为避免与前车碰撞
- 随机慢化(以随机慢化概率p):由于不确定因素
- 过度刹车
- 道路条件变化
- 心理因素
- 延迟加速
- 位置更新:车辆前进
数模笔记14-元胞自动机相关推荐
- 学习笔记1—元胞自动机(CA)模型①
元胞自动机是一个时间和空间都离散的动力系统,能够进行复杂系统演化过程模拟.CA模型不是由严格定义的物理方程或者函数定义的,而是满足一些列模型构造的规则构成,是一系列模型的总称. 模型特点有: 具有时间 ...
- 笔记丨元胞自动机模拟城市扩张过程
忙啊忙啊....实验数据来自翁敏老师的空间分析.我是初次接触,为了熟悉操作,参照课本进行粗浅记录,很粗糙,不具备参考价值,请各位仔细甄别. CA模型:CA(Cellular Automat)即元胞自动 ...
- Stephen Wolfram专访Judea Pearl:从贝叶斯网络到元胞自动机
导语 2022年人工智能与数学国际研讨会(ISAIM 2022)恰逢著名计算机科学家.贝叶斯网络之父 Judea Pearl 85岁生日,会议期间Mathematica创始人 Stephen Wolf ...
- matlab 元胞自动机
用MATLAB实现元胞自动机的事例 file 1:life.m %% 初始化 m = 50; X = zeros(m,m); X(25,25) = 1;n = [m 1:m-1];e = [2:m 1 ...
- 学习常用模型及算法:2.元胞自动机和交通模型
元胞自动机在数模中的应用十分广泛. 元胞自动机原理 一维元胞自动机.给出任意一个状态,都能知道下一时刻的状态.规则已给出,总共有2^3 = 8种可能. 二维元胞自动机--生命游戏 元胞的状态是有限的- ...
- 【元胞自动机】基于matlab元胞自动机模拟交通路况(含超车)【含Matlab源码 2389期】
⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 · 何 ...
- 元胞自动机:更接近人类思考的智能模型
前段时间,一则"计算机首次通过图灵测试"的新闻被众多媒体报道,似乎人工智能已然离我们不远了. 在未来,计算机真的会拥有人类一样的自主思考.学习能力吗,甚至出现未来的"机器 ...
- 元胞自动机与相关理论和方法
元胞自动机与相关理论和方法的发展有着千丝万缕的联系,一方面,元胞自动机的发展得益于相关理论的研究,如逻辑数学.离散数学.计算机中的自动机理论,图灵机思想;另一方面,元胞自动机的发展也促进了一些相关学科 ...
- 元胞自动机(Cellular Automata)
元胞自动机(Cellular Automata,简称CA,也有人译为细胞自动机.点格自动机.分子自动机或单元自动机).是一时间和空间都离散的动力系统.散布在规则格网 (Lattice Grid)中的每 ...
最新文章
- 这还是你所认知的Python吗?原来是这么牛!
- 智能车百度赛道培训第一弹-基础篇
- python学习之自习语法(20180626_update)
- oracle反复查询一个集合,oracle集合查询
- 需求条目化:一个让用户故事有效落地的套路
- Basic concepts behind Web Audio API
- maven加载本地lib下的jar包
- Linux - 在yocto构建中使用i2c-tools
- 神经网络用英文怎么说,神经网络算法的英文
- 如何区分网线是几类的_几类网线怎么区分
- python网址解码_python用于url解码和中文解析的小脚本(python url decoder)
- 贵州师范学院数学与计算机科学,2018年贵州师范大学数学与计算机科学学院720数学分析考研基础五套测试题...
- java中成员方法_java中的成员变量和方法
- php实现RSA加密解密
- 搬家后计算机总重启,电脑无故重启是这一个月来的事了,我刚刚搬家电脑搬到新家那用了没几 爱问知识人...
- ResNet 论文阅读笔记
- Zabbix最新6.2安装及使用!
- 50项谷歌SEO优化清单(做谷歌优化必看)
- 飞书纷享销客CRM两者联合,使销售协同管理更高效
- 恒讯科技资讯分享:境外服务器知识科普
热门文章
- 《精英的傲慢:好的社会该如何定义成功》笔记与摘录
- 网络安全实验一 Part 2 Windows环境下的扫描器程序
- 小兔鲜案例注册,登录,索引的实现效果
- 解决“error: the requested upstream branch ‘origin/master‘ does not exist”
- 通讯录模拟(数据结构+JavaFX)--注释详细
- 2023 最新一键下载百度网盘/阿里云盘/百度文库/道客巴巴/原创力文档
- 商户流水号生成方法-带序列号
- 从SIP抓包中查看DTMF频率
- 安装时创建数据库、数据表等,同时添加初始数据
- 北京系列5——颐和园