【问题标题】:Karger Algorithm with weights带权重的 Karger 算法
【发布时间】:2019-12-23 14:11:03
【问题描述】:

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

方法一: 做 Karger n^c 次(仍然是多项式,在 c 的 n 上提高指数)并比较得到的最小切割。与 c >=1

方法二: 当 Karger 处于收缩边缘时,提高高权重的概率。不影响运行时

或者两者兼而有之?

【问题讨论】:

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


    【解决方案1】:

    方法 我似乎没有向 Karger 算法添加任何内容。来自the introduction to this article“通过对这个基本算法进行足够多次的迭代,可以高概率找到最小割。” 换句话说,方法 I 已经是算法的一部分。 p>

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-12
      • 2020-08-25
      相关资源
      最近更新 更多