当前位置 : 主页 > 编程语言 > python >

【元胞自动机】基于元胞自动机多车道信号交叉口仿真含Matlab源码

来源:互联网 收集:自由互联 发布时间:2022-06-15
1 简介 元胞自动机不仅是理论计算机科学领域的一个重要的计算模型 ,而且可视为一无限维的离散动力系统 ,被广泛应用于自然科学和社会科学各领域的复杂性的研究中 ,是一个重要的研

1 简介

元胞自动机不仅是理论计算机科学领域的一个重要的计算模型 ,而且可视为一无限维的离散动力系统 ,被广泛应用于自然科学和社会科学各领域的复杂性的研究中 ,是一个重要的研究方法和工具.该文以Matlab为开发工具 ,开发了元胞自动机的可视模型 ,为其在各个领域的复杂性研究提供了一个简易,可行的计算机仿真工具.本文基于元胞自动机实现多车道信号交叉口仿真.

2 部分代码

clear all
clf
nx=130; %must be divisible by 4
ny=122;
Pbridge = .05;
z=zeros(nx,ny);
o=ones(nx,ny);
traf = z ;
trafNew = z;
trafB=z;
gnd = z ;
gn=z;
gnd(50, 1:ny) = 1 ;
gnd(79, 1:ny) = 1 ;
gnd(1:nx, 50) = 1 ;
gnd(1:nx,71) = 1 ;
gnd(nx/2, 1: 50) = 1 ;
gnd(nx/2, 71:ny) = 1 ;
gnd(1: 50, ny/2) = 1 ;
gnd(79:nx,ny/2)=1;
imh = image(cat(3,z',traf',gnd'));
set(imh, 'erasemode', 'none');
%第一相位 0到38秒
%进口
for i=1:100
%绿灯
%东进口
%直行 右转
traf(129,55) =round(rand(1,1)/1.8); %add a grain at the top
xind = [80:129];
yind=55;
trafNew(xind-1,yind)=traf(xind,yind);
traf(129,53) =round(rand(1,1)/1.76); %add a grain at the top
xind = [79:129];
yind=53;
trafNew(xind-1,yind)=traf(xind,yind);
%西进口
%直行 右转
traf(1,66) =round(rand(1,1)/1.76); %add a grain at the top
xind = [1:49];
yind=66;
trafNew(xind+1,yind)=traf(xind,yind);
trafNew(xind+1,yind)=traf(xind,yind);
traf(1,68) =round(rand(1,1)/1.76); %add a grain at the top
xind = [1:49];
yind=68;
trafNew(xind+1,yind)=traf(xind,yind);
%南进口
%右转
traf(77,122) =round(rand(1,1)/1.76); %add a grain at the top
yind = [71:122];
xind=77;
trafNew(xind,yind-1)=traf(xind,yind);
%北进口
%右转
traf(53,1) =round(rand(1,1)/1.76); %add a grain at the top
yind = [1:50];
xind=53;
trafNew(xind,yind+1)=traf(xind,yind);
%交叉口内部
%东进口直行
xind = [50:80];
yind=55;
trafNew(xind-1,yind)=traf(xind,yind);
%西进口直行;
xind = [50:80];
yind=66;
trafNew(xind+1,yind)=traf(xind,yind);
%出口
%东出口
xind = [79:122];
yind=[65:79];
trafNew(xind+1,yind)=traf(xind,yind);
%西出口
xind = [2:50];
yind=[50:60];
trafNew(xind-1,yind)=traf(xind,yind);
%南出口
yind = [71:120];
xind=[50:63];
trafNew(xind,yind+1)=traf(xind,yind);
%北出口
yind = [2:50];
xind=[67:77];
trafNew(xind,yind-1)=traf(xind,yind);
%针对右转车道的代码
%东进口右转
trafNew(77,50)=traf(79,53);
%西进口右转
trafNew(53,71)=traf(50,68);
%南进口右转
trafNew(79,68)=traf(77,71);
%北进口右转
trafNew(50,53)=traf(53,50);

3 仿真结果

【元胞自动机】基于元胞自动机多车道信号交叉口仿真含Matlab源码_无人机

4 参考文献

[1]刘建仁. 基于元胞自动机仿真建模的交叉口公交优先策略. Diss. 长安大学, 2017.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【元胞自动机】基于元胞自动机多车道信号交叉口仿真含Matlab源码_图像处理_02




【文章原创作者:韩国机房 http://www.558idc.com/kt.html欢迎留下您的宝贵建议】
网友评论