6公交车调度.docx
《6公交车调度.docx》由会员分享,可在线阅读,更多相关《6公交车调度.docx(24页珍藏版)》请在冰点文库上搜索。
6公交车调度
公交车调度
第十二组(原十三组)李江南江云胜樊明瑾
摘要
本文建立了一个关于公交车调度的仿真模型,通过绘制N-S流程图,在matlab7.1软件中,应用计算机仿真得到公交车公司调度时刻表以及总发车459车次,其中上行233车次,下行226车次,由于每辆车从始发站到终点站用时44(分),经计算机搜索得,在高峰期公交公司一共需要49(辆)车,其中上行32(辆),下行17(辆)。
某车次经过某站点时,若未达到公交公司的要求,则此次在此站点不满意。
由此定义公交公司满意度
;
根据分析结果求得公司满意度
。
又在程序仿真时,乘客的要求(乘客候车时间一般不要超过10分钟,早高峰时一般不要超过5分钟)为约束条件之一,故认为充分考虑到了乘客的要求,即所得结果对于乘客的满意度为100%。
本模型对于完善城市交通环境、改进市民出行状况、提高公交公司的经济和社会效益,都具有重要意义。
关键字:
调度方案发车时刻表计算机仿真满意度
问题重述
公共交通是城市交通的重要组成部分,作好公交车的调度对于完善城市交通环境、改进市民出行状况、提高公交公司的经济和社会效益,都具有重要意义。
下面考虑一条公交线路上公交车的调度问题,其数据来自我国一座特大城市某条公交线路的客流调查和运营资料。
该条公交线路上行方向共14站,下行方向共13站,第2-3页给出的是典型的一个工作日两个运行方向各站上下车的乘客数量统计。
公交公司配给该线路同一型号的大客车,每辆标准载客100人,据统计客车在该线路上运行的平均速度为20公里/小时。
运营调度要求,乘客候车时间一般不要超过10分钟,早高峰时一般不要超过5分钟,车辆满载率不应超过120%,一般也不要低于50%。
试根据这些资料和要求,为该线路设计一个便于操作的全天(工作日)的公交车调度方案,包括两个起点站的发车时刻表;一共需要多少辆车;这个方案以怎样的程度照顾到了乘客和公交公司双方的利益等。
如何将这个调度问题抽象成一个明确、完整的数学模型,指出求解模型的方法;根据实际问题的要求,如果要设计更好的调度方案,应如何采集运营数据。
基本假设
(1)每一班车都是从始发站发车;
(2)每辆公交车按照发车时刻表及到达次序顺序发车,循环往返地运行;
(3)公交车在线路上均匀行驶,忽略中间站点的停留时间,速度
;
(4)不考虑公交车在行驶途中出现的塞车或抛锚等意外现象;
(5)各站点乘客排队等候乘车,乘客不会乘坐其他线路公交车,在没能搭乘第一辆公交车时,可搭乘下一辆公交车;
(6)各站点间的路况相同;
(7)公交车的一个工作日时段为5:
00-23:
00。
符号说明
:
在T时刻之前第i站上车总人数之和函数,i=0,1,…,13;
:
第i站第j时段所统计的上车人数,j=1,2,…,18;
:
T时刻在间隔t时间内的上车人数;
:
在T时刻之前第i站下车总人数之和函数;
:
第i站第j时段所统计的下车人数,j=1,2,…,18;
:
T时刻在间隔t时间内的下车人数。
其中(j=1为5:
00~6:
00,j=2为6:
00~7:
00)
:
到达各站所需的时间;
问题分析
(1)运营调度要求标准载客100人,满载率不应超过120%,一般也不低于50%,即车上平均人数
这是公司对模型的客观要求。
如何乘客数大于120人,则剩下的候车乘客只能坐下一班车。
(2)通过题给的数据表格可看出在在一个时间段内上下车总人数不同,这主要是由乘车高低峰时期与乘客下车时段构成时差,从而导致上一时段大量上车人员,而在下一时段才下车,使得在一段时间内两者数量上有很大差别。
(3)所建模型要综合考虑乘客和公交车公司双方的利益。
乘客希望在一般时期侯车时间不超过10min,在高峰期候车时间不超过5min,这就取决于发车时间间隔t,乘客更希望坐上等车站点的第一班车,这也就要求t越短越好。
但如果发车过于频繁,会使公交车公司的利益受损,因为每班车的车座没有充分利用,需要所建的模型要能使两方均满意,这就涉及到满意度的问题。
(4)模型求解之后,要列出该公交车公司的发车时间表。
但因所给数据较多,便可考虑应用计算机仿真实验,得到上下行时的发车时刻表,进而得到该公交车公司的公交车总数量。
表一是由题给数据所得到的在不同时段上、下行路线的上下车总人数。
表一
时间段
上行时上车人数
上行时下车人数
下行时上车人数
下行时下车人数
5:
00-6:
00
1035
465
50
50
6:
00-7:
00
6444
5276
2018
1537
7:
00-8:
00
10713
10909
5489
5905
8:
00-9:
00
5874
6247
6083
6116
9:
00-10:
00
3471
3889
3467
3478
10:
00-11:
00
2599
2865
2215
2344
11:
00-12:
00
2953
2860
1876
1865
12:
00-13:
00
2569
2563
1590
1517
13:
00-14:
00
2259
2066
1682
1583
14:
00-15:
00
1935
1962
1937
1845
15:
00-16:
00
1925
1972
2507
2336
16:
00-17:
00
4633
4471
4292
4188
17:
00-18:
00
6007
6215
7136
6895
18:
00-19:
00
2096
2398
4978
5422
19:
00-20:
00
1051
1166
2182
2234
20:
00-21:
00
863
865
1582
1643
21:
00-22:
00
617
741
1540
1601
22:
00-23:
00
57
171
671
756
同时,由表一可得不同时段上下车总人数的分布柱状图。
而由表一不难看出,上下车总人数在各自路线上存在对应关系,故现只给出各路线上不同时段的上车总人数的柱状分布图。
如下图一、图二:
图一
图二
由以上图表可得,上行路线上的乘车高峰时间段为7:
00-8:
00,高峰期乘车人数为
;下行路线上的乘车高峰时间段为17:
00-18:
00,高峰期乘车人数为
。
又
,则在求解公交车公司运营所需车辆时,只需车辆在上行高峰期满足需求即可。
模型建立
由题给数据可得首发公交车到达各站点所需的时间,即
。
见表二
表二单位:
(分钟)
上行方向:
A13开往A0
下行方向:
A0开往A13
站名
到达各站所需的时间
站名
到达各站所需时间
A13
0
A0
0
A12
4.8
A2
4.68
A11
6.3
A3
7.68
A10
9.3
A4
9
A9
11.49
A5
12.6
A8
17.61
A6
15.51
A7
21.39
A7
22.38
A6
28.26
A8
26.28
A5
31.26
A9
32.28
A4
34.86
A10
34.47
A3
36.06
A11
37.47
A2
39.06
A12
38.97
A1
42.15
A13
43.83
A0
43.74
分析题中给的数据可得公交车到达各站点所需的时间,构造车在不同时段的上下车人数关于时间t(T时刻,间隔时间为t)的函数。
从始发站出发的班车离开第i站时,车上载的乘客人数为该车经过前面各站时上车及下车的人数之差的累加。
通过分析,知道对于该问题需建立上车及下车人数关于时间t的函数,在时间间隔t内公交车在第i站要上车的人数为:
在时间间隔t内公交车在第i站要下车的人数为:
T时刻,间隔t从始发站出发的班车离开第i站时,车上载的乘客人数为:
其中在T时刻之前,第i站上车及下车总人数之和与时间间隔t的关系分别如下:
:
首先判断该时段是否处于高峰期,若是,则给定发车间隔的初值为5min。
否则为10min。
。
然后判断在此发车时间间隔内公交车的人数在各站点是否超过120。
若是,则减小这一发车时间间隔,否则转入考虑下一发车时刻,由此可画出公交车运营调度流程图,见下图,进而通计算机仿真来完成此过程。
公交车调度的仿真流程图如下:
模型求解
在MATLAB中按照流程图进行编程仿真,得到上行及下行的公交车调度时刻表如下:
上行发车时刻表(表三)
5:
08
5:
16
5:
24
5:
34
5:
44
5:
53
5:
59
6:
02
6:
04
6:
06
6:
09
6:
11
6:
14
6:
16
6:
18
6:
21
6:
23
6:
26
6:
28
6:
30
6:
33
6:
35
6:
38
6:
40
6:
42
6:
45
6:
47
6:
49
6:
52
6:
54
6:
56
6:
58
7:
00
7:
01
7:
03
7:
04
7:
05
7:
07
7:
08
7:
10
7:
11
7:
13
7:
14
7:
15
7:
17
7:
18
7:
19
7:
21
7:
22
7:
24
7:
25
7:
27
7:
28
7:
29
7:
31
7:
32
7:
34
7:
35
7:
36
7:
38
7:
39
7:
40
7:
42
7:
43
7:
45
7:
46
7:
47
7:
49
7:
50
7:
52
7:
53
7:
55
7:
57
7:
58
8:
00
8:
03
8:
05
8:
08
8:
10
8:
13
8:
16
8:
18
8:
21
8:
24
8:
26
8:
29
8:
31
8:
34
8:
37
8:
39
8:
42
8:
44
8:
47
8:
50
8:
52
8:
55
8:
58
9:
02
9:
07
9:
11
9:
16
9:
21
9:
25
9:
30
9:
35
9:
39
9:
44
9:
49
9:
54
9:
58
10:
04
10:
10
10:
16
10:
22
10:
28
10:
34
10:
40
10:
46
10:
52
10:
57
11:
03
11:
08
11:
13
11:
19
11:
24
11:
29
11:
34
11:
40
11:
45
11:
50
11:
56
12:
01
12:
07
12:
13
12:
19
12:
25
12:
31
12:
37
12:
43
12:
49
12:
55
13:
02
13:
09
13:
16
13:
22
13:
29
13:
36
13:
43
13:
50
13:
57
14:
05
14:
13
14:
21
14:
29
14:
37
14:
45
14:
53
15:
02
15:
10
15:
18
15:
26
15:
34
15:
43
15:
50
15:
57
16:
01
16:
04
16:
08
16:
11
16:
14
16:
18
16:
21
16:
24
16:
28
16:
31
16:
34
16:
37
16:
41
16:
44
16:
47
16:
51
16:
54
16:
57
17:
00
17:
03
17:
05
17:
08
17:
10
17:
13
17:
15
17:
18
17:
20
17:
23
17:
25
17:
28
17:
30
17:
33
17:
35
17:
38
17:
40
17:
43
17:
45
17:
48
17:
50
17:
53
17:
56
18:
00
18:
08
18:
16
18:
24
18:
32
18:
40
18:
48
18:
56
19:
06
19:
16
19:
26
19:
36
19:
46
19:
56
20:
06
20:
16
20:
26
20:
36
20:
46
20:
56
21:
06
21:
16
21:
26
21:
36
21:
46
21:
56
22:
06
下行发车时刻表(表四)
5:
01
5:
19
5:
30
5:
40
5:
49
6:
00
6:
06
6:
13
6:
20
6:
27
6:
34
6:
41
6:
46
6:
51
6:
56
7:
01
7:
03
7:
06
7:
08
7:
11
7:
13
7:
16
7:
19
7:
21
7:
24
7:
27
7:
29
7:
32
7:
34
7:
37
7:
40
7:
42
7:
45
7:
47
7:
50
7:
52
7:
55
7:
57
8:
00
8:
02
8:
04
8:
06
8:
09
8:
11
8:
13
8:
15
8:
17
8:
02
8:
22
8:
24
8:
26
8:
28
8:
31
8:
33
8:
35
8:
37
8:
39
8:
42
8:
44
8:
46
8:
48
8:
50
8:
53
8:
55
8:
57
9:
00
9:
04
9:
08
9:
11
9:
15
9:
19
9:
23
9:
27
9:
31
9:
35
9:
39
9:
43
9:
47
9:
50
9:
55
9:
59
10:
05
10:
11
10:
18
10:
24
10:
31
10:
37
10:
44
10:
50
10:
57
11:
04
11:
11
11:
19
11:
26
11:
33
11:
40
11:
48
11:
55
12:
03
12:
11
12:
02
12:
29
12:
37
12:
46
12:
55
13:
03
13:
11
13:
19
13:
27
13:
35
13:
43
13:
51
13:
59
14:
06
14:
13
14:
20
14:
27
14:
34
14:
41
14:
48
14:
55
15:
01
15:
07
15:
12
15:
18
15:
23
15:
29
15:
34
15:
40
15:
45
15:
51
15:
56
16:
00
16:
04
16:
07
16:
10
16:
13
16:
16
16:
19
16:
23
16:
26
16:
29
16:
32
16:
36
16:
39
16:
42
16:
45
16:
48
16:
52
16:
55
16:
57
17:
00
17:
02
17:
04
17:
06
17:
08
17:
10
17:
11
17:
13
17:
15
17:
17
17:
19
17:
21
17:
23
17:
25
17:
27
17:
28
17:
30
17:
32
17:
34
17:
36
17:
38
17:
40
17:
42
17:
44
17:
46
17:
48
17:
49
17:
51
17:
53
17:
55
17:
57
17:
59
18:
02
18:
05
18:
08
18:
11
18:
14
18:
17
18:
19
18:
22
18:
25
18:
28
18:
31
18:
34
18:
37
18:
40
18:
43
18:
46
18:
49
18:
51
18:
55
18:
58
19:
03
19:
09
19:
16
19:
22
19:
29
19:
35
19:
42
19:
48
19:
55
20:
02
20:
12
20:
21
20:
30
20:
39
20:
48
20:
58
21:
07
21:
16
21:
25
21:
35
21:
44
21:
53
22:
01
在计算机中编程求解所得的上、下行发车时刻表即为公交车公司进行调度的依凭。
其中,计算所得数据会出现的小数部分,考虑到满足乘客的利益,公交车发车只可早不可迟,故作了舍去小数部分取整的处理。
以上两表即为处理后的最终发车时刻表。
在对公交车公司所需车辆数的求解时,由问题分析中已得出:
公交车公司运营所需车辆数,即为满足上行高峰期运行所需的车辆数。
上行时,客车从发车到终点站总路程
,行车平均速度为
,则上行总用时
;同理,下行时,客车从发车到终点站总路程
,用时
。
则任意班次的公交车从某一时刻出发,需经过44分钟到达终点站。
在这段时间内发出的公交车仍未到达终点站,公交车公司所需的车辆数即为最高峰时在此时间段运行线路上的车辆数(包括上行、下行),再由发车时间表知在7:
00—8:
00发车数最多。
通过搜索发车时刻表可得:
在7:
00—7:
44达最大值49(辆),其中上行发车数为32(辆),下行发车数为17(辆),即一共需要49辆车。
按常理,乘客等车时间越短,则其对车辆调度的满意度就越高,相应的公交车发车时间间隔就应越短;而公交公司则希望每辆公交车的满载率高,满载率高则对应的发车时间间隔就应越长。
由于本模型在建立和仿真求解时,严格要求了乘客候车时间在早高峰期不超过5分钟,平时候车时间不超过10分钟。
故此,我们认为充分考虑到了乘客的利益,其满意度为100%。
同时,定义公交车公司的满意度为:
;
而由题意可知,公交公司要求,车辆满载率不应超过120%,一般也不要低于50%。
故认为,每辆车某次经过某站点时,当满载率低于50%时,公交公司此次在此站点不满意。
由仿真程序所得时刻表对应两条线路上的满意站点总数为4879,站点总数为5986;故公交车公司总体满意度为
。
结果分析
1.全天运行共需发送459车次,上行233车次,下行226车次,由表一知:
上行人数多于下行人数,发车次数较下行发车次数多,符合实际情况
2.由发车时间表知在上行高峰期(7:
00-8:
00)发车时间间隔为1-2分钟,其它时间段发车时间间隔5-10分钟,下行高峰期(17:
00-18:
00)发车时间间隔为2-3分钟,其它时间段发车时间一般间隔5-15分钟,即在客流高峰期调度最多车辆来满足乘客需求,符合客观实际意义。
模型评价及改进
1.此模型将每个时段看作是连续的,先运用计算机仿真得到上行及下行时的发车时刻表,然后通过所得结果,考虑在高峰时段车辆全部发出,进而得到总公交车数量,使问题简化。
2.此模型是从乘客的角度考虑的,乘客的满意度为100%,而公司的满意度为
。
故此公交车调度方案相对公司来说有些不利,两者满意度不相同。
3.由于简化模型时,没有考虑客车在每站的停留时间,对实际情况的求解有较小影响,如能结合每站的上下车人数情况,拟定合适的客车停留时间再进行求解则更符合实际问题。
4.题目表中数据时在典型的一个工作日两个运行方向各站上下车的乘客数量统计,由于采样数据的随机性和局限性,并不能代表整月,甚至整年的乘客数量分布规律,因此次调度方案的使用对于该公交路线同样具有局限性,应该结合全年乘客数量统计规律,结合该仿真程序,便能制定出每月甚至每天的调度方案,再结合实际情况对调度方案进行适时,适量调整,以最大限的满足公交公司与乘客的利益。
5.题给数据是以一个小时为采集时间间隔,当相邻两个采集时间间隔的人数相差很悬殊时,影响到问题的求解的精确性。
故可在采集数据时,在乘客人数变化较大的时间适当将采集时间间隔缩短,比如以半小时为一个采集时间间隔。
参考文献
赫孝良,戴永红,周义仓著.数学建模竞赛-赛题简析与论文点评.西安:
西安交通大学出版社,2002.6
附录
T=0;
t=0;
s=ones(1,300)
whileT<1030
forj=1:
300;
ifT>=100&T<=280
t=5;
elset=10;
end
M=B(T,t);
whileM>100
t=t-0.1;
M=B(T,t);
end
T=T+t
s(1,j)=5+T/60
end
s
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
functionP1=B(T,t)
fori=1:
14
%fori=1:
13
ti=[04.86.39.311.4917.6121.3928.2631.2634.8636.0639.0642.1543.74];
%ti=[04.687.68912.615.5122.3826.2832.2834.4737.4738.9743.83];
pu1(i)=fu(i,T+t+ti(i))-fu(i,T+ti(i));
pd1(i)=fd(i,T+t+ti(i))-fd(i,T+ti(i));
end
pu1;
pd1;
i=1:
14;
%i=1:
13;
x(i)=pu1(i)-pd1(i);
b0
(2)=x
(1)+x
(2)+x(3)+x(4)+x(5)+x(6)+x(7)+x(8)+x(9)+x(10)+x(11)+x(12)+x(13);
b0(3)=x
(1)+x
(2)+x(3)+x(4)+x(5)+x(6)+x(7)+x(8)+x(9)+x(10)+x(11)+x(12);
b0(4)=x
(1)+x
(2)+x(3)+x(4)+x(5)+x(6)+x(7)+x(8)+x(9)+x(10)+x(11);
b0(5)=x
(1)+x
(2)+x(3)+x(4)+x(5)+x(6)+x(7)+x(8)+x(9)+x(10);
b0(6)=x
(1)+x
(2)+x(3)+x(4)+x(5)+x(6)+x(7)+x(8)+x(9);
b0(7)=x
(1)+x
(2)+x(3)+x(4)+x(5)+x(6)+x(7)+x(8);
b0(8)=x
(1)+x
(2)+x(3)+x(4)+x(5)+x(6)+x(7);
b0(9)=x
(1)+x
(2)+x(3)+x(4)+x(5)+x(6);
b0(10)=x
(1)+x
(2)+x(3)+x(4)+x(5);
b0(11)=x
(1)+x
(2)+x(3)+x(4);
b0(12)=x
(1)+x
(2)+x(3);
b0(13)=x
(1)+x
(2);
b0(14)=x
(1);
b0=b0(i);
P1=max(b0(i));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
functionu0=fu(i,t)
%U=xlsread('d:
\MyDocuments\work06\001.xls');
U=[37119903626206411869239578737796256351493201169135030420919
603766343222051511811411411041242993791246450373
52333528305166120157140103108982403111075543323
43256447235147108133108848282199230894636262
765899484772812152542151861621