2014美赛A题元胞自动机完整代码,做出来了有木有~_第1页
2014美赛A题元胞自动机完整代码,做出来了有木有~_第2页
2014美赛A题元胞自动机完整代码,做出来了有木有~_第3页
2014美赛A题元胞自动机完整代码,做出来了有木有~_第4页
2014美赛A题元胞自动机完整代码,做出来了有木有~_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2014美赛A题元胞自动机完整代码,做出来了有木有2014美赛相关MATLAB程序(基于NS模型)上程序:NaSch_3. m程序代码%单车道最大速度3个元胞开口边界条件加速减速随机慢化elfclear all%build the GUI%define the plot button plotbutton=uicontrolCstyle, pushbutton,,string,Run,fontsize, 12,position, 100, 400, 50, 20, callback, run=l;);%define the stop buttonerasebutton=uicontrol( s

2、tyle, pushbutton,string, Stop,fontsize, 12,position1, 200, 400, 50, 20, callback, freeze=l;);%define the Quit button quitbutton=uicontrolC style,Jpushbutton,string, Quit,fontsize, 12,position1, 300, 400, 50, 20, callback1,stop=l;close / );number = uicontrolC style, text,string / 1 fontsize, 12,posit

3、ion, 20, 400, 50, 20);%CA setupn二100;%数据初始化z=zeros(l,n);%元胞个数z=roadstart (z, 5);%道路状态初始化,路段上随机分布5辆cells二z;vmax=3:%最大速度v=speedstart (cells, vmax) :%速度初始化x=l;%记录速度和车辆位置memor_cells=zeros(3600, n);memor_v=zeros(3600, n);imh=imshow(cells) :%初始化图像白色有车,黑色空元胞set (imh,erasemode, none)axis equalaxis tightstop

4、=0; %wait for a quit button push run=0: %wait for a drawfreeze二0; %wait for a freeze(冻结)while (stop=0)if(run=l)%边界条件处理,搜素首末车,控制进出,使用开口条件a=searchleadcar (cells);b=searchlastcar (cells);cells, v=border_control (cells, a, b, v, vmax);i=searchleadcar (cells) ;%搜索首车位置for j二l:iif i-j+l=nz, v=leadcarupdate

5、(z,v);continue;else炉=加速、减速、随机慢化if cells(i-j+l)=0;%判断当前位置是否非空continue;else v(i-j+l)=min(v(i-j+l)+l, vmax);%加速%=减速k=searchfrontcar(i-j+1), cells) ;%搜素前方首个非空元胞位置辻k=0;%确定于前车之间的元胞数d=n-(i-j+1);else d=k(i-j+1)1;endv (i-j+1) =min(v (i-j+1), d);陽=二=% 减速%随机慢化v(i-j+1)=randslow(v (ij+l);new_v=v(i-j+1);%二=加速、减速、

6、随机慢化%更新车辆位置z(i-j+1)二0;z(i-j+l+new_v)=l;%更新速度v(i-j+l)=O;v (i-j+l+new_v) =new_v;endendendcells=z;memor_cells(x, :)=cells;%记录速度和车辆位置memor_v (x, :)=v;x二x+1;set (imh, cdata, cells)%更新图像%update the step number displaypause (0. 2);stepnumber = 1 + str2num(get(number,Jstring):set(number,string, num2str(step

7、number)endif (freeze=l)run = 0;freeze = 0;enddrawnowend/函数:border_control. m程序代码Functionnew_matrix_cells, new_v=border_contro1(matrix_cells, a, b, v, v max)%边界条件,开口边界,控制车辆出入%出口边界,若头车在道路边界,则以一定该路0.9离去n=length(matrix_cells);if a=n2rand(,state*, sum(100*clock) *rand(l) ;%?0aE3e?uOOX6p_l=rand(l);%产生随机概率

8、if P_1vmaxt=l;q二0. 25;x=l;p= (q*t) x*exp(q*t)/prod(x); %ls内有1辆车到达的概率rand( state, sum (100*c 1 ock) *rand (1);p_2=rand(l);if P_2二pm=min(b-vmax, vmax);matr i x_c e11s (m) =1;v (m) =m;endendnew matrix celIs二matrix cells;new_v=v;/函数:leadcarrupdate. m程序代码function new_matrix_cells, new_v=1eadcarupdate(mat

9、rix_cells, v)%笫一辆车更新规则n=1ength(matr i x_cells);if v(n)=0matrix_cells(n)二0;V(n)=0;endnew matrix celIs二matrix cells;new_v=v;/函数:rands low. m程序代码function new_v=randslow(v)P二0. 3;%慢化概率rand(,state, sum(100*clock) *rand (1) ;%?daEse?uOOX 6 p_rand=rand;%产 生随机概率if p_rand=pv=max (v-1, 0);endnew_v=v;/3函数:road

10、start, m程序代码function Lmatrix_cells_startJ=roadstart (matrix_cells, n)%道路上的车辆初始化状态,元胞矩阵随机为0或1, matrix-cells初始矩阵,n初始车辆数k=1ength(matr i x_c ells);z=round (k*rand(l, n);for i=l:nj=z(i);if j=0matrix_cells (j)二0;elsematrix_cells (j)=l;endendmatrix cells start二matrix cells;/函数:searchfrontcar. m程序代码function

11、location_frontcar=searchfrontcar(current_location, matrix_cells)i=length(matrix_cells);if current_location= ilocation_frontcar=0;elsefor j=current_location+l:iif matrix_cells(j)=0location_frontcar=j;break;elselocation_frontcar=0;endendend/函数:searchlastcar. m程序代码function Llocation_lastcar=searchlastc

12、ar(matrix_cells)%搜索尾车位 置for i=l:length(matrix_celIs)if matrix_cells(i)=0location_lastcar=i;break; else%如果路上无车,则空元胞数设定为道路长度location_lastcar=length(matrix_cells);endend/ /4函数:searchleadcar. m程序代码function Llocation_leadcar=searchleadcar(matrix_cells) i=length(matrix_cells);for j二l:iif matrix_cells(i-j+1)=0location_leadcar=i-j+l;break;elselocation_leadcar=0;endend/ /函数:speadstart. m程序代码function

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论