【发布时间】:2021-12-10 06:52:59
【问题描述】:
是否可以使用Dijkstra's Algorithm 计算从单个源到单个目的地的 N 条最短路径,其中 N 是节点数?我知道 Dijkstra 输出从单个源到图中所有节点的最短路径,但是当我阅读一篇研究论文时,作者提到了使用 Dijkstra 来计算 s 和 t 之间的 N 条最短路径,那是什么让我有点困惑。
以下是原论文的引述: 利用基于 SDN 的 SCADA 系统:反窃听案例研究 也可找到 here
Dijkstra 算法 [22] 用于计算 N 个最短路径(步骤 5),分 N 个阶段。考虑到 N = 2,在第一阶段,Dijkstra 算法确定了两个网络设备之间的最短路径,随后所有链路成本的权重增加了十倍。紧接着,在第二阶段(并且随着链路成本的增加),再次执行 Dijkstra 算法以返回第二最短路径。最后,同样在第二阶段,将第一条路由的链路成本重新建立为原始值。如后所述,N 条最短路径将用于通过不同路径传递通信流,因此将它们存储起来以供以后使用
【问题讨论】:
-
Dijkstra 发表了几种算法。即使是通常被称为“Dijkstra 算法”的算法也有几种变体。您通常可以从上下文中推断出哪一个。你能引用有问题的论文,还是引用它?
-
您的意思是在
s和t之间找到恰好覆盖N路径的最短路径? -
谢谢。我引用了提到这个想法的段落。
标签: algorithm networking routing dijkstra shortest-path