乘公交_看奥运
高教社杯全国大学生数学建模竞赛
承 诺 书
我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。
我们参赛选择的题号是(从A/B/C/D中选择一项填写): B 我们的参赛报名号为(如果赛区设置报名号的话): 所属学校(请填写完整的全名): 重 庆 大 学 参赛队员 (打印并签名) :1. 2. 3. 指导教师或指导教师组负责人 (打印并签名):
日期: 年 月 日
赛区评阅编号(由赛区组委会评阅前进行编号):
1
乘公交_看奥运
高教社杯全国大学生数学建模竞赛
编 号 专 用 页
评 阅 人 评 分 备 注 赛区评阅编号(由赛区组委会评阅前进行编号):
赛区评阅记录(可供赛区评阅时使用):
全国统一编号(由赛区组委会送交全国前编号):
全国评阅编号(由全国组委会评阅前进行编号):
2
乘公交_看奥运
乘公交,看奥运
【摘要】本文要解决的问题是以即将举行的08年北京奥运会为背景而提出的。人们为了能现场观看奥运会,必然会面对出行方式与路线选择的问题。因此如何快速、高效地从众多可行路线中选出最优路线成为了解决此问题的关键。
鉴于公交系统网络的复杂性,我们没有采用常规的Dijkstra算法,而采用了高效的广度优先算法。其基本思想是从经过起(始)点的路线出发,搜寻出转乘次数不超过两次的可行路线,然后对可行解进行进一步处理。为满足不同查询者要求,我们对三个问题都分别建立了以时间、转乘次数、费用最小为目标的优化模型。
针对问题一(只考虑公汽系统),我们建立了模型一并通过VC++编程得到了任意两个站点间的多种最优路线,并得出所求站点间最优路线的最优值,如下表所示: S3359 S1557 S0971 S0008 S0148 S0087 出发站 ? ? ? ? ? ? ? S1828 S0481 S0485 S0073 S0485 S3676 终点站 64 106 106 67 106 46 最短耗时(min) 1 2 1 1 2 2 最少转乘次数(次) 3 3 3 2 3 3 最少费用(元) 模型二是根据问题二(同时考虑公汽和地铁系统)建立的,同样用VC++编程得到所求站点间的最优路线,如下表所示: S3359 S1557 S0971 S0008 S0148 S0087 出发站 ? ? ? ? ? ? ? S1828 S0481 S0485 S0073 S0485 S3676 终点站 64 106 96 55 87.5 33 最短耗时(min) 1 2 1 1 2 0 最少转乘次数(次) 3 3 3 2 3 3 最少费用(元) 对问题三(将步行考虑在内)我们建立了模型三的优化模型,然后在模型改进里又建立了图论模型。
本文的主要特点在于,所用算法的效率十分显著。在对原始数据仅做简单预处理的条件下,搜索任意站点间的最优路线所需的平均时间不超过0.5秒。另外,本文所建立的模型简单、所用算法比较清晰,易于程序实现,对公交线路自主查询计算机系统的实现具有现实指导作用。
关键字:转乘次数 广度优先算法 查询效率 实时系统
3
乘公交_看奥运
一 问题的重述
传承华夏五千年的文明,梦圆十三亿华夏儿女的畅想,2008年8月8日这个不平凡的日子终于离我们越来越近了!在观看奥运的众多方式之中,现场观看无疑是最激动人心的。为了迎接2008年奥运会,北京公交做了充分的准备,首都的公交车大都焕然一新,增强了交通的安全性和舒适性,公交线路已达800条以上,使得公众的出行更加通畅、便利。但同时也面临多条线路的选择问题。为满足公众查询公交线路的选择问题,某公司准备研制开发一个解决公交线路选择问题的自主查询计算机系统。
这个系统的核心是线路选择的模型与算法,另外还应该从实际情况出发考虑,满足查询者的各种不同需求。需要解决的问题有:
1、仅考虑公汽线路,给出任意两公汽站点之间线路选择问题的一般数学模型与算法。并根据附录数据,利用模型算法,求出以下6对起始站到终到站最佳路线。 (1)、S3359→S1828 (2)、S1557→S0481 (3)、S0971→S0485 (4)、S0008→S0073 (5)、S0148→S0485 (6)、S0087→S3676 2、同时考虑公汽与地铁线路,解决以上问题。
3、假设又知道所有站点之间的步行时间,请你给出任意两站点之间线路选择问题的数学模型。
二 符号说明
20时, Li表示上行公汽路线, 当Li :第i条公汽线路标号,i=1,2 …10400,当i?5i?520时, Li表示与上行路线Li?520相对应的下行公汽路线;
Si,g:经过第i条公汽路线的第g个公汽站点标号;
Tj :第j条地铁路线标号, j=1,2;
Dj,h:经过第j条地铁线路的第h个地铁站点标号;
LSn:转乘n次的路线;
Tk :选择第k种路线的总时间;
N1k:选择第k种路线公汽换乘公汽的换乘次数;
N2k:选择第k种路线地铁换乘地铁的换乘次数; N3k:选择第k种路线地铁换乘公汽的换乘次数; N4k:选择第k种路线公汽换乘地铁的换乘次数; Wk,m:第k种路线、乘坐第m辆公汽的计费方式,其中:
4
乘公交_看奥运
Wk,m?1表示实行单一票价,Wk,m?2表示实行分段计价;
CLk,m:第k种路线,乘坐第m辆公汽的费用;
Ck :选择第k种路线的总费用;
MSk,m:选择第k种路线,乘坐第m辆公汽需要经过的公汽站个点数;
MDk,n:选择第k种路线,乘坐第n路地铁需要经过的地铁站个点数;
FSk,m :表示对于第k种路线的第m路公汽的路线是否选择步行,FSk,m为0-1
Sk,m?1表示选择步行; Sk,m?0表示不选择步行,F变量,FFDk,n:对于第k种路线的第n路地铁的路线是否选择步行,FDk,n为0-1变量,
Dk,n?1表示选择步行; FDk,n?0表示不选择步行,F
三 模型假设
3.1基本假设
1、相邻公汽站平均行驶时间(包括停站时间): 3分钟 2、相邻地铁站平均行驶时间(包括停站时间): 2.5分钟 3、公汽换乘公汽平均耗时:5分钟(其中步行时间2分钟) 4、地铁换乘地铁平均耗时:4分钟(其中步行时间2分钟) 5、地铁换乘公汽平均耗时:7分钟(其中步行时间4分钟) 6、公汽换乘地铁平均耗时:6分钟(其中步行时间4分钟) 7、公汽票价:分为单一票价与分段计价两种; 单一票价:1元
其中分段计价的票价为:0 ~20站:1元
21~40站:2元 40站以上:3元
8、地铁票价:3元(无论地铁线路间是否换乘)
9、假设同一地铁站对应的任意两个公汽站之间可以通过地铁站换乘,且无需支付地铁费 3.2 其它假设
10、查询者转乘公交的次数不超过两次; 11、所有环行公交线路都是双向的; 12、地铁线T2也是双向环行的;
13、各公交车都运行正常,不会发生堵车现象; 14、公交、列车均到站停车
四 问题的分析
5