周彪, 智路平, 李彬
(1. 上海海事大學(xué) 經(jīng)濟(jì)管理學(xué)院,上海 201306;2. 上海市交通港航發(fā)展研究中心,上海 200025)
路阻函數(shù)[1]用于描述車輛在道路上的行程費(fèi)用(或時(shí)間)與道路交通條件之間的關(guān)系,能反映道路網(wǎng)絡(luò)各組成部分的交通容量限制和擁擠效應(yīng),是交通量分配預(yù)測(cè)中的一項(xiàng)十分關(guān)鍵的技術(shù),也是實(shí)施交通量分配的前提條件.
對(duì)路阻函數(shù)的研究已有許多成果,有許多不同形式的函數(shù)被提出并應(yīng)用于實(shí)踐中.如美國(guó)聯(lián)邦公路局對(duì)大量路段進(jìn)行交通調(diào)查后,通過(guò)回歸分析得到BPR函數(shù)[2].DAVIDSON應(yīng)用排隊(duì)論基礎(chǔ)提出有漸近性的路阻函數(shù).[3-4]王樹盛等[5]對(duì)路阻函數(shù)關(guān)系式進(jìn)行推導(dǎo)及擬合分析.王元慶等[6]在“九五”交通科技重點(diǎn)攻關(guān)項(xiàng)目關(guān)于公路通行能力的研究中,重新標(biāo)定BPR函數(shù),建立模型.王煒等[7]針對(duì)中國(guó)國(guó)情提出路阻函數(shù)修正模型.霍飛[8]結(jié)合出行特征進(jìn)行分析,確定與路阻函數(shù)相關(guān)的因素并對(duì)已有數(shù)學(xué)模型進(jìn)行改進(jìn).還有基于Greenshields模型的包含速度、交通密度的路阻函數(shù)[9]以及在擁擠和非擁擠情況下基于Edie交通流模型的路阻函數(shù)[10].其中應(yīng)用得比較廣泛的是美國(guó)聯(lián)邦公路局提出的BPR函數(shù)
為保持與BPR函數(shù)模型的兼容,改進(jìn)模型f*(va)應(yīng)當(dāng)具有性質(zhì)(1)~(4);為彌補(bǔ)BPR函數(shù)的內(nèi)在不足,給改進(jìn)模型增加性質(zhì)(5)~(7).
(1)改進(jìn)路阻函數(shù)f*(va)應(yīng)當(dāng)是一個(gè)嚴(yán)格遞增的函數(shù).這符合擁擠效應(yīng),也是配流結(jié)果具有唯一性的保證.
(7)改進(jìn)路阻模型具有更短的計(jì)算機(jī)運(yùn)行時(shí)間.
下面依次證明本文的改進(jìn)路阻函數(shù)具有第1.1節(jié)所列的7個(gè)性質(zhì).
(4)函數(shù)凸性證明.易知
(7)關(guān)于模型在計(jì)算機(jī)內(nèi)的運(yùn)算時(shí)間,編寫一個(gè)簡(jiǎn)單程序通過(guò)實(shí)際觀察進(jìn)行判斷.為精確起見,采用多次循環(huán)運(yùn)算觀察運(yùn)行時(shí)間.循環(huán)過(guò)程中va被賦予不同的值,取值為0.2~3.0,每個(gè)模型均做2 800 000次循環(huán)運(yùn)算.程序用C++語(yǔ)言編寫,在Athlon 1G/256M ram/Windows環(huán)境下調(diào)試運(yùn)行,運(yùn)行結(jié)果見圖1(源程序詳見附錄).
圖1 BPR路阻模型和改進(jìn)模型的程序運(yùn)算時(shí)間
圖1中18.2是機(jī)器每秒鐘的時(shí)鐘周期數(shù),t1是程序開始運(yùn)行時(shí)刻,t2是BPR函數(shù)循環(huán)完畢時(shí)刻,t3是改進(jìn)函數(shù)循環(huán)完畢時(shí)刻.從圖中可知BPR模型的運(yùn)行時(shí)間為55個(gè)時(shí)鐘周期,改進(jìn)模型的運(yùn)行時(shí)間為8個(gè)時(shí)鐘周期.
為檢驗(yàn)結(jié)果可信度,在不同的機(jī)型及系統(tǒng)環(huán)境下運(yùn)行此程序,得到運(yùn)行時(shí)間(單位:時(shí)鐘周期),見表1.從表中可以看出,改進(jìn)的路阻函數(shù)在計(jì)算機(jī)內(nèi)的運(yùn)行時(shí)間明顯小于BPR函數(shù).
表1 不同運(yùn)行環(huán)境下兩函數(shù)運(yùn)行時(shí)間對(duì)比
(a) β=4.0
(b) β=6.0
(c) β=8.0
(d) β=10.0
圖3 α=0.15,β分別取不同值時(shí)兩函數(shù)擬合情況 圖4 β=4.0,α分別取不同值時(shí)兩函數(shù)擬合情況
在寧波市鄞州區(qū)麥德龍交通影響分析項(xiàng)目中,參照《寧波市綜合交通規(guī)劃》的機(jī)動(dòng)車需求預(yù)測(cè)[13],采用BPR路阻函數(shù)通過(guò)交通分析軟件EMME進(jìn)行交通流分配,得到麥德龍周邊地區(qū)主干路(錢湖北路和南外環(huán)路)的背景交通量預(yù)測(cè),見圖5.在各路段的參數(shù)取值相同的前提下,將BPR路阻函數(shù)改為改進(jìn)的路阻函數(shù)再次配流,得到的預(yù)測(cè)結(jié)果見圖6.
從圖5和6可以看出,這兩種配流結(jié)果比較接近.
圖5 采用BPR函數(shù)時(shí)的配流情況 圖6 采用改進(jìn)函數(shù)時(shí)的配流情況
參考文獻(xiàn):
[1] 鄭遠(yuǎn), 杜豫川, 孫立軍. 美國(guó)聯(lián)邦公路局路阻函數(shù)探討[J]. 交通與運(yùn)輸:學(xué)術(shù)版, 2007(1):1-2.
[2] Bureau of Public Roads. Traffic assignment manual[S].US Dept of Commerce, Urban Planning Division, Washington DC, 1964.
[3] 黎新華, 侯桂榮, 莫輝輝. 容量限制的分配優(yōu)化方法研究[J].中南公路工程, 2005(4): 116-118.
[4] 劉楨根, 鄧衛(wèi). 交通分布-交通分配組合模型研究[J]. 武漢理工大學(xué)學(xué)報(bào):交通科學(xué)與工程版, 2006(6): 1031-1033.
[5] 王樹盛, 黃衛(wèi), 陸振波. 路阻函數(shù)關(guān)系式推導(dǎo)及其擬合分析研究[J]. 公路交通科技, 2006(4): 107-110.
[6] 王元慶, 周偉, 呂連恩. 道路路阻函數(shù)理論與應(yīng)用研究[J]. 公路交通科技, 2004(9): 82-85.
[7] 王煒, 徐吉謙, 楊濤, 等. 城市交通規(guī)劃理論及其應(yīng)用[M]. 南京:東南大學(xué)出版社, 1998: 72-74.
[8] 霍飛. 區(qū)域公路網(wǎng)路阻函數(shù)理論與應(yīng)用研究[D].西安: 長(zhǎng)安大學(xué), 2012.
[9] XU Meng, SHI Zhongke. Outflow models based on velocity/density formulation used in dynamic traffic assignment[C]//Machine Learning and Cybernetics, Proc Int Conf, IEEE, 2005(6): 3568-3573.
[10] 劉燦齊, 陳軍. 基于Edie模型的路阻函數(shù)關(guān)系推導(dǎo)及其擬合分析研究[J].交通標(biāo)準(zhǔn)化, 2012(4):33-36.
[11] 袁振洲. 動(dòng)態(tài)交通分配中道路阻抗模型的研究[J]. 中國(guó)公路學(xué)報(bào), 2002, 15(3): 92-101.
[12] SPIESS H. Technical note: conical volume-delay functions[J]. Transportation Sci, 1990, 24(2): 153-158.
[13] 劉曠, 夏曉梅, 董潔霜, 等. EMME在公路內(nèi)外交通銜接規(guī)劃中的應(yīng)用[J].交通與運(yùn)輸:學(xué)術(shù)版, 2009(1): 18-21.
附錄BPR路阻模型和改進(jìn)模型運(yùn)算時(shí)間源程序
include
include
include
main()
{
double a,b,c,d,x,y;
float t1,t2,t3;
clock_t clock();
a=0.15;
b=4;
c=(2*b-1)/(2*b-2);
d=pow(a,1/b);
printf("THE CLOCK TICKS PER SECOND:%f ",CLK_TCK);
t1=clock(); /*程序開始運(yùn)行的時(shí)刻*/
printf("TICKS OF t1:%f ",t1);
for(x=0.2;x<=3;x=x+0.000001)
{
y=1+a*pow(x,b);
}
printf("f(%f)=%f ",x,y);
t2=clock(); /*BPR函數(shù)循環(huán)運(yùn)行結(jié)束的時(shí)刻*/
printf("TICKS OF t2:%f ",t2);
printf("NUMBER OF TICKS OF THE FUNCTION BPR:%f ",t2-t1);
for(x=0.2;x<=3;x=x+0.000001)
{
y=2+sqrt(b*b*(1-d*x)*(1-d*x)+c*c)-b*(1-d*x)-c;
}
printf("f*(%f)=%f ",x,y);
t3=clock(); /*改進(jìn)路阻函數(shù)循環(huán)運(yùn)行結(jié)束的時(shí)刻*/
printf("TICKS OF t3:%f ",t3);
printf("NUMBER OF TICKS OF THE FUNCTION IMPROVED:%f ",t3-t2);
}