Optimisation non linéaire

De testwiki
Aller à la navigation Aller à la recherche

En optimisation, vue comme branche des mathématiques, l'optimisation non linéaire (en anglais : nonlinear programming – NLP) s'occupe principalement des problèmes d'optimisation dont les données, i.e., les fonctions et ensembles définissant ces problèmes, sont non linéaires, mais sont aussi différentiables autant de fois que nécessaire pour l'établissement des outils théoriques, comme les conditions d'optimalité, ou pour la bonne marche des algorithmes de résolution qui y sont introduits et analysés. Cette sous-discipline de l'optimisation, à la frontière mal définie et l'introduction un peu artificielle, Modèle:Refsou

Elle complémente l'optimisation non lisse (ou non différentiable), Modèle:Refsou Ces deux disciplines se rassemblent pour former ce que l'on appelle l'optimisation continue, qui jouxte, quant à elle, d'autres sous-disciplines telles que l'optimisation combinatoire (ou discrète), l'optimisation stochastique, etc.

Formulation mathématique

On a une fonction f:XR, avec XRn. L'objectif est de déterminer le vecteur x défini par :

xX;f(x)=minyXf(y).

De façon équivalente, on peut rechercher la valeur pour laquelle f est maximale :

xX;f(x)=maxyXf(y).

Méthodes de résolution

Si la fonction est convexe ou concave, et l'ensemble des contraintes est convexe, alors il existe des méthodes spécialisées, appelées méthodes d'optimisation convexe.

Sinon, il existe plusieurs solutions. Par exemple, utilisant le principe de séparation et évaluation pour diviser et traiter séparément plusieurs paramètres.

L'algorithme peut également être arrêté avant d'aboutir, si on peut prouver qu'aucune solution ultérieure ne sera meilleure à un certain seuil de tolérance près. Les conditions de Karush-Kuhn-Tucker (KKT) garantissent qu'une solution ainsi obtenue est optimale.

On utilise des algorithmes de résolution tels que :

Contraintes

Si les contraintes s'expriment sous la forme d'inégalités

h1(x)0, hn(x)0

on peut utiliser la méthode de la « barrière logarithmique »[1]. Si ƒ est la fonction à minimiser, alors on définit la fonction

B(x)=f(x)μln(h)

ainsi, lorsque Modèle:Mvar se rapproche de la frontière, la valeur de Modèle:Math tend vers Modèle:Math, ce qui pénalise la zone. On effectue plusieurs recherches en faisant tendre Modèle:Mvar vers 0.

Exemples

En dimension 2

L'intersection d'une ligne avec l'ensemble des contraintes représente la solution.

Un problème simple peut être posé ainsi :

xModèle:Ind ≥ 0
xModèle:Ind ≥ 0
xModèle:IndModèle:Exp + xModèle:IndModèle:Exp ≥ 1
xModèle:IndModèle:Exp + xModèle:IndModèle:Exp ≤ 2

où l'on cherche à maximiser la fonction

f (xModèle:Ind, xModèle:Ind) = xModèle:Ind + xModèle:Ind

En dimension 3

L'intersection de la surface avec l'espace des contraintes au centre représente la solution.

On peut formuler un problème ainsi :

xModèle:IndModèle:ExpxModèle:IndModèle:Exp + xModèle:IndModèle:Exp ≤ 2
xModèle:IndModèle:Exp + xModèle:IndModèle:Exp + xModèle:IndModèle:Exp ≤ 10

où l'on cherche à maximiser la fonction :

f(xModèle:Ind, xModèle:Ind, xModèle:Ind) = xModèle:IndxModèle:Ind + xModèle:IndxModèle:Ind

Notes et références

Modèle:Références

Voir aussi

Articles connexes

Bibliographie

Modèle:Traduction/Référence

Liens externes

Documentation

Implémentations

Modèle:Palette Modèle:Portail