Pénalisation (optimisation)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

En optimisation mathématique, la pénalisation est une technique permettant d'analyser et de résoudre analytiquement ou numériquement des problèmes d'optimisation avec contraintes. Elle consiste à transformer le problème avec contraintes en un problème (cas de la pénalisation exacte) ou des problèmes (cas de la pénalisation inexacte) d'optimisation sans contrainte ; le sens précis de cette phrase apparaîtra plus loin.

C'est un outil à la fois théorique et algorithmique.

  • En théorie, on peut l'utiliser pour démontrer l'existence de solution des problèmes d'optimisation avec contraintes, en étudier les propriétés, établir des conditions d'optimalité, etc.
  • En algorithmique, cette approche permet de résoudre des problèmes avec contraintes en n'utilisant que des méthodes de l'optimisation sans contrainte ; cependant, à moins que l'on ne spécifie l'algorithme de manière raffinée (comme dans les algorithmes de points intérieurs en optimisation linéaire, quadratique et semi-définie positive — qui peuvent être interprétés comme des algorithmes de pénalisation), c'est un peu la «méthode du pauvre», permettant d'obtenir des résultats peu précis mais avec peu d'effort.

Principes[modifier | modifier le code]

Définition[modifier | modifier le code]

Considérons le problème d'optimisation avec contrainte suivant


(P_X)\qquad
\inf_{x\in X}\,f(x),

X est une partie d'un ensemble \mathbb{E} et f:\mathbb{E}\to\bar{\R}:x\mapsto f(x) est une fonction définie sur \mathbb{E} pouvant prendre des valeurs infinies. La pénalisation (sous entendu de la contrainte x\in X) est une technique qui remplace le problème (P_X) par un ou des problèmes sans contrainte de la forme


(P_r)\qquad
\inf_{x\in\mathbb{E}}\,f_r(x),

f_r est la fonction définie en x\in\mathbb{E} par

f_r(x)=f(x)+r\,p(x).

Dans cette expression, r est en général un réel positif à ajuster, appelé facteur de pénalisation, et


p:x\in\mathbb{E}\mapsto p(x)

est une fonction à spécifier, appelée fonction de pénalisation.

À ce niveau de généralité, rien ne permet de dire que les problèmes (P_X) et (P_r) ont un lien entre eux ; cela dépend de la fonction de pénalisation et du facteur de pénalisation. De manière à rendre l'approche plus concrète, donnons quelques exemples.

Exemples[modifier | modifier le code]

Fonction indicatrice[modifier | modifier le code]

Si l'on est familier avec les fonctions pouvant prendre la valeur +\infty, on comprendra aisément qu'une fonction de pénalisation naturelle pour (P_X) est la fonction indicatrice de X :


p_0\equiv\mathcal{I}_X:\mathbb{E}\to\R\cup\{+\infty\}:x\mapsto\mathcal{I}_X(x)=
\left\{\begin{array}{lll}
0 & \mbox{si} & x\in X\\
+\infty & \mbox{si} & x\notin X.
\end{array}\right.

Dans cette pénalisation, le facteur r>0 ne joue aucun rôle (il multiplie zéro ou l'infini). Par ailleurs, les problèmes (P_X) et (P_r) sont alors équivalents, dans le sens où ils ont les mêmes solutions et les mêmes valeurs optimales. On l'utilise souvent dans certains développements théoriques pour prendre en compte simultanément les problèmes avec (X\ne\mathbb{E}) et sans (X=\mathbb{E}) contraintes. Numériquement, cette pénalisation n'est guère utile, car si l'itéré courant est en dehors de l'adhérence de l'ensemble admissible, l'examen de f_r dans le voisinage de cet itéré (f_r y est égale à +\infty) n'apportera pas d'information sur la direction à prendre pour trouver un point admissible.

Pénalisation de contraintes de positivité[modifier | modifier le code]

Considérons d'abord le cas où \mathbb{E}=\R^n et l'ensemble X est défini par une contrainte de positivité :


X:=\{x\in\R^n: x\geqslant0\}

est l'orthant positif de \R^n. La pénalisation logarithmique consiste à prendre comme fonction de pénalisation :


p_1(x):=-\sum_{i=1}^n\log x_i.

Cette pénalisation a été introduite par l'économiste Ragnar Frisch en 1955[1]. Il s'agit d'une pénalisation inexacte intérieure. Elle peut se généraliser, dans un sens bien précis (et compliqué), à des ensembles convexes (presque) arbitraires, via la notion de fonction autoconcordante.

Pénalisation de contraintes d'égalité[modifier | modifier le code]

Considérons maintenant le cas où l'ensemble X est défini par une contrainte d'égalité


X:=\{x\in\mathbb{E}: c(x)=0\},

c:\mathbb{E}\to\mathbb{F} est une fonction à valeurs dans un espace normé \mathbb{F}, dont la norme est notée \|\cdot\|. Les deux fonctions p_2 et p_3, définies ci-dessous par leurs valeurs en x\in\mathbb{E}, sont des fonctions de pénalisation que l'on rencontre souvent :


p_2(x):=\|c(x)\|
\qquad\mbox{et}\qquad
p_3(x):=\frac{1}{2}\,\|c(x)\|^2.

La fonction p_3 est mieux adaptée à un espace de Hilbert \mathbb{F} ; elle porte le nom de pénalisation quadratique. Ces deux fonctions de pénalisation conduisent à des propriétés très différentes : la première donne lieu à une pénalisation exacte, la seconde à une pénalisation inexacte extérieure.

Pénalisation de contraintes d'inégalité[modifier | modifier le code]

Considérons à présent le cas où l'ensemble X est défini par des contraintes d'égalité


X:=\{x\in\mathbb{E}: c(x)\leqslant0\},

c:\mathbb{E}\to\R^m (m entier) et l'inégalité se lit composante par composante : c_1(x)\leqslant0, ..., c_m(x)\leqslant0. Les deux fonctions p_4 et p_5, définies ci-dessous par leurs valeurs en x\in\mathbb{E}, sont des fonctions de pénalisation que l'on utilise souvent :


p_4(x):=\|c(x)^+\|
\qquad\mbox{et}\qquad
p_5(x):=\frac{1}{2}\,\|c(x)^+\|_2^2,

\|\cdot\| est une norme arbitraire sur \R^m, \|\cdot\|_2 est la norme euclidienne de \R^m et v^+ est pour v\in\R^m le vecteur de \R^m dont la composante i est \max(0,v_i). Comme ci-dessus, la pénalisation p_4 donne lieu à une pénalisation exacte, tandis que p_5 correspond à une pénalisation inexacte extérieure. Cette dernière porte le nom de pénalisation quadratique.

Pénalisation de contraintes abstraites[modifier | modifier le code]

Plus généralement, supposons que C soit un ensemble convexe d'un espace normé \mathbb{F} et que c:\mathbb{E}\to\mathbb{F} soit une fonction. On considère ici le cas où l'ensemble X est défini par


X:=\{x\in\mathbb{E}: c(x)\in C\}.

On retrouve les exemples précédents lorsque C=\{0\} et C est l'orthant négatif C=\{y\in\R^m:y\leqslant0\}. Les généralisations à ce cadre des fonctions de pénalisation p_2 ou p_4, d'une part, et p_3 ou p_5, d'autre part, sont les fonctions suivantes


p_6(x):=\operatorname{dist}_C(c(x))
\qquad\mbox{et}\qquad
p_7(x):=\frac{1}{2}\,\Bigl[\operatorname{dist}_C(c(x))\Bigr]^2,

\operatorname{dist}_C(y) est la distance de y\in\mathbb{F} à l'ensemble C. Ici aussi, la pénalisation p_6 donne lieu à une pénalisation exacte, tandis que p_7 correspond à une pénalisation inexacte extérieure.

Pénalisations exacte et inexacte[modifier | modifier le code]

La notion de pénalisation exacte est très utile, bien qu'elle ne soit pas très précise ; plutôt, elle requiert des précisions supplémentaires dans les résultats qui la mentionne. Le concept est attaché au lien que l'on désire établir entre les problèmes (P_X) et (P_r) définis ci-dessus. Une définition pourrait être la suivante.

Pénalisation exacte — On dit que la pénalisation réalisée dans (P_r) est exacte si les solutions de (P_X) sont solutions de (P_r). On dit que la pénalisation est inexacte dans le cas contraire.

Cette définition ne dit pas ce que l'on entend par solution : est-ce un minimum global, local, un point-stationnaire ? Aussi, faut-il que cette correspondance ait lieu entre toutes les solutions de (P_X) et de (P_r) ou pour une seule d'entre elles ? Les résultats qui affirment qu'une pénalisation est exacte précisent les réponses à ces questions. Ils précisent aussi les valeurs que doit prendre le facteur de pénalisation r pour que la propriété d'exactitude soit vraie. Il arrive aussi que les solutions de (P_r) soient solutions de (P_X), mais cette propriété est plus rare, à moins que l'on ne sélectionne parmi les solutions de (P_r), celles qui sont admissibles pour (P_X), c'est-à-dire qui sont dans l'ensemble admissible X.

Lorsque la pénalisation est exacte, le lien entre les problèmes d'optimisation (P_X) et (P_r) est clair : ces problèmes ont des solutions en commun. Dès lors, si l'on veut résoudre le problème avec contrainte (P_X), il suffit parfois de résoudre le problème sans contrainte (P_r). Cette propriété remarquable est contrebalancée par le fait qu'une fonction de pénalisation exacte est souvent non-différentiable (c'est le cas des fonctions de pénalisation p_2, p_4 et p_6 données en exemples ci-dessus) ou contient des paramètres qui ne sont pas facilement calculables (comme un multiplicateur optimal dans le lagrangien augmenté).

Lorsque la pénalisation est inexacte, le lien entre les problèmes d'optimisation (P_X) et (P_r) n'est pas nécessairement absent. Si la pénalisation est bien construite, le lien s'obtient asymptotiquement, en faisant tendre le paramètre de pénalisation r vers une valeur limite, zéro ou l'infini. Numériquement, la résolution d'un problème d'optimisation par pénalisation inexacte se fera par la résolution d'une suite de problèmes d'optimisation sans contrainte, en faisant tendre le paramètre de pénalisation vers sa limite. La nécessité de résoudre des problèmes d'optimisation (P_r) pour plusieurs valeurs de r repose sur les raisons suivantes :

  • il ne suffit pas de donner à r sa valeur limite; si r=0, il n'y a plus de terme de pénalisation dans f_r, si bien que l'on ne tient plus compte des contraintes ; si r=+\infty, f_r n'est pas bien définie ;
  • il ne suffit pas de prendre un unique paramètre de pénalisation r proche de sa valeur limite (proche de zéro ou très grand), car on ne peut pas dire a priori, si cela conduira à une solution approchée de (P_X) acceptable ;
  • lorsque le paramètre de pénalisation est proche de sa valeur limite, le problème (P_r) est en général mal conditionné, si bien qu'il est numériquement difficile d'obtenir de la précision sur les minimiseurs de (P_r), à moins que le point de départ du processus de minimisation soit déjà proche d'un tel minimiseur ; il est donc judicieux de se rapprocher d'une solution de (P_X) sans trop s'écarter du chemin défini par les minimiseurs des problèmes (P_r) (méthode de suivi de chemin).

Pénalisations extérieure et intérieure[modifier | modifier le code]

Une pénalisation inexacte peut être extérieure ou intérieure.

Dans une pénalisation extérieure, la fonction de pénalisation p est nulle sur, et uniquement sur, l'ensemble admissible X. À l'extérieur de cet ensemble, p prend des valeurs strictement positives. Comme on cherche à minimiser f_r:= f + r\,p, cette pénalisation force le minimiseur à se rapprocher de l'ensemble admissible, d'autant plus que le facteur de pénalisation r est grand. Dans cette approche, la fonction p pénalise donc la violation des contraintes, d'autant plus que son argument est éloigné de l'ensemble admissible X ; lorsque cet ensemble est défini par des contraintes fonctionnelles, cet éloignement est mesuré par la valeur de ces contraintes fonctionnelles. Dans cette technique de pénalisation, les minimiseurs de f_r sont en général extérieurs à l'ensemble admissible X et on fait tendre r vers +\infty pour trouver une solution de (P_X) à partir de celles de (P_r). Les fonctions p_3, p_5 et p_7 données en exemples ci-dessus sont des fonctions de pénalisation extérieure.

Dans une pénalisation intérieure, ...

Propriété de monotonie[modifier | modifier le code]

Pénalisations inexactes[modifier | modifier le code]

Pénalisation extérieure[modifier | modifier le code]

Pénalisation intérieure[modifier | modifier le code]

Pénalisation exacte[modifier | modifier le code]

Pénalisation du lagrangien[modifier | modifier le code]

Lagrangien ordinaire[modifier | modifier le code]

Lagrangien augmenté[modifier | modifier le code]

Annexes[modifier | modifier le code]

Note[modifier | modifier le code]

  1. (en) R. Frisch (1955, mai). The logarithmic potential method for convex programming with particular application to the dynamics of planning for national development. Memorandum, Institut d’Économie, Université d’Oslo, Oslo, Norvège.

Article connexe[modifier | modifier le code]

Lien externe[modifier | modifier le code]

Références[modifier | modifier le code]