元胞自动机

article/2025/10/12 22:28:13

一个一个的格子看做是一个个的元胞,他们按照自己的规则自动进行状态改变就是元胞自动机。

定义:是一种时间、空间、状态都离散,空间相互作用和时间因果关系为局部的网格动力学模型,具有模拟复杂系统时空演化过程的能力。

元胞自动机由元胞元胞空间元胞邻居元胞规则组成。

元胞可以称为单元或基元,是元胞自动机最基本的部分。每个元胞有一个状态,比如说将元胞看做人,拥有生和死两种状态,元胞的状态按照规则不断进行更新。元胞空间就是元胞在空间分布撒上的集合,元胞空间的类型根据其形状命名。

用的最多的还是正方形,因为代码实现简单。

邻居:某一元状态更新时所要搜索的空间域。也就是能够影响该元胞的其他元胞,如果不能产生影响就不是邻居。

 常见的有这三种邻居类型,橙色的为绿色的邻居。

边界条件:理论上,元胞空间是无限的,实际应用中无法达到这一理想条件,为了让元胞空间边界上的元胞拥有规则所需要的邻居,就需要构造出一些虚拟的邻居,构造的过程就用到了边界条件。常用的邻居边界条件类型有:固定型周期型绝热型映射型

固定型:边界元胞的数值想给多少就给多少。下图中令左下角3的左邻居为2。

 周期型:相当于首位相连。第一个做最后一个的邻居。

 绝热型:自己是多少,邻居就是多少。

 映射型:将数据对称过去。比如下图将左下角的3右邻居映射到左边。

规则:根据元胞当前状态及邻居的状态来决定下一时刻该元胞状态。元胞自动机根据规则进行局部元胞间的相互作用从而引起全局的变化。

元胞特征:①离散型:空间、时间(隔一段时间检查一遍状态)、状态都是离散的。②同质性:服从相同的规律,分布方式也是相同的。③并行性:元胞的状态更新规则变化是同步进行的。④高纬度:元胞自动机可以有很多维。

初等元胞自动机:一维元胞自动机的元胞邻居半径为1,元胞有且只有两种状态(只有0和1)。因此一个元胞加上其邻居状态就有了8种状态:

根据不同的变化规则,每种情况的中心元胞都会变成0或者1,即有两种情况。

代码应用到的函数:

imagesc(C) 将数组 C 中的数据显示为一个图像,该图像使用颜色图中的全部颜色。C 的每个元素指定图像的一个像素的颜色。生成的图像是一个 m×n 像素网格,其中 m 和 n 分别是 C中的行数和列数。这些元素的行索引和列索引确定了对应像素的中心

axis square;产生正方形的坐标系

matlab中set语句用于给某对象的属性进行赋值。具体到set(A,'CData',B): A代表一个对象,'CData'是对象A的其中一个属性,B是准备赋给'CData'的值

A([5,1:4],:)将A的第5行、第1到4行的所有列按顺序组合成一个新的数组,相当于将第5行放在第一行

C = cat(dim,A,B) 沿维度 dim 将 B 串联到 A 的末尾。

drawnow用于刷新屏幕

image是最基本的图像显示函数。在MATLAB中用到的所有显示图像的函数都显式或者不显式地调用了这个函数。
imagesc是把图像矩阵中的值缩放到一个它认为合适的范围再使用image。这样使得图像矩阵中的值过小/过大/过集中时,仍然可以看到一个视觉效果还可以的图像。而对这样的矩阵直接用image则不行。

实例:

一、 奇偶规则:元胞只有两种状态(0和1),冯诺依曼型邻居之和为奇数,则中心元胞变为1,若邻居之和为偶数,则中心元胞变为0。 

clc,clear
n = 200;
Se = zeros(n);
Se(1:4,1:4) = 1;
Ch = imagesc(Se);%可视化
axis square;
Sd = zeros(n+2);
while(1)Sd(2:n+1,2:n+1) = Se;%相当于给Se矩阵加了一个全0边框,变为Sdsum = 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 = mod(sum,2);%满足变换规则set(Ch,'cdata',Se);pause(0.03);
end

二、森林火灾:元胞有三种状态(树、火、空地),树变为火有两种情况(冯诺依曼型邻居有一个是火,则中心元胞为火,或者被闪电击中变为火),火一段时间后会变为空地,空地有一定几率长出树。

clc,clear
n = 300;%定义森林的大小
Plight = 5e-6;Pgrowth = 1e-2;%定义闪电和生长的概率
UL = [n,1:n-1];%用来实现左和上邻居
DR = [2:n,1];%用来实现右和下邻居
veg = zeros(n);%初始化森林的矩阵
imh = image(cat(3,veg,veg,veg));%可视化森林,cat用以改变颜色
%veg 空地时为0.着火为1,树为2
while(1)sum = (veg(UL,:)==1)+(veg(:,UL)==1)+(veg(:,DR)==1)+(veg(DR,:)==1);%判断中心元胞周围是否有着火veg = 2*(veg==2) - ((veg==2)&(sum>0 | (rand(n)<Plight))) + 2*((veg==0)&rand(n)<Pgrowth);set(imh,'cdata',cat(3,(veg==1),(veg==2),zeros(n)));drawnow;
end

ps:cat将不同颜色层叠加,产生新的颜色。


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

相关文章

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

为美赛准备&#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…

迁移学习(二)

迁移学习综述&#xff08;二&#xff09;&#xff08;学习笔记&#xff09; A Comprehensive Survey on Transfer Learning 1.引言 迁移学习的目标是利用来自相关领域(称为源领域)的知识&#xff0c;以提高学习性能或最小化目标领域中需要的标记示例的数量。知识转移并不总是…

深度学习中的迁移学习介绍

迁移学习(Transfer Learning)的概念早在20世纪80年代就有相关的研究&#xff0c;这期间的研究有的称为归纳研究(inductive transfer)、知识迁移(knowledge transfer)、终身学习(life-long learning)以及累积学习(incremental learning)等。直到2009年&#xff0c;香港科技大学杨…

迁移学习综述

这是我根据北京邮电大学一位博士的讲解视频所归纳的笔记 视频地址&#xff1a;https://www.bilibili.com/video/BV1ct41167kV?spm_id_from333.337.search-card.all.click 正文 我们为什么需要迁移学习&#xff1f; 众所周知&#xff0c;AlphaGo是通过强化学习去训练&#x…

整理学习之深度迁移学习

迁移学习&#xff08;Transfer Learning&#xff09;通俗来讲就是学会举一反三的能力&#xff0c;通过运用已有的知识来学习新的知识&#xff0c;其核心是找到已有知识和新知识之间的相似性&#xff0c;通过这种相似性的迁移达到迁移学习的目的。世间万事万物皆有共性&#xff…

迁移学习简要

什么是迁移学习 迁移学习是一种机器学习方法&#xff0c;就是把任务为A的开发模型作为其的初始点&#xff0c;重新使用在任务为B的开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务。虽然大多数机器学习的新 算法都是为了解决单个任务而设计的…

迁移学习(Transfer),面试看这些就够了!(附代码)

1. 什么是迁移学习 迁移学习(Transfer Learning)是一种机器学习方法&#xff0c;就是把为任务 A 开发的模型作为初始点&#xff0c;重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务&#xff0c;虽然大多数机器学习算法都…

迁移学习

简介 好的机器学习模型需要大量数据和许多GPU或TPU进行训练。大多数时候&#xff0c;他们只能执行特定的任务。 大学和大公司有时会发布他们的模型。但很可能你希望开发一个机器学习应用程序&#xff0c;但没有适合你的任务的可用模型。 但别担心&#xff0c;你不必收集大量数据…

迁移学习(Transfer)

1. 什么是迁移学习 迁移学习(Transfer Learning)是一种机器学习方法&#xff0c;就是把为任务 A 开发的模型作为初始点&#xff0c;重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务&#xff0c;虽然大多数机器学习算法都…