- 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优路径算法设计
我们所采用的K优路径算法出自日本京都大学N.Katoh先生在1982年的NETWORKS期刊上发表的“An Efficient Algorithm for K Shortest Simple Paths”,算法思路清晰、叙述详实,借鉴了很多知名的K路径算法设计,具备很高的权威性。以下是对算法的译文介绍:
需要满足的前提条件如下:
应用于无向的图结构;
任意相连的两点的边权值大于0;
任意两点间的路径不允许成环,也就是路径中不包含重复节点;
4、无向图中的边的条数要大于等于节点的个数;
有关K路径算法的符号说明:
—— 无向图G
V —— 包含n个节点的集合;
E —— 包含m条边的集合 ;
—— 表示从指定节点s到t的第K优路径,那么就是s到t的最优路径,我们将采用
Dijkstra算法得出;
—— 图 中节点v到所有其他节点的最短路径树;
—— 中v到u的最短路径;在无向图中始终满足,;
—— 经过的节点序列,用以表示;其中,;
—— 的初始部分,由个节点组成;
—— 的剩余部分,由个节点组成;此处,和均满足;
——当时,就等于(对于某个而言);但如果对于任何一个,当时,将从的某个点上偏离出去;后一种情况下,采用来表示节点,在该节点从中分支出去[也就是说,包含在当中,但不被包含];
——同样的,采用来表示节点,在该节点从的反向分支出去;
注1:对每一个在上的节点,均满足;
注2:在后续算法描述中,对任意节点均满足;
一、次优和渐次优路径算法描述
次优和渐次优路径算法描述及其所遵循的定理,是KSP算法的理论基础。现描述如下:
1.1 次优路径的计算
定理1
如果图中有若干条从s到t的不包含[也就是说,在到达之前从中偏离出去]的路径,那么其中必有一条相对最短的路径。这样的最短路径必然属于以下两种路径类型之一:
类型1:,且;
类型2:,此时既不在中,也不在中,且;
类型1和类型2的路径如下图所示,
类型1和类型2的路径图
类型1的最短路径可以通过穷举所有的节点获得;同样,类型2的最短路径可以通过穷举所有边获得;本算法中,将采用FSP子程序实现上述计算,FSP子程序将在后面介绍;
根据定理1,我们可以通过计算从s到t的不包含的最短路径的方式,获得。
1.2 渐次优路径的计算
为了计算,我们假设和共有一段初始子路径,但,满足。如果
是图中,从节点s到节点t的所有路径的集合,那么必将在中产生。在这里我们把分成以下的3部分:
……………………….(1)
………………………….. (2)
………………………………………………(3)
可以发现,如果,将是空集;如果,将是空集。从下图我们可以很明显的看出,各集合相互独立,它们的合集等于。此处,我们用
,和分别表示,,的最短路径,再在它们当中得出的最短路径就被认为是。
最短路径,和可以通过应用定理1按照如下的方式获得:
1、通过在中删除节点(连同它们之间的边),获得图。分别将节点和t作为起始和目标节点。在图中应用定理1获得路径P,其不包含
,那么。
2、通过在中删除节点和一条边,获得图。分别将节点和t作为起始和目标节点。在图中应用定理1获得路径P,其不包含,那么。
3、在图中应用定理1获得路径,其不包含。
二、优路径的系统产生
除了前面定义过的,,以外,以下给出了更多的需要用到的符号定义。
;………(2.1)
——索引值表示,对于,能够使与重合的最大值
;……………..(2.2)
——索引值表示,能够满足的最小值;能够保证和的公共部分是;
;………………..(2.3)
——用于存储的集合,以表明在节点,(并且满足)从中偏离出去;
;…(2.4)
——,用于存储节点的集合;
—— 从无向图中删除节点以及受它们影响的边以后,得到的图;……………………………………………………………..(2.5)
…………………………………………… (2.6)
——是图中,从节点s到节点t的所有路径的集合,并且假设 成立;
——表示刨除前K-1条优选路径后的路径集合;算法中,将分成:
………….............(2.7)
(i)对于任意的均包含,但在到达之前从中分支出去(也就是说,不同于)。
(ii)如果,中的路径不会把作为它的初始子路径, [也就是说,不同于(满足)]。
各集合相互独立,它们的合集等于。属于每个非空集合的最短路径被存储在链表中,这样中的最短路径就是。以下描述了集合的系统化产生过程,以及每个集合中最短路径的计算过程。
对于(也就是说,已获得),存在路径集合。获得中的最短路径的计算过程1.1所示。很自然地,我们会考虑到这样
文档评论(0)