唐 遠(yuǎn) 吳小龍 丁 振
(1.昆明阡陌交通工程咨詢有限公司,昆明 610041 2.荊州市城市規(guī)劃設(shè)計(jì)研究院,荊州 434000)
行車時(shí)刻表的制定是城市公共交通企業(yè)管理的重要基礎(chǔ)工作之一,它決定了運(yùn)行時(shí)刻表、車輛調(diào)度以及分派司機(jī)等其他的日常調(diào)度工作[1]。在當(dāng)前城市公交運(yùn)力普遍緊張的前提下,如何經(jīng)濟(jì)合理地使用車輛,挖掘既有運(yùn)力潛能,緩解客流擁擠是制定行車計(jì)劃的目標(biāo)。目前公交調(diào)度人員在安排行車計(jì)劃時(shí),主要憑借自身的工作經(jīng)驗(yàn)和一些簡單的服務(wù)性控制指標(biāo),調(diào)度計(jì)劃的正確性和科學(xué)性得不到保障,不合理的作業(yè)計(jì)劃將導(dǎo)致企業(yè)經(jīng)濟(jì)效益下降和社會(huì)資源浪費(fèi)[2]。本文旨在從優(yōu)化理論出發(fā),利用Matlab強(qiáng)大的計(jì)算能力和優(yōu)秀的圖形可視化特性,開發(fā)界面友好和使用方便的公交發(fā)車頻率優(yōu)化軟件[3],為企業(yè)提供科學(xué)的決策和良好的便利性。
如何根據(jù)一天中不同時(shí)刻的客流情況為每條公交線路提供合適的發(fā)車頻率是提高公交服務(wù)水平的關(guān)鍵因素。對(duì)于發(fā)車頻率的確定目前主要有最大客流方法[4]、斷面客流方法[5]和考慮乘客候車時(shí)間成本、企業(yè)運(yùn)營成本的多目標(biāo)優(yōu)化方法[6]。
最大客流方法針對(duì)調(diào)查站點(diǎn)選取的不同分為單個(gè)站點(diǎn)的最大客流調(diào)查方法和基于各時(shí)段站點(diǎn)最大客流調(diào)查方法。對(duì)于單個(gè)站點(diǎn)的最大客流調(diào)查方法,調(diào)查人員全天只在一個(gè)站點(diǎn)進(jìn)行統(tǒng)計(jì),此站點(diǎn)為依據(jù)歷史跟車調(diào)查數(shù)據(jù)確定的全日平均最大客流站點(diǎn),以該站點(diǎn)每個(gè)時(shí)段的客流為依據(jù),確定其發(fā)車頻率,具體模型如下。
式中,F(xiàn)1j為確定的時(shí)段j內(nèi)發(fā)車頻率;Fmj為時(shí)段j內(nèi)最小期望發(fā)車頻率;S為站點(diǎn)集合(不包括末站);i*為全日最大客流站點(diǎn);Pij為時(shí)段j內(nèi)離開站點(diǎn)i的所有車輛運(yùn)載乘客總數(shù)的統(tǒng)計(jì)學(xué)指標(biāo)(平均數(shù));Pmdj為時(shí)段j內(nèi)全日最大客流站點(diǎn)的平均觀測(cè)客流;d0j為期望的單位公交車運(yùn)力;Pmd為全日最大客流站點(diǎn)的總客流;γj為時(shí)段j內(nèi)的客流因子(0<γj≤1.0);c為單位公交車的運(yùn)力。
對(duì)于基于各時(shí)段站點(diǎn)最大客流的調(diào)查方法,需要多名調(diào)查員分布在每個(gè)站點(diǎn)進(jìn)行全天客流統(tǒng)計(jì),統(tǒng)計(jì)出每個(gè)時(shí)段的最大客流站點(diǎn),以該流量為依據(jù),確定每個(gè)時(shí)段的發(fā)車頻率F2j,具體模型如下。
式中,Pmj為時(shí)段j內(nèi)觀測(cè)到的最大客流。
斷面客流方法采用跟車調(diào)查獲取客流數(shù)據(jù),以載客里程指標(biāo)為依據(jù),計(jì)算每個(gè)時(shí)段內(nèi)的發(fā)車頻率F3j,具體模型如下。
式中,li為站點(diǎn)i與站點(diǎn)i+1之間的距離;L為線路長度;Aj為時(shí)段j內(nèi)斷面客流曲線下的乘客里程數(shù)。
當(dāng)線路運(yùn)能緊張時(shí),可適當(dāng)允許客流量超過期望擁擠度,通過設(shè)置控制參數(shù)βj來實(shí)現(xiàn)允許超載的線路長度,使該區(qū)間的客流量可以超出平均客流量,以此判斷標(biāo)準(zhǔn)為依據(jù),反推每個(gè)時(shí)段內(nèi)的發(fā)車頻率F4j,具體模型如下。
式中,Ij為時(shí)段j內(nèi)斷面客流Pij大于由發(fā)車頻率確定的供給客流F4j·d0j的所有站點(diǎn)集合;βj為時(shí)段j內(nèi)允許Pij大于F4j·d0j的線路長度控制參數(shù)。
公交線路調(diào)度方案的制定既要考慮企業(yè)的利益,也要考慮乘客的利益。當(dāng)發(fā)車頻率過高時(shí),雖然能夠滿足乘客的需求,同時(shí)也增加了企業(yè)的運(yùn)輸成本;當(dāng)發(fā)車頻率過低時(shí),雖然節(jié)約了企業(yè)的運(yùn)輸成本,但增加了乘客的等車時(shí)間,影響了乘客的利益,導(dǎo)致公交服務(wù)水平低下。通過建立同時(shí)考慮企業(yè)運(yùn)營成本最小和乘客候車時(shí)間成本最小的多目標(biāo)優(yōu)化模型,可實(shí)現(xiàn)二者間利益的平衡[7][8]。
目標(biāo)函數(shù)中企業(yè)運(yùn)營成本包括固定成本和變動(dòng)成本,由于發(fā)車次數(shù)的多少和固定成本無關(guān),可以僅考慮變動(dòng)成本部分。乘客候車時(shí)間成本為到站乘客等待時(shí)間費(fèi)用。目標(biāo)函數(shù)受兩個(gè)條件約束,約束一為發(fā)車間隔約束,發(fā)車間隔的上限應(yīng)滿足交通部門規(guī)定的上限,下限應(yīng)滿足公交企業(yè)發(fā)車能力極限。約束二為斷面需求約束,公交運(yùn)營者提供的單位小時(shí)供給能力必須滿足斷面需求。
式中,C1為乘客候車時(shí)間成本;C2為企業(yè)運(yùn)營成本;λ1為乘客單位時(shí)間費(fèi)用(元/min·人);λ2為企業(yè)單位時(shí)間運(yùn)營費(fèi)用(元/min·輛);rij為i時(shí)段第j站的乘客平均刷卡上車人數(shù);hi為i時(shí)段發(fā)車間隔;μ為刷卡率;Ti第i時(shí)段總時(shí)長;ti為i時(shí)段的車輛平均行駛時(shí)間;himin為i時(shí)段公交車最小發(fā)車間隔;himax為i時(shí)段公交車最大發(fā)車間隔;aij為i時(shí)段第j站的乘客平均下車人數(shù);qi,j-1為i時(shí)段第j-1站與j站之間的斷面量;Q為車輛定員;Z為發(fā)車間隔集合。
對(duì)于多目標(biāo)函數(shù)求解,可通過引入權(quán)重因子,將多目標(biāo)函數(shù)轉(zhuǎn)換為單目標(biāo)函數(shù),具體如下。
式中α和β為多目標(biāo)函數(shù)的權(quán)重因子。
軟件功能設(shè)計(jì)集成上述5種模型,并能夠自動(dòng)生成優(yōu)化曲線,將5種模型的計(jì)算結(jié)果顯示在曲線上。當(dāng)輸入實(shí)際的發(fā)車方案時(shí),可以計(jì)算相應(yīng)的評(píng)價(jià)值,便于和優(yōu)化結(jié)果比較。軟件同時(shí)提供公交斷面客流圖繪制功能,便于管理者掌握線路運(yùn)行情況。所有優(yōu)化結(jié)果、優(yōu)化曲線和公交斷面圖均能夠輸出保存。功能結(jié)構(gòu)設(shè)計(jì)如圖1所示。
界面布局包括主界面和子界面兩部分,主界面根據(jù)各功能的特點(diǎn)進(jìn)行分區(qū)設(shè)置(圖2),具體劃分為數(shù)據(jù)導(dǎo)入模塊、最大客流和斷面客流方法模塊、多目標(biāo)優(yōu)化方法模塊、實(shí)際方案評(píng)價(jià)模塊、繪圖模塊和參數(shù)顯示區(qū)域。子界面包括斷面圖繪制界面和優(yōu)化曲線界面(圖3),當(dāng)輸入數(shù)據(jù)滿足要求時(shí),各子界面會(huì)相應(yīng)激活。各模塊之間通過主界面和子界面的handles句柄結(jié)構(gòu)數(shù)組、UserData屬性實(shí)現(xiàn)不同控件間的數(shù)據(jù)傳遞和存儲(chǔ)[9]。
圖1 功能結(jié)構(gòu)設(shè)計(jì)
圖2 主界面布局
圖3 斷面圖繪制和優(yōu)化曲線繪制界面布局
對(duì)于多目標(biāo)優(yōu)化而言,由于發(fā)車間隔的確定總是在一個(gè)固定區(qū)間內(nèi),即發(fā)車間隔的最大值和最小值是可以確定的,同時(shí),根據(jù)發(fā)車特點(diǎn),潛在解集總是離散的,故可行解的確定可采用枚舉法先完成潛在解的生成,再剔除不滿足約束條件的解,具體流程如圖4所示。
圖4 可行解生成流程
潛在解是由不同時(shí)段的發(fā)車間隔組成的一維數(shù)組,假設(shè)劃分時(shí)段數(shù)為n,則潛在解可表示為I=[I1,I2,…, In]。程序設(shè)計(jì)難點(diǎn)在于如何根據(jù)不同的劃分時(shí)段n生成一個(gè)維度為n的潛在解,為了解決此問題,可將時(shí)段n作為一個(gè)參數(shù)傳入自定義函數(shù)內(nèi),該函數(shù)根據(jù)參數(shù)n返回一個(gè)n層嵌套循環(huán)代碼的字符串,再采用eval()函數(shù)執(zhí)行字符串代碼完成潛在解的生成,具體如下。
for i=1:seqnum %生成字符串代碼
tmp_strfor=sprintf('for %s=%d:%d ',iter{i},hdw_interval(i,1),hdw_interval(i,2));
str_for=[str_for,tmp_strfor];
str_end=[str_end,tmp_end];
tmp_solution=[iter{i},' ']; %字符串表達(dá)式
eval_solution=[eval_solution,tmp_solution];
end
str=[str_for,sprintf(' '),'tmp_solution=[',eval_solution,'];',sprintf(' '),'potential_solution=[pot_ential_solution;tmp_solution];',sprintf(' '),'str_end]; %字符串代碼生成
eval(str); %調(diào)用eval()執(zhí)行字符串代碼
潛在解集生成后,將不滿足約束條件的解排除,剩余的解集就是可行解集,具體如下。
function feasible_solution=FeasibleSolutionBasedSectio
n(handles,potential_solution,r,a,T,miu,Q)
% potential_solution潛在解集
% r 分時(shí)段分站點(diǎn)刷卡上車率
% a分時(shí)段分站點(diǎn)下客率
% T 分時(shí)段的時(shí)長數(shù)組
% miu IC卡率
% Q 車輛定員
% feasible_solution 可行解
r=r/miu;
q=SectionVolume(r,a); % 斷面率
n=size(potential_solution,1);
num_section=size(q,2);
Tmatirx=repmat(T,1,num_section);
feasible_solution=[];
for i=1:n
h_mat=repmat(potential_solution(i,:)',1,num_section);
constrain=q.*h_mat;
count=0;
for j=1:numel(constrain)
if constrain(j)>=0*Q && constrain(j)<=1*Q
count=count+1;
else
break;
end
end
if count==numel(constrain)
feasible_solution=[feasible_solution;potential_solution(i,:)];
end
end
為便于不同模型計(jì)算出的方案進(jìn)行比較,將多目標(biāo)優(yōu)化方法的目標(biāo)函數(shù)作為實(shí)際發(fā)車方案、最大客流方法和斷面客流方法的目標(biāo)值計(jì)算依據(jù),根據(jù)不同方案的計(jì)算結(jié)果,進(jìn)行升序排序,繪制優(yōu)化曲線。
本文以昆明市44路車回程方向的跟車調(diào)查數(shù)據(jù)作為研究對(duì)象,進(jìn)行發(fā)車間隔優(yōu)化分析。44路回程起始于海埂公園站,沿線經(jīng)過滇池路和環(huán)城南路(圖5),途經(jīng)19個(gè)站點(diǎn)到達(dá)昆明站,全程采用一票制,是南市區(qū)重要的公交客流通道。
根據(jù)客流時(shí)間分布特征,將時(shí)段劃分為7個(gè),各時(shí)段的時(shí)長、最小發(fā)車間隔、最大發(fā)車間隔、發(fā)車頻率、發(fā)車間隔和平均行程等統(tǒng)計(jì)指標(biāo)見表1。
圖5 路回程方向線路示意圖
分時(shí)段各站點(diǎn)的上客率、下客率和斷面量見表2、表3、表4。
參考昆明市經(jīng)濟(jì)水平和基本工資水平,乘客等車單位時(shí)間成本取0.554元/min·人,企業(yè)單位運(yùn)營成本取1.7元/min·輛,因?yàn)槭歉囌{(diào)查,刷卡率取100%,乘客權(quán)重和企業(yè)權(quán)重均為0.5,車輛定員為80人,將參數(shù)和基礎(chǔ)數(shù)據(jù)導(dǎo)入軟件,得到優(yōu)化結(jié)果如圖6所示。
表5為不同方式優(yōu)化結(jié)果對(duì)比,從優(yōu)化結(jié)果來看,多目標(biāo)優(yōu)化方案計(jì)算的目標(biāo)值為15347.7元,為全局最優(yōu),而實(shí)際方案次之,其目標(biāo)值為15608.3元,二者相差260.6元,由此看出公交調(diào)度者憑借自己豐富的工作經(jīng)驗(yàn),其制定的發(fā)車方案已經(jīng)很接近最優(yōu)值,但相比多目標(biāo)優(yōu)化結(jié)果來說仍有一定的優(yōu)化空間。而方法1~方法4計(jì)算的發(fā)車方案目標(biāo)值較大,主要是因?yàn)槠浯_定的依據(jù)是以滿足乘客的乘車需求而考慮,犧牲了部分企業(yè)利益。
表2 分時(shí)段站點(diǎn)上客率表(人/min)
基于目前主要的公交發(fā)車頻率確定方法構(gòu)建Matlab/GUI框架,實(shí)現(xiàn)了模型算法的集成化、可視化和交互式功能。軟件提供優(yōu)化曲線繪制功能和斷面圖繪制功能,通過對(duì)各方案進(jìn)行指標(biāo)量化,為用戶提供科學(xué)的決策依據(jù)。最后文章通過昆明44跟車調(diào)查數(shù)據(jù),展示了軟件的優(yōu)化功能,結(jié)果證明軟件計(jì)算結(jié)果正確,各項(xiàng)功能達(dá)到設(shè)計(jì)要求,對(duì)各專業(yè)人員運(yùn)用Matlab語言快速開發(fā)出具備強(qiáng)大計(jì)算功能的專業(yè)應(yīng)用軟件具有重要意義。
表3 分時(shí)段站點(diǎn)下客率表(人/min)
圖6 44路優(yōu)化曲線圖
表4 分時(shí)段公交斷面量表
表5 不同方法優(yōu)化結(jié)果對(duì)比表