算法的计算工作量

计算科学 凸优化 复杂
2021-12-22 07:01:43

考虑严格凸无约束优化问题O:=minxRnf(x).xopt表示其独特的最小值和x0是给定的初始近似值xopt.我们称向量x一个ϵ的关闭解决方案O如果

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

假设存在两种迭代算法A1A2找到一个ϵ的关闭解决方案O具有以下属性:

  1. 对于任何ϵ>0,总计算工作量,即每次迭代所需的工作量×总迭代次数,找到一个ϵ两种算法的接近解决方案都是相同的。
  2. 每次迭代的工作量A1O(n),说,而A2O(n2).

有没有人更喜欢一种算法而不是另一种的情况?为什么?

2个回答

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

这方面的一个例子是线性规划,其中原始对偶障碍(内点)方法通常只使用几十次迭代,即使是非常大的问题,但每次迭代的工作量非常大。相比之下,单纯形法的各种版本通常需要更多的迭代,但每次迭代的工作量更少。在实践中,内点方法的并行实现已经显示出比单纯形方法的并行实现更好的并行效率。

我可以想到一些可能性:

如果两种算法都单调地减少每次迭代的误差,那么对于某些算法来说,拥有更多、更便宜的迭代可能比某些算法更可取,因为它为您提供了更多关于何时停止迭代的选择。

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

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