Optimization is a method for systematically improving system performance or resource allocation to achieve desired outcomes.Un alpiniste voit devant lui trois crêtes, mais ce n’est pas le plus haut col qu’il cherche, mais le plus bas. L’optimisation consiste à rechercher mathématiquement le minimum (ou le maximum) d’une fonction objectif — un indicateur numérique de la qualité d’une solution. Les contraintes définissent la région admissible : on ne peut pas marcher dans les airs ni sur une pente de plus de 45 degrés. La programmation linéaire traite des pentes rectilignes, où la réponse se trouve au sommet. Pour les collines douces, on utilise la descente de gradient. Si le paysage est découpé de ravins et de rochers, les algorithmes évolutionnaires entrent en jeu : ils lâchent une foule d’alpinistes virtuels, et les itinéraires les plus performants se croisent et mutent. Ainsi, on trouve le chemin dans des espaces multidimensionnels, là où on ne peut pas dessiner de carte. Quand le pas devient plus petit qu’un millimètre, la recherche s’arrête : le col est franchi.
Ses racines plongent dans le calcul variationnel des XVIIe et XVIIIe siècles, mais l’étape moderne a commencé dans les années 1940 avec la création de la programmation linéaire et de la méthode du simplexe. Le développement de l’optimisation non linéaire dans les années 1960 a donné les méthodes de pénalité et des gradients conjugués. Dans les années 1980 sont apparus les algorithmes de point intérieur, qui ont révolutionné la résolution de grands problèmes. Aujourd’hui, l’optimisation est à la base de toutes les technologies d’apprentissage automatique.
La plupart des algorithmes construisent une suite de points convergeant vers le minimum. La descente de gradient progresse à l’opposé du gradient. En apprentissage automatique, on calcule le gradient de la fonction de coût sur un sous-ensemble aléatoire des données (lot), ce qui permet d’optimiser des milliards de paramètres. La régularisation ajoute des pénalités de complexité pour éviter le sur-apprentissage. Pour les problèmes avec contraintes, on utilise la méthode du gradient réduit ou la programmation quadratique successive. L’optimisation globale utilise des méthodes bayésiennes et la recherche avec des arbres de décision.
Les GPS tracent des itinéraires, les compagnies aériennes établissent les horaires de vol, et les ingénieurs calculent des formes aérodynamiques : tout cela, c’est le travail des algorithmes d’optimisation.
Le problème du voyageur de commerce — visiter 100 villes par le plus court chemin — possède plus de combinaisons que d’atomes dans l’Univers. Mais des optimiseurs astucieux trouvent une solution en quelques secondes.
| x | variable | Input sequence — sequence |
| n | variable | Index of output element — index |
| i | variable | Left endpoint of interval — index |
| j | variable | Right endpoint of interval — index |
| k | variable | Summation index — index |
| \sup | opérateur | Takes the least upper bound of a set — supremum |
| \sum_{k=i}^j | opérateur | Adds terms from index i to j — finite summation |
| f | variable | objective function value — objective function value |
| g | variable | primary objective function — primary objective function |
| h | variable | penalty function — penalty function |
| λ | variable | penalty weight — penalty weight |
| \theta_k | variable | Parameter vector at iteration k — parameter vector |
| \theta_{k+1} | variable | Updated parameter vector at iteration k+1 — parameter vector |
| \alpha_k | variable | Learning rate (step size) at iteration k — taux d'apprentissage |
| f(\theta_k) | variable | Objective function evaluated at \theta_k — objective function |
| \nabla_\theta | opérateur | Computes the vector of partial derivatives with respect to each parameter — gradient operator |
| Ψ | variable | Wave function — fonction d'onde |
| t | variable | Time — temps second |
| τ | variable | Time step — time step second |
| e^{τW} | opérateur | Applies the evolution operator for the W part — exponential operator |
| e^{τT} | opérateur | Applies the evolution operator for the T part — exponential operator |
| g | variable | function whose growth is being bounded |
| n | variable | input size parameter |
| O | opérateur | asymptotic upper bound up to constant factor — big o notation |
















