Programmation stochastique
Programmation stochastique (en anglais stochastic programming) est une branche de la programmation mathématique qui développe des modèles et des méthodes pour résoudre des problèmes d'optimisation en conditions d'incertitude, lorsque certains paramètres du modèle ne sont pas connus avec certitude, mais sont représentés par des variables aléatoires dont les distributions de probabilité sont connues ou estimées[1][2].
Contrairement aux problèmes déterministes, où toutes les données sont considérées comme des constantes fixes, la programmation stochastique vise à trouver une solution (ou une politique de décision) qui est optimale dans un certain sens statistique. Le plus souvent, cela signifie minimiser ou maximiser l'espérance mathématique de la fonction objectif[1]. L'idée clé est de trouver une politique de décision qui soit la meilleure « en moyenne » sur toutes les réalisations possibles des paramètres aléatoires, ce qui est particulièrement pertinent pour les problèmes où les décisions sont prises de manière répétée dans des conditions similaires (par exemple, dans la gestion des stocks ou des systèmes énergétiques)[3].
Formulation mathématique du problème
De manière générale, un problème de programmation stochastique peut être formulé comme suit : où :
- — le vecteur des variables de décision (solutions) à déterminer.
- — l'ensemble des solutions admissibles pour , défini par des contraintes déterministes.
- — un vecteur aléatoire représentant les paramètres incertains du problème (par exemple, la demande, les prix, les conditions météorologiques).
- — la fonction objectif, dont la valeur dépend à la fois de la décision prise et de la réalisation du vecteur aléatoire .
- — l'opérateur d'espérance mathématique, calculé sur la distribution de probabilité du vecteur .
Un principe fondamental des modèles stochastiques multi-étapes est le principe de non-anticipation (en anglais non-anticipativity principle). Il stipule que les décisions prises à une étape donnée ne peuvent dépendre que de l'information disponible à ce moment-là et ne peuvent pas « anticiper le futur »[2].
Problème à deux étapes avec recours
Le modèle le plus courant est le problème stochastique à deux étapes avec recours (en anglais two-stage stochastic program with recourse)[1]. Le processus de prise de décision est divisé en deux étapes :
- Première étape : Une décision est prise « ici et maintenant » (here-and-now) — le vecteur est déterminé. Cette décision doit être prise avant que la réalisation concrète du vecteur aléatoire ne soit connue.
- Deuxième étape : Une fois que l'événement aléatoire s'est produit, une décision corrective ou de recours (recourse decision) est prise — le vecteur , visant à minimiser les conséquences négatives ou à exploiter les opportunités favorables résultant de la combinaison de la décision de première étape et de la réalisation .
Mathématiquement, un problème de programmation linéaire stochastique à deux étapes est formulé comme suit : sous les contraintes de première étape : . Ici, est la fonction de recours (recourse function), qui représente la valeur optimale du problème de deuxième étape : où est un vecteur aléatoire qui inclut les paramètres et ; et et sont des paramètres déterministes[2].
Propriétés clés et théorèmes
- Convexité : L'un des résultats fondamentaux de la théorie est que pour un problème de programmation linéaire stochastique à deux étapes, la fonction de recours espérée est une fonction convexe. Cette propriété est d'une grande importance, car elle garantit que le problème global de première étape est un problème de programmation convexe, pour lequel il existe des méthodes de résolution efficaces et où l'optimum global coïncide avec l'optimum local[1].
- Équivalent déterministe : Si le vecteur aléatoire a un nombre fini de réalisations possibles (scénarios) avec des probabilités , le problème de programmation stochastique peut être reformulé comme un unique grand problème d'optimisation déterministe. Dans ce cas, l'espérance mathématique est remplacée par une somme pondérée sur tous les scénarios. Cependant, la taille de ce problème croît linéairement avec le nombre de scénarios, ce qui conduit au « fléau de la dimensionnalité » et rend cette approche infaisable sur le plan calculatoire pour un grand nombre de scénarios[2].
Comparaison avec l'optimisation robuste
La programmation stochastique est l'une des plusieurs approches de l'optimisation en conditions d'incertitude. Sa principale différence avec l'optimisation robuste réside dans la manière de modéliser l'incertitude et dans le critère d'optimalité[4].
| Critère | Optimisation stochastique | Optimisation robuste |
|---|---|---|
| Représentation de l'incertitude | Les paramètres sont des variables aléatoires avec une distribution de probabilité connue | Les paramètres appartiennent à un ensemble d'incertitude défini, aucune distribution n'est requise |
| Critère d'optimalité | Optimisation de l'espérance mathématique de la fonction objectif | Optimisation pour le pire des cas (minimax) |
| Nature de la solution | Une politique optimale « en moyenne », peut être non admissible pour des scénarios rares | Une solution garantie d'être admissible pour toutes les réalisations ; peut être conservatrice |
Exemples
- Problème du vendeur de journaux (en anglais newsvendor problem) : Un problème classique de gestion des stocks où un vendeur doit décider quelle quantité d'un produit acheter sans connaître la demande future exacte. La solution consiste à trouver un équilibre entre le risque de pertes dues à un surplus et le risque de manque à gagner dû à une pénurie.
- Problème du fermier : Un fermier décide combien d'hectares de terre allouer à différentes cultures sur sa superficie totale, sans connaître les conditions météorologiques futures qui affecteront les rendements. Une fois les conditions météorologiques connues, le fermier peut prendre des mesures correctives (par exemple, vendre les excédents ou acheter les récoltes manquantes sur le marché)[5].
Voir aussi
- Programmation mathématique
- Recherche opérationnelle
- Optimisation robuste
- Programmation dynamique
- Théorie du contrôle
Notes
- ↑ 1.0 1.1 1.2 1.3 Shapiro, A., Dentcheva, D., & Ruszczyński, A. (2009). Lectures on Stochastic Programming: Modeling and Theory. Society for Industrial and Applied Mathematics (SIAM).
- ↑ 2.0 2.1 2.2 2.3 Birge, J. R., & Louveaux, F. (2011). Introduction to Stochastic Programming (2nd ed.). Springer Science+Business Media.
- ↑ "Programmation stochastique". Wikipédia. [1]
- ↑ Gorissen, B. L., Yanıkoğlu, İ., & den Hertog, D. (2015). A practical guide to robust optimization. Omega, 53, 124-137.
- ↑ Bricker, D. L. SLPwR: Farmer Problem. University of Iowa. [2]