Méthode de l'ellipsoïde

Un article de Wikipédia, l'encyclopédie libre.
Montre un polytope de programmation linéaire (bleu) ainsi que deux itérations de la méthode ellipsoïde utilisée pour déterminer un point dans le polytope.

En optimisation mathématique, la méthode de l'ellipsoïde est une méthode itérative utilisée pour minimiser des fonctions convexes. En informatique théorique, cette méthode est connue comme étant le premier algorithme de complexité polynomiale découvert pour résoudre les problèmes d'optimisation linéaire.

L'algorithme construit une suite d'ellipsoïdes de plus en plus petits, qui enserrent à chaque étape le minimum de la fonction objectif.

Histoire[modifier | modifier le code]

Depuis son invention par George Dantzig en 1947, la méthode du simplexe avait relégué un certain nombre d'heuristiques antérieures pour résoudre les problèmes d'affectation sous contraintes linéaires, en particulier les itérations transposant le problème à une compétition entre deux joueurs. Tout au long des années 1950 et 1960, elle fut appliquée à des problèmes de taille de plus en plus grande jusqu'à ce qu'au début des années 1970, Victor Klee et George Minty (de) mettent en évidence l'existence de programmes pour lesquels l'algorithme de Dantzig conduit à examiner un nombre de pivots croissant exponentiellement avec la taille du problème[1].

La méthode des ellipsoïdes est une technique itérative d'optimisation qui avait été imaginée par David Youdine, Arcadi Nemirovski et, indépendamment, Nahum Chor (1976–77) ; un mathématicien arménien, Khatchian, tenta de l'utiliser pour résoudre les programmes linéaires mais cela n'allait nullement de soi : l'algorithme exigeait le calcul d'une estimation de la distance à l'optimum ; pour cela, Khatchian établit un certain nombre de majorations sur les volumes de polyèdres, et analysa la précision de calcul requise pour que la méthode soit praticable. Il publia ces résultats sans les démonstrations dans une note de quatre pages des Soviet Mathematics Doklady (). L'algorithme vint à la connaissance des chercheurs occidentaux lors d'une conférence au Symposium de programmation mathématique de Montréal, au mois d', puis grâce à un article de Peter Gács et László Lovász[2], qui évitait les changements continuels de systèmes de coordonnées familiers aux mathématiciens russes. Enfin, dans un article publié en 1980, Khatchian publia ses démonstrations[3].

David B. Youdine (de), Arkadi Nemirovski, Leonid Khatchian, Martin Grötschel, László Lovász et Alexander Schrijver ont reçu le prix Fulkerson en 1982 pour leurs articles sur la méthode de l'ellipsoïde[4],[5],[6],[7].

Principe[modifier | modifier le code]

On cherche à optimiser une fonction d'une manière à trouver au moins un point satisfaisant un ensemble de contrainte. (Pour une fonction à valeur réelle, on peut chercher un point tel que soit positif par exemple.)

Le principe est de commencer avec un ellipsoïde qui contient à coup sûr la région admissible (c'est-à-dire obéissant aux contraintes). Ensuite, on essaye le centre de l'ellipsoïde et on recense les contraintes qui sont enfreintes : s'il n'y en a plus aucune, on a terminé. Dans le cas contraire, on sait que la solution (si elle existe) se trouve dans une partie de l'ellipsoïde limitée par des hyperplans. On construit alors une nouvelle ellipse plus petite qui contient cette partie et on répète l'opération.

On estime qu'à chaque étape le volume de l'ellipsoïde est divisé par un facteur au moins , donc aymptotiquement par e après étapes.

Description de l'algorithme[modifier | modifier le code]

Optimisation convexe sans contrainte[modifier | modifier le code]

On se donne une fonction convexe , que l'on cherche à minimiser. On décrit une ellipsoïde par son centre y et une matrice symétrique définie positive A, afin que :

.

On suppose que l'on dispose d'une ellipsoïde initiale contenant , et que l'on peut déterminer un sous-gradient de f en tout point. La suite d'ellipsoïdes se construit alors par récurrence. Si a pour centre et pour matrice , on pose un sous-gradient de f en . Alors :

.

Par conséquent . On pose alors :

ce qui permet de calculer l'ellipsoïde contenant de volume minimal :

.

Optimisation linéaire[modifier | modifier le code]

On considère une famille finie d'inégalités de la forme , avec une famille de vecteurs à coordonnées entières et une famille d'entiers. On cherche à déterminer l'existence d'un vérifiant ces contraintes. L'algorithme est alors comparable au cas de l'optimisation convexe. L'ellipsoïde initiale est déterminée par et , avec L la taille en mémoire des paramètres du problème. À l'étape k, soit vérifie toutes les contraintes auquel cas l'algorithme s'arrête, soit l'une des inégalités n'est pas vérifiée, c'est-à-dire . On définit alors l'ellipsoïde avec les mêmes formules que dans le cas de la minimisation convexe, en posant . Si le problème a une solution, l'algorithme s'arrête en moins de étapes[2].

On peut alors résoudre un problème d'optimisation linéaire en cherchant l'existence d'une solution primale-duale au problème[2].

Illustration[modifier | modifier le code]

Performances[modifier | modifier le code]

C'était le premier algorithme qui garantissait la résolution d'un programme linéaire en temps polynomial mais reste assez lente en pratique.

Notes et références[modifier | modifier le code]

  1. Le problème du cube déformé de Klee-Minty a été publié dans Victor Klee, George J. Minty et Shisha Oved (dir.), Inequalities III (Proceedings of the Third Symposium on Inequalities held at the University of California, Los Angeles, Calif., September 1–9, 1969, New York et Londres, Academic Press, , 159–175 p. (MR 332165), « How good is the simplex algorithm? »
  2. a b et c Cf. P. Gács et L. Lovász, « Khachiyan’s algorithm for linear programming », Math. Programming Studies, no 14,‎ , p. 61–68.
  3. L. G. Khatchian, « Polynomial algorithms in linear programming », USSR Computational Mathematics and Mathematical Physics, vol. 20, no 1,‎ , p. 53-72 (DOI 10.1016/0041-5553(80)90061-0)
  4. D. B. Judin et Arkadi Nemirovski, « Informational complexity and effective methods of solution for convex extremal problems », Ekonomika i Matematicheskie Metody, vol. 12,‎ , p. 357–369.
  5. Leonid Khachiyan, « A polynomial algorithm in linear programming », Akademiia Nauk SSSR. Doklady, vol. 244,‎ , p. 1093–1096.
  6. « Leonid Khachiyan, professor, leading computer scientist », Boston Globe,‎ (lire en ligne).
  7. Martin Grötschel, László Lovász et Alexander Schrijver, « The ellipsoid method and its consequences in combinatorial optimization », Combinatorica, vol. 1,‎ , p. 169–197.