Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Google

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 249

N¶ d’ordre .......

- 2023 Ière Année de Parution 2020 Année de Ré-édition 2023

FSI
FACULTÉ DES SCIENCES DE L’INGÉNIEUR

SYLLABUS

MÉTHODES D’AIDE À LA DÉCISION -MASTER II:


GÉNIE INFORMATIQUE

Pr F. NAHAYO

© F.Nahayo<fulgence.nahayo@ub.edu.bi>,MÉTHODES D’AIDE À LA
DÉCISION - GI/FSI 2023
Table des matières

I Objectif et Descriptif du Cours 1

I Descriptif /Méthodes d’Aide à la Décision 3


1 Pré requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Objectif général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Objectifs spécifiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4 Contenu du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
5 Méthodologie d’enseignement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
6 Méthodologie d’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
7 Profil de l’enseignant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
8 Matériel didactique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

II Méthodes d’Aide à la Décision et Simulation 11

II Introduction aux Méthodes d’Aide à la Décision 13


1 Les origines de la recherche opérationnelle . . . . . . . . . . . . . . . . . . . . . 13
2 La nature de la recherche opérationnelle . . . . . . . . . . . . . . . . . . . . . . 14
3 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4 Algorithmes et logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.1 Un exemple avec GAMS . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5 Exercices d’application et d’assimulation . . . . . . . . . . . . . . . . . . . . . . 22
6 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

i
Table des matières

III Programmation linéaire 23


1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2 Modèle général de programmation linéaire . . . . . . . . . . . . . . . . . . . . . 27
3 Terminologie de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4 Hypothèses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5 La méthode du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.1 Solution de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2 Interprétations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3 Critère d’optimalité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.4 Adaptation à d’autres formes de modèles . . . . . . . . . . . . . . . . . . 46
5.5 Obtention d’une base admissible initiale . . . . . . . . . . . . . . . . . . 47
5.6 Variables à valeurs quelconques . . . . . . . . . . . . . . . . . . . . . . . 49
6 Dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.2 Analyse de sensibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7 Exercices d’application et d’assimulation . . . . . . . . . . . . . . . . . . . . . . 57
8 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

IV Programmation non linéaire 59


1 Fonctions convexes et concaves . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
1.1 Ensembles convexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2 Algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.1 L’algorithme du simplexe dans le cas non-linéaire . . . . . . . . . . . . . 65
2.2 Optimisation sans contrainte . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.3 Méthode de la bissection . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.4 Méthode du gradient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.5 Optimisation sous contraintes . . . . . . . . . . . . . . . . . . . . . . . . 69
3 Exercices d’application et d’assimulation . . . . . . . . . . . . . . . . . . . . . . 72
4 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

V Programmation mixte entière 73


1 Présentation générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2 Contraintes mutuellement exclusives . . . . . . . . . . . . . . . . . . . . . . . . 78
2.1 Deux contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2.2 K contraintes parmi N . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

ii
Table des matières

2.3 Fonction ayant N valeurs possibles . . . . . . . . . . . . . . . . . . . . . 80


2.4 Objectif avec coûts fixes . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.5 Variables entières en variables 0-1 . . . . . . . . . . . . . . . . . . . . . . 82
2.6 Problème de recouvrement . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3 Stratégies de résolutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.1 Relaxation linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.2 Approche par énumération . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.3 Les hyperplans coupants (méthode de coupe) . . . . . . . . . . . . . . . 98
4 Modélisation avec GAMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

VI Réseaux 107
1 Graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
1.1 Graphe orienté . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
1.2 Graphe non orienté . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
1.3 Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
1.4 Chemins et circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
1.5 Connexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
2 Problème du chemin le plus court - algorithmes de corrections d’étiquette . . . . 111
2.1 Algorithme de Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3 Flot dans un réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.1 Réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.2 Modèle de flot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
3.3 Algorithme de Bellman-Ford . . . . . . . . . . . . . . . . . . . . . . . . . 114
3.4 Modèle du chemin critique (PERT/CPM) . . . . . . . . . . . . . . . . . 116
3.5 Algorithme de Prim (1957) . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4 Problème du flot maximum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.1 Algorithme de Ford-Fulkerson . . . . . . . . . . . . . . . . . . . . . . . . 120
4.2 Flot maximum - Coupe minimum . . . . . . . . . . . . . . . . . . . . . . 125
5 Problème de flot minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
6 Exercices d’application et d’assimulation . . . . . . . . . . . . . . . . . . . . . . 127
7 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

iii
Table des matières

VII Modèles stochastiques 129


1 Concepts de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
2 Variable aléatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
2.1 Variables aléatoires discrètes . . . . . . . . . . . . . . . . . . . . . . . . . 131
2.2 Variables aléatoires continues . . . . . . . . . . . . . . . . . . . . . . . . 132
2.3 Espérance mathématique . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
2.4 Variance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
3 Loi de probabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
3.1 Loi de Bernouilli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
3.2 Loi uniforme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
3.3 Loi de Poisson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
3.4 Loi exponentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
4 Modèles stochastiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
4.1 Processus stochastiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
4.2 Chaînes de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5 Exercices d’application et d’assimulation . . . . . . . . . . . . . . . . . . . . . . 139
6 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

VIII Programmation dynamique 141


1 Principe d’optimalité de Bellman . . . . . . . . . . . . . . . . . . . . . . . . . . 141
2 Affectation de ressources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
3 Programmation dynamique déterministe et plus court chemin . . . . . . . . . . 149
4 Cas probabiliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
5 Exercices d’application et d’assimulation . . . . . . . . . . . . . . . . . . . . . . 152
6 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

IX Simulation 155
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
2 Files d’attente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
2.1 Concepts de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
2.2 Modèle M/M/1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
3 Simulation à événements discrets . . . . . . . . . . . . . . . . . . . . . . . . . . 160
4 Logiciels d’optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
4.1 IOR Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
4.2 GAMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

iv
Table des matières

5 Exercices d’application et d’assimulation . . . . . . . . . . . . . . . . . . . . . . 171


6 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

III Méthodes d’Optimisation Stochastique 173

X Rappels sur le Calcul Stochastique 175


1 Processus stochastique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
1.1 Processus de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
1.2 Temps d’arrêt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
1.3 Mouvement brownien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
2 L’intégrale stochastique (l’intégrale d’Itô) . . . . . . . . . . . . . . . . . . . . . . 176
2.1 Propriétés de l’intégrale stochastique. . . . . . . . . . . . . . . . . . . . . 177
2.2 Processus d’Itô . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
2.3 Martingales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
2.4 Variation quadratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
3 Equations différentielles stochastiques (EDS) . . . . . . . . . . . . . . . . . . . . 179
3.1 Condition d’existence et d’unicité d’une solution forte . . . . . . . . . . . 180
3.2 Equations différentielles stochastiques rétrogrades . . . . . . . . . . . . . 181
4 Exercices d’application et d’assimulation . . . . . . . . . . . . . . . . . . . . . . 181

XI Formulation du problème de contrôle optimal stochastique 183


1 Quelques exemples de problèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
1.1 Exemple 1 : Réassurance et gestion des dividendes . . . . . . . . . . . . . 183
1.2 Exemple 2 : Investissement et consommation. . . . . . . . . . . . . . . . 185
2 Formulation du problème du contrôle optimal stochastique . . . . . . . . . . . . 187
2.1 Formulation (forte) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
2.2 Formulation (faible) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
3 Exercices d’application et d’assimulation . . . . . . . . . . . . . . . . . . . . . . 189

XII Principe de Maximun et Programmation dynamique des Systèmes Écono-


miques. 191
1 Existence du contrôle optimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
1.1 Quelques hypothèses : . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
2 Le principe du maximum stochastique . . . . . . . . . . . . . . . . . . . . . . . 194
2.1 Cas sans contrainte sur la variable d’état . . . . . . . . . . . . . . . . . . 194

v
Table des matières

2.2 Condition suffisante d’optimalité . . . . . . . . . . . . . . . . . . . . . . 196


2.3 Cas avec contrainte sur la variable d’état . . . . . . . . . . . . . . . . . . 197
3 Programmation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
3.1 Solutions de viscosité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
3.2 Théorème de vérification . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
4 Exercices d’application et d’assimulation . . . . . . . . . . . . . . . . . . . . . . 208

XIII Applications : Stratégie Moyenne-Variance. 209


1 Formulation du problème. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
2 Résolution par le principe du maximum stochastique . . . . . . . . . . . . . . . 212
2.1 Problème sans contrainte . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
2.2 Problème avec contrainte . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
3 Résolution par la programmation dynamique . . . . . . . . . . . . . . . . . . . . 221
3.1 Problème sans contrainte . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
3.2 Problème avec contrainte . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
4 Exercices d’application et d’assimulation . . . . . . . . . . . . . . . . . . . . . . 235

Conclusion générale et perspectives 237

Références bibliographiques 241

vi
Première partie

Objectif et Descriptif du Cours

1
Chapitre I

Descriptif /Méthodes d’Aide à la Décision

1 Pré requis
Pour bien assimuler le cours, les étudiants doivent avoir des connaissances en :
• Algèbre linéaire et calcul matriciel ;
• Théorie des probabilités et statistique appliquée ;
• Programmation.

2 Objectif général
A l’issue de ce cours, l’apprenant sera capable de comprendre et de maîtriser les concepts et les
outils de base de la résolution de problèmes de la vie économique et statistique du pays pour
une prise de décision optimale.

3 Objectifs spécifiques
Les objectifs spécifiques du cours de Méthodes d’Aide à la Décision sont les suivantes :

1. Développer et maîtriser les algorithmes de résolution des problèmes des entreprises ;


2. Développer et maîtriser les principes et les concepts de programmation linéaire ;
3. Développer et maîtriser les principes et les concepts de programmation non-linéaire ;
4. Développer et maîtriser les principes et les concepts de programmation mixte entière ;
5. Développer et maîtriser les principes et techniques de la théorie des graphes ;
6. Développer et maîtriser les principes et les concepts de programmation dynamique ;
7. Développer et maîtriser les principes et techniques de la théorie des files d’attente ;

3
I. Descriptif du cours de Méthodes d’Aide à la Décision

8. Développer et maîtriser les principes et les concepts de l’optimisation stochastique ;


9. Développer et maîtriser les principes et les concepts de formulation d’un problème de
contrôle optimal stochastique ;
10. Développer et maîtriser les principes du maximun et programmation dynamique des
systèmes économiques et ses applications.

4 Contenu du cours
1. Introduction aux méthodes d’aide à la décision
(a) Les origines de la recherche opérationnelle ;
(b) La nature de la recherche opérationnelle ;
(c) Modélisation ;
(d) Algorithmes et logiciels ;
i. Un exemple avec GAMS
2. Programmation linéaire
(a) Introduction
(b) Modèle général de programmation linéaire
(c) Terminologie de base
(d) Hypothèses
(e) méthode du simplexe .
i. Solution de base ;
ii. Interprétations ;
iii. Critère d’optimalité ;
iv. Adaptation à d’autres formes de modèles ;
v. Obtention d’une base admissible initiale ;
vi. Variables à valeurs quelconques.
(f) Dualité
i. Motivation ;
ii. Analyse de sensibilité
3. Programmation non linéaire

4
I.4 Contenu du cours

(a) Fonctions convexes et concaves


i. Ensembles convexes
(b) Algorithmes
i. L’algorithme du simplexe dans le cas non-linéaire
ii. Optimisation sans contrainte ;
iii. Méthode de la bissection ;
iv. Méthode du gradient ;
v. Optimisation sous contraintes ;
vi. Conditions d’optimalité.
4. Programmation mixte entière
(a) Présentation générale
(b) Contraintes mutuellement exclusives
i. Deux contraintes ;
ii. K contraintes parmi N ;
iii. Fonction ayant N valeurs possibles ;
iv. Objectif avec coûts fixes ;
v. Variables entières en variables 0-1 ;
vi. Problème de recouvrement
(c) Stratégies de résolutions
i. Relaxation linéaire ;
ii. Approche par énumération ;
iii. Les hyperplans coupants (méthode de coupe).
(d) Modélisation avec GAMS.
5. Réseaux
(a) Graphes
i. Graphe orienté ;
ii. Graphe non orienté ;
iii. Transformations ;
iv. Chemins et circuits ;

5
I. Descriptif du cours de Méthodes d’Aide à la Décision

v. Connexité.
(b) Problème du chemin le plus court-algorithmes de corrections d’étiquettes
i. Algorithme de Dijkstra
(c) Flot dans un réseau
i. Réseau ;
ii. Modèle de flot ;
iii. Algorithme de Bellman-Ford ;
iv. Modèle du chemin critique (PERT/CPM).
(d) Problème de l’arbre partiel minimum
i. Algorithme de Prim (1957)
(e) Problème du flot maximum
i. Algorithme de Ford-Fulkerson ;
ii. Flot maximum - Coupe minimum.
(f) Problème de flot minimum
6. Modèles stochastiques
(a) Concepts de base ;
(b) Variable aléatoire.
i. Variables aléatoires discrètes
ii. Variables aléatoires continues ;
iii. Espérance mathématique ;
iv. Variance
(c) Loi de probabilité
i. Loi de Bernouilli ;
ii. Loi uniforme ;
iii. Loi de Poisson ;
iv. Loi exponentielle.
(d) Modèles stochastiques
i. Processus stochastiques ;
ii. Chaînes de Markov.

6
I.4 Contenu du cours

7. Programmation dynamique
(a) Principe d’optimalité de Bellman ;
(b) Affectation de ressources ;
(c) Programmation dynamique déterministe et plus ;
(d) Cas probabiliste.
8. Simulation
(a) Introduction ;
(b) Files d’attente
i. Concepts de base
ii. Modèle M/M/1
(c) Simulation à événements discrets
(d) Logiciels d’optimisation
i. OR Tutorial ;
ii. GAMS ;
iii. Autres logiciels.
9. Rappel sur le calcul stochastique
(a) Processus stochastique
i. Processus de Markov ;
ii. Temps d’arrêt ;
iii. Mouvement brownien.
(b) L’intégrale stochastique (l’intégrale d’Itô)
i. Propriétés de l’intégrale stochastique ;
ii. Processus d’Itô ;
iii. Martingales ;
iv. Variation quadratique.
(c) Équations différentielles stochastiques (EDS)
i. Condition d’existence et d’unicité d’une solution forte ;
ii. Équations différentielles stochastiques rétrogrades.
10. Formulation du problème de contrôle optimal stochastique

7
I. Descriptif du cours de Méthodes d’Aide à la Décision

(a) Quelques exemples de problèmes


i. Exemple 1 : Réassurance et gestion des dividendes ;
ii. Exemple 2 : Investissement et consommation .
(b) Formulation du problème du contrôle optimal stochastique
i. Formulation (forte) ;
ii. Formulation (faible).
11. Principe du maximum et programmation dynamique
(a) Existence du contrôle optimal
i. Quelques hypothèses
(b) Le principe du maximum stochastique
i. Cas sans contrainte sur la variable d’état ;
ii. Condition suffisante d’optimalité ;
iii. Cas avec contrainte sur la variable d’état.
(c) Programmation dynamique
i. Solutions de viscosité ;
ii. Théorème de vérification.
12. Applications : Stratégie moyenne-variance
(a) Formulation du problème ;
(b) Résolution par le principe du maximum stochastique
i. Problème sans contrainte ;
ii. Problème avec contrainte.
(c) Resolution par la programmation dynamique
i. Problème sans contrainte ;
ii. Problème avec contrainte.

5 Méthodologie d’enseignement
Le cours est dispensé sous forme de Cours magistral avec beaucoup des exercices d’application.
Des travaux dirigés et pratiques sont aussi donnés aux étudiants afin de bien assimiler le cours.

8
I.6 Méthodologie d’évaluation

6 Méthodologie d’évaluation
Il s’agit de donner un examen écrit comptant pour 60% et des travaux dirigés pour 40%. Les
examens de rattrapage comptent uniquement pour un examen écrit pour 100%.

7 Profil de l’enseignant
PhD en Mathématiques Appliquées assisté par Un enseignant - doctorant en Mathématiques
et Applications pour la conduite des séances des exercices.

8 Matériel didactique
Ce cours exige le matériel didactique standard. Une simulation des lois avec des logiciels statis-
tique spécialisé comme Matlab, R, SPSS,et une simulation des problèmes d’optimisation avec
le logiciel GAMS, est être faite par l’enseignant.

9
I. Descriptif du cours de Méthodes d’Aide à la Décision

10
Deuxième partie

Méthodes d’Aide à la Décision et


Simulation

11
Chapitre II

Introduction aux Méthodes d’Aide à la


Décision

1 Les origines de la recherche opérationnelle

Si la Recherche Opérationnelle, en abrégé RO, est aujourd’hui présente dans la plupart des
domaines civils, ses racines sont habituellement attribuées aux services militaires. La seconde
guerre mondiale, de part son envergure, créa un besoin urgent d’allouer de manière efficace
des ressources limitées aux différentes opérations militaires et aux activités au sein de chaque
opération.
En particulier, l’organisation militaire britannique, puis américaine, mis à contribution un grand
nombre de scientifiques pour gérer ces allocations, et s’occuper d’autres problèmes stratégiques
et tactiques. Ce faisant, ils furent appelés à poursuivre des recherches sur des opérations (mi-
litaires), et constituèrent les premières équipes de RO. Leurs efforts furent significatifs dans la
marche vers la victoire, par exemple en ce qui touche l’utilisation du radar, nouvellement déve-
loppé. Ces succès encouragèrent la poursuite de l’utilisation de la RO dans d’autres domaines.
La croissance importante de l’industrie d’après-guerre entraîna des problèmes, causés par la
complexité croissante et la spécialisation dans les organisations, problèmes en fait proches de
ceux présents lors du conflit. Au début des années 1950, la RO avait pénétré une multitude
d’organisations commerciales, industrielles, et gouvernementales. Et ce n’était que le début.
Au moins deux autres facteurs ont joué un rôle clé dans la croissance rapide de la RO. Tout
d’abord, des progrès substantiels ont été obtenus très tôt afin d’améliorer les techniques de RO.
Ces techniques, dans leur mise en pratique, furent soutenues par l’essor des outils informatiques.

13
II. Introduction aux Méthodes d’Aide à la Décision

2 La nature de la recherche opérationnelle


"Rechercher sur des opérations" touche tous les problèmes reliés à la conduite et à la coordina-
tion des opérations (activités) au sein d’une organisation. Cette organisation peut représenter
des domaines très divers : l’industrie manufacturière, le transport, la construction, les télécom-
munications, la finance, les soins de santé,. . .
La RO, associée à la révolution informatique, pénètre pratiquement tous les secteurs d’activités
de la vie courante, même si sa présence est souvent invisible.
La première étape de la "recherche" est l’observation attentive du problème et sa formula-
tion, ainsi que la collecte de données associées. Il convient par la suite de construire un modèle
scientifique qui tente d’abstraire l’essence du problème réel. Tout modèle est une simplification
de la réalité, mais cette représentation doit être suffisamment précise pour capturer les caracté-
ristiques essentielles de la situation, et de pouvoir tirer des conclusions valides pour le problème
réel. Il conviendra dès lors de tester ce modèle, et de le modifier au besoin.
Une caractéristique additionnelle est que la RO essaye souvent de trouver une meilleure solution
(dite solution optimale) pour le problème examiné. Cette solution peut ne pas être unique.
Cette recherche d’optimalité est un thème important en RO, mais si son interprétation en terme
managérial peut être délicate.
Il est difficile pour un individu de pouvoir maîtriser tous les aspects du problèmes à l’étude,
de sorte que la RO est généralement plus un travail d’équipe, avec des experts en mathé-
matiques, statistiques et probabilités, ingénierie, économie, administration, informatique, phy-
siques, sciences comportementales, et les techniques spécifiques de la RO.

3 Modélisation
Un modèle, telle que considéré dans ce cours, est une construction mathématique utilisée pour
représenter certains aspects significatifs de problèmes du monde réel. Il y a beaucoup de types
différents de modèles mathématiques, mais nous nous focaliserons dans un premier temps sur
les modèles d’optimisation.
Il y a trois composantes principales dans un modèle d’optimisation :
1. Variables : elles représentent les composantes du modèle qui peuvent être modifiées
pour créer des configurations différentes ;
2. Contraintes : elles représentent les limitations sur les variables ;
3. Fonction objectif : cette fonction assigne une valeur à chaque configuration différente.

14
II.3 Modélisation

Le terme "objectif " vient du fait que l’objectif est d’optimiser cette fonction.

Exemple 1 (Un exemples de décisions binaires (oui/non)) Un étudiant en quête d’une


université projette de visiter les campus de trois universités du Maine au cours d’un voyage
unique, débutant et finissant à l’aéroport de Portland. Les trois établissements sont dans les
villes de Brunswick, Lewiston, et Waterville, et l’étudiant ne veut visiter chaque ville qu’une
seule fois, tout en maintenant le trajet total le plus court possible.
Les distances entre ces villes sont données dans la Table II.1
Ville Portland Brunswick Lewiston Waterville
Portland 0 26 34 78
Brunswick 26 0 18 52
Lewiston 34 18 0 51
Waterville 78 52 51 0

Tableau II.1 – Distances entre les villes (miles)

L’étape la plus importante dans la construction d’un modèle est le choix des variables qui vont
entrer en jeu.
Dans le présent cas, puisque n’importe quel trajet consiste en une série de petits déplacements
entre deux villes, il est raisonnable d’assigner des variables aux décisions de partir ou non d’une
ville vers une autre. Pour plus de faciliter,numérotons les villes comme suit : 1 pour Portland,
2 pour Brunswick, 3 pour Lewiston et 4 pour Waterville. Ainsi, nous aurons une variable x1,2
égale à 1 si l’étudiant voyage de Portland à Brunswick au cours de son parcours total, et 0
sinon. Puisqu’il n’y a pas de voyage d’une ville vers cette même ville, nous avons d’ores et déjà
les contraintes
xi,i = 0, i = 1, . . . , 4. (II.1)

Une fois les variables choisies, nous pouvons essayer de formuler le problème. Ce processus est
en fait souvent une manière utile pour guider le choix des variables.
Chaque ville ne devant être visitée qu’une seule fois, elle ne peut apparaître qu’une seule fois
comme ville d’arrivé. En d’autres termes, pour j fixé, xi,j ne peut être non-nul que pour un
i donné, avec i ”= j. Une manière plus simple d’encoder cette information est d’écrire, pour
j = 1, . . . , 4,
x1,j + x2,j + x3,j + x4,j = 1, (II.2)

ou de manière plus concise :

4
ÿ
xi,j = 1, ’ j = 1, . . . , 4. (II.3)
i=1

15
II. Introduction aux Méthodes d’Aide à la Décision

Les contraintes formulées jusqu’à présent ne garantissent aucune forme de trajet ayant même
départ et arrivée. Par exemple, l’affectation x1,2 = 1, x1,3 = 1, x1,4 = 1, x2,1 = 1, et toutes les
autres variables égales à 0, satisfont les contraintes II.2 et II.3. Cette solution décrit toutefois
un schéma de visites impossible puisque Portland est l’origine de tous les déplacements aux trois
autres villes universitaires, mais n’est destination que depuis Brunswick.
Nous avons évidemment aussi besoin des contraintes
4
ÿ
xi,j = 1, i = 1, . . . , 4 (II.4)
j=1

afin d’assurer que chaque ville ne serve d’origine que pour exactement un déplacement vers une
autre ville.
Finalement, afin d’obtenir un véritable trajet ayant même origine et départ, nous devons rejeter
les affectations qui décrivent des groupes déconnectés de petits déplacements comme x1,2 =
x2,1 = 1, x3,4 = x4,3 = 1, avec toutes les autres variables égales à 0. Nous pouvons forcer ceci
avec les contraintes
xi,j + xj,i Æ 1, i = 1, . . . , 4, et j = 1, . . . , 4. (II.5)

Cette contrainte exclut tout mini-cycle.


Les contraintes définies, nous devons décrire la distance totale associé à n’importe quel parcours
autorisé. Puisque nos variables ont seulement comme valeurs possibles 0 ou 1, nous pouvons
multiplier chacune d’elle par la distance correspondante entre les deux villes indexées, et les
additionner :
4 ÿ
ÿ 4
ai,j xi,j (II.6)
i=1 j=1

Notre modèle mathématique consiste à minimiser cette fonction, dite fonction objectif par rap-

16
II.3 Modélisation

port aux variables xi,j , tout en satisfaisant les contraintes préalablement décrites :

4 ÿ
ÿ 4
min
x
ai,j xi,j
i=1 j=1

s.c :xi,i = 0, i = 1, . . . , 4,
4
ÿ
xi,j = 1, j = 1, . . . , 4,
i=1
ÿ4
xi,j = 1, i = 1, . . . , 4,
j=1

xi,j + xj,i Æ 1, i = 1, . . . , 4, et j = 1, . . . , 4,
xi,j œ {0, 1}, i = 1, . . . , 4, et j = 1, . . . , 4

Ici, x = (xi,j ) i = 1, . . . , 4, j = 1, . . . , 4 , et s.c : “sous les contraintes. Le problème d’optimisa-


tion ainsi construit constitue un programme mathématique. Le problème de visites d’universités
est assez petit que pour être résolu explicitement, sans recourir à des méthodes d’optimisation
numérique. Puisqu’il y a seulement trois parcours significativement différents, la distance totale
associée à chacun d’eux pourrait être facilement calculée, et nous choisissons le parcours de
longueur minimale, qui est ici

P ortland ≠æ Brunswick ≠æ W aterville ≠æ Lewiston ≠æ P ortland.

avec une distance totale de 163 miles. Il est cependant clair qu’une telle stratégie de résolution
ne fonctionne plus quand le nombre de villes augmente.
Exemple 2 (Un problème de mélange) Un armateur doit construire un navire de guerre
à partir de 50 tonnes d’acier contenant entre 0.5% et 1.25% de carbone (C), entre 0.3% et
0.5% de silicone (Si), pas plus de 0.05% de sulfure (Su), et pas plus de 0.04% de phosphore
(Ph). Un fournisseur produit de l’acier à partir de sept matières premières dont les qualités, les
disponibilités en tonnes, et les coûts en tonne sont donnés dans la Table II.2. Le fournisseur
veut déterminer la combinaison la moins coûteuse de composants bruts qu’il peut utiliser pour
produire l’acier répondant aux besoins de l’armateur.
Puisque le fournisseur peut changer les quantités de matières premières utilisées dans la pro-
ducton de l’acier, nous pourrions assigner une variable différente pour représenter la quantité
de chaque matière première :
• x1 = tonnes de limonite,
• x2 = tonnes de taconite,

17
II. Introduction aux Méthodes d’Aide à la Décision

• x3 = tonnes d’hématite,
• x4 = tonnes de magnétite,
• x5 = tonnes de silicone 1,
• x6 = tonnes de silicone 2,
• x7 = tonnes de charbon.

Matière première %C %Si %Su %P h Disponibilité Coût


limonite 3.0 0 0.013 0.015 40 200
taconite 2.5 0 0.008 0.001 30 250
hématite 0 0 0.011 0.05 60 150
magnétite 1.2 0 0.002 0.008 50 220
silicone 1 0 90 0.004 0.002 20 300
silicone 2 0 96 0.012 0.003 30 310
charbon 90 0 0.002 0.01 25 165

Tableau II.2 – Données pour le problème de production d’acier

Notons que les variables sont ici continues, contrairement à l’exemple précédent.
Afin de modéliser les contraintes, observons tout d’abord que les variables dans ce cas sont
naturellement bornées inférieurement par 0 (puisque des quantités négatives ne feraient pas de
sens), et bornées supérieurement par leur quantité disponible, aussi avons-nous :

0 Æ x1 Æ 40 ,
0 Æ x2 Æ 30,
0 Æ x3 Æ 60,
0 Æ x4 Æ 50,
0 Æ x5 Æ 20,
0 Æ x6 Æ 30,
0 Æ x7 Æ 25.

En supposant que n’importe quelle quantité d’une matière première contribue pour la même
quantité d’acier, et en sachant que nous devons produire au moins 50 tonnes, nous avons

7
ÿ
xi Ø 50, (II.7)
i=1

Notons que nous ne supposons pas que nous produirons exactement 50 tonnes, puisqu’il peut
être nécessaire de produire d’avantage afin de satisfaire les autres exigences du problème.
L’autre caractéristique contraignante dans ce problème est que l’acier doit contenir un certain
pourcentage de carboine, de silicone, de sulfure et de phosphore. Afin de voir comment ces

18
II.3 Modélisation

exigences de composition se traduisent en contraintes par rapport à nos variables, nous nous
concentrerons d’abord sur l’exigence d’avoir entre 0.5% et 1.25% de carbone, en espérant que
les exigences sur le silicone, le sulfure et le phosphore se formulent de manière similaire.
A partir des données, nous connaissons le pourcentage de contribution en carbone de chaque
matière première, aussi nous pouvons facilement calculer la quantité de carbone pour n’importe
quel choix de variables comme

0.03x1 + 0.025x2 + 0.012x4 + 0.9x7 . (II.8)

Cependant, comme nous avons une exigence de proportion de carbone dans l’acier, nous devons
diviser cette quantité de carbone par la quantité d’acier :
A B
tonnes de carbone 0.03x1 + 0.025x2 + 0.012x4 + 0.9x7
%C = 100 = (II.9)
tonnes dÕ acier x1 + x2 + x3 + x4 + x5 + x6 + x7

La contrainte que l’acier contienne entre 0.5% et 1.25% de carbone se traduit dans la paire de
contraintes
0.03x1 + 0.025x2 + 0.012x4 + 0.9x7
0.5 Æ Æ 1.25. (II.10)
x1 + x2 + x3 + x4 + x5 + x6 + x7
Les contraintes pour les autres composants se formulent de manière similaires. Puisque ce pro-
blème implique de trouver la combinaison la moins coûteuse de matières premières qui rencontre
la demande de 50 tonnes d’acier, la fonction objectif est simplement le coût des matières pre-
mières utilisées :

coût = 200x1 + 250x2 + 150x3 + 220x4 + 300x5 + 310x6 + 165x7 , (II.11)

où chaque matière première contribue pour son propre coût au total. Le problème d’optimisation
est dès lors la minimisation de cette fonction coût sur tous les choix des variables qui satisfont
les contraintes modélisées.
Il n’est plus possible ici d’énumérer les solutions possibles afin de résoudre le modèle, en par-
ticulier puisque les variables considérées sont continues. Nous pouvons néanmoins obtenir une
intuition de la solution en considérant le comportement de la fonction objectif. Ainsi, il est
évident que celle-ci décroît quand une des variables diminue, et que la contribution la plus
faible en termes de coût vient des variables avec les plus petits coefficients (i.e. les matières
premières avec les coûts moindres par unité). Si nous ignorons les contraintes de composition,
le fournisseur devrait produire exactement 50 tonnes d’acier à partir des matières premières
disponibles les moins chères. Ceci signifierait utiliser 50 des 60 tonnes disponibles d’hématite

19
II. Introduction aux Méthodes d’Aide à la Décision

(au coût de 150F par tonne), pour un coût total des 7.500F.
Avant d’essayer de résoudre le problème d’optimisation complet (à l’aide d’un ordinateur), nous
devrions réécrire les contraintes de composition dans une forme plus simple. Par exemple, la
contrainte précédente est non-linéaire, mais peut être réexprimée comme deux contraintes li-
néaires en multipliant chaque terme des inégalités par le dénominateur. Après la simplification
de toutes les contraintes de composition de cette manière, et en utilisant un logiciel d’optimi-
sation, nous obtenons la solution

x1 = 13.7888, x3 = 35.8097, x5 = 0.166667, x7 = 0.234818, x2 = x4 = x6 = 0, (II.12)

qui se traduit en exactement 50 tonnes d’acier, produit à partir de 13.7888 tonnes de limonite,
35.8097 tonnes d’hématite, 0.166667 tonnes de silicone et 0.234818 tonnes de charbon. Le coût
total de production pour cette solution est 8, 217.96.

4 Algorithmes et logiciels
Au-delà de la modélisation, la résolution de problèmes de recherche opérationnelle nécessite de
recourir à des algorithmes adaptés à la nature du problème, et capables de traiter de quelques
dizaines à des millions de variables. Leur étude consistera par conséquent une partie importante
du présent document. Même si de nombreux logiciels mettant en oeuvre ces algorithmes sont
commerciaux, le monde de l’open-source n’est pas en reste avec notamment des projets tels que
COIN-OR (http ://www.coin-or.org). Il existe aussi diverses versions d’évaluations de solveurs
commerciaux, ainsi que l’interface web NEOS (http ://www-neos.mcs.anl.gov). L’utilisation de
tels outils nécessitent toutefois l’apprentissage de langages de modélisation adaptés ; dans ce
cours, nous nous baserons sur le langage GAMS (http ://www.gams.com). Ces langages servent
à décrire dans des termes compréhensibles par le solveur le problème à résoudre. La dernière
version de IOR-Tutorial, développé en Java et proposé en complément à Hillier et Lieberman
, peut également se révéler un complément précieux pour se familiariser avec les techniques de
recherche opérationnelle.

4.1 Un exemple avec GAMS


GAMS est l’acronyme de General Algebric Modeling System. Il consiste en un langage de des-
cription de problèmes, qui peut être compilé, et en une interface vers différent solveurs. Une
version gratuite de démonstration, permettant de résoudre des problèmes de petite taille, est

20
II.4 Algorithmes et logiciels

disponible en téléchargement à l’adress http : //www.gams.com. Ce langage peut également


être utilisé avec divers solveurs proposés sur NEOS. Nous reviendrons plus en détail ultérieu-
rement sur la formulation d’un programme mathématique avec GAMS, et nous contenterons
d’un petit exemple introductif à ce stade.
Considérons un brasseur qui dispose des éléments suivants dans son stock :
1. malt (75 kg) ;
2. houblon (60 kg) ;
3. levure (50 kg).
Deux produits peuvent être obtenus : de la bière légère et de la bière noire. Pour un kg de
bière légère, il faut 2 kg de malt, 3 kg de houblon, et 2 kg de levure. Pour un kg de bière
noire, il faut 3 kg de malt, 1 kg de houblon, et 5/3 kg de levure. La bière noire est vendue la
moitié du prix de la bière légère. En supposant que toute la production sera vendue, le brasseur
souhaiterait décider des quantités de bières noire et légère à produire pour optimiser son profit.
Le programme GAMS résultant est

set b types of beer /light, dark/;


set i inputs /malt, hops, yeast/
parameter r(i) raw supplies /malt 75, hops 60, yeast 50/;
table a(i,b) input requirements

light dark
malt 2 3
hops 3 1
yeast 2 1.67

parameter p(b) selling price / light 2, dark 1/;

variables pi profit (maximand)


x(b) production level;

equations profit defines gross revenue


supply(i) input supply constraint;

profit.. pi =e= sum(b, p(b) * x(b));


supply(i).. sum(b, a(i,b)*x(b)) =L= r(i);

21
III. Programmation linéaire

model beer /all/;

x.lo(b) = 0;

solve beer using lp maximizing pi;

5 Exercices d’application et d’assimulation


1. Faire un résumé technique du chapitre.
2. Donner des exemples de l’application de la Recherche Opérationnelle dans la vie écono-
mique et Statistique d’un pays.

6 Notes
Le contenu des Section 1 et 2 se base principalement sur Hillier et Lieberman [1], Chapitre
1. La Section 3 est construite à partir du Chapitre 1 de Levy [2]. L’exemple GAMS est dû à
Thomas F. Rutherford.

22
Chapitre III

Programmation linéaire

1 Introduction

Bien que la réalité soit souvent loin d’être linéaire, un grand nombre de problèmes peuvent
s’écrire sous forme linéaire, soit directement, soit en première simplification. D’autre part, un
très grand nombre de modèles constituent des extensions de programmes linéaires. Sa compré-
hension est essentielle à la compréhension de modèles plus sophistiqués.
Un programme linéaire générique s’écrit sous la forme

max c1 x1 + c2 x2 + · · · + cn xn
x

a11 x1 + a12 x2 + · · · + a1n xn Æ b1


.. ..
. .
am1 x1 + am2 x2 + ... + amn xn Æ bm ,

ou, sous une forme plus compacte,


n
ÿ
max
x
cj xj
j=1
n
ÿ
s/c : aij xj Æ bi ’i = 1, 2, . . . , m
j=1

La ligne
n
ÿ
cj xj (III.1)
j=1

23
III. Programmation linéaire

représente la fonction objectif, que nous souhaitons maximiser. La maximisation se fait en


respectant les m contraintes.
n
ÿ
aij xj Æ bi ’i = 1, 2, . . . , m (III.2)
j=1

Sous forme matricielle, le problème se réécrit

max
x
cT x
s/c : Ax Æ b

avec Q R
Q R Q R Q R a a12 . . . a1n
x c b c 11 d
c 1d c 1d c 1d c
. . . a2n d
c .. d c .. d c .. d c a21 a22 d
x= c . d, c= c . d, b= c . d, A=c
c .. .. d.
d
a b a b a b c . . d
xn cn bm a b
am1 am2 . . . amn
La terminologie “linéaire” vient du fait que toutes les fonctions impliquées sont linéaires. Ty-
piquement, nous ajouterons également des contraintes de non-négativités :

xi Ø 0, i = 1, . . . , n,

ou, en abrégé,
xØ0

Nous dirons aussi que le vecteur x appartient à l’orthant positif (i.e. x œ Rn+ ).

Exemple 3 (Wyndor Glass) La compagnie Wyndor Glass Co. produit des produits verriers
de haute qualité, incluant des fenêtres et des portes vitrées. Elle dispose à cette fin de trois
usines (usine 1, usine 2, usine 3), qui ont chacune une capacité de production limitée. Les
châssis en aluminium et les matériaux sont produits dans l’usine 1, les châssis en bois sont
fabriqués dans l’usine 2, et l’usine 3 produit le verre et assemble les produits. La compagnie a
décidé de mettre en place des lignes de production :
— produit 1 : une porte vitrée avec un châssis d’aluminium ;
— produit 2 : une fenêtre double-vitrage avec châssis en bois.
Un lot de 20 unités donne lieu à un profit de 3000 et 5000, respectivement pour le produit 1 et
le produit 2.
Les données du problème sont synthétisées dans la Table III.1. Chaque lot d’un produit est le

24
III.1 Introduction

résultat combiné de la production dans les trois usines. Nous souhaitons déterminer le taux de
production pour chaque produit (nombre de lots par semaine) de façon à maximiser le profit
total.

Produit 1 Produit 2 Capacité de


Temps de prod. (h) Temps de prod. (h) production (h)
Usine 1 1 0 4
Usine 2 0 2 12
Usine 3 3 2 18
Tableau III.1 – Données du problème Wyndor Glass

Les variables de décision sont :


— x1 , le nombre de lots du produit 1 ;
— x2 , le nombre de lots du produit 2.
La fonction objectif est le profit total, qui vaut 3x1 + 5x2 , en l’exprimant en miller de dollars.
Nous voulons maximiser ce profit.
Les contraintes concernent tout d’abord les capacités de production :

x1 Æ 4 (usine 1)
2x2 Æ 12 (usine 2)
3x1 + 2x2 Æ 18 (usine 3)

Viennent ensuite les contraintes de non-négativité :

x1 Ø 0, x2 Ø 0 (nombre positif d’unités produites).


En résumé, nous avons le problème d’optimisation suivant :

max z = 3x1 + 5x2


x

s/c :x1 Æ 4 (usine 1)


2x2 Æ 12 (usine 2)
3x1 + 2x2 Æ 18 (usine 3)

Avant de traiter de méthodes numériques, essayons de visualiser le problème afin de développer


une intuition quand à sa résolution. Le problème peut-être représenté comme sur la Figure
III.1. Pour le réaliser, nous traçons d’abord les droites correspondant aux contraintes, puis nous

25
III. Programmation linéaire

déterminons le domaine réalisable en vérifiant le sens des inégalités pour chacune d’elles.
Dans l’exemple
3 1
z = 3x1 + 5x2 ≈∆ x2 = ≠ x1 + z. (III.3)
5 5
1 ≠3
L’ordonnée à l’origine, dépendant de la valeur de z, est z, et la pente vaut . Maximiser
5 5
revient à augmenter z.

Figure III.1 – Exemple Wyndor Glass

Nous traçons ensuite les droites correspondant à la variation de l’objectif comme sur la Figure
III.2

26
III.2 Modèle général de programmation linéaire

Figure III.2 – Exemple Wyndor Glass : maximisation

La représentation graphique, bien qu’intéressante pour “voir” comment se passe les choses, ne
fonctionne plus dès que nous avons plus de deux variables. Il faut alors passer à l’utilisation de
logiciels, utilisant l’algorithme du simplexe ou de points intérieurs. Nous n’aborderons que le
premier dans le cadre de ce cours introductif.

2 Modèle général de programmation linéaire


Le modèle complet

max cT x
x

s/c : Ax Æ b
x Ø 0,

est appelé forme canonique.


D’autres formes sont possibles et définissent aussi des modèles de programmation linéaire :

27
III. Programmation linéaire

• minimiser au lieu de maximiser :

minf (x) = ≠maxf (x); (III.4)

• les inégalités peuvent être remplacées par des égalités, ou être de sens contraire ;
• certaines variables peuvent ne pas être forcées à être supérieures à 0. Par exemple,
considérons la contrainte
x > ≠4

qui équivaut à
x+4>0

Nous pouvons alors définir y = x + 4, de sorte que la contrainte devient y > 0.


De même, considérons
≠10 6 x 6 ≠2.

En définitive y = x + 10, nous avons la contrainte y > 0.

3 Terminologie de base

Nous parlerons de solution réalisable à propos d’une solution (i.e. une instance particulière du
vecteur x) pour laquelle toutes les contraintes sont satisfaites. En d’autres termes cette solution
appartient au domaine réalisable.
Par exemple, le point (1, 1) est une solution réalisable pour la Figure III.1. A contrario, une
solution non réalisable est une solution pour laquelle au moins une contrainte est violée.
Elle n’appartient pas au domaine réalisable.
Une solution optimale est une solution donnant la meilleure valeur possible pour l’objectif.
Cette valeur est dite valeur optimale. Un modèle n’a aucune solution optimale si son domaine
réalisable est vide, ou si la fonction objectif est non bornée.
Ajoutons par exemple la contrainte

3x1 + 5x2 > 50

dans l’exemple Wyndor Glass. Cette nouvelle contrainte ne peut être satisfaite en même temps
que les contraintes précédentes, comme illustré dans la Figure III.3.

28
III.3 Terminologie de base

Figure III.3 – exemple Wyndor Glass : domaine non réalisable

Plus aucun point n’est réalisable. Si nous supprimons plutôt les contraintes

2x2 Æ 12, 3x1 + 2x2 6 18,

la fonction objectif devient non bornée dans le domaine réalisable, comme illustré sur la Figure
III.4.

29
III. Programmation linéaire

Figure III.4 – exemple Wyndor Glass : objectif non borné

Un modèle peut également présenter une infinité de solutions optimales. Considérons dans
l’exemple la fonction objectif
z = 3x1 + 2x2 .

Tout point sur le segment [(2, 6), (4, 3)] est alors solution optimale (voir Figure III.5).

Figure III.5 – exemple Wyndor Glass : infinité de solutions

30
III.4 Hypothèses

4 Hypothèses
La première hypothèse d’un modèle de programmation linéaire est la proportionnalité :
• la contribution de chaque variable à la valeur de la fonction objectif est proportionnelle
à la valeur de cette variable.
• la contribution de chaque variable au terme de gauche de chaque contrainte fonctionnelle
est proportionnelle à la valeur de cette variable.
Des cas où cette hypothèse n’est pas satisfaite sont
• coût fixe initial (Figure III.6).

Figure III.6 – coût fixe initial

• profit marginal (profit par unité) croissant ou décroissant (Figure III.7).

Figure III.7 – profit marginal

Nous avons d’autre part la propriété d’additivité : la fonction objectif est composée de la somme
des contributions individuelles de chaque variable, et le terme de gauche de chaque contrainte
fonctionnelle est composé de la somme des contributions individuelles de chaque variable.
L’additivité interdit les termes de la forme x1 x2 . Si une de ces hypothèses est invalidée, nous

31
III. Programmation linéaire

sommes en présence d’un programme non linéaire, étudié au Chapitre ??.


D’autre part, les variables sont continues. Si nous imposons des variables à valeurs entières,
nous obtenons un modèle de programmation en nombres entiers (Chapitre ??). De plus, les
valeurs affectées à chaque paramètre sont des constantes connues avec certitude. Cette hypo-
thèse peut être fort éloignée de la réalité. Nous pouvons tester cette hypothèse en conduisant
une analyse de sensibilité, qui consiste à vérifier la sensibilité du modèle à des changements
de valeurs des paramètres. Nous pouvons également introduire des variables aléatoires, ce qui
conduit typiquement à un problème de programmation stochastique. La programmation
stochastique dépasse cependant les objectifs du présent cours.

Exemple 4 (Horaire du personnel) Nous souhaitons établir un horaire quotidien, sachant


que chaque jour est divisé en périodes et en supposant que nous avons pu estimer un nombre
minimum d’employés devant être affecté durant chaque période. Chaque jour est divisé en quarts
de travail de 8 heures. Plusieurs quarts partagent une même période, mais chaque quart exige un
salaire particulier. Nous souhaitons savoir combien d’employés doit-on affecter à chaque quart
de travail de façon à minimiser le total des salaires versés, en respectant le nombre minimum
d’employés pour chaque période. Les données du problème sont données dans la Table III.2.

Période Quart 1 Quart 2 Quart 3 Quart 4 Quart 5 Min employés


0-6 ◊ 15
6-8 ◊ 48
8-10 ◊ ◊ 79
10-12 ◊ ◊ 69
12-14 ◊ ◊ ◊ 87
14-16 ◊ ◊ 64
16-18 ◊ ◊ 73
18-20 ◊ ◊ 82
20-22 ◊ 43
22-24 ◊ ◊ 52
Salaire 170 160 175 180 195
Tableau III.2 – données du problème d’horaire de personnel

Comme variables, nous pouvons choisir xj comme le nombre d’employés affectés au quart j.
L’objectif est
min z = 170x1 + 160x2 + 175x3 + 180x4 + 195x5 . (III.5)

Pour chaque période, le nombre d’employés affectés aux différents quarts doit couvrir le mini-
mum d’employés requis pour cette période. Par exemple, pour la période de 14h à 16h, nous

32
III.4 Hypothèses

aurons :
x2 + x3 > 64.

Le programme linéaire résultant est :

min z = 170x1 + 160x2 + 175x3 + 180x4 + 195x5


s/c : x5 > 15
x1 > 48,
x1 + x2 > 79
x1 + x2 > 65
x1 + x2 + x3 > 87
x2 + x3 > 64
x3 + x4 > 73
x3 + x4 > 82
x4 > 43
x4 + x5 > 52
xj > 0, j = 1, 2, 3, 4, 5.

Nous pouvons remarquer la présence de contraintes redondantes :


• si nous avons x1 +x2 > 79 et x1 +x2 > 65 ; cette dernière contrainte est donc redondante
et peut être éliminée ;
• de même, x3 + x4 > 82 implique x3 + x4 > 73 ;
• les contraintes x1 > 0, x4 > 0, x5 > 0, sont aussi redondantes, mais il n’y a aucun
intérêt à les éliminer.
La solution optimale du problème est :

xú = (xú1 , xú2 , xú3 , xú4 , xú5 ) = (48, 31, 39, 43, 15). (III.6)

Une difficulté est que le nombre d’employés doit toujours être entier, aussi l’hypothèse de conti-
nuité n’est pas satisfaite dans le modèle (bien que la solution optimale dans ce cas particulier
soit entière).

Exemple 5 (Réseau de distribution) Considérons deux usines (U1 et U2 ), un centre de


distribution (CD), et deux entrepôts (E1 , E2 ). Chaque usine manufacture un certain nombre
d’unités d’un même produit (offre). Chaque entrepôt requiert un certain nombre d’unités de ce

33
III. Programmation linéaire

même produit a un coût de transport par unité de produit (coût unitaire). De plus, sur certains
arcs, il y a une capacité sur le nombre d’unités transportées. Le réseau considéré est représenté
dans la Figure III.4. L’objectif est de minimiser le coût de transport total.

Figure III.8 – Réseau de distribution

Comme d’ordinaire, pour formuler le modèle, identifions en premier lieu les variables d’intérêt.
Nous désignerons par xij le nombre d’unités du produit transportées sur l’arc (i, j) (i.e. entre
les sommets i et j) La fonction objectif (en chiffrant le montant total en centaines de dollars) :

min z = 2xU1 ,U2 + 4xU1 ,CD + 9xU1 ,E1 + 3xU2 ,CD + xCD,E2 + 3xE1 ,E2 + 2xE2 ,E1 (III.7)

Les contraintes concernent tout d’abord la conservation du flot : en chaque sommet du réseau,
le flot sortant moins le flot entrant est égal au nombre d’unités produites dans le cas d’usine,
l’opposé du nombre d’unités requises pour un entrepôt, et zéro pour le centre de distribution.
Nous devons en outre tenir compte de la capacité sur certains arcs. Par exemple, pour l’arc
(U1 , U2 ), nous avons
xU1 ,U2 6 10.

Il nous reste à préciser les traditionnelles contraintes de non-négativité :

xi,j > 0.

34
III.5 La méthode du simplexe

Le modèle détaillé peut dès lors s’écrire de manière détaillée comme suit :

min z = 2xU1 ,U2 + 4xU1 ,CD + 9xU1 ,E1 + 3xU2 ,CD + xCD,E2 + 3xE1 ,E2 + 2xE2 ,E1
s/c : xU1 ,U2 + xU1 ,CD + xU1 ,E1 = 50,
xU1 ,U2 + xU2 ,CD = 40,
≠ xU1 ,CD ≠ xU2 ,CD + xCD,E2 = ≠30,
≠ xU1 ,E1 + xE1 ,E2 ≠ xE2 ,E1 = ≠30,
≠ xCD,E2 ≠ xE1 ,E2 + xE2 ,E1 = ≠60,
xU1 ,U2 6 10,
xCD,E2 6 80,
xU1 ,U2 , xU1 ,CD , xU1 ,E1 , xU2 ,CD , xCD,E2 , xE1 ,E2 , xE2 ,E1 > 0.

Il s’agit d’un problème de flot à coût minimum.


La solution optimale est :

(xúU1 ,U2 , xúU1 ,CD , xúU1 ,E1 , xúU2 ,CD , xúCD,E2 , xúE1 ,E2 , xúE2 ,E1 ) = (0, 40, 10, 40, 80, 0, 20). (III.8)

Le nombre d’unités transportées doit toujours être une valeur entière, aussi l’hypothèse de conti-
nuité n’est pas satisfaite dans ce cas. Néanmoins, dans ce cas particulier, la solution est entière.
En fait, pour tout problème de flot à coût minimum (avec paramètres à valeurs entières), il existe
toujours une solution optimale entière.

5 La méthode du simplexe
Développée en 1947 par George Dantzig, la méthode du simplexe reste d’actualité pour résoudre
des problèmes de grande taille. Il s’agit d’une méthode algébrique basée sur la résolution de
systèmes d’équations linéaires ; nous nous intéressons ici uniquement aux systèmes d’équations
linéaires avec un nombre n de variables supérieur au nombre m d’équations :

Ax = b, (III.9)

où x œ Rn , b œ Rm , A œ Rm◊n . Dans ce cas, il y a trois possibilités :


1. aucune solution ;
2. une et une seule solution ;

35
III. Programmation linéaire

3. une infinité de solutions.


Nous supposerons que toutes les variables sont positives. Le second cas, avec une et seule
solution, ne peut survenir que si n = m, et si la matrice A est inversible, ce qui revient à exiger
que nous avons éliminé au préalable toute équation pour s’écrire comme combinaison linéaire des
autres équations. Si nous n’avons qu’une seule solution admissible, elle est forcément optimale,
par conséquent, nous ignorerons ce cas dans le reste du chapitre, et prendrons n strictement
supérieur à m.
Dans le cas où il y a une infinité de solutions, la méthode d’élimination de Gauss-Jordan permet
d’identifier trois types de variables :
— variables fixées ;
— variables dépendantes ;
— variables indépendantes.

Exemple 6 (Préliminaires à l’algorithme du simplexe) Considérons le système

x1 + x2 + x3 + x4 = 4
x1 + +x3 + x4 = 3
x1 + x2 + +2x4 = 2

Nous pouvons le réécrire sous la forme

x1 + +2x4 = 1
+ x2 =1
x3 ≠ x4 = 2

La variable x2 est fixée, comme elle ne peut prendre que la valeur 1, sans considération pour
les autres variables. A l’opposée, x4 est indépendante, comme elle peut prendre n’importe quelle
valeur dans R. x1 et x3 sont quant à elles dépendantes : le choix de x4 fixe leur valeur, et de
plus, il n’est pas possible de les éliminer en combinant des équations entre elles (au contraire
de x4 ).

5.1 Solution de base


Il s’agit de la solution obtenue en fixant toutes les variables indépendantes à zéro. Nous qua-
lifierons de variables hors-base les variables indépendantes fixées à zéro. Les autres variables

36
III.5 La méthode du simplexe

seront dites variables de base. Une solution de base est réalisable (ou admissible) lorsque toutes
les variables de base ont une valeur positive. Une solution de base réalisable est dégénérée lors-
qu’au moins une variable de base a la valeur 0. Il est possible de montrer qu’une solution de
base réalisable est un sommet du polyèdre.

Exemple 7 (Préliminaires à l’algorithme du simplexe : solution de base). Dans


l’exemple, la solution de base est

x1 = 1, x2 = 1, x3 = 2.

Elle est réalisable et non dégénérée.

Pivot
Il est facile de changer le statut des variables par des opérations élémentaires.

Exemple 8 (Préliminaires à l’algorithme du simplexe : pivot).

x1 + +2x3 =1
+ x2 =1
x3 ≠ x4 = 2

peut se réécrire comme

x1 + +2x4 = 1
+ x2 =1
≠ x3 + x4 = ≠2

Dans cette nouvelle solution de base, nous avons


— variable hors-base : x3 ;
— variables de base : x1 , x2 , x4 ;
— solution de base non réalisable : x1 = 5, x2 = 1, x4 = ≠2.

Le pivot est une opération consistant à remplacer une variable de base par une variable hors
base pour obtenir une nouvelle solution de base, dite adjacente.

Exemple 9 (Wyndor Glass) Rappelons que pour cet exemple, les contraintes fonctionnelles

37
III. Programmation linéaire

sont

x1 Æ 4
2x2 Æ 12
3x1 + 2x2 Æ 18

Au lieu d’inégalités, nous voudrions des égalités. Pour ce faire, nous ajoutons des variables
d’écart (en anglais "slack variables") supérieures à 0 :

x1 + +x3 + =4
2x2 + +x4 = 12
3x1 + 2x2 + +x5 = 18

Les variables hors-base sont x1 et x2 . Fixons-les à 0. Nous obtenons comme solution de base

(x1 , x2 , x3 , x4 , x5 ) = (0, 0, 4, 12, 18).

Effectuons un pivot, en remplaçant la variable hors-base par une des variables de base actuelles.
Reste à déterminer comment la choisir. Nous souhaitons en premier lieu que la nouvelle solution
de base soit réalisable. Dans cette solution de base, on aura toujours x1 = 0, et une des variables
d’écart deviendra une variable hors-base, donc prendre la valeur 0. En exploitant le système
linéaire précédent et la positivité des variables, nous avons

x1 = 4 ≠ x3 Ø0 4 Ø x3
x4 = 12 ≠ 2x2 Ø 0 … 12 ≠ x2 Ø 0
x5 = 18 ≠ 3x1 ≠ 2x2 Ø 0 18 ≠ x2 Ø 0

En exploitant les inégalités

x4 = 12 ≠ 2x2 Ø 0
x5 = 18 ≠ 2x2 Ø 0,

38
III.5 La méthode du simplexe

nous obtenons

x2 Æ 12/2 = 6
x2 Æ 18/2 = 9.

Par conséquent, en posant x2 = 6, nous obtenons x4 = 0, alors que si nous augmentons d’avan-
tage x2 , la solution devient non réalisable. Nous effectuons comme pivot le remplacement de la
variable de base x4 (qui deviendra hors-base) par x2 . Nous obtenons alors le système suivant :

x1 + +x3 =4
1
x2 x4 + =6
2
3x1 ≠ x4 + x5 = 6

qui donne la solution de base :

(x1 , x2 , x3 , x4 , x5 ) = (0, 6, 4, 0, 6).

Nous effectuons ensuite un pivot pour que la variable x1 4 entre dans la base (i.e. devienne une
variable de base).
Comme x4 = 0,

x3 = 4 ≠ x1 Ø 0 … x1 Æ 4
x5 = 6 ≠ 3x1 Ø 0 … x1 Æ 2

En posant x1 = 2, nous obtenons x5 = 0. Le pivot revient à remplacer la variable de base x5


par x1 . Le système obtenu est alors :

1 1
x3 + x4 ≠ x5 = 2
3 3
1
x2 + x4 =6
2
1 1
x1 ≠ x4 + x5 = 2
3 3

La solution de base correspondante est

(x1 , x2 , x3 , x4 , x5 ) = (2, 6, 2, 0, 0).

39
III. Programmation linéaire

Figure III.9 – Exemple Wyndor Glass

5.2 Interprétations

Interprétation géométrique

Une solution de base réalisable correspond à un point extrême du domaine réalisable. Un pivot
correspond à un déplacement d’un point extrême à un autre qui lui est adjacente, i.e. toutes les
variables hors-base sauf une sont les mêmes. La méthode du simplexe peut se résumer comme
suit.

1. Nous débutons avec une solution de base réalisable initiale (un point extrême).

2. A chaque itération, nous effectuons un pivot, passant ainsi à une solution de base réali-
sable adjacente (un point extrême adjacent).

3. L’algorithme s’arrête lorsqu’il identifie une solution de base réalisable optimale (un point
extrême correspondant à une solution optimale).

40
III.5 La méthode du simplexe

Interprétation des variables d’écart


Exemple 10 Dans la solution optimale du problème Wyndor Glass, nous avons x3 = 2, x4 =
x5 = 0. Cela indique que les deux dernières ressources (temps aux usines 2 et 3) sont pleinement
utilisées. Une partie de la première ressource (temps à l’usine 1) n’est pas utilisée : 2 heures

5.3 Critère d’optimalité


Exemple 11 (Wyndor Glass : critère d’optimalité) Exprimons l’objectif en fonction des
variables hors-base dans la solution optimale Rappelons que dans cette solution, nous avons

1
x2 + x4 =6
2
1 1
x1 ≠ x4 + x5 = 2
3 3

Après substitution dans l’objectif, nous obtenons

max z = 3x1 + 5x2


3 4 3 4
1 1 1
= 3 2 + x4 ≠ x5 + 5 6 ≠ x4
3 3 2
3
= 36 ≠ x4 ≠ x5 .
2

Toute solution réalisable (x1 , x2 , x3 , x4 , x5 ) satisfait

3
z = 36 + 0x1 + 0x2 + 0x3 ≠ x4 ≠ x5 Æ 36
2

Le critère d’optimalité s’énonce ainsi comme suit : étant donné que l’objectif s’exprime uni-
quement en fonction des variables hors-base de la solution de base réalisable courante, si les
coefficients de ces variables dans l’objectif sont tous négatifs ou nuls, alors la solution de base
réalisable courante est optimale. Les coefficients des variables hors-base dans l’objectif sont
appelés coûts réduits (ou coûts relatifs).
Si au moins un coût réduit est positif pour la solution de base courante, nous n’avons pas encore
atteint une solution optimale. Il faut par conséquent effectuer au moins un pivot, mais quelle
variable doit-on faire entrer dans la base. Regardons celle dont le coût réduit est le plus grand
parmi toutes les variables hors-base, vu que cette variable fournit la plus grande augmentation
marginale (par unité) de la valeur de l’objectif. Ce qui ne signifie toutefois pas la plus grande

41
III. Programmation linéaire

augmentation globale !
Vu que nous faisons entrer une variable dans la base, nous devons également choisir la variable
qui va sortir de la base en tentant de garder toutes les variables non négatives. Supposons que
xj est la variable d’entrée. Chaque variable de base xi s’exprime alors en fonction de la variable
d’entrée (puisque les autres variables hors-base sont nulles) :

xi = b̄i ≠ āij xj .

Dans cette expression, les coefficients b̄i et āij sont obtenus suite à plusieurs pivots. Mais
nous avons nécessairement b̄i positif (en partant d’un b positif). Pour que toutes les variables
demeurent non négatives suite au pivot, nous devons avoir

xi = b̄i ≠ āij xj Ø 0. (III.10)

soit, en d’autres termes,


āij xj Æ xi = b̄i (III.11)

Si āij est négatif, cette inégalité ne limite pas l’augmentation de xj . Si cette condition est
satisfaite pour tous les i, nous pouvons donc augmenter indéfiniment xj ; l’objectif est non
borné. Si āij est strictement positif, l’inégalité limite l’augmentation de xj . Nous prendrons
comme variable de sortie celle qui atteint
I J
b̄i
min | āij > 0
āij

Algorithm 2.1 : Simplexe


1. Obtenir une solution de base réalisable.
2. Vérifier le critère d’optimalité : si les coûts réduits de toutes les variables hors-base sont
négatifs ou nuls, stop.
3. Choisir la variable xj , soit celle qui a le coût réduit le plus élevé.
4. Déterminer la variable de sortie :
I J
b̄i
min | āij > 0
āij

5. Effectuer un pivot et déterminer une nouvelle solution de base réalisable. Retour à l’étape
2.

42
III.5 La méthode du simplexe

Exemple 12 (Production) Une entreprise fabrique quatre produits. La fabrication de chaque


produit nécessite une certaine quantité de ressources. Les ressources consommées, les stocks des
ressources et les bénéfices des produits sont récapitulés dans la Table III.3. Nous souhaitons
établir un plan de production de façon à maximiser le chiffre d’affaires.

Produit 1 2 3 4 Stock
Ressource A 2 4 5 7 42
Ressource B 1 1 2 2 17
Ressource C 1 2 3 3 24
Profit 7 9 18 17 -
Tableau III.3 – Données de production

Soient x1 , x2 , x3 et x4 les quantités respectives de produits 1, 2, 3, 4. Nous avons le problème


de programmation linéaire sous forme canonique

max z = 7x1 + 9x2 + 18x3 + 17x4


s.c : 2x1 + 4x2 + 5x3 + 7x4 Æ 42
x1 + x2 + 2x3 + 2x4 Æ 17
x1 + 2x2 + 3x3 + 3x4 Æ 24
x1 , x2 , x3 , x4 Ø 0.

Introduisons trois variables d’écart x5 , x6 , x7 , qui mesurent pour chaque ressource l’écart entre
la quantité initialement disponible et la quantité consommée par le plan de fabrication donné
par les variables de décision x1 , x2 , x3 , x4 :

max z = 7x1 + 9x2 + 18x3 + 17x4


s.c : 2x1 + 4x2 + 5x3 + 7x4 + x5 = 42
x1 + x2 + 2x3 + 2x4 + x6 = 17
x1 + 2x2 + 3x3 + 3x4 + x7 = 24
x1 , x2 , x3 , x4 , x5 , x6 , x7 Ø 0.

Cette formulation permet d’exprimer facilement les variables d’écart comme fonctions affines

43
III. Programmation linéaire

des variables de décision :

x5 = 42 ≠ 2x1 ≠ 4x2 ≠ 5x3 ≠ 7x4


x6 = 17 ≠ x1 ≠ x2 ≠ 2x3 ≠ 2x4
x7 = 24 ≠ x1 ≠ 2x2 ≠ 3x3 ≠ 3x4
z = 7x1 + 9x2 + 18x3 + 17x4

Le tableau ci-dessus est appelé un dictionnaire. Les variables x5 , x6 , x7 sont les variables de
base et x1 , x2 , x3 , x4 sont des variables hors-base. La solution de base associée au diction-
naire est obtenue en donnant la valeur 0 à toutes les variables hors-base. La solution basique
correspondant au dictionnaire ci-dessus est donc

(x1 , x2 , x3 , x4 , x5 , x6 , x7 ) = (0, 0, 0, 0, 42, 17, 24).

Le bénéfice correspondant est z = 0 ; on ne produit rien, on ne consomme aucune ressource et on


ne gagne rien. Néanmoins, c’est une solution réalisable, car elle satisfait toutes les contraintes.
En partant de cette solution basique, nous cherchons à améliorer le bénéfice. Nous sélectionnons
la variable hors-base de coût réduit maximum, i.e. x3 , et gardons les autres variables hors-base
à zéro. Il est évident que si on fait croître x3 à partir de 0, les autres variables hors-base restant
nulles, la valeur de la fonction z croît. Nous cherchons à augmenter au plus la fonction objectif
tout en gardant la solution reste réalisable. Les contraintes sur l’augmentation de x3 sont :

x5 Ø 0 =∆ 42 ≠ 5x3 Ø 0 =∆ x3 Æ 8.4
x6 Ø 0 =∆ 17 ≠ 3x3 Ø 0 =∆ x3 Æ 8.5
x7 Ø 0 =∆ 24 ≠ 3x3 Ø 0 =∆ x3 Æ 8.

La plus restrictive de ces contraintes est x3 Æ 8. L’interprétation géométrique est la suivante :


en partant du sommet (0, 0, 0, 0) du polyèdre des contraintes, nous nous déplaçons sur une arête
de ce polyèdre. Le premier hyperplan rencontré est x7 = 0. Nous arrivons alors dans un nouveau
sommet, à l’intersection des hyperplans x1 = 0, x2 = 0, x4 = 0, x7 = 0. Nous allons faire un
changement de dictionnaire, i.e. un pivot, en échangeant les rôles de x3 et x7 . Nous utilisons
la troisième équation du premier dictionnaire pour exprimer x3 en fonction de x1 , x2 , x4 et x7

1 2 1
x3 = 8 ≠ x1 ≠ x2 ≠ x4 ≠ x7
3 3 3

44
III.5 La méthode du simplexe

Nous remplaçons ensuite x3 par cette expression dans les autres équations du dictionnaire :

1 2 5
x5 = 2 ≠ x1 ≠ x2 ≠ 2x4 + x7
3 3 3
1 1 2
x6 = 1 ≠ x1 + x2 + x7
3 3 3
1 2 1
x3 = 8 ≠ x1 ≠ x2 ≠ x4 ≠ x7
3 3 3
z = 144 + x1 ≠ 3x2 ≠ 6x7 ≠ x4 .

La variable x7 est sortie de la base et la variable x7 est entrée dans la base. La nouvelle base
est par conséquent x5 , x6 , x3 . La solution basique associée au nouveau dictionnaire est x1 =
x2 = x7 = x4 = 0, x5 = 2, x6 = 1, x3 = 8. Elle correspond au sommet de coordonnées
(0, 0, 8, 0) du polyèdre de contraintes. Cette solution définit un plan de production beaucoup plus
intéressant : nous fabriquons 8 unités du produit 3 (x3 = 8) en consommant entièrement la
ressource C (x7 = 0). Il nous reste x5 = 2 unités de la ressource A et x6 = 1 unité de B.
Le bénéfice est z = 144. Dans la nouvelle expression de la fonction z, nous voyons que seule
la variable x1 a un coefficient positif. Nous décidons de faire entrer x1 en base, et ainsi de
parcourir une nouvelle arête du polyèdre des contraintes. Nous avons les limites suivantes sur
l’augmentation de x1 :

x5 Ø 0 =∆ x1 Æ 6x6 Ø 0 =∆ x1 Æ 3x3 Ø 0 =∆ x1 Æ 24 (III.12)

d’où x1 Æ 3 Nous faisons sortir x6 de la base faisons entrer x1 à sa place. Nous obtenons le
dictionnaire suivant :

x5 = 1 + x6 ≠ x2 + x7 ≠ 2x4
x1 = 3 ≠ 3x6 + x2 + 2x7
x3 = 7 + x6 ≠ x2 ≠ x7 ≠ x4
z = 147 ≠ 3x6 ≠ 2x2 ≠ 4x7 ≠ x4 .

La solution de base associée est x6 = x2 = x7 = x4 = 0, x5 = 1, x1 = 3, x3 = 7, correspond


au sommet (3, 0, 7, 0) du polyèdre des contraintes. Elle définit le plan de production suivant :
nous fabriquons 3 unités du produit 1 et 7 unités du produit 3. Il ne nous reste qu’une unité de
la ressource A. Le bénéfice est z = 147. De plus, tous les coûts réduits sont négatifs, aussi la
solution est optimale.

45
III. Programmation linéaire

5.4 Adaptation à d’autres formes de modèles


Tout modèle de programmation linéaire peut se ramener à la forme suivante :
n
ÿ
max cj xj
x
j=1
n
ÿ
s/c : aij xj xn+1 = bi ’i = 1, 2, . . . , m
j=1

xj Ø 0, j = 1, 2, ..., n
xn+i Ø 0, i = 1, 2, ..., m.

Nous supposons de plus que bi est positif, i = 1, 2, ..., m. Sous cette forme, il est facile d’initialiser
la méthode du simplexe en ajoutant des variables d’écart, et en les prenant comme variables de
base. Cela revient de plus à considérer l’origine comme solution initiale, et il est facile d’effectuer
les opérations de pivot. Le situation se complique avec d’autres formes fonctionnelles pour les
contraintes, en particulier dans la recherche d’une solution de base initiale.

Transformation du min au max


Supposons que nous devions minimiser l’objectif au lieu de le maximiser. Nous utilisons la
propriété
n
ÿ n
ÿ
min cj xj = ≠ max cj xj
x x
j=1 j=1

Nous résolvons le problème de maximisation en changeant les signes des coefficients dans l’ob-
jectif. La valeur optimale du problème de minimisation est l’opposé de celle du problème de
maximisation.

Transformation des inégalités en égalités


n
q
aij xj xn+1 Æ bi , il y a deux cas :
j=1

1. bi Ø 0 : nous ajoutons une variable d’écart positive xn+i :


n
q
Si aij xj Æ bi , il y a deux cas :
j=1

1. bi Ø 0 : nous ajoutons une variable d’écart positive xni :


n
ÿ
aij xj + xn+i = bi .
j=1

46
III.5 La méthode du simplexe

2. bi < 0 : nous multiplions l’inégalité par ≠1, pour se ramener au cas développé ci-dessous.
n
q
Si aij xj xn+1 Ø bi , nous avons à nouveau deux cas possibles :
j=1
1. bi Æ 0 : nous multiplions l’inégalité par ≠1, pour se ramener au cas développé précé-
demment.
2. bi > 0 : nous soustrayons une variable de surplus positive x0i :
n
ÿ
aij xj ≠ x0i = bi .
j=1

Nous nous ramenons alors au cas d’ajout de variables artificielles.

5.5 Obtention d’une base admissible initiale

Ajout de variables artificielles


n
q
Si aij xj = bi , et qu’aucune variable n’est isolée (une variable est isolée si elle à coefficient 1
j=1
dans cette équation et à coefficient 0 dans les autres) :
1. nous ajoutons une variable artificielle xn+1 Ø 0, dont l’unique but est de fournir une
variable de base initiale pour cette contrainte ;
2. nous lui associons un profil très négatif : ≠M :
n
ÿ
max cj xj ≠ M xn+i
j=1

s.c....
n
ÿ
aij xj + xn+1 = bi
j=1

...

Le seul but des variables artificielles est de pouvoir initialiser l’algorithme du simplexe en
produisant une solution de base réalisable initiale. Si le problème est réalisable, nous devrions
avoir xn+i = 0. Deux méthodes peuvent être considérées.
1. La méthode du grand M consiste à optimiser en utilisant une fonction objective formée
de la fonction de coût initiale et de la somme, très fortement pénalisée, des variables
artificielles.
2. La méthode à deux phases se déroule comme suit :

47
III. Programmation linéaire

• Phase 1 : Trouver une solution réalisable en minimisant la somme des variables


artificielles.
• Phase 2 : Optimiser en revenant à la fonction de coût initial à partir de la solution
initiale trouvée dans la phase 1.

Exemple 13 Considérons le programme

min z = 0.4x1 + 0.5x2


s.c.0.3x1 + 0.1x2 Æ 2.7
0.5x1 + 0.5x2 = 6
0.6x1 + 0.4x2 Ø 6
x1 Ø 0, x2 Ø 0.

Nous devons tout d’abord transformer le système de contraintes afin de pouvoir traiter un
système linéaire :

0.3x1 + 0.1x2 + xs1 = 2.7


0.5x1 + 0.5x2 = 6
0.6x1 + 0.4x2 ≠ xs2 Ø 6
xs1 Ø 0, xs2 Ø 0.

En ajoutant les variables artificielles, nous obtenons

0.3x1 + 0.1x2 + xs1 = 2.7


0.5x1 + 0.5x2 + xa2 = 6
0.6x1 + 0.4x2 ≠ xs2 + xa3 Ø 6
xs1 Ø 0, xs2 Ø 0, xa2 Ø 0, xa3 Ø 0

Afin de démarrer la méthode du simplexe, nous appliquons une des deux méthodes précédentes.
Méthode à deux phases :
• Phase 1 minimiser xa2 + xa3 jusqu’à obtenir une valeur optimale nulle (si le programme
linéaire à une solution réalisable).
• Phase 2 minimiser 0.4x1 + 0.5x2 . Méthode du grand M :
min 0.4x1 + 0.5x2 + M xa2 + M xa3 (III.13)

48
III.6 Dualité

5.6 Variables à valeurs quelconques


Si une variable xj peut prendre des valeurs négatives, nous introduisons deux variables x+
j Ø 0
et xj Ø 0. Nous posons alors

xj = x+j + xj Ø 0

Une autre possible, si xj Ø Lj , où Lj est une constante négative, consiste à poser

x+
j = xj ≠ Lj Ø 0.

6 Dualité
6.1 Motivation
Exemple 14 (Wyndor Glass : dualité) Supposons qu’une compagnie partenaire de Wyndor
Glass, appelée Dual Glass, aimerait louer du temps aux usines afin de fabriquer des lots de
produits. Quel prix horaire pour chaque usine devrait-elle demander de telle sorte que le résultat
soit équitable, soit aucun profit ni perte pour aucun des deux partenaires ?
Dénotons les nouvelles variables de décision par yi , le prix de location horaire à l’usine i, et
reprenons les données du problèmes telles qu’exprimé précédemment dans la Table (III.4).

Produit 1 Produit 2 Capacité de


Temps de prod. (h) Temps de prod. (h) production (h)
Usine 1 1 0 4
Usine 2 0 2 12
Usine 3 3 2 18
Tableau III.4 – Données du problème Wyndor Glass

Dual Glass cherche à minimiser le prix total qu’elle devra payer pour le temps loué aux trois
usines. Le prix total pour chaque usine peut être exprimé comme temps de production maximum
(h) ◊ prix pour louer du temps (F/h). L’objectif est par conséquent :

min w = 4y1 + 12y2 + 18y3 . (III.14)

Les contraintes assurent que le prix total associé à la fabrication d’un lot de chaque produit ne
doit pas être inférieure au profit (F/lot) qu’en retire Wyndor Glass. Le prix total associé à un
produit peut être exprimé comme le temps consacré à la production de chaque lot (h/lot) multi-
plié par le prix pour louer du temps (F/h). La contrainte associée au produit 1 peut s’exprimer

49
III. Programmation linéaire

comme :
y1 + 3y3 Ø 3.

La contrainte associée au produit 2 est

2y2 + 2y3 Ø 5.

Nous obtenons ainsi le modèle pour Dual Glass, appelé modèle dual :

min w = 4y1 + 12y2 + 18y3


s/c : y1 + 3y3 Ø 3
2y2 + 2y3 Ø 5
y1 , y2 , y3 Ø 0.

Pour rappel, le modèle pour Wyndor Glass, dit modèle primal est :

max z = 3x1 + 5x2


s/c :x1 Æ 4
2x2 Æ 12
3x1 + 2x2 Æ 18
x 1 , x2 Ø 0

Rappelons que pour la solution de base optimale du problème Wyndor Glass, l’objectif s’écrit :

3
z = 36 ≠ x4 ≠ x5 .
2

x4 et x5 sont les variables hors base et les coefficients ≠3


2
et ≠1 sont leurs coûts réduits. Si on
augmente la valeur de x4 de une unité, le profit diminue de 32 . x4 est également la variable
d’écart associée à la contrainte de ressource pour l’usine 2 :

2x2 + x4 = 12.

Augmenter x4 d’une unité signifie par conséquent diminuer le terme de droite correspondant de
1. En effet, si Wyndor Glass loue a Dual Glass une heure de temps de production à l’usine 2 :
• la capacité à l’usine 2 diminue de 1 heure (diminution d’une unité du terme de droite) ;
• la valeur de l’objectif diminue de 32 .

50
III.6 Dualité

Pour retrouver un profit total égal, il faudra donc demander un prix de 32 (1500F) pour chaque
heure de temps louée à l’usine 2. De manière générale, la solution optimale du dual est donnée
par l’opposé des coûts réduits des variables d’écart (aussi appelés multiplicateurs optimaux, ou
shadow prices en anglais). Dans notre exemple :

3
y1 = 0, y2 = , y3 = 1.
2

Le prix de la variable y1 est fixé à 0 :

• Wyndor Glass n’exige rien pour une heure louée à l’usine 1, ce qui se justifie par le fait
qu’il lui reste du temps de production non utilisé (la variable d’écart x3 est strictement
positive).
• Un prix strictement positif ferait augmenter le profit, et la solution ne serait plus équi-
table.

Nous pouvons constater des écarts complémentaires : pour tout i, nous avons

xn+i .yi = 0.

Tout modèle de programmation linéaire possède un dual. A tout programme linéaire sous forme
canonique

max z = cT x
s/c :Ax Æ b,
x Ø 0,

nous associons le programme dual

min w = bT y
s.c :AT y Ø c,
y Ø 0,

Nous obtenons ainsi un couple primal-dual, avec les relations suivantes entre les deux modèles.

51
III. Programmation linéaire

Primal Dual
Variable Contrainte
Contrainte Variable
max min
Profit unitaire Terme de droite
Terme de droite Coût unitaire
Ligne Colonne
Colonne Ligne
Contrainte Æ Contrainte Ø
Tableau III.5 – Primal-Dual et vice-versa

Si un modèle de programmation linéaire possède une solution optimale, il en est de même pour
son dual, et les valeurs optimales des deux modèles sont égales.
La solution optimale du dual correspond aux multiplicateurs optimaux. Nous pouvons les lire
directement dans le tableau optimal du simplexe : ce sont les coefficients dans la ligne corres-
pondant à l’objectif. Le coût réduit (correspondant à l’opposé du coefficient dans la ligne de
l’objectif) mesure la variation de l’objectif entraîné par une augmentation d’une unité de la
valeur de la variable hors-base associée.

6.2 Analyse de sensibilité


En général, le coût réduit d’une variable hors-base indique le changement dans l’objectif apporté
par une augmentation d’une unité de la valeur de cette variable. Pour les variables d’écart, ce
principe peut se formuler ainsi : le coût réduit d’une variable d’écart hors-base indique le
changement dans l’objectif apporté par une diminution d’une unité du terme de droite associé.
Ceci est un exemple d’analyse de sensibilité : un paramètre (ici, un terme de droite) est modifié
et nous mesurons la sensibilité de la solution optimale à ce changement. Nous pouvons aussi
mesurer la sensibilité de la solution optimale à un changement d’un terme de droite ou d’un
coefficient dans l’objectif en résolvant à nouveau le modèle modifié.

Exemple 15 (Wyndor Glass : sensibilité) Une analyse de sensibilité complète nous apprendrait
ce qui suit.
• Les multiplicateurs optimaux (Shadow Prices) sont 0, 1500 et 1000.
• La capacité à l’usine 3 peut prendre n’importe quelle valeur entre 12h et 24h sans changer
la solution optimale du dual.

52
III.6 Dualité

• Le profit unitaire pour le produit 1 peut prendre n’importe quelle valeur entre 0 et 7500
sans changer la solution optimale du primal.

Exemple 16 Considérons un fermier cultivant trois types de plantes (maïs, blé, coton), en
utilisant des ressources de terre et de main d’œuvre. Les revenus nets venant de la culture du
maïs, du blé et du coton sont de 109/acre, 90/acre et 115/acre, respectivement. Un acre de
maïs exige 6 heures de travail, un acre de blé, 4 heures, et un acre de coton, 8 heures. Le fermier
a à disposition 100 acres de terre et 500 heures de travail ; il souhaite maximiser le revenu net
de ses plantations. Nous obtenons le programme mathématique linéaire

max z = 109x1 + 90x2 + 115x3


s.c. x1 + x2 + x3 Æ 100,
6x1 + 4x2 + 8x3 Æ 500,
x1 , x2 , x3 Ø 0,

ce qui peut se traduire en GAMS comme suit :

SETS

Crop Crop production


/ Corn Corn production
Wheat Wheat production
Cotton Cotton production /

Resource Elément de ressources utilisées dans le modèle

/ Land Land used by crop


Labor Labord used by crop /;

VARIABLES

Profit Net income from crops;

POSITIVE VARIABLES

53
III. Programmation linéaire

Production(Crop) Production by crop;

SCALAR LandAvailable Total Land / 100 /;

PARAMETER

Revenue(Crop) Revenues from crop production


/ Corn 109
Wheat 90
Cotton 115 /

ResourceAvailable(Resource) Resource availability


/ Land 100
Labor 500 /;

TABLE
ResourceUse(Resource, Crop) Resource used in the model

Corn Wheat Cotton


Land 1 1 1
Labor 6 4 8 ;

EQUATIONS

Objective Maximimze farm income


ResourceEq(Resource) Resource Constraint;

Objective..
Profit =E= SUM(Crop, Revenue(Crop)*Production(Crop));

ResourceEq(Resource)..
SUM(Crop, ResourceUse(Resource,Crop)*Production(Crop))
=L= ResourceAvailable(Resource);

54
III.6 Dualité

MODEL FarmIncome /ALL/;

SOLVE FarmIncome USING LP MAXIMIZING Profit;

L’exécution de GAMS sur ce fichier donne

---- EQU ResourceEq Resource Constraint

LOWER LEVEL PPER MARGINAL


Land -INF 100.000 100.000 52.000
Labor -INF 500.000 500.000 9.500

LOWER LEVEL UPPER MARGINAL


---- VAR Profit -INF 9950.000 +INF .

Profit Net income from crops

---- VAR Production Production by crop

LOWER LEVEL UPPER MARGINAL

Corn . 50.000 +INF .


Wheat . 50.000 +INF .
Cotton . . +INF -13.000

La première partie de cet extrait indique que les deux contraintes, sur la terre et la main
d’œuvre, sont actives : toutes les ressources sont employées. Les variables duales optimales
correspondantes peuvent par conséquent être non-nulles, et représentent la valeur marginale de
ces contraintes (actives). Nous voyons en particulier ici que la terre a la plus grande valeur
marginale.
La seconde partie donnent les quantités de plantes cultivées. Seuls le maïs et le blé sont produits,
mais pas le coton. Le dual contient trois contraintes comme nous avons avons trois variables
primales. Il est facile de vérifier que les deux premières contraintes sont actives, mais pas la
troisième, mais dépasse la borne inférieure de 13 unités.
Nous pouvons obtenir les valeurs des variables d’écart avec la ligne

OPTION SOLSLACK = 1;

55
III. Programmation linéaire

avant la commande SOLVE, ce qui dans cas confirme que les contraintes sont actives.

---- EQU ResourceEq Resource Constraint

LOWER SOLSLACK PPER MARGINAL


Land -INF . 100.000 52.000
Labor -INF . 500.000 9.500

Si nous ajoutons la commande

DISPLAY Profit.L, Production.L, ResourceEq.M, ResourceUse;

nous obtenons en sortie :

---- 53 VARIABLE Profit.L = 9950.000 Net income from crops

---- 53 VARIABLE Production.L Production by crop

Corn 50.000, Wheat 50.000

---- 53 EQUATION ResourceEq.M Resource Constraint

Land 52.000, Labor 9.500

---- 53 PARAMETER ResourceUse Resource used in the model

Corn Wheat Cotton


Land 1.000 1.000 1.000
Labor 6.000 4.000 8.000

La syntaxe .L conduit à obtenir les valeurs optimales des variables primales (ou de la solution)
quand appliqué à une variable, et la valeur du terme de gauche d’une équation de contrainte,
quand à appliqué à une contrainte. La syntaxe .M permet d’obtenir le multiplicateur optimal
associée à une équation, si appliqué à une équation. Dans le cas d’une variable, il nous permet
de connaître la valeur excédentaire pour la contrainte duale associée.

56
III.7 Exercices d’application et d’assimulation

7 Exercices d’application et d’assimulation

Exercice 1
Une entreprise pharmaceutique fabrique trois types de médicaments : des somnifères, des eu-
phorisants et des analgésiques, dont les bénéfices de production escomptés sont respectivement
de 20, 20 et 10 euros par kilo. Pour fabriquer chacun de ces médicaments, trois matières pre-
mières sont utilisées : de la caféïne, de la valériane et de la morphine. Les quantités nécessaires
de ces produits pour fabriquer un kilo de médicaments sont résumées dans le tableau suivant :
somnifère euphorisants analgésiques
Caféïne 0 2 4
Valériane 4 0
Morphine 4 1 4
Par ailleurs les quantités de caféïne, valériane et morphine sont limitées par leur production
à respectivement 2, 4 et 2 unités par jour.
Le but de l’exercice est de planifier les quantités de médicaments à produire afin de maximiser
le bénéfice quotidien.
1. Modéliser le problème sous forme d’un programme linéaire.
2. Résoudre celui-ci par l’algorithme du simplexe.
3. Justifier l’optimalité de la solution obtenue en se servant uniquement du dictionnaire
final fourni par l’algorithme de la question précédente.
4. Déterminer et interpréter les prix cashés et les coûts réduits(si il y en a).

Exercice 2
Utiliser le logiciel GAMS pour résoudre les PL suivants :
a)

M ax Z = 66x1 + 84x2
3x1 + 4x2 Æ 4200
x1 + 3x2 Æ 2250
2x1 + 2x2 Æ 2600
x1 Æ 1100
x1 , x2 Ø 0

57
IV. Programmation non linéaire

b)

M ax Z = 3x1 + 2x2 + 4x3


x1 + x2 + 2x3 Æ 42
x1 + 0x2 + 3x3 Æ 52
x1 + x2 + 3x3 Æ 7
x1 , x2 , x3 Ø 0

8 Notes
Ce chapitre se base essentiellement sur les notes de cours de Bernard Gendron, 2007. L’exemple
3 est tiré de Hillier et Lieberman [1], Section 3.1. L’exemple de production est dû à Stefan
Balev.

58
Chapitre IV

Programmation non linéaire

Nous pouvons généraliser le programme linéaire introduit au chapitre précédent comme suit :

max f (x1 , . . . , xn ) (IV.1)


x

s/c : g1 (x1 , . . . , xn ) Æ b1 , (IV.2)


..
. (IV.3)
gm (x1 , . . . , xn ) Æ bm . (IV.4)

Si f et gi , i = 1, . . . , m, sont linéaires, nous retrouvons le programme linéaire précédemment


introduit, mais il n’existe pas de raison de se limiter à de tels cas.
En général, nous supposerons aussi que toutes ces fonctions sont deux fois dérivables.

1 Fonctions convexes et concaves

Soient a et b deux points dans Rn . Le segment de droite joignant ces deux points est
l’ensemble des points

{x œ Rn |÷⁄ œ [0, 1] : x = a + ⁄(b ≠ a) = ⁄b + (1 ≠ ⁄)a}. (IV.5)

Une fonction est convexe si tout point sur le segment de droite joignant f (a) et f (b) se trouve
au-dessus du graphe de f :

f (⁄b + (1 ≠ ⁄)a) Æ ⁄f (b) + (1 ≠ ⁄)f (a), (IV.6)

59
IV. Programmation non linéaire

pour toute paire de points (a, b). Si cette inégalité est stricte, la fonction f est dite strictement
convexe. En remplaçant le sens de l’inégalité dans (IV.6), la fonction f est dite concave :

f (⁄b + (1 ≠ ⁄)a) Ø ⁄f (b) + (1 ≠ ⁄)f (a), (IV.7)

pour toute paire (a, b). Si cette dernière inégalité est stricte, la fonction f est strictement
concave. La Figure IV.1 illustre une fonction strictement convexe et une fonction strictement
concave.

Figure IV.1 – Fonctions convexe et concave

Tests de convexité et de concavité


Supposons que f est une fonction deux fois dérivable d’une seule variable. Alors,

1. f est convexe si et seulement si


d2 f
’ x, Ø0 (IV.8)
dx2
2. f est strictement convexe si et seulement si

d2 f
’ x, >0 (IV.9)
dx2

3. f est concave si et seulement si


d2 f
’ x, Æ0 (IV.10)
dx2
4. f est strictement concave si et seulement si

d2 f
’ x, <0 (IV.11)
dx2

60
IV.1 Fonctions convexes et concaves

Supposons que f est une fonction deux fois dérivable de deux variables. Dans ce cas, nous
utilisons la Table IV.1. comme conditions nécessaires.

Convexe Strict. Concave Strict.


convexe concave
ˆ 2 f (x1 ,x2 )
ˆx21
Ø0 >0 Æ0 <0
ˆ 2 f (x1 ,x2 )
ˆx22
Ø0 >0 Æ0 <0
1 2
ˆ 2 f (x1 ,x2 ) ˆ 2 f (x1 ,x2 ) ˆ 2 f (x1 ,x2 )
ˆx21
. ˆx2 ≠ ˆx1 ˆx2
Ø0 >0 Æ0 <0
2

Tableau IV.1 – Test de convexité et de concavité pour une fonction à deux variables deux fois dérivable

Ces tests se généralisent à des fonctions de plus de deux variables en utilisant le Hessien (la ma-
trice des dérivées secondes). Deux résultats supplémentaires sont utiles pour tester la convexité :
• une fonction qui s’exprime comme la somme de fonctions convexes (concaves) est convexe
(concave) ;
• l’opposé d’une fonction concave est convexe et vice-versa.

1.1 Ensembles convexes


Un ensemble est convexe si, pour toute paire de points de l’ensemble, le segment de droite
joignant ces points est contenu dans l’ensemble. Il est possible de démontrer qu’un ensemble
est convexe grâce aux propriétés suivantes :
• si f est convexe, alors {x|f (x) Æ b} est convexe ;
• si f est concave, alors {x|f (x) Ø b} est convexe ;
• l’intersection d’ensembles convexes est convexe.

Exemple 17 (Wyndor Glass) Modifions l’exemple Wyndor Glass en remplaçant certaines


contraintes par une contrainte non linéaire.

max z = 3x1 + 5x2


s.c. x1 Æ 4
9x21 + 5x22 Æ 216
x1 Ø 0, x2 Ø 0.

Le problème ainsi modifié peut se représenter comme sur la Figure IV.2. Remarquons que l’ob-
jectif est concave (car linéaire) et que le domaine réalisable est convexe : c’est un modèle de

61
IV. Programmation non linéaire

programmation convexe. Dans le cas présent, la solution optimale est sur la frontière du domaine
réalisable, mais ne correspond pas à un coin (l’intersection de deux contraintes).

Figure IV.2 – Exemple Wyndor Glass-cas 1

Modifions encore l’exemple Wyndor Glass, mais cette fois en remplaçant l’objectif lineaire par
une fonction non lineaire, comme illustré sur la Figure IV.3 :

max z = 126x1 ≠ 9x21 + 182x2 ≠ 13x22


s.c. x1 Æ 4
2x2 Æ 12
3x1 + 2x2 Æ 18
x1 Ø 0, x2 Ø 0.

62
IV.1 Fonctions convexes et concaves

Figure IV.3 – Exemple Wyndor Glass- cas 2

Nous pouvons à nouveau remarquer que l’objectif est concave et que le domaine réalisable est
convexe : c’est aussi un modèle de programmation convexe. Ici, la solution optimale (8/3, 5) est
sur la frontière du domaine réalisable, mais ne correspond pas à un point extrême du domaine
réalisable. Considérons le même exemple, mais avec une fonction objectif différente, tel que
représenté sur la Figure IV.4 :

max z = 54x1 ≠ 9x21 + 78x2 ≠ 13x22


s.c. x1 Æ 4
2x2 Æ 12
3x1 + 2x2 Æ 18
x1 Ø 0, x2 Ø 0.

63
IV. Programmation non linéaire

Figure IV.4 – Exemple Wyndor Glass- cas 3

Il s’agit à nouveau d’un modèle de programmation convexe, avec comme solution optimale (3,
3), laquelle se trouve à l’intérieur du domaine réalisable. La fonction objectif est la somme de
deux fonctions d’une seule variable. Si nous annulons les dérivées de chacune de ces fonctions,
nous obtenons la solution unique (3, 3), qui se trouve à l’intérieur du domaine ; c’est donc
nécessairement la solution optimale. Revenons sur la fonction objectif initiale, mais introduisons
une contrainte non-linéaire, qui définit un domaine réalisable non-convexe, comme illustré sur
la Figure IV.5 :

max z = 3x1 + 5x2


s.c. x1 Æ 4
x2 Æ 7
8x1 ≠ x21 + 14x2 ≠ x22 Æ 49
x1 Ø 0, x2 Ø 0.

Le problème ainsi modifié peut se représenter comme sur la Figure IV.5. Dans ce modèle de
programmation non convexe, nous remarquons la présence de deux maxima locaux :
• x est un maximum local si f (x) Ø f (a) pour tout a réalisable suffisamment près de a ;
• (4, 3) et (0, 7) sont des maxima locaux, mais xú = (0, 7) est la maximum global : f (x) Ø
f (a) pour tout a réalisable.

64
IV.2 Algorithmes

Les méthodes classiques de programmation non-linéaire permettent d’identifier un maximum


local, mais pas nécessairement le maximum global, alors qu’en programmation convexe, tout
maximum local est global.

Figure IV.5 – Exemple Wyndor Glass -cas 4

2 Algorithmes
2.1 L’algorithme du simplexe dans le cas non-linéaire
Le succès de l’algorithme du simplexe en programmation linéaire a naturellement motivé le
développement de techniques similaires pour l’optimisation non-linéaire. Une telle approche fut
proposée en par Nelder et Mead [3]. Néanmoins, la notion de point extrême est beaucoup plus
délicate à exploiter en non-linéaire, en particulier en l’absence de contraintes. Il convient de
construire un polyhèdre artificielle, ce qui n’est pas immédiat, et en pratique, la méthode souffre
de l’absence de garantie de convergence, excepté pour des fonctions convexes à une variable [4].
Nous pouvons même observer une convergence vers un point non-stationnaire [5]. Un algorithme
d’optimisation sans garantie de convergence est appelé heuristique.s Cette méthode est pourtant
encore fréquemment employée, en particulier par les ingénieurs. La fonction fminsearch de
Matlab 1 implémente ainsi cet algorithme. Malgré ce succès, aucun algorithme d’optimisation
non-linéaire moderne ne se fonde sur le simplexe, et il convient dès lors d’éviter autant que

65
IV. Programmation non linéaire

possible de maintenir un tel usage. De meilleurs résultats seront obtenus en employant des
outils plus appropriés.

2.2 Optimisation sans contrainte

Considérons tout d’abord le cas d’un modèle de programmation non-linéaire dans lequel il n’y
a aucune contrainte :
maxf (x1 , x2 , . . . , xn ). (IV.12)

Il est alors possible de montrer que si xú = (xú1 , xú2 , . . . , xún ) est un maximum local, alors

ˆf (xú )
, j = 1, 2, . . . , n. (IV.13)
ˆxj

En d’autres mots, lorsque la dérivée s’annule en un point donné, ce point peut être un maximum
local, mais l’inverse n’est pas nécessairement vérifié : ce point peut aussi être un minimum
local ou un point de selle. Par contre, si f est concave, un point où la dérivée s’annule est
nécessairement un maximum global. De plus, si f est strictement concave, un tel maximum
global est unique.
Dans le cas d’une fonction non concave, afin de trouver un maximum global, il faut
— identifier tous les maxima locaux ;
— identifier celui de plus grande valeur ;
— vérifier que la fonction est bornée supérieurement (sinon, il n’y a pas de maximum
global).
Le problème est qu’identifier tous les maxima locaux peut être extrêmement difficile.

2.3 Méthode de la bissection

Considérons en premier lieu le cas le plus simple : la fonction objectif f est concave et comporte
une seule variable. Il est alors possible de montrer que, si xú est une solution optimale et il existe
xi et xu tels que xi Æ xú Æ xu et f (xi ) ”= f (x), f (xu ) ”= f (x), alors il existe a et b tels que
a Æ xú Æ b et
df
> 0 si x < a, (IV.14)
dx

df
= 0 si x = xú , (IV.15)
dx

66
IV.2 Algorithmes

df
< 0 si x > b, (IV.16)
dx
Si f est strictement concave en xú , alors a = xú = b, comme illustré sur la Figure ??.

Figure IV.6 – Maximum d’une fonction strictement concave

Algorithm 3.1 : Méthode de la bissection


1. Nous fixons d’abord une borne inférieur xi pour laquelle la dérivée en ce point est
strictement positive.
2. Nous déterminons également une borne supérieure xu pour laquelle la dérivée en ce point
est strictement négative.
3. Si les deux bornes ne sont pas suffisamment près l’une de l’autre, i.e. la distance xu ≠ xi
est trop grande, nous prenons le point milieu entre les deux bornes comme point candidat
xc :
xi + xu
xc = (IV.17)
2
et nous passons à l’étape suivante. Sinon, c’est-à-dire si

xu ≠ xi Æ 2‘, (IV.18)

avec ‘ > 0 suffisamment petit, nous nous arrêtons : xc est une approximation suffisam-
ment précise de la solution optimale.

67
IV. Programmation non linéaire

4. Si la dérivée en xc est nulle, arrêt : xc est la solution optimale.

5. Si la dérivée en xc est positive, nous posons xi = xc .

6. Si la dérivée en xc est négative, nous posons xu = xc .

7. Retour à l’étape 3.

2.4 Méthode du gradient


Considérons une fonction concave f de plusieurs variables. La méthode de la bissection ne peut
plus s’appliquer, aussi nous devons nous tourner vers une meilleure alternative. La gradient de
f au point xÕ est défini comme
Q R
ˆf (xÕ ) Õ
c ˆx 1 d
c ˆf (xÕ ) d
c ˆx2 d
Òx f (xÕ ) = c . d
c d (IV.19)
c .. d
a b
ˆf (xÕ )
ˆxn

Il est possible de montrer que le gradient correspond a une direction d’augmentation de la


valeur de f . Ainsi, dans la méthode du gradient, nous nous déplaçons dans la direction du
gradient en tentant d’augmenter au maximum la valeur de l’objectif. A partir d’un point initial
xÕ , nous effectuons un déplacement dans la direction du gradient vers un nouveau point x :

x = xÕ + s,

où s = tú Òx f (x). Dans cette formule, tú est la solution du problème de maximisation suivant :

max f (xÕ ) + tÒx f (xÕ ) (IV.20)


tØ0

C’est un problème de maximisation d’une fonction concave d’une seule variable : nous pouvons
par conséquent le résoudre, par exemple en employant la méthode de la bissection. Nous posons
ensuite xÕ = x, et nous itérons ainsi jusqu’à ce que le gradient s’annule (ou presque). Nous avons
par conséquent l’algorithme suivant.

Algorithm 3.2 : Méthode du gradient


1. Déterminer une solution initiale xÕ . Posons k = 0. Nous fixons également une constante
‘ > 0 suffisamment petite.

68
IV.2 Algorithmes

2. Résoudre le problème suivant :

max t Ø 0 f (xk ) + tÒx f (xk )

Soit tú la solution optimale de (2). Posons

xk+1 = xk + tú Òx f (xk ),

et incrémentons k.

3. Si - -
- ˆf (x ) -
- k -
-
- ˆxj -
- Æ ‘ j = 1, 2, . . . , n,

arrêt. Sinon, nous retournons en 2.

2.5 Optimisation sous contraintes

Dans le cas d’un modèle de programmation non-linéaire sans contrainte, nous avons vu la
condition d’optimalité suivante : si xú = (xú1 , xú2 , . . . , xún ) est un maximum local, alors

ˆf (xú )
= 0, j = 1, . . . , n. (IV.21)
ˆxj

Cette condition n’est plus valable lorsqu’il y a des contraintes, car une solution optimale peut
se trouver sur la frontière du domaine réalisable.

Exemple 18 Nous souhaitons résoudre le programme

max f (x) = 6 ≠ x ≠ x2
x

sc. x Ø 0.

Il est facile de se convaincre (voir Figure IV.7) que la solution optimale est xú = 0, pourtant

df (0)
= ≠1 < 0. (IV.22)
dx

69
IV. Programmation non linéaire

Figure IV.7 – Maximum d’une fonction concave sous contrainte de positivité

Conditions KKT (Karush-Kuhn-Tucker)

Si xú = (xú1 , xú2 , . . . , xún ) est un maximum local, alors il existe m nombres u1 , u2 , . . . , um tels que

ˆf (xú ) ÿ m
ˆgi (xú )
≠ ui Ø0
ˆxj i=1 ˆxj
A B
ˆf (xú ) ÿ m
ˆgi (xú )
xúj ≠ ui Ø0
ˆxj i=1 ˆxj
gi (xú ) ≠ bi Æ 0, i = 1, 2, . . . , m,
ui (gi (xú ) ≠ bi ) = 0, i = 1, 2, . . . , m,
ui Ø 0, i = 1, 2, . . . , m,

Les conditions KKT peuvent également s’exprimer en omettant les contraintes de non-négativité,
lesquelles peuvent être réécrites sous la forme

≠xi Æ 0,

ou être tout simplement absentes. La forme qui suit est par conséquent plus générale, et plus
communément admise en programmation non-linéaire (voir par exemple Nocedal et Wright [6]).

70
IV.2 Algorithmes

Si xú = (xú1 , xú2 , . . . , xún ) est un maximum local, alors il existe m nombres u1 , u2 , . . . , um tels que

ˆf (xú ) ÿ m
ˆgi (xú )
≠ ui Ø0
ˆxj i=1 ˆxj
gi (xú ) ≠ bi Æ 0, i = 1, 2, . . . , m,
ui (gi (xú ) ≠ bi ) = 0, i = 1, 2, . . . , m,
ui Ø 0, i = 1, 2, . . . , m,

Exemple 19 (Conditions KKT)Considérons le problème

max f (x1 , x2 ) = ln(x1 + 1) + x2


s.c. 2x1 + x2 Æ 3,
x1 Ø 0, x2 Ø 0.

Nous pouvons donc considérer qu’il n’y a qu’une seule contrainte avec

g1 (x1 , x2 ) = 2x1 + x2 ,

et b1 = 3. Nous associons à cette contrainte un multiplicateur u1 Ø 0. Outre les contraintes de


non-négativité, nous avons alors les conditions suivantes :

1
≠ 2u1 Ø 0,
x1 + 1
1 ≠ u1 Æ 0,
3 4
1
xú1 ≠ 2u1 = 0,
x1 + 1
xú2 (1 ≠ u1 ) = 0,
2xú1 + xú2 ≠ 3 Æ 0,
u1 (2xú1 + xú2 ≠ 3) = 0.

Nous obtenons u1 Ø 1. Puisque xú1 Ø 0, nous en déduisons

1
≠ 2u1 < 0 (IV.23)
x1 + 1

71
V. Programmation mixte entière

Par conséquent, xú1 = 0. Puisque u1 ”= 0, nous avons

2xú1 + xú2 ≠ 3 = 0, (IV.24)

et par conséquent xú2 = 3. Dès lors, u1 = 1.Les conditions KKT sont donc satisfaites en un
seul point : (0, 3). Il s’agit bien d’un maximum global, car la fonction objectif est concave et le
domaine réalisable est convexe (modèle de programmation convexe).
En utilisant la version plus générale des conditions KKT, nous avons les conditions

1
≠ 2u1 + u2 Ø 0,
x1 + 1
1 ≠ u1 + u3 Æ 0,
2xú1 + xú2 ≠ 3 Æ 0,
u1 (2xú1 + xú2 ≠ 3) = 0,
≠x1 Æ 0,
≠x2 Æ 0,
u2 x1 = 0,
u3 x2 = 0.

Il est facile de vérifier que la solution de ce système est

x1 = 0, x2 = 3, u1 = 1, u2 = 1, u3 = 0.

3 Exercices d’application et d’assimulation


1. Faire un résumé technique du chapitre.
2. Qu’en pensez vous de l’application de ces algorithmes dans la vie économique et Statis-
tique d’un pays.

4 Notes
Ce chapitre se base en grande partie sur les notes de cours de Bernard Gendron, 2007.

72
Chapitre V

Programmation mixte entière

1 Présentation générale
Certaines quantités ne peuvent s’écrire sous forme de nombres réels, issus d’un domaine continu.
Au contraire, certaines décisions sont par nature discrètes, et doivent se représenter à l’aide de
nombres entiers.
Considérons par exemple une entreprise de transport, qui décide de renouveller sa flotte de ca-
mions. Le nombre de camions à acheter est un nombre naturel. La présence de telles variables
entières modifie profondément la nature des programmes sous-jacents.
Lorsqu’un problème est linéaire avec des variables entières, nous parlerons de programmation
mixte entière. Si toutes les variables sont entières, nous utiliserons la terminologie de pro-
grammation (pure) en nombres entiers.
Un exemple de programme en nombres entiers a déjà été rencontré dans la Sectionn 1. Si les va-
riables entières sont à valeurs 0 ou 1 (binaires), nous parlerons de programmatión 0-1 (binaire).
Nous pourrions bien entendu considérer le cas non-linéaire, mais les complications sont telles
qu’à ce jour, aucune méthode pleinement satisfaisante n’existe, même si d’intenses recherches
sont actuellement conduites à ce niveau, notamment au sein de l’entreprise IBM.

Exemple 20 (Problème du sac à dos) Considérons un cambrioleur muni d’un sac (unique)
pour transporter son butin. Son problème consiste à maximiser la valeur totale des objets qu’il
emporte, sans toutefois dépasser une limite de poids b correspondant à ses capacités physiques.
Supposons qu’il y a n type d’objets que le voleur pourrait emporter, et que ceux-ci sont en
nombre tel que quelle que soit la nature de l’objet considéré, la seule limite au nombre d’unités
que le cambrioleur peut prendre est que le poids total reste inférieur à b. Si l’on associe à l’objet
j une valeur cj et un poids Êj , la combinaison optimale d’objets à emporter sera obtenue en

73
V. Programmation mixte entière

résolvant le programme mathématique suivant :


n
ÿ
max
x
cj xj
j=1
ÿn
s/c : Êj xj Æ b
j=1

xj œ N , j = 1, . . . , n

Ici, xj œ N signifie que xj est un naturel, autrement dit un entier non négatif.
Intuitivement, nous pourrions penser que la solution consiste à choisir en premier lieu les objets
dont le rapport qualité-poids est le plus avantageux, quitte à tronquer pour obtenir une solution
entière (nous ne pouvons pas diviser un objet). Cette solution peut malheureusement se révéler
sous-optimale, voire mauvaise, comme on le constate sur l’exemple suivant :

max
x
2x1 + 3x2 + 7x3
s/c : 3x1 + 4x2 + 8x3 Æ 14
x 1 , x 2 , x3 œ N

Si nous oublions la contrainte d’intégralité, la solution, de valeur 12.25, est x = (0, 0, 14/8).
En tronquant, on obtient la solution entière x = (0, 0, 1) de valeur 7. Il est facile de trouver de
meilleures solutions, par exemple x = (1, 0, 1).
La solution optimale du problème du cambrioleur peut s’obtenir en énumérant toutes les so-
lutions admissibles et en conservant la meilleure (voir Table V.1 , où les solutions inefficaces
laissant la possibilité d’ajouter un objet n’ont pas été considérées).

x1 x2 x3 Objectif
0 1 1 10
2 0 1 11
0 3 0 9
2 2 0 10
3 1 0 9
4 0 0 8
Tableau V.1 – Problème du sac à dos : énumération des solutions

La solution optimale entière, x = (2, 0, 1), diffère passablement de la solution optimale linéaire.
Cependant, il est clair que cette technique d’énumération ne peut pas s’appliquer à des problèmes
de grande taille.

74
V.1 Présentation générale

Exemple 21 (California Mfg) Une entreprise doit choisir de nouveaux emplacements pour
construire des usines et des entrepôts. Los Angeles (LA) et San Fransisco (SF). Nous ne pouvons
construire un entrepôt que dans une ville où nous disposons d’une usine, et nous ne pouvons
pas construire plus d’un entrepôt. Nous associons à chaque construction (d’une usine ou d’un
entrepôt dans chacun des lieux envisagés) sa valeur estimée et son coût de construction. L’ob-
jectif est de maximiser la valeur totale estimée, en ne dépassant pas une limite maximum sur
les coûts. Les données du problème sont résumées dans la Table V.2.

Valeur estimée (millions de Coût de construction (millions de


Francs) dollars)
Usine à LA 9 6
Usine à SF 5 3
Entrepôt à LA 6 5
Entrepôt à SF 4 2
Limite maxi- - 10
mum
Tableau V.2 – Données du problème Mechepele Campony

Les variables sont : Y


] 1 si la décision j est approuvée
xj =
[ ≠x sinon
L’objectif est de maximiser la valeur estimée totale :

max z = 9x1 + 5x2 + 6x3 + 4x4 . (V.1)

Les contraintes fonctionnelles sont :


1. La limite maximum sur les coûts de construction :

6x1 + 3x2 + 5x3 + 2x4 Æ 10; (V.2)

2. Nous ne pouvons pas construire plus d’un entrepôt :

x3 + x4 Æ 1; (V.3)

3. L’entrepôt ne sera à BC que si l’usine est à BC :

x3 Æ x1 ; (V.4)

75
V. Programmation mixte entière

4. L’entrepôt ne sera à GV que si l’usine est à GV :

x4 Æ x2 ; (V.5)

5. Contraintes 0 ≠ 1 (intégralité) :

xj œ {0, 1}, j = 1, 2, 3, 4; (V.6)

ou encore
xj œ {0, 1}, j = 1, 2, 3, 4;

Par conséquent, nous avons le programme mathématique

max z = 9x1 + 5x2 + 6x3 + 4x4


s/c :6x1 + 3x2 + 5x3 + 2x4 Æ 10;
x3 + x4 Æ 1;
≠ x1 + x3 Æ 0;
≠ x2 + x4 Æ 0;
x1 , x2 , x3 , x4 Æ 1;
x1 , x2 , x3 , x4 Ø 0;
x1 , x2 , x3 , x4 entiers.

Le modèle illustre deux cas classiques d’illustrations de variables binaires :


• alternatives mutuellement exclusives : nous ne pouvons construire plus d’un entrepôt,
i.e.
x3 + x4 Æ 1;

• décisions contingentes : nous ne pouvons construire un entrepôt que là où nous avons


construit une usine :
x3 Æ x1 ; x4 Æ x2 :

Exemple 22 (Localisation) Une entreprise envisage plusieurs sites de construction pour des
usines qui serviront à approvisionner ses clients. À chaque site potentiel i correspond un coût
de construction ai , une capacité de production ui , un coût de production unitaire bi et des
coûts de transport cij des usines vers les clients. Soit yi une variable binaire prenant la valeur
1 si un entrepôt est construit sur le site i, dj la demande de l’usine j et xij la quantité produite

76
V.1 Présentation générale

à l’usine i et destinée au marché j (flot de i à j). Un plan de construction optimal est obtenu
en résolvant le programme :
ÿ ÿ ÿ ÿÿ
min ai y i + bi xij + cij xij
x
i i j i j
ÿ
s/c : xij = dj ’j
i
ÿ
xij Æ ui yi ’i
j

xij Ø 0,
yi œ {0, 1}.

Cette formulation contient deux éléments intéressants : un coût fixe (construction) modélisé
par une variable binaire yi ainsi qu’une contrainte logique forçant les flots provenant d’un site
à être nuls si aucune usine n’est construite en ce site. Notons aussi que certaines variables sont
entières alors que d’autres (flots) sont réelles.

Exemple 23 (Contraintes logiques) Des variables binaires peuvent servir à représenter des
contraintes logiques. En voici quelques exemples, où pi représente une proposition logique et xi
la variable logique (binaire) correspondante.

contrainte logique forme algébrique


p1 ü p2 = vrai x1 + x 2 = 1
p1 ‚ p2 ‚ · · · ‚ pn = vrai x1 + x2 + · · · + xn Ø 1
p1 · p2 · · · · · pn = vrai x1 + x2 + · · · + xn Ø n(ou = n)
p1 ∆ p2 x2 Ø x1
p1 ≈∆ p2 x2 = x1

Exemple 24 (Fonctions linéaires par morceaux) Considérons une fonction objectif à


maximiser, pour laquelle dans chaque intervalle [ai≠1 , ai ] la fonction est linéaire, ce que nous
pouvons exprimer par :

x = ⁄i≠1 ai1 + ⁄i ai
⁄i≠1 + ⁄i = 1,
⁄i≠1 , ⁄i Ø 0,
f (x) = ⁄i≠1 f (ai≠1 ) + ⁄i≠1 f (ai).

Nous pouvons généraliser cette formule sur tout l’intervalle de définition de la fonction f en

77
V. Programmation mixte entière

contraignant les variables ⁄i à ne prendre que deux valeurs non nulles, et ce pour deux indices
consécutifs. Ceci se fait en introduisant des variables binaires yi associées aux intervalles de
linéarité [ai≠1 , ai ] :
n
ÿ
x= ⁄ i ai ,
i=0
ÿn
f (x) = ⁄i f (ai ),
i=0
n
ÿ
⁄i = 1,
i=0

⁄i Ø 0, i = 0, . . . , n,
⁄0 Æ y 1 ,
⁄1 Æ y 1 + y 2 ,
.. .. ..
. . .
⁄n≠1 Æ yn≠1 + yn ,
⁄n Æ y n ,
n
ÿ
yi = 1(un seul intervalle ”actif ”)
i=1

yi œ 0, 1, i = 0, . . . , n.

Si la fonction f est concave, les variables binaires yi et les contraintes associées peuvent être éli-
minées de la formulation. P Cette approche est particulièrement intéressante lorsqu’on optimise
des fonctions de plusieurs variables de la forme i fi (xi ).

2 Contraintes mutuellement exclusives

2.1 Deux contraintes

Prenons l’exemple de deux contraintes. L’une ou l’autre des deux contraintes doit être satisfaite,
mais pas les deux simultanément. Par exemple,
— soit 3x1 + 2x2 Æ 18 ;
— soit x1 + 4x2 Æ 16.
Soit M un très grand nombre ; le système précédent est équivalent à

78
V.2 Contraintes mutuellement exclusives

— Soit

3x1 + 2x2 Æ 18
x1 + 4x2 Æ 16 + M

— soit

3x1 + 2x2 Æ 18 + M
x1 + 4x2 Æ 16

En introduisant une variable binaire y, nous obtenons le système équivalent

3x1 + 2x2 Æ 18 + M (1 ≠ y)
x1 + 4x2 Æ 16 + M y

La signification de cette variable est

— y = 1, si la première contrainte est satisfaite ;


— y = 0, si la seconde contrainte est satisfaite.

Nous avons de la sorte construit deux alternatives mutuellement exclusives.


Nous aurions pu aussi introduire deux variables binaires :

— y1 = 1, si la première contrainte est satisfaite ;


— y2 = 1, si la seconde contrainte est satisfaite.

Nous devons avoir


y1 + y2 = 1.

Afin de se ramener au modèle précédent, il suffit de poser

y1 = y;
y2 = 1 ≠ y.

Il s’agit d’un cas particulier de la situation suivante : K parmi N contraintes doivent être
satisfaites. Dans ce cas plus général, nous introduisons N variables binaires.

79
V. Programmation mixte entière

2.2 K contraintes parmi N

Soit les N contraintes


fj (x1 , x2 , . . . , xn ) Æ dj , j = 1, 2, . . . , N. (V.7)

Nous introduisons N variables binaires, avec yj = 1 si la j e contrainte est satisfaite :

fj (x1 , x2, . . . , xn ) Æ dj + M (1 ≠ yj ), j = 1, 2, . . . , N. (V.8)

Il reste à spécifier que seulement K de ces contraintes peuvent êtres satisfaites :

N
ÿ
yj = K (V.9)
j=1

2.3 Fonction ayant N valeurs possibles

Soit la contrainte
f (x1 , x2 , . . . , xn ) = d1 , ou d2 ou . . . ou dN . (V.10)

Nous introduisons N variables binaires, avec yj = 1 si la fonction vaut dj . La contrainte s’écrit


alors
N
ÿ
f (x1 , x2 , . . . , xn ) = dj yj (V.11)
j=1

avec
ÿ
yj = 1 (V.12)
j=1

Exemple 25 (Wyndor Glass). Supposons que le temps de production maximum à l’usine 3


n’est pas toujours 18h, mais pourrait également être 6h ou 12h. Cette contrainte s’écrit alors

3x1 + 2x2 = 6 ou 12 ou 18. (V.13)

Nous introduisons alors trois variables binaires

3x1 + 2x2 = 6y1 + 12y2 + 18y3 , (V.14)


y1 + y2 + y3 = 1. (V.15)

80
V.2 Contraintes mutuellement exclusives

2.4 Objectif avec coûts fixes

Supposons que le coût associé à un produit j est composé de deux parties :

1. un coût fixe initial kj encouru dès qu’une unité de j est produite ;

2. un coût cj proportionnel au nombre d’unités de j produites.

Le coût total associé à la production de xj unités est


Y
] kj + cj xj si xj > 0,
f (xj) = [
0 si xj = 0

Supposons de plus que l’objectif consiste à minimiser la somme de n fonctions avec coûts fixes
n
ÿ
min z = fj (xj ). (V.16)
j=1

Nous introduisons alors n variables binaires :


Y
1 si xj > 0,
]
yj = [
0 si xj = 0

L’objectif s’écrit alors


n
ÿ
min z = c j x j + kj y j . (V.17)
j=1

Les valeurs de xj et de yj dépendent l’une de l’autre : il s’agit d’un exemple de décisions


contingentes. Nous devons en particulier avoir une contrainte qui précise que xj = 0 si yj = 0.
Toutefois, les deux variables ne sont plus binaires, vu que xj peut être quelconque. Soit Mj une
borne supérieure sur la valeur de xj . Nous pouvons écrire la relation entre les deux variables
de cette manière :
x j Æ Mj y j . (V.18)

Ainsi,
— si yj = 0, alors xj = 0 ;
— si yj = 1, alors xj Æ Mj ;
— si xj > 0, alors yj = 1 ;
— si xj = 0, alors toute solution optimale satisfait yj = 0 lorsque kj > 0 (si kj = 0, la
variable yj est inutile).

81
V. Programmation mixte entière

Nous obtenons par conséquent le programme


n
ÿ
min z = c j x j + kj y j
j=1

s.c.xj Æ Mj ,
yj œ {0, 1}, j = 1, 2, . . . , n.

2.5 Variables entières en variables 0-1

Soit x une variable entière générale bornée :

0 Æ x Æ u,

et soit N l’entier tel que 2N Æ u Æ 2N +1 . La représentation binaire de x est


n
ÿ
x= 2j yj . (V.19)
j=1

L’intérêt de cette transformation est que les méthodes de programmation 0-1 sont souvent plus
efficaces que les méthodes de programmation en nombres entiers. Elle engendre néanmoins une
multiplication du nombre de variables.

Exemple 26 . Nous considérons trois types de produits, et deux usines ; nous exprimons le
profit par unité de produit en milliers de dollars. Nous connaissons les ventes potentielles par
produit (unités/semaine), et la capacité de production par usine (h/semaine). Nous avons tou-
tefois comme contrainte que pas plus de deux produits ne peuvent être fabriqués, et une seule
des deux usines doit être exploitée. Les données du problème sont résumées dans la Table V.3.
Les variables sont xj , le nombre d’unités fabriquées du produit j. Pour représenter la contrainte
"pas plus de deux produits", nous devons introduire des variables 0-1 :
Y
] 1 si xj > 0,
yj =
[ 0 si xj = 0

Afin de représenter la contrainte “une seule des deux usines”, nous devons ajouter une variables
0-1 : Y
] 1 si l’usine 1 est choisie ;
y4 = [
0 sinon

82
V.2 Contraintes mutuellement exclusives

Produit 1 temps Produit 2 temps Produit 3 temps Produit 3 temps


de production de production de production de production
(h/unité) (h/unité) (h/unité) (h/unité)
Usine 1 3 4 2 30
Usine 2 4 6 2 40
Profit/unité 5 7 3 -
(1000)
Ventes poten- 7 5 9 -
tielles (par
semaine)
Tableau V.3 – Exemple de production avec variables entières.

L’objectif est
max z = 5x1 + 7x2 + 3x3 . (V.20)

Les ventes potentielles sont


x1 Æ 7, x2 Æ 5, x3 Æ 9. (V.21)

L’exigence interdisant d’avoir plus de deux produits se traduit mathématiquement par

y1 + y2 + y3 Æ 2. (V.22)

La relation entre les variables continues et les variables 0-1 s’exprime par

x1 Æ 7y1 , x2 Æ 5y2 , x3 Æ 9y3 . (V.23)

La contrainte portant sur l’utilisation d’une seule usine est

— soit 3x1 + 4x2 + 2x3 Æ 30 ;


— soit 4x1 + 6x2 + 2x3 Æ 40.

En utilisant la variable 0-1 (et M très grand), elle se traduit par

3x1 + 4x2 + 2x3 Æ 30 + M (1 ≠ y4 ),


4x1 + 6x2 + 2x3 Æ 40 + M y4 .

83
V. Programmation mixte entière

En résumé, nous avons le modèle

maxz = 5x1 + 7x2 + 3x3


s.c.x1 Æ 7y1 , x2 Æ 5y2 , x3 Æ 9y3
y1 + y2 + y3 Æ 2,
3x1 + 4x2 + 2x3 Æ 30 + M (1 ≠ y4 ),
4x1 + 6x2 + 2x3 Æ 40 + M y4 ,
x1 , x2 , x3 Ø 0,
yj œ {0, 1}, j = 1, 2, 3, 4.

Exemple 27 . Nous considérons à nouveau trois types de produits, pour lesquels nous pouvons
placer cinq annonces publicitaires, avec un maximum de trois annonces par produit. L’estima-
tion des revenus publicitaires est donnée dans la Table V.4, où les profits sont exprimés en
millions de dollars.

Nombre d’an- Produit 1 Produit 2 Produit 3


nonces
0 0 0 0
1 1 0 -1
2 3 2 2
3 3 3 4
Tableau V.4 – Revenus publicitaires.

Les variables du problèmes sont le nombre d’annonces pour le produit i, dénoté par xi , mais
l’hypothèse de proportionnalité est alors violée : nous ne pouvons représenter l’objectif sous
forme linéaire uniquement avec ces variables.
Prenons tout d’abord comme variables
Y
] 1 si xi = j
yij =
[ 0 sinon

L’objectif est

max z = y11 + 3y12 + 3y13 + 2y22 + 3y23 ≠ y31 + 2y32 + 4y33 . (V.24)

84
V.2 Contraintes mutuellement exclusives

Nous utiliserons les 5 annonces disponibles :

3 ÿ
ÿ 3
jyij = 5. (V.25)
i=1 j=1

Enfin, la définition des variables 0-1 donne

3
ÿ
yij Æ 1, i = 1, 2, 3. (V.26)
j=1

Nous pourrions aussi prendre comme variables


Y
] 1 si xi Ø j
yij =
[ 0 sinon

Autrement dit, nous avons remplacé l’égalité dans la première condition par une inégalité. Cette
définition implique

xi = 0 =∆ yi1 = 0, yi2 = 0, yi3 = 0;


xi = 1 =∆ yi1 = 1, yi2 = 0, yi3 = 0;
xi = 2 =∆ yi1 = 1, yi2 = 1, yi3 = 0;
xi = 3 =∆ yi1 = 1, yi2 = 1, yi3 = 1.

Ce qui peut encore s’énoncer somme

yi(j+1) Æ yij , i = 1, 2, 3, j = 1, 2.

Supposons que x1 = 3 (il y a trois annonces pour le produit 1). Le profit associé à cette valeur
doit être 3. Mais x1 = 3 veut aussi dire que chaque variable binaire associée au produit 1 vaut
1 ; comment dès lors comptabiliser correctement la contribution de ces trois variables au profit ?
La solution consiste à prendre comme profit associé à la variable yij la différence cij+1 ≠ cij , où
cij est le revenu net si nous plaçons j annonce pour le produit i. Dans notre exemple, le profit
associé à

— y11 est 1 ≠ 0 = 1 ;
— y12 est 3 ≠ 1 = 2 ;
— y13 est 3 ≠ 3 = 0 ;

85
V. Programmation mixte entière

Nous obtenons ainsi le programme mathématique suivant :

max z = y11 + 2y12 + 2y22 + y23 ≠ y31 + 3y32 + 2y33


s.c.yi(j+1) Æ yij , i = 1, 2, 3, j = 1, 2,
3 ÿ
ÿ 3
yij = 5,
i=1 j=1

yij œ {0, 1}, i = 1, 2, 3, j = 1, 2.

2.6 Problème de recouvrement

Exemple 28 (Affectation des équipages). Un problème important des compagnies aé-


riennes consiste à constituer de façon efficace des équipages pour ses vols. Pour un équipage
donné, une rotation consiste en une succession de services de vol débutant et se terminant en
une même ville. Comme il y a un coût associé à chaque séquence de vols, la compagnie cherche
à minimiser les coûts d’affectation des équipages aux séquences tout en assurant le service sur
chacun des vols.
Considérons par exemple un problème avec 11 vols et 12 séquences de vols, dont les données
sont décrites dans la Table V.5.

Vol| Sé- 1 2 3 4 5 6 7 8 9 10 11 12
quence
1 1 1 1 1
2 1 1 1 1
3 1 1 1 1
4 1 1 1 1 1
5 1 1 1
6 1 1
7 1 1 1 1 1
8 1 1 1 1
9 1 1 1
10 1 1 1 1
11 1 1 1 1 1
Coût 2 3 4 6 7 5 7 8 9 9 8 9
Tableau V.5 – Affectation d’équipages.

86
V.2 Contraintes mutuellement exclusives

Les variables sont


Y
] 1 si la séquence de vols j est affectée ;
xj = [
0 sinon

L’objectif est

min z = 2x1 + 3x2 + 4x3 + 6x4 + 7x5 + 5x6 + 7x7 + 8x8 + 9x9 + 9x10 + 8x11 + 9x12 .

Nous devons affecter trois équipages


12
ÿ
xj = 2
j=1

Le service doit être assuré sur chacun des vols :

x1 + x4 + x7 + x10 Ø 1
x2 + x5 + x8 + x11 Ø 1
x3 + x6 + x9 + x12 Ø 1
x4 + x7 + x9 + x10 + x12 Ø 1
..
.

En pratique, il faut tenir compte des contraintes imposées par les conventions collectives, ce qui
complique singulièrement le problème.

Un problème de recouvrement d’ensemble met en oeuvre :


• I : un ensemble d’objets (les vols dans l’exemple précédent) ;
• J : une collection de sous-ensembles de I (e.g. les séquences de vols) ;
• Ji , i œ I : les sous-ensembles dans J qui contiennent i.
Nous avons les variables binaires xj , prenant la valeur 1 si le sous-ensemble j est choisi, et
0 sinon. En considérant un objectif linéaire, avec cj le coût associé au sous-ensemble j. Nous
obtenons le programme
ÿ
min cj xj
x
jœJ
ÿ
s/c : xj Ø 1, ’i œ I
jœJi

xj œ {0, 1}, j œ J.

87
V. Programmation mixte entière

3 Stratégies de résolutions

3.1 Relaxation linéaire

Il est tentant “d’oublier” les contraintes d’intégralité, et de résoudre le problème en nombres


continus ainsi produit. Nous parlerons alors de relaxation. Ainsi, nous pourrons construire la
relaxation en programme linéaire d’un programme mixte entier. Une fois le programme relâché
résolu, nous pourrions arrondir aux valeurs entières les plus proches. Dans certains cas, cela
peut fonctionner, mais l’exemple du sac à dos montre que ce n’est pas toujours vérifié. Cette
méthode par arrondissement est même parfois désastreuse.

Exemple 29 . Considérons le programme

max z = x2
1
s.c. ≠ x1 + x2 Æ
2
7
x1 + x2 Æ
2
x1 , x2 Ø 0 et entiers.

La relaxation en programme linéaire donne

max z = x2
1
s.c. ≠ x1 + x2 Æ
2
7
x1 + x2 Æ
2
x 1 , x2 Ø 0
1 2
Ce nouveau programme a pour solution 32 , 2 . Que nous arrondissions cette solution à (1, 2)
ou (2, 2), nous n’obtenons pas de solution réalisable, comme illustré sur la Figure V.1

88
V.3 Stratégies de résolutions

Figure V.1 – Exemple de relaxation linéaire : problème d’admissibilité des solutions

Exemple 30 . Considérons le programme

max z = x1 + 5x2
s.c.x1 + 10x2 Æ 20,
x2 Æ 2,
x1 , x2 Ø 0 et entiers.

La version relâchée de programme est

max z = x1 + 5x2
s.c.x1 + 10x2 Æ 20,
x2 Æ 2,
x 1 , x2 Ø 0

qui a pour solution optimale (2, 1.8). En arrondissant à (2, 1) afin de garantir l’admissibilité,
nous obtenir la valeur 7 pour la fonction objectif, loin de la valeur optimale du programme mixte
entier, avec pour valeur optimale 11, en (0, 2) (voir Figure V.2).

89
V. Programmation mixte entière

Figure V.2 – Exemple de relaxation linéaire : problème d’admissibilité des solutions

3.2 Approche par énumération


Un modèle en nombres entiers borné (par exemple, un modèle avec uniquement des variables
0 ≠ 1) possède un nombre fini de solutions. Nous pourrions envisagear de toutes les énumérer,
mais le nombre de solutions explose rapidement. Pour n = 20 variables 0 ≠ 1, il y a plus d’un
million de solutions possibles. Pour n = 30, c’est plus d’un milliard. Comme il apparaît qu’il est
vite déraisonnable de procéder à une énumération complète des solutions, nous allons essayer
de mettre à profit la relaxation en programme linéaire pour éliminer certaines de ces solutions.
Cette technique d’énumération partielle est connue sous le vocable de branch-and-bound
(BaB). Il s’agit d’une approche diviser-pour-régner :
— décomposition du problème en sous-problèmes plus simples ;
— combinaison de la résolution de ces sous-problèmes pour obtenir la solution du problème
original.
Dans l’algorithme de branch-and-bound, chaque sous-problème correspond à un sommet dans
l’arbre des solutions. Nous résolvons la relaxation linéaire de chaque sous-problème. L’infor-
mation tirée de la relaxation linéaire nous permettra (peut-être) d’éliminer toutes les solutions

90
V.3 Stratégies de résolutions

pouvant être obtenues à partir de ce sommet.

Algorithme de branch and bound : cas 0-1

Un algorithme simple pour énumérer toutes les solutions d’un modèle 0–1 consiste à :
— choisir un sommet dans l’arbre des solutions ;
— choisir une variable x non encore fixée relativement à ce sommet ;
— générer les deux variables x = 0 et x = 1 (la variable x est dite fixée) : chaque alternative
correspond à un sommet de l’arbre des solutions ;
— recommencer à partir d’un sommet pour lequel certaines variables ne sont pas encore
fixées.
A la racine de l’arbre, aucune variable n’est encore fixée, tandis qu’aux feuilles de l’arbre, toutes
les variables ont été fixées. Le nombre de feuilles est 2n (pour n variables 0 ≠ 1).
Le calcul de borne (ou évaluation) consiste à résoudre la relaxation linéaire en chaque sommet.
L’élagage (ou élimination) consiste à utiliser l’information tirée de la résolution de la relaxation
linéaire pour éliminer toutes les solutions émanant du sommet courant. Dés lors, le branch-and-
bound est un algorithme de séparation et d’évaluation successives.

Exemple 31 (California Mfg). Rappelons le problème

max z = 9x1 + 5x2 + 6x3 + 4x4


s.c.6x1 + 3x2 + 5x3 + 2x4 Æ 10;
x3 + x4 Æ 1;
≠ x1 + x3 Æ 0;
≠ x2 + x4 Æ 0;
x1 , x2 , x3 , x4 Æ 1;
x1 , x2 , x3 , x4 Ø 0;
x1 , x2 , x3 , x4 entiers.

La relaxation linéaire permet aux variables de prendre les valeurs fractionnaires entre 0 et 1, ce
qui conduit à la solution 3 4
5
, 1, 0, 1
6
avec comme valeur z = 16.5. Branchons sur la variable x1 .

91
V. Programmation mixte entière

Dénotons sous-problème 1 celui obtenu avec x1 = 0 :

max z = 5x2 + 6x3 + 4x4


s.c.3x2 + 5x3 + 2x4 Æ 10;
x3 + x4 Æ 1;
x3 Æ 0;
≠ x2 + x4 Æ 0;
x2 , x3 , x4 binaires.

La solution de la relaxation linéaire est alors


3 4
4 4
(x1, x2, x3, x4) = 1, , 0,
5 5
1
avec z = 16 + 5

Nous obtenons dès lors les bornes suivantes :


— sous-problème 1 : Z1 Æ 9 ;
— sous-problème 2 : Z2 Æ 16 + 15
Notons que toutes les variables sont binaires et tous les paramètres dans l’objectif sont des
valeurs entières. Dès lors, la borne supérieure pour le sous-problème 2 est 16. Pour le sous-
problème 1, la solution obtenue est entière : c’est la meilleure solution courante. Nous savons
que la valeur optimale cherchée, Z, sera au moins

Z ú = 9 : Z Ø Z ú. (V.27)

Quels sous-problèmes pouvons-nous à présent considérer afin de nous approcher de la solution


optimale ? Tous les sous-problèmes actuellement traités doivent-ils donner naissance à d’autres
problèmes. Si un sous-problème ne donne lieu à aucun autre problème, nous parlerons d’élagage,
en référence avec l’idée de couper la branche correspondante dans l’arbre d’exploration.
Considérons tout d’abord le sous-problème 1 : la solution optimale de la relaxation P L est
entière. Il ne sert donc à rien de brancher sur les autres variables, puisque toutes les autres
solutions entières (avec x1 = 0) sont nécessairement de valeur inférieures ou égales à 9. Nous
pouvons donc élaguer ce sommet.
Pour le sous-problème 2, la solution optimale de la relaxation PL n’est pas entière :

Z ú = 9 Æ Z Æ 16.

92
V.3 Stratégies de résolutions

La branche (x1 = 1) peut encore contenir une solution optimale. Mais si nous avions eu Z2 Æ Z ú ,
nous aurions pu conclure que la branche ne pouvait améliorer la meilleure solution courante.
Un sous-problème est élagué si une des trois conditions suivantes est satisfaite :
— test 1 : sa borne supérieure (valeur optimale de la relaxation PL) est inférieure ou égale
à Z ú (valeur de la meilleure solution courante) ;
— test 2 : sa relaxation PL n’a pas de solution réalisable ;
— test 3 : la solution optimale de sa relaxation PL est entière.
Lorsque le test 3 est vérifié, nous testons si la valeur optimale de la relaxation PL du sous-
problème, Zi , est supérieure à Z ú . Si Zi > Z ú , alors Z ú := Zi , et nous conservons la solution,
qui devient la meilleure solution courante. En résumé, nous obtenons l’algorithme ci-dessous.

Algorithm 4.1 : Branch-and-Bound : cas binaire


1. Initialisation :
(a) poser Z ú = ≠Œ ;
(b) appliquer le calcul de borne et les critères d’élagage à la racine (aucune variable
fixée).
2. Critere d’arrêt : s’il n’y a plus de sous-problèmes non élagués, arrêter.
3. Branchement :
(a) parmi les sous-problèmes non encore élagués, choisir celui qui a été crée le plus
récemment (s’il y a égalité, choisir celui de plus grande borne supérieure) ;
(b) appliquer le Test 1 : si le sous-problème est élagué, retourner en 2.
(c) brancher sur la prochaine variable non fixée.
4. Calcul de borne :
(a) résoudre la relaxation PL de chaque sous-problème ;
(b) arrondir la valeur optimale si tous les paramètres de l’objectif sont entiers.
5. Elagage : élaguer un sous-problème si
(a) la borne supérieure est inférieure ou égale à Z ú ;
(b) la relaxation PL n’a pas de solution réalisable ;
(c) la solution optimale de la relaxation PL est entière : si la borne supérieure est stric-
tement supérieure à Z ú , Z ú est mise à jour et la solution de la relaxation PL devient
la meilleure solution courante.

93
V. Programmation mixte entière

6. Retourner en 2.

A partir de quel nœud devrions-nous brancher ? Il y a plusieurs choix possibles ; dans cette
version, on propose comme règle de sélection de choisir le sous-problème le plus récemment
créé. L’avantage est que cette approche facilite la ré-optimisation lors du calcul de borne, car
il n’y a que peu de changements apportés par rapport au dernier sous-problème traité. Le
désavantage est que cela peut créer un grand nombre de sous-problèmes. Une autre option est
la règle de la meilleure borne : choisir le sous-problème ayant la plus grande borne supérieure.
Dans cette version, la règle de branchement consiste à choisir la prochaine variable non fixée. Il
est souvent plus intéressant de choisir une variable à valeur fractionnaire. En branchant sur une
telle variable, il est certain que les deux sous-problèmes crées mènent à des solutions différentes
de la solution courante. De nombreux critères existent pour choisir une telle variable de façon
à orienter la recherche vers un élagage rapide.

Exemple 32 (suite). Jusqu’à maintenant, voici l’arbre obtenu, en branchant sur la variable
x1 .

F (3) indique que le sous-problème a été élagué (fathomed) en raison du Test 3. Sélection :
nous choisissons le sous-problème 2, le seul qui n’a pas encore été élagué. Nous branchons sur
la prochaine variable, soit x2 . Deux nouveaux sous-problèmes sont crées :
— sous-problème 3 : x1 = 1, x2 = 0 ;
— sous-problème 4 : x1 = 1, x2 = 1.

94
V.3 Stratégies de résolutions

Considérons tout d’abord le sous-problème 3 (x1 = 1, x2 = 0). Nous obtenons le problème

max z3 = 6x3 + 4x4 + 9


s.c.5x3 + 2x4 Æ 4
x3 + x4 Æ 1
x3 Æ 1
x4 Æ 0
x3 , x4 binaire.

La solution de la relaxation PL est


3 4
1
(x1 , x2 , x3 , x4 ) = 1, 1, 0,
2

et
Z = 16 : Z4 Æ 16.

Aucun des tests d’élagage ne s’applique sur ces sous-problèmes. Nous devons dès lors choisir
un des deux sous-problèmes pour effectuer un branchement, puisque ce sont ceux crées le plus
récemment. Nous choisissons celui de plus grande borne supérieure, soit le sous-problème 4.
Nous branchons sur x3 et nous générons deux nouveaux sous-problèmes.
Le sous-problème 5, défini avec x1 = 1, x2 = 1, x3 = 0, s’écrit

max z5 = 4x4 + 14
s.c.2x4 Æ 1
x4 Æ 1
x4 binaire.

La solution de la relaxation PL est


3 4
1
(x1 , x2 , x3 , x4 ) = 1, 1, 0,
2

et
Z = 16 : Z5 Æ 16. (V.28)

95
V. Programmation mixte entière

Le sous-problème 6, défini avec x1 = 1, x2 = 1, x3 = 1, s’écrit

max z5 = 4x4 + 20
s.c.2x4 Æ ≠4
x4 Æ 0
x4 Æ 1
x4 binaire.

La relaxation PL n’a pas de solution réalisable : ce sous-problème est élagué. Le sous-problème


5 ne peut pas être élagué. Il est crée le plus récemment parmi les sous-problèmes non élagués
(3 et 5), aussi choisissons-nous le pour effectuer un branchement. Nous branchons sur x4 et
générons les sous-problèmes suivants :

— sous-problème 7 : x1 = 1, x2 = 1, x3 = 0, x4 = 0 ;
— sous-problème 8 : x1 = 1, x2 = 1, x3 = 0, x4 = 1.

Toutes les variables sont fixées, aussi pouvons-nous directement résoudre ces sous-problèmes.
Le sous-problème 7 a pour solution (x1 , x2 , x3 , x4 ) = (1, 1, 0, 0), pour Z7 = 14. La solution est
entière, aussi nous élaguons le sous-problème en vertu du Test 3. Puisque Z7 > Z ú , Z ú = 14
et la solution du sous-problème devient la meilleure solution courante. Le sous-problème 8 a
pour solution (x1 , x2 , x3 , x4 ) = (1, 1, 0, 1). Cette solution n’est pas réalisable, car la première
contrainte (2x4 Æ 1) est violée. Le sous-problème est par conséquent élagué par le Test 2. Le
sous-problème 3 est le seul non encore élagué. Appliquons le Test 1 : Z3 = 13 Æ 14 = Z ú .
Le sous-problème est donc élagué. Comme il n’y a plus de sous-problèmes non élagués, nous
pouvons nous arrêter. La solution optimale est :

(x1 , x2 , x3 , x4 ) = (1, 1, 0, 0), (V.29)

et la valeur optimale est Z ú = 14.


L’arbre obtenu suite à l’exécution de l’algorithme se présente comme suit :

96
V.3 Stratégies de résolutions

F(j) : le sous-problème est élagué par le Test j

Algorithme de branch & bound : cas général


Considérons à présent le cas général d’un modèle de programmation (mixte) en nombres
entiers : variables entières générales et variables continues. Comme précédemment, nous igno-
rons dans un premier temps les contraintes d’intégralité (les valeurs des variables entières sont
traitées comme variables continues), et résolvons le programme linéaire résultant. Si la solution
optimale de ce programme satisfait aux contraintes d’intégralité, alors cette solution est aussi
solution optimale du programme avec variables entières. Sinon, il doit exister au moins une
variable x j dont la valeur – est fractionnaire. La procédure de branchement se généralise alors
comme suit : nous séparons alors le problème relaxé en deux sous-problèmes ; un sous-problème
contiendra la contrainte xj Æ Â–Ê et le second la contrainte xj Ø Á–Ë = Â–Ê + 1. Nous répétons
le processus pour chacun des sous-problèmes. Cette procédure est habituellement représentée
sous forme d’un arbre binaire où, à chaque niveau, une partition du sommet père s’effectue
suivant la règle décrite précédemment. Il s’agit alors de parcourir cet arbre d’énumération afin
d’y trouver la solution optimale. L’exploration d’un chemin de l’arbre peut prendre fin pour
trois raisons :
— la solution devient entière ;
— le domaine admissible d’un sous-problème devient vide ;
— la valeur de l’objectif correspondant à la solution optimale du problème relaxé est infé-
rieure (moins bonne) à celle d’une solution admissible connue, possiblement obtenue à

97
V. Programmation mixte entière

un autre sommet de l’arbre.


Dans chacun de ces trois cas on dit que le sommet est sondé, et il est inutile de pousser plus loin
dans cette direction. L’algorithme s’arrête lorsque tous les sommets sont sondés. La meilleure
solution obtenue au cours du déroulement de l’algorithme est alors l’optimum global de notre
problème.

Algorithm 4.2 : Algorithme de B&B : cas général


1. Initialisation :

(a) Poser Z ú = ≠Œ.


(b) Appliquer le calcul de borne et les critères d’élagage à la racine (aucune variable
fixée).
(c) Critère d’arrêt : s’il n’y a plus de sous-problèmes non élagués, arrêter.

2. Branchement :

(a) Parmi les sous-problèmes non encore élagués, choisir celui qui a été crée le plus
récemment (s’il y a égalité, choisir celui de plus grande borne supérieure).
(b) Appliquer le Test 1 : si le sous-problème est élagué, retourner en 2.
(c) Brancher sur la prochaine variable entière à valeur non entière dans la relaxation PL.

3. Calcul de borne : résoudre la relaxation PL de chaque sous-problème.


4. Elagage : élaguer un sous-problème si

(a) La borne supérieure est inférieure ou égale à Z ú .


(b) La relaxation PL n’a pas de solution réalisable.
(c) Dans la solution optimale de la relaxation PL, toutes les variables entières sont à
valeurs entières : si la borne supérieure est strictement supérieure à Z ú , Z ú est mise
à jour et la solution de la relaxation PL devient la meilleure solution courante.

5. Retourner en 2.

3.3 Les hyperplans coupants (méthode de coupe)


Vu que l’énumération des variables entières peut être coûteuse, l’idée est d’ajouter des
contraintes redondantes pour le modèle en nombres entiers, mais non pour la relaxation PL.

98
V.3 Stratégies de résolutions

Exemple 33 .Considérons le programme mathématique

5
max 4x1 + x2
x 2
x1 + x2 Æ 6
9x1 + 5x2 Æ 45
x1 , x2 œ N.

Le dictionnaire optimal correspondant à la relaxation linéaire de ce programme contient les deux


contraintes

15 5 1
x1 = + x3 ≠ x4
4 4 4
9 9 1
x2 = ≠ x3 + x4
4 4 4

où x3 et x4 sont des variables d’écart. Puisque la variable de base x1 n’est pas entière, cette
solution de base n’est pas admissible. nous pouvons réécrire la première contrainte sous la forme

5 1 15
x1 ≠ x3 + x4 =
4 4 4

En utilisant l’identité
a = ÂaÊ + (a ≠ ÂaÊ),

où (a ≠ ÂaÊ) représente la partie fractionnaire de a (0 Æ a ≠ ÂaÊ < 1), nous obtenons


37 8 4 37 8 4 37 84
5 3 1 1 5
x1 = ≠ + x3 + + x4 = ≠ ,
4 4 4 4 4

c’est-à-dire, en mettant tous les coefficients entiers à gauche et les coefficients fractionnaires à
droite :
3 3 3
x1 ≠ 2x3 ≠ 3 = ≠ x3 ≠ x4
4 4 4
Puisque les variables x3 et x4 sont non négatives, la partie fractionnaire (constante du membre
de droite) est inférieure à 1, le membre de droite est strictement inférieur à 1. Puisque le
membre de gauche est entier, le membre de droite doit aussi être entier. Or un entier inférieur
à 1 doit être inférieur ou égal à zéro. Nous en déduisons une contrainte additionnelle qui doit
être satisfaite par toute solution admissible du problème originel, et que ne satisfait pas la

99
V. Programmation mixte entière

solution de base courante :


3 3 3
≠ x3 ≠ x4 Æ 0
4 4 4
En utilisant les identités x3 = 6 ≠ x1 ≠ x2 et x4 = 45 ≠ 9x1 ≠ 5x2 , nous obtenons la coupe sous
sa forme géométrique :
3x1 + 2x2 Æ 15.

Cette contrainte linéaire rend inadmissible la solution courante admissible, sans éliminer aucune
autre solution entière. Si la solution du nouveau problème est entière, il s’agit de la solution
optimale de notre problème. Sinon, nous construisons une nouvelle coupe et recommençons.

Exemple 34 . Reprenons le problème, illustré sur la Figure V.3,

Figure V.3 – Méthode de coupes

max z = 3x1 + 2x2


s.c.2x1 + 3x2 Æ 4,
x1 , x2 binaire.

100
V.4 Modélisation avec GAMS

Les solutions réalisables sont (0, 0), (1, 0) et (0, 1).


Une contrainte redondante est :
x1 + x2 Æ 1.

Suite à l’ajout de la contrainte redondante, comme représenté sur la Figure V.4, le problème
est résolu à la racine.

Figure V.4 – Méthode de coupes : ajout d’une contrainte

Il y a plusieurs algorithmes permettant de générer de telles inégalités redondantes, appelées


coupes. Mais il est rare que leur ajout permette de résoudre le problème à la racine. L’ajout
de coupes permet toutefois de réduire le nombre de sous-problèmes traités par l’algorithme de
Branch-and-Bound. Nous pouvons même ajouter des coupes pour chaque sous-problème (pas
seulement à la racine) : nous obtenons alors un algorithme de branch-and-cut.

4 Modélisation avec GAMS


Exemple 35 (Échangeurs de chaleur). Considérons un problème simplifié d’affection de
flux de processus à des échangeurs de chaleur ; les échangeurs de chaleur ont pour but de trans-
férer la chaleur d’un flux chaud à un flux froid, afin de limiter la consommation d’énergie

101
V. Programmation mixte entière

nécessaire pour chauffer ou refroidir des flux liquides (par exemple de l’eau) intervenant dans
des processus de production industrielle. Le problème d’optimisation correspondant est :
n ÿ
ÿ n
min z = cij xij
i=1 j=1
n
ÿ
xij = 1, j = 1, . . . , n,
i=1
ÿn
xij = 1, i = 1, . . . , n,
j=1

xij œ {0, 1}, i = 1, . . . , n, j = 1, . . . , n,

ce qui n’est rien d’autre qu’un problème classique d’affection. i représente ici l’indice des n flux,
et j, l’indice des n échangeurs. La variable binaire xij vaut 1 si le flux i est affecté à l’échangeur
j, et 0 sinon. Les contraintes indiquent que chaque échangeur doit être affecté à un flux, et
réciproquement. Les coûts cij d’affectation des flux aux échangeur sont résumés dans la Table
V.6. Le problème peut se formuler en GAMS comme

1 2 3 4
A 94 1 54 68
B 74 10 88 82
C 73 88 8 76
D 11 74 81 21
Tableau V.6 – coûts d’affectation des échangeurs de chaleur

HEAT.GMS

$TITLE Test Problem


$OFFSYMXREF
$OFFSYMLIST

SETS
I streams / A, B, C, D /
J exchangers / 1*4 / ;
TABLE C(I,J) Cost of assigning stream i to exchanger j

1 2 3 4

102
V.4 Modélisation avec GAMS

A 94 1 54 68
B 74 10 88 80
C 73 88 8 76
D 11 74 81 21;

VARIABLES X(I,J), Z;
BINARY VARIABLES X(I,J);

EQUATIONS ASSI(J), ASSJ(I), OBJ;

ASSI(J).. SUM( I, X(I,J) ) =E= 1;


ASSJ(I).. SUM( J, X(I,J) ) =E= 1;
OBJ.. Z =E= SUM ( (I,J), C(I,J)*X(I,J) ) ;

MODEL HEAT / ALL /;

OPTION LIMROW = 0;
OPTION LIMCOL = 0;
OPTION SOLPRINT = OFF;

SOLVE HEAT USING MIP MINIMIZING Z;

DISPLAY X.L, Z.L ;

La commande OPTION SOLPRINT=OFF supprime l’impression de la solution ; la sortie


sera contrôlée par la commande DISPLAY placé juste à la suite.

Exemple 36 (Problème de production). Nous souhaitons maximiser le profit que nous


pourrions obtenir en considérant 3 produits. Il n’y a pas coût de productions unitaires, mais des
coûts fixes sont présent pour le premier et le deuxième produits. Chaque produit est stocké, et
nous ne pouvons pas dépasser le volume disponible. Le code GAMS du problème est

VARIABLES
z profit;

103
V. Programmation mixte entière

POSITIVE VARIABLES
x1 produit1
x2 produit2
x3 produit3;

BINARY VARIABLES
y1
y2 ;

EQUATIONS
Objective Maximize profit
Ressource
Upper1 limit on product 1
Upper2 limit on product 2
Upper3 limit on product 3

Objective..
z =E= 2*x1 + 3*x2 + 0.8*x3 - 3*y1 - 2*y2;

Ressource..
0.2*x1 + 0.4*x2 + 0.2*x3 =L= 1;

Upper1..
x1 =L= 3*y1;

Upper2..
x2 =L= 2*y2;
1
Upper3..
x3 =L= 5;

MODEL example /ALL/;

104
V.5 Exercices

OPTION optcr = 0.05;

SOLVE example USING mip maximizing z;

Notons la ligne

OPTION optcr = 0.05;

qui nous donne le critère d’optimalité sur la valeur optimale. Dans le cas présent, nous exigeons
que l’écart relatif entre la borne supérieur et la borne inférieure soit inférieur à 5%.

5 Exercices
Exercice 1 (Hillier et Lieberman [1], Exercice 12.7-9)
Utiliser l’algorithme de Branch & Bound pour résoudre le problème

max z = 3x1 + 4x2 + 2x3 + x4 + 2x5 ,


s.c.2x1 ≠ x2 + x3 + x4 + x5 Æ 3,
≠ x1 + 3x2 + x3 ≠ x4 ≠ 2x5 Æ 2,
2x1 + x2 ≠ x3 + x4 + 3x5 Æ 1,
xj Ø 0, j = 1, 2, 3, 4, 5,
xj œ {0, 1}, j = 1, 2, 3.

6 Notes
Le contenu de ce chapitre est repris des notes de cours de Patrice Marcotte (2001) et de Bernard
Gendron (2007). L’exemple GAMS sur les échangeurs de chaleur est dû à Grossmann.

105
VI. Réseaux

106
Chapitre VI

Réseaux

1 Graphes

Les graphes sont un outil puissant de modélisation. Ils interviennent naturellement dans la
représentation de réseaux de transport ou de télécommunication, par exemple, mais également
dans la représentation de structures relationnelles abstraites. Mathématiquement, un graphe
G prend la forme G = (N, A) où N est un ensemble de sommets et A ™ N ◊ N un ensemble
d’arcs. Le terme réseau est un terme générique désignant un graphe dont les sommets ou les
arcs possèdent des attributs : coûts, capacités, longueurs, etc.

1.1 Graphe orienté

Exemple 37 (Réseau de distribution). Nous reprenons l’exemple 5, illustré sur la Figure


5.1. Les liens entre les nœuds du graphe ne peuvent être parcourus que dans un sens précis ;
nous parlerons de graphe orienté. Les sommets du graphe sont A, B, C, D, E, et le graphe
possède les arcs (A, B), (A, C), (A, D), (B, C), (C, E), (D, E), (E, D).

107
VI. Réseaux

Figure VI.1 – Réseau de distribution

1.2 Graphe non orienté


Exemple 38 (Réseau de distribution). Considérons le graphe représenté sur la Figure 5.2, tiré
de Hillier et Lieberman [1], Section 9.1. Nous avons les sommets O, A, B, C, D, E, T , et les
arêtes : O, A, O, B, O, C, A, B, A, D, B, C, B, D, B, E, D, E, D, T , E, T . Le nombre sur
chaque arête représente la distance entre les deux sommets reliés par cette arête

Figure VI.2 – Graphe non orienté

1.3 Transformations
Un graphe orienté dérivé d’un graphe non orienté en introduisant deux arcs pour chaque arête,
un dans chaque direction. A l’inverse, nous qualifierons de graphe sous-jacent à un graphe orienté

108
VI.1 Graphes

le graphe obtenu en enlevant l’orientation des arcs. Si G est un graphe orienté, le graphe dérivé
du graphe sous-jacent à G n’est pas G.

1.4 Chemins et circuits


Un chemin [chaîne] est suite d’arcs [d’arêtes] distinct[e]s reliant deux sommets. Il est non orienté
s’il est constitué d’une suite d’arcs distincts qui relient deux sommets, sans considération de
l’orientation des arcs. En d’autres mots, un chemin non orienté est une chaîne dans le graphe
sous-jacent. Un circuit [cycle] est un chemin [chaîne] qui commence et finit au même sommet.
Le circuit est non orienté s’il s’agit d’un cycle dans le graphe sous-jacent.

Exemple 39 (Réseau de distribution). Reprenons l’exemple du réseau de distribution,


illustré sur la Figure 5.3. A ≠æ C ≠æ E ≠æ D décrit un chemin, et en ignorant l’orientation
des arcs, nous décrivons également un chemin non orienté. A ≠æ D ≠æ E ≠æ C ≠æ B est
chemin non orienté, mais pas un chemin. D ≠æ E ≠æ D est circuit, et en omettant l’orien-
tation des arcs, un circuit non orienté. A ≠æ B ≠æ C ≠æ A est un circuit non orienté (mais
pas un circuit).

Figure VI.3 – Réseau de distribution

1.5 Connexité
Deux sommets sont connexes s’il existe au moins un chemin non orienté les reliant. Un graphe
est connexe si toute paire de sommets est connexe. Le plus petit graphe connexe à n sommets
possède n ≠ 1 arêtes ; il est appelé un arbre. Une définition alternative consiste à dire qu’un

109
VI. Réseaux

arbre est un graphe connexe sans cycle. Un arbre partiel est un arbre obtenu à partir d’un
graphe connexe en incluant tous les sommets.

Exemple 40 Retournons sur l’exemple 38. Le graphe ci-dessous n’est pas un arbre partiel,
comme il n’est pas connexe.

Le graphe ci-dessous est connexe, mais présente des cycles. Par conséquent, il ne s’agit pas d’un
arbre.

Le graphe ci-dessous est un arbre partiel.

110
VI.2 Problème du chemin le plus court - algorithmes de corrections d’étiquette

2 Problème du chemin le plus court - algorithmes de


corrections d’étiquette
Considérons un graphe non orienté et connexe, sur lequel deux sommets ont un rôle particulier :
— source (ou origine) : O ;
— puits (ou destination) : T .
A chaque arête i, j, nous associons une distance cij Æ 0. Nous cherchons le chemin non orienté
(ou chaîne) le plus court reliant O à T . Par chemin le plus court, nous désignons celui dont
la distance totale (somme des distances des arêtes du chemin) est minimale parmi tous les
chemins de O à T . Afin de procéder, nous affectons à chaque nœud du graphe une étiquette,
représentant la meilleure distance connue à un moment donné, de l’origine à ce nœud.

2.1 Algorithme de Dijkstra


Il s’agit d’une méthode itérative A chaque itération, nous choisissons le sommet j le plus près
de O et nous fixons d(j), la variable calculant la distance entre 0 et j (le sommet j est dit
marqué). Au départ, seul O est marqué et d(O) = 0. Le sommet le plus près est choisi parmi
les sommets non marqués reliés à au moins un sommet marqué. Le sommet choisi j est celui
qui atteint

d(j) est fixée à cette valeur. Nous nous arrêtons lorsque T est marqué si nous cherchons à
connaître le chemin allant de O à T spécifiquement, ou sinon jusqu’à avoir marqué tous les
sommets. Par la suite, nous supposerons dans la description que nous voulons marquer tous
les sommets. Plus spécifiquement, nous avons l’algorithme ci-dessous. L’algorithme de Dijkstra
s’applique aussi sur un graphe orienté.

Algorithm 5.1 : Algorithme de Dijkstra


Soient G = (N, A) un graphe connexe, de longueur d’arêtes non-négative (la longueur des arêtes
est donnée par une fonction l : A ≠æ Ÿ+ ), une source O œ N . Désignons par S l’ensemble des
sommets marqués.

111
VI. Réseaux

1. Initialisation. Pour tout u œ N , faire


— dist(u) := Œ ;
— pred(u) := N U LL.
où pred(u) indique le prédécesseur de u sur le plus court chemin de O à u. Le nœud
origine prend un rôle particulier, et comme il est évident que le plus court chemin de O
à O a une longueur nulle, nous posons dist(O) = 0. Comme à ce stade, aucun nœud n’a
encore été marqué, nous posons S = ÿ.
2. Tant que S ”= N , prenons u tel que

dist(u) Æ dist(v), ’v œ N \ S.

Posons S := S fi u, et, pour tout arc(u, v) existant, si

dist(v) < dist(u) + l(u, v),

posons
dist(v) := dist(u) + l(u, v),

Il est possible de montrer qu’une fois un nœud u marqué, dist(u) donne la longueur du plus
court chemin de O à u.

Exemple 41 . L’application de l’algorithme de Dijkstra pour l’exemple 38, repris à la Figure


VI.4, donne la série d’itérations résumée dans la Table VI.1.

Figure VI.4 – Réseau de distribution

Il est également possible de trouver les chemins les plus courts entre la source et tous les autres

112
VI.3 Flot dans un réseau

sommets (il suffit de regarder la valeur de d(i) en chaque sommet i). Nous pouvons également
trouver les chemins les plus courts entre toutes les paires de sommets, avec n applications
de l’algorithme de Dijkstra (mais il est possible de faire mieux). Si certaines distances sont
négatives, l’algorithme de Dijkstra ne s’applique cependant pas.

Itération Sommet S N \S Voisins Distance Prédécesseur


mar- non mar-
qué qués
0 - ÿ N - - -
1 O {O} {A,B,C,D,E,T} A 2 O
B 5 O
C 4 O
2 A {O,A} {B,C,D,E,T} A 4 A
B 9 A
D
3 B {O,A,B} {C,D,E,T} D 8 B
C 4 O
E 7 B
4 C {O,A,B,C} {D,E,T} E 7 B
5 E {O,A,B,C,E} {D,T} D 8 B
T 14 E
6 D {O,A,B,C,D,E} {T} T 13 D
7 T N ÿ - - -
Tableau VI.1 – Exécution de l’algorithme de Dijkstra

3 Flot dans un réseau

3.1 Réseau
Un réseau est un graphe orienté ayant
— des capacités sur les arcs ;
— des sommets d’offre (ou sources) ;
— des sommets de demande (ou puits) ;
— des sommets de transfert.
Le flot dans un réseau est le nombre d’unités circulant sur les arcs du réseau de façon à respecter
les capacités et les contraintes de conservation de flot. En chaque sommet, le flot sortant moins
le flot entrant vaut
— l’offre (si le sommet est une source) ;

113
VI. Réseaux

— la demande (si le sommet est un puits) ;


— 0 (en un sommet de transfert).
Soit A est l’ensemble des arcs du réseau. En dénotant par xij la quantité de flot qui passe sur
l’arc (i, j) œ A, nous avons
ÿ ÿ
xij ≠ xij = bi , i, j œ N
(i,j)œA+ (i) (i,j)œA≠ (i)


— bi = 0 (transfert), offre (source), -demande (puits) ;
— N désigne l’ensemble des sommets ;
— A+ (i) est l’ensemble des arcs sortants du sommet i ;
— A≠ (i) désigne l’ensemble des arcs entrants au sommet i ;
avec 0 Æ xij Æ uij .

3.2 Modèle de flot


Le chemin le plus court peut être vu comme le flot dans un réseau, lequel est le graphe orienté
dérivé. On enlève les arcs entrant à O et les arcs émanant de T . O est la seule source, avec
une offre égale à 1. T est le seul puits, avec une demande valant 1. Le flot sur chaque arc (i, j)
est soit 1, si l’arc appartient au chemin le plus court, soit 0, sinon.

3.3 Algorithme de Bellman-Ford


La déficience majeure de l’algorithme de Dijkstra est qu’en présence d’arcs (arêtes) de poids
négatif, ajouter un arc à un chemin peut faire décroître la longueur de ce chemin, de sorte que
lors du marquage d’un nœud u, dist(u) ne correspond plus nécessairement à la longueur du
plus court chemin de O à u. En particulier, si considérons le plus court chemin

O ≠æ v1 ≠æ v2 ≠æ . . . ≠æ vk

de O à vk , alors il n’est plus vrai que

d(O, vi ) Æ d(O, vk ) ’i < k.

Il est pourtant fréquent d’avoir des poids négatifs sur certains arcs. L’algorithme de Bellman-
Ford permet de traiter de tels cas, pour autant qu’il n’y ait pas de cycles de longueur négative,

114
VI.3 Flot dans un réseau

c’est-à-dire un cycle dont les sommes des poids des arêtes est strictement négatif. En effet, s’il
est possible d’atteindre de O un cycle C de longueur négative, et qu’il est possible d’atteindre
T depuis C, alors la longueur du plus court chemin de O à T vaut ≠Œ. Considérons un graphe
G = (N, A) connexe, sans cycle négatifs. Il existe alors un chemin

O ≠æ v1 ≠æ v2 ≠æ . . . ≠æ vk = T.

Nous allons garder trace des distances à partir de O, en construisant pour chaque nœud des
surestimations successives de la longueur du plus court chemin.

Algorithm 5.2 : Algorithme de Bellman-Ford


Soient un graphe G = (N, A) connexe, sans cycle négatifs, un sommet source O et un sommet
destination T .

1. Initialisation. Pour tout u œ N , posons dist(u) := Œ et pred(u) = N U LL. Posons


également dist(O) = 0. Poser i = 0.
2. Si i = |N | ≠ 1, arrêt. Sinon, pour chaque arête {u, v}, posons

dist(v) := min{dist(v), dist(u) + l(u, v)}.

Si dist(v) a été modifié, poser pred(v) = u. Mettre à jour i :

i := i + 1.

Retour en 2.

Considérons le plus court chemin O à T :

O ≠æ v1 ≠æ v2 ≠æ . . . ≠æ vk = T

Pour chaque i Æ k,
O ≠æ v1 ≠æ v2 ≠æ . . . ≠æ vi

est le plus court chemin de O à vi . En effet


— après l’itération 1, dist(v1 ) = d(O, v1 ),
— après l’itération 2, dist(v2 ) = d(O, v2 ),
et ainsi de suite jusqu’à l’itération i.

115
VI. Réseaux

3.4 Modèle du chemin critique (PERT/CPM)


La théorie des graphes est utilisée également en ordonnancement de tâches, en particulier sur
base d’un diagramme de PERT. Considérons un projet divisé en tâches diverses. Un graphe
orienté connexe (acyclique) représente les relations de précédence entre les tâches, avec pour
chaque étape du projet un nœud i correspond. L’arc (i, j) représente une tâche à effectuer, et
nous lui associons une pondération tij , représentant la durée de la tâche. S’il existe également un
arc (j, k), cela signifie que la tâche (i, j) doit se terminer avant que (j, k) ne débute. Les nœuds
1 et N correspondent au début et à la fin du projet. Une chemin dans le graphe représente une
séquence de travaux qui doivent être exécutés dans un certain ordre. Nous souhaitons connaître
le temps requis pour terminer le projet (i.e. avoir effectué toutes les tâches, certaines pouvant
s’accomplir en parallèle), ainsi que les activités critiques, c’est-à-dire celles qui déterminent le
temps total du projet.
Un plus long chemin dans le réseau s’appelle un chemin critique et sa longueur correspond à
la durée minimale du projet. Le poids d’un chemin critique est une borne inférieure du temps
total nécessaire pour mener à bien le projet. Il est facile de calculer un tel chemin sur base des
algorithmes de plus court chemin afin de trouver un tel chemin critique. Une première approche
consiste à considérer l’opposé de chaque pondération tij , ce qui conduit à un graphe avec des
poids négatifs. Dans ce cas, l’algorithme de Bellman-Ford s’appliquera, pour autant qu’il n’y
ait pas de cycles .

Exemple 42 . Nous souhaitons mener à bien le développement d’un nouveau produit, depuis
sa production jusqu’au rapport de projet menant à sa vente. Nous avons la liste des activités
reprises dans la Table VI.2, Dénotons l’instant de départ par O.

Activité Description Tâches préa- Durée (mois)


lables
A Conception du produit - 5
B Recherche de marché - 1
C Analyse de production A 2
D Prototype A 3
E Brochure de vente A 2
F Anayse de coût C 3
G Test de produit D 4
H Entraînement de vente B,E 2
I Tarification H 1
J Rapport de projet F, G, I 1
Tableau VI.2 – Tâches d’un projet commercial

116
VI.3 Flot dans un réseau

Nous trouvons les différences tâches, et leurs dépendances, suivant le graphe de la Figure
VI.5.

Figure VI.5 – Graphe du projet commercial

Il est facile de voir que le chemin critique, de longueur 13, vaut

O ≠æ A ≠æ D ≠æ G ≠æ J. (VI.1)

Autrement, le projet prendra au minimum 13 mois, et les activités critiques sont, dans l’ordre, la
conception du produit, la mise au point du prototype, son test et le rapport de projet. Les autres
tâches peuvent s’effectuer en parallèle (en respectant les contraintes de précédence). Le nœud O
ne correspond à aucune activité, mais permet de définir un point d’entrée dans le graphe. Le
point de sortie peut être identifié à J car c’est l’unique activité terminale. Si plusieurs activités
ont lieu de manières concomitantes en fin de projet, il n’y a pas d’activité terminale que nous
pourrions identifié. Dans ce cas, nous ajoutons un nœud artificiel, disons T , et traçons un arc
depuis chaque activité de fin vers ce nœud terminal T . Chaque arc portera le pondération à 0,
ainsi nous ne modifions pas la durée du projet de manière arbitraire.

3.5 Algorithme de Prim (1957)


Il s’agit à nouveau d’une approche itérative. L’algorithme est initialisé en choisissant un sommet
i (arbitrairement) et en le reliant au sommet j le plus proche. En d’autres termes, nous ajoutons

117
VI. Réseaux

l’arête {i, j}. À chaque itération, nous choisissons le sommet non relié j le plus près d’un des
sommets déjà reliés i et nous ajoutons {i, j}. Nous nous arrêtons lorsque tous les sommets ont
été reliés. En cas d’égalité, nous pouvons choisir arbitrairement. De telles égalités indiquent
qu’il pourrait y avoir plusieurs solutions optimales.

Exemple 43 . Considérons à nouveau l’exemple 38

1. L’initialisation consiste à choisir le sommet O et à le relier au sommet le plus près : on


ajoute {O, A}.

2. Le sommet non relié le plus près de O ou de A est B ; comme il est plus près de A, on
ajoute {A, B}.

3. Le sommet non relié le plus près de O, de A ou de B est C ; puisqu’il est plus près de B,
on ajoute {B, C}.

4. Le sommet non relié le plus près d’un des sommets reliés est E ; nous ajoutons l’arête
{B, E},

5. Le sommet non relié le plus près d’un des sommets reliés (E) est D ; nous ajoutons l’arête
{E, D}

6. Le sommet non relié le plus près d’un des sommets reliés (D) est T ; nous ajoutons l’arête
{D, T }. Tous les sommets sont à présent reliés, aussi, nous nous arrêtons. La valeur
optimale correspond à la somme des distances des arêtes ajoutées, soit 14.

L’arbre partiel minimum est représenté en rouge dans la Figure VI.6.

118
VI.4 Problème du flot maximum

Figure VI.6 – Arbre partiel minimum

4 Problème du flot maximum


Considérons un graphe orienté et connexe. À chaque arc (i, j), nous associons une capacité
uij > 0. Il y a deux sommets spéciaux :
— source (ou origine) O ;
— puits (ou destination) T .
Tous les autres sont des sommets de transfert. L’offre en O et la demande en T sont variables.
L’offre en O doit cependant correspondre à la demande en T , et indique la valeur du flot entre
O et T . Nous cherche à maximiser la valeur du flot entre O et T .
Supposons que nous avons déjà affecté un flot sur les arcs. La capacité résiduelle d’un arc (i, j)
est comme
uij ≠ xij

Nous définissons le graphe résiduel comme le graphe non orienté sous-jacent, où, sur chaque
arête, nous associons deux valeurs : la capacité résiduelle et le flot déjà affecté.

Exemple 44 (Parc Seervada). Continuons avec l’exemple 38, mais en considérant à présent
un graphe orienté, comme sur la Figure VI.7. Supposons qu’en période de grande affluence, nous
disposions d’une flotte d’autobus pour faire visiter les différents postes d’observation du parc.

119
VI. Réseaux

La réglementation limite le nombre d’autobus pouvant circuler sur chaque tronçon de route.
Comment faire circuler les autobus dans le parc de façon à maximiser le nombre total d’autobus
allant de l’origine (O) à la destination (T ) ?

Figure VI.7 – Parc Seervada

Exemple : nous avons affecté 5 unités de flot sur l’arc (O,B), de capacité 7.

Interprétation du graphe résiduel : nous avons affecté 5 unités de flot sur l’arc (O, B). Si nous
traverse O ≠æ B, 2 est la capacité résiduelle et le flot sur (O, B) vaut 5. Si nous traverse
B ≠æ O, la capacité résiduelle est 5 et le flot sur (B, O) vaut 2.

Un chemin d’augmentation est un chemin allant de la source au puits dans le graphe orienté
dérivé du graphe résiduel. Pour chaque arête {i, j}, l’arc (i, j) possède une capacité résiduelle
uij ≠ xij , et l’arc (j, i) possède une capacité résiduelle xij . Chaque arc du chemin possède une
capacité résiduelle strictement positive. La capacité résiduelle d’un chemin d’augmentation est
le minimum des capacités résiduelles de tous les arcs du chemin.

4.1 Algorithme de Ford-Fulkerson


Algorithm 5.3 : Ford-Fulkerson

1. Initialiser le flot : 0 unité sur chaque arc.

120
VI.4 Problème du flot maximum

2. Si aucun chemin d’augmentation ne peut être identifié, arrêter : le flot est maximum.
3. Identifier un chemin d’augmentation P ; soit c sa capacité résiduelle.
4. Sur chaque arc de P

(a) augmenter le flot de c ;


(b) diminuer la capacité résiduelle de c.

5. Retourner à l’étape 2.

Algorithm 5.4 : Identifier un chemin d’augmentation

1. Marquer la source O (aucun autre sommet n’est marqué) ; tous les sommets sont non
visités.
2. S’il n’y a aucun sommet marqué non visité, arrêter : il n’existe aucun chemin d’augmen-
tation.
3. Choisir un sommet marqué non visité i.
4. Visiter i : pour chaque (i, j) de capacité résiduelle strictement positive dans le graphe
orienté dérivé du graphe résiduel, marquer j.
5. Si T est marqué, arrêter : un chemin d’augmentation a été identifié.
6. Retour à l’étape 2.

Exemple 45 (Parc Seervada : suite).


0. Le graphe résiduel initial est représenté sur la Figure ??.

Figure VI.8 – Parc Seervada : initialisation.

121
VI. Réseaux

1. Nous pouvons identifier le chemin d’augmentation O ≠æ B ≠æ E ≠æ T . La capacité


résiduelle vaut alors min{7, 5, 6} = 5. En suivant l’algorithme, nous augmentons le flot
et diminuons la capacité résiduelle de 5 unités sur tous les arcs de O ≠æ B ≠æ E ≠æ T
, ce qui conduit au graphe de la Figure VI.9.

Figure VI.9 – Parc Seervada : itération 1.

2. Nous pouvons à présent identifier le chemin d’augmentation O ≠æ A ≠æ D ≠æ T , qui


donne une capacité résiduelle de min{5, 3, 9} = 3. Nous augmentons le flot et diminuons
la capacité résiduelle de 3 unités sur tous les arcs de O ≠æ A ≠æ D ≠æ T , comme
représenté sur la Figure VI.10.

Figure VI.10 – Parc Seervada : itération 2.

3. Nous avons le chemin d’augmentation O ≠æ A ≠æ B ≠æ D ≠æ T , et la capacité

122
VI.4 Problème du flot maximum

résiduelle min{2, 1, 4, 6} = 1. Augmentons le flot et diminuons la capacité résiduelle de


1 unité sur tous les arcs de O ≠æ A ≠æ B ≠æ D ≠æ T , pour obtenir la Figure VI.11.

Figure VI.11 – Parc Seervada : itération 3.

4. Identifions le chemin d’augmentation O ≠æ B ≠æ D ≠æ T , ce qui donne comme


apacité résiduelle min{2, 3, 5} = 2. Nous augmentons le flot et diminuer la capacité
résiduelle de 2 unités sur tous les arcs de O ≠æ B ≠æ D ≠æ T , ce qui conduite à la
Figure VI.12.

Figure VI.12 – Parc Seervada : itération 4.

5. Prenons le chemin d’augmentation O ≠æ C ≠æ E ≠æ D ≠æ T , avec comme capacité


résiduelle min{4, 4, 1, 3} = 1. Ceci nous conduit à augmenter le flot et diminuer la
capacité résiduelle de 1 unité sur tous les arcs de O ≠æ C ≠æ E ≠æ D ≠æ T . Nous
obtenons ainsi le graphe de la Figure VI.13.

123
VI. Réseaux

Figure VI.13 – Parc Seervada : itération 5.

6. Nous pouvons choisir le chemin d’augmentation O ≠æ C ≠æ E ≠æ T . La capacité


résiduelle est min{3, 3, 1} = 1. En augmentant le flot et en diminuant la capacité rési-
duelle de 1 unité sur tous les arcs de O ≠æ C ≠æ E ≠æ T , nous obtenons la Figure
VI.14.

Figure VI.14 – Parc Seervada : itération 6.

7. Considérons le chemin d’augmentation : O ≠æ C ≠æ E ≠æ B ≠æ D ≠æ T ,


de capacité résiduelle min{2, 2, 5, 1, 2} = 1. Par conséquent, nous augmenter le flot et
diminuons la capacité résiduelle de 1 unité sur tous les arcs de O ≠æ C ≠æ E ≠æ
B ≠æ D ≠æ T , ce qui donne la Figure VI.15.

124
VI.4 Problème du flot maximum

Figure VI.15 – Parc Seervada : itération 7.

8. Il n’y a plus aucun chemin d’augmentation possible ; nous avons atteint le flot maximum,
lequel est réparti comme représenté sur la Figure VI.16.

Figure VI.16 – Parc Seervada : fin.

4.2 Flot maximum - Coupe minimum


Supposons que nous partitionnions l’ensemble des sommets en deux sous-ensembles X, Y . Une
coupe est un sous-ensemble d’arcs allant d’un sommet de X vers un sommet de Y . La capacité
d’une coupe est la somme des capacités des arcs de la coupe. Une coupe minimum est une coupe
dont la capacité est minimum parmi toutes les coupes possibles. Le théorème flot max–coupe
min dit que la valeur du flot maximum est égale à la capacité d’une coupe minimum. Les

125
VI. Réseaux

sommets marqués lors de la dernière itération de l’algorithme de Ford-Fulkerson définissent la


coupe minimum, comme illustré sur la Figure VI.17 pour l’exemple du parc Seervada.

Figure VI.17 – Parc Seervada : coupe minimum.

5 Problème de flot minimum

Plutôt que de maximiser le flot sur le réseau, nous pourrions chercher à trouver la façon la
plus économique d’envoyer un certain flot à travers un réseau. Considérons un réseau de flot
G(N, A), avec une source s œ N et un puits t œ N . On veut envoyer le flux d de s à t. Soient
l(i, j) le coût unitaire sur l’arête {i, i}, et f (i, j) le flot {i, j}.
Nous avons le problème linéaire
ÿ
min l(i, j)f (i, j),
i,jœN

f (i, j) Æ cij ,
f (i, j) = ≠f (j, i),
ÿ
f (i, k) = 0, ’k ”= s, t,
kœN
ÿ ÿ
f (i, k) = f (k, t) = d.
kœN kœN

126
VI.6 Exercices d’application et d’assimulation

6 Exercices d’application et d’assimulation


Exercice 1
1. Faire un résumé technique du chapitre.
2. Qu’en pensez vous de l’application de ces algorithmes dans la vie économique et Statis-
tique d’un pays.

Exercice 2
La coopérative LAFRUITIERE collecte le lait de 7 exploitations de montagne. La situation
géographique est représentéeparle graphe ci-dessous, noté GL .Lacoopérative est située au som-
met A,les autres sommets B,C, D, E, F, G et H représentent les différentes exploitations ;
les arêtes représentent le réseau routier reliant ces exploitations.Les arêtes sont pondérées par
les distances entre les exploitations, exprimées en kilomètres. La coopérative doit collecter du
lait provenant de l’exploitation D ; quel est le plus court parcours pour se rendre de A à D ?
Justifier.

Exercice 3
On considère le projet suivant :

Tâche A B C D E F G H
Antériorité . . .. . . . . .. . . . . .. . . A B C E,D E,F
Durée 5 3 4 4 5 2 2 4

1. Déterminer les successeurs de chaque tâche ;

127
VII. Modèles stochastiques

2. Déterminer les niveaux des tâches ;


3. Tracer le graphe PERT et calculer les dates au plus tôt et les dates au plus tard pour
chaque tâche ;
4. Calculer les marges libres et les marges totales et en déduire les tâches critiques ;
5. Déterminer le chemin critique ;

7 Notes
Ce chapitre se base partiellement sur les notes de cours de Bernard Gendron, 2007. La section
sur les plus cours chemins repose également sur du matériel de cours mis en ligne par Otfried
Cheong.

128
Chapitre VII

Modèles stochastiques

1 Concepts de base
Une expérience aléatoire est une expérience dont le résultat n’est pas connu avec certitude.
Supposons que tous les résultats possibles de cette expérience soient connus. L’espace d’échan-
tillonnage Ê est cet ensemble de résultats possibles d’une expérience aléatoire.

Exemple 46 (Espace d’échantillonnage).


— Tirage d’une pièce de monnaie : = {P, F }.
— Lancement d’un dé : = {1, 2, 3, 4, 5, 6}.
— Temps écoulé avant l’arrivée d’un premier client dans un magasin ouvert durant 8 heures,
depuis son ouverture : = [0, 8].

Un événement E est un sous-ensemble de l’espace échantillonnage. Supposons que nous répé-


tions l’expérience aléatoire un grand nombre de fois (n), et que l’événement E se produise m
fois. La probabilité associée à l’événement E peut être approchée comme :

m
P [E] ƒ (VII.1)
n

Une définition empirique de la probabilité de E est (en version fréquentiste)

m
P [E] = lim (VII.2)
n≠æŒ n

De manière plus formelle

Définition 1 P est une mesure de probabilité si


— 0 Æ P [E] Æ 1, pour tout E µ ;
— P [ÿ] = 0 et P [ ] = 1 ;
— P [E1 fi E2 ] = P [E1 ] + P [E2 ], si E1 et E2 sont disjoints (i.e. E1 fl E2 = ÿ).

129
VII. Modèles stochastiques

Exemple 47 . Tirage d’une pièce de monnaie : P [{P }] = P [{F }] = 0.5.

L’occurrence un événement E1 se produit peut influencer la probabilité d’un autre événement


E2 . Par exemple, la probabilité qu’il pleuve demain (E2 ) est plus élevée s’il pleut aujourd’hui
(E1 ) que s’il ne pleut pas. Si P [E1 ] > 0, nous définissons la probabilité conditionnelle associée
à l’événement E2 , étant donné E1 , comme :

P [E1 fl E2 ]
P [E2|E1] = (VII.3)
P [E1 ]

La probabilité conditionnelle jouit des propriétés suivantes :


— 0 Æ P [E2 |E1 ] Æ 1 ;
— P [ÿ|E1 ] = 0 et P [ |E1 ] = 1 ;
— P [E2 fi E3 |E1 ) = P [E2 |E1 ] + P [E3 |E1 ], si E2 et E3 sont disjoints.
Deux événements E1 et E2 sont indépendants si

P [E2 |E1 ] = P [E2 ]. (VII.4)

De manière alternative, nous pouvons utiliser les définition suivantes :

P [E1 |E2 ] = P [E1 ]P [E1 fl E2 ] = P [E1 ]P [E2 ].

En général, nous postulons l’indépendance de deux événements pour se servir des définitions
ci-dessus, plutôt que de déduire l’indépendance de deux événements à partir des définitions.K
événements E1 , E2 , . . . , Ek sont indépendants si

P [E1 fl E2 fl · · · fl Ek ] = P [E1 ]P [E2 ] . . . P [Ek ]. (VII.5)

2 Variable aléatoire
Une variable aléatoire X est une fonction qui associe une valeur numérique X(s) à chaque
élément s de l’espace d’échantillonnage :

X: ≠æ R. (VII.6)

Il existe deux types principaux de variables aléatoires :


— variable aléatoire continue : valeurs réelles ;

130
VII.2 Variable aléatoire

— variable aléatoire discrète : valeurs entières ou nombre fini de valeurs.

Exemple 48 (Lancer de dés). Considérons l’expérience aléatoire du lancer de deux dés.


L’espace d’échantillonnage est = {(1, 1), (1, 2), . . . , (6, 6)}. Une variable aléatoire X serait la
somme des résultats des deux dés. Ainsi, par exemple,

1 6 1
P [X = 2] = P [s œ : X(s) = 2] = P [(1, 1)] = P [X = 2] = P [s œ : X(s) = 2] = P [(1, 1)] = =
36 36 6

La fonction de répartition associée à une variable aléatoire X est définie comme

FX (b) = P [X Æ b] = P [s œ |X(s) Æ b], (VII.7)

Elle a comme propriétés :


— non décroissante ;
— lim ≠æ ≠ŒFX (b) = 0 et lim ≠æ ŒF X(b) = 1 ;
b b
— P [a < X Æ b] = FX (b) ≠ FX (a), vu que

{s œ : X(s) Æ b} = {s œ : X(s) Æ a} fi {s œ : a < X(s) Æ b}.

Exemple 49 (Lancer de dés). Soit X la somme des résultats des deux dés. Nous avons

FX (1) = P [X Æ 1] = 0;
1
FX (2) = P [X Æ 2] = P [X = 2] =
36
6 1
FX (4) = P [X Æ 4] = P [X = 2] = =
36 6
FX (12) = P [X Æ 12] = 1.

2.1 Variables aléatoires discrètes


La fonction de masse associée à une variable aléatoire X est définie comme

PX (k) = P [X = k] = P [s œ : X(s) = k]. (VII.8)

Pour une variable aléatoire discrète, nous avons


ÿ ÿ
FX (b) = P [X Æ b] = P [X = k] = PX (k) (VII.9)
kÆb XÆb

131
VII. Modèles stochastiques

aussi,
P [a < X < b] = F X(b) ≠ FX (a) ≠ PX (b). (VII.10)

Exemple 50 (Lancer de dés). Soit X la somme des résultats des deux dés. Alors,

1
FX (2) = P [X Æ 2] = P [X = 2] = P X(2) =
36
6 1
FX (4) = P [X Æ 4] = P [X = 2] + P [X = 3] + P [X = 4] = PX (2) + PX (3) + PX (4) = =
36 6

2.2 Variables aléatoires continues

Une variable aléatoire X est continue si sa fonction de répartition peut être représentée ainsi :

⁄b
FX (b) = fx (x)dx (VII.11)
≠Œ

La fonction sous l’intégrale est appelée fonction de densité et satisfait les conditions suivantes :

fx (x) Æ 0, ’x;
⁄Œ
fx (x)dx = 1
≠Œ

Si la fonction de densité est continue, alors elle est égale à la dérivée de la fonction de répartition :

dFX
fX (x) =(x) (VII.12)
dx
La fonction de masse prend toujours la valeur 0 :

P X(x) = 0, ’x. (VII.13)

Pour tout intervalle de la forme < a, b >, nous avons également

⁄b
P [X œ< a, b >] = f (x)dx = FX (b) ≠ FX (a). (VII.14)
a

132
VII.2 Variable aléatoire

2.3 Espérance mathématique


L’espérance mathématique (moyenne) associée à une variable aléatoire X est dénotée E[X] et
définie comme suit :
Y q q
_
_
] PX (k) = P [X = k] si X est discrète,
E[X] = k k

_
_
[ fx (x)dx si X est continue.
≠Œ

Exemple 51 (Lancer de deux dés). Soit X la somme des résultats des deux dés.
ÿ ÿ
E[X] = P [X = k] = kP [X = k] = 7. (VII.15)
k k=2

Nous pouvons également considérer l’espérance d’une fonction g(X). Si X est une variable
aléatoire discrète, cela donne
ÿ
E[g(X)] = g(k)PX (k). (VII.16)
k

Pour une variable continue, nous aurons

⁄Œ
E[g(X)] = g(X)fX (x)dx. (VII.17)
≠Œ

En particulier, nous avons, si aR et X, Y sont deux variables aléatoires,

E[aX] = aE[X],
E[X + Y ] = E[X] + E[Y ].

2.4 Variance
La variance associée à une variable aléatoire X, dénotée ‡ 2 (X), est définie par la formule

‡ 2 (X) = E[X 2 ] ≠ E[X]2 = E[(X ≠ E[X])2 ]. (VII.18)

Exemple 52 (Lancer de deux dés). Soit X la somme des résultats des deux dés.
ÿ
‡ 2 (X) = E[X 2 ] ≠ E[X]2 = k 2 P [X = k] ≠ E[X]2 ƒ 5.833. (VII.19)
k

133
VII. Modèles stochastiques

3 Loi de probabilité
Une loi de probabilité est un modèle d’une expérience aléatoire. Elle est habituellement repré-
sentée par la fonction de répartition d’une variable aléatoire. Si cette dernière est discrète, la
loi de probabilité est dite discrète. Une loi de probabilité discrète peut être représentée par sa
fonction de masse. Si la variable aléatoire est continue, la loi de probabilité est dite continue,
et peut être représentée par sa fonction de densité.

3.1 Loi de Bernouilli


L’espace d’échantillonnalle se limite à deux éléments, dénotés par exemple par = {S, E}.
Nous définissons la variable aléatoire X comme suit :

X(S) = 1 et X(E) = 0. (VII.20)

La fonction de masse est


PX (1) = p et PX (0) = 1 ≠ p, (VII.21)

où p est un paramètre. De manière équivalente, nous pouvons l’écrire comme

PX (x) = px (1 ≠ p)1≠x . (VII.22)

Nous avons de plus


E[X] = p et ‡ 2 (X) = p(1 ≠ p). (VII.23)

Par exemple, le tirage d’une pièce de monnaie suit une loi de Bernouilli, avec p = 1/2.

3.2 Loi uniforme


Une variable aléatoire continue X (qui prend ses valeurs dans l’intervalle [a, b]) suit une loi
uniforme (notée U [a, b]) si sa fonction de densité est :

1
f X(x) = , ’x œ [a, b]. (VII.24)
b≠a

Celle loi modélise l’expérience aléatoire consistant à choisir au hasard un point de [a, b] (la
probabilité de choisir un point dans un sous-intervalle est proportionnelle à la longueur de ce
sous-intervalle).

134
VII.3 Loi de probabilité

Si X est une variable aléatoire continue (quelconque), nous avons la propriété suivante :

FX (x) ≥ U [0, 1]. (VII.25)

3.3 Loi de Poisson

Une variable aléatoire X suivant une loi de Poisson est une variable aléatoire qui sert à compter
le nombre d’apparitions d’un phénomène aléatoire durant un intervalle de temps de longueur
t. Il pourrait s’ agit par exemple du nombre d’appels reçus par un téléphoniste. X a alors pour
fonction de masse
◊tk e≠◊ t
P X(k) = P [X = k] = , k = 0, 1, 2, ..., (VII.26)
k!
où ◊ représente le taux moyen.

Exemple 53 (Téléphoniste). Un téléphoniste reçoit en moyenne 2 appels par minute ; quelle


est la probabilité de recevoir moins de 5 appels en 4 minutes ? Nous avons

4 4
ÿ ÿ 8k e≠8
P [X < 5] = PX (k) = ƒ 0.1. (VII.27)
k=0 k=0 k

3.4 Loi exponentielle

Soit une variable aléatoire X représentant le temps d’attente entre deux apparitions du phéno-
mène aléatoire en supposant que le nombre d’apparitions durant un intervalle t suit une loi de
Poisson de paramètre ◊. La fonction de répartition vérifie alors

1 ≠ FX (x) = P [X > x] = e≠◊x , x Ø 0. (VII.28)

Il s’agit de la loi exponentielle de fonction de densité :


Y
] ◊e≠◊x si x > 0,
fX (x) =
[ 0 sinon.

L’espérance mathématique est :


1
E[X] = (VII.29)

C’est le taux moyen entre deux apparitions du phénomène aléatoire.

135
VII. Modèles stochastiques

4 Modèles stochastiques

Un système stochastique est un système évoluant de manière probabiliste dans le temps. Les
exemples sont nombreux, avec par exemple la température quotidienne ou un centre d’appels
téléphoniques. Un modèle stochas- tique est une représentation mathématique d’un système sto-
chastique. Nous verrons brièvement deux cas classiques de modèles stochastiques : les processus
stochastiques et les files d’attente.

4.1 Processus stochastiques

Un processus stochastique est une suite de variables aléatoires évoluant dans le temps, que nous
dénoterons {Xt }, t œ T . En général, T est un ensemble discret : T = {0, 1, 2, . . .}. De plus,
chaque variable aléatoire peut prendre une valeur parmi M + 1 états : Xt œ {0, 1, . . . , M }.

Exemple 54 (Précipitations quotidiennes).


Y
] 1 s’il y a des précipitations,
Xt =
[ 0 s’il n’y a pas de précipitations.

4.2 Chaînes de Markov

Un processus stochastique est une chaîne de Markov s’il possède la propriété markovienne :

P [Xt+1 = j|X0 = k0 , X1 = k1 , . . . , Xt≠1 = kt≠1 , Xt = i] = P [Xt+1 = j|Xt = i]. (VII.30)

Cette propriété signifie que la probabilité d’un événement futur, étant donné des événements
passés et un état au temps présent, ne dépend pas du passé, mais uniquement de l’état actuel.
La probabilité de transition entre les états i et j est définie comme

pij = P [Xt+1 = j|Xt = i]. (VII.31)

Cette probabilité de transition est dite stationnaire si :

P [Xt+1 = j|Xt = i] = P [X1 = j|X0 = i], t = 1, 2, . . . (VII.32)

136
VII.4 Modèles stochastiques

Puisqu’il s’agit de probabilité, nous devons en outre avoir

pij Ø 0, i, j œ {0, 1, . . . , M };
M
ÿ
pij = 1 Ø 0, i œ {0, 1, . . . , M }.
j=0

A partir des probabilités de transition, nous pouvons construire


— La matrice des transitions, ayant M + 1 rangées (les états présents) et M + 1 colonnes
(les états futurs), chaque entrée (i, j) de la matrice correspondant à pij .
— Le graphe (ou diagramme) des transitions, ayant M + 1 sommets et tel qu’il y a un arc
entre les états i et j si pij > 0.

Exemple 55 (Précipitations). Supposons que la probabilité qu’il n’y ait pas de précipitations
à Montréal demain, étant donné :
— qu’il n’y en a pas aujourd’hui est 0.8 ;
— qu’il y en a aujourd’hui : 0.6.
Ces probabilités ne changent pas, même si nous tenons compte de ce qui se passe avant aujour-
d’hui. La propriété markovienne est satisfaite :

P [Xt+1 = 0|X0 = k0 , X1 = k1 , . . . , Xt≠1 = kt≠1 , Xt = 0] = P [Xt+1 = 0|Xt = 0]


P [Xt+1 = 0|X0 = k0 , X1 = k1 , . . . , Xt≠1 = kt≠1 , Xt = 1] = P [Xt+1 = 0|Xt = 1]

Nous avons donc une chaîne de Markov dont les probabilités de transition sont :

p00 = P [Xt+1 = 0|Xt = 0] = 0.8,


p10 = P [Xt+1 = 0|Xt = 1] = 0.6.

Grâce aux propriétés des probabilités de transition, nous pouvons déduire celles qui manquent :

p01 = P [Xt+1 = 1|Xt = 0] = 1 ≠ 0.8 = 0.2.


p11 = P [Xt+1 = 1|Xt = 1] = 1 ≠ 0.6 = 0.4.

Ceci donne la matrice de transition :


Q R
0.8 0.6b
[P ] = a
0.2 0.4

137
VII. Modèles stochastiques

Le graphe de transition est quant à lui représenté sur la Figure VII.1.

Figure VII.1 – Graphe de transition

Exemple 56 (Marché boursier). A la fin de chaque jour, nous enregistre le prix de l’action
de Google au marché de WallStreet :
Y
] 1 si le prix de l’action n’a pas augmenté à la fin du jour t ;
Xt =
[ 0 si le prix de l’action a augmenté à la fin du jour t.

Nous supposons de plus que la probabilité que le prix augmente demain étant donné qu’il a
augmenté aujourd’hui est de 0.7, et qu’il n’a pas augmenté aujourd’hui, 0.5. Nous avons une
chaîne de Markov avec comme matrice de transition :
Q R Q R
p00 p01 b a0.7 0.3 b
[P ] = a =
p10 p11 0.5 0.54

Supposons maintenant que la probabilité que le prix de l’action augmente demain dépend non
seulement de ce qui est arrivé aujourd’hui, mais également de ce qui est arrivé hier. Le pro-
cessus stochastique défini précédemment n’est alors plus une chaîne de Markov. Nous pouvons
néanmoins nous en sortir en introduisant un état pour chaque combinaison d’états possibles
sur deux jours consécutifs. Nous définissons alors le processus stochastique suivant, où l’indice
t représente deux jours consécutifs :
Y
_
_
_
_
0 si le prix de l’action a augmenté hier et aujourd’hui ;
_
_
] 3 si le prix de l’action n’a pas augmenté, ni hier, ni aujourd’hui ;
Xt = _
_
_
_
2 si le prix de l’action a augmenté hier, mais pas aujourd’hui ;
_
_
[ 1 si le prix de l’action a augmenté aujourd’hui, mais pas hier.

Remarquons qu’il est impossible de passer de l’état 0 au temps t à l’état 1 au temps t + 1, car
Xt = 0, si le prix augmente hier et aujourd’hui, et Xt+1 = 1, si le prix augmente demain, mais

138
VII.5 Exercices d’application et d’assimulation

pas aujourd’hui. La probabilité que le prix de l’action augmente demain vaut


— s’il a augmenté hier et aujourd’hui : 0.9 ;
— s’il a augmenté aujourd’hui, mais pas hier : 0.6 ;
— s’il a augmenté hier, mais pas aujourd’hui : 0.5 ;
— s’il n’a pas augmenté, ni hier, ni aujourd’hui : 0.3.
La matrice de transition est
Q R
c
0.9 0 0.1 0d
c d
c0.6 0 0.4 0d
[P ] = c
c
d
d
c 0 0.5 0 0.5d
a b
0 0.3 0 0.7

5 Exercices d’application et d’assimulation


1. Faire un résumé technique du chapitre.
2. Démontrez à document fermé les formules, les théorèmes et les propositions étudiés dans
ce chapitre.
3. Qu’en pensez vous de l’application de ces lois dans la vie économique et Statistique d’un
pays.

6 Notes
Ce chapitre se base essentiellement sur les notes de cours de Bernard Gendron, 2007.

139
VIII. Programmation dynamique

140
Chapitre VIII

Programmation dynamique

Supposons un problème décomposé en étapes. Chaque étape possède un certain nombre d’états
correspondant aux conditions possibles au début d’une étape. A chaque étape, nous devons
prendre une décision qui associe à l’état courant l’état au début de la prochaine étape. Dans
le cas d’un problème d’optimisation, la programmation dynamique identifie une politique opti-
male : une décision optimale à chaque étape pour chaque état possible.

1 Principe d’optimalité de Bellman


Étant donné un état courant, la politique optimale pour les étapes à venir est indépendante des
décisions prises aux étapes précédentes. Lorsque ce principe est satisfait, nous pouvons recourir
à l’approche suivante pour résoudre un problème ayant N étapes :
— identifier une décision optimale pour la dernière étape (N ) ;
— pour chaque étape n, de N ≠1 à 1 : étant donné une politique optimale pour l’étape n+1,
identifier une politique optimale pour l’étape n au moyen d’une relation de récurrence.
Lorsque n = 1, nous obtenons une politique optimale pour le problème.
Nous utiliserons les notations suivantes :
— N : nombre d’étapes ;
— n : indice de l’étape courante ;
— sn : état au début de l’étape n ;
— xn : variable de décision associée à l’étape n ;
— fn (sn , xn ) : contribution des étapes n, n + 1, . . . , N à la valeur de l’objectif lorsqu’on
se trouve à l’état sn au début de l’étape n, que la décision est xn , et que des décisions
optimales sont prises par la suite ;
— xún : solution optimale à l’étape n ;
— fnú (sn ) = fn (sn , xún ) = min{fn (sn , xn )} ou max{fn (sn , xn )}.

141
VIII. Programmation dynamique

A chaque itération de la méthode, on construira un tableau représentant


— a liste des états possibles à l’étape n ;
— les valeurs possibles de la variable xn ;
— la contribution à la valeur de l’objectif fn (sn , xn ) ;
— la valeur optimale fnú (sn ) et la solution optimale xún .

Exemple 57 (Production-inventaire). Une compagnie doit fournir à son meilleur client


trois unités du produit P durant chacune des trois prochaines semaines. Les coûts de production
sont donnés dans la Table VIII.1. Le coût pour chaque unité produite en temps supplémentaire
est 100$ de plus que le coût par unité produite en temps régulier. Le coût unitaire d’inventaire est
de 50$ par semaine. Au début de la première semaine, il y a 2 unités du produit dans l’inventaire.
La compagnie ne veut plus rien avoir dans son inventaire au bout des trois semaines. Combien
doit-on produire d’unités à chaque semaine afin de rencontrer la demande du client, tout en
minimisant les coûts ?

Semaine Production max, temps ré- Production max, Coût unitaire,


gulier temps supp. temps régulier
1 2 2 300$
2 3 2 500$
3 1 2 400$
Tableau VIII.1 – Coûts de production

Une étape correspond ici à une semaine, N = 3, n = 1, 2, 3, et


— sn , l’état au début de la semaine n, est le nombre d’unités de produit dans l’inventaire ;
— xn : nombre d’unités produites lors de la semaine n ;
— sn+1 = sn + xn≠3 (puisque nous devons livrer 3 unités au client à chaque semaine) ;
— s1 = 2 (puisqu’il y a 2 unités au début).
Soient cn , le coût unitaire de production au cours de la semaine n, rn la production maximale
en temps régulier pendant la semaine n, et mn la production maximale durant la semaine n. Le
coût au cours de la semaine n est

pn (sn , xn ) = cn xn + 100 max(0, xn ≠ rn ) + 50 max(0, sn + xn≠3 ). (VIII.1)

142
VIII.1 Principe d’optimalité de Bellman

Le coût total vaut dés lors

fn (sn , xn ) = pn (sn , xn ) + fn+1


ú
(sn+1 ), (VIII.2)

et le coût optimal répond à la récurrence

fnú (sn ) = min{pn (sn , xn ) + fn+1 (sn+1 )|3 ≠ sn Æ xn Æ mn }. (VIII.3)

Si n = 3, nous devons poser


f4ú (s4 ) = 0.

De plus,
s4 = 0 = s3 + x3 ≠ 3,

aussi
x 3 = 3 ≠ s3 .

Calculons d’abord les valeurs f3ú (s3 ) et xú3 . Nous obtenons le tableau

Voyons maintenant comment nous pouvons calculer les valeurs f2ú (s2 ) et xú2 , lorsque s2 = 0.
Nous devons avoir x2 Ø 3 (car nous devons livrer au moins 3 unités du produit). D’autre part,

f2 (0, 3) = p2 (0, 3) + f3ú (0) = 1500 + 1400 = 2900,


f2 (0, 4) = p2 (0, 4) + f3ú (1) = 2150 + 900 = 3050,
f2 (0, 5) = p2 (0, 5) + f3ú (2) = 2800 + 400 = 3200,
f2ú (0) = min f2 (0, 3), f2 (0, 4), f2 (0, 5) = f2 (0, 3).

Par conséquent, xú2 = 3. Nous procédons de la même manière pour s2 = 1, 2, 3.

143
VIII. Programmation dynamique

Pour la première étape (n = 1), nous avons s1 = 2 (il y a 2 unités au départ dans l’inventaire).
Nous devons donc avoir x1 Ø 1. De plus,

f1 (2, 1) = p1 (2, 1) + f2ú (0) = 300 + 2900 = 3200,


f1 (2, 2) = p1 (2, 2) + f2ú (1) = 650 + 2400 = 3050,
f1 (2, 3) =p1 (2, 3) + f2ú (2) = 1100 + 1900 = 3000,
f1 (2, 4) =p1 (2, 4) + f2ú (3) = 1550 + 1400 = 2950.

Par conséquent, f1ú (2) = f1 (2, 4) et xú1 = 4. Sous forme de tableau, cela donne :

La politique optimale est donc :

xú1 = 4, xú2 = 0, xú3 = 3 (VIII.4)

donnant lieu à s2 = 3, s3 = 0. Le coût total est f1ú (2) = 2950$.

Exemple 58 (Affectation de ressources). Trois équipes de recherche travaillent sur un


même problème avec chacune une approche différente. La probabilité que l’équipe Ei échoue est
P [E1 ] = 0.4, P [E2 ] = 0.6, P [E3 ] = 0.8. Ainsi, la probabilité que les trois équipes échouent
simultanément est : (0.4)(0.6)(0.8) = 0.192. Nous voulons ajouter deux autres scientifiques afin
de minimiser la probabilité d’échec. A quelles équipes faut-il affecter ces deux scientifiques afin
de minimiser la probabilité d’échec ? La Table VIII.2 représente les probabilités d’échec pour
chaque équipe en fonction du nombre de scientifiques ajoutés.

144
VIII.1 Principe d’optimalité de Bellman

Scientifiques E1 E2 E3
ajoutés
0 0.4 0.6 0.8
1 0.2 0.4 0.5
2 0.15 0.2 0.3
Tableau VIII.2 – Coûts de production

Nous faisons correspondre l’équipe n à l’étape n, pour n = 1, 2, 3 (N = 3). L’état sn est le


nombre de scientifiques non encore affectés. La décision xn correspond au nombre de scienti-
fiques affectés à l’équipe En . Soit pn (xn ) la probabilité d’échec de l’équipe En si xn scientifiques
lui sont affectés. Alors,

fn (sn , xn ) = pn (xn ).fn+1 (sn ≠ xn )


fnú (sn ) = min{fn (sn , xn )|xn = 0, 1, ..., sn },

avec f4ú (0) = 1. Calculons d’abord f3ú (s3 ) et xú3 . Nous devons avoir s3 = x3 (nous affectons
tous les scientifiques non encore affectés), de sorte que nous avons le tableau

Pour calculer les valeurs f2ú (s2 ) et xú2 , lorsque s2 = 1, observons d’abord que nous devons avoir
x2 Æ 1. Nous avons

f2 (1, 0) = p2 (1, 0) ◊ f3ú (1) = 0.6 ◊ 0.5 = 0.3,


f2 (1, 1) = p2 (1, 1) ◊ f3ú (0) = 0.4 ◊ 0.8 = 0.32,
f2ú (1) = min{f2 (1, 0), f2 (1, 1)} = f2 (1, 0).

Dés lors, xú2 = 0. Nous pouvons procéder de même pour s2 = 0 et 2. Ceci donne le tableau
ci-dessous.

145
VIII. Programmation dynamique

Pour la dernière étape (n = 1), nous avons s1 = 2 (il y a 2 scientifiques à affecter). Nous avons

f1 (2, 0) = p1 (2, 0) ◊ f2ú (2) = 0.4 ◊ 0.16 = 0.064,


f1 (2, 1) = p1 (2, 1) ◊ f2ú (1) = 0.2 ◊ 0.3 = 0.06,
f1 (2, 2) = p1 (2, 2) ◊ f2ú (0) = 0.15 ◊ 0.48 = 0.072.

Aussi, f1ú (2) = f1 (2, 1) et xú1 = 1.

La politique optimale est donc : xú1 = 1 (d’où s2 = 1), xú2 = 0 (d’où s3 = 1), xú3 = 1. La
probabilité d’échec est : f1ú (1) = 0.06.

2 Affectation de ressources
La programmation dynamique est souvent utilisée pour résoudre des problémes d’affectation
de ressources. C’était le cas dans notre dernier exemple, où il y avait une ressource à affecter
(les scientifiques). Que faire lorsqu’il y a plus d’une ressource ? Dans ce cas, chaque état est un
vecteur dont chaque coordonnée i représente la quantité de la ressource i non encore affectée.

Exemple 59 (probléme Wyndor Glass). Nous considérons deux types de produits (produit
1, produit 2) et trois usines (usine 1, usine 2, usine 3). La ressource i est la capacité de pro-
duction pour l’usine i, exprimée en heures par semaine. Nous connaissons le profit par lot (20
unités) de chaque produit, et chaque lot du produit 1 (2) est le résultat combiné de la produc-
tion aux usines 1 et 3 (2 et 3). Nous souhaitons déterminer le taux de production pour chaque
produit (nombre de lots par semaine) de façon à maximiser le profit total. Les données sont
reproduites dans la Table VIII.3. L’étape n sera le produit n, n = 1, 2 (N = 2). Nous avons
comme état sn (R1 , R2 , R3 )n , où Ri

146
VIII.2 Affectation de ressources

Produit 1 Produit 2 Capacité de pro-


(temps de pro- (temps de pro- duction (h)
duction, h/lot) duction, h/lot)
Usine 1 1 0 4
Usine 2 0 2 12
Usine 3 3 2 18
Profit($)/lot 3000 5000
Tableau VIII.3 – Allocation de ressources pour le problème Wyndor Glass

est la quantité de la ressource i (temps de production à l’usine i) non encore affectée. La décision
xn est le nombre de lots du produit n, et

fn (sn , xn ) = cn xn + fn+1 (sn+1 )(f3ú (s3 ) = 0),


f2ú (s2 ) = max{5x2 |2x2 Æ 12, 2x2 Æ 18 ≠ 3x1 , x2 Ø 0}
f1ú (s1 ) = max{3x1 + f2ú (s2 )|x1 Æ 4, 3x1 Æ 18, x1 Ø 0}

De plus,
s1 = (4, 12, 18), s2 = (4 ≠ x1 , 12, 18 ≠ 3x1 ).

Afin de résoudre le problème, nous cherchons d’abord f2ú (s2 ) et xú2 . Nous avons

f2ú (s2 ) = max{5x2 |2x2 Æ 12, 2x2 Æ 18 ≠ 3x1 , x2 Ø 0}. (VIII.5)

Les contraintes
2x2 Æ 12 et 2x2 Æ 18 ≠ 3x1 (VIII.6)

impliquent ; <
18 ≠ 3x1
x2 Æ min 6, (VIII.7)
2
Par conséquent ; ; <<
18 ≠ 3x1
f2ú (s2 ) = max 5x2 |0 Æ x2 Æ min 6, (VIII.8)
2
et ; <
18 ≠ 3x1
xú2 = min 6, (VIII.9)
2
Nous avons donc ; <
18 ≠ 3x1
f2ú (s2 ) = min 6, |3x1 Æ 18 (VIII.10)
2

147
VIII. Programmation dynamique

Calculons maintenant f1ú (s1 ) et xú1 . Nous avons

f1ú (s1 ) = max{3x1 + f2ú (s2 )|x1 Æ 4, 3x1 Æ 18, x1 Ø 0}. (VIII.11)

Or,
x1 Æ 4

implique
3x1 Æ 18.

; ; < <
18 ≠ 3x1
f1ú (s1 ) = max 3x1 + 5 min 6, |0 Æ x1 Æ 4 (VIII.12)
2
Or, Y
; <
18 ≠ 3x1 ] 6 si 0 Æ x1 Æ 2,
min 6, =
2 [ 18≠3x1
2
si 2 Æ x1 Æ 4.
Par conséquent,
f1ú (s1 ) = max{f1 (s1 , x1 )|0 Æ x ≠ 1 Æ 4}, (VIII.13)
Y
] 3x1 + 30 si 0 Æ x1 Æ 2,
f1 (s1 , x1 ) ==
[ 45 ≠ 92 x1 si 2 Æ x1 Æ 4.
Le maximum est atteint en xú1 = 2 et f1ú (s1 ) = 36.
Comme, de (X.1), ; <
18 ≠ 3x1
xú2 = min 6, ,
2
et xú1 = 2, nous avons xú2 = 6. La politique optimale est donc : xú1 = 2, xú2 = 6 de valeur
f1ú (s1 ) = 36. En utilisant la même approche, il est possible de résoudre par la programmation
dynamique des modèles où

— l’objectif ou les contraintes sont non linéaires ;


— certaines variables sont entières.

148
VIII.3 Programmation dynamique déterministe et plus court chemin

3 Programmation dynamique déterministe et plus court


chemin
Supposons que pour s1 fixé, nous voulions résoudre

N
ÿ ≠1

µ0
min
,...,µ
gN (xN ) + gk (sk , xk ). (VIII.14)
N ≠1
k=1

Nous pouvons calculer les décisions optimalesx1 , . . . , xN dès le départ, car aucune nouvelle
information n’est obtenue en cours de route. Si les ensembles d’états et de décisions sont finis
à chaque étape, résoudre ce problème équivaut à trouver un plus court chemin dans un réseau,
où les nœuds sont tous les états (k, sk ) possibles, pour 1 Æ k Æ N , auxquels nous ajoutons un
nœud artificiel t qui correspond à l’état où tout est terminé (étape N + 1). Pour chaque nœud
(k, sk ), k < N , et chaque décision xk , nous introduisons un arc de longueur g(sk , xk ) partant
du nœud (k, sk ) et allant au nœud (k + 1, sk+1 ), avec sk+1 = gk (sk , xk ). Chaque nœud (N, sN )
est relié au nœud t par un arc de longueur g(xN ). Nous cherchons alors un plus court chemin
de (0, s0 ) à t.

Si on numérote les nœuds couche par couche, par ordre croissant de valeur de k, on obtient un
réseau sans cycle et ordonné topologiquement (i.e., un arc (i, j) ne peut exister que si i < j).
Dans le cas où il n’est pas nécessaire de mémoriser le numéro d’étape, on peut simplifier le
réseau en agrégeant des nœuds. Le réseau résultant peut ne plus être ordonné topologiquement.
Inversement, tout problème de recherche d’un plus court chemin dans un réseau peut se formuler
comme un problème de programmation dynamique déterministe (avec des coûts additifs entre
étapes).

149
VIII. Programmation dynamique

4 Cas probabiliste

Dans la programmation dynamique probabiliste, la décision optimale à l’étape n dépend de la


loi de probabilité de l’état à l’étape n + 1. Ainsi, nous passerons de l’étape n à l’étape n + 1,
se retrouvant ainsi dans l’état i, avec une probabilité pi . Etant donné S états à l’étape n + 1,
nous aurons pi Ø 0 et
S
ÿ
pi = 1 (VIII.15)
i=1

La relation de récurrence dépend de cette loi de probabilité et de l’objectif à optimiser.

Exemple 60 (Jeu de hasard). Le jeu consiste à miser un nombre quelconque de jetons. Si


nous gagnons, nous remportons le nombre de jetons misés. Si nous perdons, nous perdons le
nombre de jetons misés. Un statisticien croit pouvoir gagner chaque jeu avec une probabilité
égale à 2/3. Ses collègues parient avec lui qu’en misant au départ 3 jetons, il aura moins de 5
jetons après 3 parties. Combien de jetons miser à chacune des 3 parties ? Le modèle peut se
formuler comme suit : l’étape n correspond à la partie n, n = 1, 2, 3(N = 3). L’état s n est le
nombre de jetons au début de la partie n, et la décision xn correspond au nombre de jetons à
parier à la partie n. Nous souhaitons maximiser la probabilité d’avoir au moins 5 jetons après
3 parties. Soit fn (sn , xn ) la probabilité de terminer avec au moins 5 jetons, étant donné que
nous sommes dans l’état sn à l’étape n, que nous misons xn jetons et que nous effectuons des
décisions optimales aux étapes n + 1, ..., N . Nous avons

fnú (sn ) = max{fn (sn , xn )|xn = 0, 1, ..., sn }. (VIII.16)

Étant donné que nous dans l’état sn à l’étape n et que nous misons xn jetons, nous pouvons :
— perdre et se retrouver dans l’état sn ≠ xn avec une probabilité 1/3 ;
— gagner et se retrouver à l’état sn + xn avec une probabilité 2/3.
Nous avons la fonction de récurrence

1 ú 2 ú
fn (sn , xn ) = fn+1 (sn ≠ xn ) + fn+1 (sn + xn ) (VIII.17)
3 3

De plus, Y
] 0 si s4 < 5,
f4ú (s4 ) =
[ 1 si s Ø 5.
4

Calculons d’abord f3ú (s3 ) et xú3 . Nous avons le tableau

150
VIII.4 Cas probabiliste

Voyons maintenant comment nous pouvons calculer les valeurs f2ú (s2 ) et xú2 , lorsque s2 = 3. Il
est clair que nous devons avoir x2 Æ 3. De plus,

1 2 2
f2 (3, 0) = f (3) + f (3) = ;
3 3 3
1 2 4
f2 (3, 1) = f (2) + f (4) = ;
3 3 9
1 2 2
f2 (3, 2) = f (1) + f (5) = ;
3 3 3
1 2 2
f2 (3, 3) = f (0) + f (6) = .
3 3 3

Ainsi,
f2ú (3) = max{f2 (3, 0), f2 (3, 1), f2 (3, 2), f2 (3, 3)} = f2 (3, 0). (VIII.18)

Dès lors, xú2 = 0, 2 ou 3. De la même façon, pour s2 , nous avons le tableau,

Pour la première étape (n = 1), nous avons s1 = 3, comme nous pouvons affecter 3 jetons au

151
VIII. Programmation dynamique

départ du jeu. Ceci donne le tableau

Dès lors

1 2 2
f2 (3, 0) = f (3) + f (3) = ;
3 3 3
1 2 20
f2 (3, 1) = f (2) + f (4) = ;
3 3 27
1 2 2
f2 (3, 2) = f (1) + f (5) = ;
3 3 3
1 2 2
f2 (3, 3) = f (0) + f (6) = .
3 3 3

et par conséquent,

f1ú (3) = max{f1 (3, 0), f1 (3, 1), f1 (3, 2), f1 (3, 3)} = f1 (3, 1).

Nous en déduisons
xú1 = 1.

La politique optimale est donc :


— xú1 = 1 ;
— Si nous gagnons (s2 = 4), xú2 = 1.
— Si nous gagnons (s3 = 5), xú3 = 0.
— Si nous perdons (s3 = 3), xú3 = 2 ou 3.
— Si nous perdons (s2 = 2), xú2 = 1 ou 2.
— Si nous gagnons (s3 = 3 ou 4), xú3 = 2 ou 3 (si xú2 = 1) ou 1 Æ xú3 Æ 4 (si xú2 = 2).
— Si nous perdons (s3 = 1 ou 0), xú3 Ø 0 (mais le pari est perdu !).

5 Exercices d’application et d’assimulation


Exercice 1
1. Faire un résumé technique du chapitre.

152
VIII.6 Notes

2. Qu’en pensez vous de l’application de ces lois dans la vie économique et Statistique d’un
pays.

Exercice 2
On se donne le schéma de la figure ci-dessous et on veut déterminer le tracé de coût minimal.

En utilisant le principe d’optimalité de Bellman, déterminer le chemin optimal et en déduire


son coût.

6 Notes
Ce chapitre se base essentiellement sur les notes de cours de Bernard Gendron, 2007. Le lien
avec les plus courts chemins est tiré du cours IFT6521 (Pierre L’Ecuyer, Fabian Bastin).

153
IX. Simulation

154
Chapitre IX

Simulation

1 Introduction
Simuler un système stochastique consiste à imiter son comportement pour estimer sa perfor-
mance Un modèle de simulation est une représentation du système stochastique permettant de
générer un grand nombre d’événements aléatoires et d’en tirer des observations statistiques.

Exemple 61 (Jeu de hasard. Chaque partie consiste à tirer une pièce de monnaie jusqu’à
ce que la différence entre le nombre de faces et le nombre de piles soit égale à 3. Chaque tirage
coûte 1$, et chaque partie jouée rapporte 8$ au joueur. Nous aurons par exemple les jeux
— FFF : gain de 8$ ≠ 3$ = 5$ ;
— PFPPP : gain de 8$ ≠ 5$ = 3$ ;
— PFFPFPFPPPP : perte de 8$ ≠ 11$ = 3$.
Nous nous demandons par conséquent s’il est intéressant de jouer. Pour répondre à cette ques-
tion, nous allons simuler le jeu. Il y a deux façons de le faire :
— nous pouvons jouer pendant un certain temps sans miser d’argent ;
— nous pouvons simuler le jeu par ordinateur.
Néanmoins, simuler une seule partie ne nous aide pas à prendre une décision. Pour cela, il
faudrait voir ce qui se passe sur un grand nombre de parties et mesurer le gain moyen (ou la
perte moyenne).

Dans cet exemple, nous pouvons définir les éléments d’un modèle de simulation comme suit
système stochastique : tirages successifs ;
horloge : nombre de tirages ;
définition de l’état du système : N (t), le nombre de faces moins le nombre de piles
après t tirages ;
événements modifiant l’état du système : tirage de pile ou de face ;

155
IX. Simulation

méthode de génération d’événements : génération d’un nombre aléatoire uniforme ;


formule de changement d’état : N (t + 1) = N (t) + 1, si F est tirée ; N (t) ≠ 1, si P
est tirée ;
performance : 8 ≠ t, lorsque N (t) atteint +3 ou -3.

2 Files d’attente

2.1 Concepts de base


Un système de file d’attente consiste d’un ou de plusieurs serveurs qui fournissent un service
d’une certaine nature à des clients qui se présentent, et qui sont issus d’une population donnée.
Les clients qui arrivent et trouvent tous les serveurs occupés rejoindront (généralement) une ou
plusieurs files (ou lignes) devant les serveurs, d’où la qualification de file d’attente. . Quelques
exemples de files d’attente sont repris dans la Table IX.1. Le système de file d’attente est
caractérisé par trois composants :
1. le processus d’arrivée ;
2. le mécanisme de service ;
3. la discipline de file.

Système Serveurs Clients


Banque Guichets Clients
Hôpital Docteurs, infirmières, lits Patients
Système informatique Unités centrales, dispositifs I/O Travaux
Manufacture Machines, travailleurs Composants
Centre d’appel Serveurs Appels entrants
Tableau IX.1 – Exemples de files d’attente

Spécifier le processus d’arrivée pour un système de file d’attente revient à décrire comment les
clients arrivent dans le système. Soit Ai le temps d’inter-arrivées entre les arrivées des (i≠1)e et
ie clients. Si A1 , A2 , . . . , sont supposés être des variables i.i.d., nous dénoterons le temps d’inter
arrivée moyen (ou espéré) par E[A] et appellerons ⁄ = 1/E[A] le taux d’arrivée des clients.
Le mécanisme de service pour un système de file d’attente est articulé en spécifiant le nombre
de serveurs (dénoté par s), où chaque serveur a sa propre file ou au contraire une seule file
alimente tous les serveurs, et la distribution de probabilité des temps de service des clients.
Soit Si le temps de service du ie client. Si S1 , S2 , . . . , sont des variables aléatoires i.i.d., nous

156
IX.2 Files d’attente

dénoterons le temps de service moyen d’un client par E[S] et appelleront Ê = 1/E[S] le taux
de service d’un serveur.
Nous parlerons de situation transitoire lorsque l’état du système dépend grandement de la
situation initiale et du temps écoulé, et de situation d’équilibre lorsque l’état du système peut
être considéré indépendant de la situation initiale et du temps écoulé. En situation d’équilibre,
nous avons la formule de Little :
L = ⁄W, (IX.1)

où L est le nombre moyen de clients dans le système, ⁄, le taux moyen d’arrivée des nouveaux
clients, et W le temps moyen dans le système.

2.2 Modèle M/M/1


Il s’agit du modèle de file d’attente le plus courant, avec les caractéristiques suivantes :
— file d’attente : nombre infini de clients ;
— stratégie de service : premier arrivé, premier servi (FIFO) ;
— un seul serveur ;
— les taux d’arrivée et de service obéissent à des lois de Poisson. De manière équivalente,
le temps entre l’arrivée de deux clients successifs et le temps de service obéissent à des
lois exponentielles : on parle de processus Markoviens.
La notation générale pour les modèles de file d’attente est X/Y /s, où X représente la loi du
temps d’inter arrivée, Y est la loi du temps de service, et s donne le nombre de serveurs.

Exemple 62 (File d’attente M/M/1). En situation d’équilibre, plusieurs résultats analy-


tiques (obtenus par analyse du modèle mathématique) existent. Soit ⁄ le taux moyen d’arrivée et
µ le taux moyen de service. Supposons que ⁄ < µ. Le nombre moyen de clients dans le système
vaut

L= (IX.2)
µ≠⁄
Le temps moyen d’attente dans le système vaut quant à lui

1
W = (IX.3)
µ≠⁄

Il est aisé de vérifier ces résultats par simulation. Dans le cas présent, les éléments de la
simulation sont :

système stochastique : file d’attente M/M/1 ;

157
IX. Simulation

horloge : temps écoulé ;


définition de l’état du système : N (t), le nombre de clients dans le système au temps
t;
événements modifiant l’état du système : arrivée ou fin de service d’un client ;
formule de changement d’état : N (t + 1) = N (t) + 1, si arrivée ; N (t) ≠ 1, si fin de
service.
Nous allons voir deux méthodes pour étudier l’évolution du système dans le temps :
— par intervalles de temps fixe ;
— par génération d’événement.
Nous supposerons que les valeurs des paramètres de notre système sont ⁄ = 3 clients par heure,
et µ = 5 clients par heure.
Dans le cas d’intervalles de temps fixe, l’idée est

1. faire écouler le temps d’un petit intervalle t;

2. mettre à jour le système en déterminant les événements qui ont pu se produire durant
l’intervalle t, et recueillir l’information sur la performance du système ;

3. retourner en 1.

Ici, les événements sont soit des arrivées, soit des départs (fins de service). Si t est suffi-
samment petit, nous pouvons considérer qu’il ne se produira qu’un seul événement (arrivée ou
départ) durant cet intervalle de temps. Prenons t égal à 0.1 heure (6 minutes). La probabilité
qu’il y ait une arrivée durant cet intervalle de temps vaut :

PA = 1 ≠ e≠⁄ t
= 1 ≠ e≠3/10 ƒ 0.259. (IX.4)

La probabilité qu’il y ait un départ durant cet intervalle de temps est :

PD = 1 ≠ e≠µ t
= 1 ≠ e≠5/10 ƒ 0.393. (IX.5)

Pour générer un événement, nous pouvons simplement tirer deux nombres aléatoires selon une
loi U [0, 1]. Si le premier nombre est strictement plus petit que 0.259, nous aurons une arrivée. Si
le deuxième nombre est strictement inférieur à 0.393, nous considérerons un départ (si un client
était en cours de service). Ceci pourrait par exemple donner les chiffres de la Table ci-dessous.

158
IX.2 Files d’attente

D’après cet exemple, il est possible d’estimer les performances du système. Que se passe-t-il si
nous voulons mesurer W , le temps moyen passé dans le système ? Nous avons deux clients
qui sont entrés dans le système et chacun y est resté 18 minutes ou 0.3 heures, aussi peut-on
estimer W par 0.3. Pourtant, la vraie valeur est W = 1/(µ≠⁄) = 0.5. Il faudrait un échantillon
beaucoup plus grand, et ce d’autant plus que nous devrions simuler le système en état d’équilibre.
La génération d’événement peut se résumer comme suit :

1. faire écouler le temps jusqu’au prochain événement ;

2. mettre à jour le système en fonction de l’événement qui vient de se produire et géné-


rer aléatoirement le temps jusqu’au prochain événement ; recueillir l’information sur la
performance du système ;

3. retourner à 1.

Nous pourrions ainsi obtenir la suite d’événements reprise dans la Table ci-dessous.

159
IX. Simulation

Si nous considérons une simulation comportant l’arrivée de 10000 clients, les résultats montrent
que :

— le nombre moyens de clients dans le système est L ƒ 1.5 ;


— le temps moyen dans le système est W ƒ 0.5.

Remarque 1 : des résultats analytiques existent pour des modèles simples (comme M/M/1),
mais pas pour des files d’attente plus complexes.

3 Simulation à événements discrets

L’approche s’est imposée dans nombre de problèmes de simulations. Le principe général est
résumé dans l’ordinogramme de la Figure IX.1

160
IX.3 Simulation à événements discrets

Figure IX.1 – Schéma d’une simulation à événements discrets.

161
IX. Simulation

Annexe

4 Logiciels d’optimisation

4.1 IOR Tutorial

Le logiciel IOR Tutorial, qui accompagne le livre Introduction to Operational Research [1] est
disponible gratuitement à l’adresse http://highered.mcqraw-hill.com/site/0073017795/student
view0/ior tutorial.html. Le logiciel est fourni sous la forme d’un exécutable sous l’environ-
nement Microsoft Windows, et comme archive Java pour les autres plate-formes. Il est par
conséquent utilisable sur la majorité des systèmes actuels. Le logiciel est intéressant pour rapi-
dement tester des programmes d’optimisation simples, mais ne peut être considéré comme un
solveur à part entière. Son interface graphique le rend néanmoins adapté pour une expérimen-
tation rapide avec les exemples introduits dans le cours.

4.2 GAMS

GAMS est l’acronyme de Generalized Algebric Modeling System. Il s’agit avant tout d’un
langage servant à la formulation et à la résolution de modèle de programmation mathématique.
En pratique, il s’agit d’un paquetage intégré qui permet de
— spécifier la structure du modèle d’optimisation ;
— spécifier et calculer les données qui entrent dans le modèle ;
— résoudre ce modèle ;
— produire un rapport sur un modèle ;
— conduire une analyse comparative.
GAMS peut être téléchargé à l’adresse http://www.gams.com. La licence de GAMS et des solveurs
académique est passablement élevés, toutefois il est utilisable de manière gratuite en version
de démonstration, ce qui permettra d’illustrer certains concepts de base du cours. Sous des
environnements de type UNIX (incluant Mac OS X et la majorité des distributions Linux), GAMS
s’utilise uniquement en ligne de commande. Sous Microsoft Windows, il dispose d’une interface
graphique.

162
IX.4 Logiciels d’optimisation

Formulation d’un problème simple


Exemple 63 . Considérons le problème d’optimisation linéaire

max 109x1 + 90x2 + 115x3


x

s.c. x1 + x2 + x3 Æ 100;
6x1 + 4x2 + 8x3 Æ 500;
x1 , x2 , x3 Ø 0.

Le fichier GAMS décrivant se problème est constitué des parties suivantes :


1. spécification des variables ;
2. spécification des équations :
— déclaration ;
— spécification de la structure algébrique ;
3. définition du modèle ;
4. définition de la méthode de résolution.
Ce problème peut être formulé sous GAMS comme suit :

VARIABLES
Z Variable Z;

POSITIVE VARIABLES
X1 Variable X1
X2 Variable X2
X3 Variable X3;

EQUATIONS
Equation1 Equation 1
Equation2 Equation 2
Equation3 Equation 3;

Equation1..
Z =E= 109*X1 + 90*X2 + 115*X3;

Equation2..

163
IX. Simulation

X1 + X2 + X3 =L= 100;

Equation3..
6*X1 + 4*X2 + 8*X3 =L= 500;

MODEL Example1 /ALL/;

SOLVE Example1 USING LP MAXIMIZING Z;

Remarquons d’ores et déjà que chaque instruction se termine par un point-virgule. Leur omission
produit une erreur de compilation. Détaillons les instructions.

Spécification des variables


GAMS exige que les variables soient identifiées. Dans l’exemple précédent, nous avons les
variables Z, X1, X2, X3:

VARIABLES
Z Variable Z;

POSITIVE VARIABLES
X1 Variable X1 (Optional Text)
X2 Variable X2
X3 Variable X3;

Pour tout modèle construit avec GAMS, il convient d’identifier l’objectif à l’aide d’une variable,
ici Z. Autrement dit,
max
x
cT x

devient

max z
s.c. z = cT x,
Z = CX.

Les noms de variables peuvent avoir jusqu’à 31 caractères. Il est également possible de spécifier
plus précisément le type des variables :

164
IX.4 Logiciels d’optimisation

VARIABLE variables non restreintes


POSITIVE VARIABLE variables non négatives
NEGATIVE VARIABLE variables non positives
BINARY VARIABLE variables binaires (dans 0, 1)
INTEGER VARIABLE variables entières (naturelles)

Dénomination des équations


La spécification d’une équation consiste en deux parties. Il convient tout d’abord de déclarer
ces équations : GAMS exige du modélisateur de nommer chaque équation à l’œuvre dans le
modèle. Dans l’exemple, les équations sont déclarées après le mot-clé EQUATIONS

EQUATIONS
Equation1 Equation 1
Equation2 Equation 2
Equation3 Equation 3;

Comme pour les variables, le nom d’une équation peut prendre jusqu’à 31 caractères. A droite
du nom de l’équation figure un (bref) texte d’explications.
Il nous faut de plus spécifier la structure algébrique : après avoir nommé les équations, la
structure algébrique exacte doit être spécifiée en utilisant la notation .. :

Equation1..
Z =E= 109*X1 + 90*X2 + 115*X3;

Equation2..
X1 + X2 + X3 =L= 100;

Equation3..
6*X1 + 4*X2 + 8*X3 =L= 500;

La forme algébrique exige l’utilisation d’une syntaxe spéciale afin de définir la forme exacte de
l’équation :

=E= contrainte d’égalité


=L= inférieur ou égal
=G= supérieur ou égal

165
IX. Simulation

Spécification du modèle
Le mot-clé MODEL est utilisé pour identifier les modèles à résoudre. Il convient de
1. donner un nom au modèle (par exemple Example1) ;
2. spécifier les équations à inclure, entre des barres italiques / /.
Ceci donne pour notre exemple

MODEL Example1 /ALL/;

Nous pourrions aussi avoir

MODEL Example1 /Equation1, Equation2/;

Spécification du solveur
Le mot-clé SOLVE indique à GAMS d’appliquer un solveur au modèle nommé, en utilisant les
données définies juste avant l’instruction SOLVE. Ainsi, dans notre exemple, nous avions :

SOLVE Example1 USING LP MAXIMIZING Z;

Si nous avions affaire à un problème linéaire de minimisation, nous pourrions écrire

SOLVE Example1 USING LP MINIMIZING Z;

En place de LP, nous devrions écrire MIP pour traiter un problème de programmation entière
mixte :

SOLVE Example1 USING MIP MAXIMIZING Z;

De même, nous spécifierons un problème non-linéaire avec le mot-clé NLP :

SOLVE Example1 USING NLP MAXIMIZING Z;

Rapport de solution
A la fin de l’exécution, GAMS produit un rapport indiquant la solution trouvée, la valeur de
la fonction objectif en cette solution, ainsi que différentes informations permettant d’analyser
le comportement de l’algorithme d’optimisation, et diverses propriétés du problème en cours
d’étude. En particulier, le résumé de rapport donne le nombre total de cas non optimaux, non
réalisables et non bornés rencontrés.

166
IX.4 Logiciels d’optimisation

**** REPORT SUMMARY : 0 NONOPT


0 INFEASIBLE
0 UNBOUNDED

L’information sur les solutions peut être affichée de différentes manières :


1. sortie standard de GAMS ;
2. utilisation des commandes DISPLAY ;
3. rapports additionnels sur base des valeurs des solutions.

LOWER LEVEL UPPER MARGINAL

---- EQU Equation1 . . . 1000


---- EQU Equation2 -INF 100.00 100.000 52.000
---- EQU Equation3 -INF 500.00 500.000 95.000

Equation1 Equation 1
Equation2 Equation 2
Equation3 Equation 3;

LOWER LEVEL UPPER MARGINAL

----VAR Z -INF 995.000 +INF .


----VAR X1 . 50.000 +INF .
----VAR X2 . 50.000 +INF .
----VAR X3 . . +INF -13.000

Le point simple "." représente un zéro, tandis que INF représente l’infini.

Sommations
q
La notation mathématique xj se traduira par
j

SUM(j,x(j))

En d’autres termes, nous avons la syntaxe

SUM( index of summation, names(index))

167
IX. Simulation

qq
Il est possible d’imbriquer les sommations. Ainsi, xji donnera
j i

SUM(j,SUM(i,x(j,i))

ou encore

SUM((j,i),x(j,i))

Définition d’ensemble
Spécifier les variables une à une est vite fastidieux, pour ne pas dire irréaliste (par exemple si
nous avons un million de variables), c’est pourquoi en modélisation algébrique, nous utilisons
des indices. GAMS met à disposition le mot clé SET pour définir des ensembles, parcouru par
un indice spécifié juste avant :

SET ItemName optional explanatory text for item


/ element1 optional explanatory text for element,
element2 optional explanatory text for element /

Par exemple,

SET i index /1*10/

défini l’ensemble {1, 2, ..., 10}, qui peut être parcouru avec l’indice i. Il est possible d’associer
un autre indice au même ensemble au moyen de la commande ALIAS, par exemple

Exemple 64 ALIAS (i,j) ;

permet d’utiliser j au lieu de i. Cette commande est utile par exemple pour traduire une
contrainte de la forme ;

xij + xji = 1, i = 1, . . . , n, j = 1, . . . , n,

j et i doivent indicer le même ensemble, mais écrire

SET i / 1*10 /
j / 1*10 /

mènerait GAMS à considérer i et j comme indexant deux ensembles.

168
IX.4 Logiciels d’optimisation

Entrée de données
Les données sont entrées au moyen de quatre différents types de commandes GAMS :
SCALAR , pour les éléments ne dépendant pas d’ensembles ;
PARAMETERS , pour les éléments qui sont des vecteurs ;
TABLES , pour des éléments de deux dimensions ou plus ;
PARAMETERS , en affectation directe.
La manière la plus simple d’entrée des données est l’emploi de la commande SCALAR, qui prend
la syntaxe suivante dans le format basique :

SCALAR ItemName optional text / value /;

Dans le cas de vecteurs, nous utiliserons la syntaxe

PARAMETER ItemName(Set) optional text;


/ element1 value,
element2 value /;

Pour les entrées multidimensionnelles, nous aurons

TABLE ItemName(set1dep,set2dep) optional text


set2elem1 set2elem2
set1element1 value11 value12
set1element2 value12 value22 ;

Plutôt que d’utiliser des constantes, nous pouvons affecter les valeurs au moyen d’expressions
mathématiques :

PARAMETER ItemName(set1dep,set2dep) optional text;


ItemName(set1dep,set2dep) = some expression;

L’indice set2dep est optionnel. L’exemple 63 peut ainsi se reformuler comme

SETS
i Variables / X1, X2, X3 /;

PARAMETERS
c(i) Costs / X1 109
X2 90
X3 115 /

169
IX. Simulation

a(i) Coeff / X1 6
X2 4
X3 8 /;

VARIABLES
Z Variable Z;
POSITIVE VARIABLES
x(i) Variables;
EQUATIONS
Equation1 Equation 1
Equation2 Equation 2
Equation3 Equation 3;

Equation1..
Z =E= sum(i, c(i)*x(i));

Equation2..
sum(i, x(i)) =L= 100;

Equation3..
sum(i, a(i)*x(i)) =L= 500;

MODEL Example1 /ALL/;

SOLVE Example1 USING LP MAXIMIZING Z;

Autres logiciels
Les solutions logiciels retenues sont loin d’être les seules envisageables, et les choix sont volontai-
rement orientés afin de répondre aux objectifs d’un cours d’introduction, mais ne représentent
pas forcément un choix optimal. Il existe d’autres langages de modélisation intéressant (on
pensera par exemple à AMPL), d’autres solveurs commerciaux ou gratuits. Nous nous désinté-
resserons cependant des solveurs intégrés dans les tableurs, les algorithmes proposés par défaut
dans ceux-ci étant en général de faible qualité, en particulier en optimisation non-linéaire, et
limités dans le nombre de variables qui peuvent être traités. Il est toutefois bon de noter que

170
IX.5 Exercices d’application et d’assimulation

des outils existent pour importer/exporter des données entre un tableur et des outils tels que
GAMS.

5 Exercices d’application et d’assimulation


1. Faire un résumé technique du chapitre.
2. Qu’en pensez vous de l’application de ces lois dans la vie économique et Statistique d’un
pays.

6 Notes
La section sur GAMS s’inspire partiellement du cours Applied Mathematical Programming donné
par Bruce A. McCarl à l’Université Texas A&M .

171
IX. Simulation

172
Troisième partie

Méthodes d’Optimisation Stochastique

173
Chapitre X

Rappels sur le Calcul Stochastique

1 Processus stochastique
Dans cette section, nous discutons des processus stochastiques. Il s’agit de familles de variables
aléatoires qui jouent un important rôle dans l’étude des phénomènes aléatoires. Nous passerons
en revue quelques processus aux propriétés particulièrement intéressantes.
Définition 2 Soit I un ensemble d’indices non vide. On appelle processus stochastique une
famille de variables aléatoires Xt , t œ I indexée par 1.

Remarque 2 — Si I œ N, on dit que le processus est à temps discret.


— Si I œ R ;, on dit que le processus est à temps continu. C’est à ce type de processus que
nous nous intéressons dans le cadre de notre travail.
— Dans la suite, nous noterons variable aléatoire par v.a.

Définition 3 Soit un espace mesurable ( , F). On appelle filtration une collection {Ft , t œ I}
croissante de sous-tribus de F. Donc, Ft ™ F et Fs ™ Fs si s Æ t. Le quadruplet ( , F, {Ft }tØ0 , P )
sera appelé un espace de probabilité filtré.

Définition 4 Un processus {Xt , t œ I} est dit adapté à une filtration {Ft , t œ I} si Xt est
Ft -mesurable. La filtration naturelle d’un processus {Xt , t œ I} est {Ftx , t œ I} telle que Ftx =
‡(Xi ; 0 Æ i Æ t). Un processus {Xt } est dit à trajectoires continues (ou simplement processus
continu) si P ({Ê œ ; t ‘æ Xt (Ê)est continue }) = 1

1.1 Processus de Markov


Définition 5 Un processus {Xt }tØ0 est dit de Markov si pour tout t > s Ø 0 et toute fonction
borélienne et bornée f : R æ R, on a

E(f (Xt )|Fsx = E(f (Xt )|Xs ) (presque sûrement),

175
X. Rappels sur le Calcul Stochastique

avec Fsx = ‡(Xi , 0 Æ i Æ s).

C’est un processus sans mémoire car la transition de s ne dépend que de Xs . Elle ne tient pas
compte de Xu pour u < s.

1.2 Temps d’arrêt


Définition 6 Un temps d’arrêt par rapport à une filtration {Ft }tØ0 est une v.a. T : æ
[0, +Œ] telle que {T Æ t} = {Ê œ |T (Ê) Æ t} œ Ft , ’t Ø 0. Pour tout temps d’arrêt T , on
définit :
FT = {A œ F|A fl {T Æ t} œ Ft , ’t Ø 0}.

1.3 Mouvement brownien


Définition 7 Un mouvement brownien est un processus stochastique {Wt }tØ0 à trajectoires
continues dont les accroissements disjoints sont indépendants, et ’s > 0, (Wt+s ≠Wt ) ≥ N(0, s).
Si de plus, P (W0 = 0) = 1, alors {Wt }tØ0 est un mouvement brownien standard.

Remarque 3 -
- Un mouvement brownien est géométrique s’il est de la forme X(t) = X(0)exp(µt+‡Wt ).
- On peut montrer (Yong et Zhou, 1999)|p.30632|[7]) que les trajectoires du mou vement
brownien sont presque sûrement(p.s.) nulle part différentiables, c’est-à-dire que :
AI JB
Wt+h (Ê) ≠ Wt (Ê)
P Ê œ | lim =Œ = 1.
hæ0 h

De plus, la fonction t ‘æ Wt (Ê) n’est pas à variable bornée.

2 L’intégrale stochastique (l’intégrale d’Itô)


Il s’agit d’une intégrale de la forme :
⁄ T
X(t)dW (t) (X.1)
0

où {Wt }tØ0 est mouvement brownien, et {Xt }tØ0 un processus stochastique répondant à cer-
tains critères d’intégrabilité. En ingénierie financière, {Wt }tØ0 pourrait par exemple représenter
l’évolution du prix d’un actif dans le temps et {Xt }tØ0 la stratégie de transaction sur cet actif

176
X.2 L’intégrale stochastique (l’intégrale d’Itô)

d’un investisseur. L’équation (X.1) est alors le gain réalisé à l’horizon T . La manipulation de
cette forme d’intégrale est facilitée par l’utilisation de la formule d’Itô, faisant référence à son
auteur, le mathématicien Kiyoshi Itô.

2.1 Propriétés de l’intégrale stochastique.


L’intégrale stochastique possède les propriétés suivantes :
sT sT sT
1. 0 (aH1 + bH2 )(s)dW (s) = a 0 H1 (s)dW (s) + b 0 H2 (s)dW (s)
1s 2
2. E T
0 H(s)dW (s) = 0
51 22 6 1s 2
s
3. E T
0 H(s)dW (s) =E T
0 H(s)2 ds (isométrie d’Itô)
1s 2 1s 2 1s 2
4. E T
0 H(1)(s)dW (s) T
0 H2 (s)dW (s) = E T
0 H1 (s)H2 (s)ds
1s 2 su
5. E t
0 H(s)dW (s)|Fu = 0 H(s)dW (s) (propriété martingale)

2.2 Processus d’Itô


Rappelons que S 1 désigne l’ensemble des processus intégrables, S 2 , l’ensemble des processus
1s 2
{Ht }tØ0 adaptés à la filtration tels que : E 0T H 2 (s)ds < Œ

Définition 8 Un processus X est un processus d’Itô s’il existe X0 , U œ S 1 et V œ S 2 tels que :


⁄ t ⁄ t
X(t) = X0 + U (s)ds + V (s)dW (s) (X.2)
0 0

Théorème 1 (Formule d’Itô) Soit f une fonction continûment différentiable deux fois et
{Wt } un mouvement brownien standard. On pose
⁄ t ⁄ t
X(t) = X(0) + b(s, X(s))ds + ‡(s, X(s))dW (s) (X.3)
0 0

Pour tout t, on a :
C
df (t; X(t)) = ft (t, X(t)) + b(t, X(t))fx (t, X(t)) (X.4)
D
1
+ ‡(t, X(t))2 fxx (t, X(t)) dt + ‡(t, X(t))fx (t, X(t))dW (t).
2

où ft , fx et fxx sont les dérivées partielles.

177
X. Rappels sur le Calcul Stochastique

Exemple 65 Prenons dX(t) = X(t)dWt , et f (x) = ln x. On a donc : ft (X(t)) = 0, fx (X(t)) =


1 1
(t)
et fxx (X(t)) = ≠ X(t) 2.

La formule d’Itô s’applique :


C A BD
1 1 1
dln(X(t)) = 0 + 0 + X(t)2 ≠ dt + X(t) dW (t)
2 X(t)2 X(t)
1
= ≠ dt + dW (t).
2

En intégrant, on obtient 3 4
1
X(t) = X(0)exp ≠ t + W (t) . (X.5)
2
On reconnaît là un mouvement brownien géométrique.

Remarque 4 La formule d’Itô s’énonce également dans le cas multidimensionnel, c-à-d, b(t), ‡(t), W (t)
sont des matrices :
⁄ t
f (t, X(t)) = f (0, X(0)) + {fs (s, X(s)) + fx (s, X(s)).b(s)
0
1
+ tr[‡(s)T fxx (s, X(s))‡(s)]}ds
2⁄
t
+ fx (s, X(s)).‡(s)dWs
0

2.3 Martingales
Les martingales représentent une classe particulière de processus stochastiques. Elles jouent
un important rôle en ingénierie financière. Soit (‡, F, {Ft }tØ0 , P ) un espace de probabilité filtré.

Définition 9 Un processus stochastique {Xt }tØ0 adapté à la filtration {Ft }tØ0 est une mar-
tingale si ’s < t, E(Xt |Fs = Xs . On parlera de sous-martingale si E(Xt |Fs Ø Xs et de sur-
martingale si E(Xt |Fs Æ Xs .

Exemple 66 - Un mouvement brownien {Wt } est une une martingale.


- Le processus {Wt2 ≠ t} est également une martingale.

Théorème 2 (Théorème de représentation des martingales) Soient {Wt } un mouvement brow-


nien sur un espace de probabilité filtré ( , F, {Ft }tØ0 , P ), et Mt une martingale {Ft }-adaptée.
Alors, il existe un processus adapté Zs tel que :
⁄ t
M (t) = M (0) + Z(s)dWs . (X.6)
0

178
X.3 Equations différentielles stochastiques (EDS)

2.4 Variation quadratique


Soient M1 et M2 deux martingales (par rapport à la même filtration) et fin : 0 < t1 < · · · <
tn = t, une partition de [0, t] telle que max |ti ≠ ti≠1 | æ 0, alors on pose :
1ÆiÆn

n
ÿ
ÈM1 , M2 Ít = lim (M1 (ti ) ≠ M1 (ti≠1 ))(M2 (ti ) ≠ M2 (ti≠1 ))
næŒ
i=1

ÈM1 , M2 Ít s’appelle la covoriation quadratique de M1 et M2 . On définit ainsi la variation quadratique


d’une martingale {Mt } par :
ÿn
{M }t = (M (ti ) ≠ M (ti≠1 ))2
næŒi=1

Dans le cas d’un mouvement brownien standard {Wt }, ÈW Ít = t(p.s).

Remarque 5 Si M1 et M2 sont deux martingales (continues et de carré intégrable) alors :


M1 (t)M2 (t)≠ÈM1 , M2 Ít est une martingale par rapport à la même filtration (Yong et Zhou,1999
[7]).

3 Equations différentielles stochastiques (EDS)


( , F, {Ft }tØ0 , P ) est un espace de probabilité filtré.

Définition 10 Une équation différentielle stochastique (EDS) est une équation de la forme :
Y
_
]dX(t) = µ(t, X(t))dt + ‡(t, X)dW (t)
_
(X.7)
[X(0) = X0


— X0 œ Rn
— {Wt } est un mouvement brownien
— µ(t, X) et ‡ ≠ t, X) sont des fonctions continues.

Définition 11 une solution forte de l’EDS (X.7) est un processus X = {X(t), t œ [0, T ]}
continu qui est {Ft }-adapté et tel que :
s
— 0t (|µ(s, X)|2 + |‡(s, X)|2 )ds < Œ
— X vérifie (X.7).

179
X. Rappels sur le Calcul Stochastique

3.1 Condition d’existence et d’unicité d’une solution forte


On rappelle que LpF ( ; Rn ) désigne l’ensemble des variables aléatoires F-mesurables X à
valeurs dans Rn telles que E(|X|p ) < Œ(p œ [1, Œ[).

Théorème 3 Si les fonctions µ(t, X(.)) et ‡(t, X(.)) sont lipschitziennes, c’est-à-dire qu’il
existe L > 0 tel que :
Y
_
]|µ(t, x(.)) ≠ µ(t, y(.))| Æ L|x(.) ≠ y(.)|
(X.8)
_
[|‡(t, x(.)) ≠ ‡(t, y(.))| Æ L|x(.) ≠ y(.)|

et si de plus
|µ(t, X(.))| + |‡(t, X(.))| œ L2 (0, T ; R) (X.9)

alors, pour tout X0 œ LpF0 ( ; Rn (p Ø 1), il existe une et une seule solution forte X de (X.7) qui
vérifie :
Y A B
_
_
]E sup |X(s)| p
Æ KT (1 + E (|X0 |p )) ,
0ÆsÆT (X.10)
_
_
[E(|X(t) ≠ X(s)|p ) Æ KT (1 + E(|X0 | )t ≠ s| , ’s, t œ [O, T ], KT > 0.
p p
2

Par ailleurs, si X̂0 œ LpF0 (‡; Rn est une autre variable aléatoire correspondant à X̂, solution de
l’équation (X.7), alors pour tout T > 0, il existe KT > 0 tel que :
A B
1 2
E sup |X(s) ≠ X̂(s)| p
Æ KT 1 + E(|X0 ≠ X̂0 |p ) .
0ÆsÆT

Pour la démonstration de ce théorème, voir (Yong et Zhou,1999 [7]).

Exemple 67 L’équation de Black-Scholes.


Y
_
]dX(t) = µX(t)dt + ‡X(t)dB(t)
_
[X(0) =1

Ici µ(t, X(t)) = µX(t) et ‡(t, X(t)) = ‡X(t) sont manifestement lipschitziennes et vérifient
(X.9), donc l’équation de Black-Scholes avec la condition initiale X0 = 1 ci-dessus, admet une
1 2
et une seule solution Xt = eµ≠ 2 ‡ )t+‡Bt . µ œ R est appelé le coefficient de dérive (il traduit la
tendance ou « volatilité » du processus).

180
X.4 Exercices d’application et d’assimulation

Remarque 6 À côté des solutions fortes, on définit les’ solutions faibles. La différence entre
les deux étant que clans le cas des solutions faibles, l’espace de probabilité filtré qui n’est pas
fixé à priori, fait partie de la solution.

3.2 Equations différentielles stochastiques rétrogrades


Introduites par Bismut (1973) dans le cas linéaire et par Pardoux et Peng (1990) dans le
cas général, les équations différentielles stochastiques rétrogrades (car la valeur terminale de la
fonction inconnue est donnée), en abrégé EDSR, apparaissent dans de nombreux problèmes en
finance. Selon les auteurs sus-cités, une solution d’une EDSR est une paire de processus adaptés
(Y, Z) satisfaisant : Y
_
]dYt = ≠f (t, Yt , Zt )dt + ZtÕ dWt ,
_
(X.11)
[YT = ›,

où Z Õ est la transposée de Z.

Théorème 4 On suppose que :


- f est uniformément lipschitzienne, c-à-d qu’il existe C > 0 tel que : |f (t, y1 , z1 ) ≠
f (t, y2 , z2 )| Æ C (|y1 ≠ y2 | + |z1 ≠ z2 |) ’(y1 , z1 ), ’ ≠ y2 , z2 ).
1s 2
- f (., 0, 0) est de carré intégrable, c-à-d E 0T |f (t, 0, 0)|2 dt < +Œ
- › œ L2FT ( ; Rd ), c-à-d E(|›|2 ) < +Œ
Alors, il existe une paire de processus adaptés (Y, Z) qui satisfait l’EDSR (X.11).

Preuve: Voir (El Karoui et Mazliak, 1997 [8]). ⇤

4 Exercices d’application et d’assimulation


1. Faire un résumé technique du chapitre.
2. Démontrez à document fermé les formules, les théorèmes et les propositions étudiés dans
ce chapitre.
3. Qu’en pensez vous de l’application de ces lois dans la vie économique et Statistique d’un
pays.

181
XI. Formulation du problème de contrôle optimal stochastique

182
Chapitre XI

Formulation du problème de contrôle optimal


stochastique

Dans ce chapitre, nous donnons une formulation du problème du contrôle optimal stochas-
tique. C’est le véritable point de départ de notre travail. Il s’agit essentiellement d’exposer un
ensemble de conditions et d’équations mathématiques que doit vérifier le contrôle, soit la so-
lution optimale. En clair, il est simplement question d’optimiser (ma.,’Ci miser ou minimiser)
une fonction de coût J. Afin de mieux appréhender la quintessence du problème du contrôle
optimal stochastique, il semble opportun de commencer par en citer quelques exemples.

1 Quelques exemples de problèmes


Nous allons dans cette première partie énoncer deux exemples intéressants. Le premier, Ré-
assurance et gestion des dividendes est un problème relativement nouveau et largement exploré.
Sa première version fut introduite en 1996 par Leland-Toft, mais ne comprenait cependant pas
de problème d’optimisation. Nous discutons ici d’un cas plus complexe où une compagnie d’as-
surance désire optimiser les dividendes qu’elle verse à ses actionnaires à travers une suite de
décisions optimales qu’elle devra prendre. Le deuxième exemple, bien connu dans le monde de
la finance, est le problème du portefeuille de Merton énoncé et résolu en 1969 par Robert C.
Merton : Investissement et consommation. Un investisseur dans un temps limité doit effectuer
des allocations de sa richesse sur des actions et des obligations (sans risque) afin de maximiser
son utilité. Dans ce qui suit nous présentons ces exemples en détail.

1.1 Exemple 1 : Réassurance et gestion des dividendes


Considérons un modèle dans une compagnie d’assurance A, qui permet de choisir une police
d’assurance auprès d’une autre compagnie B dans le but de se couvrir d’une partie des risques.

183
XI. Formulation du problème de contrôle optimal stochastique

Cette opération qu’on appelle réassurance est d’usage dans le monde des assurances. Notre
compagnie A a le choix du montant des dividendes qu’elle verse à ses actionnaires. De plus,
A doit constamment rembourser une dette corporative (un emprunt auprès d’une banque par
exemple), le remboursement instantané est ”. Il est commun d’évaluer une compagnie à travers
le montant des dividendes qu’elle reverse. Alors, le but de A est donc de trouver la police de
réassurance et la stratégie sur les dividendes qui lui permettront de maximiser le total des
dividendes actualisés sur une période donnée.
Pour modéliser un tel problème, considérons R(t) le total des actifs liquides de A au temps
t. Évidemment, R(t) est influencé par le montant p des primes encaissées par unité de temps,
par le remboursement constant de la dette, et par le paiement des réclamations faites par les
clients. Soit V (t) le nombre de réclamations au temps t, et ÷i la montant de la ième réclamation.
On peut donc écrire :
V (t)
ÿ
R(t) = R(0) + pt ≠ ”t ≠ ÷i (XI.1)
i=1

Si V (t) est un processus de Poisson de paramètre ⁄, et que les réclamations sont i.i.d., alors
R(t) peut être approximé par un mouvement brownien de dérive p ≠ ” ≠ ⁄E(÷) et de coefficient
1
de diffusion (⁄E(÷ 2 )) 2
Mais le contrat de réassurance permet à la compagnie A de conserver juste une proportion
a du montant des primes, donc de reverser 1 ≠ a à la compagnie B. En conséquence, 1 ≠ a des
réclamations sera à la charge de B. Donc dans l’équation (XI.1), p sera remplacé par ap, ÷i par
a÷i . On construit ainsi le modèle qui suit :
Soient x(t) le volume d’argent liquide dont dispose la compagnie à l’instant t, c(t) le taux
de dividende payé aux actionnaires à l’instant t. Alors la dynamique de x(t) est donnée par :
Y
_
]dx(t) = [a(t)µ ≠ ” ≠ c(t)] dt + a(t)‡dW (t),
(XI.2)
_
[x(0) = x0 .

Ici µ est la différence entre le taux de la prime et le paiement espéré des réclamations par unité
de temps, 1 ≠ a(t) est la fraction de réassurance au temps t. Par la nature du problème, on a
les contraintes ci-dessous :

x(t) Ø 0, 0 Æ a(t) Æ 1, ’t œ [0, T ]. (XI.3)

L’objectif de l’équipe dirigeante de la compagnie est donc de choisir le schéma de paiement des
dividendes c(.) et la politique de gestion de risque a(.), tous les deux non anticipables, tels que

184
XI.1 Quelques exemples de problèmes

(XI.3) soit satisfaite, et le total espéré des dividendes :


A⁄ B
T
J(c(.), a(.)) = E ≠“t
e c(t)dt (XI.4)
0

soit maximal sur [0, T ]. Noter que “ est le taux d’actualisation.

1.2 Exemple 2 : Investissement et consommation.

Considérons un marché dans lequel m + 1 actifs sont échangés continuellement.


L’un d’entre eux qu’on appelle obligation est tel que le processus de prix Po (t) vérifie l’équa-
tion différentielle ordinaire :
Y
]dP0 (t)
_
= r(t)P0 (t)dt, t œ [0, T ],
(XI.5)
_
[P0 (0) = p0 > 0,

où r(t) > 0 est le taux d’intérêt (de l’obligation). Il est clair que Po (t) augmentera constamment
dans le temps. Les m autres actifs sont appelés actions, et les prix P1 (t), · · · , Pm (t) satisfont
l’équation différentielle :
Y
]dPi (t)
_
= Pi (t){bi (t)dt + ‡i (t).dW (t)}, t œ [0, T ],
_
(XI.6)
[Pi (0) = pi > 0,

où bi : [0, T ] ◊ æ R, bi (t) > 0 est appelé le taux d’appréciation, et ‡i : [0, T ] ◊ æ Rm


est appelé la volatilité ou encore dispersion des actions. Tous ces processus sont supposés
{Ft }tØ0 -adaptés. Ici, {Wt } est un mouvement brownien standard m-dimensionnel défini sur un
espace de probabilité filtré et complet ( , F, {Ft }tØ0 , P ). Le terme de diffusion ȇi (t), dW (t)Í
de (XI.6) reflète la fluctuation du prix des actions, qui sont par conséquent des actifs risqués.
Pour intéresser les éventuels acheteurs, il est naturel de supposer :

E(bi (t)) > r(t) > 0, ’t œ [0, T ], 1 Æ i Æ m. (XI.7)

Considérons maintenant un investisseur détenant Ni (t) ; parts de l’actif i(i = 1, · · · , m) à


l’instant t, nous noterons x(t) sa richesse totale. Alors :
m
ÿ
x(t) = Ni (t)Pi (t), t Ø 0. (XI.8)
i=0

185
XI. Formulation du problème de contrôle optimal stochastique

On suppose que les transactions des actions et le paiement des dividendes (au taux µi (t) par
unité de temps et par unité de capital investit sur le ie actif) s’effectuent de manière continues.
Soit c(t) le taux de retrait du marché par l’investisseur pour consommation.
On a donc :
m
ÿ m
ÿ
x(t + t) ≠ x(t) = Ni (t) [Pi (t + t) ≠ Pi (t)] + µi (t)Ni (t)Pi (t) t ≠ c(t) t. (XI.9)
i=0 i=1

En faisant t æ 0, on obtient :
m
ÿ m
ÿ
dx(t) = Ni (t)dPi (t) + µi (t)Pi (t)dt ≠ c(t)dt
i=0 i=1
m
ÿ
= {r(t)N0 (t) + [bi )(t) + µi (t)]Ni (t)Pi (t) ≠ c(t)}dt
i=1
m
ÿ
+ Ni (t)Pi (t)‡i (t).dW (t) (XI.10)
i=1
m
ÿ
= {r(t)x(t) + [bi (t) + µi (t) ≠ r(t)]ui (t) ≠ c(t)}dt
i=1
m
ÿ
+ ‡i (t)ui (t).dW (t),
i=1


ui (t) = Ni (t)Pi (t), i = 0, · · · , n (XI.11)

est la richesse de [’investisseur sur le ie actif. Lorsque ui (t) < 0(i = 1, 2, · · · , m), il/elle est à
court du ie actif. Quand u0 (t) < 0, l’investisseur emprunte le montant |u0 (t)| au taux d’intérêt
r(t). Il est clair qu’en changeant ui (t), notre investisseur change l’allocation de sa richesse sur
les m + 1 actifs. u(t) = (u1 (t), · · · , um (t)) est le portefeuille de l’investisseur. Remarquons
que l’allocation faite à l’obligation n’apparaît pas dans le portefeuille, puisque ce dernier est
entièrement déterminé par l’allocation effectuée sur les actions, étant donnée la richesse totale.
Maintenant, pour x(0) = x0 > 0, notre investisseur veut la stratégie d’investissement u(.) et le
plan de consommation c( ) tels que :

x(t) Ø 0, ’t œ [0, T ], p.s (XI.12)

et le flux d’utilité actualisé :


I⁄ J
T
J(u(.), c(.)) = E e≠“t
Ï(c(t))dt + e ≠“T
h(X(T )) , (XI.13)
0

186
XI.2 Formulation du problème du contrôle optimal stochastique

est maximal ; “ > 0 est le taux d’actualisation, Ï(c) est l’utilité de la consommation c, et
e≠“T h(X(T )) est l’utilité actualisé provenant des legs(richesse terminale). On pourrait bien
évidemment imposer des contraintes supplémentaires, par exemple :

ui (t) Ø ≠Li , ’t œ [0, T ], p.s., i = 0, 1, · · · , n, ’Li Ø 0.

Li = 0 signifie que la vente à découvert est interdite.

2 Formulation du problème du contrôle optimal stochas-


tique
Aux exemples ci-dessus présentés, peuvent s’ajouter bien d’autres dans des domaines tels :
l’industrie, la médecine, etc .... Cependant, le principe mathématique qui permet de formuler
ces différents types de problèmes est le même. C’est à cela que nous nous attaquons dans ce
qui suit.

2.1 Formulation (forte)


Soit un espace de probabilité filtré ( , F, {Ft }tØ0 , P ) sur lequel est défini un mouvement
brownien standard m-dimensionnel W (.). Considérons l’équation différentielle stochastique sui-
vante : Y
]dx(t) = b(t, x(t), u(t))dt + ‡(t, x(t))dW (t),
_
(XI.14)
_
[x(0) = x0 œ Rn ,

où b : [0, T ]◊Rn ◊U æ Rn , ‡ : [0, T ]◊Rn ◊U æ Rn◊m , et U un espace métrique séparable, T œ


[0, +Œ[ fixé. x(.) est la variable d’état, u(.) est appelé le contrôle et représente la décision prise
par le contrôleur. À chaque instant t, ce dernier détient un historique d’information {Ft }tØ0 ,
mais est cependant incapable de prédire le futur à cause du critère de non-anticipation. D’où
l’expression « u(.) est {Ft }tØ0 -adapté ». La décision u(t) ne peut être prise avant l’instant t.
On définit ainsi : U[0, T ] = {u : [0, T ] ◊ æ U |u(.) est {Ft }tØ0 -adapté }.
Tout élément u(.) de U[0, T ] est appelé contrôle réalisable. La contrainte d’état peut être
donnée par l’écriture : x(t) œ S(t), avec S : [0, T ] æ 2R . Par ailleurs, on définit le critère à
n

optimiser, la fonction de coût par :


I⁄ J
T
J(u(.)) = E f (t, x(t), u(t))dt + h(x(T )) . (XI.15)
0

187
XI. Formulation du problème de contrôle optimal stochastique

Définition 12 Un contrôle u(.) est dit admissible, et (x(.), u(.)) une paire admissible si :
i) u(.) œ [0, T ];
ii) x(.) est l’unique solution de l’équation (XI.14) et vérifie les éventuelles contraintes im-
posées ;
iii) f (., x(.), u(.)) œ L1F (0, T ; R) et h(x(T )) œ L1FT ( ; R).
On note par Uad [0, T ] l’ensemble de tous les contrôles admissibles.

Problème (FO) : « Minimiser (XI.15) sur Uad [0, T ] » .


S’il existe, on cherche le contrôle ū(.) œ Uad [0, T ] tel que :

J(ū(.)) = inf J(u(.)). (XI.16)


u(.)œUad [0,T ]

Alors ū(.) sera appelé contrôle optimal. Et le problème est dit fini si le membre de droite de
(XI.16) est fini.

Remarque 7 Il existe pour le problème du contrôle optimal une autre formulation d’un aspect
plus mathématique, c’est la. formulation dite faible du problème du contrôle optimal stochas-
tique. A la différence de la formulation forte (qui est adaptée à des situations pratiques), l’espace
de probabilité n’est pas fixé à priori dans ce cas, il fait partie de la solution qui est un 6-uplet
fī de la forme ( , F, {Ft }tØ0 , P, W (.), u(.)). .

2.2 Formulation (faible)


Un intérêt de cette formulation, on le verra plus loin, est que son utilisation permet souvent
d’aboutir à des solutions fortes.
On définit UÊad [0, T ] l’ensemble des 6-uplets fi = ( , F, {Ft }tØ0 , W (.), P, u(.)) satisfaisant les
conditions suivantes :
i (Ê, F, {Ft }tØ0 , P ) est un espace de probabilité filtré ;
ii {W (t)}tØ0 est un mouvement brownien standard rn-dimensionnel défini sur (Ê, F, {Ft }tØ0 , P ) ;
iii u(.) est un processus {F}tØ0 -adapté sur ( , F, P ) à valeurs dans U ;
iv x(.) est solution de (XI.14) sur ( , F, {F}tØ0 , P ) associé au 6-uplets fi.
v les contraintes éventuelles sur x(t) sont satisfaites ;
vi f (.; x(.), u(.)) œ L1F (0, T, R) et h(x(T )) œ L1FT ( ; R).L1F (0, T, R) et L1FT ( ; R) sont défi-
nies sur ( , F, {Ft }tØ0 , P ) associé au 6-uplets fi.

188
XI.3 Exercices d’application et d’assimulation

Les éléments fi œ UÊad [0, T ] sont des contrôles admissibles.

Problème (F.A) : « Minimiser (XI.15) sur UÊad [0, T ] ».


On cherche le 6-uplet fī œ UÊad [s, T ] s’il existe, tel que :

J(fī) = inf J(fi). (XI.17)


fiœUÊ
ad
[s,T ]

Voilà, nous venons ainsi d’appréhender et formuler le problème du contrôle optimal stochastique.
Une question naturelle qui nous vient toute suite à [’esprit est celle de savoir comment mettre
en évidence la solution optimale.

3 Exercices d’application et d’assimulation


1. Faire un résumé technique du chapitre.
2. Démontrez à document fermé les formules, les théorèmes et les propositions étudiés dans
ce chapitre.
3. Qu’en pensez vous de l’application de ces lois dans la vie économique et Statistique d’un
pays.

189
XII. Principe de Maximun et Programmation dynamique des Systèmes
Économiques.

190
Chapitre XII

Principe de Maximun et Programmation


dynamique des Systèmes Économiques.

Dans ce chapitre, nous étudions deux approches de résolution du problème du contrôle optimal
stochastique. La première, vérifiée dans les années 50 par Pontryagin et son équipe, énonce
une condition nécessaire (et suffisante dans certains cas) d’optima lité, c’est le principe du
maximum. Il stipule que tout contrôle optimal et la trajectoire associée vérifient un système
d’équations différentielles de type hamiltonien Nous regar dons d’abord le cas des problèmes sans
contraintes sur la variable d’état, et explorons par la suite celui avec contraintes. La deuxième
approche, la programmation dynamique, consiste, quant à elle. à établir une relation entre une
famille sous-problèmes considérés, pour ensuite les résoudre à travers une équation aux dérivées
partielles du second ordre, l’équation d’Ham’ilton-lacobi-Bellman (HJB, en abrégé). Lorsque
cette équation est ré soluble analytiquement ou numériquement, la technique de vérification
que nous verrons plus loin dans ce chapitre, est une méthode utilisée pour obtenir le contrôle
optimal Malheureusement, l’équation HJB n’admet pas toujours des solutions assez régulières.
C’est alors qu’intervient la notion de solution de viscosité. Pour commencer, nous allons d’abord
énoncer un théorème d’existence du contrôle optimal.

1 Existence du contrôle optimal


Effectuons d’abord quelques hypothèses nécessaires.

1.1 Quelques hypothèses :


Nous conservons les notations du chapitre précédent.
- (S0)(U, d) est un espace polonais (espace métrique complet séparable).
- (S1) Il n’ y a pas de contraintes sur la variable d’état.

191
XII. Principe de Maximun et Programmation dynamique des Systèmes
Économiques.

- (S2 ) Pour tout (t, x) œ [0, T ] ◊ Rn , l’ensemble (b, f )(t, x, U ) = {(bi (t, x, u), f (t, x, u))|u œ
U, i = 1, 2, · · · , n} est convexe est fermé dans Rn+1 .
- (S3 ) Les fonctions b, ‡, f et h sont mesurables, et il existe L > 0 et une fonction Ê̄ : [0, Œ]
tels que pour Ï = b, ‡, f, h, on a :
Y
_
_
_
_
|Ï(t, x, u) ≠ Ï(t, x̂, û)| Æ L|x ≠ x̂| + Ê̄(d(u, û)),
]
’t œ [0, T ], x, x̂ œ Rn , u, û œ U, (XII.1)
_
_
_
_
[|Ï(t, 0, u) Æ L, ’(t, u) œ [0, T ] ◊ U.

- (S4) {Ft }tØ0 est la filtration naturelle générée par W (.), augmentée des ensembles né-
gligeables éléments de F.
- (S5) Les fonctions b, ‡, f et h sont C 2 en x, et de plus, il existe L > 0 et une fonction
Ê̄ : [0, Œ] æ [0, Œ] tels que pour Ï = b, ‡, f, h, on a :
Y
_
_
_
_
Ïx (t, x, u) ≠ Ïx (t, x̂, û)| Æ L|x ≠ x̂| + Ê̄(d(u, û)),
]
_Ïxx (t, x, u) ≠ Ïxx (t, x̂, û)| Æ Ê̄|x ≠ x̂| + d(u, û), (XII.2)
_
_
_
[ ’t œ [0, T ], x, x̂ œ Rn , u, û œ U.

Théorème 5 (Existence du contrôle optimal)


Sous les conditions (S0)-(S3), si le problème (F A) est fini, alors il admet un contrôle
optimal.

Preuve: Soit ‹[0, T ] l’ensemble des fonctions mesurables de [0, T ] à U et soit (xj (.), uj (.))
une suite telle que pour j æ Œ on a :

J(uj (.)) æ inf J(u(.)).


‹[0,T ]

D’après, les suites xj (.), b(., xj (.), uj (.)), et f (., xj (.), uj (.)) sont uniformément bornées en j.
Alors xj (.) est équicontinue (à cause de l’équation d’état). Il est donc possible de trouver une
sous suite telle que pour j æ Œ,
Y
_
_
_
_xj (.) æ x̄(.), dans C([0, T ]; Rn ),
_
_
_
]b(., xj (.), uj (.)) æ b̄(.), faiblement
_
dans L2 (0, T, Rn ),
(XII.3)
f (., xj (.), uj (.)) æ f¯(.), faiblement
_
_
_
_
_
dans L2 (0, T ; Rn ),
_
_
_
[h(x (T ) æ h(x̄(T )), dans R.
j

192
XII.1 Existence du contrôle optimal

En raison de la première convergence de (XII.3) et le théorème de Mazur (Yosida, K. , 1980)[p.


q
l20,Théorème 2] [9]), il existe –ij Ø 0 avec iØ1 –ij = 1, tel que pour j æ Œ,
Y
q
_
] –ij b(., x̄j (.), ui+j (.)) æ b̄(.), fortement dans L2 (0, T, Rn ),
(XII.4)
iØ1
[q –ij f (., x̄j (.), ui+j (.)) æ f¯, fortement dansL2 (0, T, Rn ).
_
iØ1

Ainsi, l’hypothèse (S2) nous permet d’écrire :

(b̄(t), f¯(t)) œ (b, f )(t, x̄, U ).

Donc, d’après le lemme de Filippov (voir Li-Yong|1,p.102,corollaire 2.26|, il existe un ū(.) œ


‹[0, T ] tel que

b̄(t) = b(t, x̄(t), ū(t)), f¯(t) = f (t, x̄(t), ū(t)), t œ [0, T ].

(x̄(.), ū(.)) est alors une paire admissible du problème (FA). De plus, par le lemme de Fatou,
on obtient :
⁄ T
J(ū(.)) = f (t, x̄(t), ū(t))dt + h(x̄(T ))
0
I⁄ J
ÿ T
Æ lim –ij f (t, xi+j(t) , ui+j (t))dt + h(xi+j (T ))
jæŒ
iØ1 0
ÿ
= lim –ij J(ui+j (.)) = inf J(u(.)).
jæŒ u(.)œ‹[0,T ]
iØ1

En conclusion, ū(.) œ ‹[0, T ] est un contrôle optimal. ⇤

Remarque 8 On démontre l’existence du contrôle optimal dans le cas de la formulation forte


seulement pour le problème (FL) qui se caractérise par le fait que l’équation d’état associée est
linéaire, c-à-d de la forme :
Y
_
]dx(t) = [Ax(t) + Bu(t)]dt + [Cx(t) + Du(t)]dW (t), t œ [0, T ]
(XII.5)
_
[x(0) = x0 ,

où A, B, C, D sont des matrices convenablement choisies. x(.) est à valeurs dans Rn , et u(.) œ
UL [0, T ] = {u(.) œ L2F (0, T, Rk )|u(t) œ U, t œ [0, T ], Pp .s.}

Le contrôle existera donc si le problème est fini, et U ™ Rk est convexe et compact avec les
fonctions f et h convexes.

193
XII. Principe de Maximun et Programmation dynamique des Systèmes
Économiques.

2 Le principe du maximum stochastique


2.1 Cas sans contrainte sur la variable d’état
Commençons par rappeler la formulation du problème du contrôle optimal : soit un espace
de probabilité filtré ( , F, {Ft }tØ0 , P ) sur lequel est défini un mouvement brownien standard
m-dimensionnel W (.). Considérons l’équation différentielle stochastique suivante :
Y
_
]dx(t) = b(t, x(t), u(t))dt + ‡(t, x(t), u(t))dW (t),
(XII.6)
_
[x(0) = x 0 œ Rn ,

où b : [0, T ] ◊ Rn ◊ U æ Rn , ‡ : [0, T ] ◊ Rn ◊ U æ Rn◊m , et U un espace métrique séparable.


T œ [0, +Œ[ fixé.
On définit la fonction de coût :
I⁄ J
T
J(.) = E f (t, x(t), u(t))dt + h(x(T )) . (XII.7)
0

Et on définit également U[0, T ] = {u : [0, T ] ◊ æ U |u(.) est {Ft }tØ0 ≠ adapté} .

Problème sans contrainte (SC) : « Minimiser (XII.7) sur U[0, T ] ». S’il existe, on cherche
le contrôle ū(.) œ U[0, T ] tel que :

J(ū(.)) = inf J(u(.)). (XII.8)


u(.)œU[0,T ]

Les quantités x̄(.) © (., ū(.)) et (x̄(.), ū(.)) sont appelées respectivement trajectoires opti-
males et paires optimales.
Voilà ainsi défini le problème du contrôle optimal stochastique (sans contrainte). Nous allons
maintenant nous munir d’outils nécessaires pour énoncer notre principe du maximum. Rappe-
lons que le but visé ici, est de donner une condition nécessaire d’optimalité.

Equations adjointes
Dans cette partie, nous introduisons les équations adjointes, impliquées dans le principe du
maximum stochastique et le système hamiltonien associé. Il s’agit EDSRS (équations diffé-
rentielles stochastiques rétrogrades) que l’on devra être capable de résoudre afin d’obtenir le
contrôle optimal. Une discussion plus approfondie sur leur théorie est disponible dans (Yong et
Zhou,1999 [7]).

194
XII.2 Le principe du maximum stochastique

a) Première équation :
Y qm
_
_
_
_
dp(t) = ≠{bx (t, x̄(t), ū(t))T p(t) + j=1 ‡xj (t, x̄(t), ū(t))T qj (t)
]
_ ≠fx (t, x̄(t), ū(t))}dt + q(t)dW (t), t œ [0, T ] (XII.9)
_
_
_
[p(T ) = ≠hx (x̄(T )).

b) Deuxième équation :
Y
_
_
_
_
_
dP (t) = ≠{bx (t, x̄(t), ū(t))T P (t) + P (t)bx (t, x̄(t), ū(t))
_
_ qm
_
_
_
_
_
+ j=1 ‡xj (t, x̄(t), ū(t)T P (t)‡xj (t, x̄(t), ū(t))
]
qm
+ j=1 {‡x (t, x̄(t), ū(t)) Qj (t)
j T
+ Qj (t)‡xj (t, x̄(t), ū(t)) (XII.10)
_
_
_
_ qm
_
_
_
_ +Hxx (t, x̄(t), ū(t), p(t), q(t))}dt + j=1 Qj (t)dW j (t),
_
_
_
[P (T )
_
= ≠hxx (x̄(T )),

où l’hamiltonien H est défini par :

H(t, x, u, p, q) = Èp, b(t, x, u)Í + tr[q T ‡(t, x, u)] ≠ f (t, x, u), (XII.11)

Avec (t, x, u, p, q) œ [0, T ] ◊ Rn ◊ U ◊ Rn ◊ Rn◊m , et (pÈ.), qÈ.)) œ L2F (0, T, Rn ) ◊ (L2F (0, T ; Rn ◊
(L2F (0, T, Rn )m est la solution {Ft }tØ0 -adaptée de (XII.9).
P (.), Q(.)) œ L2F (0, T, S n ) ◊ (L2F (0, T, S n ))m est la solution {Ft }tØ0 -adaptée de (XII.10). Et,
S n = {A œ Rn◊n |AT = A}.
Les équations (XII.9) et (XII.10) s’appellent équation adjointe du premier ordre et équation
adjointe du second ordre, respectivement. Avant d’énoncer le principe du maximum stochas-
tique, définissons la fonction H par :

1
H(t, x, u) = H(t, x(t), u(t), p(t), q(t)) ≠ tr[‡(t, x̄(t))T P (t)‡(t, x̄(t), ū(t))]
2
1
+ tr{[‡(t, x̄(t), ū(t)) ≠ ‡(t, x̄(t), u)]T P (t) (XII.12)
2
.[‡(t, x, u) ≠ ‡(t, x̄(t), ū(t))]}.

Théorème 6 (Principe du maximum stochastique)


On suppose que les conditions (S0), (S3), (S5) sont satisfaites. Soit (x̄(.), ū(.)) une paire

195
XII. Principe de Maximun et Programmation dynamique des Systèmes
Économiques.

optimale du problème (SC). Alors il existe des paires de processus


Y
](p(.), q(.))
_
œ L2F (0, T ; Rn ) ◊ (L2F (0, T ; Rn )m ,
(XII.13)
_
[(P (.), Q(.)) œ L2F (0, T ; Sn ) ◊ (L2F (0, T ; Sn )m ,

satisfaisant les équations adjointes (XII.9) et (XII.10) respectivement, et telles que :

H(t, x̄(t), ū(t)) = maxH(t, x̄(t), u), ’t œ [0, T ]. (XII.14)


uœU

La relation (XII.14) est appelée la condition du maximum. Une démonstration détaillée de ce


théorème se retrouve dans (Yong et Zhou, 1999).
En utilisant l’hamiltonien H, les systèmes (XII.6) et (XII.9) peuvent être réécrits de la
manière suivante :
Y
_
_
_
_
dx(t) = Hp (t, x(t), p(t), q(t))dt + Hq (t, x(t), u(t), p(t), q(t))dW (t),
]
dp(t) = ≠Hx (t, x(t), u(t), p(t), q(t)dW (t), t œ [0, T ], (XII.15)
_
_
_
_
[x(0) = x p(T ) = ≠h (x(T )).
0 x

Définition 13 On appelle système hamiltonien, le système d’équations différentielles obtenu


par combinaison de (XII.15), (XII.10) et (XII.14).

Théorème 7 (Deuxième version du principe du maximum).


On suppose que les conditions (S3) ≠ (S5) sont satisfaites. Soit (x̄(.), ū(.)) une paire op-
timale du problème (SC). Alors le 6-uplet (x(t), u(t), p(t), q(t), P (t), Q(t)), satisfait le système
hamiltonien.

2.2 Condition suffisante d’optimalité


On se munit d’abord de la condition supplémentaire suivante :
(S6) U est un domaine convexe de Rk Les fonctions b, ‡ et f sont localement lipschitziennes
en u, et leurs dérivées en x sont continues en (x, u).

Théorème 8 (Condition suffisante d’optimalité)


On suppose que :
i) (S0), (S3) ≠ (S6) sont satisfaites,
ii) ((x̄(.), ū(.), p(.), q(.), P (.), Q(.)) est un 6-uplet admissible,

196
XII.2 Le principe du maximum stochastique

iii) h(.) est convexe, H(t, ., ., p(t), q(t)) est concave pour tout t œ [0, T ] et que :

H(t, x̄(t), ū(t)) = maxH(t, x̄(t), u), t œ [0, T ].


uœU

Alors,

(x̄(t), ū(t)) est une paire optimale du problème (SC).

Pour la démonstration de ce théorème, voir (Yong et Zhou, 1999).

2.3 Cas avec contrainte sur la variable d’état


Considérons l’équation d’état (XII.6) et la fonction de coût (XII.7). On rajoute la contrainte
suivante sur la variable d’état x :
A⁄ B
T
E (h(x(T ))) + E f (t, x(t), u(t))dt œ , (XII.16)
0

où h : Rn æ Rl et f : [0, T ] ◊ Rn ◊ U æ Rl sont des fonctions données et est un sous-ensemble


de Rl . Tout u œ U[0, T ] qui satisfait (XII.16) est appelé contrôle admissible.
L’ensemble des contrôles admissibles se note Uad [0, T ].
Problème avec contrainte (AC) : « Minimiser (XII.7) sur Uad [0, T ] »
On cherche le contrôle ū(.) œ Uad [0, T ], s’il existe, tel que :

J(ū(.)) = inf J(u(.)). (XII.17)


u(.)œUad [0,T ]

Pour énoncer notre principe du maximum, nous avons besoin de la condition suivante : (S7)
est convexe et fermé dans Rl . Et de plus, chaque composante hi de h et f i de f (i = 1, 2, · · · , l)
vérifie les conditions (XII.1) et (XII.2).

Définition 14 On définit l’opérateur suivant appelé hamiltonien par :


H(t, x, u, p, q,  0 , Â) = ≠ 0 f (t, x, u) ≠ ÈÂ, f (t, x(t), u(t))Í + Èp, b(t, x, u)Í + tr[q T ‡(t, x, u)],
(t, x, u, p, q,  0 , Â) œ [0, T ] ◊ Rn ◊ U ◊ Rn ◊ Rn◊m ◊ R ◊ Rl .

Théorème 9 On suppose que les conditions (S0), (S3) ≠ (S5) et (S7) sont satisfaites.
Soit Èx̄(.), ū(.)) une paire optimale du problème (AC). Alors il existe ( 0 , Â) œ R1+l satis-
faisant :
i) Â 0 Ø 0, |Â 0 |2 + |Â|2 = 1,

197
XII. Principe de Maximun et Programmation dynamique des Systèmes
Économiques.

sT
ii) ÈÂ, z ≠ E (h(x̄(T ))) + 0 E (f (t, x̄(t), ū(t))) dtÍ Ø 0, ’z œ ,
et il existe des solutions adaptées
Y
](p(.), q(.))
_
œ L2F (0, T ; Rn ) ◊ (L2F (0, T ; Rn )m ,
(XII.18)
_
[(P (.), Q(.)) œ L2F (0, T ; Rn ) ◊ (L2F (0, T ; Sn )m ,

des équations adjointes suivantes :


Y
_
]dp(t) = ≠Hx (t, x̄(t), ū(t), p(t), q(t), Â 0 , Â)dt + q(t)dW (t),
_ ql (XII.19)
[p(T ) =≠ Â i hix (x̄(T )),
i=0

Y
_
_
_
_
_
dP (t) = ≠{bx (t, x̄(t), ū(t))T P (t) + P (t)bx (t, x̄(t), ū(t))
_
_ qm
_
_
_
_
_
+ j=1 ‡xj (t, x̄(t), ū(t))T P (t)‡xj (t, x̄(t), ū(t))
]
qm Ë j È
+ ‡ (t, x̄(t), ū(t))T Q j (t) + Qj (t)‡xj (t, x̄(t), ū(t)) (XII.20)
_
_ j=1 x
_
_
_
_
_
_ +Hxx (t, x̄(t), ū(t), p(t), q(t), Â 0 , Â)}dt + summ
j=1 Qj (t)dW (t),
j
_
_
_ ql
[P (t)
_
=≠ Â i hixx (x̄(T )),
i=0

telles que :

H(t, x̄(t), ū(t), p(t), q(t), Â 0 , Â) ≠ H(t, x̄(t), u, p(t), q(t), Â 0 , Â).
A
1
≠ tr {‡(t, x̄(t), ū(t)) ≠ ‡(t, x̄(t), u)}T P (t) (XII.21)
2
B
.{‡(t, x̄(t), ū(t)) ≠ ‡(t, x̄(t), u)} Ø 0, .

’u œ U, t œ [0, T ].

Pour la démonstration de ce théorème, voir (yong et Zhou,1999).

Remarque 9 Le cas où h = f = 0 et = Rn nous ramène au problème sans contrainte.

3 Programmation dynamique
La programmation dynamique est une technique mathématique développée dans les an-
nées 50 par Richard Bellman. L’idée de base est d’établir une relation entre une famille de
sous-problèmes considérés, pour ensuite tous les résoudre par le biais d’une équation aux dé-

198
XII.3 Programmation dynamique

rivées partielles du second ordre, l’équation d’hamilton-Jacobi-Bellman (HJB). Malheureuse-


ment, cette dernière équation n’admet pas toujours des solutions assez régulières (qui ne sont
pas suffisamment dérivables). Pour palier à cette lacune, on fera appel à la notion de solution
de viscosité introduite par Crandall et Lions dans les années 80.

Pour commencer. nous allons définir les « sous-problèmes ». En fait, leur formulation est
très similaire à la formulation faible du problème du contrôle optimal que nous avons énoncée
au chapitre 2. Il suffit de changer le temps et l’état initial dans (XII.6).

Soit un espace de probabilité filtré (‡, F, {Ft }tØ0 , P ) sur lequel est défini un mouvement
brownien standard m≠dimensionnel W (.), et (s, y) œ [0, T ] ◊ R. Considérons l’équation d’état
suivante : Y
]dx(t) = b(t, x(t), u(t))dt + ‡(t, x(t), u(t))dW (t), t œ [s, T ],
_
(XII.22)
_
[x(s) = y,

et soit la fonction de coût :


; Ós Ô
J(s, y; u(.)) = E s
T
f (t, x(t), u(t))dt + h(x(T )) . (XII.23)

on définit UÊ [s, T ] l’ensemble des 5-uplets (‡, F, W (.), P, u(.)) (que nous noterons simplement
par u(.) satisfaisant les conditions suivantes :

i) (‡, F, P ) est un espace de probabilité complet.


ii) {W (t)}sÆtÆT est un mouvement brownien standard m-dimensionnel défini sur (‡, F, P ),
avec W (s) = 0 presque sûrement, et Fls = ‡{(W (r) : s Æ r Æ t} augmentée des
ensembles négligeables dans F.
iii) u : [s, T ] ◊ ‡ æ U est un processus {Fts }tØs -adapté dans (‡, F, P ).
iv) (XII.22) admet une unique solution x(.) sur ( , F, {Fts }tØs , P ).
v) f (., x(.), u(.)) œ L1F (0, T ; R) et h(x(T )) œ L1FT ( ; R).

Sous-problème sans contrainte (SCxy ) :« Minimiser (XII.23) sur UÊ [0, T ] ». On cherche


le 5-uplet ū(.) © ( ¯ , F̄, W̄ (.), P̄ , ū(.)) œ UÊ [s, T ] s’il existe, tel que :

J(t, y; ū(.)) = inf J(t, y; u(.)). (XII.24)


u(.)œUÊ

199
XII. Principe de Maximun et Programmation dynamique des Systèmes
Économiques.

Définition 15 On définit la fonction valeur du problème (SC) par :


Y
]V (s, y) = inf J(s, y; u(.)), ’(s, y) œ [0, T ] ◊ Rn ,
_
_
u(.)œUÊ
_
_
[V (T, y) = h(y), ’y œ Rn .

Notons que pour que la fonction valeur soit bien définie, il faudrait que J(t, y, u(.)) le soit,
c’est-à-dire que les fonctions b, ‡, f et h satisfassent la condition (S1)Õ suivante :
i) b, ‡, f , et h sont uniformément continues.
ii) Il existe L > 0 tel que pour Ï = b, ‡, f, h, on a :
Y
_
]|Ï(t, x, u) ≠ Ï(t, x̂, u)| Æ L|x ≠ x̂|, ’t œ [0, T ], x, x̂ œ Rn , u, û œ U,
(XII.25)
_
[|Ï(t, 0, u) Æ L, ’(t, u) œ [0, T ] ◊ U.

Soit en plus, la condition :


(S2)Õ (U, d) est un espace polonais (espace métrique complet séparable).

Théorème 10 (Principe d’optimalité de Bellman)


On suppose les conditions (S1)Õ et (S2)Õ satisfaites. Alors pour tout (s, y) œ [0, T ]◊Rn , ’0 Æ
s Æ ŝ Æ T , on a :
I⁄ J

V (s, y) = inf E f (t, s, y, u(.)), u(t))dt + V (ŝ, x(ŝ, y, u(.))) . (XII.26)
u(.)œUÊ [s,T ] s

Preuve: Voir (Yong et Zhou,1999) ⇤

On définit C 1,2 ([0, T ] ◊ Rn ), l’ensemble des fonctions continues ‹ : [0, T ] ◊ Rn æ R telles


que vx , vt , et vxx sont continues.
L’hamiltonien généralisé est la fonction G(t, x, u, p, P ) définie par :

1
G(t, x, u, p, P ) = tr(P ‡(t, x, u)‡(t, x, u)T ) + Èp, b(t, x, u)Í ≠ f (t, x, u), (XII.27)
2
’(t, x, u, p, P ) œ [0, T ] ◊ Rn ◊ U ◊ Rn ◊ Sn .

Proposition 1 Sous les conditions (S1)Õ ≠ (S2)Õ et pour T > 0, la fonction valeur V possède
les propriétés suivantes :
1. |V (s, y)| Æ K(1 + |y|), ’(s, y) œ [0, T ] ◊ Rn , K > 0.

200
XII.3 Programmation dynamique

1
2. |V (s, y) ≠ V (ŝ, ŷ| Æ L{|y ≠ ŷ| + (1 + |y|V |ŷ|)|s ≠ ŝ| 2 }, ’s, ŝ œ [0, T ], y, ŷ œ R, L >
0, (aV b = max(a, b)).

3. Si V œ C 1,2 ([0, T ] ◊ Rn ), alors V est solution de l’équation aux dérivées partielles du


second ordre :
Y
_
_
]≠v t + supG(t, x, u, ≠vx , ≠vxx ) = 0, (t, x) œ [0, T ] ◊ Rn ,
uœU (XII.28)
_
_
[v|t=T = h(x), x œ Rn .

L’équation (XII.28) est appelée équation de Hamilton-Jacobin-Bellman (HJB, en abrégé).

Preuve: Pour démontrer 1), fixons (s, y) œ [0, T ] ◊ Rn .


Pour tout ( , F, W (.), P, u(.)) œ UÊ [s, T ], le théorème 3 du chapitre 1 permet d’écrire :

E( sup |x(t)|) Æ KT (1 + |y|).


sÆtÆT

Les fonctions f et h étant localement lipschitziennes d’après (S1 )Õ , on en déduit qu’il existe
K > 0 tel que :
I⁄ J
T
J(s, y; u(.)) = E f (t, x(t), u(t))dt + h(x(T )) Æ K(1 + |y|), ’u œ UÊ [s, T ].
s

Ce qui entraîne |V (s, y)| Æ K(1 + |y|).


Pour démontrer maintenant 2), soient ŝ œ [s, T ], et y, ŷ œ Rn . Pour tout , F, W (.), P, u(.)) œ
UÊ [s, T ], soient x(.) et x̂(.) les états correspondant à (s, y, u(.)) et ŝ, ŷ, u(.)), respectivement.
En se servant encore du théorème 3, on a :
Ó 1
Ô
E( sup |x(t) ≠ x̂(t)|) Æ LT |y ≠ ŷ| + (1 + |y|V |ŷ|)|s ≠ ŝ| 2 .
tœ[ŝ,T ]

En raison de (S1)Õ , on obtient :


Ó 1
Ô
|J(s, y; u(.)) ≠ J(s, ŷ; u(.))| Æ LT |y ≠ ŷ| + (1 + |y|V |ŷ|)|s ≠ ŝ| 2 .

En prenant la borne inférieure pour les u(.) œ UÊ [s, T ], on a le résultat 2).


Enfin, fixons (s, y) œ [0, T ] ◊ Rn et u œ U . La formule d’Itô appliquée à V (s, x(s)) nous

201
XII. Principe de Maximun et Programmation dynamique des Systèmes
Économiques.

donne
⁄ s
V (s, y) =V (ŝ, x(ŝ)) + {Vt (t, x(t)) + ÈVx (t, x(t)), b(t, x(t), u(t))Í

1 Ë È
+ tr ‡(t, x(t), u(t))T Vxx (t, x(t))‡(t, x(t), u(t)) Ídt
⁄2 s
+ ÈVx (t, x(t)), ‡(t, x(t), u(t))dWt Í.

En prenant l’espérance de chaque côté, on obtient


⁄ ŝ I
E [V (s, y) ≠ V (ŝ, x(ŝ))] = ≠ E Vt (t, x(t)) + ÈVx (t, x(t)), b(t, x(t), u(t))Í
s
1 Ë È
+ tr ‡(t, x(t), u(t))T Vxx (t, x(t))‡(t, x(t), u(t)) Ídt
2

ou encore l’hamiltonien généralisé :


⁄ ŝ I
E [V (s, y) ≠ V (ŝ, x(ŝ))] =E ≠ Vt (t, x(t)) + f (t, x(t), u), u(t))
s
J
+ G(t, x, u, ≠Vx (t, x(t)), ≠Vxx (t, x(t)) dt.

D’après le principe d’optimalité de Bellman (XII.26), on a :


I⁄ J

V (s, y) ≠ E [V (ŝ, x(ŝ))] ≠ E f (t, x(t), u), u(t))dt Æ 0
s

et en faisant ŝ ¿ s, il vient que


C⁄ D
1 ŝ
0Ø E {≠Vt (t, x(t)) + G(t, x, u, ≠Vx (t, x(t)), ≠Vxx (t, x(t))} dt ,
ŝ ≠ s s

æ ≠Vt (s, y) + G(s, y, u, ≠Vx (s, y), ≠Vxx (s, y)), ’u œ U.

L’intégrale étant valable pour tout u, on a donc

0 Ø ≠Vt (s, y) + supG(s, y, u, ≠Vx (s, y), ≠Vxx (s, y)).


uœU

Réciproquement, pour tout Á > 0, 0 Æ s Æ ŝ Æ T avec ŝ ≠ s > 0 suffisamment petit.

202
XII.3 Programmation dynamique

D’après (XII.26), il existe u(.) © uÁ,ŝ œ UÊ [s, T ] tel que :


I⁄ J

V (s, y) + Á(ŝ ≠ s) Ø E f (t, x(t, x(t), u), u(t))dt + V (ŝ, x(ŝ)) ,
s

ce qui s’écrit encore


⁄ ŝC D
E [V (s, y) ≠ V (ŝ, x(ŝ)] 1
≠Á Æ ≠ E f (t, x(t), u), u(t))dt ,
ŝ ≠ s ŝ ≠ s s
1 ⁄ ŝ
= {≠Vt (t, x(t)) + G(t, x, u, ≠Vx (t, x(t)), ≠Vxx (t, x(t))} dt
ŝ ≠ s s I J
1 ⁄ ŝ
Æ ≠Vt (t, x(t)) + supG(t, x, u, ≠Vx (t, x(t)), ≠Vxx (t, x(t)) dt
ŝ ≠ s s uœU

æ ≠Vt (s, y) + supG(s, y, u ≠ vx (s, y), ≠Vxx (s, y)).


uœU

Cette dernière limite provient du fait que b, ‡, et f étant uniformément continues par (S1)’, on
a:

lim sup |Ï(t, y, u) ≠ Ï(s, y, u)| = 0


t¿s yœRn ,uœU

La démonstration est ainsi complétée. ⇤

3.1 Solutions de viscosité


L’équation HJB n’admet en général pas de solutions régulières, c-à-d qui ne sont pas dans
C 1,2 ([0, T ] ◊ Rn ). Les solutions de viscosité introduite par Grandall et Lions (1983) viennent
palier à cette lacune.

Définition 16 1. Une fonction u œ C([0, T ] ◊ Rn ) est une sous-solution de viscosité de


(XII.27) si :

u(T, x) Æ h(x), ’x œ Rn ,

et pour tout Ï œ C 1,2 ([0, T ] ◊ Rn ), chaque fois que v ≠ Ï atteint un maximum local en
(t, x) œ [0, T ] ◊ Rn , on a :

≠Ï(t, x) + sup G(t, x, u, ≠Ïx (t, x), ≠Ïxx )(t, x) Æ 0.


uœU

203
XII. Principe de Maximun et Programmation dynamique des Systèmes
Économiques.

2. Une fonction u œ C([0, T ] ◊ Rn ) est une sursolution de viscosité de (XII.27) si :

v(T, x) Ø h(x), ’x œ Rn ,

et pour tout Ï œ C 1,2 ([0, T ] ◊ Rn ), chaque fois que v ≠ Ï atteint un minimum local en
(t, x) œ [0, T ] ◊ Rn , on a :

≠Ï(t, x) + sup G(t, x, u, ≠Ïx (t, x), ≠Ïxx )(t, x) Ø 0.


uœU

3. Une fonction v œ C([0, T ] ◊ Rn est une solution de viscosité de (XII.27) si elle est à la
fois sous-solution et sursolution de viscosité de (XII.27).

Théorème 11 On suppose (S1)’ et (S2)’. Alors la fonction valeur V est une solution de vis-
cosité de (XII.28).

3.2 Théorème de vérification

Nous allons énoncer un résultat clé de la programmation dynamique. Il nous permettra de


vérifier qu’une paire admissible est optimale. Mieux, il nous propose comment construire un
contrôle optimal à partir des sous-problèmes que nous avons énoncés plus haut. Nous commen-
çons le cas où la solution de l’équation HJB est suffisamment dérivable.

Théorème 12 (Théorème de vérification classique)


1
On suppose (S1)’ et (S2)’ satisfaites. Soit v œ C 2 ([0, T ] ◊ Rn une solution d’équation HJB,
(XII.27). Alors on a :

v(s, y) Æ J(s, y; u(.)), ’u(.) œ UÊ [s, T ], (s, y) œ [0, T ] ◊ Rn .

De plus, une paire admissible (ū(.), x̄(.)) est optimale pour le problème (SCxy ) si et seulement
si :

vt (t, x̄(t) © max G(t, x̄(t), u, ≠vx (t, x̄(t)), ≠vxx (t, x̄(t)))
uœU

= G (t, x̄(t), ū(t), ≠vx (t, x̄(t)), ≠vxx (t, x̄(t))) .

204
XII.3 Programmation dynamique

Preuve: Soient u(.) œ UÊ [s, T ] et (s, y) œ [0, T ]◊Rn . on applique la formule d’ItÔ à v(s, x(s)).
⁄ sI
v(s, y) =v(T, x(T )) + vt (t, x(t)) + Èvx (t, x(t)), b(t, x(t), u(t))Í
T
J
1
+ tr[‡(t, x(t), u(t))T vxx (t, x(t))‡(t, x(t), u(t))] dt
2
⁄ s
+ Èvx (t, x(t)), ‡(t, x(t), u(t))dWt Í
T

Sachant que v(T, x(T )) = h((x(T )), en passant à l’espérance on a :


C⁄ I
T
v(s, y) = E [h((x(T ))] ≠E vt (t, x(t)) + Èvx (t, x(t)), b(t, x(t), u(t))Í
s
J D
1
+ tr[‡(t, x(t), u(t))T vxx (t, x(t))‡(t, x(t), u(t))] dt .
2

En introduisant l’hamiltonien généralisé (XII.27), on aboutit à :


C⁄ IC
T
v(s, y) =E [h((x(T ))] + E ≠ vt (t, x(t)) + f (t, x(t), u(t))
s
DJ D
+ G(t, x, u, ≠vx (t, x(t)), ≠vxx (t, x(t)) dt (XII.29)
C⁄ I
T
= J(s, y, u(.)) + E ≠ vt (t, x(t))
s
J D
+ G(t, x(t), u(t), ≠vx (t, x(t)), ≠vxx (t, x(t)) dt
C⁄ I
T
Æ J(s, y, u(.)) + E ≠ vt (t, x(t))
s
J D
+ sup G(t, x(t), u(t), ≠vx (t, x(t)), ≠vxx (t, x(t)) dt
uœU

= J(s, y, u(.)).

Cette dernière égalité vient du fait que v est solution de l’équation HJB. On obtient ainsi
l’inégalité souhaitée.

205
XII. Principe de Maximun et Programmation dynamique des Systèmes
Économiques.

Ensuite, en appliquant la deuxième égalité de (XII.29) à (x̄(.), ū(.)), on a :


C⁄ I
T
v(s, y) =J(s, y, ū(.)) + E ≠ vt (t, x̄(t))
s
D D
+ G(t, x̄(t), ū(t), ≠vx (t, x̄(t)), ≠vxx (t, x̄(t)) dt .

Par la définition de l’équation HJB, il vient que

≠vt (t, x̄(t)) + G(t, x̄(t), ū(t), ≠vx (t, x̄(t)), ≠vxx (t, x̄(t)) Æ 0

Donc on aura

G(t, x̄(t), ū(t), ≠vx (t, x̄(t)), ≠vxx (t, x̄(t))) = max G(t, x̄(t), u, ≠vx (t, x̄(t)), ≠vxx (t, x̄(t))),
uœU

si et seulement si

≠vt (t, x̄(t)) + G(t, x̄(t), ū(t), ≠vx (t, x̄(t)), ≠vxx (t, x̄(t)) = 0,

c-à-d, (ū(.), x̄(.)) est la paire optimale. Le théorème est ainsi démontré. ⇤

Pour énoncer l’équivalent du théorème de vérification dans le cas où la solution de l’équation


HJB n’est pas suffisamment dérivable, nous allons introduire les notions suivantes :

Définition 17 Soit v œ C([0, T ] ◊ R) et (t, x) œ [0, T ] ◊ R. On définit :

a) La sur différentielle parabolique du second ordre de v au point (t, x) par :


I
1,2,+
Dt,x v(t, x) = (q, p, P ) œ R ◊ R ◊ S n |
C
1
limsæt,sœ[0,T ] v(s, y) ≠ v(t, x)
yæx |s ≠ t| + |y ≠ x|
2
D J
1
≠ q(s ≠ t) ≠ Èp, y, ≠xÍ ≠ (y ≠ x) P (y ≠ x) Æ 0 .
T
2

206
XII.3 Programmation dynamique

b) La sous-différentielle parabolique du second ordre de v au point (t, x) par :


I
1,2,≠
Dt,x v(t, x) = (q, p, P ) œ R ◊ R ◊ S n |
C
1
limsæt,sœ[0,T ] v(s, y) ≠ v(t, x)
yæx |s ≠ t| + |y ≠ x|
2
D J
1
≠ q(s ≠ t) ≠ Èp, y, ≠xÍ ≠ (y ≠ x)T P (y ≠ x) Ø 0 .
2

1,2,+
Remarque 10 On définit les sur/sous-différentielle parabolique du second ordre à droite Dt+,x
1,2,≠ 1,2,+ 1,2,≠
et Dt+,x , respectivement, en restreignant s ¿ t. De plus, Dt+,x et Dt+,x sont convexes et on a
pour (t, x) œ [0, T ] ◊ R :
Y
_
_ 1,2,+ 1,2,+
_
_Dt,x v(t, x) ™ Dt+,x v(t, x),
_
_
_
_ 1,2,≠ 1,2,≠
]Dt,x v(t, x) ™ Dt+,x v(t, x),
(XII.30)
_ 1,2,+ 1,2,≠
_
_
_
_
Dt,x (≠v)(t, x) = ≠Dt,x v(t, x),
_
_
[D 1,2,+ (≠v)(t, x)
_ 1,2,≠
= ≠Dt+,x v(t, x).
t+,x

Les inclusions peuvent être strictes. D’après a) et b) de la définition (XII.7), on voit que, pour
tout v œ C([0, T ] ◊ Rn ) et (t, x) œ [0, T ] ◊ Rn ,
Y
1,2,+ 1,2,+
_
]Dt,x v(t, x) + {0} ◊ {0} ◊ S n + = Dt,x v(t, x),
(XII.31)
[D 1,2,≠ v(t, x) ≠ {0} ◊ {0} ◊ S n
_ 1,2,≠
= Dt,x v(t, x)
t,x +

et pour tout (t, x) œ [0, T ] ◊ Rn ,


Y
1,2,+ 1,2,+
_
]Dt,x v(t, x) + [0, Œ) ◊ {0} ◊ S n + = Dt,x v(t, x),
(XII.32)
[D 1,2,≠ v(t, x) ≠ [0, Œ) ◊ {0} ◊ S n
_ 1,2,≠
= Dt,x v(t, x),
t,x +

où S+n = {S œ S n |S Ø 0}.
De plus v œ C([0, T ] ◊ Rn admet des dérivées ut , vx et vxx en (t0 , x0 ) œ [0, T ] ◊ Rn , si et
seulement si

1,2,+ 1,2,≠
Dt,x v(t0 , x0 ) fl Dt,x v(t0 , x0 ) ”= ÿ.

207
XIII. Applications : Stratégie Moyenne-Variance.

Théorème 13 (Théorème de vérification « non classique »


On suppose (S1)’ et (S2’) satisfaites. Soient V la fonction valeur,(s, y) œ [0, T ] ◊ Rn fixé
et (ū(.), x̄(.)) la paire optimale du problème (SCxy ). Alors pour tout (q̄, p̄, P̄ ) œ L2F (S, T ; Rn ) ◊
L2F (S, T ; Rn ) ◊ L2F (S, T ; Sn ) satisfaisant :

1,2,≠
(q̄(t), p̄(t), P̄ (t)) œ Dt+,x V (t, x̄(t)), t œ [s, T ], P ≠ p.s.,

On doit avoir :

E(q̄(t) Æ E(G(t, x̄(t), ū(t), ≠p̄(t), ≠P̄ (t)), t œ [s, T ].

La démonstration de ce théorème est disponible dans (Yong et Zhou, 1999).

4 Exercices d’application et d’assimulation


1. Faire un résumé technique du chapitre.
2. Démontrez à document fermé les formules, les théorèmes et les propositions étudiés dans
ce chapitre.
3. Qu’en pensez vous de l’application de ces lois dans la vie économique et Statistique d’un
pays.

208
Chapitre XIII

Applications : Stratégie Moyenne-Variance.

Nous amorçons dans ce chapitre l’application pratique de la théorie que nous venons de ré-
viser. Nous étudions essentiellement le problème de sélection du portefeuille moyenne-variance.
En effet, il s’agit pour un investisseur, de trouver la stratégie d’investissement telle que la valeur
espérée de sa richesse terminale satisfasse E(X(T )) = d pour un d donné, tout en s’assurant
de minimiser le risque représenté par la variance de sa richesse terminale. Nous regardons pre-
mièrement, le cas sans contrainte de vente à découvert, c’est-à-dire que notre investisseur est
autorisé à vendre des titres sans les détenir. Ensuite, nous explorons celui où cette pratique de
« vente à crédit » est interdite, ce sera le cas dit avec contrainte. Les deux cas seront traités en
utilisant les deux approches de résolution dont nous avons discuté dans le chapitre précédent,
à savoir, le principe du maximum stochastique et la programmation dynamique.

1 Formulation du problème.

Dans ce suit, X Õ désigne la transposée de X.


Considérons un modèle de marché dans lequel m + 1 actifs sont échangés continuellement.
L’un d’entre eux, sans risque, qu’on appelle obligation, est tel que le processus de prix P0 (t)
vérifie l’équation différentielle ordinaire :
Y
]dP0 (t)
_
= r(t)P0 (t)dt, t œ [O, T ],
(XIII.1)
_
[P0 (0) = p0 > 0,

où r(t) > 0, est le taux d’intérêt de l’actif sans risque. Il va de soi que P0 (t) augmentera
constamment dans le temps. Les m autres actifs risqués appelés actions, sont tels que les prix

209
XIII. Applications : Stratégie Moyenne-Variance.

P1 (t), · · · , Pm (t) satisfont l’équation différentielle :


Y Ó Ô
qm
]dPi (t)
_
= Pi (t) bi (t)dt + ‡ij dW j (t) , t œ [0, T ], i = · · · , m.
(XIII.2)
j=1
_
[Pi (0) = pi > 0,

où bi : [0, T ] æ R, bi (t) > 0 est appelé le taux d’appréciation, et ‡i (t) = (‡i1 (t), · · · , ‡im (t)) :
[0, T ] æ Rm est la volatilité ou encore dispersion de la iième action. W © (W 1 (t), · · · , W m (t))Õ
est un mouvement brownien standard m-dimensionnel, défini sur un espace de probabilité
q
filtré et complet ( , F, {Ft }tØ0 , P ). Le terme de diffusion ȇi (t), dW (t)Í © m j=1 ‡ij (t)dW (t)
j

de (XIII.2) reflète la fluctuation du prix des actions, traduisant ainsi le caractère risqué de ces
actifs. Pour intéresser les éventuels acheteurs, il est naturel de supposer :

bi (t) > r(t), ’t œ [0, T ], 1 Æ i Æ m. (XIII.3)

On définit la matrice de variance

‡1 (t)
..
‡(t) = . © (‡ij (t)m◊m .
‡m (t)

Et on suppose la condition de non-dégénérescence,c-à-d qu’il existe ” > 0 tel que :

‡(t)‡(t)Õ Ø ”I, ’t œ [0, T ]. (XIII.4)

Considérons maintenant un investisseur détenant Ni (t) parts de l’actif i(i = 0, 1, · · · , m) à


l’instant t, et notons par X(t) sa richesse totale. On a :
m
ÿ
X(t) = Ni (t)Pi (t), t Ø 0. (XIII.5)
i=0

Alors, en nous servant de l’équation (XI.10), en supposant qu’il n’y pas de frais de transaction
sur les actions, c-à-d µi (t) = 0(i = 1, · · · , m), et qu’aucun retrait pour consommation n’est
effectué, c-à-d c(t) = 0 pour tout t Ø 0. La dynamique de la richesse totale de notre investisseur
est modélisée par l’équation différentielle stochastique suivante :
Y
qm qm qm
_
]dx(t) = {r(t)x(t) + i=1 [bi (t) ≠ r(t)]ui (t)}dt + ‡ij (t)ui (t)dW j (t),
(XIII.6)
j=1 i=1
_
[x(0) = x0 ,

210
XIII.1 Formulation du problème.

où ui (t) = Ni (t)Pi (t), est la richesse de l’investissement sur le ie actif. Lorsque ui (t) < 0,
il/elle est à court du iième actif. Quand u0 (t) < 0, l’investisseur emprunte le montant |u0 (t)|
au taux d’intérêt r(t). Il est clair qu’en changeant ui (t), notre investisseur change l’allocation
de sa richesse sur les m + 1 actifs. Le vecteur u(t) = (u1 (t), · · · , um (t)) est le portefeuille
de l’investisseur. Et il faut remarquer que l’allocation faite à l’obligation n’apparaît pas dans
le portefeuille, puisque ce dernier est entièrement déterminé par l’allocation effectuée sur les
actions, étant donnée la richesse totale.

Définition 18 La stratégie moyenne-variance est la stratégie d’investissement qui satisfait


E(x(T )) = d, pour d donné, tout en s’assurant de minimiser le risque, représenté par la variance
de x(T ).
Le problème d’optimisation correspondant se formule de la manière suivante :

min V ar x(T ) © E[x(T ) ≠ d]2


Y
_
_
_
_
E(x(T )) = d,
]
sous u(.) œ L2F (O, T ; Rm
+ ),
(XIII.7)
__
_
_
[(X(.), u(.)) satisfait (XIII.6).

Le contrôle optimal de (4.7) est appelé stratégie efficiente, la paire (V ar(x(T )), d), où V ar(x(T ))
est la valeur optimale des (XIII.7) est le point
sT
efficient, et l’ensemble de tous les points efficients
T
lorsque d parcourt |x0 e 0 r(s)ds
, +Œ)(x0 e 0 r(s)ds
correspond au gain réalisé si toute la richesse
initiale était dans les obligations) est la frontière efficiente.
Avant d’entamer la résolution de notre problème, rappelons deux principaux résultats utiles
de l’analyse convexe.

Lemme 1 Soit s une fonction continue, strictement convexe et quadratique définie par

s(z) = Î(DÕ )≠1 + (DÕ )≠1 B Õ Î2 , z œ [0, Œ)m , (XIII.8)

où B Õ œ Rm
+, D œ R
m◊m
, et DÕ D > 0.
Alors s admet un unique minimum z̄ œ [0, Œ)m ,c-à-d,

Î(DÕ )≠1 z̄ + (DÕ )≠1 B Õ Î2 Æ Î(DÕ )≠1 z + (DÕ )≠1 B Õ Î2 , ’z œ [0, Œ)m .

211
XIII. Applications : Stratégie Moyenne-Variance.

Lemme 2 Soit h une fonction continue, strictement convexe et quadratique définie par

1
h(z) = z Õ DÕ Dz ≠ –Bz, z œ [0, Œ)m , (XIII.9)
2

où B Õ œ Rm
+, D œ
m◊m
, et DÕ D > 0.
(i) Pour tout – Æ 0, h admet un unique minimum –D≠1 ›¯ œ [0, Œ)m , où ›¯ = (DÕ )≠1 z̄ +
(DÕ )≠1 B Õ . z̄ étant le minimum de s(z) du lemme 1, de plus z̄D≠1 ›¯ = 0 et

1
‹ = h(–D≠1 ›¯ = ≠ –2 ΛÎ
h(–¯ ¯ 2,
2

avec ‹¯ = (DÕ D)≠1 z̄ + (DÕ D)≠1 B Õ .


(ii) Pour tout – < 0, h admet un minimum unique qui est 0.
La preuve des lemmes 1 et 2 est donnée dans la section 5.2 de Xu et Shreve (1992).

2 Résolution par le principe du maximum stochastique

2.1 Problème sans contrainte

Pour plus de commodité dans les calculs, nous nous plaçons dans le cas où m = 1, et b, ‡
et r sont des constantes positives, Posons

◊ = ‡ ≠1 (b ≠ r),

◊ est le coefficient de risque relatif. Nous supposons qu’il n’y a pas d’interdiction de vente à
découvert, c-à-d u(.) œ L2F (0, T ; R). Plus précisément, on a U ™ R.
Minimiser V ar x(T ) = E[x(T ) ≠ E(T )]2 , sous E(T ) = d, revient à minimiser E[x(T )2 ]. Etant
donnée la contrainte E(x(T )) = d, nous allons faire appel à la méthode du multiplicateur de
Lagrange. En introduisant le multiplicateur ⁄T œ R (puisque la contrainte dépend de T ), notre
problème se ramène donc à minimiser :

E{x(T )2 + ⁄T [x(T ) ≠ d]}, (XIII.10)

équivalent à minimiser : SA B2 T
⁄T
E U x(T ) + V, (XIII.11)
2

212
XIII.2 Résolution par le principe du maximum stochastique

l’équation d’état associée étant


Y
_
]dx(t) = [rx(t) + (b ≠ r)u(t)] dt + ‡u(t)dW (t),
(XIII.12)
_
[x(0) = x0 .

Nous savons d’après la remarque qui suit le théorème ?? que pour U ™ R convexe et compact,
1 22
le contrôle optimal existe car les fonctions f © 0 et h : x æ x + ⁄2T sont convexes. Soit
(x̄(.), ū(.)) une paire optimale, les équations adjointes du premier et second ordre associées au
problème sont respectivement :
Y
_
]dp(t) = ≠rp(t)dt + q(t)dW (t)
(XIII.13)
_
[p(T ) = ≠2(x̄(T ) + ⁄T
2
),

et Y
]dP (t)
_
= ≠2rP (t)dt + Q(t)dW (t)
_
(XIII.14)
[P (T ) = ≠2.

La résolution de (XIII.14) est immédiate et donne la solution

(P (t), Q(t)) = (≠2e2r(T ≠t) , 0).

Quant à (XIII.13), nous allons chercher p(t) de la forme

p(t) = (t)x̄(t) + (t)⁄T , avec (T ) = ≠2, (T ) = 1,

où (t) et (t) sont des fonctions déterministes. On a ainsi :


Ó Ô
dp(t) = ˙ (t)x̄(t) + [rx̄(t) + (b ≠ r)ū(t)] (t) + ˙ (t)⁄T dt + ‡ (t)ū(t)dW (t) (XIII.15)

Avant de continuer, notons que la fonction H (telle que définie par (XII.12) correspondante au
problème est donné par

1 Ë È
H(t, x̄, u) = ‡ 2 P (t)u2 + p(t)(b ≠ r) + ‡q(t) ≠ ‡ 2 P (t)ū u + rx̄p(t) (XIII.16)
2

H(t, x̄, u) est visiblement quadratique en u, et d’après le théorème 6, une condition nécessaire

213
XIII. Applications : Stratégie Moyenne-Variance.

pour que ū(.) soit le contrôle optimal est que la dérivée de H en ū s’annule, c’est-à-dire

p(t)(b ≠ r) + ‡q(t) = 0,

ce qui conduit à

(b ≠ r)
q(t) = ≠ p(t)

= ≠◊p(t).

Il va de soi que cette dernière relation entre p(t) et q(t) permet de voir l’EDSR (XIII.13) comme
une simple EDS (bien sûr en inversant le temps).

En identifiant les écritures de dp(t) dans (XIII.15) et (XIII.13), on obtient


Y
] ˙ (t)x̄(t) + [rx̄(t) + (b ≠ r)ū(t)]
_
(t) + ˙ (t)⁄T = ≠rp(t)
(XIII.17)
_
[‡ (t)ū(t) = q(t),

De cette deuxième égalité de (XIII.17), on écrit

1
ū(t) = ≠ q(t)
‡ (t)
≠◊
=≠ p(t)
‡ (t)
≠◊
=≠ [ (t)x̄(t) + (t)⁄T ]
‡ (t)
C D
≠◊ (t)
=≠ x̄(t) + ⁄T ,
‡ (t)

et en remplaçant ū(t) par sa valeur ci-dessus dans la première égalité de (XIII.17), on obtient
I C DI
˙ (t)x̄(t) + rx̄(t) + ≠◊ (b ≠ r) x̄(t) + (t)
⁄T (t) + ˙ (t)⁄T = ≠rp(t),
‡ (t)

qui s’écrit encore


Ë È Ë È
˙ (t) ≠ ◊2 (t) + r (t) x̄(t) + ˙ (t) ≠ ◊2 (t) ⁄T = ≠r (t)x̄(t) ≠ r (t)⁄T .

Nous allons donc choisir (t) et manière à satisfaire les équations différentielles ordinaires

214
XIII.2 Résolution par le principe du maximum stochastique

suivantes : Y
] ˙ (t) ≠ ◊ 2
_
(t) + 2r (t) = 0
(XIII.18)
_
[ (T ) = ≠2,
et Y
] ˙ (t) ≠ ◊ 2
_
(t) + r (t) = 0
(XIII.19)
_
[ (T ) = 1.

La résolution des EDOs (XIII.18) et (XIII.19) est directe et fournit les solutions

2 )(T ≠t) 2 )(T ≠t)


(t) = ≠2e(2r≠◊ et (t) = e(r≠◊ .

Remarquons que (t) < 0, pour tout t œ [0, T ], par conséquent les manipulations algébriques
effectuées plus haut sont tout à fait justifiées. Notre candidat pour le contrôle optimal est donc

1
ū(t) = ≠ q(t)
‡ (t)
◊ ⁄T ≠r(T ≠t)
= ≠ x̄ ≠ e .
‡ 2

Pour montrer que (x̄(.), ū(.)) est une paire optimale, nous utilisons essentiellement le théorème
?? sur la suffisance du principe du maximum stochastique. Il est clair que par sa construction,
ū(.) maximise la fonction H : u æ H(t, x̄, u), manifestement concave. D’autre part, h(x) =
1 22
x + ⁄2T est convexe et de plus, on a l’hamiltonien

H(t, x(t), u(t), p(t), q(t)) = p(t)[rx(t) + (b ≠ r)u(t)] + ‡q(t)u(t)

qui est concave.

2.2 Problème avec contrainte

Rappelons d’abord que :


- X Õ désigne la transposée de X
- X + = max(X, 0), X ≠ = ≠min(X, 0)
- LpF (0, T ; Rn ) désigne l’ensemble des processus FtÆ0 -adaptés X(.) à valeurs dans Rn tels
s
que E( 0T |X|p ) < Œ(p œ [1, Œ)).
- LŒF (0, T, R désigne l’ensemble des processus FtÆ0 -adaptés à valeurs dans R essentiel-
n n

lement bornés.

215
XIII. Applications : Stratégie Moyenne-Variance.

Nous examinons maintenant le cas où la vente à découvert est prohibée, en d’autres termes
u(.) œ L2F (0, T ; Rm
+ . Nous considérons cette fois le cas m-dimensionnel ; b, ‡ et r pouvant être
des matrices déterministes de dimensions convenablement choisies.
Ce pendant, la variable d’état x est prise unidimensionnelle.
Rappelons que l’équation qui modélise l’évolution de la richesse totale est
Y
qm qm qm
_
]dx(t) = {r(t)x(t) + [bi (t) ≠ r(t)] ui (t)}dt + ‡ij (t)ui (t)dW j (t),
(XIII.20)
i=1 j=1 i=1
_
[x(0) = x0 .

Elle est linéaire en u et x. La fonction de coût que nous désirons minimiser est
SA B2 T
⁄T
E U x(T ) + V. (XIII.21)
2

Nous reconnaissons là un problème linéaire quadratique (LQ) ; linéaire parce que l’équation
d’état est linéaire en u et x, et quadratique parce que la fonction de coût est une fonction
quadratique des mêmes variables. Les problèmes LQ constituent une classe importante de pro-
blèmes de contrôle optimal. Car, non seulement ils modélisent beaucoup de problèmes dans des
cas pratiques, mais aussi les problèmes non linéaires peuvent être raisonnablement approximés
ces derniers. Nous allons donc rapidement présenter une méthode de résolution générale des
problèmes LQ avant de revenir à notre problème moyenne-variance.
Problème LQ général avec contrainte.
A cause de la contrainte sur u (qui en fait entraîne une contrainte sur x), la démarche
effectuée au paragraphe précédent ne s’avère plus appropriée. Nous adoptons cependant une
autre approche similaire, mais légèrement différente. On considère l’EDS linéaire suivante :

Y
_
]dx(t) = [A(t)x(t) + B(t)u(t)] dt + [x(t)C(t)Õ + u(t)Õ D(t)Õ ] dW (t), t œ [0, T ]
(XIII.22)
_
[x(0) = x0 ,

où A, B, C et D sont des processus {Ft }tØ0 -adapté (possiblement à valeurs matricielles), et


x0 œ R est un scalaire. Soit un cône fermé,c-à-d, est fermé, et si u œ , alors –u œ , ’– Ø 0.
L’ensemble des contrôles admissibles est

Uad := {u(.) œ L2F (0, T ; Rm )|u(t) œ , P ≠ p.s., t œ [0, T ] et(XIII.22)


admet une unique solution sous u(.)}

216
XIII.2 Résolution par le principe du maximum stochastique

On suppose que la fonction de coût est donnée par


I⁄ J
T Ë È
2 2
J(x0 , u(.)) := E Q(t)x(t) + u(t) R(t)u(t) dt + Gx (T )
Õ
(XIII.23)
0

Emettons l’hypothèse suivante :


Hypothèse (A1) :
Y
F (0, T ; R), B œ LF (0, T ; R ), C œ LŒ
F (0, T ; R ),
_ 1◊m
]A, Q œ LŒ Œ k

_
F (0, T ; R ), R œ LŒ
F (0, T ; S ), G œ LFT ( ; R).
[D œ LŒ k◊m m Œ

Le problème LQ stochastique associé à (XIII.22)-(XIII.23) est de


Y
]minimiser
_
J(x0 , u(.)),
_
[sous u(.) œ Uad .

Maintenant, définissons les fonctions

H+ (t, Ê, v, P, ) :=v Õ [R(t, Ê) + P D(t, Ê)Õ D(t, Ê)] v


+ 2v Õ [B(t, Ê)Õ P + D(t, Ê)Õ P C(t, Ê) + D(t, Ê)Õ ,
H ≠ (t, Ê, v, P, ) :=v Õ [R(t, Ê) + P D(t, Ê)Õ D(t, Ê)] v
≠ 2v Õ [B(t, Ê)Õ P + D(t, Ê)Õ P C(t, Ê) + D(t, Ê)Õ ] ,

et

H+ú (t, Ê, P, ) := inf H+ (t, Ê, v, P, ),


H≠ú (t, Ê, P, ) := inf H≠ (t, Ê, v, P, )


pour (t, Ê, v, p, ) œ [0, T ] ◊ ◊ Rm ◊ R ◊ Rk .


Enfin, un peu comme les équations adjointes dans le cas sans contrainte, considérons les
deux EDSRs non linéaires suivantes (on masque les arguments t et w) :
Y
= ≠{(2A + C Õ C)P+ + 2C Õ + Q + H+ú (P+ , + )}dt + œ [0, T ],
Õ
_dP+
_
_
_ + + dW, t
]
P+ (T ) = G, (XIII.24)
_
_
_
_
[R + P Õ
D > 0,
+D

217
XIII. Applications : Stratégie Moyenne-Variance.

Y
= ≠{(2A + C Õ C)P≠ + 2C Õ + Q + H≠ú (P≠ , )}dt + t œ [0, T ],
Õ
_dP≠
_
_
_ ≠ ≠ dW,
]
_P(T ) = G, (XIII.25)
_
_
_
[R + P
≠D
Õ
D > 0.

Notons que lorsqu’il n’y a pas de contraintes, c-à-d = Rm ,

H+ú (t, P, ) = H≠ú (t, P, ) = ≠ [P B + (C Õ P + Õ


)D] (R + P DÕ D)≠1 [B Õ P + DÕ (P C + )] .

Nous énonçons le théorème d’existence de solutions des EDSRs (XIII.24) et (XIII.25).

Théorème 14 Nous avons deux cas :


(i) Cas standard : si Q Ø 0, R > 0, avec R≠1 œ LŒ F (0, T ; R
m◊m
), et G Ø 0, alors il existe une
solution bornée non négative (P+ , + ) resp. (P≠ , ≠ ) de l’EDSR (XIII.24) resp.(XIII.25).
(ii) Cas singulier : si Q Æ 0, R Æ 0, G > 0, avec G≠1 œ LŒ F (0, T ; R), et D D > 0, avec D D œ
Õ Õ

LŒF (0, T ; R ) alors il existe une solution bornée uniformément positive (P+ , + )(resp.(P≠ , ≠ ))
m◊m

de l’EDSR (XIII.24) (resp.(XIII.25)).

Preuve: Démonstration. Voir (Hu et Zhou, 2005 [10]). ⇤

Avant de donner la forme explicite de la solution du problème LQ (4.22)-(4.23), on définit


lorsque R + P DÕ D > 0,

›+ (t, Ê, P, ) := argminvœ H+ (t, Ê, v, P, ),


›≠ (t, Ê, P, ) := argminvœ H≠ (t, Ê, v, P, ),

avec (t, Ê, P, ) œ [0, T ] ◊ ◊ R ◊ Rk .


1 2
Théorème 15 Soient (P+ , +) œ L2F ( ; C(0, T ; R))◊L2F 0, T ; Rk et (P≠ , ≠) œ L2F ( ; C(0, T ; R))◊
1 2
L2F 0, T ; Rk les solutions respectives de (XIII.24) et (XIII.25) (cas standard et singulier). Alors

+
ū(t) = ›+ (t, P+ (t), + (t)) x (t) + ›≠ (t, P≠ (t), ≠ (t)) x

(t),

est optimal pour le problème (XIII.22)-(XIII.23). De plus, le coût optimal est dans ce cas

¯ 0 ) = inf J(x0 , u(.)) = P+ (0)(x+


J(x 2 ≠ 2
0 ) + P≠ (0)(x0 ) .
u(.)œUad

Preuve: Voir (Hu et Zhou,2005) ⇤

218
XIII.2 Résolution par le principe du maximum stochastique

Revenons maintenant à notre problème moyenne-variance (XIII.20)-(XIII.21) dont la fonction


de coût associée est SA B2 T

E U x(T ) +
T V
2

Reconnaissons que notre fonction de coût n’a pas une forme exacte souhaitée. Pour avoir une
forme exacte du problème LQ stochastique général, cherchons le changement de variable adé-
quat
y = x + ⁄T —(t),

tel que
Y 1 2
] x(T ) + ⁄T 2 = y(T )2 + cte, et
2
[ l’équation (XIII.20)) en y doit garder la forme générale des problémes LQ général,

ce qui conduit à résolution de


Y
] ˙
—(s) = r(s)—(s)
1 22
[ x(T ) + ⁄T
2
= y(T )2 + cte.

Des calculs simples donnent

1 sT
—(t) = e≠ t r(s)ds , cte = 0
2

Donc, en effectuant le changement de variable

⁄T ≠ s T r(s)ds
y =x+ e t ,
2

la fonction de coût à minimiser devient


Ë È
E y(T )2

et l’équation d’état associée


Y qm qm qm
] dy(t) = {r(t)y(t) + i=1 [bi (t) ≠ r(t)] ui (t)} dt + ‡ij (t)u2 (t)dW j (t),
(XIII.26)
j=1 i=1
sT
[ y(0) = x0 + ⁄T
2
e≠ 0
r(s)ds

219
XIII. Applications : Stratégie Moyenne-Variance.

a exactement la même forme que (XIII.22), avec :


Y
_
_
_
]
A(t) = r(t), Q(t) = R(t) = C(t) © 0,
_
D(t) = ‡(t)Õ , B(t) = (b1 (t) ≠ r(t), · · · , bm (t) ≠ r(t)) ,
_
_
[ G(t) = 1.

Il s’agit donc d’un cas singulier avec = Rm + . Nos coefficients étant déterministes, = 0, et on
a les fonctions 5 6
1
H+ (t, v, P ) := 2 v Õ ‡(t)Õ ‡(t)v + v Õ B(t)Õ P,
5
2 6
1 Õ
H≠ (t, v, P ) := 2 v ‡(t) ‡(t)v ≠ v B(t) P,
Õ Õ Õ
2
et
H+ú (t, P ) := inf H+ (t, v, P ),

H≠ú (t, P ) := inf H≠ (t, v, P ),


Le lemme 2 nous dit que H+ú et H≠ú sont bien définies. Mieux, H+ú (t, P ) © 0. Donc, les EDSRs
(XIII.24) et (XIII.25) dans ce cas sont
Y Ë È
_
_dP+
_
_
= ≠ 2r(t)P+ + H+ú (t, P+ ) dt, t œ [0, T ],
]
P+ (T ) = 1, (XIII.27)
_
_
_
_
[P (t) > 0,
+

Y
_
_
_
_
dP≠ = ≠2r(t)P≠ (t)dt, t œ [0, T ],
]
_P≠ (T ) = 1, (XIII.28)
_
_
_
[P (t) > 0,

et on a
›+ (t, P ) := argminvœ H+ (t, v, P ) © 0,
›≠ (t, P ) := argminvœ H≠ (t, v, P ),

Théorème 16 Soient P+ œ L2F ( ; C(0, T ; R)) et P≠ œ L2F ( ; C(0, T ; R)) les solutions respec-

220
XIII.3 Résolution par la programmation dynamique

tives de (XIII.27) et (XIII.28). Alors,

ū(t) = ›≠ (t, P≠ (t)) y ≠ (t),


Y 5 sT 6
_
] ≠›≠ (t, P≠ (t)) x + ⁄x ≠
2
e t
r(s)ds
= sT
_
[ 0, si x + ⁄x ≠
2
e t
r(s)ds
> 0.

est optimal pour le problème (XIII.20)-(XIII.21). De plus, le coût optimal est dans ce cas

J¯ (x0 ) = inf J (x0 , u(·))


u(·)œUad
SA B+ T2 SA sT 2 B≠ T2
⁄T ≠ s T r(s)ds ⁄ ≠ r(s)ds
= P+ (0) U x0 + e 0 V + P≠ (0) U x0 + T e 0 V .
2 2

Preuve: Le résultat découle directement du théorème 15 ⇤

3 Résolution par la programmation dynamique

3.1 Problème sans contrainte

Pour commencer avec cette approche, nous allons comme précédemment considérer le cas
m = 1, avec b, ‡ et r des constantes positives. Nous supposons qu’il n’y a pas d’interdiction de
vente à découvert. Rappelons que le problème du contrôle optimal dans ce cas est de trouver
ū(·) œ L2F (0, T ; R) tel que :

J(s, y, ū(·)) = inf J(s, y, u(·)) (XIII.29)


uœU
SA B2 T
⁄T
© inf E U x(T ) + V,
uœU 2

l’équation d’état associée étant


Y
] dx(t) = [rx(t) + (b ≠ r)u(t)] dt + ‡u(t)dW (t),
(XIII.30)
[ x(0) = x0 .

Soit V la fonction valeur du problème (XIII.29), on sait que


V (s, y) = inf uœU J(s, y, u(·))

221
XIII. Applications : Stratégie Moyenne-Variance.

L’équation HJB correspondante à notre problème est


Y Ó Ô
1 2
_
] vt (t, x(t)) + inf 2
‡ u(t)2 vxx (t, x(t)) + vx (t, x(t))[rx(t) + (b ≠ r)u(t)] = 0
_ 1
u(·)œR
22 (XIII.31)
[ v(T, x) = x + ⁄T
2
.

Nous allons déterminer une solution de (XIII.31) de la forme


C D
⁄T
v(t.x) = Ï(t)x + “(t) , Ï(T ) = 1, “(T ) = 1.
2

Les dérivées partielles de v(t, x) donnent les égalités


Y Ë ÈË È
_
_
_
]
vt (t, x(t)) = 2 ÏÕ (t)x + “ Õ (t) ⁄2T Ï(t)x + “(t) ⁄2T
Ë È
v (t, x(t)) = 2Ï(t) Ï(t)x + “(t) ⁄2T (XIII.32)
_ x
_
_
[ v (t, x(t)) = 2Ï(t)2
xx

Le polynôme suivant, provenant de (XIII.32) et qui est du second degré en u(t)

1 2
‡ u(t)2 vxx (t, x(t)) + vx (t, x(t))(b ≠ r)u(t) + vx (t, x(t))rx(t), (XIII.33)
2

atteint son minimum en


(r ≠ b)vx
ū(t) = (XIII.34)
‡ 2 vxx
L’équation (XIII.32) devient donc
Y
] vt (t, x(t)) + 12 ‡ 2 ū(t)2 vxx (t, x(t)) + vx (t, x(t))[rx(t) + (b ≠ r)ū(t)] = 0
1 22 (XIII.35)
[ v(T, x) = x + ⁄T
2
.

En remplaçant ū, vt , vx et vxx par leurs valeurs respectives de (XIII.32) dans (XIII.35), et en
simplifiant, on aboutit à l’expression suivante
C D C D
◊2 ◊2
Ï (t) ≠ Ï(t) + rÏ(t) x(t) + “ Õ (t) ≠ “(t) = 0,
Õ
’t œ [0, T ] (XIII.36)
2 2

Nous allons donc choisir Ï et “ de manière à satisfaire les deux équations différentielles ordinaires
(EDOs) : Y
] ÏÕ (t) ≠ ◊2 Ï(t) + rÏ(t) = 0
2
[ Ï(T ) = 1,
(XIII.37)

222
XIII.3 Résolution par la programmation dynamique

et Y
2
]“ Õ (t) ≠ ◊ “(t)
_
=0
2
(XIII.38)
_
[“(T ) =1

On trouve aisément les solutions de (XIII.37) et (XIII.38) suivantes

◊2 ◊2
Ï(t) = e(r≠ 2 )(T ≠t) et “(t) = e≠ 2 (T ≠t)

Ainsi, on obtient
C 1 2
2 D2
r≠ ◊2 (T ≠t) ⁄T ≠ ◊2 (T ≠t)
v(t, x) = e x+ e 2 ,
2

qui est solution de (XIII.31) par construction. Elle est suffisamment lisse, c’est-à-dire que
v(t, x) œ ([0, T ] ◊ R). L’égalité (XIII.34) devient donc

◊ ⁄T ≠r(T ≠t)
ū(t) = ≠ x̄ ≠ e , (XIII.39)
‡ 2

c’est la stratégie efficiente par application du théorème de vérification. L’on doit remarquer ici
que nous avons obtenu le même résultat qu’avec l’approche du principe du maximum stochas-
tique.

Mais, que vaut le ⁄T qui apparaît dans l’expression ci-dessus ? Pour répondre à cette ques-
tion, considérons la stratégie optimale, et écrivons de nouveau l’équation qui modélise la richesse
totale dans ce cas :
Y Ë È 1 2
_
]dx(t) = (r ≠ ◊2 )x(t) + (b ≠ r) ⁄2T e≠r(T ≠t) dt + ‡ ≠ ‡◊ x + ⁄T
2
e≠r(T ≠t) dW (t),
(XIII.40)
_
[x(0) = x0 .

En passant à l’espérance, on arrive a


Y Ë È
_
]dE(x(t)) = (r ≠ ◊2 )E(x(t)) + (b ≠ r) ⁄2T e≠r(T ≠t) dt,
(XIII.41)
_
[x(0) = x0 .

Et en résolvant (XIII.41), on aboutit à l’expression explicite de E(x(t)) en fonction de ⁄T :

2 )T ⁄T Ë 2
È
E(x(T )) = x0 e(r≠◊ + 1 ≠ e≠◊ T .
2

223
XIII. Applications : Stratégie Moyenne-Variance.

Sachant que E(x(T )) = d, on trouve que le choix de ⁄T doit être

2 Ë 2 )T
È
⁄úT = d ≠ x0 e(r≠◊ .
≠◊2 T
e ≠1

3.2 Problème avec contrainte


Nous regardons maintenant le cas où il existe la contrainte d’interdiction de la vente à
découvert. Sachant que notre problème d’optimisation est du type LQ, nous donnons d’abord
une résolution plus générale des problèmes LQ par l’approche de la programmation dynamique.
Problème LQ stochastique général avec contrainte.
Considérons [’équation différentielle stochastique suivante :
Y
qm
_
]dx(t) = {A(t)x(t) + B(t)u(t) + f (t)}dt + Dj (t)u(t)dW j (t), t œ [s, T ]
(XIII.42)
j=1
_
[x(s) = y,

où A(t) et f (t) œ R sont des scalaires. B(t)Õ œ Rm


+ et Dj (t) œ R (j = 1, · · · , m) sont des
Õ m
qm
vecteurs colonnes. De plus, on suppose que la matrice j=1 Dj (t)Õ Dj (t) est non singulière.
La classe des contrôles u(.) qui sont admissibles est U[s, T ] = L2F (s, T ; Rm
+ ).
Notre objectif est de trouver le u(.) optimal, qui minimise
; <
1
J(s, y, u(.)) = E x(T )2 (XIII.43)
2

La fonction valeur associée au problème LQ (XIII.42) et (XIII.43) est défini par :

V (s, y) = inf J(s, y, u(.))


u(.)œU[s,T ]

L’équation HJB correspondante au problème est


Y I
_
_
_
_
_vt (t, x(t)) + inf 12 vxx (t, x(t))uÕ Dj (t)Õ Dj (t)u
_
_ uØ0 J
]
_ +vx (t, x(t)) [A(t)x(t) + B(t)u(t) + f (t)] =0 (XIII.44)
_
_
_
_
_
_
[v(T, x) = 12 x2 .

Contrairement au cas sans contrainte que nous venons d’étudier, la contrainte de non- négativité
sur le contrôle fait que [’équation de HJB n’admet malheureusement pas de solutions régulières.
Nous ferons donc appel à la notion de solutions de viscosité.

224
XIII.3 Résolution par la programmation dynamique

En référence aux lemmes 1 et 2, posons

z̄ := arg min Î(D(t)Õ )≠1 z(t) + (D(t)Õ )≠1 B(t)Õ Î2 (XIII.45)


z(t)œ[0,Œ)m

et
›¯ := (D(t)Õ )≠1 z̄(t) + (D(t)Õ )≠1 B(t)Õ (XIII.46)

Soient P̄ (t), ḡ(t) et c̄(t), les solutions respectives des respectives des équations différentielles
suivantes Y.
_
_
_
¯ 2 ]P̄ (t),
P̄ = [≠2A(t) + ΛÎ
_ ]
P̄ (T ) = 1, (XIII.47)
_
_
_
_
[P̄ (t) > 0, ’t œ [0, T ],
Y .
_
]ḡ(t) ¯ 2 ]ḡ(t) ≠ f (t)P̄ (t),
= [≠A(t) + ΛÎ
(XIII.48)
_
[ḡ(T ) = 0,
Y.
_
]c̄(t) ¯ 2 ]P̄ (t)≠1 ḡ(t)2 ,
= [≠f (t)ḡ(t) + ΛÎ
(XIII.49)
_
[c̄(T ) = 0,

et soient P̃ , g(t) et c̃(t), les solutions respectives des équations différentielles suivantes
Y.
_
_
_
_
P̃ (t) = ≠2A(t)P̃ (t),
]
P̃ (T ) = 1, (XIII.50)
_
_
_
_
[P̃ (t) > 0, ’t œ [0, T ],
Y.
_
]g̃(t) = ≠A(t)g̃(t) ≠ f (t)P̃ (t),
_
(XIII.51)
[g̃(T ) = 0,
Y.
_
]c̃(t) = ≠f (t)g̃(t),
_
(XIII.52)
[c̃(T ) = 0.

Proposition 2 La fonction définie par


Y sT sT
sT
] 1 P̄ (t)x2
_
+ ḡ(t)x + c̄(t), si x + e≠ t
A(s)ds
f (z)e z
A(s)ds
dz Æ 0;
2
V (t, x) = (XIII.53)
t
sT sT
_
[ 1 P̃ (t)x2 A(s)ds s T
2
+ g̃(t)x + c̃(t), si x + e≠ t
t f (z)e z
A(s)ds
dz > 0

225
XIII. Applications : Stratégie Moyenne-Variance.

est une solution de viscosité de l’équation (XIII.53), et


Y 3 sT sT 4
≠1 ¯ A(s)ds s T
_≠D(t) ›(t) x + e t f (z)e
_
_ ≠ A(s)ds
_ t z dz
_
] sT sT
s
ū(t, x) = _ si x + e≠ t A(s)ds tT f (z)e z A(s)ds dz Æ 0; (XIII.54)
_
_ sT sT
_
_ s
[0 si x + e≠ t A(s)ds T f (z)e z A(s)ds dz > 0
t

est le contrôle optimal associé.

Preuve: Nous montrerons premièrement que V définie en (XIII.53) est une solution de
viscosité de l’équation HJB (XIII.44). Il est évident de voir que
sT
¯
(2A(s)≠Λ(s)Î 2 )ds
P̄ (t) = e t

est une solution de (XIII.47). Pour résoudre (XIII.48), définissons

ḡ(t)
÷¯(t) := .
P̄ (t)

Alors d’après (XIII.47) et (XIII.48)


. .
. P̄ (t)ḡ(t) ≠ P̄ (t)ḡ(t)
÷¯(t) =
P̄ (t)2
P̄ (t){[≠A(t) + ΛΠ¯ 2 ]ḡ(t) ≠ f (t)P̄ (t)} ≠ {[≠2A(t) + ΛÎ
¯ 2 ]P̄ (t)}ḡ(t)
=
P̄ (t)2
A(t)P̄ (t)ḡ(t) ≠ f (t)P̄ (t) 2
=
P̄ (t)2
= A(t)¯
÷ (t) ≠ f (t).
.
La résolution de l’équation différentielle ÷¯(t) = A(t)¯
÷ (t) ≠ f (t), avec la condition terminale
÷¯ = 0 donne
sT ⁄ T sT
÷¯(t) = e≠ t
A(s)ds
f (z)e t
A(s)ds
dz.
t

Ainsi
sT ⁄ T sT
¯
(A(s)≠Λ(s)Î 2 )ds
ḡ(t) = P̄ (t)¯
÷ (t) = e t f (z)e z
A(s)ds
dz.
t

226
XIII.3 Résolution par la programmation dynamique

Ensuite, en remplaçant P̄ (t) et ḡ(t) par leurs expressions respectives dans (XIII.49), on obtient
Ë È
¯ 2 P̄ (t)≠1 ḡ(t)2
.
c̄(t) = ≠f (t)ḡ(t) + ΛÎ
C D
1 ¯ 2 ≠ s T A(s)ds ⁄ T sT
= ≠f (t) + Λ(t)Î e t f (z)e z A(s)ds dz
2 t
sT ⁄ T sT
¯ 2 )ds
(A(s)≠ΛÎ
.e t f (z)e z
A(s)ds
dz.
t

Par conséquent, sachant que c̄(T ) = 0, on trouve aisément


⁄ TC ⁄ T D
1 ¯ sT
2 ≠ v A(s)ds
sT
c̄(t) = f (v) ≠ Λ(v)Î e f (z)e z A(s)ds dz
t 2 v
sT ⁄ T sT
·e y
(A(s)≠Λ(s)Î
¯ )
2 ds
f (z)e z
A(s)ds
dzdv.
v

Définissons la region 1 du plan des (t, x) par


I sT ⁄ T sT J
1 := (t, x) œ [0, T ] ◊ R | x + e ≠
t
A(s)ds
f (z)e t
A(s)ds
dz < 0
t

Dans 1 , la fonction V telle que définie par (XIII.53) est suffisamment lisse pour que les termes
suivants Y
1 ˙ ˙ ˙
_ Vt (t, x(t)) = P̄ (t)x + ḡ(t)x + c̄(t),
_
_ 2
] 2
Vx (t, x(t)) = P̄ (t)x + ḡ(t), (XIII.55)
_
_
_
[ V (t, x(t)) = P̄ (t)
xx

soient bien définies.

En les substituant dans le membre de gauche de (XIII.44),que nous noterons par (HJB) 1

on obtient

En les substituant dans le membre de gauche de (4.45), que nous noterons par (HJB) 1 on

227
XIII. Applications : Stratégie Moyenne-Variance.

obtient

(HJB) 1 =Vt (t, x) + Vx (t, x)[A(t)x + f (t)]


; <
1
+ inf Vxx (t, x)uÕ Dj (t)Õ Dj (t)u + Vx (t, x)B(t)u
uØ0 2
5 6
1 ˙ 2 ˙
= P̄ (t)x + ḡ(t)x + c̄(t) + [P̄ (t)x + ḡ(t)][A(t)x + f (t)]
2 ; <
1 Õ
+ inf P̃ Dj (t)Õ Dj (t)u + [P̈ (t)x + ḡ(t)]B(t)u
uØ0 2
5 6
1 ˙ + A(t)ḡ(t) + f (t)P̄ (t)]x + [c̄(t)
˙ + f (t)ḡ(t)]
= P̄ (t) + A(t)P̄ (t) x2 + [ḡ(t)
2 ; <
1 Õ
+ P̄ (t) inf u Dj (t)Õ Dj (t)u + [x + ÷¯(t)]B(t)u .
uØ0 2

En utilisant le lemme 2 ci-dessus, avec h(u) = 12 uÕ Dj (t)Õ Dj (t)u + [x + ÷¯(t)]B(t)u, il vient que
pour – = ≠[x + ÷¯] > 0, la fonction h atteint son minimum en

¯
ū(t, x) = –D≠1 ›(t)
¯
= ≠[x + ÷¯]D≠1 ›(t)
C sT ⁄ T sT D
=≠ x+e ≠
t
A(s)ds
f (z)e z
A(s)ds ¯
dz D≠1 ›(t)
t

Le même lemme nous dit qu’on a


1 2
h(ū(t, x)) = h –D≠1 ›¯
1 ¯2
= ≠ –2 ΛÎ
2
1 ¯ 2,
= ≠ [x + ÷¯]2 ΛÎ
2

ainsi (HJB) 1 devient donc


5 6
1 ˙ ˙ + A(t)ḡ(t) + f (t)P̄ (t)]x + [c̄(t)
˙ + f (t)ḡ(t)]
(HJB) = P̄ (t) + A(t)P̄ (t) x2 + [ḡ(t)
1
2 5 6
1 ¯2
+ P̄ (t) ≠ [x + ÷¯]2 ΛÎ
;
2 6 <
1 ˙ 1 ¯2 Ó Ë
˙ + A(t) ≠ ΛÎ
È Ô
¯ 2 ḡ(t) + f (t)P̄ (t) x
= P̄ (t)+ | A(t) ≠ ΛΠP̄ (t) x2 + ḡ(t)
2; 2 <
˙ + f (t)ḡ(t) ≠ 1 ΛÎ
+ c̄(t) ¯ 2 P̄ (t)≠1 ḡ(t)2
2
=0

228
XIII.3 Résolution par la programmation dynamique

car P̄ , ḡ et c̄ sont solutions des EDOs (XIII.47)-(XIII.49) respectivement. Ce qui montre que V
est solution de (XIII.44) dans la région 1 . Ensuite, on considère la région 2 définie par
I sT ⁄ T sT J
2 := (t, x) œ [0, T ] ◊ R | x + e ≠
t
A(s)ds
f (z)e l
A(s)ds
dz > 0
l

Un raisonnement similaire à celui que nous venons d’effectuer conduit à


Y sT
_
_
_
_
P̃ (t) = e2 t
A(s)ds
,
_
_ sT sT
_ A(s)ds s T
] g̃(t) = e t
t f (z)e z
A(s)ds
dz,
sT sT sT sT
_
_
_
_ c̃ = t f (v)e s
v
A(s)ds
d t f (z)e z
A(s)ds
dzdv,
_
_ sT
A(s)ds s T
T
_
[ ÷˜ = g̃(l)
P̃ (l)
=e l

l f (z)e z
A(s)ds
dz

Dans 2 , la fonction V telle que définie par (XIII.53) est suffisamment lisse pour que les termes
suivants Y
_
_
_
] t
V (t, x(t)) = 12 P̃˜ (t)x2 + g̃(t)x
˙ ˙
+ c̃(t),
_
Vx (t, x(t)) = P̃ (t)x + g̃(t),
_
_
[ V (t, x(t)) = P̃ (t)
xx

soient bien définis. En les substituant dans le membre de gauche de (XIII.44), que nous noterons
par(HJB) 2 , on obtient

(HJB) 2 = Vl (t, x) + Vx (t, x) | A(t)x + f (t)]


; <
1
+ inf Vxx (t, x)uÕ Dj (t)Õ Dj (t)u + Vx (t, x)B(t)u
uØ0 2
5 6
1 ˙ 2 ˙ ˙
= P̃ (t)x + g̃(t)x + c̃(t) + [P̃ (t)x + g̃(t)][A(t)x + f (t)]
2 ; <

+ inf PuÕ Dj (t)Õ Dj (t)u + [P̃ (t)x + g̃(t)]B(t)u
uØ0 2
5 . 6
1 . .
= P̃ (t) + A(t)P̃ (t) x2 + [g̃(t) + A(t)g̃(t) + f (t)P̃ (t)]x + [c̃(t) + f (t)g̃(t)]
2 ; <
1 Õ
+ P̃ (t) inf u Dj (t) Dj (t)u + [x + ÷˜(t)]B(t)u .
Õ
uØ0 2

En utilisant le lemme 2 ci-dessus, avec h(u) = 12 uÕ Dj (t)Õ Dj (t)u + [x + ÷˜]B(t)u, il vient que pour
– = ≠[x + ÷˜] < 0, la fonction h atteint son minimum en

˛u(t, x) = 0

229
XIII. Applications : Stratégie Moyenne-Variance.

En remplaçant ū(t, x) par sa valeur dans (HJB) 2 , et sachant que P , g et c sont solutions des
EDOs (XIII.50)-(XIII.52) respectivement, il va de soi que (HJB) 2 = 0. Ce qui montre ainsi
que V est solution de (XIII.54) dans la région 2 . Enfin, on considère la région
I sT ⁄ T sT J
3 := (t, x) œ [0, T ] ◊ R | x + e ≠
l
A(s)ds
f (z)e l
A(s)ds
dz = 0
l

3 est la région correspondant à


x + ÷¯ = 0

c-à-d,
x = ≠¯
÷

Donc
1
V (t, x) = P̄ (t)x2 + ḡ(t)x + c̄(t)
2
1
= P̄ (t)(≠¯÷ (t))2 + ḡ(t)(≠¯
÷ (t)) + c̄(t)
2
1
= ≠ ḡ(t)¯
÷ (t) + c̄(t)
2
Mais la dérivée du produit ḡ(t)¯
÷ (t) donne

(ḡ(t)¯ ˙ ÷ (t) + ḡ(t)÷¯˙ (t)


÷ )(t)Õ = ḡ(t)¯
ÓË È Ô
= ≠A(t) + ΛΠ¯ 2 g̃(t) ≠ f (t)P̄ (t) ÷¯(t) + ḡ(t){A(t)¯
÷ (t) ≠ f (t)}
È
¯ 2 P̄ (t)≠1 ḡ(t)2
= ≠2f (t)ḡ(t) + ΛÎ
˙
= 2c̄(t)

En intégrant les deux membres de l’égalité ci-clessus, avec ḡ(T ) = ÷¯(T ) = c̄(T ) = 0, il vient
que
1 ¯
c̄(t) = ḡ(t)eta(t)
2
De la mème manière,
1
c̃(t) = g̃(t)˜
÷ (t)
2

On en déduit que

1 1
V (t, x) = ≠ ḡ(t)¯
÷ (t) + c̄(t) = ≠ gÂ(t)÷Â(t) + cÂ(t) = 0
2 2

Donc la fonction V s’annule sur 3, elle est conséquent continue en tout point (t, x) œ 3. De

230
XIII.3 Résolution par la programmation dynamique

plus,
Y
] Vl (t, x(t)) = 12 P̄˙ (t)x2 + ḡ(t)x
˙ ˙ = 1 PẪ (t)x2 + g̃(t)x
+ c̄(t) ˙ ˙ = 0,
+ c̃(t)
2 (XIII.56)
[ V (t, x(t)) = P̄ (t)x + ḡ(t) = P̄ (t)x + ḡ(t) = 0.
x

V est donc de classe C 1 sur 3 . Cependant Vxx n’est pas définie sur 3 , car P̄ (t) =” PÂ (t). Ce
qui signifie que V œ
/ C 1,2 ([0, T ] ◊ Rn ). Nous faisons donc recours à la notion de solution de
viscosité. On peut montrer que
Y
1,2,+
] Dt,x V (t, x) = {0} ◊ {0} ◊ [P̃ (t), Œ),
È
1,2,≠
i,x V (t, x) = {0} ◊ {0} ◊ (≠Œ, ), P̄ (t) .
[ D

Définissons l’hamiltonien associé à l’équation HJB (XIII.44) par

1
G(t, x, u, p, P ) = p[A(t)x + B(t)u + f (t)] + P uÕ D(t)Õ D(t)u
2
1,2,+
Pour tout (q, p, P ) œ Dt,x V (t, x), avec (t, x) œ 3, on a
; < ; <
1 Õ 1Â
q + inf G(t, x, u, p, P ) = inf P u D(t)Õ D(t)u Ø P (t)uÕ D(t)Õ D(t)u = 0
uØ0 uØ0 2 2

Donc V est une solution de viscosité de l’équation HJB (XIII.44). D’autre part, pour tout
1,2,≠
(q, p, P ) œ Dt,x V (t, x), avec (t, x) œ 3 , on a
; < ; <
1 Õ 1
q + inf G(t, x, u, p, P ) = inf P u D(t)Õ D(t)u Æ P̃ (t)uÕ D(t)Õ D(t)u = 0
uØ0 uØ0 2 2

Donc V est une solution de viscosité de l’équation HJB (XIII.44).


Enfin, il est évident que V (T, x) = 12 x2 . V est donc une solution de viscosité de l’équation
HJB (XIII.44). De plus, pour tout (t, x) œ 3 tel que

1,2,+
(q ú (t, x), pú (t, x), P ú (t, x), ū(t, x)) := (0, 0, P̃ (t), 0) œ Dl,x V (t, x) ◊ U[s, T ],

alors
q ú (t, x) + G (t, x, ū(t, x), pú (t, x), P ú (t, x)) = 0.

Il s’ensuit par le théorème de vérification (Théorème 13), que ū(t, x) définie en (XIII.54) est le
contrôle optimal, ce qui achève ainsi la démonstration. ⇤

Revenons à notre problème moyenne-variance. Rappelons que nous désirons minimiser la

231
XIII. Applications : Stratégie Moyenne-Variance.

fonction de coût SA B2 T
⁄T
E U x(T ) + V
2

Ce qui est équivalent à minimiser


SA B2 T
1 U ⁄T
E x(T ) + V
2 2

En posant
⁄T
X(t) = x(T ) + ,
2
notre problème revient donc à minimiser

1 Ë È
E X(T )2
2

sous
Y qm
] dX(t) = {A(t)X(t) + B(t)u(t) + f (t)}dt + Dj (t)u(t)dW j (t),
[ X(0) = x + ⁄T ,
j=1
(XIII.57)
0 2

où Y
] A(t) = r(t), B(t) = (b1 (t) ≠ r(t), · · · , bm (t) ≠ r(t)) ,
(XIII.58)
[ f (t) = ≠ ⁄T r(t), D (t) = (‡ (t), · · · , ‡ (t)) .
2 j 1j mj

En se basant sur (XIII.45) et (XIII.46), posons


. .2
. .
fī := arg min .‡(t)≠1 fi(t) + ‡(t)≠1 (t)(b(t) ≠ r(t)1). (XIII.59)
fi(t)œ[0,Œ)m

et
◊¯ := ‡(t)≠1 fī(t) + ‡(t)≠1 (t)(b(t) ≠ r(t)1) (XIII.60)

(1 est la matrice colonne à m lignes dont tous les coefficients sont égaux à 1.)

Stratégie optimale : D’après la proposition 2, le contrôle optimal du problème moyenne-

232
XIII.3 Résolution par la programmation dynamique

variance avec interdiction de vente à découvert est


Y 5 3 sT 46
_ Õ ≠1 ¯ · (s)ds
_
_
_≠ (‡(t) ) ◊(t) X ≠ ⁄T
2
1≠e ≠
l
_
_ 3 4
] sT
ū(t, X) = _ si X ≠ ⁄T
2
1 ≠ e≠ t
r(s)ds
Æ0 .
_
_ 3 sT 4
_
_
[0 si X ≠ 1 ≠ e≠ > 0,
_ ⁄T r(s)ds
l
2
Y 5 sT 6
_≠ (‡(t)‡(t) ) [fī(t) + (b(t) ≠ r(t)1)] x + 2 e
_
_ Õ ≠1 ⁄T ≠ t r(s)ds
_
_
] sT
=_ si x + ⁄T
e≠ t
r(s)ds
Æ0 .
_ 2
_
_ sT
_
[0 si x + ⁄T
2
e≠ t
r(s)ds
> 0.

Frontière efficiente : Nous allons spécifier la relation entre Var(X(T )) et E|X(T )|. Notons
que SA B2 T
Ë È ⁄
E X(T )2 = E U x(T ) +
T V
2
S A B2 T
2 ⁄T
= E Ux(T ) + ⁄T x(T ) + V
2

Ainsi,
Ë È Ë ⁄2T È
E X(T )2 ≠ ⁄T d = E x(T )2 + ⁄T (x(T ) ≠ d) + ,
4
et en soustrayant d2 dans les deux membres de l’égalité ci dessus, on a
A B2
Ë È ⁄T Ó Ô
2
E X(T ) ≠ d+ = E [x(T ) ≠ d]2 + ⁄T [x(T ) ≠ d] .
2

233
XIII. Applications : Stratégie Moyenne-Variance.

Donc
1 Ó Ô
min E [x(T ) ≠ d]2 + ⁄T [x(T ) ≠ d]
u(·)œU[0,T ] 2
A B2
1 Ë È 1 ⁄T
= min E X(T )2 ≠ d+
u(·)œU[0,T ] 2 2 2
A B2
1 ⁄T
= V (0, X(0)) ≠ d+
2 2
Y 1 22 3 sT 4
_
] 1 P̄ (0)X 2 + ḡ(0)X0 + c̄(0) ≠ 1
d+ si X0 ≠ 1≠e Æ0
_ ⁄T ⁄T ≠ r(s)ds
0
2 0 2 2 2
= 1 22 3 sT 4
_
[ 12 PÂ (0)X02 + g̃(0)X0 + cÂ(0) ≠ 12 d + ⁄2T si X0 ≠ 1 ≠ e≠ >0
_ ⁄T r(s)ds
0
2
Y Ë È Ë È 1 22
1 ⁄T 2 1
_
_
_
_ 2
P̄ (0) x 0 + 2
+ ḡ(0) x 0 + ⁄T
2
+ c̄(0) ≠ 2
d+ ⁄T
2
_
_ sT
_
] si x0 + ⁄2T e≠ 0 r(s)ds Æ 0
= Ë È2 Ë È 1 22
1 1
_
_
_
_ 2 P̃ (0) x 0 + ⁄T
2
+ g̃(0) x 0 + ⁄T
+ c̃(0) ≠ d+ ⁄T
_
_ sT 2 2 2
_
[ si x0 + ⁄T ≠
2
er(s)ds
0 >0

En remplaçant P̄ (0), ḡ(0), c̄(0), PÂ (0), gÂ(0), c̃(0) par leurs valeurs respectives, on en déduit que
sous la stratégie efficiente (XIII.61), le coût optimal est

Ó Ô
min E [x(T ) ≠ d]2 + ⁄T [x(T ) ≠ d] (XIII.61)
u(·)œU[0,T ]

Y sT Ë È 1 22
¯ 2 ds
⁄T 2
_
_
_
_ e≠ 0
Î◊(s)Î
x0 eT0 r(s)ds + 2
≠ d+ ⁄T
2
_
_ sT
_
_
] si x0 + ⁄T
2
e≠ 0
r(s)ds
Æ0
= 5 sT 62 1 22
_
_
_
_ x0 e 0
r(s)ds
+ ⁄T
2
≠ d+ ⁄T
2
(XIII.62)
_
_ sT
_
_ T (s)ds
[ si x0 + ⁄T
2
e≠ 0 >0

Pour obtenir la variance minimale, l’on doit par théorème de dualité de Lagrange (Luenberger,
1968), maximiser la valeur de (XIII.61) sur l’ensemble des ⁄T œ R.

234
(XIII.61) atteint sa valeur maximale
3 sT 42
r(s)ds
d ≠ x0 e 0

Var x(T ) = sT ≠1
e 0 ¯
Î◊(s)Î 2 ds
3 sT 42
E(x(T )) ≠ x0 e 0
r(s)ds

© sT
¯ 2 ds
e 0
Î◊(s)Î
≠1
en 3 sT 4
2 d ≠ x0 e 0
(r(s)≠|◊(s)Î2 )ds
⁄úT = sT
¯ 2 ds
.
e≠ 0
Î◊(s)Î
≠1

4 Exercices d’application et d’assimulation


1. Faire un résumé technique du chapitre.
2. Démontrez à document fermé les formules, les théorèmes et les propositions étudiés dans
ce chapitre.
3. Qu’en pensez vous de l’application de ces lois dans la vie économique et Statistique d’un
pays .
XIII. Applications : Stratégie Moyenne-Variance.

236
Conclusion générale et perspectives

L’objectif global de ce cours était de faire comprendre à l’apprenant les m’ethodes d’aide à la
d’ecision pour résoudre les problèmes dans tous les domaines de la vie ’economiqe et statistique
du pays.Il n’était que de l’amenerà faire leurs applications dans des situations complexes des
sciences d’aide à la décision. Cet objectif a été atteint avec le cours des deux parties du cours
et des exercices d’application et de simulation dont les étudiants ont résolus durant les travaux
dirigés.
Les objectifs spécifiques tel que ci-dessous décrits ont été aussi atteints. Il s’agit concrètement
de :
1. Pouvoir maîtriser les concepts de base des méthodes d’aide à la décision ;
2. Maîtriser les origines et la nature de la recherche opérationnelle ;
3. Maîtriser le processus de modélisation et de résolution d’un problème de la vie écono-
mique en utilisant un logiciel d’optimisation ;
4. Maîtriser les techniques de formulation d’un problème de la vie courante sous un prolème
de programmation linéaire
5. Utiliser la méthode du simplexe pour résoudre un programme lin’eaire en maîtrisant les
critères d’optimalité ;
6. Maîtriser la théorie de dualité ;
7. Pouvoir faire une analyse post-optimale ;
8. Pouvoir mettre un problème sous forme d’un programmation non linéaire ;
9. Distinguer une fonction convexe et fonction concave ;
10. Dérouler l’algorithme du simplexe dans le cas non-linéaire
11. Maîtrider l’optimisation sans contrainte et sous contraintes ;
12. Maîtriser les Conditions d’optimalité dans le cas non-linéaire ;

237
Conclusion générale et perspectives

13. Pouvoir maîtriser les concepts de programmation mixte entière ;


14. Pouvoir maîtriser stratégies de résolutions d’un programme mixte entier comme la re-
laxation linéaireet l’approche par
15. Maîtriser la théorie des graphes ;
16. Résoudre un problème du chemin le plus court en utilisant l’algorithme de corrections
d’étiquettes ;
17. Résoudre un problème de la théorie des graphes en utilisant l’algorithme de Dijkstra ;
18. Pouvoir maîtriser les concepts de base de flot dans un réseau
19. Résoudre un problème de la théorie des graphes en utilisant l’algorithme de Bellman-
Ford ;
20. Résoudre un probl’‘eme de gestion des projet en utilisant le modèle du chemin critique
(PERT/CPM) ;
21. Résoudre un problème de la théorie des graphes en utilisant l’algorithme de Prim (1957) ;
22. Pouvoir maîtriser les concepts de base du problème du flot maximum ;
23. Résoudre un problème de la théorie des graphes en utilisant l’algorithme de Ford-
Fulkerson ;
24. Pouvoir maîtriser les concepts de base flot maximum - Coupe minimum.
25. Savoir distinguer variable aléatoire, variables aléatoires discrètes, variables aléatoires
continues, variable aléatoire échantillonnage et paramètre ;
26. Pouvoir calculer l’espérance mathématique et la variance d’une fonction d’une variable
aléatoire.
27. Maîtriser les lois de probabilité pour consruire un modèle stochastique ;
28. Pouvoir maîtriser les concepts de base du processus stochastiques ;
29. Pouvoir utiliser les chaînes de Markov pour résoudre un problème aléatoire ;
30. Pouvoir maîtriser les concepts de base de la programmation dynamique
31. Pouvoir maîtriser et utiliser le p rincipe d’optimalité de Bellman ;
32. Pouvoir maîtriser les concepts de base des files d’attente ;
33. Pouvoir maîtriser les concepts d’intégrale stochastique (l’intégrale d’Itô) ;
34. Pouvoir maîtriser et utiliser les propriétés de l’intégrale stochastique ;
35. Modéliser un probl’‘eme ]’economique en utilisant des équations différentielles stochas-
tiques (EDS) ;

238
36. Pouvoir résoudre une équation différentielle stochastique ;
37. Pouvoir formuler un problème de contrôle optimal stochastique ;
38. Utiliser le principe du maximum stochastique et programmation dynamique pour ré-
soudre un problème économique ;
39. Enoncer et utiliser le théorème de vérification ;
40. Pouvoir faire une applications au cas concret en utilisant la stratégie moyenne-variance ;

Les perceptives d’avenir de ce cours concernent la poursuite de la modélisation des proces-


sus stochastiques fortement présentes dans les sciences d’aide à la décision du domaine de la
Statistique appliquée et de la recherche opérationnelle.

239
Conclusion générale et perspectives

240
Références bibliographiques

[1] Frederick S Hillier. Introduction to operations research. McGrawHill (2001). 22, 58

[2] Adam B. Levy. The Basics of Practical Optimization. SIAM, Philadelphia, USA (2009).
22

[3] John A Nelder and Roger Mead. A simplex method for function minimization. The
computer journal 7(4), 308–313 (1965). 65

[4] Jeffrey C Lagarias, James A Reeds, Margaret H Wright, and Paul E


Wright. Convergence properties of the nelder–mead simplex method in low dimensions.
SIAM Journal on optimization 9(1), 112–147 (1998). 65

[5] Ken IM McKinnon. Convergence of the nelder–mead simplex method to a nonstationary


point. SIAM Journal on optimization 9(1), 148–158 (1998). 65

[6] Jorge Nocedal and Stephen J Wright. Numerical optimization. Springer (1999).
70

[7] Jiongmin Yong and Xun Yu Zhou. , 43. Springer Science & Business Media (1999).
176, 179, 180, 194

[8] Sob Tchuakem. Optimisation stochastique et application financiere/memoire presente


comme exigence partielle de la maitrise en mathematiques par pandry wilson sob tchua-
kem ;[directeur de recherche, francois watier]. (2010). 181

[9] K. Yosida. Functional Analysis. Berlin : Springer-Verlag 6e éd (1980). 193

[10] Ying Hu and Xun Yu Zhou. Constrained stochastic lq control with random coefficients,
and application to portfolio selection. SIAM Journal on Control and Optimization 44(2),
444–466 (2005). 218

241

Vous aimerez peut-être aussi