随机算法的基本问题

时间:2019-08-17 13:28:17

标签: graph-theory graph-algorithm computation-theory probability-theory correctness

  

问题集:   您将获得一个称为ALG的随机算法,该算法将未定向的图G作为输入并在线性时间内输出具有以下属性的数字k:概率至少为1 / n,数字k是最小切割的大小现在有人想到通过运行ALG n次来增加获得最小切割尺寸的可能性(这导致O(n ^ 2)算法)。这是一种合理的方法吗?上述算法与Karger算法的主要区别是什么?

P(“ ALG得到minCut”)= 1 / n

P(“如果重复n次,ALG将获得minCut”)= 1-(1-1 / n)^ n <1-1 / e

因此,我们将概率从线性提高为常数,但将运行时间从线性降低为二次。

  

给出:Karger在O(n ^ 2 log n)中运行并获得最小割伤的概率至少为1 / log n

因此,要获得相同的成功概率,我们只需在Kargers上重复进行log(n),这样1-(1-1 / log n)^ log(n)= 1-e ^(-1) ALG算法。

n x ALG:运行时间= O(n ^ 2),成功1的概率-e ^(-1)

log(n)x Karger:运行时间= O(log n n ^ 2 log n),成功1的概率-e ^(-1)

如果有这样的ALG算法,那再好不过了,那就是Kargers。


此分析正确吗?还有什么我需要提的吗?

0 个答案:

没有答案