# Méthode de l'ellipsoïde

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

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.
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 (février 1979). 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'août 1979, puis grâce à un article de Peter Gács et László Lovász, 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.
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$^,$$^,$$^,$.

## Principe

On cherche à optimiser une fonction $f(x):\mathbb {R} ^{n}\to \mathbb {A}$ d'une manière à trouver au moins un point $x^{\star }\in \mathbb {R} ^{n}$ satisfaisant un ensemble de contrainte. (Pour une fonction à valeur réelle, on peut chercher un point tel que $f(x^{\star })$ 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 ${\frac {n}{n-1}}$, donc aymptotiquement par e après $n$ étapes.

## Description de l'algorithme
### Optimisation convexe sans contrainte

On se donne une fonction convexe $f:\mathbb {R} ^{n}\rightarrow \mathbb {R}$, que l'on cherche à minimiser. On décrit une ellipsoïde ${\mathcal {E}}$ par son centre y et une matrice symétrique définie positive A, afin que :
${\mathcal {E}}=\{z\in \mathbb {R} ^{n}|(z-y)^{T}A^{-1}(z-y)\leq 1\}$.
On suppose que l'on dispose d'une ellipsoïde initiale ${\mathcal {E}}_{0}$ contenant $x^{*}$, 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 ${\mathcal {E}}_{k}$ a pour centre $x_{k}$ et pour matrice $A_{k}$, on pose $s_{k}$ un sous-gradient de f en $x_{k}$. Alors :
$s_{k}^{T}(x^{*}-x_{k})\leq f(x^{*})-f(x_{k})\leq 0$.
Par conséquent $x^{*}\in {\mathcal {F}}_{k}:={\mathcal {E}}_{k}\cap \{z\in \mathbb {R} ^{n}|s_{k}^{T}(z-x_{k})\leq 0\}$. On pose alors :
$t_{k}=\left({\dfrac {1}{\sqrt {s_{k}^{T}A_{k}s_{k}}}}\right)s_{k}$
ce qui permet de calculer l'ellipsoïde contenant ${\mathcal {F}}_{k}$ de volume minimal :
$x_{k+1}=x_{k}-{\dfrac {1}{n+1}}A_{k}t_{k}$
$A_{k+1}={\dfrac {n^{2}}{n^{2}-1}}\left(A_{k}-{\dfrac {2}{n+1}}A_{k}t_{k}t_{k}^{T}A_{k}\right)$.

### Optimisation linéaire

On considère une famille finie d'inégalités de la forme $a_{i}^{T}x<b_{i}$, avec $(a_{i})$ une famille de vecteurs à coordonnées entières et $(b_{i})$ une famille d'entiers. On cherche à déterminer l'existence d'un $x\in \mathbb {R} ^{n}$ vérifiant ces contraintes. L'algorithme est alors comparable au cas de l'optimisation convexe. L'ellipsoïde initiale est déterminée par $x_{0}=0$ et $A_{0}=2^{L}I_{n}$, avec L la taille en mémoire des paramètres du problème. À l'étape k, soit $x_{k}$ 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 $a_{i}^{T}x\geq b_{i}$. On définit alors l'ellipsoïde avec les mêmes formules que dans le cas de la minimisation convexe, en posant $s_{k}=a_{i}$. Si le problème a une solution, l'algorithme s'arrête en moins de $6n^{2}L$ étapes.
On peut alors résoudre un problème d'optimisation linéaire en cherchant l'existence d'une solution primale-duale au problème.

## Performances

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