如何在线性规划约束中表示最小生成树?

时间:2014-12-19 08:31:44

标签: algorithm linear-programming

假设我们给出了加权图G和它的生成树T.我们想要改变边的权重,使得T是最小生成树和所有的总和| w_i - w' _i |最小值,其中w_i是边i_th的权重,w' _i是更改后的边i_th的权重。

我认为很明显我们的目标是尽量减少| w_i - w' _i |的总和。对于所有我和我们的变量是w' _i但是我无法找到如何表示T是约束中的最小生成树。

2 个答案:

答案 0 :(得分:1)

对于每个i,使得i th 边缘不在T中,对于每个j,使得j th 边缘位于T中从一个端点的唯一路径上i th 边缘到另一边,有一个约束w i ' - w j '≥0。

答案 1 :(得分:0)

您可以使用Prim's algorithm的修改版本。

此算法构建一个连通分量,在每个点上添加从组件到组件外部顶点的权重最小的边。

请注意,在每个阶段,原始生成树中只有一条边(称为e)将组件连接到组件外部的顶点,但图中可能还有其他边。

您可以检查所有潜在边缘(从组件到组件外部)并计算最小重量。然后,您需要将边缘e从其原始重量更改为具有计算的最小重量。

然后,您可以将边e添加到组件并重复,直到使用所有原始生成树边计算最小生成树。