当前位置:文档之家› 全国大学生数学建模一等奖获奖论文

全国大学生数学建模一等奖获奖论文

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

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

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

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

我们参赛选择的题号是(从A/B/C/D中选择一项填写): B我们的电子文件名:B0302所属学校(请填写完整的全名):广西师范学院参赛队员(打印并签名) :1. 钟兴智2. 尹海军3. 斯婷指导教师或指导教师组负责人(打印并签名):韦程东日期: 2007 年 9 月 24 日赛区评阅编号(由赛区组委会评阅前进行编号):编号专用页赛区评阅编号(由赛区组委会评阅前进行编号):全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):乘公交,看奥运摘要我们基于最小换乘次数算法,设计了公交查询系统,能够分别从时间和花费出发考虑,选择最优路径,以满足查询者的各种不同需求。

问题一:采用最小换乘次数算法,求出任意两站的最小换乘次数,在次数一定的情况下,分别选取花费最少和时间最少作为优化目标,建立两种模型:最少时间模型:∑∑==+-+⨯=31315)))1(((3),(min i i i i i i i x q x n x B A f ;最少花费模型:))1((),(m in '''31i i i y x x B A g -+=∑;利用两种模型求出6组数局的最佳路线如下(两地铁的线路转化成公交的问题,改进问题一中的模型求出此问题的最少时间模型++-+⨯=∑∑∑===)))5)))1(((3((),(m in 313131i i i i i i i i i x q x n x y B A f++-+⨯-∑∑∑===)4))))1(((5.2)(1((3131'31i i i i i i i i i x q x n x y ∑=-31i )z 1(7i i y +∑=31i z 6i i y最小换乘算法进行了改进。

关键词:最小换乘次数, 算法,紧邻点,数据库,路线集问题重述第29届奥运会明年8月将在北京举行,届时有大量观众到现场观看奥运比赛,其中大部分人将会乘坐公共交通工具(简称公交,包括公汽、地铁等)出行。

这些年来,城市的公交系统有了很大发展,北京市的公交线路已达800条以上,使得公众的出行更加通畅、便利,但同时也面临多条线路的选择问题。

针对市场需求,某公司准备研制开发一个解决公交线路选择问题的自主查询计算机系统。

其核心是线路选择的模型与算法,应该从实际情况出发考虑,满足查询者的各种不同需求。

现需解决以下问题:1、仅考虑公汽线路,给出任意两公汽站点之间线路选择问题的一般数学模型与算法。

并根据附录数据,利用你们的模型与算法,求出以下6对起始站→终到站之间的最佳路线。

(1)、S3359→S1828 (2)、S1557→S0481 (3)、S0971→S0485(4)、S0008→S0073 (5)、S0148→S0485 (6)、S0087→S36762、同时考虑公汽与地铁线路,解决以上问题。

3、假设又知道所有站点之间的步行时间,给出任意两站点之间线路选择问题的数学模型。

模型假设1.相邻两站公汽站距离和所需行驶时间相同。

2.公汽与地铁线路都畅通无阻,即没有堵车。

3.人们考虑换乘次数不超过两次。

4.在有直达车的情况下,人们首选直达车。

5.同一地铁站对应的任意两个公汽站之间可以通过地铁站换乘(无需支付地铁费)。

6.人们选择坐地铁都是出于省时考虑,暂不考虑花费。

模型建立与求解问题一1.问题分析人们在选择公交出行路线时考虑的因素很多,如出行耗时是否最少,线路是否最短,换乘次数是否最少,花费是否最少。

资料调查显示,大多数乘客在选择公汽线路时,首先考虑的是乘车是否方便,就换乘次数而言,一般不大于两次[3]。

所以我们采用最小换乘次数算法[1],求出最少换乘次数。

然后在最少换乘次数一定的情况下,我们再针对个人偏好,分别选取花费最少和时间最少作为优化目标。

最小换乘次数最少算法的基本思想是从起始站点A(任意的),终止站点B (任意的)出发,通过比较公交网络上各车站的可换乘车站,追索A到B的可能路径,然后比较各可能路径的时间或花费,来确定最优路线。

2.模型算法与求解2.1 符号说明:{}m K K S ,,2,1)( =为经过A 的线路集。

{}n L L T ,,2,1)( =为经过B 的线路集。

),2,1)(,(i p U U K E =为线路)(K S 上的站点。

其中U 可表示为线路)(K S 上各站点的序号。

),2,1)(,(j p V V L F =为线路)(L T 上的站点。

其中V 可表示为线路)(L T 上各站点的序号。

),,2,1)((g M M R =为经过),(U K E 的线路集。

),,2,1)((z N N Y =为经过),(V L F 的线路集。

2.2 算法步骤及流程图:(1)输入乘车的起始站点A 及终止站点B ;(2)求出经过站点A 的所有线路集)(K S 和经过站点B 的所有线路集)(L T ; (3)判断)(K S 是否等于)(L T ,如果相等再判断)(K S 是否为环行线路,如果是则)(K S 为站点A 到站点B 的直达线路,如果不是环行线路但线路上结束的序号大于开始的序号则仍是直达线路;输出结果,结束运算;如果没有则进行下一步。

(4)求线路)(K S 上的站点),(U K E 以及线路)(L T 上的站点),(V L F ;(5)判断是否存在相同站点,即是否有存在),(U K E =),(V L F 的情况,如果有再判断相交路线是否为环行,如果是且经过终点的路线也为环行,则可一次转车;如果相交路线不是环行,但线路上结束的序号小于结束站序号,仍可一次转车,线路)(K S ,)(L T 即为一次转车的线路,),(U K E 即为转车站点。

如果没有相同站点再执行下面。

(6)求出经过),(U K E 的线路集)(M R ,经过),(V L F 的线路集)(N Y ;(7)判断)(M R 是否等于)(N Y 。

如果相等再判断)(M R 是否为环行线路,如果是则线路)(K S ,)(M R ,)(L T 为两次换车的线路,换车站点为),(U K E 和),(V L F ;如果不是环行线路但线路上结束的序号大于开始的序号则仍可实现二次转车。

输出结果,结束运算。

最少换乘次数算法流程图:(图一)一次转乘算法流程图:(图二)2.3模型建立:对于所求转车线路可能不止一条,我们根据最少时间或最少花费为目标函数求出个人所需最优线路。

记),(A U K E 为线路)(K S 上的A 站点,其序号为A U ;),(B V L F 线路)(L T 上的B 站点,其序号为B V 。

记A U U n -=1, U V n -=2,V V n B -=3, 自A 起三条路线的总站数分别为321,,p p p1,1p U U A ≤≤;2,1p V U ≤≤3,1p V V B ≤≤若线路为上下行或单行,则从A 站点),(A U K E 到转车站点),(U K E 的站点数为A U U n -=1,从),(U K E 到),(V L F 的站点数为U V n -=2,从转车站点),(V L F 到B 站点的站点数为V V n B -=3。

若线路为环行,当A U <U ,V U < ,V <B V 时,A 站点到),(U K E ,),(U K E 到),(V L F ,),(V L F 到B 站点的站点数为A U U n -=1,U V n -=2,V V n B -=3。

当A U >U ,V >B V 时,A 站点到),(U K E ,),(U K E 到),(V L F ,),(V L F 到B 站点的站点数为11n p +,22n p +,33n p +(1)最少时间模型:∑∑==+-+⨯=31315)))1(((3),(min i i i i i i i x q x n x B A f (1.1)s.t. ⎩⎨⎧=,0,1线路为环行线路为上下行或单行i x , )3,2,1(=i (1)3131≤≤∑=i i x (2))m od()(i i i i p p n q +=,i i p q <≤0 )3,2,1(=i (3) (2)最少花费模型:))1((),(min '''31i i i y x x B A g -+=∑ (1.2)s.t.⎩⎨⎧=线路为分段计价线路为单一票制,0,1'ix ,)3,2,1(=i (1)⎪⎩⎪⎨⎧≤≤≤≤≤=ii i j n n n 413,40212,2011,y ' ,)3,2,1(=j (2) 3131≤≤∑=i i x (3)2.4模型求解我们将所给文本1.1公路线路信息.txt 中的数据作处理,用替换的方法使得文本利于导入数据库,利用C#将文本文件的内容一次导入SQL 数据库,接着利用C#编写程序(见附件1),数据库代码见附件2。

利用算法实现的代码与数据库连接求得最优解。

2.5模型结果及分析:我们发现在这6组数据里面,时间最少和花费最少的最佳路线是一样的。

这也是符合常情的。

但也存在站数和时间少但花费多的情况。

这时人们就可以根据自己实际情况选择路线。

2.6模型评价优点:采用最小换乘次数算法,既符合人们一般想法,又把问题及模型简单化。

能够分别从时间和花费考虑建立两种模型,满足查询者的不同需求。

模型结构简单,条理清晰,易于实施,对于编程来说是比较容易的缺点:采用地毯式的遍历搜索,使得程序运行的复杂度过高,运行时间长,不适合于大量数据的应用。

问题二 1.问题分析如果同时考虑汽车和地铁换乘,虽然花费可能会增加,但很有可能减少路径时间,这对赶时间的人来说是十分必要的。

所以此问只考虑最小换乘次数的最少时间模型。

我们依然规定最小换乘次数为2次。

我们建立了两个模型。

2.模型一的算法与求解 2.1符号说明)39,...,2,1(=i D i 为开始站点A 对应地铁站点的车次,)39,...,2,1(=j D j 为终止站点B对应站点的车次i M 为地铁站点i D 对应的公汽站点的集合,j M 为地铁站点j D 对应的公汽站点的集合2.2 算法步骤(1)输入乘车的起始站点A 及终止站点B(2)分别判断A ,B 是否属于i M ,j M ,若都不属于则回到问题一的算法;若i M A ∈,j M B ∈则进行第(3),(4)步;若i M A ∉,j M B ∈则进行第(5)步;若i M A ∈,j M B ∉则进行第(6)步。

相关主题