# Optimisation robuste

L'optimisation robuste est une branche de l'optimisation mathématique qui cherche à résoudre un problème d'optimisation en prenant en compte les différentes sources d'incertitude de celui-ci.

## Histoire

Les origines de l'optimisation robuste remontent aux débuts de la théorie de la décision moderne dans les années 1950. Des « analyses des cas les plus défavorables » ont été réalisées pour faire face aux fortes incertitudes. L'optimisation robuste devient dans les années 1970 une discipline à elle-seule avec des applications dans des domaines tels que la recherche opérationnelle, la théorie du contrôle, les statistiques, l'économie…

## Exemple

Considérons le problème de type optimisation linéaire suivant :
$\max _{x,y}\ \{3x+2y\}\ \ \mathrm {s.c.} \ \ {\begin{cases}cx+dy\leq 10,\forall (c,d)\in P;\\x,y\geq 0\end{cases}}$
où $P$ est un sous-ensemble de $\mathbb {R} ^{2}$.
La ligne $cx+dy\leq 10,\forall (c,d)\in P$ fait de ce programme linéaire un problème d'optimisation robuste. En effet, pour qu'une solution $(x,y)$ soit réalisable, la contrainte $cx+dy\leq 10,\forall (c,d)\in P$ doit être satisfaite par la pire paire $(c,d)\in P$, c'est-à-dire la paire $(c,d)\in P$ qui maximise la valeur de $cx+dy\leq 10$ pour la valeur donnée de $(x,y)$.
Si l'espace de paramètre $P$ est fini (composé d'un nombre fini d'éléments), alors le problème d'optimisation robuste est lui-même un problème d'optimisation linéaire : pour chaque $(c,d)\in P$ il existe une contrainte linéaire.
Si l'espace de paramètre $P$ n'est pas fini, alors ce problème est un problème de programmation linéaire semi-infinie (en), c'est-à-dire un problème de programmation linéaire avec un nombre fini de variables de décision et un nombre infini de contraintes.

## Classification

Il existe de nombreux critères de classification des problèmes/modèles d'optimisation robuste. En particulier, on peut faire la distinction entre les problèmes traitant de modèles robustes locaux ou globaux, et entre les modèles robustes probabilistes et non-probabilistes. L'optimisation robuste moderne traite d'abord de modèles robustes non-probabilistes qui cherchent à résoudre le pire des cas.

### Robustesse locale

Il existe des cas dans lesquels la robustesse travaille sur de petites perturbations sur une valeur nominale d'un paramètre. Un modèle populaire de robustesse locale est le modèle du rayon de stabilité :
${\hat {\rho }}(x,{\hat {u}}):=\max _{\rho \geq 0}\ \{\rho :u\in S(x),\forall u\in B(\rho ,{\hat {u}})\}$
où ${\hat {u}}$ représente la valeur nominale du paramètre, $B(\rho ,{\hat {u}})$ représente une boule de rayon $\rho$ centrée en ${\hat {u}}$ et $S(x)$ représente l'ensemble des valeurs de $u$ qui satisfont le problème dans les conditions de stabilité et de performance associées à la décision $x$ comme on peut le voir sur l'image suivante :
le rectangle $U(x)$ représente l'ensemble de toutes les valeurs $u$ associées à la décision $x$.

### Robustesse globale

Soit le problème d'optimisation présenté ci-dessous :
$\max _{x\in X}\ \{f(x):g(x,u)\leq b,\forall u\in U\}$
dans lequel $U$désigne l'ensemble des valeurs possibles de $u$.
Ce problème est un problème d'optimisation robuste globale dans le sens où la contrainte de robustesse $g(x,u)\leq b,\forall u\in U$ représente toutes les valeurs possibles de $U$.
La difficulté est qu'une telle contrainte globale peut être trop contraignante dans le sens où il n'y a pas de $x\in X$ qui satisfasse cette contrainte. Mais même si un tel $x\in X$ existe, la contrainte peut être trop "conservatrice" dans le sens où une solution $x\in X$ génère un très petit objectif $f(x)$ qui n'est pas représentatif de la performance des autres décisions dans $X$. Par exemple, il pourrait y avoir un $x'\in X$ qui ne viole que légèrement la contrainte de robustesse, mais qui donne un très bon objectif $f(x')$. Dans de tels cas, il peut être nécessaire de relâcher un peu la contrainte de robustesse et/ou de modifier l'énoncé du problème.

#### Exemple

On considère le cas où l'objectif est de satisfaire la contrainte $g(x,u)\leq b$, où $x\in X$ représente la variable de décision et $u$ est un paramètre dont l'ensemble des valeurs possibles est dans $U$. S'il n'existe pas de $x\in X$ tel que $g(x,u)\leq b,\forall u\in U$, alors la mesure de robustesse suivante est intuitive :
$\rho (x)=\max _{Y\subseteq U}\ \{\mathrm {size} (Y):g(x,u)\leq b,\forall u\in Y\}\ ,\ x\in X$
où $\mathrm {size} (Y)$ est une mesure appropriée de la "taille" de l'ensemble $Y$. Par exemple, si $U$ est un ensemble fini, alors $\mathrm {size} (Y)$ peut être défini par la cardinalité de l'ensemble $Y$.
En bref, la robustesse d'une décision est la taille du plus grand sous-ensemble de $U$ pour lequel la contrainte $g(x,u)\leq b$ est satisfaite pour chaque $u$ dans cet ensemble. Une décision optimale est alors une décision dont la robustesse est la plus importante.
On en déduit le problème d'optimisation robuste suivant :
$\max _{x\in X,Y\subseteq U}\ \{\mathrm {size} (Y):g(x,u)\leq b,\forall u\in Y\}$
Cette notion intuitive de robustesse globale n'est pas souvent utilisée en pratique. En effet, les problèmes d'optimisation robuste qu'elle induit sont souvent (mais pas toujours) très difficiles à résoudre.