据说单纯形算法具有指数最坏情况时间复杂度。但它仍然经常在实践中使用。如何确定某个问题的平均时间复杂度(用单纯形解决)。
例如,使用单纯形算法求解的最大流问题的平均时间复杂度是多少。 (Wiki对所有其他算法都有时间复杂度)
感谢您的时间。
答案 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中是指数的。