Esfuerzo de cálculo de algoritmos


9

Considere el problema de optimización estrictamente convexo sin restriccionesDeje que x_ \ text {opt} denote sus mínimos únicos y x_0 sea ​​una aproximación inicial dada a x_ \ text {opt}. Llamaremos a un vector x una \ epsilon- solución cercana de \ mathcal {O} if \ begin {ecation} \ frac {|| x - x _ {\ text {opt}} || _2} {|| x_0 - x_ \ texto {opt} || _2} \ leq \ epsilon. \ end {ecuación}x opt x 0 x opt . x ϵ - O | El | x - x opt | El | 2O: =minXRnorteF(X).XoptarX0 0Xoptar.Xϵ-O

El |El |X-XoptarEl |El |2El |El |X0 0-XoptarEl |El |2ϵ.

Suponga que existen dos algoritmos iterativos UNA1 y UNA2 para encontrar una solución ϵ- close de O con las siguientes propiedades:

  1. Para cualquier ϵ>0 0, el esfuerzo computacional total, es decir, el esfuerzo requerido por iteración × número total de iteraciones, para encontrar una solución ϵ- close es igual para ambos algoritmos.
  2. El esfuerzo por iteración para UNA1 es O(norte), digamos, mientras que el de UNA2 es O(norte2).

¿Hay situaciones en las que uno preferiría un algoritmo sobre el otro? ¿Por qué?

Respuestas:


14

Por lo general, es muy difícil, si no imposible, implementar una versión paralela de un algoritmo iterativo que se paraleliza entre iteraciones. La finalización de una iteración es un punto de secuencia natural. Si un algoritmo requiere menos iteraciones pero más trabajo por iteración, entonces es más probable que este algoritmo pueda implementarse efectivamente en paralelo.

Un ejemplo de esto es la programación lineal, donde el método de barrera dual primal (punto interior) generalmente usa solo unas pocas docenas de iteraciones incluso para problemas muy grandes, pero el trabajo por iteración es bastante extenso. En comparación, varias versiones del método simplex requieren muchas más iteraciones, pero el trabajo por iteración es menor. En la práctica, las implementaciones paralelas de métodos de punto interior han demostrado una eficiencia paralela mucho mejor que las implementaciones paralelas del método simplex.


7

Puedo pensar en algunas posibilidades:

Si ambos algoritmos reducen monotónicamente el error con cada iteración, entonces sería preferible para algunos tener más iteraciones más baratas, ya que le da más opciones sobre cuándo dejar de iterar.

Si es trabajo y tiempo pero memoria, puede preferir si es grande. incluso podría ser lo suficientemente grande como para que seleccione ya que es más probable que el uso de memoria lo aquí.UNA1O(norte)O(nortek)UNA2kk=2UNA2

Esto probablemente se aplica si estamos hablando de optimización o de cualquier otra clase de problema iterativo.


Estoy de acuerdo con usted con respecto a las limitaciones de espacio. Me preguntaba si uno puede presentar un caso solo en función de la complejidad del tiempo.
Suresh
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.