matlab 交通流元胞自动机入门篇

从wiki上搜到的Cellular_automaton定义如下:

细胞自动机由单元格的规则网格组成,每个单元格处于有限数量的状态之一中,诸如(与耦合的地图网格相反)。网格可以是任何有限数量的维度。对于每个单元格,称为其邻域的一组单元格相对于指定的单元格被定义。通过为每个单元分配状态来选择初始状态(时间t= 0)。一个新的一代,创建(前进由1),根据一些固定规则(通常数学函数)根据单元格的当前状态和其邻域中单元格的状态来确定每个单元格的新状态。通常,更新单元状态的规则对于每个单元是相同的,并且不随时间改变,并且同时应用于整个网格,尽管已知例外,诸如随机单元自动机异步单元自动机

NaSch模型建立的初衷,是为了解决自敏感性交通流车辆拥堵的特点,采用184规则

184号元胞自动机定义如下:

车辆行驶规则为:黑色元胞表示被一辆车占据
白色表示无车,若前方各自有车,则停止。若前方为空则前进一格,第t时刻到t_1时刻车辆元胞的变化图解如下

5309010-ae3007850c38018a.png

上图仅显示了t时刻到t+1时刻车辆元胞的变化过程,现在我们将变化过程逐步分解,称之为演化规则

从第t时刻车辆的位置至t+1时刻车辆的演化过程如下:
a)加速过程:Vn->(Vn+1,Vmax)

b)安全刹车过程:Vn->(Vn-1,dn-1)

c)随机变化过程Vn ->max (Vn-1,0)

d)位置更新:Xn ->Xn+Vn

dn =Xn+1 -Xn -L(L为车辆长度)

到这里,各位新人可能看的还是一脸懵逼,结合国赛中实现的三车道换道规则,下面我们依次解释一下各个演化规则的意义

1)加速:司机总期望以最大的速度行驶
2)安全刹车:为避免与前车发生碰撞
3)随机慢化(即车辆行驶时不确定因素)

  • 过度刹车
  • 道路条件变化
  • 心里因素
  • 延迟因素
    4)位置:车辆前进

当Vmax=2时

5309010-ae3007850c38018a.png

我们引入下面四个参数,表示单位时间内交通流通过横断面流量

  • probc; % 车辆的密度

  • B; %单位时间内车流所占用的道路宽度

  • probslow; % 随机慢化的概率

  • Dsafe; % 表示换道事车至少与后面车距离多少个单位才算安全

下面,start making program

模型建立:

close all;

B=3;            %The number of the lanes

plazalength=50;  %The length of the simulating highways

h=NaN;          %h is the handle of the image

[plaza,v]=create_plaza(B,plazalength);

h=show_plaza(plaza,h,0.1);

iterations=1000;    % 迭代次数

probc=0.1;          % 车辆的密度

probv=[0.1 1];      % 两种车流的密度分布

probslow=0.3;      % 随机慢化的概率

Dsafe=1;            % 表示换道车至少与后面车距离多少个单位才算安全

VTypes=[1,2];      %道路上一共有几种最大速度不同的车辆,速度是什么

[plaza,v,vmax]=new_cars(plaza,v,probc,probv,VTypes);%一开始就在车道上布置车辆,做周期循环驾驶,也方便观察流量密度之间的关系

size(find(plaza==1))

PLAZA=rot90(plaza,2);

h=show_plaza(PLAZA,h,0.1);

from 模型 to 编程

之前有讲过,元胞自动机是一个动态生成过程

高速公路可以看成一个网格状视图,车辆上格子颜色产生变动时,就有车辆消失或生成在边界(该元胞已经死亡或者生存),我们需要在车辆不断更新的状态实时显示在图形界面上,

模型转换的思想就浅显易懂了,设置两个车流,一个为正在更新的车流密度,一个为希望此时高速公路能达到的车流密度,其实我们只需要设置两种车流的密度,因为在更新句柄的过程中,车流的相对密度是相对不变的,详细会在之后的create_plaza函数中说明

probv=[0.1 1]; % 两种车流的密度分布

这就要涉及到matlab的GUI函数式编程思想,简略介绍一下:所谓GUI就是一种用户界面图形化操作,我们所使用qq,MSN的聊天界面就属于GUI,但凡GUI都会有一个活动句柄,每当我们要对窗体就行操作的时候,要更新窗体句柄的活动状态,通知窗体要对他进行怎样的改变。

先设计句柄更新后的状态,引入new_cars.m函数

该函数模型的车道变换规则如下:

(1) 如果vmax>gap,且gapleft≥gap,则从右车道变换至左车道。

(2) 如果 vmax

(3) 如果vback

如果vright>gapleft,则vright=gapleft(禁止右车道的车辆超过左车道车辆)。

old为正在进行仿真的车流密度,entry为希望此时通过横断面的车流密度

function new = new_cars(B, L, old, entry)

new = old;

if entry > 0

if entry <= L

x = randperm(L);

y = ceil((B-L)/2+1);

for i = 1:entry

new(1, (y + x(i))) = 1;

end

end

if entry > L

y = ceil((B-L)/2+1);

for i = 1:L

new(1,(y + i)) = 1;

end

end

end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • 2013年数模,有一道题是关于道路故障占用车道的规划和预测分析,其中有一篇优秀论文用到了元胞自动机分析方法.元胞自...
    ZMYoo阅读 2,550评论 0 1
  • 文/TCmAo 近来练习手写英文时抄写了这首经典情诗,便结合查良铮、王立秋等几个版本的译文,自己调整韵脚重新翻译了...
    TCmAo阅读 1,918评论 0 1
  • 那就是我还没反应过来,就被拉黑了。那就是我没有时刻跟你同步,都是我的错。那就是我拒绝了你的要求,我有罪。 我变瘦了...
    才赋裴伴_阿裴阅读 838评论 3 4