- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
前K条最短路径算法
[注:为了简便我这里只列出算法的步骤和伪代码,详细的数学证明请参见相关论文。C++代码的算法实现可以在我的sourceforge目录/projects/ksp?下载使用。特别要指出的是葡萄牙教授Martins对此算法有深入研究,发表了为数众多的相关论文,我这里采用的也是基于他早期提出的deletion algorithm。Martins的Fortran代码可以在这个网站http://www.mat.uc.pt/~eqvm/?下载,同时这个网站还提供大量相关论文和文献。在此我谨向Martins教授致以敬意。] ?k?条最短路径算法 戴维编译 一、算法说明 ?Deletion Algorithm?删除算法的核心是通过在有向图中已有的最短路径上删除某条弧,并寻找替换的弧来寻找下一条可选的最短路径。删除算法实际上是通过在有向图中增加附加节点和相应的弧来实现的。算法描述如下: ? 1.??Dijkstra?算法求得有向图?(N,A)?中以开始节点?s?为根的最短路径树(注意,这里的最短路径树并不是最小生成树,因为?Dijkstra?算法并不保证能生成最小生成树),标记从开始节点?s?到结束节点?t?之间的最短路径为?pk?,?k=1?。 2.??k小于要求的最短路径的最大数目K,并且仍然有候选路径存在,?令当前路径?p=pk?,转3。否则,程序结束。 3.??p?中从第一个节点开始的入度大于?1?的第一个节点,记为?nh?。如果?nh?的扩展节点?n’?h?不在节点集?N?中,则转?4?,否则找出路径?p?中?nh?后面所有节点中,其对应的扩展节点不在?N?中的第一个节点,记为?ni?,转?5?。 4.为节点?nh??n’?h?,并把其添加到集合?N?中,同时从图?(N,A)?中所有?nh?的前驱节点?连接一条到?n’?h?的弧,弧对应的权重不变,添加这些弧到弧集?A?中,但?nh?在?p?中的前一个节点?nh-1?除外。计算从开始节点?s?到?n’?h?的最短路径,并记?ni?=?nh+1?。 5.??p?中从?ni?开始的所有后续节点,不妨记为?nj?,依次执行如下操作: 5.1?添加?nj?的扩展节点?n’?j?到节点集合?N?中。 5.2?除了路径?p?中?nj?的前一个节点?nj-1?外,分别连接一条从?nj?前驱节点到其扩展节点?n’?j?的弧,弧上的权值保持不变,并把这些弧添加到弧集?A?中。另外,如果?p?中?nj?的前一个节点?nj-1?具有扩展节点?n’?j-1?的话,也需要连接一条从?n’?j-1?到?n’?j?的弧,权值和弧?(nj-1?, nj?)?的权值相等。 5.3?计算从开始节点?s?到?n’?j?的最短路径。 6.??s?到结束节点的当前扩展节点?t(k)’?之间的最短路径为第k?条最短路径,令?k=k+1?,转?2?继续。 ? 在上述步骤?4?、?5?、?6?中均需要计算从开始节点到当前扩展节点的最短路径,因为程序开始时便生成了以开始节点为根的最短路径树,那么只要在扩充节点时,记录下每个新节点相对于开始节点的最短路径中其前一个节点编号以及从开始节点到当前节点的最短路径长度,就可以很容易求得任意时刻有向图中从开始节点到结束节点(或其扩充节点)之间的最短路径。?? ????????扩展节点?:上一条最短路径上的节点可能会在求取下一条最短路径的过程中进行扩展?,也就是在上次节点集合的基础上增加相应的新节点,这些新的节点均称为扩展节点,其会继承被扩展结点的邻接边关系(具体请参见上述步骤4,5)。一个扩展节点仍然可能会在求取下一条最短路径的时候进行扩展,表现在示例图中就是在一个节点标记后面加一撇表示是在原始节点上扩展,加两撇表示是在上次扩展节点上再扩展,依次类推。????????前驱节点?:就是最短路径中某个节点的前一个节点。 ? ?1?所示网络图为例,根据上述算法,分别求得其第?k?条最短路径,求解过程中有向图的变化情况如图?1?-?5?所示,粗体路径表示当前状态下的最短路径,不同类型的圈表示不同阶段生成的节点?。 ? ? ? ? 图1? k=1时的最短路径 ? ? 图2? k=2时的最短路径 ? 图3? k=3时的最短路径 ? 图4? k=4时的最短路径 ? 图5? k=5时的最短路径 ? ? ? ? ? ???参考文献:[这个算法在70年代就提出来了,其间历经完善,发表的论文也是五花八门,为了能让初次接触此算法的人有个系统的认识,我这里列举了这个算法在近10多年发展过程中几篇有代表性的论文。] 1. J.A. Azevedo, J.J.E.R.S. Madeira, E.Q.V. Martins and F.M.A. Pires, A shortest paths ranking
您可能关注的文档
最近下载
- 如何将自己的手机号设置成空号.docx VIP
- 云南省交通规划设计研究院有限公司招聘笔试题库2025.pdf
- 《电气工程基础》(熊信银_张步涵_华中科技大学)习题答案全解 (2).doc VIP
- 急性冠状动脉综合征患者规范化诊疗中国专家共识(冠心病).pptx
- 北师大级硕士研究生“自然辩证法概论”复习题(带答案) .pdf VIP
- 企业劳动用工法律风险调查表.pdf VIP
- 《电气工程基础》(熊信银张步涵华中科技大学)习题答案全解.docx VIP
- 阳痿护理查房课件.pptx VIP
- 护士科室火灾应急预案演练脚本精选(两篇).docx
- 2025年及未来5年中国智慧机场行业市场评估分析及发展前景调研战略研究报告.docx
有哪些信誉好的足球投注网站
文档评论(0)