Algorithm 加权Karger算法

Algorithm 加权Karger算法,algorithm,random,graph,graph-algorithm,kargers-algorithm,Algorithm,Random,Graph,Graph Algorithm,Kargers Algorithm,假设我们得到了一个无向无权图G=(V,E)和一些代价函数c:E→R> 0将正成本c(e)分配给每条边e∈E.目标是计算最小成本G的最小切割(即,由最少数量的边组成的切割中的最小成本切割)。给出了一种在多项式时间内高概率找到这样一个最小代价最小割集的算法。你的算法的运行时间是多少? 提示:卡格算法 方法一: 做Karger n^c次(仍然是多项式,在c的n上增加指数)并比较得到的最小切割。c>=1时 方法二: 当卡格被带到它的边缘收缩时,增加高重量的可能性。不影响运行时 或者两者的结合?方法我似乎

假设我们得到了一个无向无权图G=(V,E)和一些代价函数c:E→R> 0将正成本c(e)分配给每条边e∈E.目标是计算最小成本G的最小切割(即,由最少数量的边组成的切割中的最小成本切割)。给出了一种在多项式时间内高概率找到这样一个最小代价最小割集的算法。你的算法的运行时间是多少? 提示:卡格算法

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

方法二: 当卡格被带到它的边缘收缩时,增加高重量的可能性。不影响运行时


或者两者的结合?

方法我似乎没有给卡格的算法添加任何东西。From:“通过对这个基本算法进行足够次数的迭代,可以以很高的概率找到最小割。”换句话说,方法I已经是算法的一部分

方法II在技术上是不必要的(Karger的算法最终会找到最小割集),并且可能会严重影响算法。例如,考虑一个图形,它可以通过移除一个特定的边而被切割,但是需要另外两个或更多的边用于切割(数字表示边缘的成本):

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


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

方法I似乎没有为Karger的算法添加任何内容。From:“通过对这个基本算法进行足够次数的迭代,可以以很高的概率找到最小割。”换句话说,方法I已经是算法的一部分

方法II在技术上是不必要的(Karger的算法最终会找到最小割集),并且可能会严重影响算法。例如,考虑一个图形,它可以通过移除一个特定的边而被切割,但是需要另外两个或更多的边用于切割(数字表示边缘的成本):

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

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