本發(fā)明涉及一種基于智能博弈的交通流元胞自動(dòng)機(jī)模型的實(shí)現(xiàn)方法,屬于交通流量監(jiān)測(cè),預(yù)測(cè)應(yīng)用技術(shù)領(lǐng)域。
背景技術(shù):
元胞自動(dòng)機(jī)是一個(gè)將時(shí)間和空間都離散化處理的動(dòng)力系統(tǒng)。散布在規(guī)則格網(wǎng)中的每一個(gè)元胞取有限的離散狀態(tài),遵循同樣的作用規(guī)則,依據(jù)確定的局部規(guī)則作同步更新。系統(tǒng)通過(guò)大量元胞的簡(jiǎn)單的相互作用而構(gòu)成精態(tài)系統(tǒng)的演化,從而有效的演示復(fù)雜系統(tǒng)的變化趨勢(shì)。其精髓在于利用不同情況的特點(diǎn)自制獨(dú)特的元胞演變規(guī)則,使得自動(dòng)機(jī)操作靈活而精準(zhǔn)。
隨著全球的交通網(wǎng)絡(luò)的迅速發(fā)展,人們更加關(guān)注交通相關(guān)的研究工作,元胞自動(dòng)機(jī)在此類(lèi)領(lǐng)域起到了非常重要的作用。元胞自動(dòng)機(jī)模型(也稱為nasch模型)首先由德國(guó)學(xué)者nagel與schreckenberg在1992年的論文kainagel,michaelschreckenberg.acellularautomatonmodelforfreewaytraffic.journaldephysiquei,edpsciences,1992,2(12),pp.2221-2229.提出的,該模型一經(jīng)發(fā)表便很快應(yīng)用在交通流量監(jiān)測(cè),預(yù)測(cè)等領(lǐng)域。然而隨著現(xiàn)在交通系統(tǒng)的越加復(fù)雜,關(guān)于單向交通的研究越來(lái)越少。為了更好地延續(xù)元胞自動(dòng)機(jī)的活力,越來(lái)越多的道路復(fù)雜的合并模式出現(xiàn)在學(xué)術(shù)領(lǐng)域。尤其在高速公路上,涉及到公路或收費(fèi)站等的不同的合并模式是必要的。
高度的精確性是模型可行性的保障,否則模型會(huì)失去可信度。而延拓性則使模型可以靈活應(yīng)對(duì)各種動(dòng)態(tài)情況的發(fā)生。為了進(jìn)一步提高應(yīng)對(duì)各種路況的交通流模型的精確度與延拓性,需要對(duì)基本的交通流元胞自動(dòng)機(jī)模型進(jìn)行動(dòng)態(tài)參數(shù)的修改。傳統(tǒng)的交通流元胞自動(dòng)機(jī)模型的實(shí)質(zhì)是在基于實(shí)際情況而提出的元胞演變規(guī)則下在一定的動(dòng)態(tài)演示空間中以每一個(gè)等時(shí)間間隔為步長(zhǎng)模擬整體變化趨勢(shì)。
但實(shí)際上,傳統(tǒng)元胞自動(dòng)機(jī)模型模型及相關(guān)改版模型中鮮有精確性和延拓性均較好的模型提出。但是,高度的精確性是模型可行性的保障,而延拓性則使模型可以靈活應(yīng)對(duì)各種動(dòng)態(tài)情況的發(fā)生。為進(jìn)一步提高應(yīng)對(duì)各種路況的交通流模型的精確度與延拓性。而本發(fā)明能夠很好地解決上面的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明目的在于設(shè)計(jì)了一種基于智能博弈的交通流元胞自動(dòng)機(jī)模型的實(shí)現(xiàn)方法,通過(guò)利用元胞自動(dòng)機(jī)原理合理設(shè)置元胞更新規(guī)則,以對(duì)復(fù)雜的實(shí)際并入道路區(qū)域交通進(jìn)行仿真。該方法針對(duì)諸如高速公路上收費(fèi)站路況的扇入?yún)^(qū)域的基于智能博弈的交通流元胞自動(dòng)機(jī)模型,它既能對(duì)此類(lèi)路況進(jìn)行高精度的模擬,同時(shí),通過(guò)動(dòng)態(tài)參數(shù)的加入使該模型具有更好的延拓性。其具體步驟如下:①初始化參數(shù)設(shè)定:仿真時(shí)間,每小時(shí)的平均車(chē)流量,最大速度,并入?yún)^(qū)域的前后道路數(shù)、長(zhǎng)度及連接方式;②初始位置依照泊松分布隨機(jī)生成車(chē)輛,并產(chǎn)生該車(chē)輛相關(guān)參數(shù)(心理值,位置坐標(biāo),速度,狀態(tài)標(biāo)志);③對(duì)已生成車(chē)輛判斷位置坐標(biāo),確定其所在區(qū)域(直行區(qū)域依照相應(yīng)的執(zhí)行區(qū)域元胞自動(dòng)機(jī)模型改進(jìn)規(guī)則判斷速度,博弈區(qū)域依照博弈區(qū)域改進(jìn)規(guī)則判斷速度);④結(jié)合上一步確定的速度進(jìn)行位置更新以及狀態(tài)標(biāo)志更新,并依據(jù)狀態(tài)標(biāo)志顯示和記錄相關(guān)數(shù)據(jù)或圖像;⑤判斷時(shí)間是否達(dá)到仿真時(shí)間,否則再次執(zhí)行以上步驟。本發(fā)明著重分析了人在面對(duì)交叉路或歸并道路時(shí)的心理以及不同心里變化情況,具有較好的精度與延拓性。該方法為高速等路況分析,交通檢測(cè),收費(fèi)站設(shè)計(jì)的領(lǐng)域提供了技術(shù)支撐,具有較強(qiáng)的實(shí)用價(jià)值。
本發(fā)明解決其技術(shù)問(wèn)題所采取的技術(shù)方案是:一種基于智能博弈的交通流元胞自動(dòng)機(jī)模型的實(shí)現(xiàn)方法,該方法包括如下步驟:
步驟1:在仿真開(kāi)始之前,首先設(shè)定模擬時(shí)間長(zhǎng)度(即迭代次數(shù))tmax,參數(shù)λ,最大速度值vmax,并入?yún)^(qū)域的前后道路數(shù)、長(zhǎng)度及連接方式的預(yù)設(shè)數(shù)值。
此處模擬時(shí)間即是程序迭代次數(shù),每一次迭代表示一次時(shí)刻更新。每一個(gè)觸發(fā)車(chē)輛速度滿足參數(shù)為λ的泊松分布,其中參數(shù)λ實(shí)際表示每小時(shí)的平均車(chē)流量,參數(shù)的確定依據(jù)不同地域情況有所不同。vmax在此處起到限速的作用,所有車(chē)輛的速度v應(yīng)滿足|v|≤vmax。一般設(shè)vmax=5,單位仿真時(shí)間模擬實(shí)際時(shí)間約0.864s。并入?yún)^(qū)域前的道路數(shù)b,區(qū)域歸并后道路數(shù)l、以及直行區(qū)域和博弈區(qū)域的長(zhǎng)度分別為sb,sl及前后段道路連接方式均需要用戶自主設(shè)置。
步驟2:初始化數(shù)據(jù)完成后,仿真系統(tǒng)開(kāi)始,從原點(diǎn)距離=0的位置依照泊松分布隨機(jī)生成車(chē)輛,初始速度基于參數(shù)為λ的泊松分布而隨機(jī)生成。每個(gè)生成的車(chē)輛均攜帶以下信息參數(shù):心理值,位置坐標(biāo),速度,狀態(tài)標(biāo)志。
心理值依據(jù)具體情況按正態(tài)分布隨機(jī)產(chǎn)生,車(chē)道序號(hào)隨機(jī)分布,原點(diǎn)距離初始化為0,表示位置在車(chē)輛生成源處。狀態(tài)標(biāo)志初始化為1,表示車(chē)輛狀態(tài)為“存活”。
步驟3:將已生成車(chē)輛及其攜帶的參數(shù)信息有序的存入多維數(shù)組中,并對(duì)其依次判斷位置坐標(biāo)i,確定其所在區(qū)域是直行區(qū)域(轉(zhuǎn)向步驟4)或博弈區(qū)域(轉(zhuǎn)向步驟5)。
步驟4:在車(chē)輛所在道路上原點(diǎn)距離在[i-|v|,i+|v|]范圍內(nèi)找出前后各一個(gè)鄰居。其中i表示車(chē)輛所在位置的原點(diǎn)距離,v表示車(chē)輛當(dāng)前速度,若僅找到一個(gè)鄰居,則速度取值范圍為單側(cè)區(qū)間;若沒(méi)有鄰居,則該車(chē)輛暫時(shí)不受避免事故的規(guī)則約束。單行道車(chē)輛依照以下規(guī)則判斷速度值包括:
①對(duì)于v未達(dá)到vmax的車(chē)輛,若道路方向前方v+1格均為空格,或道路方向后方v個(gè)空格內(nèi)存在車(chē)輛,則v←v+1;
②對(duì)于速度為v的車(chē)輛,若道路方向前方v個(gè)空格內(nèi)存在車(chē)輛,或道路方向后方v+1格均為空格,則v←v-1;
③當(dāng)依據(jù)前后車(chē)輛判斷不一致時(shí),按照心理值的取值確定速度;
④對(duì)任意v為正的車(chē)輛,將以小概率p使v←v-1。
確定速度后,轉(zhuǎn)至步驟6。
步驟5:博弈區(qū)域速度判定規(guī)則如下:
①尋找同一條道路上前后兩位鄰居,分別標(biāo)記其上一時(shí)刻速度,與現(xiàn)態(tài)位置為v1,v2,i1,i2;
②取區(qū)間[i-i2+v2,i1-i+v1]為速度的預(yù)判取值區(qū)間;
③尋找鄰道的其余鄰居,并依次進(jìn)行博弈判斷,結(jié)合心理值選取相應(yīng)的次判速度取值;
④判斷次判速度值是否在預(yù)判速度區(qū)間內(nèi)。若是,則確定此值為速度值,否則,判斷該速度小于區(qū)間下限或大于區(qū)間上限。小于區(qū)間下限則v←v+1,大于區(qū)間上限則v←v-1。
確定速度后,轉(zhuǎn)至步驟6。
步驟6:結(jié)合上一步確定的速度進(jìn)行位置更新以及狀態(tài)標(biāo)志更新,并依據(jù)狀態(tài)標(biāo)志顯示和記錄相關(guān)數(shù)據(jù);
步驟7:判斷時(shí)間是否t≥tmax,否則再次執(zhí)行上述步驟2-6,直至滿足t≥tmax程序結(jié)束,記錄和輸出最終結(jié)果。
有益效果:
本發(fā)明提出的模型主要針對(duì)高速較為復(fù)雜的扇入?yún)^(qū)域,歸并道路路況進(jìn)行模擬與檢測(cè)等。其技術(shù)效果包括:第一,直行道路上考慮了前后車(chē)輛對(duì)于車(chē)速的綜合影響,優(yōu)化了元胞自動(dòng)機(jī)模型的精度。第二,在具有不同歸并模式的道路仿真中,加入動(dòng)態(tài)參數(shù),提高了模型的延拓能力和魯棒性。第三,對(duì)于車(chē)輛進(jìn)行道路歸并或變道的心理進(jìn)行分析和簡(jiǎn)化,提煉出的博弈區(qū)域的元胞演變規(guī)則既保證了精確度,也有較好的可操作性。第四,本發(fā)明為高速等路況分析,交通檢測(cè),收費(fèi)站設(shè)計(jì)的領(lǐng)域提供了技術(shù)支撐,具有較強(qiáng)的實(shí)用價(jià)值。第五,本發(fā)明提出的基于智能博弈的元胞自動(dòng)機(jī)模型對(duì)基本的元胞自動(dòng)機(jī)模型進(jìn)行動(dòng)態(tài)參數(shù)的修改,在面對(duì)交叉路或歸并道路時(shí)的心理以及不同心里變化情況下具有較為詳細(xì)的討論,精度與延拓性均具有較大優(yōu)勢(shì),且復(fù)雜程度較低,便于應(yīng)用實(shí)現(xiàn)。
附圖說(shuō)明
圖1為本發(fā)明的方法流程圖。
圖2為車(chē)輛與鄰居示意圖。
圖3為雙人博弈結(jié)果圖。
圖4為歸并道路模擬圖。
圖5為生成元胞及攜帶信息在多維數(shù)組中示意圖。
圖6為輸出交通流量與時(shí)間關(guān)系圖。
圖7為輸出事故發(fā)生頻率與時(shí)間關(guān)系圖。
圖8為本發(fā)明實(shí)施例中的模型與傳統(tǒng)元胞自動(dòng)機(jī)模型以及一些定向修改的其他模型相比示意圖。
具體實(shí)施方式
下面結(jié)合說(shuō)明書(shū)附圖和實(shí)例對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。本例中以matlab為實(shí)現(xiàn)平臺(tái)。
如圖1所示,本發(fā)明基于智能博弈的交通流元胞自動(dòng)機(jī)模型是在傳統(tǒng)交通流元胞自動(dòng)機(jī)模型規(guī)則下加入的動(dòng)態(tài)參數(shù)以及博弈心理討論,通過(guò)博弈結(jié)果與參數(shù)調(diào)整達(dá)到對(duì)模型模擬結(jié)果的智能把控,具體規(guī)則包括如下:
1)車(chē)輛生成規(guī)則
每一個(gè)觸發(fā)車(chē)輛的頻率滿足參數(shù)為12λ/50000b泊松分布,λ實(shí)際表示每小時(shí)的平均車(chē)流量,b為歸并前的道路條數(shù)道路。每個(gè)觸發(fā)源具有相同的頻率強(qiáng)度。并且,生產(chǎn)的車(chē)輛在一個(gè)單位時(shí)間內(nèi)加速或減速最大為1個(gè)速度單位。
注:車(chē)輛速度取值,表示下一時(shí)刻車(chē)輛相對(duì)于現(xiàn)在位置的移動(dòng)單位數(shù)。
2)狀態(tài)標(biāo)志規(guī)則
狀態(tài)標(biāo)志為0表示車(chē)輛遇到事故,即:元胞死亡。當(dāng)車(chē)輛遇到事故時(shí),在計(jì)算機(jī)中表示為同一時(shí)刻在同一道路上前后相鄰車(chē)輛的原點(diǎn)距離為0;如果發(fā)生事故處后方的車(chē)輛速度不能減少到零,追尾事故發(fā)生,凡發(fā)生事故的車(chē)輛狀態(tài)標(biāo)志由1變?yōu)?。但狀態(tài)標(biāo)志為0的車(chē)輛并不從統(tǒng)計(jì)車(chē)輛中消失,x(x∈n*)個(gè)單位時(shí)間后,事故點(diǎn)的車(chē)輛才會(huì)消失。此處x的取值依據(jù)事故發(fā)生時(shí),車(chē)輛的速度與相對(duì)速度而定,一般取速度值等于等待復(fù)活時(shí)間。
3)心理值確定規(guī)則
心理值簡(jiǎn)要分為1,2,3三個(gè)不同取值。1表示駕駛員心理趨向于保守行車(chē);2表示駕駛員心理趨向于中和型駕車(chē);3表示駕駛員趨向于加速行車(chē)。
4)鄰居確定規(guī)則
在車(chē)輛駛過(guò)定長(zhǎng)度的直行道路后進(jìn)入博弈區(qū)域,進(jìn)而模擬實(shí)際并入車(chē)道區(qū)域。依據(jù)心理學(xué)相關(guān)研究,在模擬中,車(chē)道上車(chē)輛開(kāi)始考慮前后車(chē)對(duì)自身行車(chē)速度的影響時(shí),車(chē)輛之間距離小于等于|v|單位距離。并根據(jù)比例計(jì)算,我們將博弈區(qū)域長(zhǎng)度一般設(shè)為十個(gè)單位長(zhǎng)度。
當(dāng)汽車(chē)進(jìn)入博弈區(qū)域,對(duì)每個(gè)車(chē)輛由之前在直行道上的2個(gè)鄰居數(shù)增加到4或6個(gè)鄰居數(shù),有一個(gè)相鄰車(chē)道的有4個(gè)鄰居,有兩個(gè)相鄰車(chē)道的有6個(gè)鄰居,如下圖2所示。
鄰居1和2由進(jìn)入博弈區(qū)并且前后距離不超過(guò)|v|的最近車(chē)輛而確定。剩余4個(gè)(或2)鄰居依據(jù)與該車(chē)輛處在相同距離位置處按照相同規(guī)則而確定。
5)博弈規(guī)則
博弈主要發(fā)生在車(chē)輛與其鄰居之間,具體規(guī)則如圖3表格所示。注:表格中√表示雙人博弈的納什均衡點(diǎn)選擇。
將某一鄰居b與車(chē)輛a按照三種相對(duì)位置情況分類(lèi)(b在a的前方;b與a平行;b在a的后方),并逐一討論博弈的納什均衡點(diǎn)。車(chē)輛的下一步速度將優(yōu)先按照元胞自動(dòng)機(jī)模型中避免碰撞規(guī)則滿足鄰居1和2所確定的速度范圍。
當(dāng)車(chē)輛考慮另外鄰居時(shí),另外的鄰居對(duì)車(chē)輛的速度影響將嚴(yán)格按照?qǐng)D2的博弈結(jié)果執(zhí)行。若多組博弈結(jié)果一致,則按照一致結(jié)果執(zhí)行下一步指令;若結(jié)果產(chǎn)生分歧,此時(shí)心理值開(kāi)始起判斷作用,心理值為3則傾向于選取速度較快的結(jié)果作為下一步的速度,若心理值為1則結(jié)果相反。若心理值為2則選擇速度在中間的取值,若無(wú)中間值,則隨機(jī)取兩個(gè)中位數(shù)之一。
本發(fā)明依據(jù)上述規(guī)則設(shè)定,改進(jìn)后的模型過(guò)程的執(zhí)行步驟包括如下:
步驟1:在仿真開(kāi)始之前,預(yù)置計(jì)時(shí)標(biāo)志t=0。首先設(shè)定以下常量:模擬時(shí)間長(zhǎng)度(即迭代次數(shù))t0=100000,λ=500,最大速度值vmax=5,并入?yún)^(qū)域前道路數(shù)量b=6,并入?yún)^(qū)域后道路數(shù)量l=2、前后道路長(zhǎng)度sb,sl均為100,并且初始化連接方式為圖4所示,即
步驟2:初始化數(shù)據(jù)完成后,仿真系統(tǒng)開(kāi)始,從原點(diǎn)距離等于0的位置依照泊松分布隨機(jī)生成車(chē)輛,初始速度均可設(shè)置為車(chē)輛的一般平均速度,此處為3。每個(gè)生成的車(chē)輛均攜帶以下信息參數(shù):道路序號(hào)n,心理值pa,位置坐標(biāo)i,速度v,狀態(tài)標(biāo)志s。其具體形態(tài)和存儲(chǔ)方式如圖5所示。
通過(guò)控制隨機(jī)生成車(chē)輛的間隔時(shí)間來(lái)控制發(fā)車(chē)頻率,計(jì)算第一步:令
對(duì)p(k)進(jìn)行求導(dǎo),并且:
p'(k)=0(2)
求得極大值點(diǎn)的對(duì)應(yīng)自變量取值:k0
取[1/k0]為發(fā)車(chē)的時(shí)間間隔,其中‘[]’為取整符號(hào)。
心理值依據(jù)x~n(2,1/3)隨機(jī)產(chǎn)生,即:15%概率pa=1;70%概率pa=2;15%概率pa=3。
車(chē)道序號(hào)n隨機(jī)均勻分布:
n←rand{1,2,3,4,5,6}(3)
原點(diǎn)距離初始化,表示位置在車(chē)輛生成源處:
i←0(4)
狀態(tài)標(biāo)志初始化,表示車(chē)輛狀態(tài)為“存活”:
s←1(5)
步驟3:對(duì)于多維數(shù)組中的信息每一行成為一個(gè)信息載體,代表著一個(gè)元胞的狀態(tài),對(duì)其依次判斷位置坐標(biāo)i,i≤100轉(zhuǎn)向步驟4,i>100則轉(zhuǎn)向步驟5執(zhí)行命令。
步驟4:對(duì)任一元胞在相同道路序號(hào)下[i-|v|,i+|v|]范圍內(nèi)搜索前后各一個(gè)鄰居。單行道車(chē)輛依照以下規(guī)則判斷速度值(即均對(duì)于n相等的車(chē)輛而言):
①對(duì)于v<vmax的車(chē)輛,[i,i+v+1]內(nèi)均為空格,或[i-v,i]內(nèi)存在車(chē)輛,則v←v+1;
②對(duì)于速度為v的車(chē)輛,若[i,i+v]內(nèi)存在車(chē)輛,或[i-v-1,i]均為空格,則v←v-1;
③當(dāng)依據(jù)前后車(chē)輛判斷不一致時(shí),看pa取值,當(dāng)pa=1,選取min{v},當(dāng)pa=2,選取median{v},當(dāng)pa=3,選取max{v};
④對(duì)任意v為正的車(chē)輛,將以小概率1%使v←v-1。
確定速度后,轉(zhuǎn)至步驟6。
步驟5:博弈區(qū)域速度判定規(guī)則如下:
①尋找道路序號(hào)相同的前后兩位鄰居,分別標(biāo)記其上一時(shí)刻速度,與現(xiàn)態(tài)位置為v1,v2,i1,i2;
②取區(qū)間[i-i2+v2,i1-i+v1]為速度的預(yù)判取值區(qū)間;
③尋找道路序號(hào)±1的其余鄰居,并依次按照?qǐng)D3所示結(jié)論進(jìn)行博弈判斷,并依據(jù)與步驟四③相同原理,結(jié)合pa選取相應(yīng)的次判速度取值v';
④判斷次判速度值是否在預(yù)判速度區(qū)間內(nèi)。若是,則確定此值為速度值,否則,判斷該速度小于區(qū)間下限或大于區(qū)間上限。小于區(qū)間下限則v←v+1,大于區(qū)間上限則v←v-1。具體表達(dá)式為:
確定速度后,轉(zhuǎn)至步驟6。
步驟6:結(jié)合上一步確定的速度v將所有s=1的元胞進(jìn)行位置更新:
in+1←in+vn(7)
步驟7:對(duì)數(shù)組中元胞信息進(jìn)行一次遍歷,并進(jìn)行如下操作:
1.判斷i,若i>200,將改行信息從多維數(shù)組中去除;
2.若道路序號(hào)相同,且i相等,將這些元胞s←0,并保留v較大的元胞,將所在位置其余元胞合并;
3.將所有s=0的元胞v←v-1,之后判斷v是否為0,是則s←1;
步驟:8:t≥tmax,若是則仿真輸出最終結(jié)果并結(jié)束;否則重復(fù)步驟2-7。
本次實(shí)際仿真輸出數(shù)據(jù)結(jié)果為:實(shí)際總統(tǒng)計(jì)車(chē)輛:12024;事故數(shù):12。
輸出圖像結(jié)果為:圖6可以看出時(shí)間設(shè)為100000個(gè)單位,在本實(shí)驗(yàn)參數(shù)設(shè)定下車(chē)流量大約為兩個(gè)周期,且交通流曲線近似服從為正態(tài)分布;圖7可以看出事故一般多發(fā)于交通流量大的時(shí)間段。
而從圖8可以看出,本發(fā)明提出的模型與傳統(tǒng)元胞自動(dòng)機(jī)模型以及一些定向修改的其他模型相比,在精確度上具有較大的優(yōu)勢(shì)。(mape表示與實(shí)際數(shù)據(jù)相比較的偏差率)。
以上所述僅為本發(fā)明的一個(gè)實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。