Optimisation non linéaire

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, 

Elle complémente l'optimisation non lisse (ou non différentiable),   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 , avec . L'objectif est de déterminer le vecteur x défini par :
.
De façon équivalente, on peut rechercher la valeur pour laquelle f est maximale :
.

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 :
 la méthode de Newton,
 la méthode de quasi-Newton,
 la méthode du gradient conjugué,
 la recherche linéaire,
 les régions de confiance, 
 la méthode de Nelder-Mead,
 …

Contraintes 

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

on peut utiliser la méthode de la « barrière logarithmique ». Si ƒ est la fonction à minimiser, alors on définit la fonction
 
ainsi, lorsque  se rapproche de la frontière, la valeur de  tend vers , ce qui pénalise la zone. On effectue plusieurs recherches en faisant tendre  vers 0.

Exemples

En dimension 2 

Un problème simple peut être posé ainsi :
x ≥ 0
x ≥ 0
x + x ≥ 1
x + x ≤ 2
où l'on cherche à maximiser la fonction
f (x, x) = x + x

En dimension 3 

On peut formuler un problème ainsi :
x − x + x ≤ 2
x + x + x ≤ 10
où l'on cherche à maximiser la fonction :
f(x, x, x) = xx + xx

Notes et références

Voir aussi

Articles connexes 
 Conditions d'optimalité (dimension finie)
 Méthode des moindres carrés
 Optimisation

Bibliographie 

  Avriel, Mordecai (2003), Nonlinear Programming: Analysis and Methods. Dover Publishing. .
  Bazaraa, Mokhtar et Shetty (1979), Nonlinear programming. Theory and algorithms. John Wiley & Sons. .
  Bertsekas, Dimitri (1999), Nonlinear Programming:  Edition. Athena Scientific. .
  J. F. Bonnans, J. Ch. Gilbert, C. Lemaréchal, C. Sagastizábal (2006), Numerical Optimization - Theoretical and Numerical Aspects 
  Bonnans, J. F et Shapiro, A. (2000), Perturbation analysis of optimization problems. Springer. .
  Nocedal, Jorge et Wright, Stephen (1999), Numerical Optimization. Springer. .

Liens externes

Documentation 
  Nonlinear programming FAQ
  Mathematical Programming Glossary
  Nonlinear Programming Survey OR/MS Today

Implémentations 
  AIMMS Optimization Modeling AIMMS — include nonlinear programming in industry solutions ;
  AMPL solver software ;
  Artelys Knitro - solveur spécialisé dans la résolution de problèmes d'optimisation non linéaire de grande dimension (version d'essai disponible);
  GAMS General Algebraic Modeling System.

Optimisation
Algorithme d'optimisation
Intelligence artificielle
Recherche opérationnelle