元胞自动机简单理解

article/2025/10/12 22:32:40

元胞自动机

元胞自动机( Cellular Automata) 是 20 世纪 50 年代初由计算机之父冯·诺依曼为了模拟生命系统所具有的自复制功能而提出来的网格动力学模型。

概念

元胞自动机采用离散的空间布局和离散的时间间隔,将元胞分成有限种状态,元胞个体状态的演变仅与其当前状态以及其某个局部邻域的状态有关。

将所有元胞自动机的动力学行为归纳为四大类(Wolfram. S.,1986):

⑴ 平稳型:自任何初始状态开始,经过一定时间运行后,元胞空间趋于一个空间平稳的构形,这里空间平稳即指每一个元胞处于固定状态。不随时间变化而变化。

⑵ 周期型:经过一定时间运行后,元胞空间趋于一系列简单的固定结构(Stable Patterns)或周期结构(Perlodical Patterns)。由于这些结构可看作是一种滤波器(Filter),故可应用到图像处理的研究中。

⑶ 混沌型:自任何初始状态开始,经过一定时间运行后,元胞自动机表现出混沌的非周期行为,所生成的结构的统计特征不再变止,通常表现为分形分维特征。

⑷ 复杂型:出现复杂的局部结构,或者说是局部的混沌,其中有些会不断地传播。

初等元胞自动机( Elementary Cellular Automata, ECA)的基本要素如下:

  • 元胞空间:元胞在空间分布的空间格点的集合,如一维直线上等间距的点。可为某区间上的整数点的集合。二维的元胞自动机通常有三种划分方式(三角形、正方形、正六边形)
网格类型优点缺点
三角形拥有相对较少的邻居数目,易于处理复杂边界在计算机的表达与显示不方便,需要转换为四方网格
正方形直观简单,而且适合于在现有计算机环境下进行表达显示不能较好地模拟各向同性的现象
正六边形能够较好地模拟各向同性的现象,因此,模型更更加自然而真实在表达显示上较为困难、复杂

元胞空间的边界条件

理论上,元胞空间是无限的,实际应用中无法达到这一理想条件。常用的边界条件有以下几种:周期型、定值型、绝热型、反射型

  1. 周期型边界条件(Periodic Boundary)
    是指相对边界连接起来的元胞空间,对于一维空间,首尾相接形成一个圆环;
    对于二维空间,上下相接、左右相接,形成一个拓扑圆环面,形似车胎
    20201026203011

  2. 定值型边界条件(Constant Boundary)
    所有边界外元胞均取某一固定常量
    20201026203024

  3. 绝热型边界条件(Adiabatic Boundary)
    在指边界外邻居元胞的状态始终和边界元胞的状态保持一致,即具有状态的零梯度。20201026203036

  4. 反射型边界条件(Constant Boundary)
    在边界外邻居的元胞状态是以边界元胞为轴的镜面反射
    20201026214406

  • 状态集:S={s1,s2} 即只有两种不同的状态。这两种不同的状态可将其分别编码为0 与 1;若用图形表示,则可对应“黑”与“白” 或者其他两种不同的颜色。
  • 邻居:若一维邻居半径r=1,即每个元胞最多只有“左邻右舍”两个邻居。
  1. 冯诺依曼型
    邻居数目=2d

20201026202842
2. 摩尔型
邻居数目=3^d-1
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zK0qkYQ5-1604564226207)(https://i.loli.net/2020/10/26/IO2TqoRk316LJpH.png)]
3. 扩展摩尔型
邻居数目=(2r+1)^d-1
20201026202932
4. 马格勒斯型(Margolus)
主要区别:以2*2的元胞块为单元进行处理,而不是单独处理
主要应用领域:格子气流体、颗粒流

  • 演化规则:任意设定, 最多2^8=256种不同的设定方式。元胞以相邻的8个元胞为邻居。即Moore邻居;一个元胞的生死由其在该时刻本身的生死状态和周围八个邻居的状态决定。根据元胞及其邻居元胞的状态,决定下一时刻该元胞状态的动力学函数,也可以是状态转移方程或局部映射。

从数学上来定义,有限自动机是一个五元组:

FA=(Q,S,δ,q0,F)

其中,Q是控制器的有限状态集、S是输入符号约有限集、δ是控制状态转移规律的Q×S到Q的映射 (可用状态转移图或状态转移表表示),q0是初始状态、F是终止状态集。若δ是单值映射,则称M为确定性有限自动机;若δ是多值映射,则称M为非确定性 有限自动机。

特征

(1)同质性、齐性:同质性反映在元胞空间内的每个元胞都服从相同的规则;齐性指的是元胞的分布方式相同,大小形状相同,空间分布整齐。

(2)空间离散:元胞分布在按一定规则划分的离散的元胞空间上。

(3)时间离散:系统的演化是按等时间间隔分步进行的。t时刻的状态只对t+1时刻的状态产生影响。

(4)状态离散、有限:元胞自动机的状态参量只能取有限个离散值。

(5)同步计算(并行性):元胞自动机的处理是同步进行的。

(6)时空局域性:每个元胞在t+1时刻的状态,取决于其邻居的元胞在t时刻的状态。

(7)维数高:动力系统中一般将变量的个数成为维数。任何完备元胞自动机的元胞空间是在空间上的无穷集,每个元胞的状态是这个动力学系统的变量,因此元胞自动机是一类无穷维动力系统。

应用:
生物学领域

肿瘤细胞的增长机理和过程模拟
人类大脑的机理探索
艾滋病病毒HIV的感染过程
自组织、自繁殖等生命现象的研究
克隆技术
模拟植物的生长
贝壳上色素的沉积图案
生态学领域

生态系统动态变化过程的模拟
蚂蚁的行走路线,大雁、鱼类洄游动物的群体行为的模拟
生物群落的扩散模拟

物理学模拟

LGA 格子气自动机
LBM格子-玻尔兹曼法
流体领域,在多孔介质、多相流、微小尺寸具有独特的优越性
LBM同样被成功用于磁场、电场、热扩散、热传导的模拟
雪花等枝晶的形成
液态金属材料的凝固结晶过程
颗粒材料的垮塌现象
交通科学领域
两条主线:
1)Nagel-Schreckenberg模型
对城市道路交通流的研究
2)BML模型
对城市交通网络的研究

计算机科学与信息学领域

研究信息的保存、传递、扩散
图像处理和模式识别

184号模型

  • 道路被划分为等距格子,每个格点表示一个元胞;
  • 某个时刻,元胞或者是空的,或者被一辆车占据;
  • 所有车辆的行进方向都是一致的(如向右);
  • 在每一个时间步内:若第n辆车的前方元胞是空的,则该车可以向前行驶一步;
  • 若前面的元胞被另一辆车n+1所占据,即使第n+1辆车在本时间步内离开此元胞,第n辆车也停在原地不动;
  • 整个系统采用周期性边界条件以确保车辆数守恒。
    20201031202559

NaSch模型

NaSch模型是对184号模型的推广,1992年Nagle和Schreckenberg提出了著名的NaSch模型

Python 实现最简单的元胞自动机

选取的元胞状态只有两种,分别为 0 和 1。每一层由 64 个元胞组成,若元胞状态为 1,那么控制台将打印星号(*);如果元胞状态为 0,那么控制台将打印连字符(-)。也就是说,每一行由 64 个混合星号与连字符的图案组成。

状态更新规则:若当前元胞的前一个元胞的状态为 1,或者前一个元胞的左右两边的元胞的状态有且只有一个值为 1, 那么该元胞的状态就为 1。反之,元胞的状态设为 0。对于第一列和最后一列,我们只需分别考虑右元胞和左元胞即可。对于中间部分的元胞来说,若其领域元胞的状态为[0,1,0]、[0,0,1]、[1,0,0]、[1,1,0]等状态时,当前元胞的状态就为 1。

import time
def print_seq(seq, speed=0.5):for item in seq:if item:print('*', end='')else:print('-', end='')print('')time.sleep(speed)class Cell:def __init__(self, deepth=31):self.ca = [0 if i != 31 else 1 for i in range(64)]self.ca_new = []self.deepth = deepthdef process(self):print_seq(self.ca)for i in range(self.deepth):self._rule()print_seq(self.ca_new)self.ca = self.ca_newself.ca_new = []def _rule(self):for i in range(64):if 0 < i < 63:if self.ca[i - 1] == self.ca[i + 1]:self.ca_new.append(0)else:self.ca_new.append(1)elif i == 0:if self.ca[1]:self.ca_new.append(1)else:self.ca_new.append(0)else:if self.ca[62]:self.ca_new.append(1)else:self.ca_new.append(0)def main():cell = Cell()cell.process()if __name__ == '__main__':main()

20201105160200

参考文章:

  1. 元胞自动机研究的相关理论方法

http://chatgpt.dhexx.cn/article/u0epe3Ix.shtml

相关文章

matlab元胞自动机入门详解

元胞自动机的初步理解 对元胞自动机的初步认识 元胞自动机&#xff08;CA&#xff09;是一种用来仿真局部规则和局部联系的方法。典型的元 胞自动机是定义在网格上的&#xff0c;每一个点上的网格代表一个元胞与一种有限的状 态。变化规则适用于每一个元胞并且同时进行。元胞的…

元胞自动机-附代码注释

元胞自动机&#xff08;Cellular Automata CA&#xff09;是一种时空离散的局部动力学模型&#xff0c;是研究复杂系统的一种典型方法&#xff0c;适用于空间复杂系统的时空动态模拟研究。 元胞自动机不是由严格定义的物理方程或函数确定&#xff0c;而是用一系列模型构造的规则…

元胞自动机简介

摘要&#xff1a; 元胞自动机能利用简单的局部规则和离散方法描述复杂的全局的连续系统&#xff0c;已成为探索复杂系统的一种有效工具。文章 阐述了元胞自动机的发展历程、结构、特征及基本理论与方珐&#xff1b;介绍了元胞自动机在寡头垄断行为、交通管理及工程运输、城市…

数模笔记14-元胞自动机

元胞自动机模型 元胞自动机理论 元胞自动机&#xff08;Cellular Automata&#xff0c;CA&#xff09;是一种时空离散的局部动力学模型&#xff0c;是研究复杂系统的一种典型方法&#xff0c;特别适合用于空间复杂系统的时空动态模拟研究。 元胞自动机不是由严格定义的物理方程…

【数学建模】元胞自动机

前些天发现一个通俗易懂&#xff0c;风趣幽默的人工智能学习网站&#xff1a; 传送门 A 简介 1 历史 最初的元胞自动机是由冯 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 何顿 康威设计了一个电脑游戏 “生…

关于元胞自动机

元胞自动机(cellular automata&#xff0c;CA) 是一种时间、空间、状态都离散&#xff0c;空间相互作用和时间因果关系为局部的网格动力学模型&#xff0c;具有模拟复杂系统时空演化过程的能力。 其实在去年暑假准备国赛的时候试图过自学&#xff0c;但受限于&#xff0c;网上…

元胞自动机(数学建模)

一.元胞自动机的概念 元胞自动机(cellular automata&#xff0c;CA) 是一种时间、空间、状态都离散&#xff0c;空间相互作用和时间因果关系为局部的网格动力学模型&#xff0c;具有模拟复杂系统时空演化过程的能力。 元胞自动机是用一系列模型构造的规则构成&#xff0c;只要满…

元胞自动机

一个一个的格子看做是一个个的元胞&#xff0c;他们按照自己的规则自动进行状态改变就是元胞自动机。 定义&#xff1a;是一种时间、空间、状态都离散&#xff0c;空间相互作用和时间因果关系为局部的网格动力学模型&#xff0c;具有模拟复杂系统时空演化过程的能力。 元胞自…

元胞自动机简介(美赛复习一)

为美赛准备&#xff0c;进行元胞自动机的简单回顾。 本文只是简单回顾&#xff0c;可能会进行相关论文复现。 文章目录 一、简介 1.元胞2.元胞空间3.元胞邻居4.边界条件5.规则二、简单例子 一、简介 元胞自动机&#xff1a;是一种时间、空间、状态都离散&#xff0c;空间相互…

【数学建模】元胞自动机(CA)详解 + Matlab代码实现

文章目录 一、什么是元胞自动机&#xff1f;二、图解元胞自动机&#xff1a;三、案例Matlab代码实现&#xff1a;1.奇偶规则2.生命游戏3.森林火灾 一、什么是元胞自动机&#xff1f; 元胞自动机(cellular automata&#xff0c;CA) 是一种时间、空间、状态都离散&#xff0c;空…

迁移学习在金融行业的应用探索

摘要&#xff1a;通过迁移学习技术&#xff0c;解决少量数据&#xff08;较少重叠样本和特征&#xff09;和个性化&#xff08;较少标记&#xff09;的问题&#xff0c;从数据丰富的领域迁移到数据匮乏的领域。通过迁移学习在保证模型准确率的同时&#xff0c;也提高了建造模型…

pytorch之迁移学习

文章目录 1.导入相关的包2.加载数据3.可视化部分图像数据4.训练模型5.可视化模型的预测结果6.场景1&#xff1a;微调ConvNet7.场景2&#xff1a;ConvNet作为固定特征提取器 实际中&#xff0c;基本没有人会从零开始&#xff08;随机初始化&#xff09;训练一个完整的卷积网络&a…

翻译: Transfer learning 迁移学习指南

这是您需要了解的有关经典迁移学习和深度迁移学习的所有信息。阅读本指南可改进您的模型训练并在更短的时间内获得更好的性能。 1. 背景 事情是这样的—— 至少可以说&#xff0c;在处理一项全新的任务时收集大量数据可能具有挑战性。 然而- 仅使用有限数量的训练数据获得…

迁移学习方法学习

目录 迁移学习的基础知识迁移学习的概念迁移学习的分类按目标域标签分按学习方法分按特征分类按离线与在线形式分 迁移学习的基本方法基于样本的迁移基于特征的迁移基于模型的迁移基于关系的迁移 深度迁移学习深度网络的可迁移性最简单的迁移学习——finetune finetune的使用技…

迁移学习实例

上一篇我们介绍了迁移学习的核心思想和流程&#xff0c;我们介绍一个实例来加深理解。 传送门&#xff1a;迁移学习概述 获取预训练模型 pytorch和tensorflow都封装了很多预训练模型。 pytorch通过工具包torchvision.models模块获取&#xff0c;主要包括AlexNet、VGG系列、 Res…

迁移学习与微调的区别

一、迁移学习&#xff1a; 1、从字面意义上理解是知识转移的学习方法&#xff0c;指一种学习方法&#xff1b;类比机器学习、深度学习等等概念&#xff1b; 2、把已训练好的模型参数迁移到新的模型来帮助新模型训练二、微调&#xff1a; 1、从字面意义上理解是小小的调整&…

迁移学习---举一反三

1.概念 迁移学习是指充分考虑数据、任务、或者模型的相似性&#xff0c;将在旧领域学习到的模型&#xff0c;应用到新的领域的一种学习过程。 通俗的讲就是把已经学习训练好的模型参数迁移到新的模型进行训练。考虑到大部分数据或任务是存在相关性的&#xff0c;所以通过迁移…

迁移学习基础

人类具有跨任务传输知识的固有能力。我们在学习一项任务的过程中获得的知识&#xff0c;可以用来解决相关的任务。任务相关程度越高&#xff0c;我们就越容易迁移或交叉利用知识。到目前为止所讨论的机器学习和深度学习算法&#xff0c;通常都是被设计用于单独运作的。这些算法…

学习迁移学习

学习迁移学习 一、相关背景 随着机器学习和数据挖掘不断发展&#xff0c;一个愈加明显的问题出现在人们面前&#xff1a;要想机器学习能够正常运转必须要保证训练集和测试集有相同的特征空间并且同分布。一旦分布改变&#xff0c;大多数模型往往要根据数据重建&#xff0c;这…

联邦迁移学习

本博客地址&#xff1a;https://security.blog.csdn.net/article/details/123573886 一、联邦学习的定义 横向联邦学习和纵向联邦学习要求所有的参与方具有相同的特征空间或样本空间&#xff0c;从而建立起一个有效的共享机器学习模型。然而&#xff0c;在更多的实际情况下&am…