Effort de calcul des algorithmes

9

O:=minxRnf(x).xoptx0xopt.xϵO

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

Supposons qu'il existe deux algorithmes itératifs et pour trouver une solution close de avec les propriétés suivantes:A1A2ϵO

  1. Pour tout l'effort de calcul total, c'est-à-dire l'effort requis par itération le nombre total d'itérations, pour trouver une solution close est le même pour les deux algorithmes.ϵ>0,×ϵ
  2. L'effort par itération pour est disons, tandis que celui de estA1O(n),A2O(n2).

Y a-t-il des situations où l'un préférerait un algorithme à l'autre? Pourquoi?

Suresh
la source

Réponses:

14

Il est généralement très difficile, voire impossible, de mettre en œuvre une version parallèle d'un algorithme itératif qui paralyse les différentes itérations. L'achèvement d'une itération est un point de séquence naturel. Si un algorithme nécessite moins d'itérations mais plus de travail par itération, il est plus probable que cet algorithme puisse être efficacement mis en œuvre en parallèle.

Un exemple de cela est la programmation linéaire, où la méthode de barrière primaire-double (point intérieur) n'utilise généralement que quelques dizaines d'itérations même pour de très gros problèmes, mais le travail par itération est assez étendu. En comparaison, différentes versions de la méthode simplex nécessitent généralement beaucoup plus d'itérations, mais le travail par itération est moindre. Dans la pratique, les implémentations parallèles des méthodes de point intérieur ont montré une bien meilleure efficacité parallèle que les implémentations parallèles de la méthode simplex.

Brian Borchers
la source
7

Je peux penser à quelques possibilités:

Si les deux algorithmes réduisent de façon monotone l'erreur à chaque itération, il peut être préférable pour certains d'avoir des itérations plus nombreuses et moins chères, car cela vous donne plus de choix quant au moment d'arrêter l'itération.

Si est travail et temps mais mémoire, vous préférerez peut-être si est grand. peut même être suffisamment grand pour vous faire sélectionner car l'utilisation de la mémoire est plus susceptible de vous contraindre ici.A1O(n)O(nk)A2kk=2A2

Cela s'applique probablement si nous parlons d'optimisation ou de toute autre classe de problème itératif.

Bill Barth
la source
Je suis d'accord avec vous en ce qui concerne les contraintes d'espace. Je me demandais si l'on pouvait présenter un argumentaire uniquement en fonction de la complexité du temps.
Suresh