matlab 交通流元胞自動機(jī)入門篇

從wiki上搜到的Cellular_automaton定義如下:

細(xì)胞自動機(jī)由單元格的規(guī)則網(wǎng)格組成,每個單元格處于有限數(shù)量的狀態(tài)之一中涤躲,諸如關(guān)(與耦合的地圖網(wǎng)格相反)檬某。網(wǎng)格可以是任何有限數(shù)量的維度迹炼。對于每個單元格,稱為其鄰域的一組單元格相對于指定的單元格被定義造垛。通過為每個單元分配狀態(tài)來選擇初始狀態(tài)(時間t= 0)。一個新的一代晰搀,創(chuàng)建(前進(jìn)由1)五辽,根據(jù)一些固定規(guī)則(通常數(shù)學(xué)函數(shù))根據(jù)單元格的當(dāng)前狀態(tài)和其鄰域中單元格的狀態(tài)來確定每個單元格的新狀態(tài)。通常外恕,更新單元狀態(tài)的規(guī)則對于每個單元是相同的杆逗,并且不隨時間改變,并且同時應(yīng)用于整個網(wǎng)格鳞疲,盡管已知例外罪郊,諸如隨機(jī)單元自動機(jī)異步單元自動機(jī)

NaSch模型建立的初衷尚洽,是為了解決自敏感性交通流車輛擁堵的特點(diǎn),采用184規(guī)則

184號元胞自動機(jī)定義如下:

車輛行駛規(guī)則為:黑色元胞表示被一輛車占據(jù)
白色表示無車,若前方各自有車,則停止悔橄。若前方為空則前進(jìn)一格,第t時刻到t_1時刻車輛元胞的變化圖解如下

5309010-ae3007850c38018a.png

上圖僅顯示了t時刻到t+1時刻車輛元胞的變化過程,現(xiàn)在我們將變化過程逐步分解,稱之為演化規(guī)則

從第t時刻車輛的位置至t+1時刻車輛的演化過程如下:
a)加速過程:Vn->(Vn+1,Vmax)

b)安全剎車過程:Vn->(Vn-1,dn-1)

c)隨機(jī)變化過程Vn ->max (Vn-1,0)

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

dn =Xn+1 -Xn -L(L為車輛長度)

到這里腺毫,各位新人可能看的還是一臉懵逼癣疟,結(jié)合國賽中實(shí)現(xiàn)的三車道換道規(guī)則,下面我們依次解釋一下各個演化規(guī)則的意義

1)加速:司機(jī)總期望以最大的速度行駛
2)安全剎車:為避免與前車發(fā)生碰撞
3)隨機(jī)慢化(即車輛行駛時不確定因素)

  • 過度剎車
  • 道路條件變化
  • 心里因素
  • 延遲因素
    4)位置:車輛前進(jìn)

當(dāng)Vmax=2時

5309010-ae3007850c38018a.png

我們引入下面四個參數(shù)潮酒,表示單位時間內(nèi)交通流通過橫斷面流量

  • probc; % 車輛的密度

  • B; %單位時間內(nèi)車流所占用的道路寬度

  • probslow; % 隨機(jī)慢化的概率

  • 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;    % 迭代次數(shù)

probc=0.1;          % 車輛的密度

probv=[0.1 1];      % 兩種車流的密度分布

probslow=0.3;      % 隨機(jī)慢化的概率

Dsafe=1;            % 表示換道車至少與后面車距離多少個單位才算安全

VTypes=[1,2];      %道路上一共有幾種最大速度不同的車輛,速度是什么

[plaza,v,vmax]=new_cars(plaza,v,probc,probv,VTypes);%一開始就在車道上布置車輛睛挚,做周期循環(huán)駕駛,也方便觀察流量密度之間的關(guān)系

size(find(plaza==1))

PLAZA=rot90(plaza,2);

h=show_plaza(PLAZA,h,0.1);

from 模型 to 編程

之前有講過急黎,元胞自動機(jī)是一個動態(tài)生成過程

高速公路可以看成一個網(wǎng)格狀視圖,車輛上格子顏色產(chǎn)生變動時,就有車輛消失或生成在邊界(該元胞已經(jīng)死亡或者生存),我們需要在車輛不斷更新的狀態(tài)實(shí)時顯示在圖形界面上,

模型轉(zhuǎn)換的思想就淺顯易懂了,設(shè)置兩個車流扎狱,一個為正在更新的車流密度,一個為希望此時高速公路能達(dá)到的車流密度,其實(shí)我們只需要設(shè)置兩種車流的密度,因?yàn)樵诟戮浔倪^程中,車流的相對密度是相對不變的叁熔,詳細(xì)會在之后的create_plaza函數(shù)中說明

probv=[0.1 1]; % 兩種車流的密度分布

這就要涉及到matlab的GUI函數(shù)式編程思想,簡略介紹一下:所謂GUI就是一種用戶界面圖形化操作委乌,我們所使用qq,MSN的聊天界面就屬于GUI,但凡GUI都會有一個活動句柄,每當(dāng)我們要對窗體就行操作的時候,要更新窗體句柄的活動狀態(tài),通知窗體要對他進(jìn)行怎樣的改變荣回。

先設(shè)計(jì)句柄更新后的狀態(tài)遭贸,引入new_cars.m函數(shù)

該函數(shù)模型的車道變換規(guī)則如下:

(1) 如果vmax>gap,且gapleft≥gap,則從右車道變換至左車道心软。

(2) 如果 vmax

(3) 如果vback

如果vright>gapleft壕吹,則vright=gapleft(禁止右車道的車輛超過左車道車輛)著蛙。

old為正在進(jìn)行仿真的車流密度,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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市耳贬,隨后出現(xiàn)的幾起案子踏堡,更是在濱河造成了極大的恐慌,老刑警劉巖咒劲,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件顷蟆,死亡現(xiàn)場離奇詭異,居然都是意外死亡腐魂,警方通過查閱死者的電腦和手機(jī)帐偎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蛔屹,“玉大人削樊,你說我怎么就攤上這事⊥枚荆” “怎么了漫贞?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長育叁。 經(jīng)常有香客問我迅脐,道長,這世上最難降的妖魔是什么豪嗽? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任仪际,我火速辦了婚禮,結(jié)果婚禮上昵骤,老公的妹妹穿的比我還像新娘树碱。我一直安慰自己,他們只是感情好变秦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布成榜。 她就那樣靜靜地躺著,像睡著了一般蹦玫。 火紅的嫁衣襯著肌膚如雪赎婚。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天樱溉,我揣著相機(jī)與錄音挣输,去河邊找鬼。 笑死福贞,一個胖子當(dāng)著我的面吹牛撩嚼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼完丽,長吁一口氣:“原來是場噩夢啊……” “哼恋技!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起逻族,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蜻底,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后聘鳞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體薄辅,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年抠璃,在試婚紗的時候發(fā)現(xiàn)自己被綠了长搀。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡鸡典,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出枪芒,到底是詐尸還是另有隱情彻况,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布舅踪,位于F島的核電站纽甘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏抽碌。R本人自食惡果不足惜悍赢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望货徙。 院中可真熱鬧左权,春花似錦、人聲如沸痴颊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蠢棱。三九已至锌杀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泻仙,已是汗流浹背糕再。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留玉转,地道東北人突想。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蒿柳。 傳聞我的和親對象是個殘疾皇子饶套,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 2013年數(shù)模,有一道題是關(guān)于道路故障占用車道的規(guī)劃和預(yù)測分析,其中有一篇優(yōu)秀論文用到了元胞自動機(jī)分析方法.元胞自...
    ZMYoo閱讀 2,646評論 0 1
  • 文/TCmAo 近來練習(xí)手寫英文時抄寫了這首經(jīng)典情詩瓦阐,便結(jié)合查良錚瞻惋、王立秋等幾個版本的譯文间涵,自己調(diào)整韻腳重新翻譯了...
    TCmAo閱讀 2,071評論 0 1
  • 那就是我還沒反應(yīng)過來袱吆,就被拉黑了罐韩。那就是我沒有時刻跟你同步闷祥,都是我的錯夷蚊。那就是我拒絕了你的要求构挤,我有罪。 我變瘦了...
    才賦裴伴_阿裴閱讀 864評論 3 4