图论应用之公交换乘问题.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图论应用之公交换乘问题

图论应用之公交换乘问题 学院: 指导教师: 摘要 从不同的角度来衡量最佳的公交换乘路线将得到不同的结果,本文将使用图论中广度优先搜索与Floyd最短路径算法来解决公交换乘问题。阐述了二者的原理,并通过实例分析证明其可行性。 关键词:公交换乘 图论 广度优先 最短路径 改革开放以来,我国的社会生产力水平飞速发展,城市化水平也不断提高。随着城市规模的不断扩大,城市的流动人口与机动车辆数目也不断增长。在城市交通中要换公交车才到达目的地。 图G0 根据同构图的定义可以知道,当两个简单图同构时,两个图的顶点之间具有保持相邻关系的一一对应[1],两个图的差异只是顶点和边的名称不同,或两个图的形状不同,不影响图的结构性质。所以为了方便观察作图G1,并将地名换成顶点v1—v7,使得G1G0。 图G1 其中对应地点为石桥铺:v1,大坪v2,华新街v3,观音桥v4,南坪v5,解放碑v6,黄桷垭v7。顶点集V={v1,v2,v3,v4,v5,v6,v7} 1、最少换乘——广度优先搜索 广度优先也称为宽度优先搜索,它是一种先生成的节点先扩展的策略。这种搜索策略的搜索过程是从初始节点V0开始逐层向下扩展,在第n层节点还没有全部搜索完之前,不进入第n+1层节点搜索[2],换句话说,广度优先搜索是以起始点,由近至远,依次访问和起始点有路径相通且路径长度为1,2,…的顶点。 在本例中一位乘客要从A地到B地,希望选择一条途中中转次数最少的线路。假设图中每一站都需要换车,则这个问题反映到图上就是要找一条从顶点A到顶点B所含边的数目最少的路径。我们只需要从顶点A出发对图作广度优先搜索,一旦遇到顶点B就终止。由此所得广度优先生成树上,从根顶点A到顶点B的路径就是中转次数最少的路径,路径A与B之间的顶点就是途径的中转站数。 其搜索步骤为:假设从图中某顶点v出发,在访问了v之后依次访问v的各个未曾访问过的邻接点,然后分别从这些邻接点出发依次访问它们邻接点,并使“先被访问的顶点的邻接点”先于“后被访问的顶点的邻接点”被访问,直至图中所有已被访问的邻接点都被访问到[3]。这里要注意的是每个结点的优先访问问题,根据本例的需要,应先访问权值最小的邻接点。 例如,对图G1进行广度优先搜索,假设从v6到v5,首先访问v6并按时间的长短依次访问v6的邻接点v2,v4,v7,然后访问v2的邻接点v1,v3;v4的邻接点v5,停止。这样就得到最小换乘路径v6-v4-v5,其时间为60分钟。所形成的搜索树如图1所示: 图1 分析上诉算法,最差情形下,广度优先搜索必须寻找所有到可能节点的所有路径,因此其时间复杂度为 O(|V| + |E|),其中 |V| 是节点的数目,而 |E| 是图中边的数目。广度优先搜索算法具有完全性。这意指无论图形的种类如何,只要目标存在,一定会找到。然而,若目标不存在,且图为无限大。因为本例中实际站点不可能无限多个,所以广度优先搜索比较适合寻找最短的公交换乘问题。 2、最短时间——Floyd最短路径算法 有时,对于有些旅客来说,可能更关心的是节省时间。这时就需要应用到图论中的最短路径算法。其中包括指定的顶点对之间的最短路径算法和全部顶点间的最短路径算法。后者较前者在需要大量查询的时候更加适合。这里使用所有顶点间的最短路径算法,该算法最具代表性的是1962年Floyd提出的算法。这里将用该算法来求解本例的问题。 Floyd算法仍从图的带权邻接矩阵出发,起基本思想是:假设求从顶点vi到vj的最短路径。如果vi到vj有路,则从vi到vj存在一条长度为L[i][j]的路径,改路径不一定是最短路径,尚需进行n次试探。首先考虑路径(vi,v0,vj)是否存在,即判定(vi,v0)和(v0,vj)是否存在。如果存在,则比较(vi,vj)和(vi,v0,vj)的路径长度,取长度较短者为从vi到vj的中间顶点的序号不大于0的最短路径。假如在路径上再增加一个顶点v1,也就是说,如果(vi,…,v1)和(v1,…,vj)分别是当前找到的中间顶点的序号不大于1的最短路径,那么(vi,…,v1,…vj)就可能是从vi到vj的中间顶点的序号不大于1的最短路径。将它和已经得到的从vi到vj中间顶点序号不大于0的最短路径相比较,从中选出中间顶点的序号不大于1的最短路径之后,再增加一个顶点v2,继续进行试探。依次类推。在一般情况下,若(vi,…vk)和(vk,…vj)分别是从vi到vk和从vk到vj的中间顶点的序号不大于k-1的最短路径,则将(vi,…,vk,…vj)和已经得到的从vi到vj且中间顶点序号不大于k-1的最短路径相比较,其长度较短者便是从vi到vj的中间顶点的序号不大于k的最短路径。这样,在经过n次比较之后,最后求得的笔试从vi到vj的最短路

文档评论(0)

153****9595 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档