元胞自动机学习笔记

article/2025/10/12 20:17:17

 元胞自动机学习笔记

2021.7.19


一、简介:

元胞自动机(cellular automata,CA):是一种时间,空间,状态都离散,空间相互作用和时间因果关系为局部的网格动力学模型,具有模拟复杂系统时空演化过程的能力。 

二、构成:

 

  • 元胞:可称为单元或基元,是元胞自动机最基本的部分
  • 元胞状态:在最简单情况下,元胞有两种可能的状态;较复杂情况下,具有多种状态;元胞的状态都按照元胞动力机的动力规则不断更新。
  • 元胞空间:元胞在空间分布上的集合
  • 元胞邻居:某一元胞状态更新时所要搜索的空间域(能够影响该元胞下一时刻状态的元胞)

 

最常用的三种邻居

  • 边界条件:理论上,元胞空间是无限的,实际应用中无法达到这一理想条件,为了给元胞空间边界上的元胞拥有规则所需要的邻居,就需要构建出一些虚拟邻居,常用的邻居边界条件类型有:固定型,周期型,绝热型和映射型。
  1. 固定型边界:虚拟邻居的状态自拟且固定
  2. 周期型边界:元胞空间的右边界作为左边界左边的虚拟邻居,左边界作为右边界右边的虚拟邻居
  3. 绝热型边界:虚拟邻居的状态为元胞本身
  4. 映射型边界:左边界上元胞的虚拟左邻居为该元胞的右邻居的状态
  • 元胞规则:根据元胞当前的状态及邻居的状态来决定下一时刻该元胞的状态,元胞自动机根据规则进行局部元胞间的相互作用而引起全局变化

元胞自动机的特性:

  • 离散性:空间、时间及状态都是离散的
  • 同质性:服从相同的规律分布方式相同
  • 并行性:元胞的状态更新规则变化时同步进行的
  • 高维度:元胞自动机时一类无穷维动力系统

初等元胞自动机:

  1. 一维元胞自动机的元胞邻居半径为1
  2. 元胞有且只有两种状态

初等元胞自动机只有这八种状态

因为每种状态的元胞的下一状态都有两种情况:0 or 1,每种情况对应一种规则,所以共有2^8=256种规则

三、实例

实例1:奇偶规则

元胞有两种状态{ 0,1 };

邻居之和为奇数,中心元胞变为1;

邻居之和为偶数,中心元胞变为0;

MATLAB代码实现:

clc;clear;
n=200; %元胞空间大小
%元胞自动机的实现本质是矩阵的变化
Se=zeros(n);
z=zeros(n);
Se(n/2-2:n/2+2,n/2-2:n/2+2)=1; %设置初始状态Ch=imagesc(Se) %用红蓝色显示目前元胞状态Ch=imagesc(cat(3,Se,z,z)) %用红黑色显示目前元胞状态
axis square; %加方形边框Sd=zeros(n+2); %边界条件(上下左右各加一全为0的行/列)while(1)Sd(2:n+1,2:n+1)=Se; %相当于给Se加了一个全为0的框%边界条件sum=Sd(1:n,2:n+1)+Sd(3:n+2,2:n+1)+Sd(2:n+1,1:n)+Sd(2:n+1,3:n+2); %上邻居+下邻居+左邻居+右邻居%注意:Se和sum都是矩阵Se=mod(sum,2); %判断奇偶并赋值set(Ch,'cdata',cat(3,Se,z,z)) %控制性质(形状、颜色)的变化  %矩阵的更新pause(0.03) %每隔0.03秒变一次end

实例2:生命游戏

在一个正方形的棋盘中,每个小格有两种状态,“生”或“死”,每个小格有八个邻居:

① 对于“生”的格子,若他的8个邻居中有两个或者三个为“生”,则该格继续保持“生”,否则就变为“死”;

②对于“死”的格子,若他的8个邻居中有3个“生”,则该格变为“生”,否则继续保持“死”。

MATLAB代码实现:

clc;clear;
n=200; 
p=0.4 %初始化,以0.4"生"的概率生成
z=zeros(n);
Se=rand(n)<p;
Sd=zeros(n+2);
Ph=imagesc(cat(3,Se,z,z))
axis square; while(1)Sd(2:n+1,2:n+1)=Se;sum=Sd(1:n,2:n+1)+Sd(3:n+2,2:n+1)+Sd(2:n+1,1:n)+Sd(2:n+1,3:n+2);%元胞规则for i=1:nfor j=1:nif sum(i,j)==3||(sum(i,j)==2&&Se(i,j)==1)Se(i,j)=1;elseSe(i,j)=0;endendendset(Ph,'cdata',cat(3,Se,z,z)) %控制性质(形状、颜色)的变化  %矩阵的更新pause(0.03) %每隔0.03秒变一次 end

实例3:澳洲森林火灾

在正方形网络上,有三种状态:树,火,空地。

MATLAB代码:

clc;clear;
n=300; %定义森林矩阵的大小
Plight=5e-6; Pgrowth=1e-2; %定义闪电和生长的概率
UL=[n,1:n-1];DR=[2:n,1]; %定义上左、下右邻居???(周期型)veg=zeros(n);   %初始化森林矩阵 veg= 0:空地  1:着火  2:树imh=imagesc(cat(3,veg,veg,veg))
axis square; for i=1:3000%计算所有格子着火的数量sum=(veg(UL,:)==1)+(veg(:,UL)==1)+(veg(:,DR)==1)+(veg(DR,:)==1);%根据规则更新森林矩阵:是否树=是否着火的树+是否新生的树(0-1运算)veg=2*(veg==2)-((veg==2)&(sum>0|(rand(n,n)<Plight)))+2*((veg==0)&rand(n,n)<Pgrowth);set(imh,'cdata',cat(3,(veg==1),(veg==2),zeros(n)))pause(0.05);end

                       

                                                                               


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

相关文章

python实现元胞自动机

这是刚学习写代码时完成的&#xff0c;因此很多地方编写的可能不太美观&#xff0c;但运行起来没有问题&#xff0c;先发出来&#xff0c;之后有精力了在修改美化。 该元胞自动机的功能&#xff1a; 1.初始化按一定概率在各个位置生成元胞。 2.迭代&#xff0c;每次迭代元胞…

元胞自动机基本概念

目录 前言 一、元胞自动机的概述 二、元胞自动机的构成 1.元胞 2.元胞空间 3.元胞邻居 4.元胞规则 总结 前言 元胞自动机的寒假学习笔记&#xff0c;这里只是一些基本的概念&#xff0c;后面一篇文章会详细、具体地去介绍基于MATLAB元胞自动机的代码实现。&#xff08…

元胞自动机简单理解

元胞自动机 元胞自动机&#xff08; Cellular Automata&#xff09; 是 20 世纪 50 年代初由计算机之父冯诺依曼为了模拟生命系统所具有的自复制功能而提出来的网格动力学模型。 概念 元胞自动机采用离散的空间布局和离散的时间间隔&#xff0c;将元胞分成有限种状态&#x…

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;所以通过迁移…