算法的计算量


9

考虑严格凸无约束优化问题令x_ \ text {opt}表示其唯一最小值,并且x_0x_ \ text {opt}的给定初始近似值如果 \ begin {equation} \ frac {|| x-x _ {\ text {opt}} || _2} {|| x_0-x_ \,我们将向量x称为\ mathcal {O}\ epsilon- close解。文字{opt} || _2} \ leq \ epsilon。\ end {equation}O:=minxRnf(x).xoptx0xopt.xϵO

||xxopt||2||x0xopt||2ϵ.

假设存在两个迭代算法A1A2以找到具有以下属性的\ mathcal {O}ϵ close解:O

  1. 对于任何大于0\ epsilon,找到两个\ epsilon- close解决方案ϵ>0,的总计算量,即每次迭代所需的工作量乘以迭代的×总次数,都是相同的。ϵ
  2. 在每次迭代的努力为A1O(n),比方说,而的A2O(n2).

在某些情况下,一个人会优先选择一种算法吗?为什么?

Answers:


14

如果要实现跨迭代并行化的迭代算法的并行版本,通常会非常困难,甚至并非不可能。一个迭代的完成是自然的序列点。如果一种算法需要较少的迭代,但是每次迭代需要更多的工作,则该算法更有可能可以并行有效地实现。

线性编程就是一个例子,其中,即使对于非常大的问题,原始对偶势垒(内点)方法通常仅使用几十次迭代,但是每次迭代的工作量很大。相比之下,单纯形方法的各种版本通常需要更多的迭代,但是每次迭代的工作量却更少。实际上,内部点方法的并行实现已显示出比单纯形方法的并行实现更好的并行效率。


7

我可以想到一些可能性:

如果两种算法都在每次迭代中单调减少错误,那么对某些人而言,最好有更多,更便宜的迭代,因为它为您提供了何时停止迭代的更多选择。

如果是工作和时间,但内存,则如果大,您可能更喜欢。甚至可能足以让您选择因为在这里内存使用更有可能限制您。A1O(n)O(nk)A2kk=2A2

无论我们是在谈论优化还是任何其他类别的迭代问题,这都可能适用。


关于空间限制,我确实同意你的看法。我想知道是否可以仅根据时间复杂度提出理由。
Suresh 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.