收藏 分享(赏)

数学建模2007B_一等奖论文 城市公交线路选择模型.pdf

上传人:精品资料 文档编号:9559340 上传时间:2019-08-14 格式:PDF 页数:22 大小:479.01KB
下载 相关 举报
数学建模2007B_一等奖论文 城市公交线路选择模型.pdf_第1页
第1页 / 共22页
数学建模2007B_一等奖论文 城市公交线路选择模型.pdf_第2页
第2页 / 共22页
数学建模2007B_一等奖论文 城市公交线路选择模型.pdf_第3页
第3页 / 共22页
数学建模2007B_一等奖论文 城市公交线路选择模型.pdf_第4页
第4页 / 共22页
数学建模2007B_一等奖论文 城市公交线路选择模型.pdf_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、 1 本文获全国一等奖,上海一等奖。 城市公交线路选择模型 作者: 王天临,卢章疑,程治宇 摘要:公共交通作为城市交通网络中的重要组成部分,是城市内部人流的主要传输载体,对降低车辆流量、舒缓交通负载与堵塞、改善车流效率发挥至关重要的作用。因此,如何为乘客快速地寻找一条经济、合理、方便的最优乘车路线,是一项很重要而且富有实际意义的课题。 考虑到数据库技术的发展,数据库的运算效率大大提高,因此我们用数据库的方法来表示公交网络。导入 Access 的初始信息包含线路名、站点名、站点序列、行驶方向和收费方式等重要因素,从而简单、清晰地描述公交网络。我们也详细地描述了影响最终路线的因素,包括换乘次数、出

2、行费用、出行时间和满意度等。 我们首先考虑了求最短路问题中的 Dijkstra 算法。 Dijkstra 算法是根据贪心算法设计而成,它在每一步都选择局部最优解以期望产生一个全局最优解,可以计算出给定点到图中所有点的最短距离,从而确定出起始点和目标点之间的最短路径。所以,我们根据Dijkstra 算法构建了模型一。 然而,由于 Dijkstra 算法所要处理的数据结构相当复杂、算法时间长而且最短路径可能包含很多次转乘,我们发现其并不适合在短时间内给出最令人满意的路线。而且,在实际应用中,乘客更加关注转乘次数的多少,所以我们在模型二中应用了智能化搜索算法,认为转乘次数超过两次的路线是没有实际意义

3、的。因此我们讨论了直达、换乘一次和换乘两次等情况下的算法,并且通过 SQL 编程实现算法,找到了各种情况下对应的较优解。随后,我们把换乘次数、出行时间和出行费用纳入到满意度评价算法中,考虑到乘客的个人偏好,通过对各条路线的比较,得到最佳路线。 当考虑地铁因素时,我们对这一模型展开了进一步的分析和讨论,将地铁线路考虑成与公汽线路为同等级别的线路,仅仅在具体的线路名、站名上、收费方式等因素上有所区别,进而对模型二作了推广。 在最后的问题回答与模型分析中,我们通过计算机编程求解,得到了很多组较优的路线,我们取了其中最好的两组路径,在换乘次数、出行时间和出行费用各方面作了深入的探讨和研究,最终确定出最

4、佳路径。 当考虑到步行因素时,我们根据 Dijkstra 算法重新设计了一种改进算法,建立了模型三。通过对各站点创建衍生点的做法,将各条线路的换乘时间转化成了各个衍生点之间线路的权值,在很大程度上简化了换乘时间的算法。而且,我们将目标转化为总时间的最小, 即为总距离的最小, 我们可以通过控制路线经过衍生点的数量来控制换乘次数。这样能有效地抑制传统 Dijkstra 算法可能出现的多次换乘的弊端,实现了对最短路算法的优化。 在模型分析的过程中,我们理解到很多种路线并不存在绝对的最优解,只存在相对的最优解,即考虑到用户的偏好程度而决定的相对满意度最高的路线。我们也发现,加入地铁因素后,有更多的线路

5、出行时间缩短了,同时出行费用增加了,这说明这两者是一对矛盾的共同体,在这种情况下,个人偏好程度将决定最佳路线的选择。 最后,我们在模型评价中把所做的三种模 型作了比较,得出了如下结论: Dijkstra算法是最完备的算法,但是比较繁琐,容易带来换乘次数多的麻烦;智能化搜索算法很便捷,但是算法的完备性略有不足; Dijkstra 算法的改进算法是一种完备的、全面的算法,而且可以较好地实现,属于最好的算法之一。 关键词: Dijkstra 算法;智能化搜索算法;换乘次数;最佳路径 2 本文获全国一等奖,上海一等奖。 一、问题重述 我国人民翘首企盼的第 29 届奥运会明年 8 月将在北京举行,届时有

6、大量观众到现场观看奥运比赛,其中大部分人将会乘坐公共交通工具(简称公交,包括公汽、地铁等)出行。这些年来,城市的公交系统有了很大发展,北京市的公交线路已达 800 条以上,使得公众的出行更加通畅、便利,但同时也面临多条线路的选择问题。针对市场需求,某公司准备研制开发一个解决公交线路选择问题的自主查询计算机系统。 为了设计这样一个系统,其核心是线路选择的模型与算法,应该从实际情况出发考虑,满足查询者的各种不同需求。请你们解决如下问题: 1、仅考虑公汽线路,给出任 意两公汽站点之间线路选择 问题的一般数学模型与算法。并根据附录数据,利用你们的模型与算法,求出以下 6 对起始站终到站之间的最佳路线(

7、要有清晰的评价说明) 。 (1)、 S3359 S1828 (2)、 S1557 S0481 (3)、 S0971 S0485 (4)、 S0008 S0073 (5)、 S0148 S0485 (6)、 S0087S3676 2、同时考虑公汽与地铁线路,解决以上问题。 3、假设又知道所有站点之间 的步行时间,请你给出任意 两站点之间线路选择问题的数学模型。 二、问题的分析 城市公共交通系统以其覆盖面广、经济快捷的特点,目前仍然是绝大多数出行者的首选方式,也是各地城市政府大力发展的一种交通方式。如果能够提供一种服务,为市民特别是外来旅游、出差、就医等急需了解本地道路情况的人提供方便、快捷、经济

8、、高效地利用公交线路的方案将极大地方便他们的出行和生活,同时减少不必要的交通流量,提高交通运输的效率。 1 乘车方案是一个站点、线路的交替序列,该序列说明从起点出发乘坐何线路,途中在何处换乘至另一线路,直至到达终点。 我们首先考虑到,对于乘客来说比较重要的是费用和时间,我们应该设计一种算法使得乘客可以以最小的费用和最少的时间到达目的地。因此,我们想到了贪心算法的一种 Dijkstra 最短路径算法。 Dijkstra 算法是图论中求最短路径的一个著名 的算法,使用其可以求得图中一点到其他各顶点的最短路径树, Dijkstra 模型提出了按路径长度递增 的顺序产生最短路径的方法,根据 Dijks

9、tra 算法的思想,我们建立了通用的最短路模型模型一。 但是经过严密的分析,我们发 现对复杂的公交网络来说, Dijkstra 算法并不合适。数据结构复杂、算法时间长,而且用 Dijkstra 算法算出来的结果可能是从站点 A 到站点B 的距离是最短的,但需要转乘好几次车才能到达,这对于大部分乘客来说几乎是无法接受的。 2 通过对公交乘客出行心理、行为的研究,通常乘客选择出行路线时主要受到“换乘次数” 、 “出行耗时” 、 “出行费用”等因素的作用。用户的满意度主要由用户对该路线的转乘次数、时间和费用的要求所决定,通过各种因素对乘客的满意度来确定模型的优化目标和约束条件。 因此,为了提高算法的

10、效率和快捷性,并且提高最佳路线的命中率,我们采用智能化搜索算法来代替 Dijkstra 算法,建立了模型二。 智能化搜索算法假设了乘客最多只能接受 两次换乘,因此在算法上有了很大的简3 本文获全国一等奖,上海一等奖。 化,而且该算法考虑的首要因素是换乘次数,其次再是出行时间和费用等因素。 模型二中城市公交线路选择系统路线选择问题的实质就是在用户给出起始点、目标点以及他的需求和个人偏好后,通过计算机系统的分析和求解,给用户提供最符合其要求的乘车方案,即用户满意度最高的方案。 图一 因此我们准备通过我们设计的智能化搜索算法,使用先进的数据库技术求出所有可行的方案,然后再考虑所有可行路线的费用及其转

11、车次数,结合用户对路线的要求,综合考虑用户对每一路线的满意度,最终通过多目标优化的方法得到最佳路线。 当然,如果考虑到最后一问中加入步行因素之后,在知道步行时间的情况下,我们认为 Dijkstra 算法是一种具有更大普适性的算法 ,因此我们又从另一个方面推广了Dijkstra 算法,将换乘时间转化成了具体站点的衍生点之间的权值,从而增加了 Dijkstra算法的应用范围,并且将时间和费用转化为时间因素,优化了算法,使模型具有更大的适应性。 4 本文获全国一等奖,上海一等奖。 图二 智能化搜索算法简介: 乘客希望从 A 站乘公交车去 B 站。首先,讨论 A 站是否可以直接到达 B 站。如果存在一

12、条或多条直达公交线路,则从中选择站点数目最少的的公交线路,如图 2(a);若没有,则看经过 A 站的公交车线路和经过 B 站的公交车线路有没有交叉点,若存在某交叉点 C,则选择在交叉点 C 处转车到达 B 站,如图 2 (b);如果经过 A 站的公交车和经过 B 站的公交不存在交叉, 则先乘经过 A 站的某一路公交车到达某一站 C, 看经过 C 站的公交车与经过 B 站的公交车有没有交叉点 D,若有,则在 D 站转车到达 B 站,如图 2 (c)。另外,有可能存在多种两次换乘的方案,如图 2(d)所示。此时,需要判断哪种方案距离最短,然后选择距离最短方案。如果经过 c 站的公交车与经过 B 站

13、的公交车 没有交叉点,说明经过两次换乘还不能从 A 站到达 B 站,则停止搜索。 3 三、模型假设 1. 任何情况下,没有堵车现象 2. 任何时候,乘客不会因满载而无法上车 3. 由于相邻两站间行驶的时间相同,认为其可以代表路径 4. 乘客的满意度由换乘次数、出行时间和出行费用所决定 5. 乘客更加倾向于换乘次数少的线路,换乘次数比出行时间和出行费用更加重要 6. 在智能化搜索算法中,假定乘客最多只能忍受 换乘两次的线路,换乘次数大于两次的线路我们认为没有实际意义 7. 将空间位置邻近的站点抽象成网络图中的一个节点 8. 可相互换乘的公汽站点和可相互换乘的地铁站点在模型中认为是同一个站点 9.

14、 可互相换乘的公汽站点和地铁站在我们的模型中相互独立 10. 乘客不会沿着一条环形线路坐一圈,必定会在中间下车 11. 乘客不会乘坐一趟车子既行又下行 12. 为提高运行效率,环形公交线路只沿一个方向运行 13. 地铁之间换乘无需继续付费。 14. 在公交网络中,若几条不同公交线路经过空间 上的同一站点,则在该站点能够换车,这几条公交线路是连通的 15. 公交乘客在换乘时,通常要步行一段距离才能到达另外一条公交线路的站点 5 本文获全国一等奖,上海一等奖。 四、符号说明 G :所有公交线路和站点组成的有向图 V :该有向图中所有站点的集合 m :起始站点 n:目标站点 :乘客对换乘次数的偏好度

15、的权重系数 : 乘客对出行时间的偏好度的权重系数 :乘客对出行费用的偏好度的权重系数 ()Pi :经过站点 m 的公交线路 ()Qj:经过站点 n 的公交线路 (, )E ig:经过站点 m 的公交线路 ()Pi 所经过的站点 (,)Fjh: 经过站点 n 的公交线路 ()Qj所经过的站点 ()R k :经过 (, )E ig的公交线路 G(k,t) : ()R k 所经过的站点 ()Ls x:线路类型 (x为线路名称, 0-环形, 1-上行, 2-下行 ) ()Ts x:票价类型(x为线路名称, d-单一票价, f-分段计价) (, ,)Oxyz:起始站点的顺序编号(,x yz分别为线路名称

16、,站点名称,线路类型) (, )Cxy:同一线路上站点x y经过的路段数 (, )Txy:同一线路上站点x y所用的时间,即 (, ) 3 (, )Txy Cxy=(, )Fxy:在所有路线上从站点 x y 的费用 w:所有可换乘站点间换乘的平均耗时 E :实际的换乘次数 (, ,)SEFT: 乘客对于某一条线路的满意度 五、模型的分析与建立 模型一 基于 Dijkstra 算法的公交线路选择模型 一、模型的分析 城市公共交通作为城市交通网络中的重要组成部分,是城市内部人流的主要传输载体,对降低车辆流量、舒缓交通负载与堵塞、改善车流效率发挥至关重要的作用。如何快速寻找一条经济、合理、方便的最优

17、乘车路线或换乘方案,是一项很重要而且富有实际意义的课题。 经过一系列的资料查阅,我们发现 Dijkstra 算法可以求解公交线路选择模型,它可以计算出给定点到图中所有点的最短距离,从而确定出最优路线。 由于在本题中,乘坐公交路线的平均时间是确定的,为 3 分钟。因此我们在第一个问题中将距离问题转化成为时间问题的假设是合理的,我们以时间来作为每一条边的权值。 Dijkstra 算法是由著名的数学家 E W Dijkstra 于 1959 年首先提出来的。它是按路径长度递增的次序产生最短路径的一种算法,该算法采用了在优化问题中常用的贪心算法:在每一步都选择局部最优解以期望产生一个全局最优解。 采用

18、 Dijkstra 算法不仅能求出从起点到终点的最短路径,而且最后所得到的实际上是从起点到各顶点的最短路径。 对于用 Dijkstra 算法实现求解最短路径问题的只有边权,没有包含等级。因此模型一求解出的最佳路径是基于时间和费用的。 6 本文获全国一等奖,上海一等奖。 在应用 Dijkstra 算法解决这一问题时候,我们考虑的首要因素是出发站和目的站的最短距离,即如何通过最短的途径到达目的地。 二、模型的建立 我们把所有的站点和线路考虑成为一个有向联通图,认为是G。 V是G的顶点集合,S是V的子集,满足起始站点mS,S是V中S的补集。 在 m 到 S 中顶点的所有有向路径中,令 P 是最短长度

19、的路径。 P 的长度叫做从 m 到S的距离,记做(,)dmS。令P: m, u, v。进而,P的 m u 部分必定是所有顶点在S中的最短路径。 于是有 (,) (,) (,)dmS dmu wuv=+(1) / (,)dmS 为 最短长度的路径 由此,距离 (,)dmS 可表示为 (,) min(,) (,)uSvSdmS dmu wuv=+ (2) 这是 Dijkstra 算法的基本思想,我们将在其基础上展开讨论和应用。 在 Dijkstra 算法中,从上一步到下一步,为了避免那些重复的加法和比较,我们通过存储计算信息来避免,我们通过标号程序即可办到。 假定我们进行编号,并使得对于 i 1,

20、2 ,,每个顶点的标号 ()ilv均满足 1、 () 0ilm= , ()ilv= 对于所有 vm 2、对于 1i , () (,)ilv dsv= , 对于所有1ivS ( ) min ( , ) ( , )ilv dmu wuv=+ 对于所有1iuS 显然,顶点iu 具有11(, ) (, ) min()iiivSdmu dmS lv=的性质。 根据下面的方法,我们由 ()ilv来计算1()ilv+: 对于ivS ,1() () (,)iilvlvdsv+= 对于ivS ,1() min( , ) (,) min(), ( ) ( ,)ilv dmuwuv lvlu wuv+=+= + 因

21、此,对于所有 vm , Dijkstra 算法可以不再遍历已经有过标号的数据点,因而算法复杂度也降低了。 具体的算法可以表示为: 1).首先,我们构造了V的子集序列S,引进一个辅助向量P,它的每个分量iP 表示当前所找到的从始点 m 到每个终点in 的最短路径的长度。 它的初态为:若从 m 到in 有弧,则iP 为弧上的权值;否则置iP 为。显然,iP 的路径就是从 v 出发的长度最短的一条最短路径。 我们把图中所有顶点分成两组,第一组S包括已经确定最短路径的顶点,初始时为空,我们从客户的输入信息中确定了起始站点 m ,将其加入到S中。 第二组 S 中包括尚未加入最短路的顶点,初始时含有除源点

22、以外的所有其他顶点。 2).我们根据然后再寻找S中与 m 最近的一条路径,即 (,) min(,) (,)uSvSdmS dmu wuv=+(3) 7 本文获全国一等奖,上海一等奖。 3)选取下一个点,从所有未标记的结点中,选取其中iP 最小的一个 i: 按路径长度递增的顺序计算源点到各顶点的最短路径,逐个把第二组中的顶点加到第一组中去,直至 S=V。算法结束时,沿着最终点前溯,即可找到最佳路径。 图三 图三即算法流程, 我们可以根据其求解出最短路径, 从而提出较优的公交乘坐路线。 三、算法示例与应用检验: 图四 8 本文获全国一等奖,上海一等奖。 根据 Dijkstra 最短路径算法,我们可

23、以得到如下表格 i A B C D E F 0 0 1 0 17 19 2 0 17 19 3 0 17 19 35 4 0 17 19 35 53 5 0 17 19 35 53 表一 图五中 A F 为图中各顶点,各顶点间的连线代表其权值,可以反映一种彼此之间的路的长短,表中数据后面加为标记符号,也可代表 A 到该点的最短距离。 我们可以通过从终点回溯,来找到从 A 点到该点的路径。 例如,我们想要求从 A 点到 E 点的最短路径,我们从表中第三行看出 E 是经过 D连接到 A 的,所以我们可以给出从 A 到 E 的最短路径,即 A D E,最短距离为 35。 显然,通过 Dijkstra

24、 算法,我们可以找到所有从 A 点出发到图中的任意点的最短路径,而且可以把行进路线完全地跟随出来,这是符合公交线路最短路的要求的。 四、算法正确性和计算复杂度分析 1、算法正确性分析 Dijkstra 算法是根据贪心算法设计的, 它所做出的选择是从 V S 种选择最短特殊路径的顶点,从而确定从源到该顶点的最短路径长度 Pi。这种贪心选择为何能够得到最短路呢? 证明如下: 在某条已求得的最短路上,分别记 (, )dvx, (,)dxu和 (, )dvu为从顶点 v 到顶点 x,从顶点 x 到顶点 u,从顶点 v 到顶点 u 的路径长度,那么 (,)iPx dvx (, ) (, ) (, ) i

25、dvx dxu dvu Pu+=终点站的最佳路线 我们考虑到 Dijkstra 算法并不适合求解这一类复杂的交通问题,因此我们采取了模型二中的智能化搜索算法来求解。 我们先整理了数据,将所有线路和站点及其行 驶方式和收费方式导入到了 Access数据库中。 然后,我们根据智能化搜索算法,编写了计算机程序进行求解,经过反复调试,得到了很多种出行路线。 我们从中选取了最佳的两种路线,作了整理和调整那个,来进行分析和比较。 在图中, s 代表站点, L 代表公交线路,自左向右便是整个线路的流程。两个站点名称连在一起代表换乘。 (1)、 S3359-S1828 时间 费用 换乘次数路线一 s3359

26、L436 s1784 L167 s1828 101 3 1路线二 s3359 L484 s3727 L485 s1784 L167 s1828 64 3 2我们可以看出,路线一的强调了换乘次数,只有一次换乘,但是在时间上需要 10117 本文获全国一等奖,上海一等奖。 分钟,这显然更加符合看重换乘次数的乘客;而路线二,虽然包含两次换乘次数,但是实际上只需要 64 分钟即可到达目标点,更加适合对时间方面有更大要求的乘客。 显然,在很多种情况下,我们通过换乘有可能大大缩短出行距离,减少出行时间,使我们能在相对较少的时间内抵达目标点;同时,过分追求出行时间的减少,有可能会增加乘客的转乘次数,给乘客带

27、来不便。 (2)、 S1557 S0481 时间 费用 换乘次数路线一 s1557 L84 s1919 L189 s3186 L460 s0481 106 3 2路线二 s1557 L84 s1919 L417 s0902 L312 s0481 115 3 2从上表,我们看出,在费用和换乘次数方面,两种路线相等,但是在时间方面,路线一比路线二要小得多,很显然,我们认为路线一要优于路线二。 因此,我们可以认为,路线一是 S1557 S0481 的最优路径。 (3)、 S0971 S0485 时间 费用 换乘次数路线一 s0971 L13 s2184 L417 s0485 128 3 1路线二 s

28、0971 L13 s2517 L290 s2159 L469 s0485 103 3 2此情况与 (1)同理,在乘客强调换乘次数时,即使多花费点时间,也愿意选择换乘次数少的路线一;在乘客强调时间因素时,他宁可增加换乘次数,也希望能够早点到达目标站点。 (4)、 S0008 S0073 时间 费用 换乘次数路线一 s0008 L159 s3614 L58 s0073 83 2 1路线二 s0008 L159 s0630 L231 s0483 L57 s0073 70 3 2此情况与 (1)同理,在乘客强调换乘次数时,即使多花费点时间,也愿意选择换乘次数少的路线一;在乘客强调时间用时,他宁可增加换

29、乘次数和费用,也希望能够早点到达目标站点。 (5)、 S0148 S0485 时间 费用 换乘次数路线一 s0148 L308 s0036 L156 s3351 L417 s0485 106 3 2路线二 s0148 L24 s1487 L378 s2027 L469 s0485 121 3 2此情况与 (2)同理,在费用和换乘次数方面,两种路线相等,但是在时间方面,路线一比路线二要小得多,很显然,我们认为路线一要优于路线二。 (6)、 S0087S3676 时间 费用 换乘次数路线一 s0087 L454 s3496 L209 s3676 65 2 118 本文获全国一等奖,上海一等奖。 路

30、线二 s87 L21 s88 L231 s427 L97 s3676 46 3 2乘客如果希望节省时间,就必须付出相对较大的费用和换乘两次;乘客如果希望减少费用,那么势必要增加出行时间;乘客如果希望减少换乘次数,那么也要增加出行时间。 通过对以上六对数据的比较,我们可以发现 (2)和 (5)可以得到最佳路线,因为有最小的时间、费用和换乘次数;但是在其他的 (1)、 (3)、 (4)、 (6)中我们必须综合考虑乘客的个人偏好,然后再决定哪条线路最适合该乘客。 我们可以知道,为了追求单方面的因素,导致另外两个因素对应的参数值变大,增加了乘客的成本。所以,很多情况下,并不存在绝对的最优路径。我们只有

31、根据顾客的实际需求,了解到其个人偏好 、 、 才能根据 11(, ,)= e ln( )EETFSEFT + + 得到最佳的路径。 二、同时考虑公汽和地铁线路,解决以上问题 通过以上的算法,我们编制了计算机程序来求解,经过运行,我们得到了下列的相对最优化线路: (1)、 S3359-S1828 时间 费用 换乘次数路线 s3359 L484 s3727 L485 s1784 L167 s1828 64 3 2(2)、 S1557 S0481 时间 费用 转乘次数 路线 s1557 L84 s1919 L189 s3186 L460 s0481 106 3 2 (3)、 S0971 S0485

32、时间 费用 换乘次数 路线 s0971 L13 s2517 L290 s2159 L469 s0485 103 3 2 (4)、 S0008 S0073 时间 费用 换乘次数路线 s0008 L159 s3614 L58 s0073 83 2 1 (5)、 S0148 S0485 时间 费用 换乘次数 路线 s0148 L024 s1487 D02 T1 D21 s0464 L469 s0485 86.5 5 2 (6)、 S0087S3676 19 本文获全国一等奖,上海一等奖。 时间 费用 转乘次数路线 s0087 D27 T2 D36 s3676 35.5 3 0通过第六条路线,我们只需

33、要乘坐一次地铁 T2,从 D27 乘坐到 D6,只需要 35.5分钟, 3 元钱,也不需要转乘,与通过公汽转乘的模型相比,显然,这是一条最佳路线。 根据我们的算法,我们可以知道,很多情况下,加入地铁因素并不一定能影响人们乘坐公汽,因为如果是短途的话,公汽比地铁便宜而且要节省时间,并免去了转乘的麻烦。因此,即便我们考虑了地铁因素,在很多路径上,通过公汽换乘仍然是最好的路径。 当然,很多人还是会选择乘坐地铁,因为速度比公汽要快而且可以和很多个公汽站点相互转乘,还是属于比较方便的。 三、假设又知道所有站点之间的步行时间,请给出任意两站点之间的线路选择问题的数学模型 基于 Dijkstra 算法改进后

34、的公交线路选择模型 由于加入了步行因素,需要考虑所有站点间的步行时间,上述智能化搜索方法虽然可以在搜索速度上比 Dijkstra 算法要好,但是考虑到智能化搜索方法是一种完备性并不充分的算法, 在存在步行的情况下, 很难处理这一问题。 因此, 我们考虑用经典的 Dijkstra算法来建立第三问的数学模型。我们想到了一种基于 Dijkstra 的一种改进算法。 改进的 Dijkstra 算法描述: 1)假设通过某个站点的线路有 N 条,那么就把这个站点复制为 N 个,我们将所有站点都这样处理。如图所示,经过 A 点的线路有 L1、 L2、 L3 三条,我们将 A 点离散成A1、 A2、 A3 三

35、个点,从而使得 L1、 L2、 L3 分别经过这三个点。这样一来,我们可以将在 A 站换乘的时间问题转换成为在车站之间的问题。图九 通过这一手段,我们实现了将复杂的转乘和步行因素的关系转化成了简单的完全连通图的关系。 我们将换乘时间转化成为了各个衍生点之间线路的权值,使得所有的换乘问题变得简单明了。而且,在通过我们先利用 Dijkstra 算法计算出最短路径后,我们可以通过考察最短路径经过这些衍生点的数目来讨论在该点有否换乘。例如:最短线路仅通过 A0、A1、 A2 中一个站点的时候,说明没有发生换乘;如果该路线通过了大于等于两个站点20 本文获全国一等奖,上海一等奖。 时候,说明在 A 点发

36、生了换乘,借助这一思想,我们可以统计出整条线路的换乘次数,方便做出调整。 2)我们巧妙地把换乘因素和费用因素都转换为时间因素,即把出行费用和出行时间同一化,将所有换乘、步行、票价和乘车时间全部转化为总时间的范畴。这样,我们的最优化目标就是实现时间最短的线路,即为最佳线路。 123Tttt=+ / T 为总时间 1t 为行驶时间 2t 为换乘时间 3t 为票价转化时间 132.5ts d=+ /此处 s代表乘汽车经过的站数, d 代表乘坐地铁经过的站数 421iiitwE=/ iw 为每次换乘的时间,为每次换乘的类别 3480nmdta= /n为转乘次数, m 为票价, d 为法定年工作天数,

37、a居民人均年收入 7 这一公式实现了将乘车费用转化为时间因素,将所有的因素都转化为时间因子,方便了算法的进行。 3)算法的原理 算法继承了 Dijkstra 算法的原理,以每一次消耗的时间为权,以 min 123Tttt=+ 为算法目标,通过求最短时间的方法,求出综合了行驶时间、换乘时间和票价等复杂因素的总“时间” ,从而换算出消耗最少时间的路径,然后根据最短路径,在此路径中寻找出可以用步行代替的换乘点, 目的是为了大大降低换乘次数, 用步行来代替换乘,最终得到最短时间,进而得到最佳路径。 12 3 4Ttttt= + /4t 为代替换乘的步行时间 4)模型的优化与检验 在求出最佳路径之后,我

38、们可以通过考察最短路径经过这些衍生点的数目来确定有否换乘。 因为我们的目标还是在最少的换乘次数下,以最少的费用和最短的时间到达目的地,我们可以有效地检验换乘次数的多少,以便及时作出调整。比如说把一些不必要的换乘转换为步行,这样可以有效地减少换乘次数。因此,我们这种改进能有效地解决用传统 Dijkstra 算法的问题。 即通常计算出的从起点站到目标站需要转好几次车或十几次车才能到达目的地的不现实的结果。 七、模型评价 一、模型一我们借鉴了 Dijkstra 算法的思想,很好地利用了网络最短路的思想,通过贪心算法,我们可以找到所有从起始点出发到图中的任意点的最短路径,而且可以把行进路线完全地跟随出

39、来,而且这一算法是全局化的,我们可以很好地做到将每一个点都纳入到这一路径中来。该算法采用了在优化问题中常用的贪心算法:在每一步都选择局部最优解以期望产生一个全局最优解。 有很多最优路径问题可以转化为最短路径问题,而且网络最优化的其它许多问题也都可以转化为最短路径问题或者用最短路径的算法作为其求解的子过程。最短路径不仅21 本文获全国一等奖,上海一等奖。 仅可以一般地理意义上的距离最短,还可以引申到其它的度量,如时间、费用、线路容量等。相应地,最短路径问题就成为最快路径问题、最低费用问题等。 但是,模型一也有它的不足之处,它的算法时间比较长,而且用 Dijkstra 算法计算出来的结果有可能是从

40、起点站到目标站需要转好几次车。 二、模型二采用了智能化搜索算法 在用户输入其个人信息后,即起始站点、目标站点和个人偏好(对换乘次数、出行时间和出行费用的偏好) ,根据起始站点和目标站点通过 智能化搜索算法求解出满足条件的几种较优线路。 在这种模型中,我们假设乘客最多只能忍受转乘两次的线路,超过两次的我们理解为对乘客没有实际意义。然后,再根据用户的个人偏好,在换乘次数、出行时间和出行费用三个方面通过满意度评价算法展开评测,针对用户的偏好选择适合他的最优路线。 模型的优点是算法实现起来比较简单,容易从复杂的数据中得到结果,而且我们考虑了个人偏好因子,注意到了各个方面的因素,能够比较好地实现这一系列

41、的算法,得到比较满意的路线。 三、基于 Dijkstra 算法改进后的公交线路选择模型 由于加入了步行因素,需要考虑所有站点间的步行时间。我们将换乘时间转化成为了各个衍生点之间线路的权值,使得所有的换乘问题变得简单明了。而且,在我们通过Dijkstra 算法计算出最短路径后,我们可以考 察最短路径所经过的衍生点的数目来讨论在该点的换乘次数。 而且,我们通过 Dijkstra 算法计算出最短路,然后再考察是否有更好的路线来代替它,如果可以通过步行来代替换乘,通过再次的比较,我们也可以得到最优解。 模型的优点在于我们引入了衍生点概念,将一个站点上的换乘时间转化成为各衍生点之间线路的权值, 排除了换

42、乘的干扰。 同时我们将所有相关因素转化为总时间来考虑,使算法简便了不少,提高了算法的可行性和可靠性,使模型更有说服力。 八、模型推论 从上述建模和求解过程中,我们发现了很多规律和推论 1、如果是短途出行,乘坐公汽比乘坐地铁更加合适; 2、如果是长途出行,乘坐地铁更为省钱而且容易转乘其他公交系统; 3、在地铁线路之间转乘,对于要长途出行的人更为有利; 4、地铁比公汽能够传输更多的人流量,建设地铁对于一些大城市有着很大的意义; 5、地铁和公共汽车的相互换乘构成了复杂的交通系统,也给人们提供了多条的路径选择。 6、地铁换乘不收费的举措虽然比较人性化,但是会导致地铁系统压力过大。 7、考虑到步行因素,

43、城市交通系统复杂度非常之大。 8、必须加强对城市公交系统的控制,使其顺畅而且方便。 九、参考文献 1 舒 靖,城市公交查询系统设计科技信息,科技信息, 10: 13 14, 2007。 2 王建林,基于换乘次数最少的城市公交网络最优路径算法,经济地理,第 25 卷第 5 期, 674 675, 2005。 3 陆 忠,钱翔东, 张登荣,基于最短路径查询的城市公交网络拓扑建模研究,遥感信息, (1): 11 14, 2002。 22 本文获全国一等奖,上海一等奖。 4 M.N.S.SWAMY K.THULASIRMAN 图、网络和算法,北京:高等教育出版社,1988。 5 刘光明,蔡先华,苗 聪,一种城市公交查询的算法及其应用,交通运输工程与信息学报,第 3 卷第 2 期: 87 88, 2005。 6 戴树贵 , 孙 强 , 潘荫荣 ,带限制条件的多权最短路径算法 , 上饶师范学院学报 , 2002 年 6 月第 22 卷第 3 期 :16-18,2003。 7 王 莉 ,李文权,公共交通系统最佳路径算法,东南大学学报,第 34 卷第 2 期:264 265, 2004。 十、附录 附录一、 汽车地铁数据库、汽车数据库(内含代码) 见附件 附录二、 Dijkstra 算法源代码

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报