如何确定单纯形时间复杂度(即最大流量)

时间:2011-12-27 23:43:54

标签: algorithm big-o time-complexity simplex

据说单纯形算法具有指数最坏情况时间复杂度。但它仍然经常在实践中使用。如何确定某个问题的平均时间复杂度(用单纯形解决)。

例如,使用单纯形算法求解的最大流问题的平均时间复杂度是多少。 (Wiki对所有其他算法都有时间复杂度)

感谢您的时间。

2 个答案:

答案 0 :(得分:6)

平均案例复杂性很难分析,它取决于线性程序的分布。我相信它在一些常见的分布下被计算为多项式时间。我目前找不到这篇论文。

编辑:是的,以下是来源:

Nocedal,J。和Wright,S。J. Numerical Optimization。纽约:Springer-Verlag,1999年。

Forsgren,A。; Gill,P。E。;和Wright,M。H."非线性优化的内部方法。" SIAM Rev.44,525-597,2002。

我在第一本书中读到它,显然它已经在一份单独的论文(Forsgren)中证明了。你可以在大学图书馆找到。

答案 1 :(得分:1)

如果仍然有趣。单形的时间复杂度为O((n + m)* n)。

n - 变量数量。

m - 不等式约束。

为什么呢?因为在n的情况下迭代次数可以不超过n + m 这是顶点数的上限。

但是这个上限在n中是指数的。