在有向图中查找第二条最短路径

Find SECOND shortest path in directred graph

本文关键字:二条 最短路径 有向图 查找      更新时间:2023-10-16

我需要一种方法来找到有向图中第二短的路径,在第二条最短的路径之上不能完全包含最短的路径。我知道dijkstra算法,但我无法找到一种简单的方法来改变该算法,以便在合理的时间内给我第二条最短的路径。算法,sudo代码或c ++示例,三者之一将不胜感激。

不确定以下内容是否正确且有效,但这只是一个想法......

第二条最短路径至少有一条与最短路径不同的边。如果没有节点被访问两次,这也意味着最短路径中至少有一个边未被第二条最短路径使用。

如果这是正确的,您可以先搜索最短路径。然后对于最短路径中的每个边:将其权重设置为无穷大(即将其从图形中排除),并在生成的图形中搜索最短路径。其中最短的路径应该是原始图形中的第二短路径。