UNIVERSITE DU LITTORAL
Maˆıtrise ıtr ise AES
Recherche op´erationnelle erationnelle Daniel DE WOLF
Dunkerque, Septembre 2003
Table des mati`eres eres I
La progr programm ammati ation on lin´eaire et en nombres entiers
7
1
La progr programm ammati ation on lin´eaire.
9
2
1.1 1.1
Introd Introduc uctio tion n . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 1.2
Plan Plan du cour courss . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 1.3
Un simp simple le exem exempl plee . . . . . . . . . . . . . . . . . . . . . . . . .
10
1.4
Resolution e´ solution graphique . . . . . . . . . . . . . . . . . . . . . . .
13
1.5 1.5
Form Formula ulatio tion n g´en´ enerale e´ rale
1.6 1.6
Exer Exerci cice cess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 17
Algorithme du Simplexe.
19 21
2.1
Princip Principee de l’algori l’algorithm thmee . . . . . . . . . . . . . . . . . . . . . . 21
2.2
Formes Formes canoniq canoniques ues d’un program programme me lin´ eaire. . . . . . . . . . . . 22
2.3
Notion Notion de solution solution de base . . . . . . . . . . . . . . . . . . . . . 24
2.4
Initiali Initialisati sation on de l’algor l’algorithm ithmee . . . . . . . . . . . . . . . . . . . . 26
2.5
Une it´eration eration Simplexe . . . . . . . . . . . . . . . . . . . . . . .
2.6 3
9
2.5. 2.5.1 1
Choix Ch oix de la direc directio tion n . . . . . . . . . . . . . . . . . . . . 27
2.5.2 2.5.2
Choix Choix de la variab variable le sortante sortante . . . . . . . . . . . . . . . . 27
2.5.3 2.5.3
Calcul Calcul du nouveau nouveau sommet sommet . . . . . . . . . . . . . . . . 28
2.5. 2.5.4 4
Test d’opt d’optim imal alit´ it´e . . . . . . . . . . . . . . . . . . . . . . 30
2.5.5 2.5.5
Chemin Chemin suivi suivi par par l’alg l’algorit orithme hme du Simp Simplex lexee . . . . . . . . 31
Algorit Algorithme hme du Simple Simplexe xe . . . . . . . . . . . . . . . . . . . . . . 32
L’algorithme du Simplexe en Tableaux
3.1 3.1
27
33
Introd Introduc uctio tion n . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3
4
4
5
6
Table des mati` eres
3.2
Notion de tableau Simplexe . . . . . . . . . . . . . . . . . . . . 34
3.3
Tableaux Simplexe et pivotage . . . . . . . . . . . . . . . . . . .
3.4
Algorithme du Simplexe en tableaux . . . . . . . . . . . . . . . . 40
3.5
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Questions sur l’algorithme du Simplexe.
35 42 43
4.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2
Initialisation de l’algorithme . . . . . . . . . . . . . . . . . . . . 43
4.3
D´etermination de la variable entrante . . . . . . . . . . . . . . . 50
4.4
D´etermination de la variable sortante . . . . . . . . . . . . . . . 50
4.5
Arrˆet apr`es un nombre fini d’it´erations . . . . . . . . . . . . . . . 53
4.6
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analyse postoptimale.
43
56 57
5.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2
Variation par rapport au second membre . . . . . . . . . . . . . . 58
5.3
Variation des coefficients objectifs . . . . . . . . . . . . . . . . . 62
5.4
Cout ˆ r´eduit des variables hors base . . . . . . . . . . . . . . . . . 64
5.5
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La programmation en nombres entiers.
57
66 69
6.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2
Formulation des probl`emes mixtes . . . . . . . . . . . . . . . . . 70
69
6.2.1
Probl`emes avec coˆuts fixes . . . . . . . . . . . . . . . . . 70
6.2.2
Probl`emes avec contrainte logique . . . . . . . . . . . . .
6.2.3
Melange ´ avec nombre limit´e d’ingr´edients
6.2.4
Choix parmi un nombre discret de valeurs . . . . . . . . . 73
71
. . . . . . . . 72
6.3
M´ethode de branch and bound . . . . . . . . . . . . . . . . . . .
74
6.4
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
Table des mati` eres
5
II
Les mod`eles sur r´eseau, dynamiques et non lin´eaires.
81
7
Les mod`eles sur r´eseau
83
7.1
7.1.1
Repr´esentation au moyen d’un graphe . . . . . . . . . . . 84
7.1.2
Formulation du probl`eme . . . . . . . . . . . . . . . . . 85
Planification de la production . . . . . . . . . . . . . . . . . . .
87
7.3
Probl`eme d’affectation optimale . . . . . . . . . . . . . . . . . .
89
7.4
Le probl`eme de transport g´en´eral . . . . . . . . . . . . . . . . . 90 7.4.1
Probl`eme du plus court chemin . . . . . . . . . . . . . . 91
7.4.2
Probl`eme du flot maximum . . . . . . . . . . . . . . . . 92
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
R´esolution du probl`eme de transport simple
93 95
8.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . .
95
8.2
Notion de coˆut r´eduit . . . . . . . . . . . . . . . . . . . . . . . .
95
8.3
Le probl`eme de transport simple . . . . . . . . . . . . . . . . . .
99
8.4
R´esolution du probl`eme de transport simple . . . . . . . . . . . . 100
8.5 9
84
7.2
7.5 8
Le probl`eme de transport simple . . . . . . . . . . . . . . . . . .
8.4.1
Resolution ´ par le Simplexe . . . . . . . . . . . . . . . . 100
8.4.2
Resolution ´ par la m´ethode du stepping stone . . . . . . . 102
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
R´esolution du probl`eme de transport g´en´eral
107
9.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
9.2
Notion de r´eseau re´ siduel . . . . . . . . . . . . . . . . . . . . . 107
9.3
R´esolution du probl`eme de flot a` coˆut minimum . . . . . . . . . . 108 9.3.1
Algorithme de plus courts chemins successifs . . . . . . . 109
9.4
Application au probl` eme d’affectation . . . . . . . . . . . . . . . 112
9.5
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
10 La programmation dynamique.
119
10.1 Le probl`eme du voyageur . . . . . . . . . . . . . . . . . . . . . 119
6
Table des mati` eres
10.2 R´esolution des probl`emes dynamiques . . . . . . . . . . . . . . . 123 10.3 Un probl`eme d’affectation de ressources rares . . . . . . . . . . . 124 10.4 Application a` la planification de la production. . . . . . . . . . . 126 10.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 11 Les mod`eles non lin´eaires
131
11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 11.2 Difficult´e de r´esolution des probl`emes non lin´eaires . . . . . . . . 132
. . . . . . . . . . . . . 133 11.3 Diff´erence avec la programmation lineaire ´ 11.4 Les probl`emes convexes . . . . . . . . . . . . . . . . . . . . . . 136 11.5 Conditions de Kuhn et Tucker . . . . . . . . . . . . . . . . . . . 138 11.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 12 R´esolution des probl`emes non lin´eaires
143
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 12.2 Programmation s´eparable . . . . . . . . . . . . . . . . . . . . . 144 12.2.1 R´esolution par la notion d’´epigraphe
. . . . . . . . . . . 146
12.2.2 R´esolution par la notion d’enveloppe convexe . . . . . . . 147 12.3 La m´ethode de Franck-Wolfe . . . . . . . . . . . . . . . . . . . 149 12.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Partie I La programmation lin´eaire et en nombres entiers
7
Chapitre 1 La programmation lin´eaire. 1.1
Introduction
L’objectif de ce cours est double. Il s’agit, d’une part, de donner une introduction `a la formulation en mod`eles d’optimisation. Il s’agit, d’autre part, de pr´esenter les techniques de r´esolution de ces probl`emes. On parle de probl`eme d’optimisation lorsqu’il faut maximiser une fonction sous contraintes. Par exemple, maximiser le b´en´efice d’une entreprise sous les contraintes de satisfaire la demande et de respecter la capacit´ e de production. Le cours est divis´e en deux parties correspondant a` des types diff´erents de mod`eles d’optimisation. Dans la premi`ere partie du cours , nous nous concentrerons sur les probl`emes lin´ eaires et les probl`emes en nombres entiers. eaires, c’est-`a-dire les probl`eNous commencerons par le cas des probl`e mes lin´ meso`u la fonction objectif et les contraintes sont purement lin´ eaires. Lorsqu’il n’y a que deux variables de d´ecision, un probl`eme lin´eaire peut eˆ tre r´esolu de mani`ere purement graphique. C’est ce que nous verrons dans ce chapitre. Lorsqu’il y a un plus grand nombre de variables, un algorithme mis en œuvre sous la forme d’un programme informatique s’av`ere n´ecessaire. Il s’agit de l’algorithme du Simplexe que nous verrons au chapitre 2. Au chapitre 5, nous examinerons une question tr` es importante : a` savoir la sensibilit´e de la solution a` des modifications de donn´ees. On parle d’analyse post-optimale.
Lorsque les variables doivent prendre des valeurs enti` eres, on parle de probl`emes en nombres entiers. On devrait a` proprement parler de probl` emes lin´eaires en nombres entiers car on impose, en plus, aux contraintes et a` la fonction objectif d’ˆetre lin´eaires. Nous verrons au chapitre 6 une technique de r´ esolution de ces probl`emes : il s’agit de la m´ethode de branch and bound. Dans la seconde partie du cours , nous nous concentrerons sur les probl`emes 9
10
Chapitre 1. La programmation lin´eaire.
dynamiques et les probl`emes non lin´ eaires.
Le chapitre 10 est consacr´e a` la formulation et a` la r´esolution des probl`emes dynamiques, c’est-`a-dire ceux o` u une d´ecision strat´egique doit eˆ tre prise a` chaque e´ tape. Une application typique est la planification de production o` u a` chaque p´eriode de l’horizon de planification, on doit d´ ecider du niveau de production. Lorsque les contraintes et/ou la fonction objectif sont non lin´ eaires, on parle eaires. Nous verrons au chapitre 11 quelques m´ de probl`emes non lin´ ethodes de r´esolution de ces probl`emes. Il est a` remarquer que toutes ces m´ethodes de r´esolution e´ tant mises en œuvre dans des logiciels commerciaux, il ne viendrait plus a` l’id´ee de les programmer soi-mˆeme. Par exemple, le solveur d’Excel dispose d’une impl´ ementation de ces algorithmes.
1.2
Plan du cours
Partie I : les probl`emes lin´eaires et en nombres entiers. eaire. • La programmation lin´
• L’algorithme du Simplexe. • Questions sur l’algorithme du Simplexe. • L’analyse post-optimale. • Les mod e` les en nombres entiers. esolution des mod e` les en nombres entiers. • R´
Partie II : les mod`eles sur r´eseau, dynamiques et non lin´eaires. eseau. • Les mod e` les sur r´
• La programmation dynamique. • Application a` la planification de production. eaires. • Les mod e` les non lin´ esolution des mod e` les non lin´ eaires. • R´
1.3
Un simple exemple
Nous prenons un exemple tir´e de Hillier et Lieberman [10]. Il s’agit d’une entreprise de fabrication de chassis qui envisage la production de deux nouveaux
11
Section 1.3. Un simple exemple
mod`eles au moyen des capacit´es r´esiduelles de ses trois ateliers. Il s’agit respectivement d’un chassis en aluminium et d’un chassis en bois. Le premier produit n´e cessite le passage dans le premier atelier pour fabriquer le cadre en aluminium et dans le troisi`eme atelier o`u le verre est mont´e sur le chassis. Tandis que le second produit n´ecessite le passage dans le deuxi`eme atelier pour fabriquer le cadre en bois et dans le troisi`eme atelier o`u le verre est mont´e sur le chassis. Les marges unitaires, les temps de fabrication de chacun des produits dans chacun des ateliers ainsi que les capacit´es hebdomadaires r´esiduelles de ces ateliers sont donn´ es au tableau 1.1. Produit 1
Produit 2
(heures/produit) (heures/produit)
Capacit´e disponible (heures/semaine)
Atelier 1
1
0
4
Atelier 2
0
2
12
Atelier 3
3
2
18
Marge
3$
5$
Tableau 1.1: Marges, temps d’usinage et capacit´ es. La question qui se pose est la suivante : “Combien faut-il produire de chassis de chaque type par semaine pour maximiser le profit net ?” La formulation d’un probl`eme d’optimisation comporte toujours les troisetapes ´ suivantes : 1. choix des variables du mod`ele; 2. formulation de l’objectif; 3. formulation des contraintes. La premi`ere e´ tape consiste a` choisir les variables du probl` eme. esolution du probl`eme D´efinition 1.1 On appelle variable toute quantit e´ utile a` l a r´ ´ dont le mod e` le doit d eterminer la valeur.
Cette d´efinition permet de diff´erencier les variables des param` etres, qui sont des donn´ees qui peuvent varier, par exemple d’une p´ eriode a` l’autre ou d’un sc´enario `a l’autre. Ici les quantit´es que le mod`ele doit d´eterminer sont les productions de
12
Chapitre 1. La programmation lin´eaire.
chassis par semaine. Notons donc :
x1 = nombre de chassis de type 1 produits par semaine, x2 = nombre de chassis de type 2 produits par semaine. La deuxi`eme e´ tape consiste a` formuler math´ematiquement l’objectif. D´efinition 1.2 On appelle fonction objectif d’un probl`eme d’optimisation le crit e` re de choix entre les diverses solutions possibles.
Ici l’entreprise d´e sire maximiser son profit net. La marge etant ´ de 3 pour le premier type de chassis et de 5 pour le second, l’objectif s’exprime comme suit :
maxz = 3x1 + 5x2 La troisi`eme e´ tape est la formulation les contraintes du probl`eme. D´efinition 1.3 On appelle contraintes du probl`eme toutes les relations limitant le choix des valeurs possibles des variables.
Ces relations peuvent etre ˆ de simples bornes sur les variables. Par exemple, les quantit´e produites ne peuvent etre ˆ n´egatives. Math´ematiquement :
x1 , x2 ≥ 0. Elles peuvent etre ˆ plus complexes comme les contrainte de capacit´ e de production. Le temps pour assembler 1 chassis de type 1 dans l’atelier 1 est de 1 heure o`u il reste 4 heures disponibles. D’o` u la contrainte de capacit´ e de l’atelier 1 :
x1 ≤ 4 Semblablement, on peut construire les contraintes de capacit´ es des deux autres ateliers :
2x2 ≤ 12 3x1 + 2x2 ≤ 18 Il est alors tr`es utile de reprendre sous une forme condens´ee la formulation compl`ete du probl`eme. Ici, on obtient la formulation suivante :
maxz = 3 x1 + 5 x2 x1 s.c.q.
3x1 x1
2x2 + 2x2 x2
≤ 4 ≤ 12 ≤ 18 ≥ 0 ≥ 0
(1.1)
13
Section 1.4. R´ esolution graphique
1.4
R´esolution graphique
Comme annonc´e dans l’introduction, dans le cas de deux variables de d´ ecision, un probl`eme lin´eaire peut eˆ tre r´esolu de mani`ere purement graphique en suivant le processus en trois etapes ´ qui suit. La premi`ere e´ tape de la r´esolution consiste a` repr´esenter graphiquement la r´ egion r´ ealisable. egion r´ ealisable, l’ensemble des valeurs de variables D´efinition 1.4 On appelle r´ ´ de d ecision qui satisfont toutes les contraintes.
Dans le cas de l’exemple, c’est l’ensemble des points (x1 , x2 ) satisfaisant les in´egalit´es de (1.1). Graphiquement une in´egalit´e telle que 3x1 + 2x2 ≤ 18 correspond a` un demiplanlimit´e parladroiteobtenueenprenantl’in´e quation a` l’´egalit´e (3x1 +2x2 = 18). Lorsque l’on fait l’intersection des cinq demi-plans correspondant aux cinq in´ egalit´es :
≤ 4 (1) ≤ 12 (2) ≤ 18 (3) ≥ 0 (4) ≥ 0 (5)
x1 3x1 x1
2x2 + 2x2 x2
on obtient le polygone hachur´e a` lafigure1.1. En e´ conomie, cet ensemble r´ealisable est encore appel´e l’ensemble de production. G´ en´ eralisation. La notion de poly`edre de Rn . Plus g´ en´ eralement, si on a n variables, on ne parle plus de polygone, mais bien de poly`edre. En effet, la r´ egion de Rn correspondant aux solutions d’une in´ egalit e´ lin´ eaire du type suivant :
ak1 x1 + ak2 x2 + . . . + akn xn ≤ bk est un demi-espace ferm´ e situ´ e d’un cˆ ot e´ de l’hyperplan de Rn d’´ equation :
ak1 x1 + ak2x2 + . . . + akn xn = bk . D´efinition 1.5 On appelle poly`edre de syst e` me d’in´ equations lin´ eaires :
n
R
l’ensemble des x ∈
ak1 x1 + ak2 x2 + . . . + akn xn ≤ bk , k = 1, . . . p
n
R
v´ erifiant un
14
Chapitre 1. La programmation lin´ eaire. eaire.
x2 (4) 10 8
(1) (2)
6 4 (3)
2
(5) 0
2
4
6
8
x1
Figure 1.1: Ensemble Ensemble de production. production. ´ ´ ´ ´ ´ suivantes : A titre d’illustration, d’illustration, le poly` polyedre e` dre de R3 d efini par les in´ inegalit es
x1 + x2 + x3 ≤ 1 x1 , x2 , x3 ≥ 0 ´ ´ a` la figure 1.2 par le prisme OABC ou` O note l’origine des axes. est repr´ represent e´
x3 C
O
x1
B
x2
A
Figure 1.2: Hyperfaces d’un poly`edre dans R3 . On voit ici clairement clairement que le systeme ` est sous-d´etermin´ etermin´e. e. On va devoir devoir choisir eme etape e´ tape entre ces diff´erents plans de production. Pour ce faire, et c’est la deuxi`eme de la r´esolution esolution, on va repr´esenter esenter graphiquement des lignes d’isovaleur de la fonction objectif :
z = 3x1 + 5x 5x2 .
15
Section 1.4. R´ esolution esolution graphique
En effet, on remarquera que l’expression de la fonction objectif fait intervenir trois variables variables et ne peut donc etre ˆ repr´esent´ esent´ee ee que dans l’espace. l’espace. Pour se ramener ramener dans le plan, on va consid´erer des valeurs valeurs successives successives de l’objectif l’objectif :
z = k. Ce qui correspond graphiquement graphiquement a` des droites parall`eles
3x1 + 5x 5x2 = k. Les poin points ts d’un d’unee de ces ces droi droite tess sont sont donc donc le lieu lieu de tous tous les les poin points ts donn donnan antt la mˆ eme valeur du profit (d’o`u le nom de droite d’isovaleu d’isovaleurr de la fonction objectif). objectif). Ceci est fait a` la figure 1.3 o`u l’on a repr´esent´ esent´e z = 10, 20 et 36. x2 10 8 6
(2,, 6) (2
4
(4 , 3)
2 0
z = 36 2
6
z = 10
8
x1
z = 20
Figure 1.3: Droites d’isoprofit. d’isoprofit. eme etape e´ tape de la r´esolution esolution, l’optimum sera d´etermin´ Enfin, et c’est la troisi`eme etermin´e situe´ sur la droite d’isoprofit la plus graphiquement comme le plan de production situ´ ´ ee ´ , c’est-`a-dire elev´ elev a-dire celle qui donne le profit le plus elev´ ´ e. e . On voit a` la figure 1.3 qu’il s’agit du point x
∗
= (2, (2, 6). 6).
Justifions ce choix. Comme on maximise le profit on a int´erˆ eret eˆ t a` prendre la droite d’isovaleur d’isovaleur la plus elev´ ´ ee ee possible possible.. Bien Bien sur, ˆ il faut que le plan de production soit encore r´ealisable ealisable : autrement dit, il faut se restreindre a` la r´egion egion realisable. e´ alisable. On a alors la tr`es es important remarque suivante : Observation 1 : Pour maximiser l’objectif, il faut prendre la droite d’isovaleur de l’objectif qui ´ ´ touche encore la r´ region r´ realisable et qui donne la plus grande valeur a` l’objectif.
16
Chapitre 1. La programmation lin´ eaire. eaire.
Sur base de cet exemple, on tire une deuxi`eme observation : Observation 2 : ´ ´ On constate que la solution optimale est a` un sommet de la r´ region r´ realisable.
On peut alors se demander si la solution optimale sera toujours a` un sommet de la r´egion egion r´ealisable. ealisable. En fait, lorsque la ligne d’iso-marge d’iso-marge est parall` ele a` un cˆot´ ote´ du polygone, on a que tout le cˆ ot´e du polygone est optimal. Par exemple, exemple, si l’objectif 2x2 , tout le segment entre (2,6) et (4,3) aurait et´ avait et´ e´ t´e z = 3x1 + 2x et ´ e´ optimum. optimum. Observation 3 : ˆ me si tout un cot ˆ e´ ´ du polyg M eˆ polygone one est est optima optimal, l, on peut peut toujou toujours rs choi choisir sir une une soluti solution on optimale correspondant a` un sommet.
En conclusion, on peut voir qu’il suffit d’´ evaluer la valeur de l’objectif en chacun des sommets pour d´eterminer eterminer l’optimum d’un probl`eme lin´eaire. eaire. Mais on peut aller plus loin encore pour limiter le nombre de sommets a` examiner en se basant sur la quatri`eme observation suivante. Observation 4 : ˆ e´ ´ du polygone, la valeur de l’objectif peut ˆ ˆ soit constante, soit Le long d’un cˆ cot peut etre strictement croissante, soit strictement d ecroissante. ´ ´
On peut donc sugg´erer erer l’algorithme suivant : Algorithme 1.1 Principe de l’algorithme du Simplexe. i) Choisir Choisir comme comme point point de d epart ´ ´ un sommet x∗ de la r´ region ´ r´ realisable. ´ ´ ˆ es ´ ´ passant par ce sommet x∗ . Trouver ˆ e´ ´ le long ii) D´ Determiner les cˆ cot ouver un cˆ cot ∗ duquel z croˆ croˆ ıt. S’il n’y en n’a pas, STOP : le x courant courant est optimal. iii) iii) Determiner etermine ´ r le sommet y∗ a` l’autre bout du cˆ cot ˆ e´ ´ et poser x∗ = y∗ . Retour en ii).
Nous Nous allon allonss voir voir au chapi chapitr tree suiva suivant ntee comme comment nt g´ en´eraliser eraliser cet algorith algorithme me au cas n de R : on obtient alors l’algorithme du Simplexe. Mais avant cela, g´en´ eneralisons e´ ralisons la notion de cˆot´ ote´ et de sommet et voyons la formulation g´ en´erale erale d’un probl`eme eme lin´eaire. eaire. G´ en´ eralisation. Notion de faces d’un poly`edre. edre. On peut egalement ´ g´ gen´ en ´ eraliser ´ les notions de cot es ´ ´ et de sommet d’un polygone. edre. Il s’agit, en fait, de cas particuliers de la notion de face d’un poly`edre l’ensemble des points appartenant edre l’ensemble D´efinition efinition 1.6 On appelle face d’un poly`edre ´ ´ ´ : au poly` polyedre e` dre et qui v´ verifient un certain nombre de contraintes contraintes a` l’´ l’egalit e´
ak1 x1 + ak2 x2 + . . . + akn xn = bk , k ∈ I ⊆ {1, . . . p}
17
Section 1.5. Formulation g´ en´erale Suivant la dimension de l’ensemble obtenu, on a des noms particuliers.
D´efinition 1.7 Dans l’espace Rn , on appelle hyperface, une face de dimension n − 1, arˆ ete, une face de dimension 1 et sommet , une face de dimension 0. Reprenons l’exemple du poly`edre OABC ci-dessus. Le triangle ABC est l’ensemble des points du poly`e dre v´ erifiant une contrainte a` l’´ egalit e´ (x1 +x2 +x3 = 1). I l s’agit donc d’une face. Elle est de dimension 2 et donc il s’agit donc d’une hyper face. La droite AB est l’ensemble des points du poly`edre v´ erifiant 2 contraintes a` l’´ egalit e´ (x1 + x2 + x3 = 1 et x3 = 0). Elle est de dimension 1 : il s’agit donc d’une arˆ ete. Le point C est l’intersection de 3 (n = 3) hyperplans d elimitants, ´ il est de dimension 0 : c’est donc un sommet.
1.5
Formulation g´en´erale
Nous allons g´en´eraliser l’exemple introductif. Consid´ erons qu’il y a n produits possibles (ici n = 2) n´ecessitant l’utilisation eventuelle ´ de m ressources limit´ees (ici m = 3 ateliers de capacit´e limit´ee). Notons c j , l’accroissement du profit par unit´e de produit j et bi , la quantit´e de ressource i disponible. Notons par aij la quantit´e de ressource i consomm´ee pour produire une unit´e de produit j . Les donn´ees num´eriques du probl`eme sont r´esum´ees au tableau 1.2. Ressource 1 2 .. . m marge
Produit
Capacit´e
n a1n a2n
disponible
a12 a22
... ... ...
am2 c2
... ...
amn cn
bm
1
2
a11 a21 am1 c1
b1 b2
Tableau 1.2: Donn´ees num´eriques du probl`eme. Un programme lin´eaire peut donc se formuler en g´en´eral de la mani`ere suivante. On veut d´eterminer le point qui maximise un crit`ere, fonction lin´eaire des variables de d´ecision, tout en respectant des contraintes, elles aussi fonctions
18
Chapitre 1. La programmation lin´eaire.
lin´eaires des variables de d´ecision. On peut e´ crire : max z = c1 x1 + c2 x2 · · · + cn xn ,
s.c.q.
a11 x1 +
a12x2 · · · +
a1n xn ≤
b1 ,
a21 x1 +
a22x2 · · · +
a2n xn ≤
b2 ,
.. .
.. .
.. .
.. .
am1 x1 + am2x2 · · · + amn xn ≤ bm ,
≥
0,
≥
0,
xn ≥
0.
x1 x2 ..
.
On a donc un probl`eme a` n variables et a` m + n contraintes d’in´egalit´e, les n derni`eres e´ tant celles de non n´egativit´e des variables. Matriciellement, le probl`eme peut s’´ecrire comme max s.c.q. avec
A c
matrice (m × n) vecteur (n × 1)
b x
z = c T x,
Ax
≤
b,
x
≥
.
(1.2)
vecteur (m × 1) vecteur (n × 1).
D´efinition 1.8 Tout point x v´ erifiant les contraintes de (1.2) est dit une solution eaire. r´ ealisable pour le probl`eme lin´
Notons par S la r´egion r´ealisable :
S = {x ∈ Rn |Ax ≤ b, x ≥ 0} . Parmi ces solutions r´ealisables, celles qui maximisent l’objectif sont appel´ ees solutions optimales. D´efinition 1.9 Tout point x∗ ∈ S et tel que
∀x ∈ S, cT x∗ ≥ cT x, est dit une solution optimale pour le probl`eme lin´ eaire (1.2).
19
Section 1.6. Exercices
1.6
Exercices
1.1. Recyclage du papier. Une soci´et´e de tri de d´echets et recyclage de papier peut se fournir en d´echets aupr`e s de deux villes. Son role ˆ consiste a` s´eparer les listes d’ordinateur et les journaux. La r´ epartition entre m´enages et soci´et´e s est diff´erente d’une ville a` l’autre expliquant un pourcentage diff´erent de listes d’ordinateur et de journaux dans les d´echets. Ces pourcentages ainsi que la quantit´e maximum de d´echets que peuvent fournir par an ces deux villes sont reprises au tableau suivant : Ville Ville 1 Ville 2
Listes (%) Journaux (%) Offre (tonnes par an)
5 15
20 30
10.000 20.000
La soci´et´e offre aux villes un prix de 35 EURO par tonne de d´echet. Elle doit d´ecider du montant optimal de d´echets a` acheter a` chaque ville pour minimiser son coˆut d’achat. Pour couvrir ses frais fixes, la soci´ et´e doit au moins collecter 1.500 tonnes de listing d’ordinateur par an. Au del` a de 6.000 tonnes de journaux mis sur le march´e par an, le prix que la soci´et´e re¸coit pour la vente de journaux chute et donc la compagnie ne d´esire pas vendre plus que cette quantit´e. Combien la soci´et´e doit-elle acheter de d´echets par an a` chacune des villes ? (a) Formuler math´ematiquement le probl`eme (choix des variables, expression des contraintes et de l’objectif); (b) D´e terminer graphiquement le plan d’achat optimal et en d´ eduire le coˆut d’achat minimum. 1.2. Planification de production sur coˆut variable. Une entreprise fabrique deux produits P 1 et P 2 . Chaque produit doit passer les deux ateliers d’usinage et de finition. Le mois dernier, 500 unit´ es de P 1 ont e´ t´e produites grˆace a` 750 heures d’usinage et 250 heures de finition. De mˆ eme, 700 unit´e s de P 2 ont e´ t´e produites, n´ecessitant 700 heures d’usinage et 350 heures de finition. L’entreprise dispose egalement ´ d’une section administration. Une partie du coˆut de production est ind´ependante du nombre d’heures pass´ ees a` la production (les frais fixes), une partie est directement proportionnelle au nombre d’heures pass´ ees a` la production (les frais variables). Le mois pass´ e,
20
Chapitre 1. La programmation lin´eaire.
on a observ´e la r´epartition suivantes entre frais fixes et frais variables : Section Administration Usinage Finition
frais fixes frais variables
50.000 60.000 40.000
0 11.600 6.000
Il y a un coˆut de conditionnement de 8 euros l’unit´ e pour P 1 et de 6 euros pour P 2 . Les prix de vente sont de 55 euros et 43 euros respectivement. (a) Calculer les marges sur coˆ uts variables (diff´erence entre prix de vente et coˆut variable de production) par unit´ e de chacun des deux produits. Indication : calculer d’abord le prix de l’heure dans chacun des ateliers et le temps n´ecessaire dans chacun des ateliers par produit. (b) Les capacit´es de production sont de 1.200 heures par mois pour l’usinage et de 500 heures pour la finition. Formuler le programme lin´ eaire correspondant a` la maximisation de la marge sur coˆ uts variables. (c) D´eterminer graphiquement la solution optimale.
Chapitre 2 Algorithme du Simplexe. 2.1
Principe de l’algorithme
L’algorithme du Simplexe permet la d´etermination d’une solution optimale d’un programme lin´eaire lorsqu’une telle solution existe. Dans le cas contraire, l’algorithme, lors du passage par une phase pr´ eliminaire appel´ee phase I, d´etermine l’absence de solution r´ealisable. Nous verrons la phase I au chapitre 4. Rappelons la formulation de l’exemple introductif :
maxz = 3 x1 + 5 x2 x1 s.c.q.
3x1 x1
2x2 + 2x2 x2
≤ 4 ≤ 12 ≤ 18 ≥ 0 ≥ 0
(2.1)
dont la repr´esentation graphique est donn´ ee a` la figure 2.1. Le principe de l’algorithme du Simplexe est de d´eterminer une solution optimale en allant de sommet en sommet adjacent. Partant du point (0,0), l’algorithme vad´e terminer une arˆete le long de laquelle l’objectif s’accroˆıt : par exemple, l’arˆ ete en direction de (0,6). Ensuite, on va aller jusqu’au bout de cette arete ˆ : c’est-`a-dire au sommet (0,6). Et le processus continue de mani` ere it´erative. On d´etermine une arˆete le long de laquelle l’objectif s’accroˆıt : l’arˆ ete en direction de (2,6). On va jusqu’au bout de l’arˆete et, l`a , on constate que tout mouvement, en arri` ere vers (0,6) ou en avant vers (4,3), conduit a` diminuer l’objectif. On est donc a` l’optimum. Nous allons maintenant voir comment effectuer ces memes ˆ op´erations en utilisant uniquement l’alg`ebre. C’est l’objet de l’algorithme du Simplexe.
21
22
Chapitre 2. Algorithme du Simplexe. x1 = 0
10
(0, 9)
x1 = 4
8
(2, 6) (4 , 6)
(0, 6) 4
2x2 = 12
(4,3)
2
3x1 + 2x2 = 18
(0 , 0)
x2 = 0
2 (4, 0) (6 , 0) 8
Figure 2.1: Un exemple de programme lin´eaire
2.2
Formes canoniques d’un programme lin´eaire.
La forme canonique d’un programme lin´eaire dans l’espace des variables originales avait e´ t´e vue au chapitre 1. Elle correspond a` la forme matricielle suivante : max s.c.q. avec
A c
matrice (m × n) vecteur (n × 1)
b x
z = c T x,
Ax
≤
b,
x
≥
.
vecteur (m × 1) vecteur (n × 1).
Il s’agit d’un probl`eme avec n variables et m + n contraintes d’in´egalit´e. Cependant, parmi ces derni`eres,ilya m contraintes qui peuventetre ˆ des contraintes d’in´egalit´e g´en´erales et n qui ne sont que des contraintes de positivit´ e des variables. Observons qu’il est toujours possible de transformer une contrainte d’in´ egalit´e g´en´erale en une contrainte d’´egalit´e par ajout d’une variable a` laquelle on impose d’ˆetre non n´egative. Consid´erons, par exemple, la contrainte
3x1 + 2x2 ≤ 18. Imposer que le membre de gauche soit inf´ erieur ou e´ gal au membre de droite, revient a` dire qu’il faudrait ajouter une quantit´ enonn´e gative au membre de gauche pour qu’il y ait e´ galit´e :
3x1 + 2x2 + x3 = 18, avec la condition que la variable x3 soit non n´egative
x3 ≥ 0.
Section 2.2. Formes canoniques d’un programme lin´ eaire.
23
Cette quantit´e repr´esente un d´eficit ou un e´ cart . Comme cet e´ cart peut varier, on l’appelle variable d’´ecart . ´ au membre de ecart est la quantit e´ qui, ajout ee D´efinition 2.1 La variable d’´ ´ ´ gauche d’une contrainte, permet de transformer la contrainte en egalit e.
Bien que dans la forme canonique on ne consid` ere que des contraintes d’in´egalit´e s g´en´erales du type inf´erieur ou e´ gal, on peut aussi envisager de transformer des contraintes g´en´erales du type sup´erieur ou e´ gal en e´ galit´e. Lorsqu’on impose
2x1 + x2 ≥ 4, on impose que le membre de gauche d´epasse le membre de droite. Il y a donc aussi un e´ cart qui s’av`ere cette fois eˆ tre un surplus. Pour revenir a` l’´egalit´e, il faut retrancher une quantit´ e non n´egative du membre de gauche.
2x1 + x2 − x3 = 4, avec x3 ≥ 0. Appliquons ceci au probl`eme (2.1). On obtient le probl`eme sousforme standard avec e´ galit´es suivant :
maxz = 3x1 + 5x2 x1 +x3 2x2 +x4 s.c.q. 3x1 +2x2 +x5 x1 , x 2 , x 3 , x 4 , x 5
= 4 = 12 = 18 ≥ 0
(2.2)
Remarquons qu’il y a e´ quivalence totale entre les deux formes . En effet, d’une part, toute solution r´ ealisable du probl`eme (2.1) peut eˆ tre augment´ee en une solution r´ealisable pour le probl`eme (2.2). Toute solution r´ealisable du probl`eme (2.2) peut etre ˆ tronqu´e e en une solution r´ealisable pour le probl` eme (2.1). Comme, d’autre part, les fonctions objectifs sont identiques, on a bienequivalence ´ entre les deux probl`emes. Illustrons cette correspondance entre solutions : a` la solution (3,2) du probl`eme (2.1) correspond la solution augment´ ee (3,2,1,8,5) du probl`eme (2.2). Dans l’autre sens, il suffit de tronquer la solution dans R5 en ne retenant que ses deux premi`eres composantes.
24
Chapitre 2. Algorithme du Simplexe.
2.3
Notion de solution de base
On remarquera que les egalit´ ´ es du probl`eme (2.2) forment un syst`eme de m =3 e´ galit´es en n + m = 2 + 3 = 5 inconnues. Donc la valeur de n = 2 variables peut ˆetre fix´ee arbitrairement. Par exemple, dans le syst`eme d’´egalit´es :
x1
+x3 2x2
= +x4
3x1 +2x2
4
= 12
(2.3)
+x5 = 18
ˆ fix´ ees a` z´ ero. On dit qu’elles sont mises les deux variables x1 et x2 peuvent etre hors base.
D´efinition 2.2 On appelle variables hors base (v.h.b.) les n variables de Rn+m fix´ ees a` z´ ero. Les m variables restantes sont appel´ ees variables de base (v.b.).
Dans l’exemple, les variables de base sont donc x3 , x4 et x5 dont on peut lire la valeur dans (2.3) :
x3 = 4 x4 = 12 x5 = 18 D´efinition 2.3 On appelle solution de base une solution o`u en ayant choisi n variables hors base, on obtient une solution unique en r´ esolvant les m contraintes ´ obtenues en ajoutant les variables d’´ d’´ egalit es ecart. ealisable une solution de base qui, D´efinition 2.4 On appelle solution de base r´ ´ en plus, v´ erifie les contraintes de positivit e.
Dans l’exemple, la solution de base suivante :
x1 = 0, x2 = 0
variables hors base
x3 = 4, x4 = 12, x5 = 18 variables de base est r´ealisable car toutes les variables de base sont positives. Le lien entre l’alg`ebre et la g´eom´etrie est alors donn´e par la propri´et´e suivante. eom´ etrique de sommet du polygone correspond a` la Propri´et´e 2.1 La notion g´ ealisable. notion alg´ ebrique de solution de base r´
25
Section 2.3. Notion de solution de base
On peut v´erifier cette propri´et´e sur l’exemple. A la figure 2.1, les sommets ealisables (0,0), (0,6), (2,6), (4,3), (4,0) correspondent a` des solutions de base r´ tandis que les points (0,9), (4,6) et (6,0) correspondenta` des solutions de base non r´ ealisables. Cette correspondance est etablie ´ au tableau 2.1. v.h.b.
(x1 , x2 ) (x3 , x4 , x5 ) sommet ?
x1 , x2
(0, 0)
(4, 12, 18)
oui
x1 , x4
(0, 6)
(4, 0, 6)
oui
x1 , x5
(0, 9)
(4, −6, 0)
non
x4 , x5
(2, 6)
(2, 0, 0)
oui
x3 , x4
(4, 6)
(0, 0, −6)
non
x3 , x5
(4, 3)
(0, 6, 0)
oui
x2 , x3
(4, 0)
(0, 6, 6)
oui
x2 , x5
(6, 0)
(−2, 12, 0)
non
Tableau 2.1: Correspondance entre solution de base realisable ´ et sommet. Nous avons d´ej`a annonc´e que l’algorithme du Simplexe consiste a` aller de sommet en sommet adjacent. Interpr´et´e alg´ebriquement, cela revient a` consid´erer un passage d’une solution de base r´ ealisable a` une autre solution de base r´ ealisable. La notion d’adjacence doit etre ˆ e´ tendue aux solutions de base. D´efinition 2.5 On appelle solutions de base adjacentes deux solutions de base dont les variables de base sont les mˆ emes sauf une qui est de base dans la premi`ere base et hors base dans la seconde.
Dans l’exemple, les deux solutions de base suivantes sont adjacentes :
x1 = 0, x2 = 0, x3 = 4, x4 = 12, x5 = 18,
x1 x2 x3 x4 x5
= 0, = 6, = 4, = 0, =6
car elles ne diff`erent que par une seule variable hors base. Par contre les solutions suivantes :
x1 = 0, x2 = 0,
x1 = 2, x2 = 6
26
Chapitre 2. Algorithme du Simplexe.
ne sont pas adjacentes puisqu’elle diff` erent par plus d’une variable hors base. On peut le v´erifier a` la figure 2.1. Propri´et´e 2.2 La notion g´ eom´ etrique de sommets adjacents correspond a` la notion alg´ ebrique de solutions de base r´ ealisables adjacentes.
2.4
Initialisation de l’algorithme
La question qui se pose est : “Comment choisir le point de d´ epart ?” Si le probl`eme est mis sous forme d’in´egalit´es avec bi ≥ 0, i = 1, . . . n, il suffit de prendre l’origine comme point de d´epart. Dans l’exemple, cela donne :
(x1 , x2 ) = (0, 0) En termes alg´ebriques, toutes les variables originales sont mises hors base. Automatiquement , dans le syst`eme d’´egalit´es :
x1
+x3 2x2
=
= 12 ,
+x4
3x1 +2x2
4
+x5 = 18
on lit la valeur des variables de base :
x3 = 4 x4 = 12 x5 = 18 D’o`u la solution de base r´ealisable de d´epart :
(0, 0, 4, 12, 18). Remarquons que si un membre de droite avait e´t´e n´egatif ou si une contrainte avait e´ t´e sous forme d’´egalit´e, on n’aurait pas pu d´emarrer ainsi. Ces embˆuches peuvent ˆetre lev´ees en passant par une phase pr´eliminaire appel´ee phase I de l’algorithme du Simplexe (voir chapitre 4). Que vaut la fonction objectif pour cette premi`ere solution de base ?
z = 3x1 + 5x2 = 3 · 0 + 5 · 0 = 0, c’est-`a-dire une marge b´en´eficiaire nulle, ce qui n’est pas etonnant ´ vu que cela correspond a` une production nulle des deux produits.
Section 2.5. Une it´ eration Simplexe
2.5
27
Une it´eration Simplexe
Pour rappel, le principe de l’algorithme du Simplexe consiste a` se d´eplacer de sommet en sommet adjacent de fa¸con a` am´eliorer la fonction objectif. On va donc se d´eplacer a` partir de notre solution de base de d´ epart vers une solution de base r´ealisable en suivant une arˆete le long de laquelle l’objectif s’accroˆıt.
2.5.1
Choix de la direction
La question qui se pose est alors : comment choisir la direction ? Remarquez qu’alg´ebriquement, cette question se formule de mani`ere e´ quivalente par : quelle variable hors base va entrer en base ? election de la variable entrante est de prendre la variable hors Le crit`ere de s´ base qui fournit le plus fort taux d’augmentation de la fonction objectif :
z = 3x1 + 5x2 . Pour une augmentation unitaire de x1 , z augmente de 3. Pour une augmentation unitaire de x2 , z augmente de 5. Le crit`ere de s´election de la variable entrante est donc le suivant : on choisit la variable avec le coefficient objectif le plus ´elev´e. Remarquez que pour pouvoir appliquer ce crit` ere simple (choisir la variable ee en de coefficient objectif le plus elev´ ´ e), la fonction objectif z doit eˆ tre exprim´ fonction des seules variables hors base.
2.5.2
Choix de la variable sortante
La question qui se pose est : quand s’arrˆ eter le long de la direction ? G´eom´etriquement, on se dirige sur l’axe x2 et on s’arˆete en (6,0), a` la premi`ere contrainte rencontr´ee. Alg´ebriquement, on constate qu’en ce point la variable d’´ecart x4 s’annule et aller au del` a conduirait a` larendren´egative. On va donc pousser x2 le plus loin possible, tant que les variables de base restent non n´egatives . Le crit`ere de s´election de la variable sortante est donc le suivant : prendre comme variable sortante la premi` ere variable de base a` s’annuler. En maintenant x1 hors base dans (2.3), on obtient la variation des variables de base en fonction de x2 :
x3 = 4 ≥ 0
28
Chapitre 2. Algorithme du Simplexe.
x4 = 12 − 2x2 ≥ 0 x5 = 18 − 2x2 ≥ 0 ou encore :
12 =6 2 18 =9 ≤ 2
x2 ≤ x2
On en conclut que la variable sortante est x4 , c’est-`a-dire la premi`ere qui s’annule (pour x2 = 6). Demani`e reg´en´e rale, on calcul le minimum du rapport du coefficient du membre de droite sur le coefficient de la variable entrante dans la mˆ eme ligne lorsque celui-ci est positif. La variable sortante est celle dont on lit la valeur dans la ligne o`u ce minimum se produit.
2.5.3
Calcul du nouveau sommet
La question qui se pose est : comment calculer la nouvelle solution de base ? On va y r´epondre en utilisant la r´esolution de syst`emes. Plus pr´ecis´ement, on va calculer la nouvelle solution de base en explicitant le syst` eme (2.3) en fonction des nouvelles variables de base. Ceci peut eˆ tre fait au moyen de deux types d’op´ erations qui ne modifient pas l’ensemble des solutions d’un syst` eme d’´equations : 1. Multiplier une e´ galit´e par une constante non nulle; 2. Additionner un multiple d’une equation ´ a` une autre e´ quation. Appliquons ceci a` l’exemple. Ajoutons au syst`eme de d´epart (2.3) en premi`ere ligne la de´ finition de la fonction objectif :
z −3x1 −5x2 x1
+x3 2x2
3x1 +2x2
+x4
=
0 (0)
=
4 (1)
= 12 (2) +x5 = 18 (3)
Donc x2 remplace x4 comme variable de base. On veut donc expliciter x2 dans la contrainte (2) en lieu et place de x4 . Pour ce faire, il faut :
29
Section 2.5. Une it´ eration Simplexe
1. Amener un 1 comme coefficient de x2 dans (2). Autrement dit, la nouvelle contrainte not´ee (2’) est l’ancienne (2) multipli´ee par 1/2 :
(2 ) = (2) ×
1 2
´ 2. Eliminer x2 des autres equations. Ceci en retranchant a` la contrainte (3) la contrainte (2) et en ajoutant a` l’objectif (0) cinq fois la nouvelle contrainte (2’) :
(3 ) = (3) − (2) (0 ) = (0) + 5 × (2 ) Le nouveau syst`eme est donc le suivant :
+ 52 x4
z −3x1 x1
+x3
=
4
=
6 (2 )
−x4 +x5 =
6 (3 )
+ 12 x4
x2 3x1
= 30 (0 ) (1)
o`u l’on peut lire directement (en se souvenant que x1 et x4 sont hors base donc nulles) :
z x3 x2 x5
= = = =
30 4 6 6
On en d´eduit la valeur de la nouvelle solution de base :
(x1 , x2 , x3 , x4 , x5 ) = (0, 6, 4, 0, 6) qui donne la nouvelle valeur de l’objectif :
z = 30. Remarquez que les op´erations d’´elimination de x2 des lignes autres que la deuxi`eme se font obligatoirement en retranchant a` chacune de ces lignes un multiple de la deuxi`eme ligne. Toute autre op´eration d´etruirait les colonnes de la matrice identit´e dans le syst`eme r´esultant comme on peut le constater en essayant, par exemple, de faire :
(3 ) = −1 × (3) + (2).
30
Chapitre 2. Algorithme du Simplexe.
2.5.4
Test d’optimalit´e
La question qui se pose maintenant est la suivante : comment d´ eterminer le fait d’ˆetre optimum. Un sommet est optimal si tous les sommets adjacents donnent des valeurs inf´erieures ou e´ gales a` la fonction objectif. Comment peut-on voir s’il existe encore un sommet adjacent profitable ? Pour r´epondre a` cette question, nous allons utiliser la ligne de d´ efinition de l’objectif. L’´equation (0’) se r´ecrit :
5 z = 30 + 3x1 − x4 . 2 Comme x1 a un coefficient positif , il est int´eressant de faire entrer x1 en base. Le crit`ere d’arrˆet sera donc le suivant : la solution de base courante est optimale si tous les coefficients objectif sont n´ egatifs ou nuls lorsque z est exprim´ee en fonction des seules variables hors base. Effectuons donc la seconde it´eration de l’algorithme du Simplexe. Au vu de
5 z = 30 + 3x1 − x4 . 2 on s´electionne donc pour la variable entrante x1 . En effet, c’est la variable avec le plus grand coefficient objectif, et d’ailleurs la seule possible. ´ la variable sortante, e´ tudions la variation des variables de Pour d eterminer base en fonction d’une augmentation de x1 :
x3 = 4 − x1 x2 = 6 x5 = 6 − 3x1 La variable sortante est x5 , c’est elle qui est la premi`ere a` s’annuler (pour x1 = 2). Pour calculer le nouveau sommet , on exprime le syst`eme en fonction des nouvelles variables de base (x1 prend la place de x5 ) :
+ 32 x4
z
+x5 = 36
x3 + 13 x4 − 13 x5 = x2 x1
+ 12 x4
2
=
6
− 13 x4 + 13 x5 =
2
Section 2.5. Une it´ eration Simplexe
31
Donnant la nouvelle solution de base r´ ealisable :
(2, 6, 2, 0, 0) Appliquons a` nouveau le test d’optimalit´e. La ligne objectif s’´ecrit :
3 z = 36 − x4 − x5 . 2 Comme tous les coefficients objectifs sont n´ egatifs, la solution courante
x∗1 = 2 x∗2 = 6 est optimale. Elle donne sa valeur maximale a` l’objectif qui est de :
z ∗ = 36. Nous verrons au chapitre suivant voir une autre fa¸ con de pr´esenter les mˆemes calculs. Il s’agit de la pr´esentation du Simplexe en tableaux.
2.5.5
Chemin suivi par l’algorithme du Simplexe
On peut suivre a` la figure 2.1 le chemin emprunt e´ par l’algorithme du Simplexe. Partant du sommet (0,0), la premi`ere it´eration consiste a` aller au sommet (0,6). La second it´eration consiste a` rejoindre le sommet (2,6). La troisi`eme it´eration consiste a` constater que l’on est a` l’optimum. Nous verrons au chapitre 4 les diff´ erents probl`e mes qui peuvent se produire lors de l’ex´ecution de l’algorithme du Simplexe. Ces probl` emes peuvent se produire durant les trois e´ tapes de l’algorithme : 1. Initialisations. Pourra-t-on toujours trouver une solution de base de d´ epart r´ealisable ? 2. It´erations. Pourra-t-on, a` chaque it´eration, trouver une variable entrante ? Pourra-t-on, a` chaque it´eration, trouver une variable sortante ? 3. Terminaison. L’algorithme va-t-il converger en un nombre fini d’´ etapes ? Mais avant cela donnons un r´esum´e de l’algorithme du Simplexe.
32
2.6
Chapitre 2. Algorithme du Simplexe.
Algorithme du Simplexe
Terminons en donnant une description sch´ematique de l’algorithme du Simplexe. Algorithme 2.1 Algorithme du Simplexe. Pas 0. Initialisations.
• Ajouter les variables d’´ecart. • S´electionner les variables originales comme variables hors base. Pas 1. Choix de la variable entrante.
• Choisir comme variable entrante la v.h.b. donc le coefficient objectif est le plus elev´ ´ e lorsque z est exprim´ee en fonction des seules v.h.b. • Si tous sont n´ egatifs ou nuls, alors stop. Le tableau courant d´ecrit une solution optimale.
• Sinon, soit e l’indice de cette variable entrante. Pas 2. Choix de la variable sortante.
• La variable sortanteest la premi`ere a` s’annuler: c’estcellepourlaquelle le minimum est atteint dans :
bs bi = min ase i|a >0 aie ie
Soit s l’indice de la ligne correspondante. eterminer la nouvelle solution de base : Pas 3. D´
• Diviser toutes les coefficients de la ligne s par ase . • Eliminer xe des autres lignes par soustraction d’un multiple de la ligne s. • Retour au Pas 1.
Chapitre 3 L’algorithme du Simplexe en Tableaux 3.1
Introduction
Nous avons vu au chapitre pr´ec´edent une pr´esentation alg´ebrique de l’algorithme du Simplexe. Pour rappel, il s’agit, partant d’une solution de base (correspondant `a un sommet de la r´egion re´ alisable), a` chaque it´eration de 1. choisir comme variable entrante, celle de coefficient le plus elev´ ´ e dans la ligne objectif (ce qui correspond a` choisir la direction assurant plus grand taux d’accroissement a` la fonction objectif); 2. choisir comme variable sortante, la premi`ere variable de base a` s’annuler (ce qui correspond a` la rencontre de la premi`ere contrainte dans la direction choisie); 3. faire le pivotage : la variable entrante prend la colonne de la variable sortante dans le syst`eme d’´equation, en ce compris dans l’expression de la fonction objectif. Nous allons maintenant voir une autre fa¸ con de pr´esenter les mˆemes calculs. Il s’agit de la pr´esentation du Simplexe en tableaux. Nous verrons au chapitre suivant les embˆ uches que l’on peut rencontrer a` chacune des e´ tapes de l’algorithme. On effectue g´en´eralement les calculs sur le tableau des coefficients qui porte le nom de tableau Simplexe . Mais il faut bien garder a` l’esprit que ce tableau et les op´erations que l’on va y effectuer ne sont qu’une traduction des operations ´ sur le syst`eme d’´equations alg´ebriques correspondantes.
33
34
Chapitre 3. L’algorithme du Simplexe en Tableaux
3.2
Notion de tableau Simplexe
´ e des coefficients des equations D´efinition 3.1 Un tableau Simplexe est constitu´ alg´ ebriques sans le nom des variables. On aura donc : 1. les coefficients de la fonction objectif; 2. les coefficients des variables dans le membre de gauche des contraintes; 3. les coefficients du membre de droite. o`u l’on s´ epare les coefficients de objectif des contraintes d’une barre horizontale et les coefficients du membre de gauche des contraintes des coefficients du membre de droite par une barre verticale.
Reprenons l’exemple du chapitre 1. Sa formulation est reprise ci-dessous :
maxz = 3 x1 + 5 x2 x1
s.c.q.
Le syst`eme de d´e part :
≤ 4 ≤ 12 ≤ 18 ≥ 0 ≥ 0
2x2 + 2x2
3x1 x1
x2
z −3x1 −5x2 x1
+x3 2x2
+x4
3x1 +2x2
x1
0
=
4
= 12 +x5 = 18
se met sous la forme du tableau suivant :
z
=
x2 x3 x4 x5
1 −3 −5
0
0
0
0
0
1
0
1
0
0
4
0
0
2
0
1
0 12
0
3
2
0
0
1 18
35
Section 3.3. Tableaux Simplexe et pivotage
o`u l’onaajout´e au dessus du tableau le nom des variables pour voira` quelle variable correspond chaque colonne du tableau. Plusieurs caract´eristiques d’un tableau sont a` remarquer.
• Tout d’abord les valeurs du membre de droite donnent les valeurs courantes des variables de base. e des coefficients objectif. • Ensuite la premi`ere ligne donne l’oppos´
• Enfin, le dernier coefficient premi`ere ligne donne la valeur courante de l’objectif .
• On identifie des variables de base a` une colonne de coefficient de la matrice identit´e et a` un coefficient objectif nul. On en d´eduit la solution courante :
(x1 , x2 , x3 , x4 , x5 ) = (0, 0, 4, 12, 18)
3.3
Tableaux Simplexe et pivotage
A la premi`e re it´eration, on s´election comme variable entrante la variable x2 de coefficient le plus n e´ gatif dans la ligne objectif. On indique ceci dans le tableau en encadrant la colonne de la variable entrant que l’on appelle la colonne pivot :
z
x1
x2 x3 x4 x5
1 −3 −5
0
0
0
0
0
1
0
1
0
0
4
0
0
2
0
1
0 12
0
3
2
0
0
1 18
Ons´electionne la variable sortante comme e´ tant la variable de base qui s’annule la premi`ere. Comme nous l’avons vu au chapitre pr´ec´edent, cela revient a` calculer le minimum du rapport du coefficient du membre de droite de chaque contrainte sur le coefficient correspondant de la colonne pivot lorsque ce dernier est strictement positif :
min
12 18 , , 2 2
−
= 6.
Dans le cas o`u le coefficient dans la colonne entrante est n´ egatif ou nul, la ligne n’entre pas en compte dans le calcul du minimum. Illustrons ceci sur un exemple.
36
Chapitre 3. L’algorithme du Simplexe en Tableaux
Supposons que le coefficient de x2 dans la premi`ere contrainte soit -1 a` la place de 0. L’´equation correspondante se r´ ecrit de mani`ere e´ quivalente comme suit :
x1 = 4 + x2 Quelle que soit la valeur de x2 > 0, la variable de base x1 reste positive. La variable sortante est alors la variable de base dont la valeur se lit dans la ligne o`u le minimum se produit : ici, il s’agit de la deuxi` eme ligne et donc de la variable x4 . Il suffit, dans le cas pr´esent, de chercher la colonne identit´e dont le coefficient 1 est dans la deuxi`eme ligne. Elle correspond bien a` la variable x4 . On encadre alors la ligne o` u le minimum se produit. Cette ligne re¸coit le nom de ligne pivot :
z
x1
x2 x3 x4 x5
1 −3 −5
0
0
0
0
0
1
0
1
0
0
4
0
0
2
0
1
0 12
0
3
2
0
0
1 18
e a` l’intersection de la ´ ement pivot le coefficient situ´ D´efinition 3.2 On appelle el´ colonne pivot et de la ligne pivot.
C’est donc le centre de la croix ainsi form´ee par la ligne et la colonne pivot. Le pas suivant de l’it´eration Simplexe consiste a` d´eterminer le nouveau sommet : ceci en exprimant x2 dans la deuxi`eme e´ quation en lieu et place de x4 . Remarquez que cela revient a` amener la colonne de x4 en lieu et place de celle de x2 . Ceci peut eˆ tre fait par deux types d’op´erations : 1. Amener un coefficient 1 a` la place du pivot en divisant la ligne pivot par le pivot :
z
x1
x2 x3
x4 x5
1 −3 −5
0
0
0
0
0
1
0
1
0
0
4
0
0
1
0 1/2
0
6
0
3
2
0
1 18
0
37
Section 3.3. Tableaux Simplexe et pivotage
´ 2. Eliminer x2 des autres equations en retranchant chaque fois un multiple de la nouvelle ligne pivot :
z
x1 x2 x3
x4 x5
1 −3
0
0 5/2
0 30
0
1
0
1
0
0
4
0
0
1
0 1/2
0
6
0
3
0
0
−1
1
6
Rappelons que l’on doit utiliser, dans cette seconde op´ eration, un multiple de la ligne pivot a` l’exclusion de toute autre ligne sinon on detruirait ´ la matrice identit´e. La nouvelle solution de base et la nouvelle valeur de l’objectif sont respectivement :
(x1 , x2 , x3 , x4 , x5 ) = (0, 6, 4, 0, 6) z = 30. Effectuons maintenant la deuxi`e me it´eration de l’algorithme du Simplexe. Le premier pas de la deuxi`eme it´eration consiste a` d e´ terminer la variable entrante. Il s’agit de x1 , la variable de coefficient le plus n´egatif dans la ligne objectif. D’o` u la s´election de la colonne pivot suivante :
z
x1 x2 x3
x4 x5
1 −3
0
0 5/2
0 30
0
1
0
1
0
0
4
0
0
1
0 1/2
0
6
0
3
0
0
−1
1
6
Le second pas de l’it´eration consiste a` d´eterminer la variable sortante. On calcul le minimum du rapport des coefficients du membre de droite sur le coefficient correspondant de la colonne entrante lorsque celui-ci est strictement positif :
4 6 min , −, 1 3
= 2.
Le minimum se produit dans la derni`ere ligne o`u l’on lit la valeur de x5 qui sort
38
Chapitre 3. L’algorithme du Simplexe en Tableaux
donc de base. On encadre la ligne pivot :
z
x1 x2 x3
x4 x5
1 −3
0
0 5/2
0 30
0
1
0
1
0
0
4
0
0
1
0 1/2
0
6
0
3
0
0
−1
1
6
Le dernier pas de l’it´eration Simplexe consiste a` d´eterminer la nouvelle solution de base au moyen des deux types d’op´ erations e´l´ementaires sur le tableau Simplexe : 1. Amener un 1 en position pivot;
z
x1 x2 x3
x4
x5
1 −3
0
0
5/2
0
1
0
1
0
0
4
0
0
1
0
1/2
0
6
0
1
0
0 −1/3 1/3
2
0 30
2. Eliminer x1 des autres contraintes. Le r´esultat de ces deux types d’op´erations est le suivant :
z x1 x2 x3
x4
x5
1
0
0
0
3/2
1 36
0
0
0
1
1/3 −1/3
2
0
0
1
0
1/2
0
6
0
1
0
0 −1/3
1/3
2
La nouvelle solution de base et la nouvelle valeur de l’objectif valent :
(x1 , x2 , x3 , x4 , x5 ) = (2, 6, 2, 0, 0) z = 36.
39
Section 3.3. Tableaux Simplexe et pivotage
Si maintenant, on effectue par la troisi`eme it´eration, on constate que lors du premier pas de celle-ci, c’est-`a-dire lors de la s´election de la variable entrante, il n’y a aucun candidat. On arrˆete l’algorithme : la solution courante est optimale :
x∗1 = 2 x∗2 = 6 z ∗ = 36. Le chemin suivi par l’algorithme du Simplexe est illustr´e a` la figure 3.1. Initialement, on part de l’origine des axes, soit le point P 0 = (0, 0). Au cours de
x1
9
P 1 = (0 , 6)
P 2 = (2 , 6)
4
2x2 = 12
x1 = 4 3x1 + 2x2 = 18
P 0 = (0, 0) 2
4
6
x2
Figure 3.1: Chemin suivi par l’algorithme du Simplexe. la premi`ere it´eration, on suit l’axe des x2 en direction du point P 1 = (0, 6). A la deuxi`eme it´eration, on se dirige horizontalement vers le somme P 2 = (2, 6). La troisi`eme it´eration constate l’optimalit´e du point P 2 . Nous verrons au chapitre suivant les embˆ uches que l’on peut rencontrer dans l’ex´e cution de l’algorithme du Simplexe. En effet, nous avons ici suppos´ e que l’on pouvait toujours trouver une solution de base de d´ epart r´ealisable et qu’`a chaque it´e ration, il y avait toujours une variable sortant de la base. Nous verrons au chapitre suivant comment on peut d´emarrer l’algorithme si toutes les contraintes initiales ne se pr´esentent pas sous forme de contraintes d’in´ egalit´es du type “inf´erieur ou e´ gal a` ” avec un membre de droite positif. Nous examinerons egalement ´ ce qu’il convient de faire si on ne trouve aucune variable candidatea` sortir de la base. Mais avant cela, r´esumons l’algorithme du Simplexe en tableaux.
40
3.4
Chapitre 3. L’algorithme du Simplexe en Tableaux
Algorithme du Simplexe en tableaux
Algorithme 3.1 Algorithme du Simplexe. ´ Pas 0. Initialisation : Pour d emarrer l’algorithme, ´ 1. Ajouter les variables d’´ ecart aux contraintes d’in´ egalit e. 2. Mettre les variables originales hors base et les variables d’´ ecart en base.
x j = 0, ∀ j = 1, . . . n ´ Il en r´ esulte le tableau de d epart suivant :
z
x1
x2 . . .
1 −c1 −c2
xn xn+1 xn+2 . . . xn+m
−cn
0
0
0
0
0
a11
a12
a1n
1
0
0 b1
0
a21
a22
a2n
0
1
0 b2
.. .
0
..
an1
an2
amn
0
.
1 b1
0
Pas 1. Choix de la variable entrante : s´ electionner comme variable entrante la egatif , variable hors base avec le coefficient dans la ligne objectif le plus n´ en se restreignant aux variables a` coefficient n´ egatif. Soit xe telle que − ce ≤ − c j , ∀ j | − c j < 0 Si une telle variable n’existe pas, stop : on a trouv´ e la solution optimale. Sinon, on entoure la colonne correspondante qui est appel´ ee colonne entesulte le tableau suivant : rante. Il en r´
z
x1
x2
xe
xn xn+1 xn+2 . . . xn+m
1 −c1 −c2 −ce −cn
0
0
0
0
0
a11
a12
a1e
a1n
1
0
0 b1
0
a21
a22
a2e
a2n
0
1
0 b2
.. .
0
..
an1
an2
ane amn
0
0
.
1 b1
41
Section 3.4. Algorithme du Simplexe en tableaux
Pas 2. Choix de la variable sortante : s´ electionner comme variable sortante la premi`ere variable de base a` s’annuler. Pour cela, on calcule le minimum du rapport du coefficient du membre de droite sur le coefficient de la variable entrante dans la mˆ eme ligne lorsque celui-ci est positif. Soit l la ligne o`u le minimum se produit :
bl bi = min{ |aie > 0} ale aie La variable sortante est celle dont on lit la valeur dans la ligne o`u le minimum se produit. Soit xs la variable de base dont on lit la valeur en ligne l. On entoure la ligne o`u le minimum se produit. Il en r´ esulte le tableau suivant :
z
x1
x2
xe
xn xn+1 xn+2 . . . xn+m
1 −c1 −c2 −ce −cn
0
0
0
0
a11
a12
a1e
a1n
1
0
0 b1
0
a21
a22
a2e
a2n
0
1
0 b2
0
al1
al2
ale
aln
0
0
0
an1
an2
ane amn
0
0
1
0
0 bl 1 b1
Pas 3. Pivotage : La variable entrante xe prend la place de la variable sortante xs dans la base. Il faut 1. Exprimer la fonction objectif en fonction des nouvelles variables hors base. 2. Expliciter le syst e` me d’´ equations des contraintes en fonctions des nouvelles variables de base. Pour cela, pratiquement on doit 1. Amener un coefficient 1 au croisement de la colonne pivot et de la ligne ligne pivot en divisant celle-ci par le coefficient ale . 2. Amener des z´ eros dans le reste de la colonne pivote en ajoutant aux autres lignes un multiple de la ligne o` u l’on a amen´ e le 1.
Pas 4. It´erer : retour au Pas 1.
42
3.5
Chapitre 3. L’algorithme du Simplexe en Tableaux
Exercices
3.1. Algorithme du Simplexe. R´e soudre en appliquant la m´ethode du Simplexe :
maxz = 3x1 + 2x2 + 4x3 s.c.q.
x1 +
x2 + 2x3 ≤ 4
2x1 +
3x3 ≤ 5
2x1 +
x2 + 3x3 ≤ 7 x1 , x2 , x3 ≥ 0
3.2. Planification de production. Une compagnie fabrique deux produits dans ses deux ateliers. Les marges unitaires sont respectivement de 2 pour le premier produit et de 1 pour le second. Le temps pass´ e dans chacun des ateliers pour fabriquer un produit de chaque type est donn´ e au tableau cidessous. Temps dans
pour le produit 1
pour le produit 2
l’atelier 1
1 heure
0 heure
l’atelier 2
1 heure
1 heure
Les capacit´e s r´esiduelles sont de 4,5 heures par jour et de 6 heures par jour respectivement dans le premier et le second atelier. Les productions non enti`eres sont permises. (a) Formuler math´ematiquement le probleme. ` (b) D´eterminer la solution optimale au moyen de l’algorithme du Simplexe. Pr´eciser, pour chaque tableau, la solution de base courante et justifier le choix des variables entrante et sortante. (c) Illustrer sur un graphique le chemin suivi par l’algorithme du Simplexe.
Chapitre 4 Questions sur l’algorithme du Simplexe. 4.1
Introduction
L’exemple consid´er´e au chapitre 2 pour illustrer le fonctionnement de l’algorithme du Simplexe ne montrait pas les embˆuches qui peuvent surgir a` chaque e´ tape de l’algorithme du Simplexe : (i) Initialisation : comment construire une solution de base r´ealisable ? (ii) Chaque it´eration : pourra-t-on, a` chaque it´eration, trouver une variable entrante et une variable sortante ? (iii) Terminaison : va-t-on arriver a` une conclusion (solution optimale ou absence de solution) en un nombre fini d’it´erations ? Qu’est-ce qui nous garantit que l’on ne va pas it´ erer a` l’infini ? Lepremierpointserar´e soluenconsid´ erantunprobl`emeauxiliaire : le probl`eme dit de phase I. Ce probl`eme sera lui-mˆeme r´esolu par l’application de l’algorithme du Simplexe. En ce qui concerne les it´erations, nous verrons que l’absence de variable entrante traduit le fait que l’on est a` l’optimum tandis que l’absence de variable sortante traduit le fait que le probl` eme est non born´e. Enfin, concernant le troisi`eme point, nous verrons que si la fonction objectif croˆıt strictement a`chaque it´eration, la convergence est garantie.
4.2
Initialisation de l’algorithme
Les quelques exemples de probl`emes examin´es jusqu’`a pr´esent n’ont pas pos´e de probl`eme d’initialisation car nous partions d’un probl` eme o`u toutes les composantes du membre de droite ´etaient non n´egatives. Supposons donc qu’il existe au moins un des coefficients du membre de droite strictement n´ egatif. 43
44
Chapitre 4. Questions sur l’algorithme du Simplexe.
Le probl`e me est double. D’une part, il n’est pas evident ´ que le probl`eme consid´er´e ait une solution r´ealisable. D’autre part, meme ˆ dans le cas o`u une solution r´ealisable existe, il n’est pas clair de savoir a` quelle base elle se rapporte. On va r´epondre a` ces deux questions par la r´esolution d’un probl`eme auxiliaire : le probl`eme de phase I. Nous allons illustrer ceci sur le probl` eme suivant :
maxz =
x1 − x2 + x3
−
2x1
s.c.q.
−x2 +2x3 ≤ 4,
2x1 +3x2 x1
−x3 ≥ 5,
−x2 +2x3 ≥ 1, x1 , x2 , x3 ≥ 0.
On peut se ramener a` la forme avec egalit´ ´ es en multipliant les deux derni`eres in´equations par (-1) et en ajoutant les variables d’´ ecart. On obtient la formulation sous forme d’´egalit´es suivante :
maxz = x1 − x2 + x3
−
2x1
−x2 +2x3 +x4
2x1 −3x2
s.c.q.
x1
+x3
= +x5
+x2 −2x3
4,
= −5, +x6 = −1,
x1 , x 2 , x 3 , x 4 , x 5 , x 6 ≥
0.
Pour rendre le membre de droite non n´egatif, on va lui ajouter une quantit´e positive x0 , ou ce qui revient au mˆeme, retrancher x0 au membre de gauche. On obtient le syst`eme suivant :
−
2x1
−x2 +2x3 +x4
2x1 −3x2 x1
+x3
+x2 −2x3
−x0 = +x5
4,
−x0 = −5, +x6 −x0 = −1.
On voit qu’en donnant a` x0 la valeur 5 et en la faisant passer dans le membre de droite, on rend non n´egatives toutes les composantes du membre de droite. Il faudra cependant eliminer ´ cette variable artificielle si on veut d´ eterminer une base ded´e part r´e alisable pour le probl` eme original. Puisqu’on veut se d´ebarrasser de x0 , on va chercher a` minimiser cette variable, ou, ce qui revient au mˆ eme, a` maximiser
45
Section 4.2. Initialisation de l’algorithme
son oppos´e. Notons par le symbole w, la fonction objectif de sorte que l’on peut ajouter la ligne objectif suivante correspondant a` une maximisation :
maxw = −x0 On obtient ainsi le probl`eme dit de phase I de l’algorithme du Simplexe . Notons que l’on se trouve, avec ce probl`eme de phase I, toujours confront´e au probl`eme de la construction d’une base de d´epart re´ alisable. Une op´eration de pivotage non standard nous permet cependant de nous en tirer dans le cas pr´ esent. On forme une base de d´epart non r´ealisable en prenant comme pr´ec´edemment les variables d’´ecart en base. On fait alors rentrer la variable artificielle x0 dans la base en l’´echangeant avec la variable de base la plus n´egative . Cette op´eration correspond pr´ecis´ement a` donner a` la variable artificielle une valeur suffisante pour qu’elle rende toutes les composantes du membre de droite non n´ egatives. On peut alors r´esoudre le probl`eme auxiliaire par la m´ethode du Simplexe. Les tableaux successifs seront les suivants : Tableau de d´epart :
w
x0
x1
x2
x3
x4 x5 x6
1
1
0
0
0
0
0 −1
2
−1
2
1
0 −1
2
−3
1
1
−2
0 −1 −1
0
0
0
0
4
0
1
0
−5
0
0
1
−1
Premi`ere it´eration sp´eciale :
w x0
x1
x2
x3
x4
x5
x6
1
0
2
−3
1
0
1
0
−5
0
0
0
2
1
1
−1
0
9
0
1
−2
3
−1
0
−1
0
5
0
0
−3
4
−3
0
−1
1
4
46
Chapitre 4. Questions sur l’algorithme du Simplexe.
Deuxi`eme it´eration : x2 entre, x6 sort :
w x0
x1
x2
x3
x4
x5
x6
1/4
3/4
1
0
−1/4
0
−5/4
0
0
0
3/2
0
5/2
1
−1/2 −1/2
7
0
1
1/4
0
5/4
0
−1/4 −3/4
2
0
0
−3/4
1
−3/4
0
−1/4
1
1/4
−2
Troisi`eme it´eration : x3 entre, x0 sort :
w
x0
x1
x2 x3 x4
x5
x6
1
1
0
0
0
0
0
0
0
0
−2
1
0
0
1
0
1
3
1/5
0
1
0
−1/5 −3/5
1
0
0
−2/5 −1/5 11/5
0 4/5
0 3/5 −3/5
8/5
Nous avons obtenu la solution optimale du probl` eme auxiliaire. La valeur correspondante de la fonction objectif est w = 0. Ce qui revient a` dire que l’on a ealisable r´eussi a` annuler la variable artificielle. On a donc une solution de base r´ pour le probl`eme original. On remarquera que le probl`eme de phase I est toujours r´ealisable (par construction), et qu’il est toujours born´e. En effet, son objectif est de minimiser la variable artificielle qui est astreinte a` eˆ tre non ne´ gative. Z´ero est, dans ce cas, une borne inf´erieure sur la valeur de la fonction objectif (` a minimiser). Le probl`eme de phase I a donc toujours une solution optimale. Deux cas sont possibles quant a` la valeur optimale de sa fonction objectif. Soit elle est nulle et on a une solution de base r´ealisable du probl`eme original, soit elle est non nulle et le probl`eme original n’est pas r´ealisable. Lorsqu’on a obtenu une solution de base r´ ealisable pour le probl`eme original, on passe a` la phase II :
• en supprimant la variable artificielle x0 ; • en reprenant comme fonction objectif la fonction objectif du probl`eme original;
• en exprimant cette fonction objectif en fonction des seules variables hors base.
47
Section Section 4.2. Initialisa Initialisation tion de l’algori l’algorithme thme
Appliquons ceci a` l’exemple. Pour rappel, la fonction objectif originale etait ´ ici :
z = x1 − x2 + x3 Les deux premi`eres eres op´ operations e´ rations donne le tableau de phase II suivant :
z
x1
x2
x3
x4
x5
x6
1
−1
1
−1
0
0
0
0
0
1
0
0
1
0
1
3
0
1/5
0
1
0
−1/5 −3/5
1
0
0
11/5 −2/5 −1/5 11/
0 −3/5
8/5
La trois troisi` i`emeop´ e meop´eration eration peut etre etr ˆ e effect effectu´ u´ee e e en ajouta ajoutant nt a` la lign lignee obje object ctif if la deux deuxi` i`eme contrainte et en retranchant la troisi`eme. eme. On obtient obtient le tableau tableau suivant suivant de depart ´ de la phase II :
z
x1
x2 x3 x4
x5
1 −1/5
0
0
0
1/5
0
1
0
0
1
0
0
1/5
0
1
0
−1/5 −3/5
1
0
0
11/5 −2/5 −1/5 11/
0 −3/5
x6
−2/5 −3/5 1
3 8/5
On peut alors proc´eder eder a` la phase II car on dispose cette fois d’une base de d´epart r´ealisable, ealisable, x1 = x5 = x6 = 0, hors base, et x2 = 11 , x3 = 85 , x4 = 3 en base avec 5 la valeur correspondante de la fonction objectif z = − 35 . A la premi`ere ere it´eration eration de la phase II, x6 entre et x4 sort. On obtient le tableau suivant :
z
x1
x2 x3
x4
x5
x6
1
1/5
0
0
2/5
1/5
0
3/5
0
1
0
0
1
0
1
3
0
4/5
0
1
3/5 −1/5
0
17/5
1
0
1/5 −2/5
0
14/5
0 −2/5
La solution optimale vaut donc :
z∗ x∗1 x∗2 x∗3
= = = =
3/5 0 14/ 14/5 17/ 17/5
48
Chapitre Chapitre 4. Questions Questions sur l’algo l’algorithme rithme du Simplexe. Simplexe.
Exemple 2 : probl`eme eme non r´ealisable. ealisable. Soit le probl`eme eme :
maxz = 3x1 −x1 x1 s.c.q. 2x1
+ x2 +x 2 +x 2 +x 2 x1 , x 2
≥ ≥ ≤ ≥
1, 3, 2, 0.
Mettons le d’abord sous forme canonique avec in´ egalit´es es du type ≤ :
maxz = 3x1 x1 −x1 s.c.q. 2x1
+ x2 −x2 −x2 +x2 x1 , x2
≤ −1, ≤ −3, 2, ≤ 0. ≥
Puis sous forme canonique canonique avec variables d’´ ecart :
maxz = 3x1 x1 −x1 s.c.q. 2x1
+ x2 −x2 +x3 +x4 −x2 +x 2 +x5 x1 , x2 , x3 , x4 , x5
= −1, = −3, = 2, 0. ≥
Formons le tableau de d´epart epart de la phase I :
w x0 x1 x2 x3 x4 x5 1 1 0 0 0 0 0 0 0 −1 1 −1 1 0 0 −1 0 −1 −1 −1 0 1 0 −3 0 −1 2 1 0 0 1 2 On effectue effectue un premier pivotage pivotage non standard. La variable variable x0 remplace dans la base la variable la plus n´ egative, soit x4 . La suite des tableaux est la suivante :
w x0 x1 x2 x3 x4 x5 1 0 −1 −1 0 1 0 −3 0 0 2 0 1 −1 0 2 0 1 1 1 0 −1 0 3 0 0 3 2 0 −1 1 5
49
Section Section 4.2. Initialisa Initialisation tion de l’algori l’algorithme thme
A la premi`ere ere it´eration, eration, la variable x1 entre et x3 sort de la base :
w x0 x1 x2 x3 x4 x5 1 0 0 −1 1/2 1/2 0 −2 0 0 1 0 1/2 −1/2 0 1 0 1 0 1 −1/2 1/2 0 2 0 0 0 2 −3/2 1/2 1 2 A la deuxi`eme eme it´eration, eration, la variable x2 entre et x5 sort de la base :
w x0 x1 x2 x3 x4 x5 1 0 0 0 −1/4 3/4 1/2 −1 0 0 1 0 1/2 −1/2 0 1 0 1 0 0 1/4 −3/4 −1/2 1 0 0 0 1 −3/4 1/4 1/2 1 A la troisi`eme eme it´eration, eration, la variable x3 entre et x1 sort de la base :
w x0 x1 x2 x3 x4 x5 1 0 1/2 0 0 1/ 1/2 1/2 −1/2 0 0 2 0 1 0 2 −1 0 1 −1/2 0 0 −1/2 −1/2 1/2 0 0 −3/2 1 0 −1/2 1/2 5/2 La phase I se termine sans que w = 0 (x0 est encore dans la base et vaut 1/2). Le probl`eme eme original n’est donc pas r´ ealisable. En effet, les contraintes du probl` eme sont incompatibles. Ce verdict est confirm´ e par un examen de la figure 4.1. x2 3 2 1
-1
1
3
x1
Figure 4.1: Probl`eme eme irr´ealisable. ealisable.
50
4.3
Chapitre Chapitre 4. Questions Questions sur l’algo l’algorithme rithme du Simplexe. Simplexe.
Determination e´ termination de la variable entrante
La variabl variablee entrante entrante doit doit etre ˆ une varia variable ble hors hors base base avec avec un coeffi coefficie cient nt c j n´egatif egatif dans la ligne objectif du tableau courant. Si une telle variable n’existe pas, alors le tableau courant d´ecrit ecrit une solution optimale. optimale. En effet, la ligne objectif du tableau courant peut s’´ecrire ecrire
z+
c j x j = z ∗ ,
j ∈N
ou` N note l’ensemble l’ensemble des indices des variables hors base. Ceci qui peut encore s’´ s’ecrire e´ crire comme suit :
z = z∗ −
c j x j .
j ∈N
La solution courante o`u x j = 0 pour tout j ∈ N donne la valeur z ∗ `a la fonction objectif. Si c j ≥ 0 pour tout j ∈ N , alors toute solution r´ealisable ealisable o`u x j ≥ 0 pour tout j ∈ N donne a` la fonction objectif une valeur qui est au plus z ∗ . La solution courante est par cons´equent equent optimale.
4.4
Determination e´ termination de la variable sortante
ere a` bloquer l’augmentation de la La variable qui quitte la base est la premi`ere egle est ambigu¨e car elle peut donner lieu a` plusieurs variable entrante. Cette r`egle candidats ou a` aucun candidat. Ce dernier cas est illustr´e a` la deuxi`eme eme it´eration eration dans le probl`eme eme suivant :
maxz = 2x1 + x2 s.c.q.
Le tableau de d´epart epart est :
−
x1 −2x2 +x3
2x1
z
+x 2
= 2, +x4 = 2,
x1 , x2 , x3 , x4 ≥ 0.
x1
x2
x3 x4
1 −2 −1
0
0
0
−2
1
0
2
1
0
1
2
0
1
0 −2
Premi`ere ere it´eration eration : Au d´epart, epart, x1 = x2 = 0 sont hors base et x3 = 2, x4 = 2 sont en base. base. On fait fait
51
Section 4.4. D´ etermination de la variable sortante
entrer x1 dans la base. Il n’y a que la variable de base x3 qui limite la croissance de x1 . La variable x3 sort de la base lorsque x1 vaut 2.
z x1
x2
x3 x4
1
0
−5
2
0
4
0
1
−2
1
0
2
0
0
−3
2
1
6
Deuxi`eme it´eration : La variable x2 est seule candidate a` l’entr´ee en base. Comme tous les coefficients de la colonne x2 sont non positifs, aucune desvariables de base n’est bloquante. La variable x2 peut croˆıtre au del`a de toute limite. On en conclut que le probl`eme est non born´e. On peut le v´erifier graphiquement. Le syst`e me de d´epart est le suivant ;
maxz = 2x1 + x2 s.c.q.
−
x1 −2x2 ≤ 2,
2x1
+x2 ≤ 2, x1, x2 ≥ 0.
On peut voir a` la figure 4.2 qu’`a partir du sommet (2,0), la r´egion connaˆıt une direction o`u x2 n’est plus born´ee. x2
2
-1
2
x1
-1
Figure 4.2: Solution non born´ee. On peut arriver a` la mˆeme conclusion en g´en´eral: s’il n’y a pas de candidat pour quitter la base, on peut faire croˆıtre la variable entrante et donc aussi la fonction objectif autant qu’on le veut. Dans ce cas, le probl`eme est non born´e.
52
Chapitre 4. Questions sur l’algorithme du Simplexe.
D’autre part, s’il y a plusieurs candidats pour quitter la base, alors n’importe lequel de ces candidats peut servir. La pr´ esence de plusieurs candidats pour quitter la base a une cons´equence importante : la d´eg´en´erescence. Illustrons ceci par l’exemple suivant :
z
x1
x2
x3 x4 x5 x6
1 −2
1 −8
0
0
0 0
0
0
0
2
1
0
0 1
0
2 −4
6
0
1
0 3
0 −1 +3
4
0
0
1 2
Ayant choisi x3 pour entrer en base, on trouve que chacune des trois variables de base, x4 , x5 et x6 bloque l’accroissement de x3 a` 12 . Chacune de ces variables est donc candidate a` sortir de base. On peut choisir x4 . On obtient le tableau suivant :
z
x1
x2 x3
x4 x5 x6
1 −2
1
0
4
0
0
0
0
0
1 1/2
0
0 1/2
0
2 −4
0
−3
1
0
0
0 −1 +3
0
−2
0
1
0
4
o`u l’on constate que les variables de base x5 et x6 ont une valeur nulle ! Des solutions de base avec une ou plusieurs variables de base nulles sont appel´ ees des solutions d´eg´en´er´ees. La d´eg´en´erescence peut avoir la cons´equence suivante. Continuons l’exemple. A l’it´eration suivante, x1 entre en base et x5 bloque son entr´ee a` une valeur ´egale `a z´ero ! Donc la valeur de x1 et, par voie de cons´equence, des autres variables et de l’objectif restent inchang´ees au cours de ce pivotage. Des it´erations Simplexe qui changent juste la base sans changer la valeur de la solution de base sont appel´ees it´erations d´eg´en´er´ees. Il est a` remarquer que les it´erations d´eg´en´er´ees sont tr`es souvent pr´esentes dans la r´esolution de probl`emes pratiques mais, en g´en´eral, ne constituent que des “accidents passagers” dans le sens qu’apr`es quelques it´erations d´eg´en´er´ees la fonction objectif se remet a` croˆıtre strictement. Ceci am`ene directement a` consid´erer le point suivant.
53
Section 4.5. Arrˆet apr`es un nombre fini d’it´erations
4.5
Arrˆet apr`es un nombre fini d’it´erations
Si, a` chaque it´eration, la fonction objectif augmente strictement, alors on doit atteindre une solution optimale ou d´ etecter que le probl`eme est non born´e apr`es un nombre fini d’it´erations. En effet, a` chaque it´eration, la solution de base correspond a` un sommet du poly`edre des contraintes. La fonction objectif augmentant strictement a` chaque it´eration, on ne peut pas repasser par une solution de base d´ej`a rencontr´ee. Le nombre de solutions de base r´ealisables, ou ce qui revient au mˆeme le nombre de points extrˆemes du poly`edre des contraintes, est major´e par n C m +n , un nombre fini. Il faut en effet choisir n variables hors base parmi les n + m variables possibles (celles de d´epart plus les variables d’´ecart). Il n’est alors pas possible d’it´erer ind´efiniment. Tout ce raisonnement repose sur l’hypoth` ese que la fonction objectif augmente strictement a` chaque it´eration. Comme le montre l’exemple suivant, si cette hypoth`ese n’est pas satisfaite, on peut cycler, c’est-` a-dire r´ep´eter a` l’infini la mˆeme suite d’it´erations.
z
x1
x2
1 −10
57
x3 x4 x5 x6 x7 9 24
0
0
0 0
0
0, 5 −5, 5 −2, 5
9
1
0
0 0
0
0, 5 −1, 5 −0, 5
1
0
1
0 0
0
0
0
1 1
0
1
0
0
Supposons que l’on adopte les regles ` suivantes en presence ´ de candidats multiples pour les crit`eres d’entr´ee et de sortie : (i) La variable entrante est toujours la variable hors base de coefficient le plus n´egatif dans la fonction objectif. En cas d’ex aequo, on prend la variable de plus petit indice. (ii) En cas de plusieurs variables de base candidates a` la sortie de la base, on prend la variable de plus petit indice. On remarquera la pr´esence de composantes nulles dans le membre de droite.
54
Chapitre 4. Questions sur l’algorithme du Simplexe.
Premi`ere it´eration :
z x1
x2
x3
x4
1
0 −53 −41
204
20
0
0 0
0
1 −11
18
2
0
0 0
0
0
4
−8 −1
1
0 0
0
0
11
5 −18 −2
0
1 1
−5 2
x5 x6 x7
Deuxi`eme it´eration :
z x1 x2
x3
x4 98
x5
x6 x7
1
0
0 −14, 5
0
1
0
0, 5 −4 −0, 75
2, 75
0 0
0
0
1
0, 5 −2 −0, 25
0, 25
0 0
0
0
0
2, 75
1 1
−0, 5
4
6, 75 13, 25
0, 75
0 0
Troisi`eme it´eration :
z
x1 x2 x3
x4
x5
x6 x7
1
29
0
0 −18
15
93
0 0
0
2
0
1
0 0
0 −1
1
0
0
0
0
5, 5 −8 −1, 5 2 0, 5 −2, 5 0 0 0
1
0 0 1 1
Quatri`eme it´eration :
z
x1
1
20
x2 x3 x4
x5
9
0
0 −10, 5
4 −2 0 −0, 5 0, 5
1
0
0
1
0
0
0
0
1
0
x6 x7 70, 5
0 0
−4, 5 0, 25 −1, 25
0 0
0, 5
0
0 0
0
1 1
Cinqui`eme it´eration :
z
x1
x2
x3 x4 x5
1 −22
93
21
0
0 −24
0 0
0
−4
8
2
0
1
−9
0 0
0
0, 5 −1, 5 −0, 5
1
0
1
0 0
0
0
0
1 1
0
1
0
0
x6 x7
55
Section 4.5. Arrˆet apr`es un nombre fini d’it´erations Sixi`eme it´eration :
z
x1
x2
1 −10
57
x3 x4 x5 x6 x7 9 24
0
0
0 0
0
0, 5 −5, 5 −2, 5
9
1
0
0 0
0
0, 5 −1, 5 −0, 5
1
0
1
0 0
0
0
0
1 1
0
1
0
0
On retrouve le tableau initial. L’algorithme du Simplexe va donc r´ ep´eter inlassablement la mˆe me suite de six it´erations sans jamais atteindre la solution optimale qui existe cependant avec z = 1. On dit que l’algorithme cycle. Notons que le ph´enom`ene de cyclage est n´ecessairement associ´e a` la pr´esence de solutions de base o`u certaines variables de base sont nulles. Une base d´ eg´en´er´ee peut donner lieu a` une ou plusieurs it´ erations cons´ecutives au cours desquelles ni la fonction objectif, ni aucune des variables ne change de valeur. La seule chose qui change est la liste des variables qui sont en base ou hors base. G´ eom´etriquement on se trouve en un point extrˆeme du poly`edre des contraintes o` u plus de n hyperplans s’intersectent. Il y a donc diff´ erentes fa¸c on de d´efinir ce point extrˆeme comme intersection de n hyperplans. On passe d’une de ces d´efinitions a` une autre. Il existe des r`egles qui permettent d’empˆecher le cyclage. Par exemple, la r`egle de Bland. Cette r`egle consiste a` syst´ematiquement choisir comme variable entrante la premi`ere de coefficient n´ egatif dans la ligne objectif et comme la variable sortante, la premi`ere qui veut sortir. Insistons sur la diff´erence par rapport `a la r`egle que nous avons utilis´e. Nous avions chaque fois choisi la candidate de plus petit indice parmi toutes les variables de coefficient objectif le plus n´egatif. Ici, on d´ecide de prendre la premi`ere variable de coefficient n´egatif rencontr´ee donc pas forc´ement celle de coefficient minimum. On v´erifiera, sur l’exemple ci-dessus, qu’en adoptant la r`egle de Bland, on e´ vite que l’algorithme ne boucle. En effet, a` la cinqui`eme it´eration, on choisit x1 plutˆot que x6 pour entrer en base et on sort du ph´enom`ene de cyclage. Le lecteur int´eress´e se r´ef´erera a` Chvatal [4, pp 34-37] pour l’expos´e de deux autres m´ethodes qui evitent ´ le probl`eme du cyclage : la m´ethode de perturbation et la m´ethode lexicographique. Terminons en remarquant que le cyclage est un ph´ enom`ene assez rare dans la pratique de sorte que beaucoup de logiciels mettant en œuvre la m´ ethode du Simplexe ignorent totalement ce probl` eme.
56
4.6
Chapitre 4. Questions sur l’algorithme du Simplexe.
Exercices
4.1. Probl`eme r´ealisable. R´esoudre en appliquant le Simplexe en deux phases :
maxz = 3x1 x1 −x1 s.c.q. 2x1
+ x2 −x2 −x2 +x2 x1 , x2
≤ −1 ≤ −3 4 ≤ ≥ 0.
4.2. Probl`eme non r´ealisable. R´esoudre par le Simplexe en deux phases :
maxz = 3x1 x1 −x1 s.c.q. 2x1
+ x2 −x2 −x2 +x2 x1 , x2
≤ −1 ≤ −3 2 ≤ ≥ 0.
4.3. Probl`eme non born´e. R´esoudre en appliquant le Simplexe en deux phases :
maxz = 3x1 x1 −x1 s.c.q. 2x1
+ x2 −x2 −x2 −x2 x1 , x2
≤ −1 ≤ −3 2 ≤ ≥ 0.
Chapitre 5 Analyse postoptimale. 5.1
Introduction
Dans ce chapitre, nous voir comment va varier la valeur optimale de l’objectif d’un programme lin´eaire lorsque l’on modifie certains coefficients du probl` eme (coefficients objectif ou du membre de droite). En effet, g´ en´eralement la solution num´erique d’un probl`eme lin´eaire est moins significative que de savoir comment l’objectif va bouger si l’on modifie certaines donn´ ees du probl`eme. C’est l’objet de ce que l’on appelle l’analyse postoptimale. Pour voir l’effet de tels changements de donn´ ees, une solution na¨ıve consiste a` appliquer le Simplexe au nouveau probl`eme et bien sˆur on peut en d´eduire l’effet sur l’objectif. Mais nous allons voir dans ce chapitre que, si la base optimale ne change pas , on peut pr´edire sans aucun nouveau calcul l’effet de variation des donn´ees sur la fonction objectif en exploitant simplement le tableau Simplexe optimal du probl`eme original. Nous allons d’abord envisager le cas de la variation des coefficients du membre de droite des contraintes. Nous allons voir que la variation de la valeur optimale de l’objectif d’un programme lin´ eaire en fonction des coefficients du es” que l’on peut lire dans membre de droite est donn´ ee par la valeur des “prix cach´ la ligne objectif du tableau Simplexe final. Nous verrons comment d´eterminer le domaine de validit´e de ces prix cach´es. Nous verrons ensuite, le cas de la variation des coefficients de la fonction objectif. Ici, nous verrons que le taux de variation de l’objectif est donn´ e par la valeur des variables a` l’optimum. Ici aussi, il y a un un domaine de validit e´ pour ces valeurs optimales des variables : elles restent valables tant que la base optimale ne change pas. Enfin, nous terminerons en donnant l’interpr´ etation d’une autre information que l’on peut tirer du tableau Simplexe, a` savoir la valeur des coˆ uts r´eduits des
57
58
Chapitre 5. Analyse postoptimale.
variables hors base.
5.2
Variation par rapport au second membre
La question qui se pose est ici la suivante : “Si on augmente la capacit´ e disponible d’une ressource, quel est l’impact sur la valeur optimale de la fonction objectif ?” Pour des variations de membre de droite suffisamment faibles pour que la mˆ eme base reste optimale, on peut r´epondre a` cette question en exploitant le tableau Simplexe optimal de la mani`ere suivante : Le “prix cach´e” (not´e yi∗ ) mesure l’augmentation de la fonction objectif si l’on accroˆıt d’une unit´ e la capacit´e disponible (bi ). Dans le tableau Simplexe optimal, le prix cach´e yi∗ est le coefficient de la variable d’´ecart de la contrainte dans la ligne objectif. Nous allons illustrer ceci sur sur l’exemple introductif du chapitre 2 dont l’´enonc´e est rappel´e ci-dessous.
maxz = 3 x1 + 5 x2 x1
s.c.q.
3x1 x1
2x2 + 2x2 x2
≤ 4 ≤ 12 ≤ 18 ≥ 0 ≥ 0
Consid´erons le tableau final qui a et´ ´ e d´etermin´e au chapitre 3 :
z x1 x2 x3
x4
x5
1
0
0
0
3/2
1 36
0
0
0
1
1/3 −1/3
2
0
0
1
0
1/2
0
6
0
1
0
0 −1/3
1/3
2
Comme x3 , x4 et x5 sont les variables d’´ecart des contraintes de capacit´ e des trois ateliers, on en d´eduit les valeurs des prix cach´es suivants :
y1∗ =
0
y2∗ = 3/2 y3∗ =
1
Section 5.2. Variation par rapport au second membre
59
qui correspondent aux prix cach´ es des ressources utilis´ees dans les ateliers 1, 2 et 3 dont les capacit´es disponibles sont :
b1 =
4,
b2 = 12, b3 = 18.
Ce r´esultat peut etre ˆ d´emontr´e math´ematiquement. Mais, plutˆot que d’en donner une d´emonstration formelle, nous allons l’illustrer graphiquement. Consid´ erons tout d’abord une augmentation de capacit´ e du premier atelier de b1 = 4 a` b1 = 5. On peut voir a` la figure 5.1 que le nouveau point optimal reste le mˆeme
x2 z = 3x1 + 5x2 9 8
(5/3, 13/2)
2x2 = 13 x1 = 4 2x2 = 12 x1 = 5
6 4 2
0
3x1 + 2x2 = 18 0
2
4
6,
8
x1
Figure 5.1: Analyse postoptimale
x∗ = x∗ = (2, 6). En cons´equence de quoi, la valeur optimale de l’objectif ne change pas :
z ∗ = z ∗ = 36 D’o`u une variation nulle de l’objectif, ce qui etait ´ bien pr´edit par la valeur nulle ∗ du prix cach´e y1 :
∆z = z ∗ − z ∗ = 0 = y1∗ .
Une augmentation de capacit´ e du deuxi`eme atelier de b2 = 12 a` b2 = 13 donne un d´eplacement du point optimal (voir figure 5.1) vers le nouveau point :
x∗ = (5/3, 13/2).
60
Chapitre 5. Analyse postoptimale.
En cons´equence de quoi, la nouvelle valeur de l’objectif est donn´ ee par :
z ∗ = 37, 5 D’o`u un accroissement de l’objectif egal ´ a` la valeur du deuxi`eme prix cach´e :
∆z = z ∗ − z ∗ = 37, 5 − 36 =
3 = y2∗. 2
Enfin, consid´eronsuneaugmentationdecapacit´edutroisi`eme atelierde b3 = 18 `a = 19. Comme on peut le voir a` la figure 5.2, cela donne un d´eplacement du point optimal vers :
b3
x∗ = (7/3, 6). En cons´equence de quoi, la nouvelle valeur de l’objectif vaut :
z ∗ = 37 D’o`u une augmentation d’objectif egale ´ a` la valeur du troisi`eme prix cach´e :
∆z = z ∗ − z ∗ = 37 − 36 = 1 = y3∗ .
x2 z = 3x1 + 5x2 10
3x1 + 2x2 = 19
8
(7/3, 6)
6
x1 = 4
2x2 = 12
4 2
3x1 + 2x2 = 18 0
2
4
6
8
x1
Figure 5.2: Variation de capacit´ e de l’atelier 3 Le r´esultat peut aussi etre ˆ interpr´et´e dans l’autre sens : y3∗ est la perte de profit si on diminue d’une unit´e la capacit´e du troisi`eme atelier. Remarquons, et ceci est l’objet de l’analyse de sensibilit´e qu’il y a une limite de validit´e de chaque prix cach´e. En effet, dans le cas de la premi`ere ressource, si
61
Section 5.2. Variation par rapport au second membre
l’effet d’une augmentation de b1 sera nul sur la valeur optimum de l’objectif quel que soit b1 ≥ 4, il n’en va pas de mˆeme d’une diminution. En effet, en dessous de b1 = 2, la solution optimale va changer. On a donc d´ etermin´e le domaine de ∗ validit´e de y1 = 0. Il s’agit de l’intervalle :
b1 ∈ [2, +∞]. Pour le deuxi`eme atelier, au del`a de b2 = 18, la solution optimale reste en (0,9). La base optimale et y2∗ changent :
y2∗ = 0. De mˆeme, une diminution en de¸c`a de b2 = 6 va changer la base optimale. On en d´eduit le domaine de validit´e de y2∗ = 3/2. Il s’agit de l’intervalle :
b2 ∈ [6, 18]. Pour le troisi`eme atelier, au del`a de b3 = 24, la solution optimale reste en (4,6). La base optimale et y3∗ changent :
y3∗ = 0. De mˆeme, une diminution en de¸ca` de b3 = 12 va changer la base optimale. On en d´eduit le domaine de validit´e de y3∗ = 1. Il s’agit de l’intervalle :
b3 ∈ [12, 24]. Ces informations sont donn´ eesdansle rapport de sensibilit e´ du solveur d’Excel. Ces informations sont fournies sous la forme d’une augmentation admissible et d’une diminution admissible. Elle sont reprises ci-dessous : Contrainte
augmentation
diminution
membre
admissible
admissible
de droite
Atelier 1
+∞
2
4
Atelier 2
6
6
12
Atelier 3
6
6
18
Remarquons finalement que l’on a toujours une valeur nulle du prix cach´e pour une contrainte non liante . Une contrainte non liante est une contrainte o` u la variable d’´ecart est non nulle. Par exemple, la premi` ere contrainte
x1 ≤ 4 etation economique. ´ a un “prix cach´e” nul. Ceci a une interpr´ La ressource n’est pas enti`erement utilis´ee : il ne sert donc a` rien d’augmenter son stock disponible.
62
5.3
Chapitre 5. Analyse postoptimale.
Variation des coefficients objectifs
La question qui se pose ici est la suivante :“Si on augmente le prix de vente unitaire ou si l’on diminue le coˆ ut unitaire de production, quel est l’impact sur la valeur de l’objectif ?” A nouveau, on peut pr´edire cette variation de l’objectif pour autant que la base optimale ne change pas. En effet, tant que la base optimale ne change pas, la solution optimale x∗ = (x∗1 , x∗2 , . . . x∗n ) reste la mˆeme. Seul le profit optimal change. Le nouveau profit vaut donc : n
∗
z =
(c j + ∆c j )x j∗
j =1
On en conclut que pour une variation unitaire du coefficientc j , l’augmentation de z ∗ est exactement la valeur optimale de la variable x j∗ . ` l’optimum” (not´ee x j∗ ) mesure l’augmentaLa “valeur de la j `eme variable a tion de la fonction objectif si l’on accroˆıt d’une unit´ e la marge unitaire c j .
Dans le cas de l’exemple, les augmentations de profit pour une augmentation unitaire de la marge des produits valent respectivement :
x∗1 = 2 et x∗2 = 6. Consid´erons maintenant la question l’analyse de sensibilit´e. Nous allons a` nouveau l’illustrer sur le mˆeme exemple. Initialement :
z = 3x1 + 5x2 On veut d´eterminer l’intervalle de variation maximum de c1 autour de 3 tel que la base optimale ne change pas. A la figure 5.3, on constate que le coefficient c1 peut descendre jusqu’`a ce que l’objectif z = c1 x1 + 5x2 soit parall`ele au segment
2x2 = 12, c’est-`a-dire lorsque c1 = 0. Le coefficient c1 peut augmenter jusqu’`a ce que l’ob jectif z = c1 x1 + 5x2 soit parall`ele au segment
3x1 + 2x2 = 18. Ceci se produit lorsqu’il y a egalit´ ´ e des pentes :
−c1 −3 = , 5 2
63
Section 5.3. Variation des coefficients objectifs
x2 10 8 6
(2, 6) z = 4x1 + 5x2 = 38 z = 3x1 + 5x2 = 36
4 2 0
2
4
6
8
10
12
x1
Figure 5.3: Analyse de sensibilit´e de c1 c’est-`a-dire lorsque c1 = 15/2. La r´eponse a` la question de l’analyse de sensibilit´e est donc la suivante. Tant que
c1 ∈ [0, 15/2], on a la mˆeme base optimale et donc la mˆeme solution optimale. Effectuons l’analyse de sensibilit´e pour le second coefficient objectif. Celui-ci peut d´ecroˆıtre jusqu’`a ce que l’objectif z = 3x1 + c2 x2 soit parall`ele au segment
3x1 + 2x2 = 18. Ceci se produit lorsqu’il y a egalit´ ´ e des pentes :
−3 −3 = , c2 2 c’est-`a-dire lorsque c2 = 2. Dans l’autre sens, c2 peut augmenter jusqu’`a ce que l’objectif z = 3x1 + c2 x2 soit parall`ele au segment
2x2 = 12. Ceci ne se produit jamais. On en conclut que tant que :
c2 ∈ [2, +∞[, on a la mˆeme base optimale et donc la mˆeme solution optimale. Ces intervalles de sensibilit´e sont e´ galement donn´es dans le rapport de sensibilit e´ du solveur d’Excel.
64
5.4
Chapitre 5. Analyse postoptimale.
Cout ˆ r´eduit des variables hors base
Pour terminer ce chapitre consacr´ e a` l’analyse postoptimale, nous allons d´ efinir une notion importante qui peut egalement ´ eˆ tre d´eduite du tableau Simplexe optimal, il s’agit du cout ˆ r´eduit d’une variable hors base. Le “coˆut r´eduit” de la variable hors base x j , not´e d j , mesure l’augmentation de la fonction objectif si l’on accroˆıt d’une unit´ e la valeur de la variable hors base x j . Dans le tableau Simplexe optimal, le coˆ ut r´eduit d j est l’oppos´e du coefficient de la variable dans la ligne objectif. Nous illustrerons cette notion sur l’ exemple de planification de la production de chassis auquel on adjoint un troisi` eme chassis mixte aluminium bois, pour lequel la marge unitaire est de 4 et les temps unitaires de fabrication dans les trois ateliers sont respectivement de 1, 2 et 3 heures. La formulation de ce probl` eme est reprise ci-dessous :
z −3x1 −5x2 −4x3 x1
+x3 +x4 2x2 +2x3
+x5
=
0
=
4
= 12
3x1 +2x2 +3x3
+x6 = 18
Elle se met sous la forme du tableau Simplexe initial suivant :
z
x1
x2
x3 x4 x5 x6
1 −3 −5 −4
0
0
0
0
0
1
0
1
1
0
0
4
0
0
2
2
0
1
0 12
0
3
2
3
0
0
1 18
La solution optimale deceprobl`e me lin´eaire peut etre ˆ d´etermin´ee par l’algorithme du Simplexe. Le tableau Simplexe optimal final est le suivant :
z x1 x2
x3 x4
x5
x6
1
0
0
2
0
3/2
0
0
0 2/3
1
1/3 −1/3
2
0
0
1
0
1/2
0
6
0
1
0 1/3
0 −1/3
1/3
2
1
1 36
Section 5.4. Coˆ ut r´ eduit des variables hors base
65
On en d´eduit la solution optimale suivante :
(x1 , x2 , x3 , x4 , x5 , x6 ) = (2, 6, 0, 2, 0, 0) Tandis que la valeur optimale de l’objectif est donn´ ee par :
z ∗ = 36 On constate que seuls sont rentables les productions des chassis 1 et 2. En effet, le chassis 3, bien qu’ayant une marge unitaire sup´erieure au chassis 1, consomme plus de ressources et permet, pour la mˆeme capacit´e disponible des trois ateliers de faire moins de chassis 3 que de chassis 1. On peut alors se poser la question suivante : de combien faut-il augmenter la marge du chassis 3 pour le rendre attractif ? On peut r´epondre a` cette question en exploitant le tableau Simplexe optimal de la mani`ere suivante : les coefficients dans la ligne objectif du tableau Simplexe final (l’oppos´edescoˆutsr´eduits) fournissent l’augmentation de prix n´ ecessaire. En effet, les coˆuts r´eduits des variables hors base s’interpr` etent, en g´en´eral, comme l’augmentation de la fonction objectif lorsque l’on augmente d’une unit´ e la variable. Ici, a` l’optimum, ce coˆut r´eduit, not´e d3 , est n´egatif, traduisant le fait que si la production de ce chassis etait ´ positive, elle diminuerait le profit d’autant.
d3 = −2. Pour qu’il devienne int´eressant de le produire, il faut donc augmenter sa marge d’au moins cette quantit´ e. Ici, le coˆu tr´eduit s’interpr`e te comme l’oppos´e de l’augmentation minimale de prix pour que la production devienne int´eressante. Remarquez que tous les optimiseurs fournissent en plus de la solution optimale d’un probl`eme lin´e aire, cette information : les coˆ uts r´e duits des variables hors base sont, en effet, au signe pr`es, les coefficients des variables hors base dans la ligne objectif du tableau Simplexe optimal. En conclusions, nous avons vu dans ce chapitre comment interpr´ eter tous les coefficients dans la ligne objectif du tableau Simplexe optimal final :
• Les couts ˆ r´eduits sont, au signe pr`es, les coefficients des variables hors base dans la ligne objectif du tableau Simplexe optimal. Ils s’interpr` etent, en g´en´eral, comme l’augmentation de la fonction objectif lorsque l’on augmente d’une unit´ e la variable hors base. ecart des contraintes • Les prix cach´es sont les coefficients des variables d’´
dans la ligne objectif du tableau Simplexe optimal. Ils s’interpr` etent comme l’augmentation du profit pour une augmentation unitaire d’un des coefficients du membre de droite. Le rapport de sensibilit e´ d’Excel donne ces deux informations.
66
5.5
Chapitre 5. Analyse postoptimale.
Exercices
5.1. Sensibilit´e aux coefficients objectif. Soit le probl`eme lin´eaire suivant : Minimiser s.c.q.
0x1 3x1 5x1 3x1
+ x2 + 4x2 + 2x2 − x2 x1 , x2
≥ ≤ ≤ ≥
9, (1) 8, (2) 0, (3) 0.
(a) D´eterminer graphiquement la solution optimale. (b) D´eterminer l’intervalle maximum de variation de c1 autour de z´ero qui pr´eserve la solution optimale. 5.2. Sensibilit´e du membre de droite. Pour le probl`eme lin´eaire formul´e a` l’exercice 2 du chapitre 1, (a) R´esoudre par l’algorithme du Simplexe. (b) D´eterminer la valeur des prix cach´es a` l’optimum. (c) Si l’unit´e de capacit´e suppl´ementaire coˆut le mˆeme prix pour les deux ateliers, a-t-on int´erˆet a augmenter la capacit´e du premier ou du second atelier ? (d) Jusqu’`a quel niveau est-il int´eressant d’augmenter cette capacit´ e? 5.3. Fabrication de tourbe. Une firme qu´eb´equoise de production de tourbe met sur le march´e 3 qualit´es de tourbe : la qualit´e 3 utilis´ee comme liti`ere; la qualit´e 2 qui sert d’engrais aux entreprises mar´ echaires et la qualit´e 1 destin´ee a` l’empotage des plantes d’int´erieur. La tourbe de qualit´e 3 se commercialise en ballots de 25 kg, celle de qualit´ e 2 en sacs plastiques de 20 kg et celle de qualit´e 1 en sachets de 5 kg. La tourbe s’extrait au printemps sous forme humide et est s´ech´ee au soleil durant l’´et´e pour eˆ tre livr´ee a` l’automne. Un kg de tourbe humide extraite donne 100 grammes de produit sec commercialisable. La machinerie qui extrait la tourbe humide permet d’extraire 4 500 000 kg de tourbe humide chaque printemps. La tourbe s´ech´e e est d´efibr´ee a` l’automne, au moyen de d´efibreuses qui mettent 5 minutes pour pr´eparer un ballot de Qualit´e 3, 8 minutes pour un sac de qualit´e 2 et 3 minutes pour un sachet de qualit´e 1. On dispose de 2 000 heures de d´efibrage pendant la p´eriode consid´er´ee. L’entrepˆot permet de stocker 20 000 m`etres cubes de tourbe s`eche emball´ee, un emballage de
67
Section Section 5.5. 5.5. Exerci Exercices ces
qualit´e 3 requiert 1 m`etre etre cube, un sac de qualit´e 2 requiert 0,75 m`etre etre cube et un sachet de qualit´e 1 requiert 0,20 m`etre etre cube. Le service marketing impose la fabrication maximale de 15 000 ballots de qualit´e 3 dont un grossiste retient chaque ann´ ee 10 000 000 ballots. ballots. Le mˆeme grossiste requiert 3 000 sacs de qualit´ e 2. Les profit profitss que retire retire la soci´ soci´et´ ete´ de la vente de ces produits s’´el` elevent e` vent a` 9 dollars le ballot de qualit´ e 3, a` 12 dollars le sac de qualit´e 2 et a` 2 dollars le sachet de qualit´e 1. (a) Formuler Formuler le probl` probl`eme eme lin´eaire eaire correspondant correspondant (choix des variables, variables, expression de l’objectif et des contraintes). contraintes). (b) Voici le tableau Simplexe Simplexe final :
z x3 x2 x1 x4 x5 x6 x7 x8 x9 1 0 0 2, 2 0, 12 0 1, 20 0 0 0 19 1 98 000 0 0 1 0, 5 0, 25 0 0 0 7 50 0 −0, 05 0 0 0 0 0, 025 −0, 0425 1 0, 0, 0125 0 0 0 2 37 5 0 0 0 0, 5 0, 25 0 0 1 4 50 0 −0, 05 0 0 0 0 0, 2 0, 20 1 0 0 3 00 0 −0, 08 0 0 0 0 −0, 2 0, 08 0 −0, 20 0 1 0 2 00 0 0 1 0 −0, 2 0, 08 0 −0, 20 0 0 0 12 000 Donnez la solution optimale, d´eterminez les variables en base et hors base. (c) Dites Dites ce qui se passerai passeraitt pour l’object l’objectif if si on produisai produisaitt un sachet de qualit´e 1. En d´eduire eduire quel devrait etre eˆ tre le profit minimal que la soci´et´e devrait tirer de la mise sur le march´ e d’un sachet de qualit´e 1 pour que cette production devienne rentable. (d) Le solveur solveur d’Excel d’Excel vous vous fournit fournit les interva intervalle lless de sensibil sensibilit´ it´ e suivant pour les coefficients c j de l’objectif et bi du membre de droite : coeffici coefficient ent valeur valeur pr´esente esente valeur valeur minimu minimum m valeur valeur maximu maximum m
c3 c2 c1
9 12 2
7, 50 7, 60 −∞
15 14, 4 4, 20
b1 b2 b3 b4 b5 b6
450 000 20 000 120 000 15 000 10 000 3 000
425 000 17 625 105 000 12 000 −∞ −∞
487 500 +∞ 130 000 ∞ 12 000 7500
68
Chapitre Chapitre 5. 5. Analyse Analyse postoptim postoptimale. ale.
Combien Combien la soci´ societ´ et ´ e´ serait prˆete ete a` d´ depenser e´ penser au maximum pour porter de 4 500 000 a` 4 750 000 kg la capacit´e printani`ere ere d’extraction ? (e) Si le profit unitair unitairee associ´ e a` un emballage de qualit´e 3 passait de 9 a` 11 dollars, le plan de production optimal resterait-il le mˆ eme ? Si oui, le profit optimal serait-il augment´e ou diminu´e ? de combien ?
Chapitre 6 La programmation en nombres entiers. 6.1 6.1
Intr Introd oduc ucti tion on
L’algorithme du Simplexe fournit une m´ethode de r´esolution esolution g´en´ en´erale erale pour tous programmales probl`emes emes lin´eaires eaires quelle que soit leur forme. Au contraire, en programmation en nombres entiers, on ne dispose pas d’un algorithme g´en´eral eral qui permette de r´esoudre esoudre efficacement tous les probl` emes emes en nombres nombres entiers entiers.. Cependa Cependant, nt, il existe une classe g´en´ enerale e´ rale de m´ methodes e´thodes connue sous le nom de branch and bound (s´ (separ e´ parat atio ion n et born borne) e) qui qui perm permet et de r´ esoud esoudre re bon bon nombre nombre de probl` probl` emes emes en nombre nombress entiers. Onappelleprobl`emesmixtes(MIPenanglaispourMixedIntegerProgramming) les probl`emes emes comportant un certain nombre de variables lin´ eaires (donc continues) et un certain nombre de variables en nombres entiers (donc discr` etes). Nous allons ici d´ecrire ecrire cette m´ethode e thode qui commence par la r´esolution esolution du probl`eme eme lin´eaire eaire obtenu en relaxant les conditions d’int´ egralit´e des variables. ´ lineaire C’est pourquoi on appelle ce programme la relaxation lin´ du probl`eme. eme. Les probl`emes emes de flots (programmation (programmation sur les graphes) sont eux a` mi-chemin entre les probl`emes emes lin´eaires eaires et les probl`emes emes mixtes. En effet, si les donn´ees du probl`eme eme de flot a` coˆut minimum (la formulation la plus g´ en´ enerale e´ rale d’un probl`eme eme de flot) sont toutes enti`eres (demandes aux sommets enti`eres, capacit´es es des arcs enti`eres e res et coef coeffic ficie ient ntss de coˆ ut entie entiers) rs),, la solut solution ion du probl` probl` eme eme lin´ lin´eaire eaire fournit fournit automatiquement une solution ere. Aut solution enti`ere Autrem rement ent dit, dit, ici la solut solution ion de larelaxation ´ lin´ lineaire fournit la solution optimale du probl` eme mixte. mixte. Pour Pour ces probl`emes, ou pour pour ceux ceux qui peuv peuven entt s’y s’y ramene ramenerr, on en conclu conclutt que que l’on l’on dispo dispose se d’un d’un algor algorit ithm hmee performant performant de calcul : l’algorithme l’algorithme du Simplexe. Simplexe. Malheureusemen Malheureusement, t, un grand nombre de problemes ` en nombres entiers ne peuvent se mettre sous la forme de probl` emes emes de flot. Il convi convient ent donc donc pour ces probl`emes emes d’avoir une m´ethode ethode tenant compte explicitement du caract` ere discret des variables.
69
70
Chapitre 6. La programmation en nombres entiers.
6.2
Formulation des probl`emes mixtes
Nous allons voir quelques probl`emes classiques n´ecessitant le recours a` la programmation mixte enti`ere.
6.2.1
Probl`emes avec coˆuts fixes
Exemple 6.1 Probl`emes avec coˆut fixe de mise en route de la production. On veut repr´ esenter un coˆ ut de production qui est nul en l’absence de production et qui, dans le cas contraire, vaut la somme d’un coˆ ut fixe de production, not e´ K , et ´ d’un coˆ ut proportionnel, le taux marginal etant m.
On veut donc pouvoir exprimer la fonction suivante : Si x = 0, c(x) = 0; Si x > 0, c(x) = K + mx.
(6.1)
o`u x d´enote le niveau de production. Cette fonction est repr´esent´ee a` la figure 6.1.
c(x) m K
x Figure 6.1: Repr´esentation d’un coˆut fixe La repr´esentation math´ematique de ce coˆut fixe n´ecessite : 1. l’ajout d’une variable indicatrice d’une production positive :
y=
1 si x > 0 0 si x = 0
2. la modification de la fonction objectif en :
c(x, y) = Ky + mx qui devient donc purement lin´eaire;
Section 6.2. Formulation des probl`emes mixtes
71
3. l’ajout des contraintes suivantes :
x ≤ My, et y ∈ { 0, 1}
(6.2)
avec M une borne sup´erieure sur la quantit´e produite (x). Remarquons que si x > 0, par les relations (6.2), on a que y = 1 et on tient compteducoˆut fixe de mise en route de production. Par contre, lorsquex = 0, (6.2) permet les choix y = 0 ou y = 1. Cependant, comme on minimise, l’optimiseur va automatiquement choisir y = 0, la solution qui e´ vite le cout ˆ fixe ! Il y a de nombreuses applications de cette mod´ elisation des coˆ uts fixes par la programmation mixte enti`ere. Un exemple de mise en application de ces couts ˆ fixes est fournit par l’exemple de localisation d’entrepˆ ots o`u il y a un coˆut fixe d’ouverture de ces entrepˆ ots.
6.2.2
Probl`emes avec contrainte logique
Parfois des probl`emes de gestion comportent une condition logique. Un exemple typique est celui des probl`emes de gestion de projets avec contrainte disjonctive. Dans ces probl`emes, on doit d´eterminer l’enchaˆınement des tˆaches d’un projet de mani`ere a` le r´ealiser dans le meilleur d´elai, il se peut que deux tˆaches doivent etre ˆ effectu´ees par la mˆeme e´ quipe d’ouvriers, soit mettent en œuvre la mˆ eme machine. Les deux tˆaches ne peuvent donc avoir lieu simultan´ ement, sans que l’on puisse dire laquelle doit ˆ etre effectu´ ee en premier lieu. Math´ematiquement, on peut ecrire ´ ceci par la condition suivante : soit
ti + di ≤ t j si i est r´ealis´ee avant j t j + d j ≤ ti si j est r´ealis´ee avant i
(6.3)
o`u ti est la variable indiquant le temps de d´ebut au plus tˆot de la tˆache i et di , sa dur´ee, est donn´ee. Cette disjonction peut eˆ tre r´esolue par la programmation mixte binaire. En effet, d´efinissons la variable binaire yij , dont la valeur est 1 si la tache i est r´ealis´ee avant la tˆache j et 0 si la tˆache j est r´ealis´ee avant la tˆache i. Onremplacealorslaconditiondedisjonction(6.3)parlescontraintessuivantes:
ti + di ≤ t j + M (1 − yij ) t j + d j ≤ ti + Myij yij ∈ {0, 1}
(6.4)
o`u M note une borne sup´erieure sur la date de fin des travaux. D´emontrons l’´equivalence. Deux cas sont possibles pour la variable binaire :
72
Chapitre 6. La programmation en nombres entiers.
1. Cas ou` yij = 1. Dans ce cas, le syst`eme (6.4) devient :
ti + di ≤ t j t j + d j ≤ ti + M
La premi`e re contrainte exprime donc que la tˆ ache i doit eˆ tre finie avant que ne commence la tˆache j . La seconde contrainte est automatiquement satisfaite. 2. Cas yij = 0. Dans ce cas, le syst`eme (6.4) devient :
ti + di ≤ t j + M t j + d j ≤ ti
Lapremi`ere contrainte est automatiquement satisfaite. La seconde contrainte exprime que la tˆache j doit eˆ tre finie avant que ne commence la tˆache i.
6.2.3
M´elange avec nombre limit´e d’ingr´edients
Il s’agit e´ galement d’un probl`eme g´en´erique conduisant a` une formulation mixte enti`ere, les variables binaires indiquant la presence ´ o`u non d’un ingr´edient dans le m´elange. C’est le cas, par exemple , d’un probl`eme de m´elange d’huiles o` u cinq huiles sont disponibles mais o`udescontraintestechniquesimpliquentqueseulement trois huiles diff´erentes peuvent eˆ tre pr´esentes dans le m´elange. Un autre exemple, est celui du chargement de hauts fourneaux o` u le nombre de charbons disponibles est souvent nettement sup´erieur au nombre de charbons qui peuvent etre ˆ charg´es simultan´ement dans le haut fourneau. Ce nombre etant ´ limit´e par le nombre de portes de chargement du haut fourneau. Ce probl`eme peut eˆ tre r´esolu par la programmation mixte z´ero/un. Si xi note la quantit´e d’ingr´edient i dans le m´elange, de´ finissons la variable binaire yi indiquant la pr´esence de l’ingr´edient i dans le m´elange. Autrement dit :
yi = 1 si yi = 0 si
xi > 0; xi = 0.
On introduit alors les contraintes suivantes :
xi ≤ M i yi et yi ∈ {0, 1}
(6.5)
o`u M i est une borne sup´erieure sur xi . La conditiondu nombre maximum d’ingr´e dients dans le m´elange s’exprime alors simplement par : n
i=1
yi ≤ k,
(6.6)
Section 6.2. Formulation des probl`emes mixtes
73
avec k , le nombre maximum d’ingr´edients dans le m´elange. D´emontrons l’´equivalence. Deux cas sont possibles pour la variable xi : 1. Soit xi > 0. Alors, par les contraintes (6.5), la variable yi doit valoir 1 et exprime bien que l’ingr´edient i est dans le melange. ´ 2. Soit xi = 0. Alors, par les contraintes (6.5), la variable yi peut valoir 0 ou 1. La contrainte (6.6), exprimera donc bien que au plus k ingr´edients seront pris dans le m´elange. Remarquez que si on veut que yi soit une parfaite indicatrice de xi > 0, il faut ajouter la contrainte suivante :
mi yi ≤ xi avec mi , la teneur minimum d’un ingr´edient dans le m´elange. Cette nouvelle contrainte forcera yi a` z´ero lorsque xi est nul.
6.2.4
Choix parmi un nombre discret de valeurs
Dans beaucoup de probl`emes industriels, lors du dimensionnement d’un appareillage, on doit choisir sa capacit´e parmi les valeurs commerciales existant sur le march´e. Par exemple, lors du dimensionnement d’une canalisation de transport d’eau, on doit choisir parmi les valeurs suivantes pour le diam` etre : 12 cm, 17 cm, 24 cm ou 47 cm. On peut a` nouveau mod´eliser ce choix par l’utilisation de variables binaires. En effet, d´efinissons la variable x comme e´ tant le diam`etre choisi et d´efinissons yi une indicatrice du fait que le diam`etre num´ero i a e´ t´e choisi. On peut alors e´ crire la relation suivante pour le choix du diam`etre :
x = 12y1 + 17y2 + 24y3 + 47y4 avec la contrainte qu’un seul diam`etre doit eˆ tre choisi :
y1 + y2 + y3 + y4 = 1
(6.7)
et bien sˆur en imposant le caract`ere binaire de chaque indicatrice :
yi ∈ { 0, 1}, ∀i = 1, 2. . .4 La contrainte (6.7) fera en effet qu’une seule indicatrice vaudra un tandis que toutes les autres seront a` z e´ ro.
74
6.3
Chapitre 6. La programmation en nombres entiers.
M´ethode de branch and bound
La m´ethode de “branch and bound” ou encore appel´ ee m´ethode de s´eparation et e´ valuation que nous allons maintenant d´ ecrire est destin´ ee a` r´e soudre les probl` emes en nombres entiers du type suivant :
z ∗ = max cT x Ax ≤ b, s.c.q. x ≥ 0
et entiers.
Cette m´ethode peut egalement ´ eˆ tre appliqu´eeauxprobl`emes avec variables binaires (z´ero-un). Elle peut e´ galement eˆ tre appliqu´ee aux probl`emes mixtes (MIP), c’est `a-dire aux probl`emes comportant un certain nombre de variables enti` eres et un certain nombre de variables continues. Nous illustrons la m´ethode sur l’exemple suivant tir´ e de Norbert et al [15] :
z ∗ = maxz = 10x1 + 50x2
−
x1 + 2x2 ≤
5, (6.8)
x1 + 2x2 ≤ 14,
s.c.q.
≤
8,
x2 ≥
0
x1 x1
,
et entiers
La r´egion r´ealisable est repr´esent´ee a` la figure 6.2. x2
P 0
5
P 2
P 1
4
P 3 P 5
3 2 1 0
0
1
2
3
4
5
6
7
8
x1
Figure 6.2: Repr´esentation de la r´egion re´ alisable. Remarquons qu’une fa¸con de r´esoudre le probl`eme serait de construire une
Section 6.3. M´ ethode de branch and bound
75
borne sup´erieure sur z ∗ et une borne inf´erieure sur z ∗ et ensuite de raffiner ces bornes jusqu’`a les e´ galiser. Question 1 : comment construire une borne inf´ erieure sur z ∗ ?
Lar´eponse a` cette question est a` la fois simple et difficile. En effet, pour trouver une borne inf´erieure, il suffit de donner une solution r´ealisable pour (6.8). Comme l’objectif est de maximiser, l’optimum du probl` eme ne pourra qu’ˆetre sup´erieur a` la valeur de z en ce point. Cependant trouver en g´en´eral une solution r´ealisable pour un probl`eme en nombres entiers n’est pas une mince affaire. erieure sur z ∗ ? Question 2 : comment construire une borne sup´ Une fa¸c on de r´epondre a` cette question est de r´esoudre le probl`eme lin´eaire que l’on obtient a` partir de (6.8) en laissant tomber les contraintes d’int´ egralit´e des variables. Comme on maximise sur un ensemble r´ ealisable plus large, l’optimum ainsi obtenu ne pourra qu’ˆetre sup´erieur a` l’optimum du probl`eme en nombres entiers. C’est aussi le premier pas de la m´ethode de branch and bound que nous allons maintenant d´ecrire sur l’exemple. Pas 0. R´esoudre la relaxation lin´eaire.
Pour cet exemple, on obtient comme solution de la relaxation lin´ eaire le point not´e P 0 a` la figure 6.2 :
x1 = 4, 5 x2 = 4, 75 z0 = 282, 5. Cette solution est inacceptable car elle viole les contraintes d’int´ egralit´e des variables. Cependant, elle fournit une premi`ere borne sup´erieure sur z ∗ :
z ∗ ≤ 282, 5. Pas 1. Brancher sur une variable non enti`ere.
La seconde id´ee de la m´ethode de branch and bound est (comme le nom l’indique) epar´ ee en deux sous-r´ egions d’op´erer une s´eparation : la r´egion r´ealisable va etre ˆ s´ dont aucune ne peut contenir la solution optimale non enti` ere P 0 . Cette s´eparation n´ecessite le choix d’une variable de s´eparation. Le choix de cette variable est heuristique. Diff´e rentschoixsontpossiblesetdecechoixpeutd´ependre l’efficacit´e de la m´ethode de r´esolution. Une fa¸con simple de choisir cette variable est de prendre la variable la plus distante d’un entier. Une alternative, parfois utilis´ee, est de prendre la variable la plus proche d’un entier. Dans notre exemple, il s’agit de la variable x1 . On va effectuer un branchement sur cette variable. Comme x1 ne peut prendre que des valeurs enti`eres, il n’y a
76
Chapitre 6. La programmation en nombres entiers.
aucune perte de g´en´eralit´e d’imposer que soit x1 ≤ 4 soit x1 ≥ 5 Cependant imposer cette condition vaeliminer ´ la solution courante P 0 de la relaxation lin´eaire. En g´en´eral si la variable choisie xk a la valeur fractionnaire N + , on imposera : soit xk ≤ N soit xk ≥ N + 1 En imposant s´epar´ement l’une et l’autre conditions, on obtient deux sousmod`eles, un mod`ele fils et un mod`ele fille. Ce que l’on repr´esente par une diagramme du type de celui de la figure 6.3. Chaque nœud de cette figure correspond
z 0 = 282, 5 x1 = 4 , 50 x2 = 4, 75 x1
x1
4
z2 = 275 x1 = 5 x2 = 4 , 5
z1 = 265 x1 = 4 x2 = 4 , 5 x2
4
x2
z5 = 240 x1 = 4 x2 = 4
z6 =
5
5 ∞
Probl` eme non r´ ealisable
x2
4
z3 = 260 x1 = 6 x2 = 4
x2 z4 =
5 ∞
Probl` eme non r´ ealisable
Figure 6.3: Arbre de branch and bound. `a un probl`eme lin´eaire. Le nœud 0 au mod`ele original. Le nœud 1 est le mod`ele original avec en plus la restriction x1 ≤ 4, tandis que le nœud 2 correspond au mod`ele original avec en plus la restriction x1 ≥ 5. On a ici num´erot´e les nœuds dans l’ordre o`u ils ont e´ t´e g e´ n´er´es. On peut maintenant r´esoudre les relaxations lin´ eaires correspondant aux probl`emes fils et fille. Dans notre exemple, on obtient les deux solutions suivantes : Noeud 1 : x1 = 4, x2 = 4, 5, z1 = 265. Noeud 2 : x1 = 5, x2 = 4, 5
z2 = 275.
Remarquez que les valeurs atteintes par la fonction objectif sont moins elev´ ´ ees que dans la relaxation lin´eaire pr´ec´e dente. Ceci n’est pas e´ tonnant : on a, en
Section 6.3. M´ ethode de branch and bound
77
effet, ajout´e des contraintes et donc restreint l’espace des solutions r´ ealisables. Comme les deux sous-r´egions forment une repr´esentation contenant l’ensemble des solution enti`eres, on peut en conclure que la borne sup´ erieure sur z ∗ est :
z ∗ ≤ max(z1, z2 ) = 275. Pas 2. Diviser a` nouveau un nœud fils ou fille en deux.
Ici, aucune des deux solutions n’est acceptable car toutes les deux comportent des parties fractionnaires. On va donc continuer en choisissant un des deux nœuds pour le diviser a` nouveau. Le choix du nœud a` diviser est a` nouveau heuristique et peut a` nouveau avoir une grande influence sur le temps total mis pour r´ esoudre le probl`eme. Pour l’illustration de la m´ethode, nous adoptons la r` egle de choix heuristique suivante : choisir le probl` eme dont la relaxation lin´eaire fournit la meilleure (c’est `a-dire la plus grande en cas de maximisation) valeur de la fonction objectif. Pour cet exemple, on choisit donc le nœud 2 et on r´ep`ete le Pas 1. Pas 1. Choisir une variable pour brancher.
Ici seule la variable x2 est non enti`ere. On la choisit donc pour op´erer le branchement suivant : soit x2 ≤ 4 soit x2 ≥ 5 On ajoute s´epar´ement chacune de ces contraintes aux contraintes du probl` eme 2 et on g´en`ere ainsi les nœuds 3 et 4. Ceci est illustr´ e a` la figure 6.3. On r´esout graphiquement les relaxations lin´ eaires (voir figure 6.2) et on obtient les solutions suivantes : Noeud 3 : x1 = 6, x2 = 4, z3 = 260. Noeud 4 :
non r´ealisable
Noter que, au nœud 3, on a obtenu une solution enti`ere dont la valeur correspondante de la fonction objectif est 260. On a une premi` ere borne inf´erieure sur la valeur optimale de la fonction objectif et on a donc que :
260 ≤ z ∗ ≤ 275 Si la fourchette n’est pas trop grande, on peut se satisfaire de cette solution non optimale plutˆot que de continuer de longs calculs. Il est clair egalement ´ qu’il n’y a aucune raison de continuer a` diviser le nœud 3 pour lequel la solution optimale du probl`eme en nombres entiers a et´ ´ e obtenue. On dit que le nœud est coup´e. Remarquons aussi que le nœud 4 a conduit a` un probl`eme non r´ealisable. Ce n’est pas etonnant ´ vu que l’on rajoute de plus en plus de contraintes. A nouveau,
78
Chapitre 6. La programmation en nombres entiers.
dans ce cas, il ne sert a` rien de continuer a` diviser ce nœud. Continuons la division des autres nœuds. Pas 2. Diviser a` nouveau un nœud fils ou fille en deux.
On choisit le nœud 1 qui est le seul a` encore diviser. Remarquez que c’est parce que la valeur de z1 = 265 est sup´erieure a` la borne inf´erieure 260 que l’on doit continuer. On a en effet un espoir de trouver ici une solution enti` ere meilleure que 260. Dans le cas contraire, on aurait egalement ´ coup´e cette branche et la m´ethode e´ tait termin´ee. Pas 1. Brancher sur une variable non enti`ere.
On branche ici sur x2 en cr´eant les nœuds 5 et 6 par la s´eparation suivante : soit x2 ≤ 4 soit x2 ≥ 5 On r´esout les relaxations lin´eaires correspondantes. On obtient : Noeud 5 : x1 = 4; x2 = 4, z5 = 240 Noeud 6 :
impossible
La m´ethode est termin´ee puisqu’il n’existe plus de nœud a` diviser. On d´etermine la solution optimale comme etant ´ la meilleure solution enti`ere trouv´e e. Il s’agit du point P 3 suivant :
x∗1 = 6 x∗2 = 4 auquel correspond une valeur optimale de l’objectif de z ∗ = 260. On a ainsi, pour notre exemple, trouv´e et aussi prouv´e que la solution du nœud 3 etait ´ la solution optimale du probl`eme en nombres entiers. En conclusions, il y a trois raisons de couper une branche dans l’arbre : 1. lorsque la relaxation lin´eaire obtenue est non r´ealisable, 2. lorsque la relaxation lin´eaire obtenue fournit une solution enti` ere, 3. lorsque la valeur de la borne sup´ erieure est inf´erieure a` la valeur de la meilleure solution enti`ere obtenue. Enfin terminons par la remarque g´en´erale suivante. Si la r´egion r´ealisable de la relaxation lin´eaire n’est pas born´ee, il n’y a pas de garantie de convergence de la m´e thode de branch and bound. Pour eviter ´ ce probl`eme, certaines impl´ementations demandent une borne inf´erieure et sup´erieure sur chaque variable. On est ainsi garanti d’un nombre fini de branches dans l’arbre.
79
Section 6.4. Exercices
6.4
Exercices
6.1. M´elange de maximum 4 charbons. Pour produire du coke, on m´elange des charbons dans un haut fourneau o` u ensuite, une r´eaction a` haute temp´erature produit le coke. On suppose qu’il y a 8 charbons disponibles. Ces charbons sont entr´es par des bandes porteuses qui sont au nombre de 4, permettant d’avoir au maximum 4 charbons diff´erents dans le m´elange. De plus, si un charbon est pr´esent dans le m´elange, il doit l’ˆe tre a` hauteur de minimum 5%. De plus, on exige que la teneur du m´elange en Silicium soit d’au plus 1,8 % Le tableau 6.1 reprend les prix et teneur en Si des charbons. On Charbon
Prix
Teneur Si
Charbon
Prix
Teneur Si
Charbon 1
12
2,0 %
Charbon 5
13
1,0 %
Charbon 2
14
2,5 %
Charbon 6
9
5,0 %
Charbon 3
17
1,0 %
Charbon 7
15
2,0 %
Charbon 4
10
5,0 %
Charbon 8
11
1,5 %
Tableau 6.1: Teneurs en Si et prix des diff´ erents charbons. veut d´eterminer le m´elange r´epondant aux sp´ecifications qui soit de coˆut minimum. 6.2. Localisation optimale d’´emetteurs de t´el´evision. Etant donn´e une r´egion comportant quatre villes (Lille, Dunkerque, Valencienne et Basieux), on veut savoir o`u implanter, parmi divers emplacements disponibles (au nombre de 5), un ensemble d’´emetteurs de t´el´evision susceptibles de desservir ces diff´erentes villes au moindre cout. ˆ La derni`ere colonne repr´esente le coˆut de construction de chaque emetteur. ´ Ville
Lille
Dunkerque
Emetteur 1
1
1
Emetteur 2
1
Emetteur 3 Emetteur 5
1
Basieux
Coˆ ut 25
1 1
Emetteur 4
Valencienne
1
30 15
1
1
35
1
1
90
Tableau 6.2: Accessibilit´e des villes a` partir des e´metteurs. On demande d’´ecrire le programme correspondant a` la d´etermination du nombre d’´emetteurs a` construire afin que chaque ville soit desservie par au moins un e´ metteur et ceci a` coˆut d’investissement total minimum.
80
Chapitre 6. La programmation en nombres entiers.
6.3. Probl`e me d’affectation de lignes a´eriennes. Une petite compagnie a´erienne dispose de six avions de 150 places. Elle d´ esire affecter sa flotte d’avions aux deux lignes int´erieures ouvertes a` la concurrence (les lignes OM et OT). Le nombre de passagers d´esirant effectuer chaque jour un parcours sur la ligne OM par cette nouvelle compagnie est 500, et de 200 sur la ligne OT. Le coˆut marginal (frais variables tels que le carburant, les taxes d’atterrissage, etc. . . ) d’un voyage sur la ligne OM est de 4 et de 3 sur la ligne OT. On d´esire minimiser le coˆut d’exploitation en satisfaisant la demande. (a) Formuler math´ematiquement le probl`eme de la meilleure affectation de la flotte de cette compagnie. (b) R´esoudre par la m´ethode de Branch and bound en r´ esolvant chaque fois la relaxation lin´eaire de mani`ere purement graphique !
Partie II Les mod`eles sur r´eseau, dynamiques et non lin´eaires.
81
Chapitre 7 Les mod`eles sur r´eseau Dans ce chapitre, nous allons introduire diff´ erents mod`eles qui utilisent un graphe dans leur formulation, soit pour repr´ esenter un r´eseau (comme dans les probl`emes de transport), soit que le graphe soit une fa¸ con commode de repr´e senter le probl` eme (comme dans les probl`emes d’ordonnancement de projets). Les origines desmod`e lessurr´eseaux sont nombreuses et d´ebordent largement le cadre des seuls probl`emes de transport. On peut citer :
• Les probl`emes de distribution : il s’agit de d´eterminer a` partir de quel lieu de production servir les diff´ erents points de consommation de mani` ere a` minimiser les coˆuts de transport : il existe plusieurs algorithmes de r´ esolution pour ce probl`eme (voir chapitre 9).
• Les probl`emes d’affectation optimale : il s’agit d’affecter des personnes a` des postes de travail de mani` ere a` maximiser l’efficacit´e g´en´erale : il s’agit d’un probl`eme en nombres entiers (on affecte enti`erement une personne a` un poste ou pas du tout) qui peut etre ˆ r´esolu sans recourir a` la m´ethode de “Branch and Bound” (voir chapitre 6). ˆ : il s’agit ici de d´eterminer l’en• Les probl`emes de planification des t aches
chaˆınement des tˆaches d’un projet de mani`ere a` terminer au plus vite en tenant compte des relations d’ant´eriorit´e de certaines tˆaches par rapport a` d’autres. Il existe deux m´ethodes de resolution ´ : la m´ethode potentiel et la m´ethode PERT (voir cours de licence).
• Les probl`e mes de plus court chemin : il s’agit ici de trouver le chemin le plus court ou le moins coˆuteux entre deux points donn´es d’un r´eseau. Il existe un algorithme sp´ecialis´e : l’algorithme de Dijkstra (voir cours de licence). eaires qui peuvent Les mod`eles sur r´eseau sont le plus souvent des mod e` les lin´ donc eˆ tre r´e solus par l’algorithme du Simplexe mais pour lesquels il existe souvent un algorithme sp´ecialis´e plus efficace que le Simplexe.
83
84
7.1
Chapitre 7. Les mod`eles sur r´ eseau
Le probl`eme de transport simple
Le probl`eme de transport simple se rencontre lorsque l’on a un bien homog`ene (gaz, eau, e´ lectricit´e,. . . ) a` transporter entre m lieux de production de capacit´e de production K i connue et n lieux de consommation de demande d j connue de mani`e re a` minimiser le coˆut total de transport sur le r´eseau. On connaˆıt cij , le coˆut de fourniture d’une unit´e du producteur i au client j pour chaque couple (producteur, client).
La question qui se pose est la suivante : “Comment satisfaire la demande des consommateurs a` coˆut total de transport minimum tout en respectant les contraintes de capacit´e des producteurs ?” Illustrons ceci sur un exemple tir´e de Williams [17]. Supposons qu’il y ait 3 producteurs (m = 3) dont les capacit´es annuelles sont donn´ees au tableau 7.1. Fournisseur
1
2
3
Capacit´e
135
56
93
Tableau 7.1: Capacit´e annuelle des fournisseurs Il y a quatre 4 points de consommations (n = 4). Les demandes annuelles de ces clients sont reprises au tableau 7.2. Client
1
2
3
4
Demande
62
83
39
91
Tableau 7.2: Demandes annuelles des clients Les coˆuts de transport entre producteurs et clients sont repris au tableau 7.3. Les coˆuts manquants indiquent que le fournisseur ne peut satisfaire le client. Coˆu t unitaire
Client 1
Client 2
Client 3
Client 4
Fournisseur 1
132
-
97
103
Fournisseur 2
85
91
-
-
Fournisseur 3
106
89
100
98
Tableau 7.3: Coˆuts unitaires de fourniture
7.1.1
Repr´esentation au moyen d’un graphe
Nous allons voir comment le probl`eme de transport simple peut eˆ tre repr´esent´e par un graphe . Rappelons la d´efinition de graphe.
85
Section 7.1. Le probl` eme de transport simple
´ D´efinition 7.1 Un graphe est d efini comme la paire G = (N, A) ou N repr´ esente un ensemble de nœuds et A un ensemble de couples (i, j), appel´ es arcs, avec i ∈ N et j ∈ N .
Ici, les nœuds repr´esentent les lieux de production ou de consommation alors que les arcs repr´esentent les liens physiques existant entre lieux de production et lieux de consommation. Le graphe associ´e au probl`eme de transport simple peut etre ˆ repr´esent´e comme `a la figure 7.1. Il s’agit en fait d’un cas particulier de graphe : il s’agit d’un graphe bipartite. On peut, en effet, isoler deux groupes de nœuds : les nœuds de production, d’une part, et les nœuds de consommation, d’autre part, et il n’existe de liens (d’arcs) qu’entre les nœuds du premier ensemble et les nœuds du second ensemble. Autrement dit, on ne peut aller d’un lieu de production vers un client que directement (sans passer par des points interm´ ediaires).
s1
135
D1 = 62 1
1
D2 = 83 s2
56
2 2
D3 = 39 3
s3
D4 = 91
93 3
4
Figure 7.1: Exemple de probl`eme de transport simple
7.1.2
Formulation du probl`eme
Nous allons formuler le probl`eme de mani`ere classique (choix des variables, expression de la fonction objectif et des contraintes ). 1. Choix des variables : notons
xij la quantit´e transport´ee annuellement du producteur i au client j ; si la quantit´e pr´elev´ee annuellement chez le producteur i.
86
Chapitre 7. Les mod`eles sur r´ eseau
2. Expression de la fonction objectif : l’objectif est simplement la minimisation de la somme des coˆuts de transport entre producteurs et clients :
minz =
cij xij
(i,j )∈A
3. Formulation des contraintes : on a deux types de contraintes (cfr figure 7.1) : (a) Contraintes de satisfaction de la demande : la somme des quantit´es fournies par tous les producteurs a` un client donn´e j doit eˆ tre e´ gale a` sa demande :
xij = D j , j = 1, . . . n
i|(i,j )∈A
(b) Contraintes de capacit e´ des producteurs : la somme des quantit´es fournies par un producteur i a` tous ses clients doit etre ˆ inf´erieure ou e´ gale a` sa capacit´e de production :
xij = si ≤ K i
j |(i,j )∈A
Une condition n´ecessaire de r´ealisabilit´e du probl`eme est que la somme des capacit´es de production des producteurs soit suffisante pour couvrir la somme des demande des clients : m n
i=1
K i ≥
D j
j =1
Il ne faut e´ videmment pas ajouter cette relation comme contrainte au mod` ele. Mais il convient de v´erifier si cette condition est satisfaite avant de se lancer dans la r´esolution du mod`ele. Si par exemple, la condition etait ´ viol´ee d’une certaine quantit´e, il faudrait recourir, pour cette quantit´e a` la sous-traitance. Remarquez e´ galement que cette condition n’est pas suffisante dans le cas o` u tous les producteurs ne peuvent servir tous les clients. Il existe au moins trois mani`ere d’interdire les chemins impossibles : 1. On peut imposer explicitement : xij = 0 pour tout (i, j) impossible. 2. On peut p´enaliser l’utilisation de tels chemins par un coefficient objectif cij tr`es e´ lev´e. 3. On peut aussi restreindre les sommations aussi bien dans l’objectif que dans les contraintes aux seuls chemins (i, j) existants. C’est la solution retenue dans notre formulation.
87
Section 7.2. Planification de la production
7.2
Planification de la production
Le probl`eme de transport permet de mod´eliser des probl`emes qui a` priori n’ont rien avoir avec la distribution, ainsi le probl` eme de planification de la production suivant tir´e de Williams [17]. Le probl`eme de planification de la production s’´e nonce ainsi. On produit un bien unique pour lequel la demande est connue pour les prochains mois. On connaˆıt aussi la capacit e´ de production pour les prochains mois. La production en heures suppl´ ementaires est e´ galement possible moyennant un surcoˆ ut. Le tableau 7.4 reprend les capacit´es (en heures normales et en heures suppl´ ementaires) ainsi que la demande pour les 4 premiers mois de l’ann´ee. Mois
Janvier
F´e vrier
Mars
Avril
capacit´e (heures normales)
100
150
140
160
capacit´e (heures suppl´ementaires)
50
75
70
80
Demande
80
200
300
200
Tableau 7.4: Capacit´es et demandes ˆ de production est de 1 par unit´e produite en heures normales, alors Le cout ut de stockage qu’il est de 1,5 par unit´e produite en heures suppl´ementaires. Le coˆ est de 0,3 par mois et par unit´e stock´ee.
Nous allons maintenant formuler ce probl` eme en probl`eme de transport : 1. Choix des variables : D´esignons par xij la quantit´e produite en heures normales a`l a p e´riode i pour satisfaire une demande de p´eriode j avec i = 1, 2, . . .4 et j = i, i + 1, . . .4. De mani`ere semblable, yij d´esigne la quantit´e produite en heures suppl´ementaires a` la p´eriode i pour satisfaire une demande de p´eriode j avec i = 1, 2, . . .4 et j = i, i + 1, . . .4. Remarquez que l’on aurait egalement ´ pu utiliser une seule variable a` trois indices xijk o`u k indiquerait le mode de production (k = 1 pour les heures normales et k = 2 pour les heures suppl´ementaires). 2. Expression de l’objectif : Au coˆut de production (en heures normales ou en heures suppl´ ementaires), il faut ajouter autant de fois le coˆ ut de stockage qu’il n’y a de mois s´ eparant la production de la demande. Le tableau 7.5 reprend le calcul du coˆ ut total de production et stockage. Il n’y a e´ videmment pas de coˆut de production pour une production post´ erieure a` la p´eriode de demande.
88
Chapitre 7. Les mod`eles sur r´ eseau
Demande Production Janvier F´evrier Mars Avril
Janvier
F´evrier
Mars
Avril
h.norm.
1
1,3
1,6
1,9
h.supp.
1,5
1,8
2,1
2,4
h.norm.
-
1
1,3
1,6
h.supp.
-
1,5
1,8
2,1
h.norm.
-
-
1
1,3
h.supp.
-
-
1,5
1,8
h.norm.
-
-
-
1
h.supp.
-
-
-
1,5
Tableau 7.5: Coˆuts de production et de stockage 3. Expression des contraintes : Outre les contraintes de positivit´ e (xij , yij ≥ 0, i = 1, . . .4, j = 1, . . .4), il existe deux types de contraintes :
• Les contraintes de satisfaction de la demande s’´ecrivent ici comme : x11 + y11 x12 + y12 + x22 + y22 x13 + y13 + x23 + y23 + x33 + y33 x14 + y14 + x24 + y24 + x34 + y34 + x44 + y44
= = = =
80, 200, 300, 200.
• Les contraintes de capacit e´ s’´ecrivent ici comme : x11 + x12 + x13 + x14 y11 + y12 + y13 + y14 x22 + x23 + x24 y22 + y23 + y24 x33 + x34 y33 + y34 x44 y44
≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤
100, 50, 150, 75, 140, 70, 160, 80.
Remarquez que si l’on raisonne en termes de probl` eme de transport, les quan´ de la production au mois i vers une demande tit´es xij sont des quantit´es transport ees au mois j et la somme des coˆ uts de production et de stockage joue ici le rˆ ole de coˆut de transport.
89
Section 7.3. Probl` eme d’affectation optimale
7.3
Probl`eme d’affectation optimale
Le probl`eme s’´enonce de la mani`ere suivante. On a n personnes a` affecter a` n postes. On connaˆıt tij , le temps moyen mis par la personne i pour effectuer le travail au poste j . La question qui se pose est la suivante : “Comment affecter les personnes aux diff´erents postes pour minimiser le temps total de r´ealisation des tˆaches ?” Le probl`eme se formule de la mani`ere suivante. 1. Choix des variables : On note xij = 1 si personne i affect´ee au poste j , xij = 0, dans le cas contraire. 2. Formulation de l’objectif : L’objectif est de minimiser l’inefficacit´e totale de l’affectation : n
minz =
n
tij xij
i=1 j =1
3. Formulation des contraintes : Il y a deux types de contraintes : ˆ pourvu : • chaque poste j doit etre n
xij = 1, j = 1, . . . n
i=1
Cette contrainte exprime qu’exactement une personne est affect´ ee a` chaque poste. ee : • chaque personne i est employ´ n
xij = 1, i = 1, . . . n
j =1
Cette contrainte exprime qu’exactement un poste est affect´ e a` chaque personne. ´ e´ des variables : • et bien sˆur, il faut ajouter les contraintes d’int egrit
xij ∈ {0, 1} Le probl`eme d’embauche se rencontre lorsqu’il y a plus de personnes que de postes a` pourvoir. Autrement dit, on a m personnes pour n postes avec m ≥ n. La seconde contrainte devient une in´ egalit´e. Le probl`eme de transport simple peut etre ˆ g´en´eralis´e en permettant des nœuds interm´ediaires qui ne soient pas des nœuds source (nœud d’offre) ou des nœuds puits (nœuds de demande). On obtient ainsi le probl`eme de transport g´en´eral.
90
Chapitre 7. Les mod`eles sur r´ eseau
7.4
Le probl`eme de transport g´en´eral
Le probl`eme de flot a ` coˆut minimum est illustr´e par l’exemple tir´e de Williams [17] repris a` la figure 7.2. On a deux lieux de productions (deux sources ) aux nœuds 0 et 1 et trois lieux de consommation (trois puits) aux nœuds 5, 6 et 7. Les coˆuts unitaires de transport sont indiqu´ es au dessus des arcs. On veut d´ eterminer +10 0
5
5
6
4 6 2
3
4
-10 6
1 +15
-9
5
2
4 1
3
2
4 -6 7
Figure 7.2: Probl`eme de flot a` coˆut minimum comment satisfaire la demande des diff´ erents puits par des flux circulant a` travers le r´eseau depuis les sources a` coˆut total minimum. On peut formuler le probl`eme de transport g´en´eral comme suit : 1. Choix des variables : On appelle xij la quantit´e transport´ee entre le nœud i et le nœud j . 2. Expression de l’objectif : L’objectif correspond simplement a` la minimisation des coˆuts de transport :
minz =
cij xij .
(i,j )∈A
o`u cij note le coˆut de transport unitaire sur l’arc (i, j). 3. Contraintes du probl`eme : Les contraintes expriment la conservation du flux aux nœuds. La somme des flux entrant dans un nœud est egale ´ a` la somme des flux sortant du nœud :
10 15 x02 + x42 x23 + x13
= = = =
x02 x13 x23 + x24 + x25 x34 + x37
91
Section 7.4. Le probl`eme de transport g´ en´eral
x24 + x34 x25 + x45 x46 + x76 x37
= = = =
x42 + x45 + x46 9 10 x76 + 6
En mettant toutes les variables a` gauche et toutes les constantes a` droite, on obtient le syst`eme suivant d’´egalit´es :
x02 x13
−x02
+x23 +x24 +x25 −x42 +x34 +x37 −x13 −x23 +x42 +x45 +x46 −x24 −x34 −x25 −x45 −x46 −x76 x76 −x37
= 10 = 15 = 0 = 0 = 0 = −9 = −10 = −6
En isolant les coefficients de ces contraintes, on obtient ce que l’on appelle la matrice d’incidence nœuds/arcs qui a comme particularit´e que chaque colonne ne comporte qu’un coefficient +1 et un coefficient -1. Chaque colonne correspond a` un arc, et il y a un +1 dans la ligne correspondant au nœud d’o` u est issu l’arc et il y a un -1 dans la ligne correspondant au nœud destination de l’arc :
02 1
13
23
24
25
34
37
42
45
46
76
0 1 1 2 −1 1 1 1 −1 3 1 1 −1 −1 4 1 1 1 −1 −1 5 −1 −1 6 −1 −1 7 1 −1 Nous allons maintenant voir un certain nombre de cas particuliers de ce probl` eme.
7.4.1
Probl`eme du plus court chemin
Le probl`eme du plus court chemin est celui qui se pose lorsque l’on veut aller d’un point aunautresurunr´ ` e seau routier par la route la plus courte. A la figure 7.3,
92
Chapitre 7. Les mod`eles sur r´ eseau 3
1
1
1
1
1
1
2 0
5
2
3
1
2
7
4
3 4
1
2
2
8
1 6
Figure 7.3: Probl`eme du plus court chemin on a repr´esent´e les distances entre les divers points. On se demande quel est le plus court chemin entre le nœud 0 et le nœud 8. Remarquez que ce probl` eme eˆ tre reformul´e en un probl`e me de flot a` coˆut minimum. Au nœud origine, le nœud 0, il suffit de mettre une source de capacit e´ unitaire et au nœud destination, le nœud 8, un puits de demande unitaire. On utilise alors un algorithme sp´ecialis´e pour d´eterminer le flot a` coˆut minimum qui satisfait cette demande unitaire. Il existe cependant un algorithme sp´ecialis´e pour r´esoudre ce probl`eme : l’algorithme de Dijkstra (voir cours de licence).
7.4.2
Probl`eme du flot maximum
Le probl`e me du flot maximum est celui que l’on rencontre lorsque l’on veut, pour unr´e seau de transport, d´e terminer le flot maximum de voitures qu’il peut supporter avant d’arriver a` saturation. Etant donn´e des capacit´es des arcs (voir les chiffres 6
12
5
2
0
2
5
3 4
6
E
8
7
6
S
20 1
3
9
4 7
Figure 7.4: Probl`eme du flot maximum indiqu´es au dessus des arcs a` la figure 7.4), on veut maximiser le flot entre les sources et les puits . Si l’on rejoint toutes les sources a` une source unique et tous les puits a` un puits unique, et que l’on trace l’arc de retour entre le puits unique et la source unique, cela revient a` maximiser le flux dans l’arc retour.
93
Section 7.5. Exercices
7.5
Exercices
7.1. Planification de la production de moteurs d’avions. Une entreprise de fabrication de moteurs d’avions travaille uniquement sur commandes. Le tableau 7.6 fournit en le nombre de moteurs a` fournir en fin de chaque mois pour les quatre prochains mois. En fonction des op´ erations de maintenance, la capacit´e de production varie de mois en mois. Le coˆ ut unitaire de production varie e´ galement de mois en mois (voir tableau 7.6). Au vu des donn´ ees, il est clair qu’il faudra recourir au stockage. On se demande comment organiser la production du moteur pour minimiser les coˆ uts de production et de stockage. Formuler le probl`eme comme un probl`eme sur r´eseau. Mois Janvier F´evrier Mars Avril
Commandes 10 15 25 20
Capacit´ e 25 35 30 10
Coˆu t de production 1,08 1,11 1,10 1,13
Coˆ ut de stockage 0,015 0,015 0,015 0,015
Tableau 7.6: Production de moteurs d’avions. 7.2. Am´elioration d’un r´eseau routier. On pr´evoit une augmentation du trafic entre les villes A et F. On veut d´eterminer quel est le flot maximum de v´ehicules entre A et F que peut supporter le r´eseau. Les capacit´es des arcs, exprim´ees en milliers de voitures par heure, sont reprises au tableau 7.7. Arc 1 2 3 4 5 6 7 8 9
Origine A A C C B C E D E
Destination B C B D D E D F F
Capacit´e 3 7 2 2 4 4 2 6 5
Tableau 7.7: Capacit´es des arcs d’un r´eseau routier. (a) Repr´esenter le probl`eme sur un graphique de r´eseau. (b) Formuler math´ematiquement le probleme. `
94
Chapitre 7. Les mod`eles sur r´ eseau
7.3. Tourn´ees de v´ehicules. Consid´erons le probl`eme d’organisation des tourn´ees de v´ehicules pour la collecte des d´ echets. La collectivit´e locale dispose de 12 v´ehicules pour collecter dans 4 villes. Ces v´ehicules sont attribu´es a` chaque ville : 4 a` la ville 1, 3 a` la ville 2, 1 a` la ville 3 et 4 a` la ville 4. Les Vers ville 1 ville 2 ville 3 0 10 De la ville 1 ∞ 10 0 5 De la ville 2 5 0 ∞ De la ville 3 5 De la ville 4 ∞ ∞ 45 20 ∞ De l’incin´erateur
ville 4 incinerateur ´
∞ ∞ 5 0 ∞
45 ∞ 20 ∞ 0
Tableau 7.8: Temps de parcours temps de trajets entre ces villes et l’incin´ erateur sont donn´es au tableau 7.8. On veut minimiser le temps total pour aller a` l’incin´erateur. (a) Repr´esenter le probl`eme sur un graphique de r´eseau. (b) Formuler math´ematiquement le probleme. ` 7.4. Mutation des officiers. L’arm´ee a une politique de mutation r´eguli`ere de ses officiers. Tous les trois ans, ces officiers sont mut´ es a` un autre poste pour assurer la polyvalence du commandement et eviter ´ que trop de fraternit´e ne s’installe entre les officiers et la troupe. L’arm´ ee, pour e´ tablir son plan de mutation, tient compte du d´esagr´e ment d’ˆe tre mut´e loin de sa base d’origine. Et il est clair que, par exemple dans le cas d’un officier mari´ e dont la femme travaille dans le civil, le d´esagr´e ment sera d’autant plus grand que la nouvelle affectation sera eloign´ ´ e e. Pour les 5 officiers a` muter cette ann´e e, on a e´ tabli le coˆut de les affecter a` chacun des 4 autres postes occup´ es par les coll`e gues. On d´esire d´eterminer l’affectation des officiers qui minimise Coˆut pour l’officier A B C D E
d’ˆetre mut´e au poste a b c d e - 12 15 11 17 6 - 14 12 16 8 17 - 21 17 7 16 9 - 12 7 13 8 12 -
le d´esagr´ement total (c’est-`a-dire la somme des d´esagr´ements individuels). Formuler math´ematiquement le probl`eme.
Chapitre 8 R´esolution du probl`eme de transport simple 8.1
Introduction
Dans ce chapitre, nous allons pr´ esenter un algorithme de r´esolution du probl`e me de eme obtenu transport simple introduit au chapitre 7. Pour rappel, il s’agit du probl` lorsque que le r´eseau ne comporte que deux types de nœuds, d’une part les nœuds d’offre et, d’autre part les nœuds de demande et que les arcs vont uniquement des nœuds d’offre aux nœuds de demande. L’algorithme de resolution ´ faisant appel a` la notion de coˆuts r´eduits, nous introduirons d’abord cette notion.
8.2
Notion de coˆut r´eduit
Dans plusieurs algorithmes de r´esolution de probl`emes sur r´eseau, on utilise la notion de coˆut r´eduit d’un arc . D´efinition 8.1 Supposons qu’`a chaque nœud i ∈ N , on associe un nombre π(i), ´ ˆ r´ eduit de l’arc (i, j) que nous appellerons le potentiel du nœud . On d efinit le cout comme
cπij = cij − π(i) + π( j)
(8.1)
ut r´ eduit . Il s’agit du Prenons un exemple d’utilisation de la notion de coˆ probl`eme du calcul de la plus courte distance entre deux points dans un graphe (voir cours de licence). L’algorithme de Dijkstra calcule la fonction di qui donne la distance du plus court chemin entre le point d’entr´ ee sur le r´eseau et le point i. Consid´erons un arc quelconque du r´eseau comme illustr´e a` la figure 8.1. Ainsi di note la distance du plus court chemin depuis l’entr´ ee sur le r´eseau jusqu’au point i et d j note la distance du plus court chemin jusqu’au point j tandis que cij indique
95
96
Chapitre 8. R´ esolution du probl` eme de transport simple di
d j
c ij
j
i
Figure 8.1: Notion de coˆ ut r´eduit d’un arc (i, j) la longueur de l’arc (i, j). A l’optimum, la condition suivante doit eˆ tre v´erifi´ee :
d j ≤ di + cij
(8.2)
Justifions ceci. En effet, soit le plus court chemin menant de l’entr´ ee du r´eseau au nœud j passe par l’arc (i, j) et on a donc que
d j = di + cij Soit le plus court chemin passe par un autre arc et passer par i est plus long :
d j < di + cij Dans les deux cas, on a bien que (8.2) est satisfaite. Ce qui peut se r´ ecrire :
cij + di − d j ≥ 0, ∀(i, j) ∈ A En posant πi = −di , il est e´ quivalent de dire que
cπij = cij − πi + π j ≥ 0, ∀(i, j) ∈ A Autrement dit que les coˆuts r´eduits sont tous positifs ou nuls. Illustrons ceci sur l’exemple de la figure 8.2. d2 = 2 2 c12 = 2 d1 = 0 1
c24 = 3
c23 = 1
c13 = 2
d4 = 3 4
c34 = 1 3 d3 = 2
Figure 8.2: Application de la notion de coˆ ut r´eduit. Pour d´eterminer di la plus courte distance du nœud origine 1 au nœud i, on utilise l’algorithme de Dijkstra . Pour rappel, celui-ci stocke deux informations en chaque nœud :
97
Section 8.2. Notion de coˆ ut r´eduit
1. le label courant du nœud, not´e di , qui indique la distance entre le nœud origine et le nœud i par le plus court chemin trouv´e jusqu’`a pr´esent; 2. le pr´ed´ecesseur courant du nœud, not´e pi , dans le plus court chemin trouv´e jusqu’`a pr´esent entre le nœud origine et i. L’algorithme de Dijkstra utilise et met a` jour deux ensembles : 1. L’ensemble T des nœuds dont on a d´etermin´e exactement le plus court chemin entre le nœud origine et ces nœuds. C’est l’ensemble des nœuds d´ej`a trait´es et qui ne n´ecessitent donc plus de traitement ult´ erieur. 2. L’ensemble S = N \ T des nœuds qui sont encore a` traiter. On dit qu’ils ont un un label provisoire qui pourra encore eventuellement ´ etre ˆ am´elior´e. Rappelons le principe de l’algorithme. Soit o l’indice du nœud origine. Algorithme 8.1 Algorithme de Dijkstra. 1. Initialisations. Mettre lo = 0; T = {o}; S = N \ T . Pour tout nœud j ∈ S qui peut ˆ etre atteint a` partir de o par un arc (o, j), on met comme label provisoire de j le temps de parcours de l’arc (o, j) : Pour tout j ∈ S , si j tel que (o, j) ∈ A alors d j ← coj , sinon d j ← ∞;
eration k . On s´ 2. It´ electionne l’´ el´ ement q ∈ S de label provisoire dq minimum :
q ∈ S |dq = min d j j ∈S
´ Ce nœud q est d eplac´ e de l’ensemble S vers l’ensemble T :
T = T ∪ {q } et S = S \ {q} ´ ements de S . Pour tout On remet alors a` jour les labels provisoires des el´ nœud j ∈ S qui peut ˆ etre atteint `a partir de q par un arc (q, j), on examine si le chemin menant a` j en passant par q ne serait pas plus court que l’ancien chemin menant a` j . Dans ce cas, d j et p j sont remis a` jour comme suit : Si dq + cqj < d j ,
alors et
d j = dq + cqj p j = q
3. Terminaison. L’algorithme s’arrˆ ete d e` s que l’on a d etermin´ ´ e le label ´ d efinitif du sommet de destination d, c’est-`a-dire d e` s que d ∈ T : R´ ep´ eter ii) jusqu’`a ce que le sommet de destination d ∈ T . La distance du plus court chemin de o a` d est tout simplement ld .
98
Chapitre 8. R´ esolution du probl` eme de transport simple
Voyons maintenant l’application de cet algorithme a` notre exemple : Initialisations : on marque d´efinitivement le nœud 1 qui permet d’atteindre les nœuds 2 et 3 :
i
1 2 3
di
0 2 2 +∞
pi − 1 1
4
−
It´eration 1 : on marque d´efinitivement le nœud 2 de label provisoire minimum. Ce nœud permet d’atteindre le nœud 4 :
i
1 2 3 4
di
0 2 2 5
pi − 1 1 2 It´eration 2 : on marque d´efinitivement le nœud 3 de label provisoire minimum. Ce nœud permet d’atteindre le nœud 4 plus rapidement que par le nœud 2 :
i
1 2 3 4
di
0 2 2 3
pi − 1 1 3 It´eration 3 : on marque d´efinitivement le nœud 4 et l’algorithme est termin´ e.
On a d´etermin´e les plus courtes distances de 1 a` tous les nœuds. En posant πi = −di , on peut en d´eduire
π1 = 0, π2 = −2, π3 = −2, π4 = −3. On en d´eduit le calcul des coˆ uts re´ duits (cπij = cij − πi + π j ) :
cπ12 cπ13 cπ23 cπ24 cπ34
= = = = =
2+0−2 = 0 2+0−2 = 0 1+2−2 = 1 3+2−3 = 2 1+2−3 = 0
qui s’interpr`e te comme le surcoˆut d’utiliser cet arc par rapport au plus court chemin.
99
Section 8.3. Le probl` eme de transport simple
8.3
Le probl`eme de transport simple
Rappelons la formulation du probl`eme du transport simple pour lequel il existe seulement deux types de nœuds : les nœuds d’entr´ ee (ou encore nœuds d’offre dont l’ensemble est not´e N s ) et les nœuds de sortie (ou encore nœuds de demande dont l’ensemble est not´e N d ). Il n’y a donc pas de nœuds d’interconnexion. C’est la premi`ere hypoth`ese simplificatrice . On suppose e´ galement, c’est la seconde hypoth`ese, que les arcs liant les nœuds d’entr´ee aux nœuds de sortie ont une capacit´e infinie. On peut donc repr´esenter le probl`eme par un graphe bipartite comme illustr´e a` la figure 8.3. 1
1
d
s 2 E
S
2
m
n
Figure 8.3: Probl`eme de transport simple. On choisit comme variable xij pour d´esigner la quantit´e transport´ee de i a` j . L’objectif est donc la minimisation des coˆ uts de transport entre les nœuds d’entr´ ee et les nœuds de sortie. Seuls ces arcs ont un coˆ ut associ´e dij . L’objectif se formule donc comme
z = min
cij xij
(i,j )∈A
o`u A est l’ensemble des arcs de transport (correspondant au r´ eseau ”ouvert” obtenu sans consid´erer le nœud d’entr´ee et le nœud de sortie). Il est e´ vident que si transporter du flot coute, ˆ on va, a` la solution optimale, tout juste satisfaire la demande en chaque nœud de demande. Autrement dit, on aura que :
xij = d j ∀ j ∈ N d
i|(i,j )∈A
Supposons que l’offre totale soit egale ´ a` la demande globale, autrement dit que
i∈N s
si =
j ∈N d
d j
100
Chapitre 8. R´ esolution du probl` eme de transport simple
On peut, en effet, se ramener a` ce cas en ajoutant un nœud de demande suppl´ ementaire auquel on attribue l’exc´ edent d’offre sur la demande ( i∈N si − j ∈N d j ) et que l’on raccorde a` chaque nœud d’offre par un arc de capacit´ e infinie et de coˆut de transport nul.
s
d
Dans ce cas, chaque arc d’entr´ee doit e´ galement eˆ tre utilis´e a` pleine capacit´e et nous aurons semblablement que
xij = si ∀i ∈ N s
j |(i,j )∈A
On voit donc qu’avec les hypoth`eses faites dans le cas du reseau ´ de transport simple, les flux circulant sur les arcs entrant et sortant sont connus a` priori. Les seules inconnues du probl`eme sont les flux f ij dans les arcs de transport. On a donc la formulation math´ematique suivante pour le probl` eme du transport simple.
z = min
cij xij
(i,j )∈A
s.c.q.
8.4
xij = si ∀i ∈ N s (8.3)
j |(i,j )∈A
xij = d j ∀ j ∈ N d
i|(i,j )∈A
xij ≥ 0
∀(i, j) ∈ A
R´esolution du probl`eme de transport simple
Nous allons illustrer la r´esolution du probl`eme de transport simple sur l’exemple suivant tir´e de Baglin et al [2]. Trois usines situ´ees a` Lyon, Strasbourg et Lille peuvent approvisionner quatre d´ epˆots situ´es a` Saint-Brieuc, Poitiers, Melun et Toulouse. Le tableau 8.1 fournit (en F par tonne) les tarifs des transporteurs routiers de chaque usine vers chaque d´ epˆot. Le tableau donne e´ galement la capacit´e de production (exprim´ee en milliers de tonnes) et la demande des d´epˆots (dans la mˆeme unit´e). On cherche l’affectation usines-d´ epˆots permettant d’aboutir a` un coˆut de transport minimum.
8.4.1
R´esolution par le Simplexe
Appelons cij le coˆut unitaire de transport de l’usine i vers le d´epˆot j , CAP i , la capacit´e de l’usine i et DEM j , la demande du d´epˆot j . Comme vu plus haut, en
101
Section 8.4. R´ esolution du probl` eme de transport simple
Coˆut de fourniture
Destination St-Brieuc
Poitiers
Capacit´ e
Melun
Toulouse
venant de
de l’usine
Lyon
264
130
139
160
9
Strasbourg
279
244
146
307
17
Lille
200
166
66
278
9
Demande
10
14
7
4
Tableau 8.1: R´esolution du probl`eme de transport simple appelant xij la quantit´e transport´ee de l’usine i au d´epˆot j , le probl`eme se formule comme suit : 3
4
≥
z = min
cij xij
i=1 j =1
4
xij = CAP i
∀i = 1, . . .3
j =1
s.c.q.
(8.4)
3
xij = DEM j ∀ j = 1, . . .4
i=1
xij
∀(i, j)
0
Remarquez que le probl`eme est parfaitement equilibr´ ´ e car : 3
4
i=1
CAP i =
DEM j
j =1
Ce probl`eme lin´eaire peut eˆ tre r´esolu par l’algorithme du Simplexe (voir chapitre 3) qui donne la solution optimale suivante :
• Lyon envoie 5.000 T a` Poitiers et 4.000 a` Toulouse; • Strasbourg envoie 8.000 T a` St-Brieuc et 9.000 a` Poitiers; • Lille envoie 2.000 T a` St-Brieuc et 7.000 a` Meulun. Le coˆut global de transport de cette solution est de 6.580 kF.
102
Chapitre 8. R´ esolution du probl` eme de transport simple
8.4.2
R´esolution par la m´ethode du stepping stone
Le principe de cette m´ethode consiste a` partir d’une solution r´ealisable que l’on am´eliore pas a` pas. D’o`u le nom de la m´e thode. Pour la d´etermination d’une ethodes heuristiques peuvent eˆ tre utilis´ees : solution de d´epart, au moins deux m´
• la m´ethode du coin Nord-Ouest; • la m´ethode de Houthakker. La m´ethode du coin Nord-Ouest :
Lam´e thode du coin Nord-Ouest consistea` attribuer le plus grand nombre possible a` la case situ´ ee le plus a` l’Ouest (1er crit e` re) et le plus au Nord (2`eme crit e` re) possible tout en respectant les contraintes de capacit e´ de production et de demande.
Dans notre exemple, on partira donc d’une solution consistant a` livrer 9.000 T de Lyon a` St-Brieuc. Toute la capacit´e de Lyon e´ tant utilis´e e, on sature la demande de St-Brieuc par 1.000 T venant de Strasbourg. On passe a` la deuxi`eme colonne que l’on rempli a` partir du Nord. Lyon e´ tant satur´ee, on envoie 14.000 T de Strasbourg vers Poitiers dont la demande est ainsi satur´ ee. On passe a` la troisi`eme colonne. On utilise les 2.000 T restantes de Strasbourg compl´ et´ees de 5.000 T venant de Lille pour saturer la demande de Melun. Enfin, la demande de Toulouse est satisfaite a` partir des 4.000 T restant disponibles a` Lille. On obtiendra la solution du tableau 8.2 pour un coˆ ut total de transport s’´elevant a` 7 805 kF. Fourniture venant
Destination St-Brieuc
Poitiers
Melun
Capacit´ e Toulouse
de
de l’usine
Lyon
9
Strasbourg
1
9 14
Lille Demande
10
14
2
17
5
4
7
4
9
Tableau 8.2: Heuristique du Coin Nord-Ouest
Heuristique de Houthakker :
La m´ethode de Houthakker propose de commencer par saturer les liaisons (i, j) pr´ esentant le coˆ ut de transport unitaire cij le plusfaible. Melunestlivr´ eeparl’usine
103
Section 8.4. R´ esolution du probl` eme de transport simple
de Lille (66 F la tonne). Ensuite Lyon approvisionnera Poitiers,a` concurrence de 9.000 T. Le coˆut minimum suivant est 139 de Lyon a` Melun mais la capacit´e de Lyon est satur´ee. Ensuite, le coˆut minimum de 146 est de Strasbourg a` Meulun. Mais la demande de Meulun est satur´ ee. Puis le coˆut minimum est de 160 de Lyon `a Toulouse mais a` nouveau Lyon est satur´ee. Ensuite, on envoie 2.000 T de Lille a` Poitiers au coˆut unitaire de 166, la capacit´e de Lille e´ tant ainsi satur´ee. Ensuite le coˆut minimum de 200 est de Lille a` St-Brieuc mais la capacit´e de Lille est satur´ee. Ensuite, on envoie 3.000 T de Strasbourg vers Poitiers au coˆ ut unitaire de 244, ce qui sature la demande de Poitiers. Les deux couts ˆ unitaires minimum suivant (264 et 278) correspondent a` des capacit´e et demande satur´ees. On envoie ensuite 10.000 T de Strasbourg a` St-Brieuc. On sature ainsi la demande de St-Brieuc. Et finalement, on envoie les 4.000 T restantes de Strasbourg a` Toulouse. On obtiendra le tableau 8.3 pour un coˆ ut de 6.714 kF. Fourniture venant de Lyon Strasbourg Lille Demande
St-Brieuc
10 10
Destination Poitiers Melun 9 3 2 14
Toulouse
4 7 7
Capacit´ e de l’usine 9 17 9
4
Tableau 8.3: Heuristique du Houthakker On voit que l’on est d´ej`a beaucoup plus proche de la solution optimale (de coˆ ut e´ gal a` 6.580 kF). Remarquez que si deux cases sont de coˆ ut minimum, on choisira celle o`u l’on peut attribuer le plus grand nombre : ceci aura pour effet de mettre comme coefficient du coˆ ut minimum la plus grande valeur d’une variable. Am´elioration de la solution de base : ut marginal engendr´e Pour chaque case pr´ esentant une valeur nulle, on calcule lecoˆ par le d´eplacement d’une unite´ des cases affect´ees voisines vers celle-ci.
Par exemple, si on veut affecter une unit´e de Lyon a` St-Brieuc, le respect des contraintes nous oblige a` enlever une unit´e de la case Strasbourg-St-Brieuc, a` enlever une unit´e de la case Lyon-Poitiers et a` ajouter une unit´e a` la case StrasbourgPoitiers. Ce qui repr´esente un cout ˆ de
+264 − 130 − 279 + 244 = +99. Le solde e´ tant positif, l’op´eration n’est pas int´eressante.
104
Chapitre 8. R´ esolution du probl` eme de transport simple
Lyon Lille
Poitiers Melun -1 (x 130) +1 (x 139) +1 (x 166) -1 (x 66)
Tableau 8.4: Calcul du deuxi`eme coˆut marginal L’ajout d’une unit´e de Lyon a` Meulun est illustr´e e au tableau 8.4. Ce qui repr´esente un cout ˆ de
−130 + 139 + 166 − 66 = +109. Le solde e´ tant positif, l’op´eration n’est pas int´eressante. L’ajout d’une unit´e de Lyon a` Toulouse est illustr´ee au tableau 8.5. Ce qui
Lyon Strasbourg
Poitiers Toulouse -1 (x 130) +1 (x 160) +1 (x 244) -1 (x 307)
Tableau 8.5: Calcul du troisi`eme coˆut marginal repr´esente un cout ˆ de
−130 + 160 + 244 − 306 = −33. Le solde e´ tant n´egatif, cette modification am´eliore la solution pr´ec´edente. On peut d´eplacer 4.000 T et gagner 4 × 33 = 132 kF. Le mˆeme raisonnement appliqu´e a` la case Lille-St-Brieuc permet encore de d´eplacer 2.000 tonnes de la case Lille-Poitiers a` la case Strasbourg-Poitiers et aussi 2.000 T de Strasbourg-St-Brieuc a` Lille-St-Brieuc, pour obtenir la solution optimale d´etermin´ee par le Simplexe. Toute modification se traduirait alors par une augmentation du coˆ ut global. Notez que l’algorithme de stepping stone choisit a` chaque e´ tape comme variable celle de coˆ ut marginal le plus n´ egatif.
Calcul des coˆuts marginaux
Une m´ethode permet de r´eduire fortement le temps de calcul des coˆ uts r´eduits. En effet, on peut montrer (cela r´esulte du principe de dualit´ e de la programmation lin´eaire) qu’il existe des variables auxiliaires ui et v j telles que pour chaque case de base (c’est-`a-dire chaque case utilis´ee dans la solution de d´epart), on ait :
ui + v j = cij
Section 8.4. R´ esolution du probl` eme de transport simple
105
Pour la solution du tableau 8.3, on a donc que :
u1 + v2 u2 + v1 u2 + v2 u2 + v4 u3 + v2 u3 + v3
= = = = = =
130 279 244 307 166 66
Il s’agit d’un syst`eme de 6 e´ quations a` 7 inconnues. On peut donc arbitrairement fixer a` z´e ro la valeur d’une variable (par exempleu1 ). Onend´e duit imm´ediatement la valeur de toutes les autres variables :
u1 v2 u2 u3 v1 v4 v3
= = = = = = =
0 130 114 36 165 193 30
On peut alors calculer les coˆ uts marginaux par la formule suivante (c’est la formule de calcul des coˆ uts r´eduits de l’algorithme du Simplexe) :
dij = cij − (ui + v j ) Ceci est fait au tableau 8.6.
u1 = 0 u2 = 114 u3 = 36
v1 = 165
v2 = 130
v3 = 30
v4 = 193
264 - 0 -165 =99 279 -114 -165 = 0 200 -36 -165 = -1
130 - 0 -130 = 0 244 -114 -130 = 0 166 -36 -130 = 0
139 -0 -30 = 109 146 -114 - 30 = 2 66 -36 - 30 = 0
160 - 0 -193 = -33 307 -114 -193 = 0 278 -36 -193 = 49
Tableau 8.6: Calcul des coˆuts marginaux On retrouve bien les valeurs +99, +109 et -33 d´ ej`a calcul´ees plus haut.
106
8.5
Chapitre 8. R´ esolution du probl` eme de transport simple
Exercices
8.1. Plan de transport. Une entreprise, sp´ecialis´ee dans la production de saucisses, dispose de 4 laboratoires o` u elle e´ labore son produit et de 5 centres de distribution d’o`u elle ravitaille sa client`ele. Le tableau 8.7 indique les distances entre les laboratoires et les centres de distribution. Le transport a
dij L1 L2 L3 L4 Demande
CD1
CD2
CD3
CD4
CD5
100 50 250 300 18
300 200 100 150 20
250 250 50 200 22
450 450 350 250 19
250 250 300 450 21
Offre 26 24 27 23
Tableau 8.7: Coˆuts unitaires de transport e´ t´e n´egoci´e au tarif kilom´etrique de 2 $ la tonne. La disponibilit´ e (en tonne de chair) des diff´erents laboratoires est egalement ´ donn´ee au tableau 8.7. La demande des centres de distribution est donn´ ee en derni`ere ligne du tableau. L’entreprise cherche le plan d’acheminementacoˆ ` ut minimal des laboratoires aux centres de distribution. Calculer une solution par l’heuristique du coin Nord-Ouest et par celle d’Houthakker. 8.2. Probl`eme de transport . On dispose de deux usines de production dont les de´ bouch´es sont situ´es sur trois march´es distants g´eographiquement. On connaˆıt la capacit´e de production de chacune des usines ainsi que la demande de chacun des march´es. On dispose e´ galement (voir tableau 8.8 pour les donn´e es pr´ecises) des distances, exprim´ees en milliers de miles, entre les sites de production et les march´es. Usines
March´es
Offre
New York
Chicago
Topeka
Seattle
2.5
1.7
1.8
350
San Diego
2.5
1.8
1.4
550
Demande
325
300
275
Tableau 8.8: Les donn´ees num´eriques du probl`eme de transport. Les frais de transport sont de 90 $ par millier de miles. On se demande combien d’unit´es du produit acheminer a` chaque march´e a` partir de chaque usine de mani`ere a` minimiser les coˆuts de transport.
Chapitre 9 R´esolution du probl`eme de transport g´en´eral 9.1
Introduction
Nous allons voir ici comment r´esoudre le probl`e me de transport g´en´eral introduit ut minimum dans un r´ eseau de au chapitre 7. Il s’agit de d´ eterminer le flot a` coˆ transport g´ en´ eral. L’algorithme faisant appel a` la notion de coˆut r´eduit introduite au chapitre 8. Elle fait e´ galement appel a` notion de r e´ seau r´esiduel . Aussi, nous commencerons par introduire cette notion a` la section 9.2. Nous pr´esenterons ensuite l’algorithme de plus courts chemins successifs . Le principe de cet algorithme est le suivant : on d´etermine un plus court chemin entre un nœud d’entr´ee et un nœud de sortie non satur´e s en utilisant le r´eseau r´esiduel (celui o`u il reste de la capacit´e de transport). On d´etermine alors le flux maximum qui peut eˆ tre transmis le long de ce chemin. On augmente le flot et on it`ere jusqu’`a saturer tous les points de demande. D’autres algorithmes existent pour resoudre ´ ce probl`eme. On en trouvera une description dans Ahuja et al[1]. Nous verrons ensuite a` la section 9.4 l’application de cet algorithme a` la r´esolution du probl`eme d’affectation.
9.2
Notion de r´eseau r´esiduel
Dans plusieurs algorithmes, on cherchea` augmenter le flot par rapport a` la situation actuelle du flot. Il est alors int´eressant d’identifier non pas le r´eseau actuel mais le r´eseau r´esiduel , c’est-`a-dire celui qui permet de faire passer un suppl´ ement de flux. Consid´e ronsunarc (i, j) dontle flux doit etrecomprisentreuneborneinf´ ˆ erieure 107
108
Chapitre 9. R´esolution du probl`eme de transport g´ en´eral
0 et une borne sup´erieure e´ gale a` la capacit´e de l’arc cij (voir figure 9.1). Si la valeur actuelle du flux sur cet arc est f ij , il est facile de voir que l’on peut faire encore passer en flux dans l’arc (i, j) un suppl´ement de flux e´ gal a` la capacit´e r´esiduelle rij qui se calcule comme suit : rij = cij − f ij Mais on peut e´ galement faire passer du flux dans l’autre sens en ajoutant un arc de j a` i de capacit´e r´esiduelle :
r ji = f ij En effet, on peut ramener le flux a` sa borne inf´e rieure z´e ro, ou ce qui est equivalent, ´ faire circuler un flux au maximum de f ij dans un arc de j a` i.
rij = cij di i
c ij
f ij
d j
di
d j
j
i
j r ji = f ij
Figure 9.1: Notion de r´eseau re´ siduel On construit le r´eseau r´esiduel en rempla¸cant syst´ematiquement un arc (i, j) qui n’est pas a` sa borne sup´erieure par un arc dans le mˆeme sens avec comme capacit´e r´esiduelle la diff´erence entre la capacit´e de l’arc et le flot actuel. De mˆeme, si le flux sur cet arc n’est pas a` sa borne inf´erieure, on ajoute un arc en sens oppos´e dont la capacit´e r´esiduelle est e´ gale a` la valeur actuelle du flux. eseau r´ esiduel , not e´ G(f ) consiste en les seuls arcs ayant une D´efinition 9.1 Le r´ capacit e´ r´ esiduelle rij positive
Remarquez que ce faisant, on peut etre ˆ amener a` remplacer un arc du r´eseau initial G, soit par un arc de mˆeme sens (cas du flux nul), soit par deux arcs (cas du flux strictement entre ses bornes inf´erieure et sup´erieure) soit par un arc dans le sens oppos´e (cas du flux a` sa borne sup´erieure). Remarquez egalement ´ que la notion de r´eseau re´ siduel est d´ependante du flot actuel, ce que traduit la notation G(f ).
9.3
R´esolution du probl`eme de flot a` cout ˆ minimum
Plusieurs algorithmes existent pour r´esoudre ce probl`eme. Le lecteur int´eress´e en trouvera quelques uns dans l’ouvrage de AHUJA et al [1]. Un de ceux-ci, que nous allons pr´esenter ci-dessous est l’algorithme de plus courts chemins successifs .
Section 9.3. R´ esolution du probl` eme de flot `a coˆ ut minimum
9.3.1
109
Algorithme de plus courts chemins successifs
Le principe de l’algorithme est le suivant. A chaque etape, ´ on dispose d’une solution f qui satisfait les conditions de non n´ egativit´e et de capacit´es des arcs mais pas n´ecessairement les conditions de conservation de la mati`ere aux nœuds. ´ e´ D´efinition 9.2 Un pseudoflot f satisfait les contraintesde capacit esetdepositivit ´ l’exc`es au nœud i, soit e(i) comme suit des flux. On d efinit
e(i) = s(i) +
f ki − d(i) −
k|(k,i )∈A
f ij
j |((i,j )∈A
o`u s(i) note l’injection dans le r´ eseau au nœud i, d(i), la demande satisfaite au nœud i et f ij , le flux dans l’arc (i, j). Donc e(i) est la partie de l’offre au nœud i qui n’est pas encore port´ee plus loin. electionner un nœud s Le principe de l’algorithme est a` chaque e´ tape de s´ avec un exc`es d’offre et un nœud t avec une demande non satisfaite et d’envoyer du flot de s a` t le long d’un plus court chemin du r´ eseau r´ esiduel (voir section 9.2 pour la notion de r´ eseau r´ esiduel).
On va illustrer l’algorithme sur l’exemple de la figure 9.2 o` u la notation des arcs est la suivante :
(cπij , rij ) o`u cπij d´enote le cout ˆ r´eduit de l’arc qui, pour rappel, se calcule comme suit :
cπij = cij − πi + π j et rij note la capacit´e r´esiduelle. Initialement, tous les flots sont mis a` z´ero ainsi que tous les potentiels aux nœuds :
f ij = 0 πi = 0
∀(i, j) ∈ A ∀i ∈ N
Ainsi, on peut calculer facilement les exc` es de demande aux nœuds :
e(i) = s(i) − d(i) Ce qui donne ici e(1) = 4, e(2) = 0, e(3) = 0 et e(4) = 0. On d´efinit les deux ensembles E des nœuds avec exc`es d’offre et D avec exc`es de demande :
E = {i|e(i) > 0} D = {i|e(i) < 0} Au d´epart, on a donc (voir figure 9.2) : E = {1} et D = {4}.
110
Chapitre 9. R´esolution du probl`eme de transport g´ en´eral
π (cij , rij )= (2,4) s1 = 4 1 e(1) = 4 π(1) = 0 (2,2)
e(2) = 0 π(2) = 0 2 (3,3) (1,2)
e(4) = -4 π(4) = 0 4
d4 = 4
(1,5) 3 e(3) = 0 π(3) = 0
Figure 9.2: Algorithme de plus courts chemins successifs. Algorithme 9.1 Algorithme de plus courts chemins successifs. Tant que E = ∅, ´ on s´ electionne k ∈ E et l ∈ D . On d etermine les plus courtes distances d( j) du nœud source k vers tous les nœuds du r´ eseau r´ esiduel G(f ) sur base des coˆ uts π r´ eduits cij . Soit P le plus court chemin du nœud k au nœud l . On met a` jour :
π(i) = π(i) − d(i), ∀i ∈ N ; et on calcule le flux maximum que l’on peut faire passer le long du chemin par
δ = min{e(k), −e(l), rij ∀(i, j) ∈ P } On augmente le flot le long de P de δ . On met a` jour le r´ eseau r´ esiduel G(f), les ensembles E , D et les coˆ uts r´ eduits.
Appliquons ceci a` l’exemple. A l’it´eration 1, on s´electionne k = 1 et l = 4. Ensuite, on d´etermine, par l’algorithme de Dijkstra, les plus courtes distances du nœud 1 au nœud i, soit d(i), en se basant sur les couts ˆ r´eduits. On obtient : d = (0, 2, 2, 3)
et le plus court chemin P = 1 − 3 − 4. On met a` jour les potentiels aux nœuds par la formule π = π − d. On obtient ainsi
π(1) = 0, π(2) = −2, π(3) = −2, π(4) = −3. On calcule le flot maximum que l’on peut faire passer le long du chemin :
δ = min{4, 4, 2, 5} = 2
Section 9.3. R´ esolution du probl` eme de flot `a coˆ ut minimum
111
On peut donc augmenter de 2 unit´ es le flux le long des arcs du chemin
f 13 = 2 et f 34 = 2 On remet a` jour le r´eseau r´esiduel G(f ) (voir figure 9.3) ainsi que les ensembles
e(2) = 0 π(2) = -2 2 π (cij , rij )= (2,3) e(4) = -2 (0,4) s1 = 4 π(4) = -3 (1,2) 1 4 e(1) = 2 d4 = 4 (0,2) π(1) = 0 (0,2) (0,3) 3 e(3) = 0 π(3) = -2 Figure 9.3: Situation au d´ebut de l’it´eration 2.
E et D : E = {1} et D = {4}. On remet a` jour les coˆuts r´eduits : cπ12 cπ13 cπ23 cπ24 cπ34
= = = = =
2 − 0 + ( −2) = 0 2 − 0 + ( −2) = 0 1 − (−2) + (−2) = 1 3 − (−2) + (−3) = 2 1 − (−2) + (−3) = 0
A la seconde it´eration, on s´electionne k = 1 et l = 4. Les plus courtes distances au nœud k source bas´e es sur les couts ˆ r´eduits et sur le r´eseau r´esiduel sont d = (0, 0, 1, 1) tandis que le plus court chemin est P = 1 − 2 − 3 − 4. On met a` jour les potentiels aux nœuds par la formule π = π − d :
π(1) = 0, π(2) = −2, π(3) = −3, π(4) = −4. On calcule le maximum de flux que l’on peut faire passer le long du chemin
δ = min{2, 2, 4, 2, 3} = 2
112
Chapitre 9. R´esolution du probl`eme de transport g´ en´eral
On peut donc augmenter de 2 unit´ es le flux le long des arcs du chemin
f 12 f 13 f 23 f 24 f 34
= = = = =
0+2 =2 2+0 =2 0+2 =2 0+0 =0 2+2 =4
On remet a` jour les ensembles E et D. On peut v´erifier que :
e(1) = e(2) = e(3) = e(4) = 0. Comme E est vide, on a la solution optimale.
9.4
Application au probl`eme d’affectation
Illustrons ceci sur l’exemple suivant. On veut affecter 4 personnes a` 4 postes de travail. Leurs comp´etences sont telles que la premi` ere personne ne peut travailler que sur les postes de travail 1 ou 2, la seconde sur les postes 2 ou 3, la troisi` eme sur les postes 1, 3 ou 4 et la quatri`eme, sur les postes 3 ou 4. De plus la premi`ere personne a une efficacit´e double si on la met au premier poste de travail plutˆ ot qu’au second. Ainsi de suite pour les autres. On d´ etermine ainsi l’efficacit´e de chaque personne a` chaque poste o`u elle est susceptible d’ˆetre affect´ee. On peut repr´esenter le probl`eme par un r´eseau de transport bipartite o` u les sommets origine d´esignent les personnes et les sommets destination, les postes. On trace des arcs entres les personnes et les postes uniquement dans le cas o` u l’affectation de la personne au poste est possible. Ceci est fait pour notre exemple `a la figure 9.4. 1
1
2
2
3
3
4
4
Figure 9.4: Probl`eme d’affectation.
113
Section 9.4. Application au probl`eme d’affectation
Nous le compl´etons le graphique en mettant les temps pour effectuer chacune destˆaches par chacun des candidats ainsi qu’en faisant apparaˆıtre une entr´ ee unique et un puits unique. On obtient la figure 9.5. 0 1
5
3 5
10 0 4
0 2
0
0 0
0 0
0 3
8
0
12
3 15 11
0 4
0 8 6
15 20
12 7
0
3 4 9
0
11 8
Figure 9.5: Probl`eme d’affectation : it´eration 1 Initialement, on met a` z´ero tous les flux ainsi que les fonctions potentielles :
π(i) = 0 ∀i et f ij = 0 ∀(i, j) On calcule l’exc`es aux nœuds ainsi que les ensembles E et D :
e(0) = 4 e(9) = −4 E = {0} D = {9} It´eration 1 : On s´electionne k = 0 et l =9 et on calcule les plus courtes distances a` k :
(0, 0, 0, 0, 0, 3, 8, 12, 11, 3) Le plus court chemin est P = (0, 3, 5, 9). On met a` jour les π :
(0, 0, 0, 0, 0, −3, −8, −12, −11, −3) On d´etermine la maximum de flux qui peut passer sur le chemin
δ = min{4, 4, 1, 1, 1} = 1 On augmente d’une unit´e le flux le long de P :
f 03 = f 35 = f 59 = 1.
114
Chapitre 9. R´esolution du probl`eme de transport g´ en´eral
On met a` jour les coˆuts r´eduits :
c01 c02 c03 c04 c15 c16 c26 c27 c35
= = = = = = = = =
0−0+0 0−0+0 0−0+0 0−0+0 5 − 0 + ( −3) 10 − 0 + ( −8) 8 − 0 + ( −8) 12 − 0 + ( −12) 3 − 0 + ( −3)
=0 =0 =0 =0 =2 =2 =0 =0 =0
c37 c38 c47 c48 c59 c69 c79 c89
= = = = = = = =
15 − 0 + ( −12) 11 − 0 + ( −11) 15 − 0 + ( −12) 20 − 0 + ( −11) 0 − (−3) + (−3) 0 − (−8) + (−3) 0 + 12 − 3 0 + 11 − 3
=3 =0 =3 =9 =0 =5 =9 =8
On remet a` jour le r´eseau re´ siduel. Ceci est fait a` la figure 9.6. 0 1
2
2 5
2 0 4
0
0 0
0 0
0 2 2 3
0
5
0
0 3 0
0 4
0 0 6
3 9
0 7
9
5 4 9
8
2 8
Figure 9.6: Probl`eme d’affectation : it´eration 2 It´eration 2 : On s´electionne k = 0 et l = 9 et on calcule les plus courtes distances a` k :
(0, 0, 0, 2, 0, 2, 0, 0, 2, 5) Le plus court chemin est P = (0, 2, 6, 9). On met a` jour les π :
(0, 0, 0, −2, 0, −5, −8, −12, −13, −8) On d´etermine la maximum de flux qui peut passer sur le chemin
δ = min{3, 3, 1, 1, 1} = 1 On augmente d’une unit´e le flux le long de P : f 02 = f 26 = f 69 = 1.
115
Section 9.4. Application au probl`eme d’affectation
On met a` jour les coˆuts r´eduits :
c01 c02 c03 c04 c15 c16 c26 c27 c35
= = = = = = = = =
0−0+0 0−0+0 0 − 0 + ( −2) 0−0+0 5 − 0 + ( −5) 10 − 0 + ( −8) 8 − 0 + ( −8) 12 − 0 + ( −12) 3 − (−2) + (−5)
=0 =0 = −2 =0 =0 =2 =0 =0 =0
c37 c38 c47 c48 c59 c69 c79 c89
15 − (−2) + (−12) 11 − (−2) + (−13) 15 − 0 + ( −12) 20 − 0 + ( −13) 0 − (−5) + (−8) 0 − (−8) + (−8) 0 − (−12) − 8 0 − (−13) − 8
= = = = = = = =
=5 =0 =3 =7 = −3 =0 =4 =5
On remet a` jour le r´eseau re´ siduel. Ceci est fait a` la figure 9.7. 0 1
0
0 5
2 0 4
0
0 0
2 0
2 2 0 3
0
0
0
0 5 0
0 4
3 2 6
3 7
2 7
4
5 4 9
5
0 8
Figure 9.7: Probl`eme d’affectation : it´eration 3 It´eration 3 : On s´electionne k = 0 et l =9 et on calcule les plus courtes distances a` k :
(0, 0, 2, 0, 0, 0, 2, 2, 0, 5) Le plus court chemin est P = (0, 1, 5, 3, 8, 9). On met a` jour les π :
(0, 0, −2, −2, 0, −5, −10, −14, −13, −13) On d´etermine la maximum de flux qui peut passer sur le chemin
δ = min{2, 2, 1, 1, 1, 1, 1} = 1 On augmente d’une unit´e le flux le long de P :
f 01 = f 15 = f 38 = f 89 = 1 f 35 = 0
116
Chapitre 9. R´esolution du probl`eme de transport g´ en´eral
On met a` jour les coˆuts r´eduits :
c01 c02 c03 c04 c15 c16 c26 c27 c35
= = = = = = = = =
0−0+0 0 − 0 + ( −2) 0 − 0 + ( −2) 0−0+0 5 − 0 + ( −5) 10 − 0 + ( −10) 8 + 2 + (−10) 12 + 2 + (−14) 3 − (−2) + (−5)
c37 c38 c47 c48 c59 c69 c79 c89
=0 = −2 = −2 =0 =0 =0 =0 =0 =0
15 − (−2) + (−14) 11 − (−2) + (−13) 15 − 0 + ( −14) 20 − 0 + ( −13) 0 − (−5) + (−13) 0 − (−10) + (−13) 0 − (−14) − 13 0 − (−13) − 13
= = = = = = = =
=3 =0 =1 =7 = −8 = −3 =1 =0
On remet a` jour le r´eseau re´ siduel. Ceci est fait a` la figure 9.8. 0 1
2
0
5
0 0 4
2 2
2
0 0
2 0
0 3
8 2 6
0 0
1 7
3 0
0 4
3
0
1
1
2 4 9
0
2 8
7
Figure 9.8: Probl`eme d’affectation : it´eration 4 It´eration 4 : On s´electionne k = 0 et l =9 et on calcule les plus courtes distances a` k :
(0, 2, 2, 2, 0, 2, 2, 1, 2, 2) Le plus court chemin est P = (0, 4, 7, 9). On d´etermine la maximum de flux qui peut passer sur le chemin δ = min{1, 1, 1, 1, 1, 1} = 1. On augmente d’une unit´e le flux le long de P :
f 04 = f 47 = f 79 = 1 Comme E est vide, on a trouv´e la solution optimale qui consiste donc a` affecter la premi`ere personne au premier poste, la deuxi`eme au deuxi`eme, la troisi`eme au quatri`eme et la quatri`eme au troisi`eme poste :
x∗11 x∗22 x∗34 x∗43
= = = =
1 1 1 1
117
Section 9.5. Exercices
9.5
Exercices
9.1. Le probl`eme de la pharmacie centrale. La pharmacie centrale du Mali doit r´epondre a` une demande d’un m´edicament rare dont elle d´etient certains stocks d’ˆages divers. Les d´elais de commande et de livraison sont tels que la pharmacie centrale devra compter sur ses propres stocks pour les cinq prochains mois. Le tableau 9.1 fournit l’´etat actuel des stocks. Lot Age (mois)
A 2
B 1
C 4
D 3
E 2
F 4
G 5
H 2
I J K 1 4 5
L 3
Tableau 9.1: Stocks de m´edicaments Le laboratoire qui fabrique ce m´edicament a e´ tabli que son efficacit´e va d´ecroissant avec le nombre de mois ecoul´ ´ es depuis sa production (voir tableau 9.2). Age (mois) Efficacit´e (%)
0 100
1 99
2 97
3 94
4 88
5 83
6 81
7 78
8 76
9 75
Tableau 9.2: Efficacit´e des m´edicaments La pharmacie pr´evoit avoir besoin de 12 lots au cours des 5 prochains mois, selon la distribution indiqu´ee au tableau 9.3. La pharmacie, qui cherche Mois Besoins
1 3
2 2
3 4
4 1
5 2
Tableau 9.3: Besoins de m´edicaments `a maximiser l’efficacit´e totale des lots, s’interroge sur la s´equence selon laquelle elle devra ecouler ´ ses lots. e (a) D´eterminez une affectation qui corresponde a` la r`egle du premier entr´ = premier sorti et calculer son efficacit´ e globale. e (b) D´eterminez une affectation qui corresponde a` la r`egle du dernier entr´ = premier sorti et calculer son efficacit´ e globale.
(c) Formuler le probl`eme de la d´etermination de l’affectation d’efficacit´ e globale maximum comme un probl` eme affectation (ne pas le r´esoudre). 9.2. Entreprise de construction. Une entreprise de construction doit affecter 4 ouvriers a` 4 tˆaches. Le tableau 9.4 indique l’efficacit´ e de la personne si elle
118
Chapitre 9. R´esolution du probl`eme de transport g´ en´eral
est affect´ee a` la tˆache. Une barre indique que la personne n’est pas qualifi´ ee pour la tˆache. Utilisez l’algorithme de plus courts chemins successifs pour identifier une affectation qui maximise l’efficacit´ e g´en´erale.
Ouvrier 1 Ouvrier 2 Ouvrier 3 Ouvrier 4
Tˆache 1 45 50 45
Tˆache 2 55 60 -
Tˆache 3 15 25 -
Tˆache 4 30 75 35
Tableau 9.4: Entreprise de construction
Chapitre 10 La programmation dynamique. La programmation dynamique a pour but de traiter les mod`eles o`u une s´equence optimale de d´ecisions doit etre ˆ prise. Elle est largement utilis´ ee en planification de la production pour d´eterminer les lancements de production en cas de coˆ uts fixes de lancement de production. L’id´e e g´en´erale des proc´edures de r´esolution en programmation dynamique est la suivante. On part d’un sous probl` eme, celui de derni`e re e´ tape, dont la r´e solution est triviale. Ensuite, et en proc´ edant a` rebours, on etend ´ progressivement le probl`eme en incluant les e´ tapes pr´ec´edentes et en calculant la politique optimale `a chaque e´ tape en se basant sur la politique optimale de l’´etape suivante.
10.1
Le probl`eme du voyageur
Un exemple purement fictif, tir´e de Hillier et Lieberman [10], va nous permettre d’introduire la terminologie employ´ee en programmation dynamique. Il s’agit du probl`eme du voyageur devant traverser l’ouest americain ´ il y a plus d’un si`ecle. Son point de d´epart et sa destination sont connus. Il effectue son voyage en quatre e´ tapes. A chaque etape, ´ il a le choix de se diriger vers plusieurs e´ tats. A la figure 10.1, on a repr´esent´e chaque e´ tat par un cercle. Son etat ´ de d´epart est l’´etat 1 et son e´ tat d’arriv´ee est l’´etat 10. Le voyageur souscrit a` chaque e´ tape une police d’assurance dont le cout ˆ refl`ete le degr´e d’ins´ecurit´e du voyage. Ceux-ci sont indiqu´ es au dessus des arcs a` la figure 10.1. Il va donc d´eterminer son itin´eraire de mani`e re a` choisir la route la plus sure ˆ en minimisant la somme des polices d’assurance pour le passage d’´ etat en e´ tat. Notez d’abord que l’approche tr`es simple qui consiste a` choisir a` chaque e´ tape la police la moins ch`ere ne conduit pas a` une solution globalement la moins ch`ere. En effet, en suivant cette strat´egie, on choisirait le chemin 1 → 2 → 6 → 9 → 10 119
120
Chapitre 10. La programmation dynamique. 7
2 6
2
5
1
4
4 8
3 1
4
6 2
3
6
3
4
10
3
4 4
3
4 9
3
1 5
3
7
Figure 10.1: Probl`eme du voyageur avec un coˆut total d’assurance de 13. Cependant en sacrifiant un peu a` la premi`ere e´ tape, on peut gagner aux etapes ´ ult´erieures. En effet, par exemple la route 1 → 4 → 6 → 9 → 10 permet un cout ˆ total de 11. Une autre m´ethode serait d’´evaluer toutes les routes possibles. Cependant sur ce petit exemple, elles sont d´ej`a au nombre de 3 × 3 × 2 = 18 et lorsque le nombre d’´etapes et/ou le nombre d’´etats croˆıt, cela devient vite un travail prohibitif. C’est ici qu’intervient la programmation dynamique qui permet de calculer la solution optimale sans faire de l’´ enum´eration explicite. La programmation dynamique commence avec une petite portion du probl` eme original, trouve la solution optimale pour cette portion du probl` eme. Ensuite on e´ largit progressivement le probl`eme, en d´eterminant la nouvelle solution optimale a` partir de la pr´ec´edente. Pour le probl`e me du voyageur, on consid`ere le probl`e me de fin de voyage, lorsqu’il n’y a plus qu’une etape ´ a` faire. Pour ce probl`eme la solution optimale est evidente ´ : le voyageur doit aller directement a` sa destination, l’´etat 10. A l’it´eration suivante, on e´ largit d’une unit´e le nombre d’´etapes a` effectuer. On peut ensuite d´eduire la strat´egie optimale pour la troisi` eme e´ tape en fonction de la strat´egie optimale pour la derni`ere e´ tape. En programmation dynamique, deux types de variables sont associ´ ees a` chaque ´ etat du syst e` me au d ebut de l’´ etape t. Cette e´ tape. La variable st indique l’´ variable doit contenir toute l’information r´ esultant des choix effectu´es aux e´ tapes ´ ´ strat egique prise a` l’´ etape t. Ainsi, pr´ec´edentes. La variable xt indique la d ecision dans notre exemple, notons st l’´e tat de d´epart de l’´etape t tandis que xt note la destination de l’´etape t. ´ ´ pour les etapes On note par f t (st , xt ) le coˆut total de la meilleure strat egie restantes, si l’on se trouve au d´ebut de l’´etape t dans l’´etat du syst`eme st et que
121
Section 10.1. Le probl`eme du voyageur
l’on prend xt comme d e´ cision strat´egique a` l’´etape t. Notons par x∗t la valeur de xt qui minimise f t (st , xt ) et f t∗ (st ) la valeur minimum correspondante. On a donc que :
f t∗ (st ) = min f t (st , xt ) = f t (st , x∗t ) x t
Ainsi, dans notre exemple, f t (st , xt ) note le coˆut total de la meilleure strat´egie pour les e´ tapes restantes si le voyageur est dans l’´ etat st a` l’´etape t et s´electionne comme e´ tat suivant l’´etat xt . La programmation dynamique va d´eterminer successivement f 4∗ (s4 ), f 3∗ (s3 ), f 2∗ (s2 ), f 1∗ (s1 ) pour chaque etat ´ possible st a` l’´etape t et utiliser par exemple f 2∗ (s2 ) pour calculer f 1∗ (s1 ). Nous allons maintenant appliquer ceci a` l’exemple du voyageur. Pour t = 4, c’est-`a-dire lorsque le voyageur n’a plus qu’une etape ´ a` effectuer pour rejoindre sa destination, sa route est enti` erement d´etermin´ee par son e´ tat courant s4 (ici s4 = 8 ou 9) et sa destination finale x4 = 10. Le tableau 10.1 reprend les coˆuts minimaux de la derni`ere e´ tape ainsi que la d´ecision optimale en fonction de l’etat ´ de d´epart.
s4 x∗4 f 4∗ (s4 ) 8
10
3
9
10
4
Tableau 10.1: Coˆuts minimaux de la derni`ere e´ tape Lorsque le voyageur a encore deux etapes ´ a` effectuer (t = 3), la solution requi`ere un peu plus de calculs. Si, par exemple, le voyageur est dans l’´ etat 5, il peut aller al’´ ` e tape3versl’´etat 8 ou 9 auncoˆ ` ut respectif de c5,8 = 1 ou c5,9 = 4. S’il choisit l’´etat 8, le coˆut additionnel qu’il va encourir pour rejoindre sa destination `a partir de l’´etat 8 est donn´e dans la table 10.1, il s’agit de f 4∗ (8) = 3, de sorte que son coˆut total est de 1 + 3 = 4. Semblablement, s’il choisit l’´etat 9, il devra additionner 4 + 4 = 8. Et donc l’´etat qu’il va choisir comme destination est l’´ etat ∗ 8, donc x3 = 8, qui donne un coˆut minimum pour le chemin qui reste a` parcourir de f 3∗ (5) = 4. On proc`ede de mˆeme pour les autres e´ tats possibles a` l’´etape 3, c’est-`a-dire les e´tats s3 = 6 et s3 = 7 et on obtient les valeurs donn´ ees dans la table 10.2. La solution pour le probl`eme o`u il reste trois etapes ´ (t = 2) est obtenue de mani`ere similaire. Elle est illustr´ee a` la table 10.3. Les e´ tats destination sont cette fois au nombre de trois : il s’agit de x2 = 5, x2 = 6 ou x2 = 7 tandis que les e´ tats de d´epart possibles sont s2 = 2, s2 = 3 ou s2 = 4. Pour les e´ tats de d´epart 2 ou 4, la destination optimale peut etre ˆ au choix 5 ou 6 puisque le coˆ ut total est le mˆeme.
122
Chapitre 10. La programmation dynamique.
s3
x3 = 8
x∗3 f 3∗ (s3 )
x3 = 9
5
1+3=4 4+4 =8
8
4
6
6+3=9 3+4 =7
9
7
7
3+3=6 3+4 =7
8
6
Tableau 10.2: Coˆuts minimaux de la troisi`eme e´ tape
s2
x2 = 5
x2 = 6
x2 = 7
x∗2
f 2∗(s2 )
2
7 + 4 = 11 4 + 7 = 11 6 + 6 = 12 5 ou 6
11
3
3+ 4 = 7
2+ 7 =9
4 + 6 = 10
7
4
4+ 4 = 8
1+ 7 =8
5 + 6 = 11 5 ou 6
5
8
Tableau 10.3: Coˆut minimaux de la deuxi`eme e´ tape Enfin, pour terminer, le probl`eme de premi`ere e´ tape (t = 1), le coˆut minimum de la police optimale est a` nouveau donn´e en fonction de l’´etat destination de l’´etape comme la somme du coˆut de premi`e re e´ tape plus le coˆut minimum des e´ tapes ult´erieures. On obtient les r´esultats de la table 10.4.
s1 1
x1 = 2
x1 = 3
x1 = 4
x∗1
f 1∗ (s1 )
2 + 11 = 13 4 + 7 = 11 3 + 8 = 11 3 ou 4
11
Tableau 10.4: Coˆut minimaux de la premi`ere e´ tape On peut maintenant identifier une politique optimale. Pour t = 1, le voyageur doit donc se diriger initialement vers l’´etat 3 ou 4. Supposons qu’il choisisse x∗1 = 3. Pour t = 2, la strat´egie optimale pour s2 = 3 est x∗2 = 5 (voir tableau 10.3), ce qui dans l’´etape t = 3 conduit a` l’´etat s3 = 5. La strat´egie optimale pour s3 = 5 consiste a` choisir x∗3 = 8 (voir tableau 10.2). On se retrouve en s4 = 8 et on choisit x∗4 = 10 a` l’´etape 4 (voir tableau 10.1). Une des routes optimales est donc 1 → 3 → 5 → 8 → 10 donnant un coˆut total minimum de f 1∗ (1) = 11. On peut r´esumer la solution dans le tableau suivant :
t
1 2 3
4
st 1 3 5
8
x∗t 3 5 8 10
123
Section 10.2. R´ esolution des probl` emes dynamiques
10.2
R´esolution des probl`emes dynamiques
ee en programmation dynamique ainsi Nous allons ici r´esumer la notation utilis´ ethode de r´ esolution. que la m´ ´ Rappelons qu’un probl`eme dynamique est divis´e en etapes indic´ees par t. A chaque e´ tape, l’´e tat initial est caract´eris´e par st eton prend une d´ecision strat´egique not´ee xt .
Les probl`emes dynamiques peuvent etre ˆ repr´esent´es comme a` la figure 10.2. A l’´etape t, on est dans l’´etat st . En d´ecidant la politique xt , on am`ene le syst`eme `a l’´etape t + 1 a` eˆ tre dans l’´etat st+1.
Etat :
Etape
Etape
t
t+1 Decision ´ strat´egique
st
xt
s t+1 f t∗(s t+1)
f (s t, xt )
Figure 10.2: R´esolution des probl`emes dynamiques Du point de vue de l’objectif, la politique optimale a dej` ´ a e´ t´e calcul´ee en t + 1, et donne une valeur optimale pour les etapes ´ ult´erieures de f t∗+1 (st+1 ). La d´ecision xt donne une certaine contribution a` l’objectif qui vient s’ajouter a` la pr´ec´edente pour donner f t (st , xt ) au d´ebut de l’´etape t.
f t (st , xt ) = cs ,x + f t∗+1 (xt ) t
t
Par exemple, dans le cas du voyageur, la contribution de l’´etape cs ,x est le coˆut de l’assurance pour aller de st a` xt . En optimisant par rapport a` xt , on obtient t
t
f t∗ (st ) = min {f t (st , xt )} x t
On note par x∗t la politique optimale pour l’´etape courante de sorte que l’on a que :
f t∗(st ) = f t (st , x∗t ) On proc`e de de mˆe me pour tous les etats ´ possibles st de l’´etape t et l’on ∗ d´etermine ainsi tous les valeurs optimales f t (st ). La proc´edure peut alors eˆtre continu´ee a` rebours.
124
10.3
Chapitre 10. La programmation dynamique.
Un probl`eme d’affectation de ressources rares
Nous illustrons le fait que le champs d’application de la m´ ethode de r´esolution est tr`es large sur un deuxi`eme exemple e´ galement tir´e de Hillier et Lieberman [10] : il s’agit du probl`eme de l’organisation mondiale de la sant´e. On suppose que l’OMS dispose de 5 equipes ´ m´edicales a` affecter a` 3 pays pour mener a` bien une campagne de vaccination. L’OMS doit d´ eterminer combien d’´equipes envoyer dans chacun des trois pays de mani` ere a` maximiser l’efficacit´e g´en´erale de l’affectation. La mesure de l’efficacit´ e est donn´ee en terme d’ann´ees-homme de vie suppl´ementaire. Ces donn´ees sont reprises au tableau 10.5. On suppose que chaque pays doit b´en´eficier d’au moins une equipe. ´ Nombre d’´equipes 1 2 3
Pays 1 45 70 90
Pays 2 20 45 75
Pays 3 50 70 80
Tableau 10.5: Milliers d’ann´ees-homme suppl´ementaires Bien qu’il n’y ait pas de succession temporelle, on peut imaginer que les trois e´ tapes d’un processus dynamique consistent en l’affectation successive aux trois pays puisque lorsqu’une equipe ´ est affect´ee a` un pays, elle n’est plus disponible pour les autres pays. On a donc identifi´ e les e´ tapes . Comment identifier les e´ tats ? Autrement dit, quelle est l’information ne´ cessaire a` une e´ tape pour pouvoir d´eterminer la politique optimale ? Il s’agit equipes m´ edicales qui restent disponibles. Notons st le simplement du nombre d’´ nombre d’´equipes encore disponibles au d´ ebut de l’´etape t. Notons pt (xt ) la mesure de l’efficacit´e de l’allocation de xt e´ quipes m´edicales au pays t. Si, comme pr´ec´edemment, on note par f t (st , xt ) la contribution a` l’objectif des e´ tapes ult´erieures a` t et de l’´etape t si l’on est dans l’´etat st et que l’on prend la d´ecision xt , on peut e´ crire :
f t (st , xt ) = pt (xt ) + f t∗+1 (st+1) avec pt (xt ) le b´en´efice pour le pays t de recevoir xt e´ quipes et st+1 le nombre d’´equipes encore disponibles au d´ ebut de l’´etape t + 1 . Celui-ci est li´e a` st par la relation de r´ecurrence suivante :
st+1 = st − xt . La relation de r´ecurrence liant f n∗ et f n∗+1 s’´ecrit quant a` elle comme suit : ∗
f t (st ) = max f t (st , xt ) = max pt (xt ) + x x t
t
f t∗+1 (st
− xt ) .
Section 10.3. Un probl` eme d’affectation de ressources rares
125
A l’´etape t = 3, les e´ tats possibles vont de 1 (il faut au moins une equipe ´ pour le pays 3) jusqu’`a 3 (on a au moins affect´e une e´ quipe au pays 1 et une equipe ´ au pays 2). A la derni`ere e´ tape, on a int´erˆet a` affecter toutes les e´ quipes encore disponibles (voir tableau 10.6).
s3 x∗3 f 3∗(s3 ) 1 1 50 2 2 70 3 3 80 Tableau 10.6: Calculs de l’´etape 3 A l’´etape 2, les e´ tats possibles vont de 2 (il faut au moins une equipe ´ pour le pays 2 et une equipe ´ pour le pays 3) a` 4 (on a au moins attribu´e une e´ quipe au pays 1). A la deuxi`e me e´ tape, au gain de l’´etape, il faut ajouter le gain r´esultant pour l’´etape 3 avec s3 = s2 − x2 . Le d´etail des calculs est donn´ e au tableau 10.7.
s2 x2 = 1 x2 = 2 x2 = 3 x∗2 f 2∗ (s2 ) 2 20 + 50 = 70 1 − − 70 3 20 + 70 = 90 45 + 50 = 95 2 − 95 4 20 + 80 = 100 45 + 70 = 115 = 75 + 50 = 125 3 125 Tableau 10.7: Calculs de l’´etape 2 Demˆeme a` l’´e tape 1, au gain de l’´ etape, il faut ajouter ceux des etapes ´ suivantes avec s2 = s1 − x1 . Le d´etail des calculs est donn´e au tableau 10.8.
s1 x1 = 1 x1 = 2 x1 = 3 x∗1 f 1∗ (s1 ) 5 45 + 125 = 170 70 + 95 = 165 90 + 70 = 160 1 170 Tableau 10.8: Calculs de l’´etape 1 La solution optimale est donc x∗1 = 1 qui donne s2 = 5 − 1 = 4 pour la deuxi`e me e´ tape ou encore x∗2 = 3, ce qui donne s3 = 4 − 3 = 1 pour l’´etape 3 de sorte que x∗3 = 1, ce qui donne un gain de 170 000 hommes-ann´ ees. On peut r´esumer la solution dans le tableau suivant :
t 1 2 3 st 5 4 1 x∗t 1 3 1
126
Chapitre 10. La programmation dynamique.
10.4
Application a` la planification de la production.
Nous allons maintenant voir comment la programmation dynamique permet de r´esoudre des probl`emes de planification de la production en pr´esence de coˆuts de production non convexes. Illustrons ceci sur un exemple. La demande pr´evisionnelle de fin de mois d’un composant est donn´ ee au tableau 10.9. La fabrication de ce composant n´ ecessite un certain nombre de r´eglages ind´ependants du nombre d’unit´ es fabriqu´ees. Le coˆut fixe de lancement de la production est de 150. Le coˆ ut direct d´epend de la main d’œuvre disponible. Le coˆ ut est de 200 en heures normales, de 250 en heures suppl´ ementaires. Le tableau 10.9 donne la production maximale en heures normales et heures suppl´ ementaires. On P´eriode t
1
2
3
4
5
Capacit´e de production a` 200
2
2
3
3
3
Capacit´e de production a` 250
3
3
3
3
3
Demande pr´evisionnelle
2
1
4
2
4
Tableau 10.9: Demande pr´evisionnelle et capacit´e de production une capacit´e de stockage limit´ee a` 2 unit´e s. Le coˆut de stockage est de 10 par unit´e stock´ee par mois. Le d´elai de fabrication est negligeable. ´ On s’interdit toute rupture de stock. Autrement dit, il faut satisfaire la demande de fin de mois. Nous allons tout d’abord formuler le probl`eme en un probl`eme de proetat de la p´eriode grammation dynamique. Pour cela, d´efinissons la variable d’´ t suivante : st = stock au de´but de la p´eriode t. ´ D´efinissons aussi la variable de d ecision de la p´eriode t suivante :
xt = production a` la p´eriode t. On d´efinit la fonction
f t (st , xt ) comme e´ tant le cout ˆ de la meilleure planification pour les p´ eriodes restantes si on est dans l’´etat st au d´e but de la p´eriode t et que l’on d´ecide de produire xt a` la p´eriode t. Ce coˆut est la somme du coˆut de production de l’´etape t, d’un coˆut de possession du stock pendant le mois t ainsi que du cout ˆ des e´ tapes ult´erieures :
f t (st , xt ) = cpt (xt ) + cs st + f t∗+1 (st + xt − dt )
127
Section 10.4. Application ` a la planification de la production.
o`u dt note la demande pr´evisionnelle qui est donn´ee au tableau 10.9. La fonction cpt (xt ) d´enote le coˆut de production a` l’´etape t. Ce dernier est la somme d’un coˆut fixe de lancement de 150, a` payer pour autant qu’il y ait production, et d’un coˆ ut direct de main d’œuvre qui est de 200 par unit´e produite en heures normales, de 250 par unit´e produite en heures suppl´ementaires. Remarquez qu’en pr´esence de coˆut de lancement le coˆut de production n’est pas convexe. Ceci peut eˆ tre v´erifi´e `a la figure 10.3 qui illustre la fonction de coˆ ut pour t = 5 :
cp5 (x5 ) =
0
si x5 = 0;
150 + 200x5
si x5 = 1, 2 ou 3;
150 + 600 + 250(x5 − 3) si x5 = 4, 5 ou 6.
cp5(x5 ) 1500
1250 250 1000
750 550
200
350 350
1
2
3
4
5
6
x5
Figure 10.3: Coˆut non convexe. La capacit´e de stockage est limit´ee a` 2 unit´es. Ce qui limitera a` trois les e´ tats du monde possibles a` chaque e´ tape. Nous allons maintenant r´esoudre le probl`eme par la programmation dynamique. A l’´etape 5, on a d5 = 4. Ce qui explique qu’il faut au moins produire 4 unit´es si s5 = 0 mais pas plus de 6 sinon le stock final sera sup´ erieur a` deux
128
Chapitre 10. La programmation dynamique.
unit´es. De plus la capacit´ e de production est limit´ee a` six unit´es. On obtient les coˆuts suivants des diff´ erentes strat´egies :
s5 x5 = 2 x5 = 3 x5 = 4 x5 = 5 x5 = 6 x∗5 f 5∗ (s5) 0
−
−
1.000
1.250
1.500
4
1.000
1
−
760
1.010
1.260
−
3
760
2
570
770
1.020
−
−
2
570
Par exemple le coˆut de 1.000 si s5 = 0 et x5 = 4 r´esulte du seul coˆ ut de production qui se calcule comme suit :
150 + 3 × 200 + 250 = 1000. Le coˆut de 760 si s5 = 1 et x5 = 3 r´esulte de la somme du coˆ ut de stockage d’une unit´e pendant un mois et du coˆut de production des trois unit´es :
1 × 10 + 150 + 3 × 200 = 760. A l’´etape 4, on a d4 = 2. On ajoute au coˆut de production de l’´etape, le coˆut des e´ tapes ult´erieures. Ainsi, dans le cas o`u s4 = 0 et x4 = 2, le coˆut correspond `a l’application de la formule :
f 4 (s4, x4 ) = cp4 (x4) + f 5∗ (s4 + x4 − d4 ) = (150 + 400) + 1.000 = 1.550 On obtient le tableau de coˆuts suivant :
s4 x4 = 0 x4 = 1 x4 = 2 x4 = 3 x4 = 4 x∗4 f 4∗ (s4) 0
−
−
1.550
1.510
1.570
3
1.510
1
−
1.360
1.320
1.330
−
2
1.320
2
1.020
1.130
1.140
−
−
0
1.020
A l’´etape 3, on a d3 = 4. On d´etermine semblablement le tableau de coˆ uts suivant :
s3 x3 = 2 x3 = 3 x3 = 4 x3 = 5 x3 = 6 x∗3 f 3∗ (s3) 0
−
−
2.510
2.570
2.520
4
2.510
1
−
2.270
2.330
2.280
−
3
2.270
2
2.080
2.090
2.040
−
−
4
2.040
Section 10.4. Application ` a la planification de la production.
129
A l’´etape 2, on a d2 = 1. On a une capacit´e de production a` 200 limit´ee a` deux unit´es. On obtient le tableau de coˆ uts suivant :
s2 x2 = 0 x2 = 1 x2 = 2 x2 = 3 x∗2 f 2∗(s2 ) 0
−
2.860
2.820
2.840
2
2.820
1
2.520
2.630
2.600
−
0
2.520
2
2.290
2.410
−
−
0
2.290
A l’´etape 1, la demande est de 2 et on a le tableau de coˆuts suivant :
s1 x1 = 2 x1 = 3 x1 = 4 x∗1 f 1∗ (s1 ) 0
3.370
3.320
3.340
3
3.320
On peut ensuite d´eterminer la politique optimale en partant de s1 = 0. En premi`ere e´ tape, la strat´egie optimale est de produire 3. La demande etant ´ de 2, on se retrouve avec un stock initial s2 = 1. La strat´egie optimale pour la deuxi`eme p´eriode est dans ce cas de ne produire rien du tout. On se retrouve avec un stock initial s3 = 0. La strat´egie optimale est de produire x3 = 4, c’est-`a-dire la demande de la p´eriode. On se retrouve avec un stock initial s4 = 0. La strat´egie optimale est dans ce cas de produire x4 = 3, soit une unit´e de plus que la demande. On se retrouve avec un stock initial s5 = 1 et on produit x5 = 3. La planification optimale est donc la suivante :
t
1 2 3 4 5
st 0 1 0 0 1 x∗t 3 0 4 3 3 dt 2 1 4 2 4 Remarquez qu’en p´eriode 2, on a pr´ef´er´e ne pas produire la seule unit´e demand´ee car une unit´e en premi`ere e´ tape mˆeme en heures suppl´ementaires et avec un coˆut de stockage revient mois cher (260) qu’une seule unit´ e en heure normale `a la p´eriode 2 (350). Remarquez aussi qu’en periode ´ 4, on produit une unit´e de plus que la demande pour eviter ´ de produire a` 250 en p´eriode 5 la quatri`eme unit´e demand´ee cette p´eriode. Il y a, en effet, une unit´e disponible a` 200 (+ 10 de coˆut de stockage) au mois pr´ec´edent.
130
10.5
Chapitre 10. La programmation dynamique.
Exercices
10.1. Ventes de livres. Un e´ diteur de livres educatifs ´ doit d´ecider du nombre de vendeurs qu’il envoie dans chacune des r´ egions du pays pour maximiser le nombre de ventes. Le tableau qui suit donne l’augmentation du nombre de ventes dans chaque r´egion en fonction du nombre de vendeurs envoy´ es. Nombre de vendeurs R´egion 1 1 4 2 6 3 9 4 11
R´egion 2 3 6 8 10
R´egion 3 5 7 12 12
Il y a 6 vendeurs mais il est d´ecid´e d’en envoyer au mois un dans chaque r´egion. Formuler et r´esoudre par la programmation dynamique. 10.2. Plan de production hebdomadaire optimal. Une soci´et´e de construction automobile doit planifier la production du moteur M200. Au d´ ebut de la douzi`eme semaine, les commandes a` honorer pour les p´eriodes 13 a` 16, sont les suivantes : 13 14 15 16 P´eriode Besoins totaux 4 5 2 3 LafabricationdumoteurM200demandeunesemaineetlecoˆut de lancement dans l’atelier moteurs est estim´ e a` 500 F. Le coˆut variable unitaire est de 300 F pour les trois premi`eres unit´es produites au cours d’une semaine et de 400 F pour les unit´es suivantes. La capacit´e de stockage est limit´ee a` deux moteurs et le coˆut unitaire hebdomadaire de stockage est de 50 F. (a) Formuler le probl`eme de planification comme un probl` eme dynamique. (b) Sachant qu’au d´ebut de semaine 13, il ne reste aucun M200 en stock, d´eterminer le plan de production optimal du moteur M200 pour les semaines 12 a` 15. (c) Donner le plan optimal de production et de stockage.
Chapitre 11 Les mod`eles non lin´eaires 11.1
Introduction
On parle de mod`ele d’optimisation non lin´eaire lorsque l’on doit maximiser ou minimiser une fonction sous contraintes et que la fonction objectif, ou au moins une contrainte est non lin´ eaire. Dans cette partie du cours, nous allons donc nous
attacher a` la r´esolution du probl`eme suivant :
max f ( x) s.c.q.
gi (x) ≤ 0, i = 1, . . . m hk (x) = 0, k = 1, . . . p
o`u f (x), gi (x), k = 1, . . . m, et hk (x), i = 1, . . . p sont des fonctions continˆ ument n diff´erenciables d´efinies sur R `a valeurs dans R. Il s’agit donc de la g´en´eralisation au cas non lin´eaire du probl`eme classique de la programmation lin´eaire :
max cx s.c.q.
Ax ≤ b x ≥ 0
Comme exemple de fonction objectif non lin´ eaire, on peut citer le cas d’un rendement croissant d’´echelle, c’est-`a-dire une contribution unitaire au profit s’accroissant avec la quantit´ e produite. Par exemple, si la marge unitaire est de la forme m1 (x1 ) = 550 + 2x1 , cela donnera un terme non lin´eaire dans l’objectif :
maxz = m1 (x1 )x1 = 550x1 + 2x21 . Comme exemple de contrainte non lin´eaire, on peut citer la relation entre le flot de gaz entre les nœuds i et j , not´e f ij , et les pressions en ces points, pi et p j :
f ij2 = C ij2 p2i − p j2 131
132
11.2
Chapitre 11. Les mod`eles non lin´eaires
Difficult´e de r´esolution des probl`emes non lin´eaires
Si certains probl`emes particuliers d’optimisation non lin´ eaire peuvent se ramener a` la r´esolution d’une suite de probl` emes lin´eaires (comme les probl`emes s´eparables que nous traiteront a` la section 12.2), en g´en´eral, il faudra prendre en compte explicitement le caract`ere non lin´eaire des probl`emes pour les r´esoudre. Beaucoup d’algorithmes de programmation non lin´ eaire exploitent directement les conditions d’optimalit´e, c’est-`a-dire les conditions v´ erifi´ees a` la solution optimale du probl`eme. Nous allons donc d’abord nous attachera` e´ tablir ces conditions. Ces conditions sont les extensions a` Rn des conditions bien connues d’annulation de la d´eriv´ee premi`ere pour une fonction d’une variable dans R. Avant de passer a` l’´enonc´e de ces conditions, soulignons quelques diff´ erences fondamentales avec la programmation lin´ eaire. En programmation lin´eaire, la solution optimale est toujours obtenue sur la fronti` ere du domaine r´ealisable et, mˆeme si toute une arˆete du polygone peut etre ˆ optimale, on peut toujours choisir un sommet sur celle-ci. Autrement dit, la solution optimale est toujours en un sommet de la r´egion r´ealisable (cfr figure 11.1).
x2
T
c x
P ∗
x1 Figure 11.1: Probl`eme lin´eaire. D`es que l’objectif ou les contraintes deviennent non lin´ eaires, cette propri´et´e n’est plus v´erifi´e e en g´en´e ral. Pire encore, on peut avoir un optimum local diff´erent de l’optimum global . Ce probl`eme ne se produit cependant pas pour les probl`emes convexes. Nous verrons a` la section 11.4 la notion de probl`emes convexes. Nous verrons ensuite a` la section 11.5 les tr`es importantes conditions n´ecessaires d’optimalit´e : les conditions de Kuhn et Tucker. Nous verrons au chapitre suivant les algorithmes de r´ esolution.
Section 11.3. Diff´ erence avec la programmation lin´eaire
11.3
133
Diff´erence avec la programmation lin´eaire
Les mod`e les non lin´eaires sont beaucoup plus difficiles a` r´esoudre eng´en´e ral que les mod`e les lin´e aires. Nous allons souligner par quelques exemples les diff´ erences avec la programmation lin´eaire. Tout d’abord, contrairement a` la programmation lin´ eaireo`u la solution optimale est toujours situ´ee en un sommet de la r´egion r´ealisable, on peut avoir une solution optimale non extrˆeme. Ceci est illustr´e par l’exemple suivant :
maxz = 3 x1 + 5 x2 s.c.q.
≤
x1
4
9x21 + 5x22 ≤ 216 x1
,
x2
≥
0
Pour pouvoir en donner une repr´esentation graphique, remarquons que
x21 x22 + ≤1 (4, 9)2 (6, 5)2 est l’´equation d’une surface bord´ee par une ellipse centr´ee en l’origine. On peut voir a` la figure 11.2 que la seule solution optimale n’est pas situ´e en un point extrˆeme de la r´egion r´ealisable.
x1 = 4
x2
(2, 6) 6
3x1 + 5x2 = 36
4 2 2
4
x1
Figure 11.2: Solution non extrˆeme Mais la solution ne doit mˆeme pas eˆ tre situ´e e sur la fronti`eredelar´egion. Ainsi, on peut avoir une solution optimale int´erieure. Ceci est illustr´e par l’exemple
134
Chapitre 11. Les mod`eles non lin´eaires
suivant :
minz = (x1 − 3)2 + (x2 − 3)2
s.c.q.
≤
x1
4
2x2 ≤ 12 3x1 + 2x2 ≤ 18 x1
,
x2
≥
0
dont la repr´esentation graphique est donn´ ee a` la figure 11.3 o`u l’on peut voir que la solution optimale est strictement int´ erieure. En effet, les courbes d’isovaleurs de la fonction objectif forment des cercles concentriques et on a int´ erˆet a` se situer au centre de ces cercles, c’est-`a-dire au point (3,3), strictement int´erieur a` la r´egion.
x2
8
z = 16 z =9 z =4 z =1 z =0 (3, 3)
6 4 2 0
2
4
6
x1
Figure 11.3: Solution int´erieure Mais la principale difficult´e de la programmation non lin´ eaire est que l’on peut avoir des optimaux locaux qui ne sont pas globaux . Illustrons ceci sur l’exemple suivant :
maxz = 3x1 + 5x2 s.c.q.
≤
x1
4
8x1 − x21 + 14x2 − x22 ≤ 49 x1
,
x2
≥
0
Pour pouvoir tracer sa repr´esentation graphique, remarquons que
(x1 − 4)2 + (x2 − 7)2 ≥ 16
Section 11.3. Diff´ erence avec la programmation lin´eaire
135
correspond au plan moins un cercle de rayon 4 centr´e en (4,7). La repr´esentation graphique est donn´ee a` la figure 11.4 o`u l’on peut voir que (4,3) minimum local non global !
x2 (0 , 7) 6
z = 3 x 1 + 5x 2 = 35
4
(4 , 3)
z = 3 x 1 + 5x 2 = 27
2 2
4
x1
Figure 11.4: Minimum local C’est la une des plus grandes difficult´es des probl`emes non convexes : on peut avoir des optimaux locaux qui ne sont pas globaux. Remarquez que le probl`eme peut e´ galement se produire si la fonction objectif que l’on minimise est non convexe. Prenons l’exemple illustr´ e a` la figure 11.5 de la minimisation de la 2 fonction concave y = −x sur l’intervalle [−1, 2]. Au point x = −1, on a un minimum qui n’est pas global. y -1
2
x
-1
-4
Figure 11.5: Minimum local non global La d´etermination de tous les optimaux locaux est un probl` eme tr`e s d´elicat en g´en´eral. En effet, lorsqu’un optimum local est atteint, dans quelle direction faut-il continuer la recherche ? Cependant, il existe une classe de probl` emes pour lesquels ce probl`eme ne se produit pas dans le sens que tous les optimums locaux sont des optimum globaux. Il s’agit des probl`emes convexes (voir section suivante). Remarquez que les logiciels commerciaux fournissent toujoursun minimum local.
136
Chapitre 11. Les mod`eles non lin´eaires
11.4
Les probl`emes convexes
D´efinition 11.1 L’ensemble S ⊂ Rn est convexe, si et seulement si quels que soient les deux points P et Q pris dans l’ensemble S , tout le segment [P, Q] est contenu dans l’ensemble S .
Ce cas est illustr´e a` la figure 11.6. Ces ensembles n’ont pas de partie rentrante a`
P
Q P
Q
Figure 11.6: Ensembles convexes. la diff´erence des ensembles non convexes illustr´es a` la figure 11.7.
P
Q
Q
P Figure 11.7: Ensembles non convexes.
D´efinition 11.2 Une fonction f est convexe si l’ensemble des points situ´ eaudessus ´ de son graphe, encore appel´ e epigraphe :
S = {(x, y) ∈ Rn × R|y ≥ f (x)} . est un ensemble convexe.
Ceci est illustr´e a` la figure 11.8 pour l’exemple de la fonctionx2 o`u l’on voit que l’´epigraphe est bien un ensemble convexe. La d´ efinition de fonction convexe se ram`ene donc a` celle d’ensemble convexe. Remarquez egalement ´ que la d´efinition
137
Section 11.4. Les probl`emes convexes y f ( x)
x
Figure 11.8: Exemple de fonction convexe classique pour les fonctions de R dans R, a` savoir que la corde est toujours situ´ee au dessus du graphe se d´eduit directement du fait que l’´epigraphe constitue un ensemble convexe. D´efinition 11.3 Une fonction f est concave si la fonction −f est convexe.
Un exemple de fonction concave est illustr´ee a` la figure 11.9. y x
f ( x)
Figure 11.9: Exemple de fonction concave Maintenant que nous avons d´efini les notions d’ensemble convexe et de fonction convexe, nous pouvons definir ´ la notion de probl`eme convexe : D´efinition 11.4 Un programme math´ ematique est dit convexe s’il s’agit de la egion r´ ealisable convexe, soit de minimisation d’une fonction convexe sur une r´ la maximisation d’une fonction concave sur une r´ egion r´ ealisable convexe.
Comme exemple de probl`emes convexes, on peut donc citer les probl`emes avec d es´ ´ economie d’´ echelle puisqu’il s’agit de la maximisation d’une fonction concave. Et comme exemple de probl`emes non convexes, on peut citer les probl`e mes avec economie ´ d’´ echelle puisqu’il s’agit de probl` emes de maximisation d’une fonction convexe.
138
Chapitre 11. Les mod`eles non lin´eaires
11.5
Conditions de Kuhn et Tucker
Nous consid´erons le probl`eme de minimisation sous contraintes suivant :
min
f ( x)
s.c.q.
hi (x) = 0, i = 1, 2, . . . m gk (x) ≤ 0, k = 1, 2, . . . p
(11.1)
o`u f (x), hi (x), i = 1, 2, . . . m et gk (x), k = 1, 2, . . . p sont des fonctions de Rn dans R. Une notion importante en programmation non lin´ eaire est celle de contraintes actives : egalit e´ gk (x) ≤ 0 est active en x si gk (x) = 0. D´efinition 11.5 Une in´
Il d´ecoule imm´ediatement de cette d´efinition que hi (x) = 0 sont actives pour tout i. Par exemple, a` la figure 11.10, seule g2 est active en x∗ . Le concept de con-
x∗ g2 ( x) = 0 g1 ( x) = 0
r´egion r´ealisable
g3 ( x) = 0 Figure 11.10: Concept de contraintes actives trainte active est important car, tout comme en programmation lin´ eaire, seules les contraintes actives a` l’optimum importent pour le probl`eme. On pourrait r´esoudre le probl`eme sans les autres et obtenir la mˆeme solution : ce sont uniquement les contraintes actives qui determinent ´ la solution optimale. Pour e´ crire les conditions d’optimalit´ e, on a besoin qu’une condition de r´egularit´e soit satisfaite.
139
Section 11.5. Conditions de Kuhn et Tucker
efinition de point r´ egulier des contraintes. Soit x∗ satisfaisant D´efinition 11.6 D´ les contraintes :
h(x∗ ) = 0, g(x∗ ) ≤ 0
(11.2)
egulier pour les contraintes (11.2) si les gradients des contraintes Alors x∗ est dit r´ ´ eairement ind ependants. actives sont lin´ ematiques concernant la notion Cetted´efinition n´ecessite quelques rappels math´ de gradient et la notion d’ind´ependance de vecteurs. ´ D´efinition 11.7 Notion de gradient. Soit f une fonction a` valeurs r´ eelles d efinie n sur R continˆument diff´erenciable en x. C’est-`a-dire une fonction continue dont ´ ees partielles premi`eres sont egalement ´ ´ le gradient les d eriv´ continues. On d efinit ´ ´ ees partielles : comme etant le vecteur ligne constitu´ e des d eriv´
∂f (x) ∂f (x) ∂f (x) , ,... . ∇f (x) = ∂x 1 ∂x 2 ∂x n ´ eriv´ ee partielle par rapport a` la variable x j , not ee La d´
∂f (x) , est obtenue en ∂x j
´ ´ d erivant que les autres variables que x j sont des constantes. f en consid erant
Illustrons cette notion par un exemple. Consid´ erons la fonction suivante :
f (x1 , x2 ) = 2x21 + 2x1 x2 + x22 − 10x1 − 10x2 Les d´eriv´ees partielles par rapport a` chacune des variables se calculent en consid´erant les autres variables comme des constantes :
∂f/∂x1 = 4x1 + 2x2 − 10 ∂f/∂x2 = 2x1 + 2x2 − 10 De sorte que le gradient peut s’´ecrire ici comme suit :
∇f (x) = [4x1 + 2x2 − 10, 2x1 + 2x2 − 10] ependance de vecteurs. On dit que m vecteurs sont D´efinition 11.8 Notion d’ind´ ´ lin´ eairement ind ependants si aucun ne peut ˆ etre exprim´ e comme une combinaison lin´ eaire des autres.
Ainsi, les vecteurs (1,0) et (0,1) de R2 sont lin´eairement ind´ependants car il est impossible d’´ecrire l’un comme un multiple de l’autre. Par contre les vecteurs
140
Chapitre 11. Les mod`eles non lin´eaires
(2,3), (1,0) et (0,1) ne sont pas lin´eairement ind´ependants car on peut ecrire ´ (2,3) comme une combinaison lin´eaire des deux autres. En effet :
(2, 3) = 2 × (1, 0) + 3 × (0, 1). On peut alors e´ crire les tr`es importantes conditions n´ecessaires suivantes : Th´eor`eme 11.1 Conditions n´ecessaires de Kuhn-Tucker. Soit x∗ un minimum local pour le probl`eme
min
f ( x) h(x) = 0, s.c.q. g(x) ≤ 0
(11.3)
et supposons x∗ r´ egulier pour les contraintes. Alors il existe des multiplicateurs m p λ ∈ R et µ ∈ R tels que p
m
∗
∇f (x ) +
∗
λi ∇hi (x ) +
i=1
µk ∇gk (x∗ ) = 0
(11.4)
k=1
µk gk (x∗ ) = 0, ∀k = 1, . . . p (11.5) µk ≥ 0, ∀k = 1, . . . p
Les conditions (11.5) sont les conditions de compl´ ementarit´e disant que si une contrainte n’est pas active, son multiplicateur µk doit eˆ tre nul. Pour bien comprendre la signification pratique des conditions (11.4), nous allons les r´ecrire au moyen de la fonction de Lagrange . La fonction de Lagrange est obtenue en multipliant le membre de gauche de chaque contrainte d’´ egalit´e (hi (x) = 0) par un multiplicateur λi , le membre de gauche de chaque contrainte d’in´ egalit´e (gk (x) ≤ 0) par son multiplicateur µk et en additionnant le tout a` la fonction objectif :
L(x,λ,µ) = f (x) +
m
p
λi hi (x) +
i=1
µk gk (x)
k=1
Remarquez que ce faisant, on passe d’un probl` eme d’optimisation sous contraintes `a un probl`eme d’optimisation sans contrainte. Les conditions d’optimalit´e pour une fonction d´efinie sur Rn sont simplement l’annulation de son gradient. On remarque que pr´ecis´ement les conditions de Kuhn et Tucker (11.4) ne sont rien d’autre que l’annulation du gradient par rapport a` x du gradient du Lagrangien :
∇x L(x∗ , λ∗ , µ∗ ) = 0. Illustrons ceci sur l’exemple suivant :
min s.c.q.
2x21 + 2x1 x2 + x22 − 10x1 − 10x2 x21 + x22 ≤ 5 3x1 + x2 ≤ 6
141
Section 11.5. Conditions de Kuhn et Tucker
Le lagrangien s’´ecrit de la mani`ere suivante :
L(x,λ,µ) = 2x21 + 2x1x2 + x22 − 10x1 − 10x2 +µ1 (x21 + x22 − 5) +µ2 (3x1 + x2 − 6) Les conditions de Kuhn et Tucker s’´ecrivent ici simplement :
∂L/∂x1 = 4x1 + 2x2 − 10 + 2µ1 x1 + 3µ2 ∂L/∂x2 = 2x1 + 2x2 − 10 + 2µ1 x2 + µ2 µ1 g1 = µ1 (x21 + x22 − 5) µ2g2 = µ2 (3x1 + x2 − 6) µ1 µ2
= = = = ≥ ≥
0 0 0 0 0 0
Parfois, la r´esolution de ces conditions permet de d´eterminer le point optimum. Ainsi, supposons la premi`ere contrainte active, et la seconde inactive (µ2 = 0). Les conditions se r´eduisent a` :
4x1 + 2x2 − 10 + 2µ1 x1 = 0 2x1 + 2x2 − 10 + 2µ1 x2 = 0 x21 + x22 = 5 dont la solution est donn´ee par :
x∗1 x∗2 µ1 µ2
= = = =
1, 2, 1, 0.
Comme, de plus, µ1 ≥ 0, cette solution satisfait les conditions n´ ecessaires de Kuhn et Tucker. Enfin, on peut montrer la proposition suivante. Proposition 11.1 Si le probl`eme est un probl`eme convexe, les conditions n´ecessaires sont aussi suffisantes pour montrer que l’on est a` l’optimum.
Nous pr´esenterons au chapitre suivant les algorithmes de r´ esolution.
142
11.6
Chapitre 11. Les mod`eles non lin´eaires
Exercices
11.1. Conditionsde Kuhn et Tucker. Onconsid`ere la maximisation de la fonction 14x − x2 + 6y − y 2 + 7 sous les contraintes x + y ≤ 2 et x + 2y ≤ 3. (a) Ecrire les conditions n´ecessaires d’optimalit´e de Kuhn et Tucker. (b) D´eterminer graphiquement la solution optimale. (c) V´erifiez que cette solution satisfait les conditions de Kuhn et Tucker. 11.2. Minimisation des risques. Un e´ pargnant dispose de 100 francs a` investir en bourse. Son portefeuille d’actions peut comporter trois titres dont on veut d´eterminer les parts optimales x, y et z . Les rendements rX , rY et rZ de ces trois titres sont des variables al´ eatoires. On suppose connues leurs moyennes respectives : 30%, 20% et 8 %. Le risque V (x,y,z) est mesur´e a` partir de la matrice de variance-covariance des rendements des trois titres :
V (x,y,z) = (x,y,z)
3 1 −0.5 1 2 −0.4 0.5 −0.4 1
−
x y z
On veut minimiser le risque V (x,y,z) tout en s’imposant un rendement esp´er´e du portefeuille au moins egal ´ a` 12 %. (a) Ecrire le programme quadratique correspondant. (b) Ecrire les conditions de Kuhn et Tucker pour ce probl` eme et v´erifier si la solution (x; y; z) = (20, 091; 16, 712; 32, 877) les satisfait.
Chapitre 12 R´esolution des probl`emes non lin´eaires 12.1
Introduction
Au chapitre 11, nous avons introduit la notion demod`e le non lin´eaire. En g´en´eral, il s’agit de r´esoudre le probl`eme suivant :
max f ( x) s.c.q.
gi (x) ≤ 0, i = 1, . . . m hk (x) = 0, k = 1, . . . p
o`u au moins une des fonctions est non lin´ eaire. Nous avons e´ galement vu les conditions de Kuhn et Tucker qui sont n´ecessairement v´erifi´e es a` l’optimum d’un tel probl`eme. Nous allons maintenant voir deux cas particuliers de probl`e mes non lin´eaires qui peuvent eˆ tre r´esolus par recours it´eratifs a` la programmation lin´eaire. Il s’agit respectivement :
• Des probl`emes s´eparables qui ne comportent que des fonctions non lin´eaires d’une seule variable. Comme nous allons le voir a` la section 12.2, ces probl`emes peuvent eˆ tre r´esolus en consid´erant une suite d’approximation lin´eaires par morceaux des fonctions non lin´ eaires d’une seule variable.
• Des probl`emes a` contraintes lin´eaires. Comme nous allons le voir a` la section 12.3, ces probl`emes peuvent eˆ tre r´esolus par la m´ethode de FranckWolfe qui consid`erent une suite d’approximations lin´ eaires de la fonction objectif non lin´eaire.
143
144
12.2
Chapitre 12. R´ esolution des probl`emes non lin´ eaires
Programmation s´eparable
Il existe une classe particuli` ere de probl`emes qui ne n´ecessitent pas le recours ades ` logiciels d’optimisation non lin´eaire, car ils peuvent se r´esoudre par utilisations eparables. r´ep´et´ees de l’algorithme du Simplexe. Ce sont les programmes s´ ˆ exprim´ eparable si elle peut etre D´efinition 12.1 Une fonction est s´ ee comme la somme de fonctions d’une seule variable : n
f (x) =
f j (x j )
j =1
Par exemple, la fonction suivante est s´eparable : 3
x21 + 2x2 + ex , puisque somme de fonctions d’une seule variable alors que la fonction suivante :
x1 x2 +
1 + x3 1 + x1
est non s´eparable a` cause du terme x1 x2 . Un exemple pratique, d´ej`a cit´e au chapitre 11, d’application de la programmation s´eparable est la relation entre le flot de gaz entre les nœuds i et j , not´e f ij , et les pressions en ces points, pi et p j : 2
2
2
2
f ij = C ij pi − p j
o`u C ij est un param`etre constant d´ependant de la longueur et du diam`etre du gazoduc. Les mod`e les s´eparables peuvent eˆ tre r´esolus par une suite d’approximations ere suivant. lin´eaires par morceaux. Plus pr´ecis´ement, on effectuera de la mani` esolution des probl`emes s´ eparables. Algorithme 12.1 Algorithme de r´ 1. Chaque fonction non lin´ eaire d’une seule variable est remplac´ ee par une approximation lin´ eaire par morceaux.
ecialis´ ee de 2. Le probl`eme approxim´ e est alors r´ esolu par une version sp´ eaires par morceaux. l’algorithme du Simplexe traitant les probl`emes lin´ 3. Enfin, si la solution ainsi obtenue s’´ ecarte trop des relations non lin´ eaires originales, on raffine la discr´ etisation autour de la solution optimale du probl`eme approxim´ e et on it e` re.
145
Section 12.2. Programmation s´ eparable
Voyons ceci sur un exemple. Supposons que l’on ait a` r´esoudre le probl`eme convexe suivant :
min x21 − 4x1 − 2x2 x1 + x2 ≤ 2x1 + x2 ≤ scq −x1 + 4x2 ≥ x1 , x2 ≥
4 5 2 0
(12.1)
Il s’agit bien d’un probl`eme convexe car on minimise x21 qui est une fonction convexe. La premi`ere chose a` faire est de se donner une borne inf´ erieure et une borne sup´erieure a` la valeur que pourra prendre la variable non lin´ eaire. Supposons ici que 0 ≤ x1 ≤ 2, 5. On choisit alors un ensemble de valeurs dex1 o`u la fonction est e´ valu´ee. Ici, ce sont les points 0, 1, 2 et 2,5. On calcule la valeur de la fonction en ces points. Ceci est fait ci-dessous : Point O
x1 = 0 Point A x1 = 1 Point B x1 = 2 Point C x1 = 2, 5
y y y y
= x21 = x21 = x21 = x21
=0 =1 =4 = 6, 25
On obtient les points O , A, B et C a` la figure 12.1. y = x2
(3) C
6 5 B
4 3 2 1
A
(1) O (2)
1
2
x
Figure 12.1: Approximation par une fonction lin´eaire par morceaux On construit alors une approximation lin´eaire par morceaux de la fonction en reliant par des segments de droite les points d’´ evaluation de la fonction. On obtient
146
Chapitre 12. R´ esolution des probl`emes non lin´ eaires
la courbe lin´eaire par morceaux indiqu´ee par OABC a` la figure 12.1. esoudre le probl`eme lin´ eaire par morNous allons maintenant voir comment r´ ceaux. En effet, l’algorithme du Simplexe ne peut traiter directement ce genre de probl`eme. Il existe au moins deux m´ethodes pour resoudre ´ le probl`eme lin´eaire par morceaux au moyen de l’algorithme du Simplexe, a` savoir
• le recours a` la notion d’´epigraphe; • le recours a` la notion d’enveloppe convexe des sommets. 12.2.1
R´esolution par la notion d’´epigraphe
Lorsque le probl`eme est convexe, on peut remplacer la fonction lin´ eaire par morceaux liant x1 et y par son e´ pigraphe comme fait a` la figure 12.1. On peut v´erifier que l’´epigraphe correspond aux trois in´ egalit´es suivantes :
y ≥ x1 (1) y ≥ 3x1 − 2 (2) y ≥ 4, 5x1 − 5 (3) Ce qui peut encore s’´ecrire comme suit :
x1 − y ≤ 0 3x1 − y ≤ 2 4, 5x1 − y ≤ 5 Il suffit alors de minimiser y . En effet, en minimisant y avec la contrainte que (x1 , y) appartienne al’´ ` e pigraphe, on se retrouvera donc bien sur la limite inf´ erieure de l’´epigraphe, donc sur la la courbe lin´ eaire par morceaux indiqu´ ee par OABC a` la figure 12.1. Le probl`eme original est donc remplac´e par le suivant :
min y − 4x1 − 2x2 x1 +x2 2x1 +x2 −x1 +4x2 x1 −y scq 3x1 −y 4, 5x1 −y x1 , x2
≤ ≤ ≥ ≤ ≤ ≤ ≥
4 5 2 0 2 5 0
147
Section 12.2. Programmation s´ eparable
12.2.2
R´esolution par la notion d’enveloppe convexe
Une seconde solution est d’imposer que(x1 , y) appartiennent a` l’ensemble convexe des points extrˆemes du polygone OABC comme illustr´e a` la figure 12.2. Pour cela, y = x2 C 6 5 B
4 3 2 1
O
A 1
2
x
Figure 12.2: Approximation par une fonction lin´eaire par morceaux on a e´ crire que (x1 , y) est une combinaison convexe des sommets du polygone. Une combinaison convexe est une combinaison lin´ eaire dont tous les coefficients sont positifs et dont la somme est egale ´ a` un. On note par λi le poids attribu´e a` chacun des points de cassure O, A, B et C de la fonction approxim´ee. On traduit alors le fait d’appartenir a` l’enveloppe convexe de ces quatre sommets par les relations suivantes liant x1 et y :
x1 = 0λ1 +1λ2 +2λ3 +2, 5λ4 y = 0λ1 +1λ2 +4λ3 +6, 25λ4 1 = λ1 +λ2 +λ3 +λ4
(12.2)
Si on veut se restreindre a` eˆ tre sur la courbe lin´eaire par morceaux, il faut imposer la restriction suppl´ementaire que : au plus deux λi adjacents sont non nuls.
(12.3)
Les relations (12.2) traduisent le fait que le point (x1 , y) est combinaison convexe des points extrˆemes O, A, B et C alors que la condition suppl´ementaire (12.3)
148
Chapitre 12. R´ esolution des probl`emes non lin´ eaires
impose en plus que l’on se trouve sur un des segments OA, AB ou BC puisque l’on est une combinaison convexes des deux points extrˆ emes adjacents. Voyons maintenant comment r´esoudre le probl`eme approxim´e. Remarquez `a nouveau que la fonction illustr´ee par la la courbe lin´eaire par morceaux OABC de la figure 12.2 est une fonction non lin´eaire. Elle ne peut donc directement etre ˆ trait´ee par l’algorithme du Simplexe. Ainsi le programme convexe (12.1) est approxim´ e par :
min y − 4x1 − 2x2 x1 +x2 2x1 +x2 −x1 +4x2 +λ2 + 2λ3 + 2, 5λ4 −x1 scq +λ2 + 4λ3 + 6, 25λ4 −y λ1 + λ2 + λ3 + λ4 y, x1 , x2 , λ1 , λ2 , λ3, λ4
≤ ≤ ≥ = = = ≥
4 5 2 0 0 1 0
Remarquons que la condition (12.3) sera automatiquement v´erifi´ee pour un programme convexe. En effet, supposons que la r´ epartition des poids ne v´erifie pas la condition, par exemple :
λ1 = 0, 5 λ2 = 0, 25 λ3 = 0, 25 qui correspond au point :
x = 0, 75 et y = 1, 25 Comme on minimise y , on peut faire mieux en prenant :
x = 0, 75 et y = 0, 75, c’est-`a-dire pr´ecis´e ment en se trouvant sur la limite inf´ erieure de l’ensemble convexe OABC . On en conclut que pour les probl`emes s´eparables convexes, on s’est ramen´e a` la r´esolution d’un probl`eme lin´eaire pur ! Pour les probl`e mes s´eparables non convexes, il faudra imposer explicitement la condition (12.3). Par exemple, si l’on veut minimiser la fonction y = x3 qui est convexe pour les x > 0 et concave pour les x < 0, Il faudra avoir recours a` une extension de l’algorithme du Simplexe qui impose explicitement qu’au plus deux λi cons´ecutifs sont non nuls (voir De Wolf et Smeers [5]). On obtiendra ainsi l’optimum global pour des probl`emes convexes et un optimum local pour des probl`emes non convexes. Quelle que soit la m´ethode utilis´ee pour r´esoudre le probl`eme approxim´e, on introduit une erreur par rapport la vraie fonction. Ainsi pourx1 = 1, 5, la fonction vraie x21 vaut 2, 25 alors que son approximation lin´eaire par morceaux fournit comme valeur 2, 5. D’o`u la n´ecessit´e de raffiner la discr´etisation et d’it´erer.
Section 12.3. La m´ethode de Franck-Wolfe
12.3
149
La m´ethode de Franck-Wolfe
Nous allons voir un type particulier d’algorithme qui permet de r´ esoudre les equence d’approbl`emes d’optimisation non lin´eaires convexes. Il est du type s´ proximations lin´ eaires. Il s’agit de l’algorithme de Franck-Wolfe. Son principe est particuli`erement simple dans le cas de probl`emes avec contraintes lin´ eaires. En effet, cette proc´edure combine des approximations lin´ eaires de l’objectif pour trouver la direction de recherche avec une recherche unidimensionnelle pour trouver le pas suivant cette direction. Etant donn´ee la solution initiale r´ ealisable x0 , la fonction objectif du probl`eme suivant
max f (x) Ax ≤ b scq x ≥ 0
(12.4)
est approxim´e par son d´eveloppement de Taylor d’ordre 1 : n
∂f (x0 ) (x j − x j0) f (x) ≈ f (x ) + ∂x j j =1 0
Si on substitue dans (12.4), a` f (x) son approximation donn´ee, a` une constante pr`es, par g(x) d´efinie ci-dessous : n
g(x) =
c j x j
j =1
avec
∂f (x0) c j = , ∂x j
on obtient un probl`eme lin´eaire soluble par l’algorithme du Simplexe. Notonsx1LP sa solution optimale de ce premier probl` eme lin´eaire. Notez que l’objectif non lin´eaire est de moins en moins bien approxim´ eparson approximation lin´eaire lorsque x s’´e carte de x0 mais que l’objectif doit s’accroˆıtre, du moins au debut, ´ le long du segment de x0 `a x1LP . Aussi va-t-on choisir le point qui maximise f (x) lelongdecesegmentenr´esolvant le probl`eme unidimensionnel suivant :
max h(α) = f (x0 + α(x1LP − x0 ))
0≤α≤1
On v´erifie que α = 0 correspond a` rester en x0 et α = 1 correspond a` aller en x1LP . Notons α∗ , l’optimum. Le point suivant :
x1 = x0 + α∗ (x1LP − x0 )
150
Chapitre 12. R´ esolution des probl`emes non lin´ eaires
deviendra le point initial pour l’it´eration suivante. Appliquons ceci sur l’exemple suivant :
max f (x) = 5x1 − x21 + 8x2 − 2x22 3x1 + 2x2 ≤ 6 scq x1 , x2 ≥ 0
Calculons le gradient :
∂f = 5 − 2x1 ∂x 1 ∂f = 8 − 4x2 ∂x 2 Il est clair que x = (0, 0) fournit une solution r´ealisable initiale :
x0 = (0, 0) Donc les coefficients du gradient sont
c1 = 5 c2 = 8 On peut r´esoudre graphiquement le probl` eme lin´eaire suivant :
maxz = 5x1 + 8x2 3x1 + 2x2 ≤ 6 scq x1 , x2 ≥ 0
A la figure 12.3, on obtient P 1 , la solution du premier probl`eme lin´eaire :
x1LP = (0, 3) Le segment entre x0 et x1LP a comme coordonn´ees :
x(α) = x0 + α(x1LP − x0 ) = (0, 0) + α[(0, 3) − (0, 0)] = (0, 3α) On va donc maximiser la fonction
h(α) = f (x(α)) = 24α − 18α2 sous les contraintes que 0 ≤ α ≤ 1. La maximisation sans contrainte conduit a` annuler la d´eriv´ee premi`e re :
24 − 36α = 0
151
Section 12.3. La m´ethode de Franck-Wolfe x2 3
P 1
2
1
P 0
1
P 2 2
x1
Figure 12.3: M´ethode de Franck Wolfe soit α = 2/3. On obtient donc le point en fin d’it´eration 1 :
x1 = (0, 0) + 2/3[(0, 3) − (0, 0)] = (0, 2) Proc´edons a` la deuxi`eme it´eration :
c1 = 5 − 2 × 0 = 5 c2 = 8 − 4 × 2 = 0 On peut r´esoudre graphiquement le probl` eme lin´eaire suivant :
maxz = 5x1 3x1 + 2x2 ≤ 6 s.c.q. x1 , x2 ≥ 0
A la figure 12.3, on obtient P 2 , la solution du deuxi`eme probl`eme lin´eaire :
x2LP = (2, 0) Le segment entre x1 et x2LP a comme coordonn´ees :
x1 + α(x2LP − x1 ) = (0, 2) + α[(2, 0) − (0, 2)] = (2α, 2 − 2α) de sorte que l’on maximise
maxh(α) = 8 + 10α − 12α2
152
Chapitre 12. R´ esolution des probl`emes non lin´ eaires
sous les contraintes que 0 ≤ α ≤ 1. La maximisation sans contrainte conduit a` annuler la d´eriv´ee premi`e re :
10 − 24α = 0 soit α = 5/12. On obtient donc le point en fin d’it´eration 2 :
x2 = (0, 2) + 5/12[(2, 0) − (0, 2)] = (5/6, 7/6) On peut r´esumer l’algorithme de Franck-Wolfe comme suit. Algorithme 12.2 Algorithme de Franck-Wolfe. 1. Initialisation. Soit x0 une solution initiale r´ ealisable. Posons k = 1. ´ 2. It´eration k. Pour j = 1, 2, ...n, evaluer
∂f (xk−1 ) c j = ∂x j 3. Calcul de la direction. Trouver, par application de l’algorithme du Sim plexe, xkLP la solution optimale du probl`eme lin´ eaire suivant : n
max g(x) =
c j x j
j =1
scq
Ax ≤ b x ≥ 0
4. Calcul du pas. Trouvez αk la solution optimale de
k−1
k LP
max f x + α(x scq 0≤α≤1
−x
k−1
)
et mettre
xk = xk−1 + αk (xkLP − xk−1) 5. Crit`ere d’arrˆet. Si xk−1 et xk sont suffisamment proches, stop. Sinon retour en 2.
Reste a` r´esoudre en g´en´eral, le probl`eme de la maximisation de la fonction d’une variable h(α). Si on peut e´ valuer une fonction f (x) d’une seule variable ainsi que sa d´eriv´ee premi`ere f (x) en tout point, on peut se baser sur la procedure ´ de recherche unidimensionnelle illustr´ ee a` la figure 12.4
¯] l’intervalle de recherche. Chaque it´eration consiste en les points Soit [x, x suivants :
153
Section 12.3. La m´ethode de Franck-Wolfe f (x)
f (x)
x
x
x
x
x
x
x
x
Figure 12.4: Recherche unidimensionnelle. 1. Calculer
x+x ¯ 2 et e´ valuer f (x ), la d´eriv´ee de f en x . x =
2. Si f (x ) ≥ 0, mettre x = x .
¯ = x . Retour en 1. 3. Si f (x ) < 0, mettre x Illustrons ceci sur un exemple. Soit la fonction d’une seule variable suivante :
f (x) = 12x − 3x4 − 2x6 Calculons
f (x) = 12 − 12x3 − 12x5 = 12(1 − x3 − x5 ) Les 4 premi`eres it´erations sont illustr´ees au tableau 12.1.
k f 0 1 −12, 00 2 10, 12 3 4, 09 4 −2, 19
x 0, 00 0, 00 0, 50 0, 75 0, 75
x¯ 2, 000 1, 000 1, 000 1, 000 0, 875
x 1, 0000 0, 5000 0, 7500 0, 8750 0, 8125
f (x ) 7, 0000 5, 7812 7, 6948 7, 8439 7, 8672
Tableau 12.1: Quelques it´erations de la recherche unidimensionnelle.
154
12.4
Chapitre 12. R´ esolution des probl`emes non lin´ eaires
Exercices
12.1. Programmation s´eparable. R´esoudre le probl`eme non lin´eaire s´eparable suivant en appliquant la technique d’approximations lin´ eaires par morceaux : Min Scq
x21 − 4x1 − 2x2 x1 + x2 ≤ 2x1 + x2 ≤ −x1 + 4x2 ≥ x1 , x2 ≥
4 5 2 0
12.2. M´ethode de Franck-Wolfe. Faire la troisi`eme it´eration de la m´ethode de Franck-Wolfe pour l’exemple trait´e a` la section 12.3. 12.3. Recherche unidimensionnelle. Faire trois it´erations de plus pour l’exemple de recherche unidimensionnelle trait´ e a` la section 12.3 et en d´eduire par extrapolation la solution optimale du probl` eme non lin´eaire.
Bibliographie [1] Ravindra AHUJA, Thomas MAGNANTI et James ORLIN, Network Flows, Prentice Hall, Englewood Cliffs, 1993. [2] BAGLIN G´erard, Olivier BRUEL, Alain GARREAU, Michel GREIF et Christian VAN DELFT, Management Industriel et Logistique, Economica, Paris, 1996. [3] BROOKE Anthony, David KENDRICK et Alexander MEERAUS, GAMS User’s guide Release 2.25, The Scientific Press, San Francisco, 1992. ´ [4] CHVATAL Va˘sek, Linear Programming, Freeman and Company, 1983. [5] DE WOLF Daniel, Olivier JANSSENS dE BISTHOVEN et Yves SMEERS, The Simplex algorithm extended to piecewise linearly constrained problems, CORE DISCUSSION Paper 9119, Universit´e Catholique de Louvain, 1991. [6] EXCEL, Guide de l’utilisateur, Microsoft, 1992. [7] GIARD Vincent, Gestion de la production et des flux, Economica, Paris, 2003. [8] Christelle GUERET, Christian PRINS, Marc SEVAUX, Programmation lin´eaire, Eyrolles, Paris, 2000. ematiques, Economica, 1991. [9] GUERRIEN Bernard, Initiation aux math´
[10] F.S. HILLIER et G.S. LIEBERMAN, Introduction to Operations Research, 6`eme e´ dition, Mac Graw-Hill International Editions, Singapour, 1995. [11] F.S. HILLIER, M.S. HILLIER et G.S. LIEBERMAN, Introduction to Management Sciences, 1`ere e´ dition, Mac Graw-Hill International Editions, Boston, 2000. ee a` la gestion et a` l’´ economie, [12] LACAZE Dominique, Optimisation appliqu´ Economica, 1990.
155