年全国大学生数学建模一等奖获奖论文.doc
《年全国大学生数学建模一等奖获奖论文.doc》由会员分享,可在线阅读,更多相关《年全国大学生数学建模一等奖获奖论文.doc(16页珍藏版)》请在冰豆网上搜索。
2007高教社杯全国大学生数学建模竞赛
承诺书
我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。
如有违反竞赛规则的行为,我们将受到严肃处理。
我们参赛选择的题号是(从A/B/C/D中选择一项填写):
B
我们的电子文件名:
B0302
所属学校(请填写完整的全名):
广西师范学院
参赛队员(打印并签名):
1.钟兴智
2.尹海军
3.斯婷
指导教师或指导教师组负责人(打印并签名):
韦程东
日期:
2007年9月24日
赛区评阅编号(由赛区组委会评阅前进行编号):
2007高教社杯全国大学生数学建模竞赛
编号专用页
赛区评阅编号(由赛区组委会评阅前进行编号):
赛区评阅记录(可供赛区评阅时使用):
评
阅
人
评
分
备
注
全国统一编号(由赛区组委会送交全国前编号):
全国评阅编号(由全国组委会评阅前进行编号):
乘公交,看奥运
摘要
我们基于最小换乘次数算法,设计了公交查询系统,能够分别从时间和花费出发考虑,选择最优路径,以满足查询者的各种不同需求。
问题一:
采用最小换乘次数算法,求出任意两站的最小换乘次数,在次数一定的情况下,分别选取花费最少和时间最少作为优化目标,建立两种模型:
最少时间模型:
;最少花费模型:
;利用两种模型求出6组数局的最佳路线如下(两种模型求出的最优结果是一样的);
起始站→终点站
乘车路线
时间
费用
S3359→S1828
L436下行(S1784)→L167下行
101
3
S1557→S0481
L084下行(S1919)→L189下行(S3186)→L460下行……(有2条最优路线)
106
3
S0485→S0971
L013下行(S0992)→L417下行
128
3
S0008→S0073
L159下行(S0491)→L058下行
……(有5条最优路线)
83
2
S0148→S0485
L308上行(S0036)→L156上行(S3351)→L417下行
101
3
S0087→S3676
L454上行(S3496)→L209下行
65
2
问题二:
把两条地铁的任意站点的附近公交站点以相同的序号表示,因此将地铁的线路转化成公交的问题,改进问题一中的模型求出此问题的最少时间模型+
得到6组数据的最优路线如下:
起始站→终点站
乘车路线
所需
费用
S3359→S1828
L436下行(S1784)→L167下行
101分
3元
S1557→S0481
L363下行(S1919)→L189下行(S3186)→L460下行……(有两条)
106分
3元
S0485→S0971
L013下行(S0992)→L417下行
128分
3元
S0008→S0073
L159下行(S0491)→L058下行
……(有5条)
83分
2元
S0148→S0485
L308上行(S0036)→L156上行(S3351)→L417下行
101分
3元
S0087→S3676
T2(D27→D36)
33分
3元
问题三:
考虑到会存在紧邻站点与终点站的直达线路,所以我们对问题一的最小换乘算法进行了改进。
关键词:
最小换乘次数,算法,紧邻点,数据库,路线集
问题重述
第29届奥运会明年8月将在北京举行,届时有大量观众到现场观看奥运比赛,其中大部分人将会乘坐公共交通工具(简称公交,包括公汽、地铁等)出行。
这些年来,城市的公交系统有了很大发展,北京市的公交线路已达800条以上,使得公众的出行更加通畅、便利,但同时也面临多条线路的选择问题。
针对市场需求,某公司准备研制开发一个解决公交线路选择问题的自主查询计算机系统。
其核心是线路选择的模型与算法,应该从实际情况出发考虑,满足查询者的各种不同需求。
现需解决以下问题:
1、仅考虑公汽线路,给出任意两公汽站点之间线路选择问题的一般数学模型与算法。
并根据附录数据,利用你们的模型与算法,求出以下6对起始站→终到站之间的最佳路线。
(1)、S3359→S1828
(2)、S1557→S0481(3)、S0971→S0485
(4)、S0008→S0073(5)、S0148→S0485(6)、S0087→S3676
2、同时考虑公汽与地铁线路,解决以上问题。
3、假设又知道所有站点之间的步行时间,给出任意两站点之间线路选择问题的数学模型。
模型假设
1.相邻两站公汽站距离和所需行驶时间相同。
2.公汽与地铁线路都畅通无阻,即没有堵车。
3.人们考虑换乘次数不超过两次。
4.在有直达车的情况下,人们首选直达车。
5.同一地铁站对应的任意两个公汽站之间可以通过地铁站换乘(无需支付地铁费)。
6.人们选择坐地铁都是出于省时考虑,暂不考虑花费。
模型建立与求解
问题一
1.问题分析
人们在选择公交出行路线时考虑的因素很多,如出行耗时是否最少,线路是否最短,换乘次数是否最少,花费是否最少。
资料调查显示,大多数乘客在选择公汽线路时,首先考虑的是乘车是否方便,就换乘次数而言,一般不大于两次[3]。
所以我们采用最小换乘次数算法[1],求出最少换乘次数。
然后在最少换乘次数一定的情况下,我们再针对个人偏好,分别选取花费最少和时间最少作为优化目标。
最小换乘次数最少算法的基本思想是从起始站点(任意的),终止站点(任意的)出发,通过比较公交网络上各车站的可换乘车站,追索到的可能路径,然后比较各可能路径的时间或花费,来确定最优路线。
12
2.模型算法与求解
2.1符号说明:
为经过的线路集。
为经过B的线路集。
为线路上的站点。
其中可表示为线路上各站点的序号。
为线路上的站点。
其中可表示为线路上各站点的序号。
为经过的线路集。
为经过的线路集。
2.2算法步骤及流程图:
(1)输入乘车的起始站点及终止站点;
(2)求出经过站点的所有线路集和经过站点的所有线路集;
(3)判断是否等于,如果相等再判断是否为环行线路,如果是则为站点到站点的直达线路,如果不是环行线路但线路上结束的序号大于开始的序号则仍是直达线路;输出结果,结束运算;如果没有则进行下一步。
(4)求线路上的站点以及线路上的站点;
(5)判断是否存在相同站点,即是否有存在=的情况,如果有再判断相交路线是否为环行,如果是且经过终点的路线也为环行,则可一次转车;如果相交路线不是环行,但线路上结束的序号小于结束站序号,仍可一次转车,线路,即为一次转车的线路,即为转车站点。
如果没有相同站点再执行下面。
(6)求出经过的线路集,经过的线路集;
(7)判断是否等于。
如果相等再判断是否为环行线路,如果是则线路,,为两次换车的线路,换车站点为和;如果不是环行线路但线路上结束的序号大于开始的序号则仍可实现二次转车。
输出结果,结束运算。
开始
直达
进入下组数据
是
获得起点A和终点B
获得经过A的线路集合S(K)和B的线路集合T(L)
S(K)与T(L)是否有交集
交集中的线路类型是否为环形
用一转的方法解决
线路上结束的序号是否大于开始的序号
是
否
否得经过A的线路集合S(K)和B的线路集合T(L)
是
否
最少换乘次数算法流程图:
(图一)
一次转乘算法流程图:
S(K)与T(L)路线是否存在交点
相交路线类型是否为环行
用二转算法解决
线路上结束的序号是否小于结束站序号
经过终点的路线是否为环行
线路上结束的序号是否小于结束站序号
一转可到达
进入下一组数据
是
否
否
是
否
否
否
是
是
(图二)
2.3模型建立:
对于所求转车线路可能不止一条,我们根据最少时间或最少花费为目标函数求出个人所需最优线路。
记为线路上的站点,其序号为;线路上的站点,其序号为。
记,,,
自起三条路线的总站数分别为
;
若线路为上下行或单行,则从站点到转车站点的站点数为,从到的站点数为,从转车站点到站点的站点数为。
若线路为环行,当<,,<时,站点到,到,到站点的站点数为,,。
当>,>时,站点到,到,到站点的站点数为,,
(1)最少时间模型:
(1.1)
s.t.,
(1)
(2)
,(3)
(2)最少花费模型:
(1.2)
s.t.,
(1)
,
(2)
(3)
2.4模型求解
我们将所给文本1.1公路线路信息.txt中的数据作处理,用替换的方法使得文本利于导入数据库,利用C#将文本文件的内容一次导入SQL数据库,接着利用C#编写程序(见附件1),数据库代码见附件2。
利用算法实现的代码与数据库连接求得最优解。
2.5模型结果及分析:
最少时间和最少花费的线路结果表:
起始站→终点站
乘车路线
时间
费用
S3359→S1828
L436下行(S1784)→L167下行
101分
3元
S1557→S0481
L363下行(S1919)→L189下行(S3186)→L460下行
106分
3元
L084下行(S1919)→L189下行(S3186)→L460下行
106分
3元
S0485→S0971
L013下行(S0992)→L417下行
128分
3元
S0008→S0073
L159下行(S0491)→L058下行
83分
2元
L159下行(S3053)→L474上行
83分