公交车排班模型.docx
《公交车排班模型.docx》由会员分享,可在线阅读,更多相关《公交车排班模型.docx(40页珍藏版)》请在冰点文库上搜索。
公交车排班模型
公交车排班模型
公交车排班模型中的线性规划求解问题
摘要
本文研究的是在满足各时段(早高峰、日间平峰、晚高峰,晚平峰四个时段)时间,公交车以一定间隔连续发车的条件下,排班的最优问题。
根据各小题的约束条件,用运筹学中的线性规划知识建立模型,再利用Lingo求解,分别算出所需公交车总数以及单班车、双班车各需求量,制定排班的优化方案。
对于题目条件,我们有三个设想,其一,根据现实生活经验可知,公交车发车间隔相对固定,方便市民安排计划候车出行;其二,从简化模型的角度考虑,每辆车的司机固定,即司机间不允许换车开车;其三,单班车一天不超过5个班次,即认定为所有单班车一天总班次相加不超过5班。
对于题目一,从各班次发车间隔相等这一假定条件出发,要使在早高峰时段运行的车辆数最少,只需发车间隔尽可能大,于是我们取早的最大发车间隔5分钟来安排发车,由于该题无对单班车数量的其他要求,我们假定单班车在早高峰时段安排2辆,同时考虑到车辆要完成一个班次的运行后才可进行下一班次,建立相关模型,用Lingo编程求解得早高峰时段总共运行24个班次,所需的最少公交车数为16辆。
对于问题二,在已有模型的基础上,综合考虑全天的工作安排,发车间隔仍取每个阶段的最大发车间隔,同样的,考虑到单班车只在高峰期运行,在早高峰运行2到3个班次,在晚高峰运行2到3个班次,且每天运行不超过五个班次,,根据资源利用的最大化原则,我们知道单班车数不能超过3辆,这里我们仍假设单班车数为2辆,根据题目要求,我们要使每辆公交车的工作时间和上下午司机的工作时间尽可能均匀,且要使车辆的利用率得到最大,根据以上条件建立公交车排班模型,用Lingo编程求解得全天总共运行120个班次,所需的最少公交车数为16辆。
具体公交车排班计划表见表2—1。
对于问题三,该题约束了单班车数量不少于3辆,由问题二的分析既得单班车数量为3辆,改变问题二模型中的相关参数,用Lingo编程求解得全天总共运行120个班次,所需的最少公交车数为16辆。
具体公交车排班计划表见表3—1。
对于问题四,进行调整后,全天共六个时段,并且增加了限制条件,根据问题二的方法,增加双班车数量、餐点和换班时间的约束,用Lingo编程求解得全天总共运行191个班次,所需的最少公交车数为22辆。
关键词:
公交车排班线性规划Lingo建模贝叶斯算法
1
2
......
......
......
......
......
......
......
汇总信息:
总车辆数(),总双班车数量(),总单班车数量(),所有车的总班次数()
注:
本表格可以根据需要增减行数(第一行和最后一行不能删除),不能增减列数。
表3调整后的X市2路公交车行车信息表
时段性质
时段开始时间
时段结束时间
单程时间
(分钟)
发车间隔
(分钟)
最短停站时间
(分钟)
早平峰时段
04:
30
05:
00
70
7.0±2.0
10
早平峰时段
05:
00
06:
00
70
4.5±1.5
10
早高峰时段
06:
00
08:
00
75
3.0±1.0
10
日间平峰时段
08:
00
16:
00
75
4.5±1.5
10
晚高峰时段
16:
00
18:
00
75
3.0±1.0
10
晚平峰时段
18:
00
22:
15
70
6.5±2.0
10
二、问题分析
公交车排班模型中的四个问题的处理要分两个步骤进行:
第一,确定该时段时间以及发车间隔,并根据相关假设,确定约束条件;第二,在最少公交车总数已确定的条件下,算出单班车、双班车数的最优解及排班方式。
具体分析如下:
四个问题均是典型的线性规划模型及求解的问题。
故该问题的求解步骤如下:
首先应确定该问题的目标函数,再确定决策变量,并表示出所有的约束条件,最后用Lingo编程求解即可。
三、模型假设
1.公交车车速恒定,平稳行驶,途中没有堵车以及意外发生;
2.以分钟作为最小时间单位;
3.各班次的发车间隔都相等;
4.每辆车的司机固定,即司机间不允许换车行驶;
5.单班车一天不超过5个班次认为所有单班车一天总班次相加不超过5班;
6.在高峰、平峰交接点临近时,若所剩余时间已不足于当前时段的发车间隔,则按照下一时段的发车间隔来排班。
四、符号说明
1,
:
每个时段公交车发车总数,i=1,2,3,4,5,6;
2,
:
每个时段公交车单班车发车总数,i=1,2,3,4,5,6;
3,
:
每个时段公交车双班车发车总数,i=1,2,3,4,5,6;
4,
:
全天公交车发车班次总数;
5,
:
每个时段公交车发车班次数,i=1,2,3,4,5,6;
6,
:
每个时段公交车发车间隔,i=1,2,3,4,5,6;
7,
:
每个时段时长,i=1,2,3,4,5,6;
五、模型的建立与求解
从所要解决的的问题和对问题所做的假设出发,本文对问题一建立了模型Ⅰ,求得早高峰时段所需的最少公交车数为16辆;对问题二建立了模型Ⅱ,求得全天所需最少公交车数为16辆;对问题三建立了模型Ⅲ,求得全天所需最少公交车数为16辆;对问题四建立了模型Ⅳ,求得全天所需最少公交车数为22辆。
问题一的求解:
模型Ⅰ的一般表达式:
此模型中,以早高峰公交车发车总数
为目标函数,以早高峰单班车数
和早高峰双班车数
为决策变量,以每车单程时间处于发车总数与发车间隔的乘积这一区间为约束条件,建立最优化模型。
由于早高峰的发车间隔为4
1(分钟),根据假设3,各班次的发车间隔都相等,因此在早高峰的2个小时内,每辆公交车的发车间隔都相同,为3,4,5分钟中的一个,故设其为
,且由题干知,单班车通常要在早高峰时段跑2-3个班次,相对于双班车没有班次限制这一优点,单班车较浪费资源,故我们假定早高峰时段单班车排班尽可能少,仅排2个班次,即
=2。
经过上述分析,我们建立以下模型:
目标函数:
约束条件:
模型求解:
编写程序,运用Lingo求解得出
,
,
,根据整数约束显然可知,间隔时间为5分钟,早高峰时段所需的最少公交车数为16辆,其中单班车2辆,双班车14辆。
程序及运行结果见附录1。
问题二的求解:
模型Ⅱ的一般表达式:
此模型中,根据全天四个时段时长的不同,并以各班次发车间隔相等这一假定条件,以全天公交车发车班次总数
为目标函数,以四个时段的发车班次
为决策变量,以每个时段时长处于发车总数与发车间隔的乘积这一区间为约束条件,建立最优模型。
问题二建立在问题一的基础上,由于在问题一中我们已经求得早高峰这一时段所需的最少公交车数为16辆(其中2辆单班车,14辆双班车),因此,我们可以提出一可行想法:
能否运用这16辆公交车合理规划,完成一天的乘客运输任务?
为解决这一问题,我们先假设能够用这16辆公交车进行全天的排班,那么只要能够求出各时段的班次数,进而得全天的班次数后,我们就能对全天进行排班。
经过上述分析,我们建立如下模型:
目标函数:
约束条件:
模型求解:
编写程序,运用Lingo求解得出早高峰间隔时间为5分钟,早平峰间隔9分钟,晚高峰间隔时间6分钟,晚平峰间隔7分钟,全天所需的最少公交车数为16辆,其中单班车2辆,双班车14辆,程序及运行结果见附录2。
对于lingo求解的结果进行分析,我们可以看到,最后所求得的最小班次为119班,然而,在排班的最后,我们可以发现,编号为8的公交车倒数第二个班次返回终点的时间为20:
29,然而截止晚平峰截止时间为20:
30,根据题干要求:
末班车的发车时间,可以在原有发车间隔的基础上调整2分钟(±2分钟),而晚平峰发车间隔为2-7分钟,因此,编号为8的公交车末班车在20:
30分发车,因此在原有的119个班次上再加一班,为120班。
表2—1X市2路公交车排班计划表
车辆编号
车辆性质(填写单班或双班)
起点发车时间
返回终点时间
每辆车的总的班次
上午司机班次
(仅双班车需要填写)
下午司机班次
(仅双班车需要填写)
1
双班车
6:
00
7:
20
8
4
4
7:
20
8:
40
8:
54
10:
04
11:
00
12:
10
13:
06
14:
16
15:
12
16:
22
16:
57
18:
17
18:
25
19:
40
2
双班车
6:
05
7:
25
8
4
4
7:
25
8:
45
9:
03
10:
13
11:
09
12:
19
13:
15
14:
25
15:
21
16:
31
17:
03
18:
23
18:
32
19:
47
3
双班车
6:
10
7:
30
8
4
4
7:
30
8:
50
9:
12
10:
22
11:
18
12:
28
13:
24
14:
34
15:
30
16:
40
17:
09
18:
29
18:
39
19:
54
4
双班车
6:
15
7:
35
8
4
4
7:
35
8:
55
9:
21
10:
31
11:
27
12:
37
13:
33
14:
43
15:
39
16:
49
17:
15
18:
35
18:
46
20:
01
5
双班车
6:
20
7:
40
8
4
4
7:
40
9:
00
9:
30
10:
40
11:
36
12:
46
13:
42
14:
52
15:
48
16:
58
17:
21
18:
41
18:
53
20:
08
6
双班车
6:
25
7:
45
9
4
5
7:
45
9:
05
9:
39
10:
49
11:
45
12:
55
13:
51
15:
01
15:
57
17:
07
17:
27
18:
47
19:
00
20:
15
20:
17
21:
32
7
双班车
6:
30
7:
50
9
4
5
7:
50
9:
10
9:
48
10:
58
11:
54
13:
04
14:
00
15:
10
16:
03
17:
23
17:
33
18:
53
19:
07
20:
22
20:
24
21:
39
8
双班车
6:
35
7:
55
9
4
5
7:
55
9:
15
9:
57
11:
07
12:
03
13:
13
14:
09
15:
19
16:
09
17:
29
17:
39
18:
59
19:
14
20:
29
20:
30
21:
45
9
双班车
6:
40
8:
00
8
4
4
8:
00
9:
10
10:
06
11:
16
12:
12
13:
22
14:
18
15:
28
16:
15
17:
35
17:
45
19:
07
19:
21
20:
36
10
双班车
6:
45
8:
05
8
4
4
8:
09
9:
19
10:
15
11:
25
12:
21
13:
31
14:
27
15:
37
16:
21
17:
41
17:
51
19:
11
19:
28
20:
43
11
双班车
6:
50
8:
10
8
4
4
8:
18
9:
28
10:
24
11:
34
12:
30
13:
40
14:
36
15:
46
16:
27
17:
47
17:
57
19:
17
19:
35
20:
50
12
双班车
6:
55
8:
15
8
4
4
8:
27
9:
37
10:
33
11:
43
12:
39
13:
49
14:
45
15:
55
16:
33
17:
53
18:
04
19:
19
19:
42
20:
57
13
双班车
7:
00
8:
20
8
4
4
8:
36
9:
46
10:
42
11:
52
12:
48
13:
58
14:
54
16:
04
16:
39
17:
59
18:
11
19:
26
19:
49
21:
04
14
双班车
7:
05
8:
25
8
4
4
8:
45
9:
55
10:
51
12:
01
12:
57
14:
07
15:
03
16:
13
16:
45
18:
05
18:
18
19:
33
19:
56
21:
11
15
单班车
7:
10
8:
30
2
16:
51
18:
11
16
单班车
7:
15
8:
35
1
汇总信息:
总车辆数(16),总双班车数量(14),总单班车数量
(2),所有车的总班次数(120)
问题三的求解:
模型Ⅲ的一般表达式:
此模型中,由于仍是求全天公交车最少的数量,因此基本的思想方法与问题二相同,但根据题干给出的限制条件,模型需要进行修改。
问题三建立在问题二的基础上,由于在问题二中我们已经求得全天所需的最少公交车数为16辆(其中2辆单班车,14辆双班车),但是,由资源约束可知,单班车一天行驶班次不超过5次,通常要求在早高峰跑2-3个班次,晚高峰2-3个班次,因此可知,单班车数量需小于4辆(若恰好4辆,全部利用的最小班次也是各开一班,不满足跑2-3个班次),而由题干条件可知单班车需不少于3辆,那么显然单班车的数量即限制为3辆。
而双班车的数量是否还是13辆,我们则需要再次建模确定,不妨仍旧考虑早高峰期间的公交车排班。
经过上述分析,我们建立如下模型:
目标函数:
约束条件:
模型求解:
编写程序,运用Lingo求解得出
,
,
,根据整数约束显然可知,间隔时间为5分钟,早高峰时段所需的最少公交车数为16辆,其中单班车3辆,双班车13辆。
程序及运行结果见附录3。
因此,我们可以做出假设:
能够用这16辆公交车进行全天的排班,那么只要能够求出各时段的班次数,进而得全天的班次数后,我们就能对全天进行排班。
而排班的班次模型代码则与问题二一致(详见附录二)。
对于lingo求解的结果进行分析,我们可以看到,最后所求得的最小班次为119班,然而,在排班的最后,我们可以发现,编号为8的公交车倒数第二个班次返回终点的时间为20:
29,然而截止晚平峰截止时间为20:
30,根据题干要求:
末班车的发车时间,可以在原有发车间隔的基础上调整2分钟(±2分钟),而晚平峰发车间隔为2-7分钟,因此,编号为8的公交车末班车在20:
30分发车,因此在原有的119个班次上再加一班,为120班。
表3—1X市2路公交车排班计划表
车辆编号
车辆性质(填写单班或双班)
起点发车时间
返回终点时间
每辆车的总的班次
上午司机班次
(仅双班车需要填写)
下午司机班次
(仅双班车需要填写)
1
双班车
6:
00
7:
20
9
5
4
7:
20
8:
40
8:
45
9:
55
10:
42
11:
52
12:
39
13:
49
14:
36
15:
46
16:
21
17:
41
17:
45
19:
07
19:
14
20:
29
2
双班车
6:
05
7:
25
9
5
4
7:
25
8:
45
8:
54
10:
04
10:
51
12:
01
12:
48
13:
58
14:
45
15:
55
16:
27
17:
47
17:
51
19:
11
19:
21
20:
36
3
双班车
6:
10
7:
30
9
5
4
7:
30
8:
50
9:
03
10:
13
11:
00
12:
10
12:
57
14:
07
14:
54
16:
04
16:
33
17:
53
17:
57
19:
17
19:
28
20:
43
4
双班车
6:
15
7:
35
9
4
5
7:
35
8:
55
9:
12
10:
22
11:
09
12:
19
13:
06
14:
16
15:
03
16:
13
16:
39
17:
59
18:
04
19:
19
19:
35
20:
50
5
双班车
6:
20
7:
40
9
4
5
7:
40
9:
00
9:
21
10:
31
11:
18
12:
28
13:
15
14:
25
15:
12
16:
22
16:
45
18:
05
18:
11
19:
26
19:
42
20:
57
6
双班车
6:
25
7:
45
9
4
5
7:
45
9:
05
9:
30
10:
40
11:
27
12:
37
13:
24
14:
34
15:
21
16:
31
16:
51
18:
11
18:
18
19:
33
19:
49
21:
04
7
双班车
6:
30
7:
50
9
4
5
7:
50
9:
10
9:
39
10:
49
11:
36
12:
46
13:
33
14:
43
15:
30
16:
40
16:
57
18:
17
18:
25
19:
40
19:
56
21:
11
8
双班车
6:
35
7:
55
9
4
5
7:
55
9:
15
9:
48
10:
58
11:
45
12:
55
13:
42
14:
52
15:
39
16:
49
17:
03
18:
23
18:
32
19:
47
20:
03
21:
18
9
双班车
6:
40
8:
00
9
4
5
8:
00
9:
10
9:
57
11:
07
11:
54
13:
04
13:
51
15:
01
15:
48
16:
58
17:
09
18:
29
18:
39
19:
54
20:
10
21:
25
10
双班车
6:
45
8:
05
9
4
5
8:
09
9:
19
10:
06
11:
16
12:
03
13:
13
14:
00
15:
10
15:
57
17:
07
17:
15
18:
35
18:
46
20:
01
20:
17
21:
32
11
双班车
6:
50
8:
10
9
4
5
8:
18
9:
28
10:
15
11:
25
12:
12
13:
22
14:
09
15:
19
16:
03
17:
23
17:
27
18:
47
18:
53
20:
08
20:
24
21:
39
12
双班车
6:
55
8:
15
9
4
5
8:
27
9:
37
10:
24
11:
34
12:
21
13:
31
14:
18
15:
28
16:
09
17:
29
17:
33
18:
53
19:
00
20:
15
20:
30
21:
45
13
双班车
7:
00
8:
20
8
4
4
8:
36
9:
46
10:
33
11:
43
12:
30
13:
40
14:
27
15:
37
16:
15
17:
35
17:
39
18:
59
19:
07
20:
22
14
单班车
7:
05
8:
25
2
17:
21
18:
41
15
单班车
7:
10
8:
30
1
16
单班车
7:
15
8:
35
1
汇总信息:
总车辆数(16),总双班车数量(13),总单班车数量(3),所有车的总班次数(120)
问题四的求解:
模型Ⅳ的一般表达式:
此模型中,由于仍是求全天公交车最少的数量,因此基本的思想方法与问题二相同,但根据题干给出的限制条件,模型需要进行修改,下面简述约束条件的一些限制:
硬约束:
①行车时间应不超过8小时;
②双班车辆运行5班次以后,上午、下午班司机进行换班,换班时间最少为20分钟(含最短停站时间)。
软约束:
①任一班次驾驶段时间长度不可超过相应班型最短和最长工作时间长度;
②所有双班车司机都安排吃饭(早餐和晚餐),每餐饭需要20分钟用餐时间。
早餐8:
00——10:
00;晚餐18:
00——20:
00;
③用餐必须在规定的时间范围内完成,并且在指定的可用餐地点进行。
由于题干已经给出条件:
(b)限定双班车辆的数量为19辆,因此我们先对双班车进行排班,最终缺少的车辆即安排单班车,最终求解得到3辆单班车,具体计划表如下:
表4—1X市2路公交车排班计划表
车辆编号
车辆性质(填写单班或双班)
起点发车时间
返回终点时间
每辆车的总的班次
上午司机班次
(仅双班车需要填写)
下午司机班次
(仅双班车需要填写)
1
双班车
4:
30
5:
40
10
5
5
6:
21
7:
36
7:
49
9:
04
9:
39
10:
54
11:
33
12:
48
13:
27
14:
42
15:
01
16:
16
16:
29
17:
44
17:
54
19:
09
20:
22
21:
32
2
双班车
4:
39
5:
49
10
5
5
6:
25
7:
40
7:
53
9:
08
9:
45
11:
00
11:
39
12:
54
13:
32
14:
47
15:
06
16:
21
16:
33
17:
48
17:
58
19:
13
20:
30
21:
40
3
双班车
4:
48
5:
58
10
5
5
6:
29
7:
44
7:
57
9:
12
9:
51
11:
06
11:
45
13:
00
13:
37
14:
52
15:
11
16:
26
16:
37
17:
52
18:
06
19:
16
20:
38
21:
48
4
双班车
4:
57
6:
07
10
5
5
6:
33
7:
48
8:
03
9:
18
9:
57
11:
12
11:
51
13:
06
13:
42
14:
57
15:
16
16:
31
16:
41
17:
56
18:
14
19:
24
20:
46
21:
56
5