前些天发现一个通俗易懂,风趣幽默的人工智能学习网站:

传送门

A 简介

1 历史
最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视.
1970 年, 剑桥大学的约翰 · 何顿 · 康威设计了一个电脑游戏 “生命游戏” 后, 元胞自动机才吸引了科学家们的注意.

1983 年 S.Wolfram 发表了一系列论文. 对初等元胞机 256 种 规则所产生的模型进行了深入研究, 并用熵来描述其演化行 为, 将细胞自动机分为平稳型, 周期型, 混沌型和复杂型.

2 应用

  • 社会学: 元胞自动机经常用于研究个人行为的社会性, 流行 现象. 例如人口迁移, 公共场所内人员的疏散, 流行病传播.
  • 图形学: 元胞自动机以其特有的结构的简单性, 内在的并行 性以及复杂计算的能力成为密码学中研究的热点方向之一
  • 物理学: 在物理学中, 元胞自动机已成功的应用于流体, 磁 场, 电场, 热传导等的模拟. 例如格子气自动机.

3 一维元胞自动机——交通规则
定义:

  • 元胞分布于一维线性网格上.

  • 元胞仅具有车和空两种状态.

  • 元胞状态由周围两邻居决定.

规则:研究的变化对象只是中间的格子,后面的车子要比前面的车子起步延迟1格。

4 二维元胞自动机——生命游戏
定义:

  • 元胞分布于二维方型网格上.

  • 元胞仅具有生和死两种状态.

  • 元胞状态由周围八邻居决定.

规则:

骷髅:死亡;笑脸:生存
周围有三个笑脸,则中间变为笑脸
少于两个笑脸或者多于三个,中间则变死亡。

5 什么是元胞自动机
离散的系统: 元胞是定义在有限的时间和空间上的, 并且元 胞的状态是有限.
动力学系统: 元胞自动机的举止行为具有动力学特征.
简单与复杂: 元胞自动机用简单规则控制相互作用的元胞 模拟复杂世界.

6 构成要素

(1)元胞 (Cell)

元胞是元胞自动机基本单元:

  • 状态: 每一个元胞都有记忆贮存状态的功能.
  • 离散: 简单情况下, 元胞只有两种可能状态; 较复杂情况下, 元胞具有多种状态.
  • 更新: 元胞的状态都安照动力规则不断更新.

(2)网格 (Lattice)
不同维网格

常用二维网格

(3)邻居 (Neighborhood)

(4)边界 (Boundary)

反射型:以自己作为边界的状态
吸收型:不管边界(车开到边界就消失)

(5)规则(状态转移函数)
定义:根据元胞当前状态及其邻居状况确定下一时刻该元胞状态的动力学函数, 简单讲, 就是一个状态转移函数.

分类 :

  • 总和型: 某元胞下时刻的状态取决于且仅取决于它所有邻居 的当前状态以及自身的当前状态.
  • 合法型: 总和型规则属于合法型规则. 但如果把元胞自动机 的规则限制为总和型, 会使元胞自动机具有局限性.

(6)森林火灾

绿色:树木;红色:火;黑色:空地。
三种状态循环转化:
树:周围有火或者被闪电击中就变成火。
空地:以概率p变为树木

理性分析:红为火;灰为空地;绿是树

元胞三种状态的密度和为1

火转化为空地的密度等于空地转换为树的密度(新长出来的树等于烧没的树)

fff是闪电的概率:远远小于树生成的概率;TsmaxT_{smax}Tsmax​是一大群树被火烧的时间尺度

程序实现
周期性边界条件
购进啊

其中的数字为编号
构建邻居矩阵

上面矩阵中的数字编号,对应原矩阵相同位置编号的上邻居编号,一 一对应
同样道理:

% simulate forest fire with cellular automata
% zhou lvwen: zhou.lv.wen@gmail.com
% August 15 2010
n = 300;                           % 定义表示森林的矩阵大小
Plight = 5e-6; Pgrowth = 1e-2;     % 定义闪电和生长的概率
UL = [n 1:n-1]; DR = [2:n 1];      % 定义上左,下右邻居
veg=zeros(n,n);                    % 初始化表示森林的矩阵
imh = image(cat(3,veg,veg,veg));   % 可视化表示森林的矩阵
% veg = 空地为0 着火为1 树木为2
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)) )drawnow                         % 可视化表示森林的矩阵
end

(7)交通概念
车距和密度

流量方程

守恒方程

时空轨迹(横轴是空间纵轴为时间)

红线横线与蓝色交点表示每个时间车的位置。
如果是竖线则表示车子在该位置对应的时间

宏观连续模型:

最常用的规则:

红色条表示速度是满的。

1 加速规则:不能超过vmax(2格/s)v_{max}(2格/s)vmax​(2格/s)
2 防止碰撞:不能超过车距

理论分析:

结果分析: 密度与流量

第一个图:横坐标是归一化后的密度,纵坐标是车流量。第二个图:理论值与CA的结果

结果分析: 时空轨迹

中间的深色区域是交通堵塞的区域。
ns.m

function [rho, flux, vmean] = ns(rho, p, L, tmax, animation, spacetime)
vmax = 5;                           %最大速度
% place a distribution with density
ncar = round(L*rho);                % 车数量=L*rho
rho = ncar/L;
x = sort(randsample(1:L, ncar));    % 从1到L中随机采ncar格样并排序
v = vmax * ones(1,ncar);            % 初始化所有车子su'du1为vmax
flux = 0;                  % number of cars that pass through the end
vmean = 0;
road = zeros(tmax, L);
for t = 1:tmax% 加速规则v = min(v+1, vmax);%防止碰撞gaps = gaplength(x,L); % 获得每一辆车到前面一辆车的距离v = min(v, gaps-1);% 随机减速vdrops = ( rand(1,ncar)<p );v = max(v-vdrops,0);% 更新位置x = x + v;passed = x>L;          % 车走过整个路段x(passed) = x(passed) - L;% 回到起点if t>tmax/2flux = flux + sum(v/L); %平均流量vmean = vmean + mean(v);endroad(t,x) = 1;
end
flux = flux/(tmax/2);
vmean = vmean/(tmax/2);
if spacetime; figure;imagesc(road);colormap([1,1,1;0,0,0]);axis image; end% -------------------------------------------------------------------------
function gaps = gaplength(x,L)
% 计算车距
ncar = length(x);
gaps=zeros(1, ncar);
if ncar>0gaps = x([2:end 1]) -x;   % d(i)=x(i+1)-x(i)gaps(gaps<=0) = gaps(gaps<=0)+L; %d(i)=d(i)+L,if d(i)<0
end
nsity = 0:0.02:1;
roadlength = 100;
vmax = 5;
tmax = 200;
pbrak = 0;
flux = [];
vmean = [];
for rho = density[R, J, V] = ns(rho, pbrak, roadlength, tmax, 0, 0);flux = [flux; J];vmean = [vmean; V];
end
% ------------------------- density vs. volecity --------------------------
figure
plot(density, vmean,'k.','markersize',15);
hold on
plot(density,min(vmax, 1./density-1),'-r','linewidth',2)
ylim([0,5.55])
legend({'Cellular automata aproach', ...'$v(\rho) = \min\{v_{\max}, 1/\rho-1\}$'}, ...'interpreter','latex')
xlabel('density in vehicles/cell')
ylabel('velocity in cell/time')
% --------------------------- density vs. flux ----------------------------
figure
plot(density, flux,'k.','markersize',15);
hold on;
plot(density,min(density*vmax, 1-density),'-r','linewidth',2)
legend({'Cellular automata aproach', ...'$J(\rho) = \min\{\rho\cdot v_{\max}, 1-\rho\}$'}, ...'interpreter','latex')
xlabel('density in vehicles/cell')
ylabel('flux in vehicles/time')
density = 0:0.02:1;
roadlength = 100;
vmax = 5;
tmax = 200;
pbrak = 0;
flux = [];
vmean = [];
for rho = density[R, J, V] = ns(rho, pbrak, roadlength, tmax, 0, 0);flux = [flux; J];vmean = [vmean; V];
end
% ------------------------- density vs. volecity --------------------------
figure
plot(density, vmean,'k.','markersize',15);
hold on
plot(density,min(vmax, 1./density-1),'-r','linewidth',2)
ylim([0,5.55])
legend({'Cellular automata aproach', ...'$v(\rho) = \min\{v_{\max}, 1/\rho-1\}$'}, ...'interpreter','latex')
xlabel('density in vehicles/cell')
ylabel('velocity in cell/time')
% --------------------------- density vs. flux ----------------------------
figure
plot(density, flux,'k.','markersize',15);
hold on;
plot(density,min(density*vmax, 1-density),'-r','linewidth',2)
legend({'Cellular automata aproach', ...'$J(\rho) = \min\{\rho\cdot v_{\max}, 1-\rho\}$'}, ...'interpreter','latex')
xlabel('density in vehicles/cell')
ylabel('flux in vehicles/time')

周吕文 中国科学院力学研究所

【数学建模】元胞自动机相关推荐

  1. 数学建模05-元胞自动机

    数学建模05-元胞自动机 一.元胞自动机 元胞自动机主要应用于: 社会学:元胞自动机经常用于研究个人行为的社会性,流行现象,例如人口迁移,公共场所内人员的疏散,流行病传播. 图形学:元胞自动机以其特有 ...

  2. 澳洲森林火灾蔓延数学建模,基于元胞自动机模拟多模式下火灾蔓延(附部分源码)

    前言 本文篇幅较长,希望各位小伙伴能够耐心看完. 元胞自动机模型可以用来模拟交通流.火灾蔓延情况.高速收费站交通情况,有利于我们更好地改善交通状况,更好地控制火灾蔓延,合理地设置收费站的数量等. 关于 ...

  3. 数学建模(七) 元胞自动机

    虽然这一节应该划重点,但我觉得比赛我选这个模型的可能性不大,以及我还没开始看研究生的真题,所以这儿先不写那么详细. 其定义我的理解就是把物体比作单元格,整个背景是一个由很多单元格组成的类似于棋盘的东西 ...

  4. 数学建模美赛 元胞自动机

    元胞自动机构成 元胞自动机由元胞.元胞空间.元胞邻居和元胞规则四部分构成. 元胞可称为单元或基元,是元胞自动机最基本的部分. 元胞空间就是元胞在空间分布上的集合. 某一元胞状态更新时所要搜索的空间域就 ...

  5. Stephen Wolfram专访Judea Pearl:从贝叶斯网络到元胞自动机

    导语 2022年人工智能与数学国际研讨会(ISAIM 2022)恰逢著名计算机科学家.贝叶斯网络之父 Judea Pearl 85岁生日,会议期间Mathematica创始人 Stephen Wolf ...

  6. 元胞自动机:更接近人类思考的智能模型

    前段时间,一则"计算机首次通过图灵测试"的新闻被众多媒体报道,似乎人工智能已然离我们不远了. 在未来,计算机真的会拥有人类一样的自主思考.学习能力吗,甚至出现未来的"机器 ...

  7. 元胞自动机与相关理论和方法

    元胞自动机与相关理论和方法的发展有着千丝万缕的联系,一方面,元胞自动机的发展得益于相关理论的研究,如逻辑数学.离散数学.计算机中的自动机理论,图灵机思想;另一方面,元胞自动机的发展也促进了一些相关学科 ...

  8. 元胞自动机(Cellular Automata)

    元胞自动机(Cellular Automata,简称CA,也有人译为细胞自动机.点格自动机.分子自动机或单元自动机).是一时间和空间都离散的动力系统.散布在规则格网 (Lattice Grid)中的每 ...

  9. python元胞自动机模拟交通_基于立体网格的放射性污染物扩散过程模拟与表达

    作 者 信 息 施加松1,余接情2,常芸芬1,童晓冲3 (1.防化研究院,北京 102205:2.中国矿业大学 环境与测绘学院,江苏 徐州 221116:3.信息工程大学,河南 郑州 450001) ...

  10. 元胞计算机系统,元胞自动机

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

最新文章

  1. 使用 CrossOver 在 Linux运行 Windows 软件(金测OK)
  2. 从tomcat下载文件的配置方法(很全呢)
  3. Elasticsearch配置使用
  4. Windows下Git的安装和基本使用、搭建Git服务器
  5. Maven学习总结(14)——Maven 多模块项目如何分工?
  6. struct1标签使用方法笔记
  7. linux 如何查看终端格式,你应该还不知道,Linux终端下的 Markdown 文档查看器
  8. 矩形变弧度角_科普时光 | 下颌角手术需要咬肌切除吗?
  9. 关闭word_记一次毕设消失事件始末,及mac+word文档消失恢复方法汇总
  10. 5m独享网站服务器,您真的需要独享5m云服务器吗?一文让您了解云服务器带宽计算方法,从此不再花冤枉钱...
  11. Tomcat9.0部署iot.war(环境mysql8.0,centos7.2)
  12. apache 伪静态转到nginx
  13. 怎么复制黑苹果config配置_[黑苹果硬件] 实用黑苹果配置推荐
  14. TCPMP之旅(一) TCPMP整体软体框架
  15. termux使用记录
  16. 《马云点评创业》读书笔记
  17. 省市县三级联动的实现方案
  18. 算法题目打卡:Ques20201019
  19. mysql多表关联查询慢_mysql数据库多表关联查询的慢SQL优化
  20. java robust_Java的鲁棒性(Robust)

热门文章

  1. 在线UML绘图完全免费!
  2. ArcMap 如何使用.gdb文件发布服务
  3. SqlServerSQL语句方式--视图创建
  4. 大数据工程师成长之路
  5. 25. 谷粒商城订单系统
  6. 海康威视工业相机SDK的开发使用笔记
  7. 小白能读懂的 《手把手教你学DSP(TMS320X281X)》第四章(3) 创建新工程
  8. 数据恢复软件分享(第二篇)
  9. html表格自动变色,让考勤表实现自动变色
  10. python办公自动化练习——体温