公交车调度的运作模型.docx

上传人:b****5 文档编号:27779625 上传时间:2023-07-05 格式:DOCX 页数:14 大小:48.97KB
下载 相关 举报
公交车调度的运作模型.docx_第1页
第1页 / 共14页
公交车调度的运作模型.docx_第2页
第2页 / 共14页
公交车调度的运作模型.docx_第3页
第3页 / 共14页
公交车调度的运作模型.docx_第4页
第4页 / 共14页
公交车调度的运作模型.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

公交车调度的运作模型.docx

《公交车调度的运作模型.docx》由会员分享,可在线阅读,更多相关《公交车调度的运作模型.docx(14页珍藏版)》请在冰豆网上搜索。

公交车调度的运作模型.docx

公交车调度的运作模型

公交车调度的运作模型

【摘要】由题可知,本问题是多目标规划求解问题。

该问题要求我们设计一个公交车调度方案,同时照顾公交公司和乘客的利益。

我们首先对基本数据进行分析,得出上下行方向可独立优化,并通过立方插值找到了各站乘客到达的分布。

载客率和乘客等待时间是其核心,载客率与公交公司利益相关,乘客等待时间与乘客利益相关。

(合理大胆的假设的重要性)我们将其作为两个目标分解形成多目标规划。

通过分析各客车运行状态,推导出了平均载客率和平均乘客等待时间的准确计算公式,从而得到原问题的一个明确、完整的数学模型,按多目标规划的方法求解,即化多目标为单目标求解。

在数值求解中我们用非线性规划中的网格法和模矢法原理找到了本客车调度问题的满意解。

其典型解的有关指标为:

载客率为:

%;平均等待时间为:

分;所需客车为57辆。

思维分析:

公交车的调度问题,我们的切入点是尽量使乘客和公交公司双赢。

对数据的处理:

先取出上行数据进行分析,下行可以通过同理可得

1)乘客到达的分布――连续性

2)乘客下车的分布――离散型

对离散型数据进行进一步的分类,分析

考虑平均载客率→公交公司的满意度:

考虑平均等待时间→乘客的满意度:

建立综合模型:

上行+下行

模型的检验

编码

一.问题的提出:

(已知条件)

上行方向共14站,下行方向共13站,每辆标准载客100人,据统计客车在该线路上运行的平均速度为20公里/小时。

乘客候车时间一般不要超过10分钟,早高峰时一般不要超过5分钟,车辆满载率一般50%~~120%。

二.基本假设:

(理想状态下)

1:

乘客上车是按先到先上车的原则。

2:

汽车到达终点站后排队等待发车,乘客上下车时间不计(可认为该时间已并入客车正常时速)。

3:

客车在各站准点发车,客车平均时速为20km/h。

4:

车辆满载率不应超过120%,一般也不要低于50%。

5:

所给原始数据是在车辆宽松的情况下得到的,能很好的反映乘客来去的规律。

6:

乘客候车时间一般不要超过10分钟,早高峰时一般不要超过5分钟。

7:

对全天而言客车公司应基本把所有的顾客运完。

三.模型的建立:

(一)问题分析

制定公交车调度方案时,必须考虑公司和乘客两方面的利益,这两方面的利益是不可能同时满足。

所以,最后的数据牵扯到权的问题。

后面解释

(二)模型建立

1.乘客到达的分布(本质上是连续型)

上行首发站各时间段上车的乘客人数已知为:

{37119903626206411869239578737796256351493201169135030420919},a表示客流量。

F1(5)=0

(形成连续性函数)

此分布函数是离散型,matlab软件能很好的用插值法得到连续型分布函数,不妨用

表示0到t时刻本站到达乘客的总数。

依次类推对其它各站也同样可得到乘客到达的分布。

2.乘客下车的分布(本质上是离散型)

假设p为乘客在每站可能下车的概率(在t时段第i站上车的人在第j站下车的概率),每个时段的pij(t)可组成一n阶上三角矩阵。

)(黑板画)

3.乘客、车辆运行规律(此表对于上行方向)

m辆车在n个站的行车时刻表t=(tij)n×m

第i站到第1站的距离:

x……x1x2x3x4…xi…x(n1)

第1辆车到第i站的时间:

tt11t12t13t14……t1i……t1n

第1辆车经过第i站时站上等待的人数:

FF11F12F13F14…F1i……F1n

第1辆车经过第i站时下车的人数:

ββ11β12β13β14……β1i……β1n

第1辆车在第i站到第i+1站车上的人数:

SS11S12S13S14……S1i……S1n

第1辆车经过后第i站剩余的人数:

F-α等待人数-上车的人数

F11α11……F1nα1n

易知:

上车人数

(当等待的人数F,超过可以车上的空位数b的时候)

下车人数:

β11=0

(p每个车上的人在每站可能下车的概率)

其中:

(车上空位数,很好的控制120%)b11=120

车上人数

(车上的人数=前面上的总人数—前面下的总人数)

显然当已知时,通过各站乘客到达分布函数可计算站上等车人数F11=F1(t11),从而可知α11,因乘客下车分布pij(t)已知,从而可导出β12=α11p12,b12=120-(α11-β12)由前面数据和F12=F2(t12)可得α12,对应的可算出s1i,依次类推我们可得到第一辆车运行状态的有关数据。

第二辆车类似的有这一状态:

但在第2辆车经过的第i站时站上所有等待的人数F21

F22……F2i……F2n分别等于:

F11α11+F21F12α12+F22……F1iα1i+F2i……

其中F2i=Fi(t2i)Fi(t1i)Fi(t)为第i站乘客到达的分布;其它类似于第1辆车的情况,依次类推可导出各车的运行情况。

以上分析是彻底解决本题的关键。

4.平均载客率

第k辆车的平均载客率为

(车上的人数/路程x)

总平均载客率:

5.平均等待时间

对于第一个车站:

γ11为本站人数达到α11时的时刻

γ21为本站人数达到α11+α21时的时刻

γ31为本站人数达到α11+α21+α31时的时刻

…………………

matlab软件能很好的用插值法得到γi1,其它的车站也有类似的定义。

设ei为第i辆车所运乘客总的等待时间,hi为第i辆车所运的总人数,由于在γ(i1)j和γij这个小时间段到站的人αij可看作平均是在

于是可得:

考察原始数据,我们定义上行方向早高峰期为6:

00-9:

00,下行方向早高峰期为7:

00-10:

00。

则早高峰期的平均等待时间为:

(总等待时间/总人数)

正常期的平均等待时间为:

正常期的平均等待时间为:

(高峰期和非高峰期,平均等待时间的权)

其中

显然乘客希望Minz1,Minz2,Minz。

6.乘客满意度

按决策论中效用函数的方式归—化,因早高峰期等待时间一般不要超过5分钟,正常期一般不要超过10分钟,可定义早高峰时段平均等待时间为0分钟时乘客满意度为1;平均等待时间大于5分钟时满意度为0,正常时段平均等待时间为0分钟时乘客满意度为1;平均等待时间大于10分钟时满意度为0,故z1,z2如下进行归一化:

早高峰期的平均等待时间归一化为:

ω1=1-(Z1-0)/(5-0)(若ω1<0则取ω1=0)

正常期的平均等待时间归一化为:

ω1=1-(Z2-0)/(10-0)(若ω2<0则取ω2=0)

ω1,ω2两者合二为一的目标函数为:

(画图)

(权)

α前面已经定义,u=(t11,t21,......,tm1)为发车时刻表向量,

7.客运公司满意度

设载客率120%时,客车公司的满意度为1;50%时满意度为0。

则:

表示客车公司的满意度,显然公司要求

8.模型

本问题为多目标规划,按多目标规划求解原则,首先将双目标合二为一。

其表达式为:

(权)

β为权重系数,由于全天最后一小时所到乘客很少,所以末班车到终点站时,其余各站所余人数的合计数近似为:

(一天不能上车的人数)

从我们的解法和实际要求,我们可看出对于全天来讲客车公司应基本把所有的乘客运完。

则对于上行方向的模型为:

由于

均为明确完整的数学表达式,所以多目标规划(线性加权法)是一个明确完整的数学模型若其上行方向的载客率为q上,下行方向的载客率为q下,则总的载客率=

若其上行方向的等待时间为V上,下行方向的等待时间为V下,则总的等待时间=

(R上为上行方向的总人数,R下为下行方向的总人数,已知数据)。

考虑到上行和下行客车循环运输的作用,和单程所花时间各为T1,T2,当一方车辆与另一方车辆衔接不上时额外增加一辆车,如此下去计算出最少所需车辆数即为所求,用计算机编程很容易实现。

9.下车分布的计算:

上表为上行方向5:

00-7:

00两个时段的数据,A13为第1站,我们希望得出乘客下车准确的分布,先看5:

00-6:

00,共上1035人,下465人,余570人在车上。

A13已下车的人数=(371/1035)*465=,则A13上车的人在A12下车的概率p12(t)=8/,A12已下车的人数=(60/1035)*465=27,A13上车的人在A11下车人数=9*-8)/-8+27)=,则在A11下车概率p13(t)=-8),A12在A11下车的人数=9*27/-8+27)=,则在A11下车的概率p23(t)=27,依次类推我们可以得到所有的下车概率。

对6:

00-7:

00乘客下车的概率分布同样可以仿照上面的计算方式,不过要首先排除上一时段上车而到本时段下车的人数干扰,我们认为上一时段上车的人是按照上一时段下车规则在本时段下车,这假设是合理的。

对其它时段依次类推,按照以上方法导出的乘客下车概率分布是忠实于原数据并且合理的概率分布。

五.模型的求解:

本模型为多目标规划,可通过非线性规划中的网格法和模矢法原理搜索,结合matlab编程求解,选取不同的权重系数β,可以得到不同满意解。

也可用简明一点的方法,如根据起始站的数据和题目要求,找到一个我们认为较满意的行车时刻表,以此为初值对此多目标规划进行模矢搜索,寻找更好的解。

当β=时,借助matlab编程计算(程序见附录二),我们找到上行方向的一组满意解:

(u)=,对应的时刻表(首发站)简写为{530},(此时的最后余下的人数z(u)=36)。

第一个数字表示在第一个时间段5:

00-中每分发一辆车;

第二个数字表示在第二个时间段6:

00-中每分发一辆车;

其余依次类推。

其客运公司的满意度为:

1(u)=,对应的载客率为:

%;

乘客的满意度为:

2(u)=,对应的平均等待时间为:

z=分钟;

当β=时,下行方向的一组满意解:

(u)=

对应的时刻表(首发站)简写为{266311}

其客运公司的满意度为:

1(u)=,对应的载客率为:

%;

乘客的满意度为:

2(u)=,对应的平均等待时间为:

z=分;因上行车次为:

235,下行车次为:

233;所以由模型所给的公式可得上下行方向合并载客率为:

%;因上行总乘客为:

57101,下行总乘客为:

51305;类似可得上下行方向合并平均等待时间为:

分;比较上下行双方时刻表,经计算得共需客车57辆,A13站放55辆车,A0站放2辆车,判断收班时起点站和终点站车数与早班时相同的方法很简单,即来回车数相同就可,我们的解来回车数分别为235和233,只须很小的调整即可,比如235减少1车,而233增1车就可。

对于双方利益调节只需改变β的值,这样就可以类似解出相应的指标(见附录一)。

六.模型的检验:

利用仿真思想对模型进行检验,得到的结果与理论计算基本相吻合,载客率为:

%;平均等待时间为:

分;所需客车为58辆。

从而验证了本模型的正确性。

七.模型的评价与推广:

1.本模型有较大的通用性,有明确完整正确的数学模型。

对乘客下车的分布推导很巧妙,通过

研究客车运行的状态推导出准确的载客率和乘客等待时间公式,此公式具有一般性。

此模型

也很容易推广,对计算影响客车公司和乘客利益的其它指标也容易推广计算,如:

2.从我们的解法中易知采集运营数据应遵守的最重要的原则是:

(1)调查数据阶段应多密度发一些客车,以保证乘客到达分布和离去分布的准确性。

若发车太少会影响乘客到达流和离去流的数据统计。

(2)按原统计时间为一小时统计人数,这样误差较大,可改为按半小时时间段统计人数。

这样能更好的反映乘客到达和离去的概率分布。

当然若选太小的时间段统计也不现实,且统计稳定性会变差。

纵观全文,可以看出我们彻底揭开了客运调度问题的神秘面纱,本模型可作为解决客运调度问题的完美经典的解法。

参考书目:

1.周义仓,《数学建模实验》,西安交通大学出版社

2.运筹学教材编写组,《运筹学》,清华大学出版社

附录一(权重不同时各满意解的情况)

β=

乘客平均等待时间(分钟)

乘客满意度

客车载客率

公司满意度

车次

平衡度

上行方向

218

下行方向

225

全天综合

443

备注

所需车数:

55起始点分布:

A0:

10A13:

45

β=

乘客平均等待时间(分钟)

乘客满意度

客车载客率

公司满意度

车次

平衡度

上行方向

262

下行方向

262

全天综合

524

备注

所需车数:

62起始点分布:

A0:

4A13:

58

β=

乘客平均等待时间(分钟)

乘客满意度

客车载客率

公司满意度

车次

平衡度

上行方向

2.712

235

下行方向

233

全天综合

468

备注

所需车数:

57起始点分布:

A0:

2A13:

55

附录二:

(主要程序)

程序一:

(上行方向的发车时刻表)

time=0;z=;peo=zeros(1,14);bb=2;b=1;peo2=zeros(1000,14);

peo1=peo2;hh=1;Mx=[];PE=[];wait=0;Tx=zeros(1,14);c=1;

x=;TX1=[5930];A13A0;jm2001T1;

forh=5:

22

b=1;TTx=TT(13*(h-5)+1:

13*(h-4),:

);

fort1=(h+z):

z:

h+1

peo=peo+P(round((t1-5)/z),:

);PE=[PE;peo];

ift1<

ifabs(t1-h-(TX1(hh)/60)*b)<=z

ifpeo

(1)<=120peo1(c,1)=peo

(1);peo

(1)=0;

elsepeo

(1)=peo

(1)-120;peo1(c,1)=120;end

Tx(c,:

)=[t1,tt+t1];c=c+1;b=b+1;

end

end

ifabs(t1-23+<=z

ifpeo

(1)<=120peo1(c,1)=peo

(1);peo

(1)=0;

elsepeo

(1)=peo

(1)-120;peo1(c,1)=120;end

Tx(c,:

)=[t1,t1+tt];

end

Tx1=[];Tx1=Tx;bb0=[];cc0=[];

Tx1=~(round((Tx-t1)*100));bb0=ceil((find(Tx1'))/14);

cc0=find(Tx1')-14*(bb0-1);

fori=1:

size(bb0,1)

bb=bb0(i);cc=cc0(i);

ifcc>=2

forjj=2:

cc

peo2(bb,cc)=peo2(bb,cc)+peo1(bb,jj-1)*TTx(jj-1,cc);.

end

ifpeo(cc)>(120-sum(peo1(bb,1:

cc-1))+sum(peo2(bb,1:

cc)))

peo1(bb,cc)=120-sum(peo1(bb,1:

cc-1))+sum(peo2(bb,1:

cc));

elsepeo1(bb,cc)=peo(cc);end

Mx(bb,cc)=sum(peo1(bb,1:

cc-1)-peo2(bb,1:

cc-1));

peo(cc)=peo(cc)-peo1(bb,cc);

end

end

time=time+z*sum(peo);

end

hh=hh+1;

end

Txa=Tx;

程序二:

(下行方向的发车时刻表)

time=0;z=;peo=zeros(1,13);bb=2;b=1;peo2=zeros(1000,13);

peo1=peo2;hh=1;Mx=[];PE=[];wait=0;Tx=zeros(1,13);c=1;

x=;TX2=[266311];A0A13;jm2001T2;

forh=5:

22

b=1;TTx=TT(12*(h-5)+1:

12*(h-4),:

);

fort1=(h+z):

z:

h+1

peo=peo+P(round((t1-5)/z),:

);PE=[PE;peo];

ift1<

ifabs(t1-h-(TX2(hh)/60)*b)<=z

ifpeo

(1)<=120peo1(c,1)=peo

(1);peo

(1)=0;

elsepeo

(1)=peo

(1)-120;peo1(c,1)=120;end

Tx(c,:

)=[t1,ttt+t1];c=c+1;b=b+1;

end

end

ifabs(t1-23+<=z

ifpeo

(1)<=120peo1(c,1)=peo

(1);peo

(1)=0;

elsepeo

(1)=peo

(1)-120;peo1(c,1)=120;end

Tx(c,:

)=[t1,t1+ttt];

end

Tx1=[];Tx1=Tx;bb0=[];cc0=[];Tx1=~(round((Tx-t1)*100));

bb0=ceil((find(Tx1'))/13);cc0=find(Tx1')-13*(bb0-1);

fori=1:

size(bb0,1)

bb=bb0(i);cc=cc0(i);

ifcc>=2

forjj=2:

cc

peo2(bb,cc)=peo2(bb,cc)+peo1(bb,jj-1)*TTx(jj-1,cc);

end

ifpeo(cc)>(120-sum(peo1(bb,1:

cc-1))+sum(peo2(bb,1:

cc)))

peo1(bb,cc)=120-sum(peo1(bb,1:

cc-1))+sum(peo2(bb,1:

cc));

elsepeo1(bb,cc)=peo(cc);end

Mx(bb,cc)=sum(peo1(bb,1:

cc-1)-peo2(bb,1:

cc-1));

peo(cc)=peo(cc)-peo1(bb,cc);

end

end

time=time+z*sum(peo);

end

hh=hh+1;

end

Txb=Tx;

程序三:

(求解发车总数)

JM2001B1;JM2001B2;

A1=0;B1=0;SM=0;SMM=zeros(1801,1);SMA=0;SMB=0;SA=SMM;SB=SMM;

fori=:

:

23

k=round((i-5)/;

iffind(~round((abs(Txa(:

14)-i)*100))B1=B1+1;end

iffind(~round((abs(Txb(:

13)-i)*100)))A1=A1+1;end

iffind(~round((abs(Txa(:

1)-i)*100)))

ifA1>=1A1=A1-1;elseSMA=SMA+1;end

end

iffind(~round((abs(Txb(:

1)-i)*100)))

ifB1>=1B1=B1-1;elseSMB=SMB+1;end

end

SA(k)=A1;SB(k)=B1;SM=SMA+SMB;SMM(k)=SM-A1-B1;

end

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1