- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于改进DIJKSTRA算法公交换乘简单实现
基于改进DIJKSTRA算法公交换乘简单实现 摘要:目前市面上提供公交查询的网站有很多,一些网站只提供简单的路线查询,也有一些网站提供了换乘方案查询,但均没有提供个性化的换乘方案,也均没有考虑临时改道情况。本设计在这两个方向进行改进,能实现根据不同用户的特点生成不同的最优换乘方案,并提供了在换乘方案中考虑临时改道情况的选项。 本设计的难点在于公交换乘方案的设计。这里采用图论里经典的单源最短路径DIJKSTRA算法来实现,并对这个算法进行了一定的改进,使查询结果更加人性化。本设计的亮点在于本次设计还提供了考虑改道情况的转乘智能分析以及换乘方案的四种智能分析可选方向,这是目前市面上类似产品都没有提供的。 本系统使用Visual Studio 2005+SQL Server 2005开发。使用asp.net2.0框架。已录入福州目前大部分的公交线路,经测试能够提供较人性的公交换乘方案查询,并且界面清晰简洁,操作方便快捷,数据管理紧凑易用,对数据处理的速度能够满足现实查询的速度需要。 关键词:公交线路查询;多种换乘方案;智能分析算法;临时改道信息 中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2012) 20-0000-02 1 概述 1.1 本设计解决的问题 本文设计一个网站系统,实现福州公交线路的查询。包括公交站点查询,公交路线查询,公交换乘方案查询,改道信息查询,后台数据管理等模块。能够提供智能的公交换乘方案是其难点。 1.2 问题现状 公交车换乘方案是大家普遍关心的一个问题。目前网上已有很多相关的公交查询站点,目前公交换乘方案存在的问题有: 一般只考虑该站点的情况,没有考虑走路到相近站点后的情况。 一般都是以最少换乘优先,没有考虑通过增加换乘可能会更快到达的因素。 一般都是只考虑正常路线情况,没有考虑到公交车临时改道后的换乘情况。 换车方案中对换车点的选择考虑不足,没有考虑到换车点对路线优化及可选择性的作用。 1.3 问题难点 公交换乘问题的难点有: 公交车的变动太快,有时甚至是个别路线的短时间的调整。这就要求对公交数据能够及时的更新和维护。 特别是大城市,公交数据量是很大的(考虑各种换乘方案),所以要求要有良好的优化的算法来实现,另一方面对数据的存储结构也有很高的要求。 公交站名的复杂性,上下行公交站名不一致的情况,同一个站名出现在多个站点的情况。 1.4 本次设计的解决方案 提供简洁易用的操作界面,能够方便准确地进行站点情况查询,线路情况查询,改道信息查询,公交换乘查询等。公交换乘算法采用改进的图论里经典的单源最短路径DIJKSTRA算法来实现,能够提供多种查询选项来控制公交换乘的算法的执行。换乘方案可以按指定日期查询,换乘算法中考虑当天的车辆改道情况。 1.5 特色及实用价值 换乘方案的算法中提供了面向普通用户,面向月票用户,面向免费用户,面向自驾车用户等四个方向来生成个性化的最优换乘方案。 换乘方案的算法中提供了按指定日期查询,考虑当天的车辆改道情况,能够生成更为准确实用的换乘方案。能够更好地满足城市人出行公交查询的实际需要。 2 单源最短路径Dijkstra算法在本次设计中的应用 2.1 数据准备 数据的收集,要从网上收集福州的公交各线路站点集。在数据库中,对所有的站点进行编号,每个名字的站点具有唯一的全局编号。在公交线路经站信息表中,对于每一条线路,分为上行和下行两种情况公别对途经的每个站点进行站次编号。比如5路公交车的上行第一站为火车站。根据公交线路经站信息表,可以通过查询语句得到从任意站点到该站点可直达的最少经站数量。比如从福大北门到东街口有三路车可以直达,分别是22(上行)经过8站直达,5(下行)经过7站直达,55(下行)经过8站直达。则福大北门到东街口的直达最少经站数量就是7。这样就可以建立最短直达信息表。用到的查询语句如下: delete from st1tost2 insert into st1tost2(st1,st2,stlen) (select s1.StId,s2.StId, min(s2.StNo-s1.StNo) stlen from xljzxx s1,xljzxx s2 where s1.StIds2.StId and s1.CarName=s2.CarName and s1.UpDown=s2.UpDown and s2.StNo-s1.StNo0 group by s1.StId,s2.StId) 在最优公交换乘方案生成中,将直接读取上述这张表来构建一张有向图。 如果要考虑到临时改道情况,则就不能通过上述的最短直
原创力文档


文档评论(0)