最短路径的最大流量算法?

时间:2018-07-20 09:54:16

标签: algorithm graph

这种算法有一些资源吗?

我有一个未加权的图(所有边都精确到一个容量),我想找到源顶点和宿顶点之间的所有不同路径(所有路径都可能没有一个共享顶点)。我想到了最大流量问题和算法,但问题是我想拥有一个算法,该算法可以让我拥有所有最短截然不同的路径。

由于最大流量算法只是在搜索BFS或残差图中的某些内容,因此它将随机增加我的流量(由于权重为1,因此最大流量算法的每次迭代都会增加我的流量为1,这对应于找到一条新的独特路径),而我最终将获得最大数量的独特路径,但是我却无法获得最大数量的独特最短路径。

1 个答案:

答案 0 :(得分:2)

要获取最大数量的最短路径,如何操作:

  • 首先执行BFS,并为每个节点分配一个数字,这将 表示距源的距离。
  • 然后删除具有相同编号的节点之间的所有边缘
  • 确定边缘的方向,因此没有流程可以从较高值的节点移回到较低值的节点
  • 运行从源到接收器的最大流量。

由于没有其他选择,就最短路径而言,最大流量始终仅需向水槽近一步。更改后不可能找不到任何最短的路径,因为任何最短的路径都必须在每一步中增加它的下一个节点的值,否则就会有另一个更短的路径。