校车路径规划问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于校车路径规划模型的建立与分析
摘要
本文就校车路径规划的问题,要求我们查阅相关学校的上学放学时间,充分调研各个学生的家庭住址和北京市交通情况,综合考虑校车运营方式和盈利方法,对实际的校车运营问题进行分析。
我们采用了图论的方法,假设了两个运营方案,推导了不同情况下成本与盈利之间的计算关系,阐述了不同运营方式所产生的费用的的不同情况并对不同的校车种类和运营方法之间的异同进行比较,做出了简单评价最后针对综合结果基于以上分析计算后的最佳建议。
本次建模以完成接送每个学生上学放学为要求,以盈利最大化为最终约束,并依据校车种类不同,费用不同,载客能力不同提出了两个主要运营方案模型。
首先,我们通过对每个学生家庭住址的研究,我们利用网络地图对他们的地址进行了精确的经纬度定位。
之后我们充分利用AUTOCAD等工具将所有的地址信息抽象成118个点,画出了目标对象住址的点状分布图。
再然后我们做出大胆的分析与化简,将距离较近的点合理分区,利用EXCELL统计该分区数据信息,将不同分区的所有点经纬度坐标求和取平均值,获得了每个分区的重心点,这样一来我们获得了以重心点作为简化点位置并依据人数多少确定简化点权重的简并点。
采用上述一系列分析处理和简化后,我们获得了包括学校在内的二十一个点。
然后我们采用图论的方法进行一系列复杂的计算,并最终获得了最佳的校车路线。
最后我们可以分别计算其成本与收益,进而评价校车运营经济上的可行性。
关键词
校车路径、非线性规划、成本、最短距离、最优化
1.问题的重述
校车是很多学校为学生提供的人性化服务,北京市某中学打算给一年级新生开行校车。
题目中向我们提供了一年级新生的所有的住址信息,要求我们综合考虑学校的上下学时间,以及该时间相关道路的交通状况及校车站点与学生家庭住址之间的距离,以及校车开行的成本、收费等问题,给出校车的开行方案。
题目中要求收费方案中应当包括所需校车数量、校车运行路径、收费标准这三个内容。
另外,学校并不打算为开行校车提供资助,所以在模型设计中应注意校车购买、运行费用应与收费相抵。
2. 问题分析
本文就校车路径规划的问题,要求我们综合考虑学校的上下学时间,以及该时间相关道路的交通状况及校车站点与学生家庭住址之间的距离,以及校车开行的成本、收费等问题,给出校车的开行方案。
我们首先应当查阅相关学校的上学放学时间,充分调研各个学生的家庭住址和北京市交通情况,综合考虑校车运营方式和盈利方法,对实际的校车运营问题进行分析。
本题所给的点数量较大,我们在采用了图论的方法时,很难对大量点进行研究,因此我们需要对其进行简化。
简化的过程即是确定站点位置的过程。
简化后 ,我们获得了包括学校在内的数量较少的点。
然后我们采用图论的方法进行一系列复杂的计算,通过考量各站点之间距离和各道路交通状况可最终获得了最佳的校车路线。
最后我们可以分别计算其成本与收益,进而评价校车运营经济上的可行性。
3. 模型的假设与符号说明
3.1模型的假设
(1)对于学生的家庭住址,极为特殊的的点我们做省略处理
(2)对于学校的上学放学时间,我们随机调研了北京几所中学的情况并取其平均时间节点作为本题学校的校车运行时间点。
(3)为简化模型,站点与站点间我们直接简化为两点之间的距离,而不考虑北京市实际曲折路线图。
(4)上学的去程和放学的回程我们看做是原路去和回,距离相同。
3.2符号说明
P ——购置校车的费用
M ——开行校车平均每个月的成本(固定成本购车费在P 中,这里不包含) i v ——表示第i 个停靠站点
ij d ——为从i v 站到j v 站的距离
W ——每个月付给司机的工资以及校车护理费,唯一固定值
4. 模型准备
首先我们将题目附件中所给的地址转化为坐标点(见附录),然后利用AUTOCAD将题中所给的有效点描绘如下
在本题中,由于所给的点数量较大,我们在设计校车路线时,不可能到每个家庭住址停靠,所以很难对大量点进行研究,因此我们需要对其进行简化。
首先我们简要计算经纬度与距离间的对应关系。
假设地球直径为40000km,那么每一度之间所夹的距离为
÷=
40000360111.11km
我们在对密集的点进行分区时,选取原则为:各点间的最大经纬度只差不超过0.02︒,即距离为
︒⨯=
0.02111.11 2.222km
这被认为是步行可以接受的距离。
分区图:
经过上述方法简化后,我们得到了了简化点图
接下来,我们可以利用最优化和图论方面的相关知识解决该问题。
5.模型的建立与求解
由于校方是并不打算为校车的开行提供资助的,那么学校开行校车就完全得靠学生交钱来达到收支平衡,而作为每个学生成员来说,每次坐校车所花的钱是越少越好,这样我们就尽可能使开行校车的总花费越少越好。
根据市场的调查,我们发现作为中学的校车的基本上都是由客车充当的或者改造的。
经过市场价格的比较,我们挑选出了两种比较常见适合作为校车的客车,型号参数分别如下:
(1)宇通客车ZK6119H2Y
满载人数60 价格38万每百公里油耗21升(下面简称A型校车)(2)宇通客车ZK6892D
满载人数40 价格14万每百公里油耗15升(下面简称B型校车)
由于我们需要接送118个学生,所以我们为了尽可能达到满员,而避免空间的浪费,下面有两种采购方案,即:
方案(1),采购两辆A型校车;
方案(2),采购三辆B型校车。
我们先讨论方案(1)
经过分析,我们根据118个学生的住宅分布情况分析,最后选取了20个校车停靠
v。
站点,方便校车的接送,如图所示,分别标记为1v到20
其中,为了适应画图工具的精度限制,各点的坐标做了处理。
首先将各个坐标扩大100倍,然后将(3900,11600)规定在原来原点的位置。
故得上图各坐标点。
1i j k ij
w ⎧⎪=⎨⎪⎩,表示第k 辆A 或B 型校车从v 直接到达v 站0,其他
1ik i r ⎧=⎨⎩,表示第位乘客乘坐第k 辆车0,其他
这样我们的目标函数即为
2
111min v v k ij ij k i j S w d ===⎛⎫= ⎪⎝⎭∑∑∑
约束条件为
(1)校车容量限制:
118160,1,2ik i r
k =≤=∑
每辆车的乘客数不超过其载客量;
(2) 乘客乘车限制:
211,1,220ik k r
i ===∑……
每位乘客只能乘坐一辆校车;
(3) 校车经过站点的限制:
2011,1,2k ij i w
j =≤=∑……20,k=1,2
表示任意站点一辆校车只能通过一次
220111,1,220,
k ij k j w
i ==≥=∑∑……
表示任意站点至少有一辆校车通过。
(4) 实际情况限制:
早上去学校的每辆校车的终点站必须是学校(下午返程可看做是原路返回,故
不考虑下午回程),总共20个站点,我们将学校看成这20个站点之后的站点,算做第21个,这样有: 20(21)11,1,2k i i w
k ===∑
即每辆车最后必须到达学校 20(21)10,1,2k i i w
k ===∑
校车到达学校后即停止运营。
综合上面的陈述,我们的模型简化为下面的最优化问题:
2111min v v k ij ij k i j S w d ===⎛⎫= ⎪
⎝⎭∑∑∑
118
1
2
1
22011
20
(21)120(21)160,1,2
1,1,220
1,1,220,.1,1,20,1,2,0,1ik i ik k k ij k j k i i k i i k ik ij r k r i w i s t w k w k r w ======⎧≤=⎪⎪⎪==⎪⎪⎪≥=⎪⎨⎪==⎪⎪⎪⎪==⎪⎪=⎩∑∑∑∑∑∑…………
根据上面的目标函数以及约束条件,可以知道这是一项非常复杂数据庞大的优化问题,我们考虑将算法简化,但依然能够满足上述的条件。
由图论所学相关知识,我们采用以下的试探算法。
算法:
1)输入校车的容量=60C ,
2)输入校车的总数=2L
3)在给定校车数L 下,首先确定出距离学校最远的L 个站点,利用这些站点与学校分别作直线,确定出L 条线段,定义为L 条初始线路,记最长线路的长度为S ;
4)对每条初始线路进行站点补充:在剩余的站点中,把离自己最近(即点到直线距离最小)的站点并入该路线中,若此时新的线路长度依然小于最长初始线路的长度S ,则继续重复补充站点;否则停止补充转(5);
5)若所有站点已考虑,则转(6).否则从初始线路出发,首先将离最长初始线路最近的点加入到该线路中,计算其长度记为'S ,令'S S =,转(4);
6)在站点补充完毕后,计算每条线路上乘客的人数,安排校车,若校车的载客量满足均衡要求,则停止,否则对相邻线路上距离最近的站点上的乘客进行互补交换,直到满足要求.
由于之前我们建立了平面直角坐标系,而且每个点的坐标已标出,这样我们可以算出每个点之间的最短线段距离,由于数据量比较大,我们用matlab 变成得到每两点之间的距离(程序见附录),并用表格形式呈现(从上到下依次是1v 到20v ,从左到右是1v 到
v 和最后一列是k 点代表学校)
按照上述算法得到两条路线:
15149751117161013122863412019181.2.v v v v v v v v k
v v v v v v v v v v v v k
→→→→→→→→→→→→→→→→→→→→
分别计算第一条和第二条线路的总长度为:
1 5.619.4
2 3.5 1.62 6.27 5.67 4.2316.3752.69S =+++++++=
2=5.06+4.13+4.44+1.22+3.35+3.02+3.57+2.79+11.54+5.03+3.31+3.87=51.33S
然后同样按照上述方式讨论方案(2),即购置3辆B 型客车。
得到类似的模型:
3111118
1
3
1
32011
20
(21)120(21)1min 40,1,2,3
1,1,220
1,1,220,.1,1,2,30,1,2,3,0,1v v k ij ij k i j ik i ik k k ij k j k i i k i i k ik ij S w d r k r i w i s t w k w k r w =========⎛⎫= ⎪
⎝⎭⎧≤=⎪⎪⎪==⎪⎪⎪≥=⎪⎨⎪==⎪⎪⎪⎪==⎪⎪=⎩∑∑∑∑∑∑∑∑∑…………
同样按照方案(1)中的算法,只是把输入客车容量和客车辆数改为=40=3C L , 得到三条路线:
10131283151497611617112201918451.2.3.v v v v v k
v v v v v v k
v v v v v v v v v k
→→→→→→→→→→→→→→→→→→→→
分别计算三条路线的总长度:
1 2 35.06 4.13 5.53 5.64 4.4624.82
5.619.42 3.50 2.54 4.06 1.132
6.26
4.23
5.679.2413.6 5.03 3.31 2.52 1.71 1.024
6.33
S S S =++++=
=+++++=
=++++++++=
增设变量Y,Y表示对每个学生的年收费。
经过市场调研,得数据,每位司机每月工资及每辆客车护理费总计4000元,每年每人保险以200元记,每升油价按照7.5元记,每个月按照20天上学日计算,每天接送四次。
对于A,
23876
P=⨯=
万万
20452.6951.337.5
M=⨯⨯+⨯
()
对于B,
31452
P=⨯=
万万
20424.8226.2646.337.5
M=⨯⨯++⨯
()
由于学校不打算提供资助,为保证费用相抵,对于A可得方程:
118200212
Y P M W
⨯-=++⨯⨯
()()
最终算得
13801
Y=元
对于B可得方程:
118200312
Y P M W
⨯-=++⨯⨯
()()
最终算得
11770
Y=元
综合比较,选用第二种方案。
6.模型的评价与优化
由于校车的路径规划受制于多方面的影响,学校上课时间,交通状况,实际线路的可通行性,甚至节假日的一些特殊情况,有些因素是完全无法量化考虑的,即使量化了其复杂程度也不可能在这里呈现出来。
我们组做了大胆的假设与简化,首先乘车的学生有上百多人,于是我们参照实际情况,既竟可能的让校车停靠的点少,又确保每个学生都能方便上车,所以我们简化出了20个停靠站点,并建立适当的平面直角坐标系中显示这些点,然后我们以最短路径为目标函数,列出了一系列的约束条件,建立非线性规划问题。
我们想到图论里面求最短路的Floyd算法,然而由于这里还要考虑学生上车后不能超载的安全问题,于是我们再受到图论里求最小树的算法,从最小的距离开始试探,最后求出一条满足所有约束条件的路径,这是整个模型的亮点所在。
最后求出最短路径之后,我们把油价,购车费,护理费等等考虑进去之后,得出成本。
最后制定合理的收费方案。
但是模型的不足也比较明显。
主要是少了时间限制这个比较切实的限制条件,一般中学上课时间为8点,为体现人性化,我们的校车最好早上6:30从第一站出发,然后争取7:50之前到达学校,所以我们不可能让校车慢慢悠悠走过所有站点把学生全部接到位。
这样我们就需要查到校车的行驶速度,同时这样北京市每天的交通状况又是影响时间和速度的一个重要因素。
所以在优化模型这一点上,依然有许多工作要做。
我们需要查找我们设计好的路线都通过哪些主干道和支路,以及每天进行上学和放
学的高峰段实地检测客流量和汽车的平均速度,或者通过相关部门网站利用已有数据进
行一个估算,然后可以预测到整体的一个交通状况对汽车速度的影响是波动的,同时又
是周期性的,我们可以根据估算或者测定数据来把交通状况对速度的影响做一个含三角
函数的曲线,或者是一个含正态分布因子的式子来模拟速度随时间与不同天数的变化。
最后我们再根据速度和路径经过的实际距离,来算出整个校车接送学生到达学校的时间
满足我们设定的时间作为限制条件即可。
但考虑我们的有限数据量,以及这个优化后的复杂程度,我们的模型不可能面面俱
到,精确无比。
但我们的模型能够对整体的校车路径规划和大体制定收费方案是绰绰有
余的。
附录
学生编号学生家庭住址经纬度
1 北京市北京丰台梅市口路12号路39.892,116.272
2 北京丰台东大街东营里5号院39.85629,116.29856
3 太平路甲34号
4 39.90065,116.29382
4 北京市丰台区京铁家园2区39.8981,116.282
5 北京市海淀区复兴路40号院39.90584,116.25614
6 玉泉西路甲3号39.91216,116.24541
7 京铁家园三区5楼39.8950,116.2795
8 北京市海淀区复兴路40号院39.90584,116.25614
9 北京市丰台区靛厂村39.8876,116.2889
10 北京市大兴区富强东里院40号楼39.7408,116.3406
11 北京市市辖区海淀区太平路46号院39.89784,116.26444
12 海淀区复兴路20号院39.91123,116.31740
13 北京市市辖区丰台区京铁家园3区6号39.8948,116.2792
14 永定路西里7号楼39.90544,116.26307
15 北京市海淀区玉泉路68院新1楼39.90286,116.25299
16 北京市海淀区永定路西里39.90566,116.26303
17 北京市丰台区莲怡园1号院2楼39.8897,116.2978
18 北京市海淀区太平路22号院39.9095,116.258
19 北京市海淀区玉泉路68号12楼39.89892,116.25339
20 北京市丰台区兴景路229号院省略
21 丰台区周庄子39.8687,116.2876
22 北京市海淀区永定路西里5号楼39.90547,116.26299
23 北京市石景山区鲁谷路远洋山水7号楼39.9029,116.2395
24 北京市市辖区大兴区西红门宏盛家园39.7975,116.3400
25 北京市海淀区北太平路18号39.90416,116.25891
26 丰台区东大街6号院22号楼39.86223,116.29886
27 机械三处宿舍2 39.9426,116.328
28 北京市海淀区西黄新村北里11号楼39.9381,116.2050
29 丰台区青塔东里24 39.8971,116.2690
30 丰台区程庄路16号院39.85894,116.26620
31 丰台区莲路十号院2号楼39.8961,116.2711
32 北京市丰台区岳各庄西府颐园畅和园1号楼39.88315,16.26824
33 北京市市辖区海淀区复兴路40号68楼39.90753,116.25575
34 北京市丰台区长云路2号院18号楼省略
35 北京市丰台区望园东里7楼39.8684,116.2887
36 北京市石景山区玉泉西里远洋沁山水三期15号
楼
39.9045,116.2358
37 北京市石景山区远洋山水22号楼39.9030,116.2393
38 模式口中里22栋39.9358,116.1634
39 张仪村路4号院39.88667,116.23166
40 太平路46号20楼39.89920,116.26037
41 北京市海淀区沙窝村南西郊苗圃平房39.9655,116.6316
42 复兴路26号9楼39.90766,116.28082
43 北京市海淀区金沟河路5号828楼39.91828, 116.26867
44 北京市海淀区西翠路5号今日家园6号楼39.90200, 116.27895
45 西翠六今日家园6号楼39.90195, 116.27912
46 太平路34号2 39.90037, 116.27294
47 北京市石景山区何家坟39.9099, 116.2456
48 北京市丰台区青塔小区秀园11 39.89151, 116.26093
49 北京市海淀区万寿路40号39.9100, 116.2956
50 安徽省安徽省金寨县双河镇省略
51 北京市石景山区鲁谷路74 39.90421, 116.24509
52 北京市海淀区玉泉路68号院30楼39.89894, 116.25331
53 北京市丰台区太平路34号院2号楼39.90035, 116.27292
54 北京丰台区大成里蔚园3号楼39.9003, 116.264
55 沙窝南苗圃小2楼39.9018, 116.281
56 复兴路32号院7楼39.90633, 116.27002
57 大成里秀园23号楼39.8927, 116.2621
58 北京市海淀区玉泉路68号院31楼39.89887, 116.25339
59 太平路27号院33楼39.97168, 116.36907
60 京铁家园一区三号楼39.9005, 116.279
61 丰台区小屯路博龙家园5楼39.9003, 116.255
62 玉泉路65号院8号楼39.90052, 116.25266
63 复兴路26号院73楼39.90771, 116.28086
64 北京市市辖区丰台区大成路13号院3号楼39.89300, 116.26500
65 北京市市辖区海淀区太平路24号23楼39.90067, 116.27356
66 北京市海淀区复兴路40号西院39.90746, 116.25595
67 北京市市辖区丰台区丰台区朱家坟三里7楼39.8092, 116.1909
68 北京市市辖区海淀区复兴路40号10号楼39.90750, 116.25578
69 北京市市辖区石景山区五芳园26 39.89983, 116.22717
70 北京市市辖区海淀区采石路13号院18楼39.89894, 116.25990
71 北京市市辖区丰台区大成里小区秀园19楼39.8964, 116.2633
72 北京市海淀区复兴路46号3号楼39.90641, 116.25427
73 北京市市辖区海淀区北京市海淀区玉海园二里7
号楼
39.9261, 116.253
74 北京市市辖区海淀区太平路22号18号楼39.90055, 116.28674
75 北京市市辖区海淀区复兴路40号院78楼39.9060, 116.2561
76 石景山区玉泉西里二区14 39.9042, 116.2384
77 北京市市辖区丰台区双林苑3号楼39.8756, 116.2565
78 北京市市辖区丰台区北京市丰台区302医院新楼39.8918, 116.276
79 北京市石景山区八角南路17楼39.91118, 116.20037
80 北京市市辖区石景山区石景山区重聚园6 39.8958, 116.2272
81 北京市市辖区海淀区北京市海淀区复兴路83号
院
39.90789, 116.25824
82 北京市市辖区海淀区复兴路40 39.90786, 116.25584
83 北京市市辖区丰台区小屯路兆丰园小区9#39.8958, 116.2484
84 北京市市辖区海淀区复兴路34号建一楼39.90738, 116.26919
85 北京市市辖区海淀区永定路派出所*复兴路40号
18楼
39.90742, 116.25603
86 北京市海淀区太平路甲20号39.90063, 116.29395
87 北京市市辖区门头沟区滨河西区皓月园3号楼39.93406, 116.11276
88 北京市市辖区海淀区太平路24号院23号楼39.90057, 116.28446
89 北京市海淀区西翠路5号今日家园6号楼39.90208, 116.27886
90 北京市丰台区靛厂路26号院5楼39.88983, 116.28515
91 北京市石景山区衙门口市运八场宿舍39.8906, 116.2113
92 北京市市辖区丰台区青塔东里大理石厂15楼39.8983, 116.2707
93 北京市复兴路26号院23楼39.90768, 116.28095
94 北京市市辖区海淀区复兴路32#院1号塔39.9086, 116.2669
95 北京市市辖区房山区长阳碧桂园A区7 39.76110, 116.16198
96 太平路24号22楼39.90067, 116.28446
97 北京市市辖区海淀区太平路22号院39.9103, 116.258
98 北京市石景山鲁谷小区39.9037, 116.2226
99 瑞海家园A19 39.7866, 116.328 100 海淀区复兴路32号院39.9121, 116.267 101 北京市永定路98号院39.9092, 116.266 102 北京市丰台区东大街西里3号楼39.86266, 116.29225 103 北京市丰台区小屯路东里1号3# 39.8934, 116.2566 104 复兴路32 号院2 39.90628, 116.26987 105 丰台区东大街20号院39.8650, 116.294
106 北京市海淀区复兴路J36号39.90735, 116.26663 107 北京市市辖区海淀区定慧寺39.9228, 116.2749 108 北京市市辖区丰台区北京市丰台区大屯村39.8818, 116.2612 109 北京市海淀区永定路127号教工楼39.90271, 116.26436
110 北京市市辖区丰台区丰台区怡海花园富泽园5号
楼
39.8369, 116.2988
111 北京市北京市复兴路40号西院5 39.90528, 116.25432 112 北京市市辖区海淀区复兴路32号院1号塔楼39.9089, 116.2679 113 北京市市辖区石景山区重聚园1 39.8957, 116.2276 114 北京市市辖区石景山区玉泉路石槽甲65号39.9023, 116.2528 115 北京市丰台区大成里蔚园23号楼39.8958, 116.2624 116 北京市海淀区太平路48号院5 39.90042, 116.25863 117 北京市市辖区海淀区太平路44号院14 39.89793, 116.26517 118 北京市市辖区海淀区丰台区青塔西里6号院1楼39.89303, 116.26472 119 北京丰台区碾子坟39.8782, 116.2728 120 沙窝村汽车八场4 39.9016, 116.2777
121 北京市市辖区海淀区北京市海淀区复兴路40号
18楼
39.90748, 116.25590
MATLAB计算结果:
x=[91.29 26.98;91.28 24.60;86.46 29.47;90.03 29.47;89.61 27.81;87.25 26.55;89.77 26.20;90.42 25.46;89.62 22.70;93.41 11.28;83.69 29.88;92.46 20.32;93.58 16.34;80.92 19.09;76.11 16.2;75.09 33.04;79.3 33.47;91.12 31.74;94.26 32.8;97.17 36.91;90.63 27.90]
x =
91.2900 26.9800
91.2800 24.6000
86.4600 29.4700
90.0300 29.4700
89.6100 27.8100
87.2500 26.5500
89.7700 26.2000
90.4200 25.4600
89.6200 22.7000
93.4100 11.2800
83.6900 29.8800
92.4600 20.3200
93.5800 16.3400
80.9200 19.0900
76.1100 16.2000
75.0900 33.0400
79.3000 33.4700
91.1200 31.7400
94.2600 32.8000
97.1700 36.9100
90.6300 27.9000
y=zeros(20,21);
for j=1:20
for i=j:21
y(j,i)=sqrt((x(i,1)-x(j,1))^2+(x(i,2)-x(j,2))^2) end
end
y
y =。