去除最大边缘,同时保持最小距离

时间:2019-01-11 23:58:03

标签: algorithm

假设我们有一个顶点从1到n的图,该图是无向的,起点是1,我们有从1到任何其他顶点的路径,我们在每个边上也有正权重,并且有两种类型的边缘-黑色和红色。 黑色边缘的形式为(1,x),其中x是一个顶点,红色边缘可以是任意对(x,y)。我的问题是如何找到可以去除的最大黑色边缘数量,以便最小是否保留了从1到任何其他顶点的距离?

1 个答案:

答案 0 :(得分:2)

类似这样的事情。使用您最喜欢的路径查找算法,使用成本函数{total weight, number of black edges}找到从1到另一个顶点的最短路径。在其他条件相同的情况下,这将产生更喜欢红色边缘的路径。

您现在可以删除不属于任何路径的所有黑色边缘。