FSI
FACULTÉ DES SCIENCES DE L’INGÉNIEUR
SYLLABUS
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
Table des matières
ii
Table des matières
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
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
v
Table des matières
vi
Première partie
1
Chapitre I
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 :
3
I. Descriptif du cours de Méthodes d’Aide à la Décision
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
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
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
11
Chapitre II
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
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.
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)
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)
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
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.
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
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 :
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
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.
20
II.4 Algorithmes et logiciels
light dark
malt 2 3
hops 3 1
yeast 2 1.67
21
III. Programmation linéaire
x.lo(b) = 0;
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
La ligne
n
ÿ
cj xj (III.1)
j=1
23
III. Programmation linéaire
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.
x1 Æ 4 (usine 1)
2x2 Æ 12 (usine 2)
3x1 + 2x2 Æ 18 (usine 3)
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.
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
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.
max cT x
x
s/c : Ax Æ b
x Ø 0,
27
III. Programmation linéaire
• 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
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
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
Plus aucun point n’est réalisable. Si nous supprimons plutôt les contraintes
la fonction objectif devient non bornée dans le domaine réalisable, comme illustré sur la Figure
III.4.
29
III. Programmation linéaire
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).
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).
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
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.
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).
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.
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.
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.
(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)
35
III. Programmation linéaire
x1 + x2 + x3 + x4 = 4
x1 + +x3 + x4 = 3
x1 + x2 + +2x4 = 2
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 ).
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.
x1 = 1, x2 = 1, x3 = 2.
Pivot
Il est facile de changer le statut des variables par des opérations élémentaires.
x1 + +2x3 =1
+ x2 =1
x3 ≠ x4 = 2
x1 + +2x4 = 1
+ x2 =1
≠ x3 + 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
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
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
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
1 1
x3 + x4 ≠ x5 = 2
3 3
1
x2 + x4 =6
2
1 1
x1 ≠ x4 + x5 = 2
3 3
39
III. Programmation linéaire
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
1
x2 + x4 =6
2
1 1
x1 ≠ x4 + x5 = 2
3 3
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
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
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
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
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 :
Cette formulation permet d’exprimer facilement les variables d’écart comme fonctions affines
43
III. Programmation linéaire
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
x5 Ø 0 =∆ 42 ≠ 5x3 Ø 0 =∆ x3 Æ 8.4
x6 Ø 0 =∆ 17 ≠ 3x3 Ø 0 =∆ x3 Æ 8.5
x7 Ø 0 =∆ 24 ≠ 3x3 Ø 0 =∆ x3 Æ 8.
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 :
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 .
45
III. Programmation linéaire
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.
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.
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
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
Nous devons tout d’abord transformer le système de contraintes afin de pouvoir traiter un
système linéaire :
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é
xj = x+j + xj Ø 0
≠
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).
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 :
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.
2y2 + 2y3 Ø 5.
Nous obtenons ainsi le modèle pour Dual Glass, appelé modèle dual :
Pour rappel, le modèle pour Wyndor Glass, dit modèle primal est :
Rappelons que pour la solution de base optimale du problème Wyndor Glass, l’objectif s’écrit :
3
z = 36 ≠ x4 ≠ x5 .
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
• 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,
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.
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
SETS
VARIABLES
POSITIVE VARIABLES
53
III. Programmation linéaire
PARAMETER
TABLE
ResourceUse(Resource, Crop) Resource used in the model
EQUATIONS
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é
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.
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
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)
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
Nous pouvons généraliser le programme linéaire introduit au chapitre précédent comme suit :
Soient a et b deux points dans Rn . Le segment de droite joignant ces deux points est
l’ensemble des points
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 :
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 :
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.
d2 f
’ x, >0 (IV.9)
dx2
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.
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.
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).
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 :
62
IV.1 Fonctions convexes et concaves
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 :
63
IV. Programmation non linéaire
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 :
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
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.
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.
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 ??.
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
7. Retour à l’étape 3.
x = xÕ + s,
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.
68
IV.2 Algorithmes
xk+1 = xk + tú Òx f (xk ),
et incrémentons k.
3. Si - -
- ˆf (x ) -
- k -
-
- ˆxj -
- Æ ‘ j = 1, 2, . . . , n,
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.
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
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,
Nous pouvons donc considérer qu’il n’y a qu’une seule contrainte avec
g1 (x1 , x2 ) = 2x1 + x2 ,
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.
1
≠ 2u1 < 0 (IV.23)
x1 + 1
71
V. Programmation mixte entière
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.
x1 = 0, x2 = 3, u1 = 1, u2 = 1, u3 = 0.
4 Notes
Ce chapitre se base en grande partie sur les notes de cours de Bernard Gendron, 2007.
72
Chapitre V
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
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.
x3 + x4 Æ 1; (V.3)
x3 Æ x1 ; (V.4)
75
V. Programmation mixte entière
x4 Æ x2 ; (V.5)
5. Contraintes 0 ≠ 1 (intégralité) :
ou encore
xj œ {0, 1}, j = 1, 2, 3, 4;
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.
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 ).
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
3x1 + 2x2 Æ 18 + M (1 ≠ y)
x1 + 4x2 Æ 16 + M y
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
N
ÿ
yj = K (V.9)
j=1
Soit la contrainte
f (x1 , x2 , . . . , xn ) = d1 , ou d2 ou . . . ou dN . (V.10)
avec
ÿ
yj = 1 (V.12)
j=1
80
V.2 Contraintes mutuellement exclusives
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
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
s.c.xj Æ Mj ,
yj œ {0, 1}, j = 1, 2, . . . , n.
0 Æ x Æ u,
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
L’objectif est
max z = 5x1 + 7x2 + 3x3 . (V.20)
y1 + y2 + y3 Æ 2. (V.22)
La relation entre les variables continues et les variables 0-1 s’exprime par
83
V. Programmation mixte entière
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.
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
3 ÿ
ÿ 3
jyij = 5. (V.25)
i=1 j=1
3
ÿ
yij Æ 1, i = 1, 2, 3. (V.26)
j=1
Autrement dit, nous avons remplacé l’égalité dans la première condition par une inégalité. Cette
définition implique
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
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
L’objectif est
min z = 2x1 + 3x2 + 4x3 + 6x4 + 7x5 + 5x6 + 7x7 + 8x8 + 9x9 + 9x10 + 8x11 + 9x12 .
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.
xj œ {0, 1}, j œ J.
87
V. Programmation mixte entière
3 Stratégies de résolutions
max z = x2
1
s.c. ≠ x1 + x2 Æ
2
7
x1 + x2 Æ
2
x1 , x2 Ø 0 et entiers.
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
max z = x1 + 5x2
s.c.x1 + 10x2 Æ 20,
x2 Æ 2,
x1 , x2 Ø 0 et entiers.
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
90
V.3 Stratégies de résolutions
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.
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
Z ú = 9 : Z Ø Z ú. (V.27)
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.
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
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.
et
Z = 16 : Z5 Æ 16. (V.28)
95
V. Programmation mixte entière
max z5 = 4x4 + 20
s.c.2x4 Æ ≠4
x4 Æ 0
x4 Æ 1
x4 binaire.
— 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 :
96
V.3 Stratégies de résolutions
97
V. Programmation mixte entière
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.
5. Retourner en 2.
98
V.3 Stratégies de résolutions
5
max 4x1 + x2
x 2
x1 + x2 Æ 6
9x1 + 5x2 Æ 45
x1 , x2 œ N.
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Ê),
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
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.
100
V.4 Modélisation avec GAMS
Suite à l’ajout de la contrainte redondante, comme représenté sur la Figure V.4, le problème
est résolu à la racine.
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
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
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);
OPTION LIMROW = 0;
OPTION LIMCOL = 0;
OPTION SOLPRINT = OFF;
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;
104
V.5 Exercices
Notons la ligne
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
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.
107
VI. Réseaux
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.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.
110
VI.2 Problème du chemin le plus court - algorithmes de corrections d’étiquette
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é.
111
VI. Réseaux
dist(u) Æ dist(v), ’v œ N \ S.
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.
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.
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
où
— 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 .
O ≠æ v1 ≠æ v2 ≠æ . . . ≠æ vk
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.
i := i + 1.
Retour en 2.
O ≠æ v1 ≠æ v2 ≠æ . . . ≠æ vk = T
Pour chaque i Æ k,
O ≠æ v1 ≠æ v2 ≠æ . . . ≠æ vi
115
VI. Réseaux
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.
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.
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.
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.
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.
118
VI.4 Problème du flot maximum
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 ) ?
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.
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
5. Retourner à l’étape 2.
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.
121
VI. Réseaux
122
VI.4 Problème du flot maximum
123
VI. Réseaux
124
VI.4 Problème du flot maximum
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.
125
VI. Réseaux
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
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
127
VII. Modèles stochastiques
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.
m
P [E] ƒ (VII.1)
n
m
P [E] = lim (VII.2)
n≠æŒ n
129
VII. Modèles stochastiques
P [E1 fl E2 ]
P [E2|E1] = (VII.3)
P [E1 ]
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
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)
130
VII.2 Variable aléatoire
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
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.
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
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 :
⁄b
P [X œ< a, b >] = f (x)dx = FX (b) ≠ FX (a). (VII.14)
a
132
VII.2 Variable aléatoire
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
⁄Œ
E[g(X)] = g(X)fX (x)dx. (VII.17)
≠Œ
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
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é.
Par exemple, le tirage d’une pièce de monnaie suit une loi de Bernouilli, avec p = 1/2.
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 :
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.
4 4
ÿ ÿ 8k e≠8
P [X < 5] = PX (k) = ƒ 0.1. (VII.27)
k=0 k=0 k
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
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.
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 }.
Un processus stochastique est une chaîne de Markov s’il possède la propriété markovienne :
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
136
VII.4 Modèles stochastiques
pij Ø 0, i, j œ {0, 1, . . . , M };
M
ÿ
pij = 1 Ø 0, i œ {0, 1, . . . , M }.
j=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 :
Nous avons donc une chaîne de Markov dont les probabilités de transition sont :
Grâce aux propriétés des probabilités de transition, nous pouvons déduire celles qui manquent :
137
VII. Modèles stochastiques
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
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.
141
VIII. Programmation dynamique
142
VIII.1 Principe d’optimalité de Bellman
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,
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,
Par conséquent, f1ú (2) = f1 (2, 4) et xú1 = 4. Sous forme de tableau, cela donne :
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
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
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
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
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
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
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
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ù
148
VIII.3 Programmation dynamique déterministe et plus court chemin
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
É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
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)
Pour la première étape (n = 1), nous avons s1 = 3, comme nous pouvons affecter 3 jetons au
151
VIII. Programmation dynamique
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.
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.
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
2 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.
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 :
157
IX. Simulation
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)
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 :
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 :
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.
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
161
IX. Simulation
Annexe
4 Logiciels d’optimisation
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
s.c. x1 + x2 + x3 Æ 100;
6x1 + 4x2 + 8x3 Æ 500;
x1 , x2 , x3 Ø 0.
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;
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.
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
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 :
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
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 :
En place de LP, nous devrions écrire MIP pour traiter un problème de programmation entière
mixte :
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
Equation1 Equation 1
Equation2 Equation 2
Equation3 Equation 3;
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))
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 :
Par exemple,
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
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,
SET i / 1*10 /
j / 1*10 /
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 :
Plutôt que d’utiliser des constantes, nous pouvons affecter les valeurs au moyen d’expressions
mathématiques :
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;
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.
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
173
Chapitre X
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.
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
175
X. Rappels sur le Calcul Stochastique
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.
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
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ô.
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
177
X. Rappels sur le Calcul Stochastique
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 .
178
X.3 Equations différentielles stochastiques (EDS)
n
ÿ
ÈM1 , M2 Ít = lim (M1 (ti ) ≠ M1 (ti≠1 ))(M2 (ti ) ≠ M2 (ti≠1 ))
næŒ
i=1
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
où
— 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
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
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.
où Z Õ est la transposée de Z.
181
XI. Formulation du problème de contrôle optimal stochastique
182
Chapitre XI
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.
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 :
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
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,
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
où
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 :
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 :
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.
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(.)). .
188
XI.3 Exercices d’application et d’assimulation
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.
189
XII. Principe de Maximun et Programmation dynamique des Systèmes
Économiques.
190
Chapitre XII
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.
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.
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 :
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
(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
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.
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 :
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 )),
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))]}.
195
XII. Principe de Maximun et Programmation dynamique des Systèmes
Économiques.
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 :
Alors,
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).
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 ,
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 ].
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
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,
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 :
199
XII. Principe de Maximun et Programmation dynamique des Systèmes
Économiques.
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.
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)).
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
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 Í.
ŝ
202
XII.3 Programmation dynamique
Cette dernière limite provient du fait que b, ‡, et f étant uniformément continues par (S1)’, on
a:
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 :
203
XII. Principe de Maximun et Programmation dynamique des Systèmes
Économiques.
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 :
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).
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
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
= 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.
≠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é. ⇤
206
XII.3 Programmation dynamique
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 +
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.
1,2,≠
(q̄(t), p̄(t), P̄ (t)) œ Dt+,x V (t, x̄(t)), t œ [s, T ], P ≠ p.s.,
On doit avoir :
208
Chapitre XIII
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.
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.
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 :
‡1 (t)
..
‡(t) = . © (‡ij (t)m◊m .
‡m (t)
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.
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
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
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 :
é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
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.
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).
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)
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
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
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 ,
216
XIII.2 Résolution par le principe du maximum stochastique
_
F (0, T ; R ), R œ LŒ
F (0, T ; S ), G œ LFT ( ; R).
[D œ LŒ k◊m m Œ
et
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.
LŒF (0, T ; R ) alors il existe une solution bornée uniformément positive (P+ , + )(resp.(P≠ , ≠ ))
m◊m
+
ū(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
218
XIII.2 Résolution par le principe du maximum stochastique
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,
1 sT
—(t) = e≠ t r(s)ds , cte = 0
2
⁄T ≠ s T r(s)ds
y =x+ e t ,
2
219
XIII. Applications : Stratégie Moyenne-Variance.
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 ),
vœ
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
est optimal pour le problème (XIII.20)-(XIII.21). De plus, le coût optimal est dans ce cas
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 :
221
XIII. Applications : Stratégie Moyenne-Variance.
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
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
◊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 .
2 )T ⁄T Ë 2
È
E(x(T )) = x0 e(r≠◊ + 1 ≠ e≠◊ T .
2
223
XIII. Applications : Stratégie Moyenne-Variance.
2 Ë 2 )T
È
⁄úT = d ≠ x0 e(r≠◊ .
≠◊2 T
e ≠1
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
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.
225
XIII. Applications : Stratégie Moyenne-Variance.
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
ḡ(t)
÷¯(t) := .
P̄ (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
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
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
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
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
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
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
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
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
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
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. ⇤
231
XIII. Applications : Stratégie Moyenne-Variance.
fonction de coût SA B2 T
⁄T
E U x(T ) + V
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
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.)
232
XIII.3 Résolution par la programmation dynamique
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
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
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 ;
239
Conclusion générale et perspectives
240
Références bibliographiques
[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
[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
[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