1 简介




代码包含几种场景
1 不开放辅路,软件园影响,保守策略
2 不开放辅路,软件园不影响,保守策略
3 开放辅路,软件园影响,保守策略
4 不开放辅路,软件园影响,激进策略
5 不开放辅路,软件园不影响,激进策略
6 开放辅路,软件园影响,激进策略
2 部分代码
function [mp, v, time] = fulu(mp,v,time,vsidemax,Sidey1,Sidey2,Sidex,changepro)
%
%
%
speedpro =0.9;
[N, M] = size(mp);
step=0; x=25; y=Sidey2;
while(1)
step=step+1;
if(mp(x,y)==2) break;end;
if(x==Sidex) break;end;
x=x-1;
end;
if(mp(x,y)==2&&v(x,y)>=step)
v(25,y)=1; mp(25,y)=2; time(25,y)=time(x,y)+1.2;
v(x,y)=0; mp(x,y)=1; time(x,y)=0;
end;
dis=zeros(N,M)-1;
x=25;y=Sidey2;
dis(26,Sidey2)=0;
while(1)
if(x==26) break;end;
if(mp(x,y)==2) dis(x,y)=0;end;
if(y==Sidey2&&x~=Sidex)
x=x-1;
elseif(x==Sidex&&y~=Sidey1)
y=y-1;
elseif(y==Sidey1&&x~=26)
x=x+1;
end;
end;
lastx=26; lasty=Sidey2; x=25; y=Sidey2;
while(1)
if(x==26) break;end;
if(dis(x,y)==-1) dis(x,y)=dis(lastx,lasty)+1;end;
lastx=x; lasty=y;
if(y==Sidey2&&x~=Sidex)
x=x-1;
elseif(x==Sidex&&y~=Sidey1)
y=y-1;
elseif(y==Sidey1&&x~=26)
x=x+1;
end;
end;
x=25; y=Sidey1; nxtx=0; nxty=0;
while(1)
if(x==26) break;end;
if(y==Sidey1&&x~=Sidex)
nxtx=x-1; nxty=y;
elseif(x==Sidex&&y~=Sidey2)
nxty=y+1; nxtx=x;
elseif(y==Sidey2&&x~=26)
nxtx=x+1; nxty=y;
end;
if(dis(x,y)==0)dis(x,y)=dis(nxtx,nxty)+1;end;
x=nxtx; y=nxty;
end;
x=25; y=Sidey2;
tot=0;
X=1:500;Y=1:500;
while(1)
if(x==26) break;end; tot=tot+1;
if(mp(x,y)==2)
if(rand<speedpro) rlv = min(vsidemax,min(v(x,y)+1,dis(x,y)-1));
else rlv= min(vsidemax,min(max(0,v(x,y)-1),dis(x,y)-1));
end;
if(rlv~=0)
tox = X(tot-rlv); toy=Y(tot-rlv);
mp(tox,toy)=2; v(tox,toy)=rlv;
time(tox,toy)=time(x,y)+1.2; time(x,y)=0;
mp(x,y)=1; v(x,y)=0;
end;
end;
X(tot)=x; Y(tot)=y;
if(y==Sidey2&&x~=Sidex)
x=x-1;
elseif(x==Sidex&&y~=Sidey1)
y=y-1;
elseif(y==Sidey1&&x~=26)
x=x+1;
end;
end;
for y=Sidey1:-1:2
if(mp(26,y)==2)
if(v(26,y)<Sidey1-y||rand>changepro) break;end;
mp(25,Sidey1)=2; time(25,Sidey1)=time(26,y)+1.2; v(25,Sidey1)=2;
mp(26,y)=1; time(26,y)=0; v(26,y)=0;
end;
end;3 仿真结果

4 参考文献
[1]王婷, 周石鹏. 基于元胞自动机双车道混合车辆变道规则的交通流模型研究[J]. 物流科技, 2017, 40(10):5.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。

