專利名稱:一種基于遺傳算法和極大熵模型計算交叉口轉向比例的方法
技術領域:
本發(fā)明涉及一種計算交叉口轉向比例的方法,特別是一種基于遺傳算法和極大熵模型計算交叉口轉向比例的方法,適用于道路交通規(guī)劃與交通管理控制。
背景技術:
對于一個城市的交通網絡而言,各交叉口各個方向進口交通流的轉向比例(也稱分流系數(shù),轉向概率等)是制定交通管理控制方案(如交通信號配時),擬定交通規(guī)劃(如交叉口車道渠化)不可缺少的重要數(shù)據(jù)。
通常對于支路不多的交叉口(如小于4支),交叉口轉向比例可以采用人工計數(shù)的方法來獲得。但對于十字交叉口或多于4支的交叉口,人工計數(shù)很難分辨各入口車流的去向。因此,單靠人工計數(shù)是不能完全確定一個交叉口的轉向比例的。事實上,交叉口轉向比例與各交叉口的進出流量之間是有關系的,而交叉口的進出流量可以通過檢測器檢測。根據(jù)交叉口的進出流量計算交叉口各個方向交通流的轉向比例可以被視為根據(jù)流量反推O-D矩陣的一個特例,因為可以把與交叉口相關聯(lián)的上下游交叉口看成O-D節(jié)點。基于路段流量反推O-D流量的問題,根據(jù)問題的規(guī)模的大小,分為3類,即交叉口(點)O-D反推,高速公路O-D反推(線)以及路網O-D反推(面)??梢?,根據(jù)進出交叉口的路段流量反推交叉口各個方向的轉向比例(O-D矩陣)是這類問題中的規(guī)模最小的。一般認為,在符合某些特定的假設條件下,轉向比例與交叉口進出流量之間存在著線性的關系??梢酝ㄟ^求解一個線性方程組,得到交叉口轉向比例。
假定某個典型的十字交叉口,有4個鄰接交叉口。每個鄰接交叉口和交叉口之間的交通流為雙向,如圖1所示。定義yj(t)在時間段t內,從本交叉口經由下游交叉口j離開的流量,j=1,2,3,4;y(t)=[y1(t),......,y4(t)];qi(t)在時間段t內,從上游路段i進入本交叉口的流量,i=1,2,3,4;q(t)=[q1(t),......,q4(t)];bij(t)(i=1,...,4;j=1,...,4)指車輛從上游交叉口i到達交叉口后從下游交叉口j離開的概率(j=1,2,3,4),也就是本說明書所指的交叉口轉向比例。
bj(t)=[bij(t)],i=1,2,3,4;b(t)=[bj(t)]T,j=1,2,3,4;bj(t)滿足流量守恒方程并且是非負的,即0≤bij(t)≤1和Σj≠ibij(t)=1.]]>根據(jù)上述定義以及如下的假設(1)交叉口轉向比例在流量檢測時間間隔t內保持不變;(2)進入交叉口的流量已知(檢測器檢測流量);(3)所有駕駛員在時間間隔t內,從上游路段i到達交叉口后從下游路段j離開的事件彼此獨立;(4)所有在流量檢測時間間隔t內到達交叉口的流量在時間間隔t內離開交叉口(即不考慮車輛在路段上行駛時間和在交叉口內停留的時間),并且只考慮直行,左轉彎和右轉彎,而不考慮掉頭的情況(bii(t)=0,允許掉頭的交叉口相對于其他類型的交叉口比較少,如果確實需要,同樣也可以應用本方法),則有式(1)y(t)=q(t)b(t)+e(t)(1)Subject to0≤bij(t)≤1(1a)Σj≠ibij(t)=1---(1b)]]>
其中e(t)為均值等于0的誤差向量。
假定Rank(q(t))=M,未知轉向比例數(shù)量為N,在一般情況下,M<<N,因此方程組無法得到唯一解。
針對上面的問題,比較常用的處理方法有最小二乘法,最大似然法,極大熵法和貝葉斯推斷法。這些方法可以區(qū)分為非遞推方法和遞推方法。比較常用的非遞推的方法包括最大似然法。該方法本質上是最小二乘法。根據(jù)最小二乘法的原理,可以推導出交叉口轉向比例與交叉口進出流量之間的關系如式(2)所示j(t)=[∑tq(t)qT(t)]-1∑tq(t)yj(t)],j=1,...,4(2)這種基于最小二乘法原理的估計方法比較簡單,但是無法保證滿足約束條件(1a)和(1b),并且需要對矩陣求逆。對于某個特定時間段(即非時間序列數(shù)據(jù)),由于系數(shù)矩陣非滿秩,無法求逆,也就不能采用這種方法進行計算。
遞推方法的基本形式形如式(3)所示。
j(t)=j(t-1)+gj(t)[yj(t)-qT(t)j(t-1)]j=1,...,n(3)其中gj(t)為增益因子(Gain Factor)。通過使用在時間間隔t內得到的進入交叉口的流量數(shù)據(jù),產生一序列(t)的估計值來更新先前(t-1)的值。更新選擇的依據(jù)是由(t)預測的離開流量與實際的觀測離開流量之間的均方差最小。這就是所謂的遞推預測誤差法。根據(jù)不同的gj(t)定義,常見的遞推方法主要包括隨機梯度法,遞推最小二乘收斂法和基于卡爾曼濾波的跟蹤遞歸最小二乘法。隨機梯度法同時可以被視為一種遞歸最速下降的方法,而遞推最小二乘收斂法在收斂速度上明顯快于第一種方法。第三種方法的優(yōu)點在于gj(t)可以不是一個常數(shù),當轉向比例是一個分段的常數(shù)向量,并且相對于算法的收斂時間,不同段之間的間隔時間較長的時候,這種變化可以通過gj(t)的值被跟蹤。由遞推法的基本形式可以看出,這種方法僅利用了非常局部的信息,即僅利用一個時間段的量測交通量來估計該時段的交叉口轉向比例,對于后續(xù)的估計時段,先前時段的交叉口轉向比例保持恒定。這在量測噪聲較大時可能導致估計誤差偏大。
可以看出,所有的這些方法都是基于一個假設確實存在一個準確的動態(tài)交通分配模型,并且,先驗的隨時間變化的O-D數(shù)據(jù)是可以獲得的。但是,實際中,得到一個準確的動態(tài)的交通分配模型以及O-D數(shù)據(jù)是非常困難的,更多的時候得到的是離線的靜態(tài)交通數(shù)據(jù)。因此,本發(fā)明提出了一種基于離線靜態(tài)交通數(shù)據(jù),采用遺傳算法和極大熵模型混合的方法,求解交叉口的轉向比例。相對于前面的方法,這種采用智能計算的方法,由于算法本身的特點,在其求解過程中可以不受或者少受約束條件的限制。另外,由于遺傳算法是一種隨機搜索的方法,這種方法無法排除可能存在的其他的“最優(yōu)”解的可能性。因此,又結合了極大熵的方法,通過極大熵模型,從眾多的滿足精度要求的遺傳算法搜索解中找到其中“最優(yōu)”解作為最終確定的交叉口轉向比例。
發(fā)明內容
本發(fā)明的技術解決問題克服現(xiàn)有技術的不足,提供一種基于遺傳算法和極大熵模型計算交叉口轉向比例的方法,該方法基于離線的靜態(tài)交通數(shù)據(jù),即根據(jù)實際的交通狀況以及先驗的交叉口轉向比例知識,對遺傳算法的搜索空間進行限制,既提高了算法的效率,又使最終的解更具有實際意義。
本發(fā)明的技術解決方案一種基于遺傳算法和極大熵模型計算交叉口轉向比例的方法,其特征在于包括以下步驟(1)輸入研究路口及其空間相鄰路口某一個時間段的流量數(shù)據(jù);(2)設置遺傳算法的遺傳算子及其控制參數(shù),定義遺傳算法求解的搜索空間以及求解的總次數(shù);(3)初始化遺傳算法計算環(huán)境;
(4)執(zhí)行遺傳算法計算;如果得到的解滿足精度要求,轉步驟(5),否則,轉步驟(3);(5)計算得到的解的熵;判斷是否達到設定的求解總次數(shù),如果是,轉步驟(6),否則,轉步驟(3);(6)比較所有滿足精度要求解的熵,找出其中熵最大對應的解,該解即為最終解。
本發(fā)明與現(xiàn)有技術相比的優(yōu)點在于本發(fā)明不需要準確的動態(tài)交通分配模型,而是基于交叉口檢測的歷史流量,采用遺傳算法對此求解,然后對所有滿足精度要求的解計算其熵值,以熵最大值為最終確定的交叉口轉向比例,既提高了算法的效率,又使最終的解更具有實際意義。
圖1為每個鄰接交叉口和交叉口之間的交通流量圖;圖2為本發(fā)明方法的流程圖。
具體實施例方式
如圖2所示,本發(fā)明的具體實現(xiàn)步驟如下(1)輸入研究路口及其空間相鄰路口某一個時間段的流量數(shù)據(jù);(2)設置遺傳算法的遺傳算子及其控制參數(shù),定義遺傳算法求解的搜索空間以及求解的總次數(shù);a.設定遺傳算法求解運行的總次數(shù)。由于采用智能計算的方法,該參數(shù)可以取較大的值,如500,甚至1000。
b.可接受遺傳算法解的最小誤差。該參數(shù)可以根據(jù)需要調整,一般不應該大于5%。
設置遺傳算子和控制參數(shù),見表1。
表1遺傳算子和控制參數(shù)
c.限制遺傳算法搜索空間由于交叉口轉向比例問題是一個實際問題,并且在某些時候,還可以得到一些先驗知識。因此,可以選擇搜索空間限制法來處理約束條件。顯然,交叉口轉向比例的問題中各個到達交叉口交通流的轉向比例最小值為0,最大值為1。但是這個搜索空間的定義對于問題的解決沒有任何的幫助,需要更加進一步的信息來對搜索空間做限制。
在實際的交通中,交通管理部門根據(jù)先驗的交通流轉向比例(不一定是定量的,可能是定性的)對進入交叉口的各個車道進行渠化,劃分出直行車道,左轉彎車道或者右轉彎車道(掉頭的情況暫不考慮)并且標示在接近交叉口的位置,以提醒駕駛員行駛在合適的車道上。本發(fā)明就是利用這些信息,對轉向比例的搜索空間做進一步的約束。具體的方法如下Step1計算到達交叉口的車道總數(shù)N;Step2為每一車道平均分配流量比例,即1/N。如果某條車道定義的車流方向對于一個方向(如既可以左轉,又可以直行),則根據(jù)定義的方向對1/N比例的車流量繼續(xù)平均劃分,如1/(2N);Step3根據(jù)車道的渠化,計算各個方向的轉向比例;Step4考慮其他隨機因素的影響,對各個方向的轉向比例在原來的基礎上增加一個隨機富余比例流量(0.1~0.2);Step5Step4得到的各個方向的轉向比例設定為該方向轉向比例的最大值;而最小值可以設定為一個很小的數(shù)(如0.01)或者為0。如果該方向的交通流禁止某個方向,如左轉彎,則可以將該方向的轉向比例最大值和最小值均設定為0。
例如,某個交叉口某個方向的渠化定義為(L(L&T)TTR),即總共有5條車道,一條左轉彎專用車道,一條右轉彎專用車道,兩條直行專用車道和一條左轉彎和直行共用車道,并且假設所有方向的轉向比例富余量均為0.1,則計算得到的各個方向的搜索空間為直行0~0.6;左轉彎0~0.4,直行0~0.3。而如果渠化變?yōu)?L(L&T)TT(T&R)),也就是把原來的右轉彎專用車道改變?yōu)橛肄D彎和直行共用車道,其他設定不變,則計算得到的各個方向的搜索空間為直行0~0.7;左轉彎0~0.4,直行0~0.2。
可以看出,根據(jù)算法的定義,相對于原來的搜索空間,經過限制后的遺傳算法搜索空間被大大地縮小了,從而有利于提高算法的效率;同時,由于對搜索空間所做的限制又是根據(jù)實際的交通渠化和先驗的交通流轉向比例,使得最終得到的解更具有實際的意義;(3)初始化遺傳算法計算環(huán)境,第一次初始化可以與步驟(2)的初始環(huán)境相同,以后每次運算完后均需要初始化;(4)執(zhí)行遺傳算法計算,記錄每次采用遺傳算法進行計算的結果,其中目標函數(shù)和個體適應度計算如下目標函數(shù)如以下公式J(b)=min(Σj=14|yj(t)-Σi=14qi(t)bij(t)|Σj=14yj(t))]]>由于本問題是一個最小值問題,而在遺傳算法中,個體的適應度越大,個體遺傳到下一代的概率就越大。因此,個體的適應度需要在目標函數(shù)的基礎上進行變換,如以下公式Fitness=Cmax-J(b)ifJ(b)<Cmaxelse]]>
Cmax為一適當?shù)南鄬Ρ容^大的數(shù),可以是目標函數(shù)最大值的估計,也可以是一個合適的輸入值。
(5)根據(jù)遺傳算法求得的路口轉向比例,根據(jù)前述的公式(1),可以計算出當路口轉向比例為求得的轉向比例條件下,從路口各個方向離開的流量;將計算得到的路口各個方向離開流量與實際的路口各個方向離開的流量進行比較,采用步驟(4)中計算目標函數(shù)的公式作為誤差計算公式,進行誤差計算,如果得到解的誤差滿足精度要求,轉步驟(6),否則,轉步驟(3);從對搜索空間的限制可以發(fā)現(xiàn),當最終由遺傳算法搜索得到的解,即計算路口轉向比例時,左轉、右轉和直行相加的計算結果無法滿足約束條件Σj≠ibij(t)=1]]>時,則需采用歸一化處理或投影處理的歸一化處理方法,其中歸一化處理為bij(t)=bij(t)Σjbij(t)]]>投影處理為bij(t)=bij(t)+1.0-Σjbij(t)n]]>(6)根據(jù)以下公式計算所有滿足精度要求的解的熵,判斷是否達到設定的求解總次數(shù),如果是,轉步驟(7),否則,轉步驟(3); 對公式的說明令y=Σi=1n]]>yi=Σl=1N]]>fi為經過交叉口的總車輛數(shù)(事實上就是從交叉口離開的流量),對一給定的F=(f1,f2,...,fN),其可能出現(xiàn)的組合數(shù)為I(F)=y!Πl=1Nfl!]]>從直觀上看,I(F)越大,則F出現(xiàn)的可能性越大。下面將證實這一直觀想象是符合申農原理的。取I(F)的一個單調增加函數(shù),取其不妨對數(shù),記為(F),則有 由stiring近似公式lny?。統(tǒng)lny-y,則 =Σl=1Nfllny-Σl=1Nfllnfl=Σl=1Nfllnyfl=-yΣl=1Nflylnfly]]>若將 看作第l次事件出現(xiàn)的概率,則上式即為申農熵的原始定義,亦即(F)的含義是F中所包含的熵。根據(jù)申農信息論可知,事件中所含的熵越大,則出現(xiàn)的可能性越大。因為(F)是I(F)單增函數(shù),所以I(F)越大,則(F)亦越大,即F中所含的熵越大。為此,可將熵最大的F作為真實的一種估計,于是將原問題轉化為一個求熵最大、滿足約束的數(shù)學規(guī)劃問題。
為了求解方便,取(F),而不取I(F)作為目標函數(shù)。另一方面,由于y是一固定的常數(shù),可以將其從(F)中略去,即取 (7)比較所有滿足精度要求解的熵,找出其中熵最大對應的解,該解即為最終解。
權利要求
1.一種基于遺傳算法和極大熵模型計算交叉口轉向比例的方法,其特征在于包括以下步驟(1)輸入研究路口及其空間相鄰路口某一個時間段的流量數(shù)據(jù);(2)設置遺傳算法的遺傳算子及其控制參數(shù),定義遺傳算法求解的搜索空間以及求解的總次數(shù);(3)初始化遺傳算法計算環(huán)境;(4)執(zhí)行遺傳算法計算;如果得到的解滿足精度要求,轉步驟(5),否則,轉步驟(3);(5)計算得到的解的熵;判斷是否達到設定的求解總次數(shù),如果是,轉步驟(6),否則,轉步驟(3);(6)比較所有滿足精度要求解的熵,找出其中熵最大對應的解,該解即為最終解。
2.根據(jù)權利要求1所述的基于遺傳算法和極大熵模型計算交叉口轉向比例的方法,其特征在于所述步驟(4)中遺傳算法計算的目標函數(shù)和個體適應度函數(shù)選擇方式的特征如下目標函數(shù)J(b)=min(Σj=14|yj(t)-Σi=14qi(t)bij(t)|Σj=14yj(t))]]>其中yj(t)在時間段t內,從本交叉口經由下游交叉口j離開的流量,j=1,2,3,4;y(t)=[y1(t),......,y4(t)];qi(t)在時間段t內,從上游路段i進入本交叉口的流量,i=1,2,3,4;q(t)=[q1(t),......,q4(t)];bij(t)(i=1,...,4;j=1,...,4)交叉口轉向比例,指車輛從上游交叉口i到達交叉口后從下游交叉口j離開的比例,j=1,2,3,4;個體的適應度Fitness=Cmax-J(b)ifJ(b)<Cmaxelse]]>Cmax為一個大的常數(shù)值。
3.根據(jù)權利要求1所述的基于遺傳算法和極大熵模型計算交叉口轉向比例的方法,其特征在于所述步驟(4)中當采用基于遺傳算法計算路口轉向比例時,左轉、右轉和直行相加的計算結果無法滿足約束條件Σj≠ibij(t)=1]]>時需采用以下的歸一化處理或投影處理的歸一化處理方法,其中歸一化處理為bij(t)=bij(t)Σjbij(t)]]>投影處理為bij(t)=bij(t)+1.0-Σjbij(t)n.]]>
4.根據(jù)權利要求1所述的基于遺傳算法和極大熵模型計算交叉口轉向比例的方法,其特征在于所述步驟(5)進行熵計算時,遺傳算法解的熵值定義特征如下 如果將車輛經過交叉口的過程看作一次隨機試驗過程,車輛從第i入口進來又從第j出口出去看作第l次事件的發(fā)生l=i+j(n-1),則上式中fl就表示從上游交叉口i到達交叉口后從下游交叉口j離開的總流量,N為事件的總數(shù)。
5.根據(jù)權利要求1所述的基于遺傳算法和極大熵模型計算交叉口轉向比例的方法,其特征在于所述步驟(1)中定義遺傳算法求解的搜索空間的方法如下(1)計算到達交叉口的車道總數(shù)N;(2)為每一車道平均分配流量比例,即1/N,如果某條車道定義的車流方向對于一個方向既可以左轉,又可以直行,則根據(jù)定義的方向對1/N比例的車流量繼續(xù)平均劃分,即1/(2N);(3)根據(jù)車道的渠化,計算各個方向的轉向比例;(4)考慮其他隨機因素的影響,對各個方向的轉向比例在原來的基礎上增加一個隨機富余比例流量0.1~0.2;(5)上述步驟(4)得到的各個方向的轉向比例設定為該方向轉向比例的最大值;最小值設定為一個很小的數(shù)或者為0;如果該方向的交通流禁止某個方向,則將該方向的轉向比例最大值和最小值均設定為0。
全文摘要
一種基于遺傳算法和極大熵模型計算交叉口轉向比例的方法包括(1)輸入研究路口及其空間相鄰路口某一個時間段的流量數(shù)據(jù);(2)設置遺傳算法的遺傳算子及其控制參數(shù),定義遺傳算法求解的搜索空間以及求解的總次數(shù);(3)初始化遺傳算法計算環(huán)境;(4)執(zhí)行遺傳算法計算;如果得到的解滿足精度要求,轉步驟(5),否則,轉步驟(3);(5)計算得到的解的熵;判斷是否達到設定的求解總次數(shù),如果是,轉步驟(6),否則,轉步驟(3);(6)比較所有滿足精度要求解的熵,找出其中熵最大對應的解,該解即為最終解。本發(fā)明提高了計算效率和增加了最后得到解的實際意義,還可以根據(jù)道路實際的交通狀況和先驗的交叉口轉向比例知識對遺傳算法的搜索空間進行限制。
文檔編號G06N3/12GK101089913SQ20071011869
公開日2007年12月19日 申請日期2007年7月12日 優(yōu)先權日2007年7月12日
發(fā)明者王勁峰, 孫騰達, 王海起 申請人:中國科學院地理科學與資源研究所