当前位置:文档之家› 最优公交线路的模型研究

最优公交线路的模型研究

2007高教社杯全国大学生数学建模竞赛承诺书我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。

我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。

我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。

如有违反竞赛规则的行为,我们将受到严肃处理。

我们参赛选择的题号是(从A/B/C/D中选择一项填写): B我们的参赛报名号为(如果赛区设置报名号的话):所属学校(请填写完整的全名):北京化工大学参赛队员(打印并签名) :1. 郑宇2. 姜园博3. 来斯惟指导教师或指导教师组负责人(打印并签名):郭秋敏日期:2007 年09 月24 日赛区评阅编号(由赛区组委会评阅前进行编号):2007高教社杯全国大学生数学建模竞赛编号专用页赛区评阅编号(由赛区组委会评阅前进行编号):全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):最优公交线路的模型研究摘要本文以乘车的路线为研究对象,根据乘客的不同需求,存在总时间、总费用、换乘次数三个目标函数。

将求解目标函数最优值的问题转化为最短路径问题。

在仅考虑公汽线路的时间最短模型中,首先由已知信息建立有向赋权图,以公交站点为顶点,所有直通公交线路为边。

对于时间,每条边的权值为公交车的运行时间加上转车时间。

然后可直接采用Dijkstra算法求出任意两公汽站点之间最优线路。

该模型方法比较简单,准确性高,可操作性强。

且对图中的权值做相应的改变,可以将其转化为总费用最少模型以及换乘次数最少模型。

同时考虑公汽和地铁线路,存在公汽与地铁的换乘问题,基于该问题本文设计了另一种有向赋权图,以所有公汽站点和地铁站点为顶点,所有直接连通线路为边。

以时间最短作为目标,边的权值设为两点间实际运动的时间。

并相应地提出一种修改的Dijkstra算法,在拼接两条邻边时,会加上换乘时间。

根据这种算法可得到任意两公交站点之间的较优线路,该算法效率较高。

但在求解中发现,该方法并不能总求得最优解,因为到某一站点的最短路不仅仅由其前面的一个站点的最短路决定。

基于这个问题,本文采用双层Dijkstra算法,在该算法中,考虑一站点对其以后两站的最短路径的影响。

双层Dijkstra算法复杂度较高,但运用该算法可以得到更优化的线路。

统计结果表明,修改的Dijkstra算法求得的最优解中,有5.7%的解可以被双层Dijkstra算法的最优解更新。

类似的,双层Dijkstra 算法也可以求解总费用最少模型和换乘次数最少模型。

仅考虑公汽线路,6对站(1)S3359→S1828 (2)S1557→S0481 (3)S0971→S0485 (4)S0008→S0073 (5)S0148→S0485 (6)S0087→S3676的总时间最短的线路所对应时间分别为64、99、103、59、102、46(分钟);总费用最少的线路所需费用分别为3、3、3、2、3、2(元);总换乘次数最少的线路所需换乘次数分别为1、2、1、1、2、1(次)。

同时考虑公汽和地铁线路,本文求得6对起始站→终到站的总时间最短的线路所需时间分别为62、99、95、53.5、86.5、30(分钟);总费用最少的线路所需费用分别为3、3、3、2、3、2(元);总换乘次数最少的线路所需换乘次数分别为1、2、1、1、2、0(次)。

最后,本文对模型进行了评价和推广,使其能更好的应用于实际生产生活中。

关键词双层Dijkstra算法,最短路径1.问题分析1.1. 问题背景及分析奥运会即将来临了,届时有很多观众希望方便快捷的到达各个比赛场地,公交出行成为很多人的首选。

北京市的公交线路已达800条以上,因此乘客面临多条线路的选择问题。

本文的核心是提出一个解决公交线路选择问题的方案。

根据对实际情况的考虑并结合北京公交网和北京地铁网提供的线路搜索需求,本文认为查询者的需求主要为总时间短、总费用低、换乘次数少。

这三种需求对应的三个目标函数的最优解的求解与最短路径问题相似。

现在如果把三个目标函数的最优解的求解转化为最短路径问题,就会遇到以下两个问题:(1)同时考虑公汽线路和地铁线路时,线路比较复杂,如何用已知的线路信息建立有向赋权图(2)建立有向赋权图之后,图论中传统的最短路径算法是否适用。

如果不适用,是否可以对传统的最短路径算法做相应的改变,使其改变后可以求解已经建立的有向赋权图,或者是否可以提出新的算法用来求解已经建立的有向赋权图。

基于这两个问题,考虑两种解决办法:(1)考虑简单的公交线路,即只考虑公汽线路。

根据已知公汽线路的信息建立有向赋权图,使该有向赋权图的最短路径问题可以直接求解(2)同时考虑公汽线路和地铁线路。

首先,根据已知公交线路的信息建立有向赋权图,使得该有向赋权图包含实际情况中的任意一种情形。

其次,对传统的最短路径算法做改变使它可以求解已经建立的有向赋权图。

1.2. 题中数据的两个问题及修正除L290外,其余环行公交线路所标的首站和末站均相同。

而环行线L290的首站为S1477,末站为S1479。

根据L066可知S1477和S1479为相邻两站,故认为此线路的最后少标了一个S1477,实际仍为环行线。

普通线路L406的起点站和终点站相同,均为S1871。

L406的第二站为S1008,倒数第二站为S0941,由L034可知,S1008和S0941相邻,故认为数据没有问题。

但是从实际情况看,这样的线路会被当作环线使用,而不会在S1871让乘客强制下车。

所以我们把L406改成环线。

2.模型假设2.1. 总时间=乘客到达最后一个公汽站的时刻-乘客离开第一个公汽站的时刻;2.2. 假设同一地铁站对应的任意两个公汽站之间可以通过地铁站换乘(无需支付地铁费);2.3. 换乘交通工具所用时间分为等待时间和步行到站点时间两部分.(题目中给出了换乘中的步行时间);2.4. 环线地铁和公汽的线路都是双向的3. 符号说明3.1. k L 第k 条公汽线路(站点相同运行方向不同的公汽线路用不同的k 表示)3.2. k T 第k 条地铁线路(k=1, 2, 3, 4;站点相同运行方向不同的地铁线路用不同的k 表示)3.3. km 第k 条公汽线路上公汽站的个数 3.4. k n 第k 条地铁线路上地铁站的个数3.5. iS 标号为i 的公汽站 3.6. i D 标号为i 的地铁站3.7. ij ω i S 和j S 确定的边对应的权3.8. ijϖ i D 和j D 确定的边对应的权 3.9. ij ψ i D 和j S 确定的边对应的权3.10. pqr τ 换乘系数4. 模型的建立与求解4.1. 仅考虑公汽线路的模型4.1.1. 建立有向赋权图I. 总时间为目标函数对于任意一条公汽线路k L ,有k m 个站,以这k m 个站为顶点。

对于这k m 个顶点中的任意两个顶点i S 和j S ,以i S 和j S 为端点的线段为边,公汽的运行方向为边的方向。

记1 -=)和之间的站点个数(包括和上j i j i k ij S S S S L x ,则i S 和j S 确定的边对应的权ij ω= ij x ⨯相邻公汽站平均行驶时间+公汽换乘公汽平均耗时。

这样就建立了仅包含一条公汽线路的有向赋权图,对每一条公汽线路k L 都按以上方法建立有向赋权图,就得到包含所有公汽线路的有向赋权图。

由于在权值中加入了公汽的换乘时间,因此所有的边都具有可加性。

此时,只要得到有向图中两顶点A 、B 间的最短路径,就可以得到乘客从公汽站A 到公汽站B 的最短时间。

II. 总费用为目标函数顶点和边的选取与1)相同,i S 和j S 确定的边对应的权ij ω为该公交线所需的车票费用,即:⎪⎪⎩⎪⎪⎨⎧<≤<≤≤= 40 34020 2200 1 1ij k ij k ij k k ij x L x L x L L 为分段计价,为分段计价,为分段计价,为单一票价ωIII. 换乘次数为目标函数顶点和边的选取与1)相同,i S 和j S 确定的边对应的权1=ij ω。

4.1.2. 模型求解 在已经建立的有向赋权图中,需要求出任意两顶点间的最短路径。

Dijkstra 算法可以解决有向赋权图的最短路径问题,该算法要求所有边的权值非负,4.1.1建立的有向赋权图显然满足该算法的要求。

以Dijkstra 算法为基础,编程求解4.1.1中有向赋权图的最短路径。

I. 总时间最少的模型求解程序计算的得到的总时间比实际情况多了一次换乘时间,因此,最优线路的总时间=程序计算的得到的总时间-5分钟。

II. 总费用最少的模型求解III. 换乘次数最少的模型求解4.2. 考虑公汽和地铁线路的时间最短模型4.2.1. 建立有向赋权图对于公汽线路的建图同4.1。

类似的,对于任意一条地铁线路k T ,有k n 个站,以这k n 个站为顶点。

对于这k n 个顶点中的任意两个顶点iD 和j D ,定义以i D 和j D 为端点的线段是一条边,地铁的运行方向为边的方向。

i D 和j D 确定的边对应的权ij ϖ=(k T 上i D 和j D 之间的站点个数(包括i D 和j D ) -1)⨯相邻地铁站平均行驶时间。

对于任意一个地铁站i D ,都存在1至5个可供换乘的公汽站j S (例如地铁站D01存在3个可供换乘的公汽站S0567,S0042,S0025)。

建立以i D 和j S 为顶点的双向边,其权值4=ij ψ,即步行时间4分钟。

根据以上三步可以建立包含所有公汽线路和地铁线路的有向赋权图,但该赋权图还没有考虑换乘时间。

下面考虑每一种换乘情况,共有8种换乘情况。

0代表地铁站,1代表公汽站,A 表示乘地铁,B 表示乘公汽,C 表示步行。

那么0 0 0 ,0 0 1,0 1 0,0 1 1,1 0 0,1 0 1,1 1 0,1 1 1分别表示:地铁站−→−A 地铁站−→−A 地铁站 地铁间换乘时间:4分钟 地铁站−→−A 地铁站−→−C 公汽站 无换乘时间 地铁站−→−C 公汽站−→−C 地铁站 无换乘时间 地铁站−→−C 公汽站−→−B 公汽站 等待公汽的时间:3分钟公汽站−→−C 地铁站−→−A地铁站 等待地铁的时间:2分钟公汽站−→−C 地铁站−→−C 公汽站 无换乘时间公汽站−→−B 公汽站−→−C 地铁站 无换乘时间公汽站−→−B 公汽站−→−B 公汽站 公汽间换乘时间:4分钟 将这8种情况下在换乘所需的时间定义为换成系数pqr τ(p,q,r 的取值为0或1),则 4000=τ, 0001=τ, 0010=τ, 3011=τ, 2100=τ, 0101=τ, 0110=τ, 5111=τ 令所有的公汽站i S 构成的集合为S, 所有的地铁站i D 构成的集合为D, V=S D,用i v 表示V 中的顶点。

相关主题