【发布时间】:2013-01-07 21:45:30
【问题描述】:
给定一个未加权无向图的邻接矩阵,是否有一种有效的方法(多项式算法)来扩展/增加任何给定两个节点 s 和 t 之间的最短路径的长度?
示例:
在下面的示例中,从顶点 s=1 到顶点 t=5 有 5 条不同的“最短路径”,每个长度为 3。我想删除最少数量的边,以便强制最短路径长度变成4个或更多。 (断开图表是可以的。)
邻接矩阵(扩展修正示例):
0 1 0 0 0 1 1 1 0 1 0
1 0 1 1 0 0 0 0 0 0 0
0 1 0 0 1 0 0 0 0 0 1
0 1 0 0 1 1 0 0 0 0 0
0 0 1 1 0 1 0 0 0 0 0
1 0 0 1 1 0 0 0 1 0 0
1 0 0 0 0 0 0 0 1 0 0
1 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 1 1 1 0 0 0
1 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
表示此图:
强制最短路径长度从 3 增加到 4 的最小成本是去除两条边 (1,2) 和 (5,9)
目标:
您能否给出一个通用算法的想法,该算法可以找到在一般情况下必须删除的边集?
更正:正如我在 cmets 中所指出的,此示例并不完整。通过再添加两个顶点 10 和 11(以红色显示),示例被救出。
【问题讨论】:
-
你试过什么?请为您描述的示例发布邻接矩阵(使我们不必考虑)。
-
@AKE 我已经编辑了问题。
-
哪些顶点是s和t?
-
@ake 1 是源,5 是接收器
-
@AKE:我通过 max-flow min-cut theorem 解决了这个问题。答案是最小切割的边缘
标签: algorithm graph-theory graph-algorithm shortest-path