{"title":"一种新的$O(m+k n log overline{d})$算法,用于在无环有向图中找到$k$最短路径","authors":"M. Kadivar","doi":"10.22108/TOC.2016.12602","DOIUrl":null,"url":null,"abstract":"We give an algorithm, called T$^{*}$, for finding the k shortest simple paths connecting a certain pair of nodes, $s$ and $t$, in a acyclic digraph. First the nodes of the graph are labeled according to the topological ordering. Then for node $i$ an ordered list of simple $s-i$ paths is created. The length of the list is at most $k$ and it is created by using tournament trees. We prove the correctness of T$^{*}$ and show that its worst-case complexity is $O(m+k n log overline{d})$ in which n is the number of nodes and m is the number of arcs and $overline{d}$ is the mean degree of the graph. The algorithm has a space complexity of $O(kn)$ which entails an important improvement in space complexity. An experimental evaluation of T$^{*}$ is presented which confirms the advantage of our algorithm compared to the most efficient $k$ shortest paths algorithms known so far.","PeriodicalId":43837,"journal":{"name":"Transactions on Combinatorics","volume":"64 1","pages":"23-31"},"PeriodicalIF":0.6000,"publicationDate":"2016-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"A new $O(m+k n log overline{d})$ algorithm to find the $k$ shortest paths in acyclic digraphs\",\"authors\":\"M. Kadivar\",\"doi\":\"10.22108/TOC.2016.12602\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"We give an algorithm, called T$^{*}$, for finding the k shortest simple paths connecting a certain pair of nodes, $s$ and $t$, in a acyclic digraph. First the nodes of the graph are labeled according to the topological ordering. Then for node $i$ an ordered list of simple $s-i$ paths is created. The length of the list is at most $k$ and it is created by using tournament trees. We prove the correctness of T$^{*}$ and show that its worst-case complexity is $O(m+k n log overline{d})$ in which n is the number of nodes and m is the number of arcs and $overline{d}$ is the mean degree of the graph. The algorithm has a space complexity of $O(kn)$ which entails an important improvement in space complexity. An experimental evaluation of T$^{*}$ is presented which confirms the advantage of our algorithm compared to the most efficient $k$ shortest paths algorithms known so far.\",\"PeriodicalId\":43837,\"journal\":{\"name\":\"Transactions on Combinatorics\",\"volume\":\"64 1\",\"pages\":\"23-31\"},\"PeriodicalIF\":0.6000,\"publicationDate\":\"2016-09-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Transactions on Combinatorics\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.22108/TOC.2016.12602\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q3\",\"JCRName\":\"MATHEMATICS\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Transactions on Combinatorics","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.22108/TOC.2016.12602","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"MATHEMATICS","Score":null,"Total":0}
引用次数: 1
摘要
我们给出了一个算法,称为T ^{*}$,用于在无环有向图中寻找连接某一对节点,$s$和$ T$ $的k条最短简单路径。首先,根据拓扑顺序对图中的节点进行标记。然后为节点$i$创建一个简单$s-i$路径的有序列表。列表的长度最多为$k$,它是通过使用锦标赛树创建的。我们证明了T$^{*}$的正确性,并证明了它的最坏情况复杂度为$O(m+k n log overline{d})$,其中n为节点数,m为弧数,$overline{d}$为图的平均度。该算法的空间复杂度为0 (kn),极大地提高了空间复杂度。提出了T$^{*}$的实验评估,证实了我们的算法与迄今为止已知的最有效的$k$最短路径算法相比的优势。
A new $O(m+k n log overline{d})$ algorithm to find the $k$ shortest paths in acyclic digraphs
We give an algorithm, called T$^{*}$, for finding the k shortest simple paths connecting a certain pair of nodes, $s$ and $t$, in a acyclic digraph. First the nodes of the graph are labeled according to the topological ordering. Then for node $i$ an ordered list of simple $s-i$ paths is created. The length of the list is at most $k$ and it is created by using tournament trees. We prove the correctness of T$^{*}$ and show that its worst-case complexity is $O(m+k n log overline{d})$ in which n is the number of nodes and m is the number of arcs and $overline{d}$ is the mean degree of the graph. The algorithm has a space complexity of $O(kn)$ which entails an important improvement in space complexity. An experimental evaluation of T$^{*}$ is presented which confirms the advantage of our algorithm compared to the most efficient $k$ shortest paths algorithms known so far.