具有权重的Karger算法

时间:2019-08-17 17:15:42

标签: algorithm random graph graph-algorithm kargers-algorithm

  

假定给定一个无向,无权的图G =(V,E),并且有一些成本函数c:E→R> 0将正成本c(e)分配给每个边e∈E。目标是计算最小成本G的最小割线(即,由最少数量的边组成的割线中的最小割线)。给出一种算法,该算法极有可能在多项式时间内找到这样的最小成本最小割。您的算法的运行时间是多少?   提示:Karger算法

方法I: 将Karger做n次c次(仍然是多项式,在c中的n次上提高指数),然后比较所得的最小割。与c> = 1

方法二: 当Karger处于收缩状态时,提高举重的可能性。不影响运行时间

还是两者的结合?

1 个答案:

答案 0 :(得分:0)

方法我似乎没有在Karger的算法中添加任何内容。摘自the introduction to this article“通过对该基本算法进行足够的迭代,可以极有可能找到一个最小的分割。” 换句话说,方法I已经是该算法的一部分。

方法II从技术上讲是不必要的(无论如何,Karger的算法最终仍将找到最小割口),并且可能会严重损害该算法。例如,考虑可以通过删除一个特定边来进行切割的图形,但否则需要两个或多个边进行切割(数字代表边的成本):

enter image description here

如果该特定边缘的成本最高(在此示例中为999),则提高选择该边缘进行收缩的可能性降低,找到(最低成本)最小切割的概率。实际上,它降低了找到(任何成本)最低切割的可能性。

因此,您所需要做的就是运行标准算法。在每次迭代中,您需要检查新发现的切割是否具有比当前最佳切割更少的边。如果是这样,则新发现的切割是迄今为止的最佳切割。如果新发现的切割的边数与当前最佳切割的边数相同,则比较成本以查看哪个更好。