UNIVERSITE DU LITTORAL

Maˆıtrise AES
Recherche op´ erationnelle
Daniel DE WOLF
Dunkerque, Septembre 2003
Table des mati` eres
I La programmation lin´ eaire et en nombres entiers 7
1 La programmation lin´ eaire. 9
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Plan du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Un simple exemple . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 R´ esolution graphique . . . . . . . . . . . . . . . . . . . . . . . 13
1.5 Formulation g´ en´ erale . . . . . . . . . . . . . . . . . . . . . . . 17
1.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2 Algorithme du Simplexe. 21
2.1 Principe de l’algorithme . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Formes canoniques d’un programme lin´ eaire. . . . . . . . . . . . 22
2.3 Notion de solution de base . . . . . . . . . . . . . . . . . . . . . 24
2.4 Initialisation de l’algorithme . . . . . . . . . . . . . . . . . . . . 26
2.5 Une it´ eration Simplexe . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.1 Choix de la direction . . . . . . . . . . . . . . . . . . . . 27
2.5.2 Choix de la variable sortante . . . . . . . . . . . . . . . . 27
2.5.3 Calcul du nouveau sommet . . . . . . . . . . . . . . . . 28
2.5.4 Test d’optimalit´ e . . . . . . . . . . . . . . . . . . . . . . 30
2.5.5 Chemin suivi par l’algorithme du Simplexe . . . . . . . . 31
2.6 Algorithme du Simplexe . . . . . . . . . . . . . . . . . . . . . . 32
3 L’algorithme du Simplexe en Tableaux 33
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3
4 Table des mati`eres
3.2 Notion de tableau Simplexe . . . . . . . . . . . . . . . . . . . . 34
3.3 Tableaux Simplexe et pivotage . . . . . . . . . . . . . . . . . . . 35
3.4 Algorithme du Simplexe en tableaux . . . . . . . . . . . . . . . . 40
3.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4 Questions sur l’algorithme du Simplexe. 43
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5 Analyse postoptimale. 57
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2 Variation par rapport au second membre . . . . . . . . . . . . . . 58
5.3 Variation des coefficients objectifs . . . . . . . . . . . . . . . . . 62
5.4 Coˆ ut r´ eduit des variables hors base . . . . . . . . . . . . . . . . . 64
5.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6 La programmation en nombres entiers. 69
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.2 Formulation des probl` emes mixtes . . . . . . . . . . . . . . . . . 70
6.2.1 Probl` emes avec coˆ uts fixes . . . . . . . . . . . . . . . . . 70
6.2.2 Probl` emes avec contrainte logique . . . . . . . . . . . . . 71
6.2.3 M´ elange avec nombre limit´ e d’ingr´ edients . . . . . . . . 72
6.2.4 Choix parmi un nombre discret de valeurs . . . . . . . . . 73
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 Le probl` eme de transport simple . . . . . . . . . . . . . . . . . . 84
7.1.1 Repr´ esentation au moyen d’un graphe . . . . . . . . . . . 84
7.1.2 Formulation du probl` eme . . . . . . . . . . . . . . . . . 85
7.2 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
7.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
8 R´ esolution du probl` eme de transport simple 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.4.1 R´ esolution par le Simplexe . . . . . . . . . . . . . . . . 100
8.4.2 R´ esolution par la m´ ethode du stepping stone . . . . . . . 102
8.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
9 R´ esolution du probl` eme de transport g´ en´ eral 107
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
9.2 Notion de r´ eseau r´ esiduel . . . . . . . . . . . . . . . . . . . . . 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
11.3 Diff´ erence avec la programmation lin´ eaire . . . . . . . . . . . . . 133
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.
Nous commencerons par le cas des probl` emes lin´ eaires, c’est-` a-dire les probl` e-
mes o` 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 ˆ etre 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` e-
mes 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 ˆ etre prise ` a chaque
´ etape. 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
de probl` emes non lin´ eaires. Nous verrons au chapitre 11 quelques m´ ethodes de
r´ esolution de ces probl` emes.
Il est ` a remarquer que toutes ces m´ ethodes de r´ esolution ´ etant 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.
• La programmation lin´ eaire.
• L’algorithme du Simplexe.
• Questions sur l’algorithme du Simplexe.
• L’analyse post-optimale.
• Les mod` eles en nombres entiers.
• R´ esolution des mod` eles en nombres entiers.
Partie II : les mod` eles sur r´ eseau, dynamiques et non lin´ eaires.
• Les mod` eles sur r´ eseau.
• La programmation dynamique.
• Application ` a la planification de production.
• Les mod` eles non lin´ eaires.
• R´ esolution des mod` eles non lin´ eaires.
1.3 Un simple exemple
Nous prenons un exemple tir´ e de Hillier et Lieberman [10]. Il s’agit d’une ent-
reprise de fabrication de chassis qui envisage la production de deux nouveaux
Section 1.3. Un simple exemple 11
mod` eles au moyen des capacit´ es r´ esiduelles de ses trois ateliers. Il s’agit respec-
tivement d’un chassis en aluminium et d’un chassis en bois. Le premier produit
n´ ecessite le passage dans le premier atelier pour fabriquer le cadre en aluminiumet
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 Capacit´ e disponible
(heures/produit) (heures/produit) (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 trois ´ etapes
suivantes :
1. choix des variables du mod` ele;
2. formulation de l’objectif;
3. formulation des contraintes.
La premi` ere ´ etape consiste ` a choisir les variables du probl` eme.
D´ efinition 1.1 On appelle variable toute quantit´ e utile ` a la r´ esolution du probl` eme
dont le mod` ele 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 :
x
1
= nombre de chassis de type 1 produits par semaine,
x
2
= nombre de chassis de type 2 produits par semaine.
La deuxi` eme ´ etape consiste ` a formuler math´ ematiquement l’objectif.
D´ efinition 1.2 On appelle fonction objectif d’un probl` eme d’optimisation le cri-
t` ere de choix entre les diverses solutions possibles.
Ici l’entreprise d´ esire 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 = 3x
1
+ 5x
2
La troisi` eme ´ etape 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 :
x
1
, x
2
≥ 0.
Elles peuvent ˆ etre plus complexes comme les contrainte de capacit´ e de produc-
tion. 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 :
x
1
≤ 4
Semblablement, on peut construire les contraintes de capacit´ es des deux autres
ateliers :
2x
2
≤ 12
3x
1
+ 2x
2
≤ 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 x
1
+ 5 x
2
s.c.q.

x
1
≤ 4
2x
2
≤ 12
3x
1
+ 2x
2
≤ 18
x
1
≥ 0
x
2
≥ 0
(1.1)
Section 1.4. R´esolution graphique 13
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 ˆ etre r´ esolu de mani` ere purement graphique en suivant le
processus en trois ´ etapes qui suit.
La premi` ere ´ etape de la r´ esolution consiste ` a repr´ esenter graphiquement la
r´ egion r´ ealisable.
D´ efinition 1.4 On appelle r´ egion r´ ealisable, l’ensemble des valeurs de variables
de d´ ecision qui satisfont toutes les contraintes.
Dans le cas de l’exemple, c’est l’ensemble des points (x
1
, x
2
) satisfaisant les
in´ egalit´ es de (1.1).
Graphiquement une in´ egalit´ e telle que 3x
1
+ 2x
2
≤ 18 correspond ` a un demi-
planlimit´ e par la droite obtenue enprenant l’in´ equation ` a l’´ egalit´ e (3x
1
+2x
2
= 18).
Lorsque l’on fait l’intersection des cinq demi-plans correspondant aux cinq in´ ega-
lit´ es :

x
1
≤ 4 (1)
2x
2
≤ 12 (2)
3x
1
+ 2x
2
≤ 18 (3)
x
1
≥ 0 (4)
x
2
≥ 0 (5)
onobtient le polygone hachur´ e ` a la figure 1.1. En ´ economie, cet ensemble r´ ealisable
est encore appel´ e l’ensemble de production.
G´ en´ eralisation. La notion de poly` edre de R
n
.
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 R
n
correspondant aux solutions d’une in´ egalit´ e
lin´ eaire du type suivant :
a
k1
x
1
+ a
k2
x
2
+ . . . + a
kn
x
n
≤ b
k
est un demi-espace ferm´ e situ´ e d’un cˆ ot´ e de l’hyperplan de R
n
d’´ equation :
a
k1
x
1
+ a
k2
x
2
+ . . . + a
kn
x
n
= b
k
.
D´ efinition 1.5 On appelle poly` edre de R
n
l’ensemble des x ∈ R
n
v´ erifiant un
syst` eme d’in´ equations lin´ eaires :
a
k1
x
1
+ a
k2
x
2
+ . . . + a
kn
x
n
≤ b
k
, k = 1, . . .p
14 Chapitre 1. La programmation lin´eaire.
10
8
6
4
2
0 2 4 6 8 x
1
x
2
(1)
(2)
(3)
(4)
(5)
Figure 1.1: Ensemble de production.
A titre d’illustration, le poly` edre de R
3
d´ efini par les in´ egalit´ es suivantes :
x
1
+ x
2
+ x
3
≤ 1
x
1
, x
2
, x
3
≥ 0
est repr´ esent´ e ` a la figure 1.2 par le prisme OABC o` u O note l’origine des axes.
x
1
x
3
x
2
A
C
B
O
Figure 1.2: Hyperfaces d’un poly` edre dans R
3
.
On voit ici clairement que le syst` eme est sous-d´ etermin´ e. On va devoir choisir
entre ces diff´ erents plans de production. Pour ce faire, et c’est la deuxi` eme ´ etape
de la r´ esolution, on va repr´ esenter graphiquement des lignes d’isovaleur de la
fonction objectif :
z = 3x
1
+ 5x
2
.
Section 1.4. R´esolution graphique 15
En effet, on remarquera que l’expression de la fonction objectif fait intervenir trois
variables et ne peut donc ˆ etre repr´ esent´ ee que dans l’espace. Pour se ramener dans
le plan, on va consid´ erer des valeurs successives de l’objectif :
z = k.
Ce qui correspond graphiquement ` a des droites parall` eles
3x
1
+ 5x
2
= k.
Les points d’une de ces droites sont donc le lieu de tous les points donnant la mˆ eme
valeur du profit (d’o` u le nom de droite d’isovaleur de la fonction objectif). Ceci
est fait ` a la figure 1.3 o` u l’on a repr´ esent´ e z = 10, 20 et 36.
10
8
6
4
2
0 2 6 8 x
1
x
2
z = 36
z = 20
z = 10
(2, 6)
(4 , 3)
Figure 1.3: Droites d’isoprofit.
Enfin, et c’est la troisi` eme ´ etape de la r´ esolution, l’optimum sera d´ etermin´ e
graphiquement comme le plan de production situ´ e sur la droite d’isoprofit la plus
´ elev´ ee, c’est-` a-dire celle qui donne le profit le plus ´ elev´ e. On voit ` a la figure 1.3
qu’il s’agit du point
x

= (2, 6).
Justifions ce choix. Comme on maximise le profit on a int´ erˆ et ` a prendre la droite
d’isovaleur la plus ´ elev´ ee possible. Bien sˆ ur, il faut que le plan de production soit
encore r´ ealisable : autrement dit, il faut se restreindre ` a la r´ egion r´ ealisable. On a
alors la tr` 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´ egion r´ ealisable et qui donne la plus grande valeur ` a l’objectif.
16 Chapitre 1. La programmation lin´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´ egion r´ ealisable.
On peut alors se demander si la solution optimale sera toujours ` a un sommet de
la r´ egion r´ ealisable. En fait, lorsque la ligne d’iso-marge est parall` ele ` a un cˆ ot´ e du
polygone, on a que tout le cˆ ot´ e du polygone est optimal. Par exemple, si l’objectif
avait ´ et´ e z = 3x
1
+ 2x
2
, tout le segment entre (2,6) et (4,3) aurait ´ et´ e optimum.
Observation 3 :
Mˆ eme si tout un cˆ ot´ e du polygone est optimal, on peut toujours choisir une solution
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 l’optimum d’un probl` eme lin´ 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 :
Le long d’un cˆ ot´ e du polygone, la valeur de l’objectif peut ˆ etre soit constante, soit
strictement croissante, soit strictement d´ ecroissante.
On peut donc sugg´ erer l’algorithme suivant :
Algorithme 1.1 Principe de l’algorithme du Simplexe.
i) Choisir comme point de d´ epart un sommet x

de la r´ egion r´ ealisable.
ii) D´ eterminer les cˆ ot´ es passant par ce sommet x

. Trouver un cˆ ot´ e le long
duquel z croˆıt. S’il n’y en n’a pas, STOP : le x

courant est optimal.
iii) D´ eterminer le sommet y

` a l’autre bout du cˆ ot´ e et poser x

= y

. Retour en
ii).
Nous allons voir au chapitre suivante comment g´ en´ eraliser cet algorithme au cas
de R
n
: on obtient alors l’algorithme du Simplexe. Mais avant cela, g´ en´ eralisons
la notion de cˆ ot´ e et de sommet et voyons la formulation g´ en´ erale d’un probl` eme
lin´ eaire.
G´ en´ eralisation. Notion de faces d’un poly` edre.
On peut ´ egalement g´ en´ eraliser les notions de cot´ es et de sommet d’un polygone.
Il s’agit, en fait, de cas particuliers de la notion de face d’un poly` edre.
D´ efinition 1.6 On appelle face d’un poly` edre l’ensemble des points appartenant
au poly` edre et qui v´ erifient un certain nombre de contraintes ` a l’´ egalit´ e :
a
k1
x
1
+ a
k2
x
2
+ . . . + a
kn
x
n
= b
k
, k ∈ I ⊆ {1, . . .p}
Section 1.5. Formulation g´en´erale 17
Suivant la dimension de l’ensemble obtenu, on a des noms particuliers.
D´ efinition 1.7 Dans l’espace R
n
, 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’en-
semble des points du poly` edre v´ erifiant une contrainte ` a l’´ egalit´ e (x
1
+x
2
+x
3
= 1).
Il 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 (x
1
+ x
2
+ x
3
= 1 et x
3
= 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 b
i
, la quantit´ e de ressource i disponible. Notons par a
ij
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 Produit Capacit´ e
1 2 . . . n disponible
1 a
11
a
12
. . . a
1n
b
1
2 a
21
a
22
. . . a
2n
b
2
.
.
.
m a
m1
a
m2
. . . a
mn
b
m
marge c
1
c
2
. . . c
n
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 sui-
vante. 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 ´ ecrire :
max z =
c
1
x
1
+ c
2
x
2
· · · + c
n
x
n
,
s.c.q.

a
11
x
1
+ a
12
x
2
· · · + a
1n
x
n
≤ b
1
,
a
21
x
1
+ a
22
x
2
· · · + a
2n
x
n
≤ b
2
,
.
.
.
.
.
.
.
.
.
.
.
.
a
m1
x
1
+ a
m2
x
2
· · · + a
mn
x
n
≤ b
m
,
x
1
≥ 0,
x
2
≥ 0,
.
.
.
x
n
≥ 0.
On a donc un probl` eme ` a n variables et ` a m + n contraintes d’in´ egalit´ e, les n
derni` eres ´ etant celles de non n´ egativit´ e des variables.
Matriciellement, le probl` eme peut s’´ ecrire comme
max z = c
T
x,
s.c.q.

Ax ≤ b,
x ≥ .
(1.2)
avec A matrice (m×n) b vecteur (m×1)
c vecteur (n ×1) x vecteur (n ×1).
D´ efinition 1.8 Tout point x v´ erifiant les contraintes de (1.2) est dit une solution
r´ ealisable pour le probl` eme lin´ eaire.
Notons par S la r´ egion r´ ealisable :
S = {x ∈ R
n
|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, c
T
x

≥ c
T
x,
est dit une solution optimale pour le probl` eme lin´ eaire (1.2).
Section 1.6. Exercices 19
1.6 Exercices
1.1. Recyclage du papier. Une soci´ et´ e de tri de d´ echets et recyclage de pa-
pier peut se fournir en d´ echets aupr` es de deux villes. Son rˆ ole consiste ` a
s´ eparer les listes d’ordinateur et les journaux. La r´ epartition entre m´ enages
et soci´ et´ es 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 pour-
centages ainsi que la quantit´ e maximum de d´ echets que peuvent fournir par
an ces deux villes sont reprises au tableau suivant :
Ville Listes (%) Journaux (%) Offre (tonnes par an)
Ville 1 5 20 10.000
Ville 2 15 30 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, expres-
sion des contraintes et de l’objectif);
(b) D´ eterminer 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
deuxproduits P
1
et P
2
. Chaque produit doit passer les deuxateliers d’usinage
et de finition. Le mois dernier, 500 unit´ es de P
1
ont ´ et´ e produites grˆ ace ` a
750 heures d’usinage et 250 heures de finition. De mˆ eme, 700 unit´ es de
P
2
ont ´ et´ 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 frais fixes frais variables
Administration 50.000 0
Usinage 60.000 11.600
Finition 40.000 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’usi-
nage 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’al-
gorithme, 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 x
1
+ 5 x
2
s.c.q.

x
1
≤ 4
2x
2
≤ 12
3x
1
+ 2x
2
≤ 18
x
1
≥ 0
x
2
≥ 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 opti-
male en allant de sommet en sommet adjacent. Partant du point (0,0), l’algorithme
va d´ eterminer 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 arˆ ete : 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 mˆ emes op´ erations en uti-
lisant uniquement l’alg` ebre. C’est l’objet de l’algorithme du Simplexe.
21
22 Chapitre 2. Algorithme du Simplexe.
10
8
4
2
2 8
3x1 + 2x2 =18
x
1
= 4
x
1
= 0
2x
2
= 12
x
2
= 0
(0, 9)
(0, 6)
(2, 6)
(4, 3)
(4, 0)
(0 , 0)
(6 , 0)
(4 , 6)
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 ´ et´ e vue au chapitre 1. Elle correspond ` a la forme matricielle suivante :
max z = c
T
x,
s.c.q.

Ax ≤ b,
x ≥ .
avec A matrice (m×n) b vecteur (m×1)
c vecteur (n ×1) x 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 , il ya mcontraintes qui peuvent ˆ etre 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
3x
1
+ 2x
2
≤ 18.
Imposer que le membre de gauche soit inf´ erieur ou ´ egal au membre de droite,
revient ` a dire qu’il faudrait ajouter une quantit´ e non n´ egative au membre de gauche
pour qu’il y ait ´ egalit´ e :
3x
1
+ 2x
2
+ x
3
= 18,
avec la condition que la variable x
3
soit non n´ egative
x
3
≥ 0.
Section 2.2. Formes canoniques d’un programme lin´eaire. 23
Cette quantit´ e repr´ esente un d´ eficit ou un ´ ecart. Comme cet ´ ecart peut varier, on
l’appelle variable d’´ ecart.
D´ efinition 2.1 La variable d’´ ecart est la quantit´ e qui, ajout´ ee au membre de
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´ e-
galit´ es g´ en´ erales du type inf´ erieur ou ´ egal, on peut aussi envisager de transformer
des contraintes g´ en´ erales du type sup´ erieur ou ´ egal en ´ egalit´ e. Lorsqu’on impose
2x
1
+ x
2
≥ 4,
on impose que le membre de gauche d´ epasse le membre de droite. Il y a donc
aussi un ´ ecart qui s’av` ere cette fois ˆ etre un surplus. Pour revenir ` a l’´ egalit´ e, il faut
retrancher une quantit´ e non n´ egative du membre de gauche.
2x
1
+ x
2
−x
3
= 4,
avec x
3
≥ 0.
Appliquons ceci auprobl` eme (2.1). Onobtient le probl` eme sous forme standard
avec ´ egalit´ es suivant :
maxz = 3x
1
+ 5x
2
s.c.q.

x
1
+x
3
= 4
2x
2
+x
4
= 12
3x
1
+2x
2
+x
5
= 18
x
1
, x
2
, x
3
, x
4
, x
5
≥ 0
(2.2)
Remarquons qu’il y a ´ equivalence totale entre les deux formes. En effet,
d’une part, toute solution r´ ealisable du probl` eme (2.1) peut ˆ etre 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´ ee en une solution r´ ealisable pour le probl` eme (2.1). Comme,
d’autre part, les fonctions objectifs sont identiques, on a bien ´ equivalence 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 R
5
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
´ egalit´ 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 :

x
1
+x
3
= 4
2x
2
+x
4
= 12
3x
1
+2x
2
+x
5
= 18
(2.3)
les deux variables x
1
et x
2
peuvent ˆ etre fix´ ees ` a z´ ero. On dit qu’elles sont mises
hors base.
D´ efinition 2.2 On appelle variables hors base (v.h.b.) les n variables de R
n+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 x
3
, x
4
et x
5
dont on peut lire
la valeur dans (2.3) :
x
3
= 4
x
4
= 12
x
5
= 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 mcontraintes
d’´ egalit´ es obtenues en ajoutant les variables d’´ ecart.
D´ efinition 2.4 On appelle solution de base r´ ealisable une solution de base qui,
en plus, v´ erifie les contraintes de positivit´ e.
Dans l’exemple, la solution de base suivante :
x
1
= 0, x
2
= 0 variables hors base
x
3
= 4, x
4
= 12, x
5
= 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.
Propri´ et´ e 2.1 La notion g´ eom´ etrique de sommet du polygone correspond ` a la
notion alg´ ebrique de solution de base r´ ealisable.
Section 2.3. Notion de solution de base 25
On peut v´ erifier cette propri´ et´ e sur l’exemple. A la figure 2.1, les sommets
(0,0), (0,6), (2,6), (4,3), (4,0) correspondent ` a des solutions de base r´ ealisables
tandis que les points (0,9), (4,6) et (6,0) correspondent ` a des solutions de base non
r´ ealisables. Cette correspondance est ´ etablie au tableau 2.1.
v.h.b. (x
1
, x
2
) (x
3
, x
4
, x
5
) sommet ?
x
1
, x
2
(0, 0) (4, 12, 18) oui
x
1
, x
4
(0, 6) (4, 0, 6) oui
x
1
, x
5
(0, 9) (4, −6, 0) non
x
4
, x
5
(2, 6) (2, 0, 0) oui
x
3
, x
4
(4, 6) (0, 0, −6) non
x
3
, x
5
(4, 3) (0, 6, 0) oui
x
2
, x
3
(4, 0) (0, 6, 6) oui
x
2
, x
5
(6, 0) (−2, 12, 0) non
Tableau 2.1: Correspondance entre solution de base r´ ealisable 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 ´ etendue 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 :
x
1
= 0, x
1
= 0,
x
2
= 0, x
2
= 6,
x
3
= 4, x
3
= 4,
x
4
= 12, x
4
= 0,
x
5
= 18, x
5
= 6
car elles ne diff` erent que par une seule variable hors base. Par contre les solutions
suivantes :
x
1
= 0, x
1
= 2,
x
2
= 0, x
2
= 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 no-
tion 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 b
i
≥ 0, i = 1, . . .n, il suffit
de prendre l’origine comme point de d´ epart. Dans l’exemple, cela donne :
(x
1
, x
2
) = (0, 0)
En termes alg´ ebriques, toutes les variables originales sont mises hors base. Auto-
matiquement , dans le syst` eme d’´ egalit´ es :

x
1
+x
3
= 4
2x
2
+x
4
= 12
3x
1
+2x
2
+x
5
= 18
,
on lit la valeur des variables de base :
x
3
= 4
x
4
= 12
x
5
= 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 ´ et´ e n´ egatif ou si une contrainte avait
´ et´ 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 = 3x
1
+ 5x
2
= 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 27
2.5 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 ´ equivalente par : quelle
variable hors base va entrer en base ?
Le crit` ere de s´ election de la variable entrante est de prendre la variable hors
base qui fournit le plus fort taux d’augmentation de la fonction objectif :
z = 3x
1
+ 5x
2
.
Pour une augmentation unitaire de x
1
, z augmente de 3. Pour une augmentation
unitaire de x
2
, 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
de coefficient objectif le plus ´ elev´ e), la fonction objectif z doit ˆ etre exprim´ ee en
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 x
2
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 x
4
s’annule et aller au del` a conduirait ` a la rendre n´ egative. On va donc pous-
ser x
2
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 x
1
hors base dans (2.3), on obtient la variation des variables de
base en fonction de x
2
:
x
3
= 4 ≥ 0
28 Chapitre 2. Algorithme du Simplexe.
x
4
= 12 −2x
2
≥ 0
x
5
= 18 −2x
2
≥ 0
ou encore :
x
2

12
2
= 6
x
2

18
2
= 9
On en conclut que la variable sortante est x
4
, c’est-` a-dire la premi` ere qui
s’annule (pour x
2
= 6).
De mani` ere g´ en´ erale, on calcul le minimumdu 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 ˆ etre 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 ´ egalit´ e par une constante non nulle;
2. Additionner un multiple d’une ´ equation ` a une autre ´ equation.
Appliquons ceci ` a l’exemple. Ajoutons au syst` eme de d´ epart (2.3) en premi` ere
ligne la d´ efinition de la fonction objectif :
z −3x
1
−5x
2
= 0 (0)
x
1
+x
3
= 4 (1)
2x
2
+x
4
= 12 (2)
3x
1
+2x
2
+x
5
= 18 (3)
Donc x
2
remplace x
4
comme variable de base. On veut donc expliciter x
2
dans
la contrainte (2) en lieu et place de x
4
. Pour ce faire, il faut :
Section 2.5. Une it´eration Simplexe 29
1. Amener un 1 comme coefficient de x
2
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 x
2
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 :
z −3x
1
+
5
2
x
4
= 30 (0

)
x
1
+x
3
= 4 (1)
x
2
+
1
2
x
4
= 6 (2

)
3x
1
−x
4
+x
5
= 6 (3

)
o` u l’on peut lire directement (en se souvenant que x
1
et x
4
sont hors base
donc nulles) :
z = 30
x
3
= 4
x
2
= 6
x
5
= 6
On en d´ eduit la valeur de la nouvelle solution de base :
(x
1
, x
2
, x
3
, x
4
, x
5
) = (0, 6, 4, 0, 6)
qui donne la nouvelle valeur de l’objectif :
z = 30.
Remarquez que les op´ erations d’´ elimination de x
2
des lignes autres que la
deuxi` eme se font obligatoirement en retranchant ` a chacune de ces lignes un mul-
tiple 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 ´ egales ` 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 :
z = 30 + 3x
1

5
2
x
4
.
Comme x
1
a un coefficient positif, il est int´ eressant de faire entrer x
1
en base.
Le crit` ere d’arrˆ et sera donc le suivant : la solution de base courante est opti-
male 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
z = 30 + 3x
1

5
2
x
4
.
on s´ electionne donc pour la variable entrante x
1
. En effet, c’est la variable avec
le plus grand coefficient objectif, et d’ailleurs la seule possible.
Pour d´ eterminer la variable sortante, ´ etudions la variation des variables de
base en fonction d’une augmentation de x
1
:
x
3
= 4 −x
1
x
2
= 6
x
5
= 6 −3x
1
La variable sortante est x
5
, c’est elle qui est la premi` ere ` a s’annuler (pour x
1
= 2).
Pour calculer le nouveau sommet, on exprime le syst` eme en fonction des nou-
velles variables de base (x
1
prend la place de x
5
) :
z +
3
2
x
4
+x
5
= 36
x
3
+
1
3
x
4

1
3
x
5
= 2
x
2
+
1
2
x
4
= 6
x
1

1
3
x
4
+
1
3
x
5
= 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 :
z = 36 −
3
2
x
4
−x
5
.
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` emes qui peuvent se produire lors
de l’ex´ ecution de l’algorithme du Simplexe. Ces probl` emes peuvent se produire
durant les trois ´ etapes 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 Chapitre 2. Algorithme du Simplexe.
2.6 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 sortante est la premi` ere ` a s’annuler : c’est celle pour laquelle
le minimum est atteint dans :
b
s
a
se
= min
i|a
ie
>0
b
i
a
ie
Soit s l’indice de la ligne correspondante.
Pas 3. D´ eterminer la nouvelle solution de base :
• Diviser toutes les coefficients de la ligne s par a
se
.
• Eliminer x
e
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 r´ ealisable), ` 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 ´ etapes 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 op´ erations 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
D´ efinition 3.1 Un tableau Simplexe est constitu´ e des coefficients des ´ equations
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 x
1
+ 5 x
2
s.c.q.

x
1
≤ 4
2x
2
≤ 12
3x
1
+ 2x
2
≤ 18
x
1
≥ 0
x
2
≥ 0
Le syst` eme de d´ epart :
z −3x
1
−5x
2
= 0
x
1
+x
3
= 4
2x
2
+x
4
= 12
3x
1
+2x
2
+x
5
= 18
se met sous la forme du tableau suivant :
z x
1
x
2
x
3
x
4
x
5
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
Section 3.3. Tableaux Simplexe et pivotage 35
o` u l’on a ajout´ e au dessus du tableau le nomdes variables pour voir ` a 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.
• Ensuite la premi` ere ligne donne l’oppos´ e des coefficients objectif.
• 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 :
(x
1
, x
2
, x
3
, x
4
, x
5
) = (0, 0, 4, 12, 18)
3.3 Tableaux Simplexe et pivotage
A la premi` ere it´ eration, on s´ election comme variable entrante la variable x
2
de
coefficient le plus n´ egatif 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 x
1
x
2
x
3
x
4
x
5
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
On s´ electionne la variable sortante comme ´ etant 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
2
,
18
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 x
2
dans la premi` ere contrainte soit -1 ` a la place de
0. L’´ equation correspondante se r´ ecrit de mani` ere ´ equivalente comme suit :
x
1
= 4 + x
2
Quelle que soit la valeur de x
2
> 0, la variable de base x
1
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 x
4
. 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 x
4
.
On encadre alors la ligne o` u le minimum se produit. Cette ligne re¸ coit le nom
de ligne pivot :
z x
1
x
2
x
3
x
4
x
5
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
D´ efinition 3.2 On appelle ´ el´ ement pivot le coefficient situ´ e ` a l’intersection de la
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 som-
met : ceci en exprimant x
2
dans la deuxi` eme ´ equation en lieu et place de x
4
.
Remarquez que cela revient ` a amener la colonne de x
4
en lieu et place de celle de
x
2
. Ceci peut ˆ etre 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 x
1
x
2
x
3
x
4
x
5
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 0 1 18
Section 3.3. Tableaux Simplexe et pivotage 37
2. Eliminer x
2
des autres ´ equations en retranchant chaque fois un multiple de
la nouvelle ligne pivot :
z x
1
x
2
x
3
x
4
x
5
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 d´ etruirait la matrice identit´ e.
La nouvelle solution de base et la nouvelle valeur de l’objectif sont respective-
ment :
(x
1
, x
2
, x
3
, x
4
, x
5
) = (0, 6, 4, 0, 6)
z = 30.
Effectuons maintenant la deuxi` eme it´ eration de l’algorithme du Simplexe. Le
premier pas de la deuxi` eme it´ eration consiste ` a d´ eterminer la variable entrante. Il
s’agit de x
1
, la variable de coefficient le plus n´ egatif dans la ligne objectif. D’o` u
la s´ election de la colonne pivot suivante :
z x
1
x
2
x
3
x
4
x
5
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 minimumdu rapport des coefficients du membre de droite sur le coefficient
correspondant de la colonne entrante lorsque celui-ci est strictement positif :
min

4
1
, −,
6
3

= 2.
Le minimum se produit dans la derni` ere ligne o` u l’on lit la valeur de x
5
qui sort
38 Chapitre 3. L’algorithme du Simplexe en Tableaux
donc de base. On encadre la ligne pivot :
z x
1
x
2
x
3
x
4
x
5
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 so-
lution de base au moyen des deux types d’op´ erations ´ el´ ementaires sur le tableau
Simplexe :
1. Amener un 1 en position pivot;
z x
1
x
2
x
3
x
4
x
5
1 −3 0 0 5/2 0 30
0 1 0 1 0 0 4
0 0 1 0 1/2 0 6
0 1 0 0 −1/3 1/3 2
2. Eliminer x
1
des autres contraintes.
Le r´ esultat de ces deux types d’op´ erations est le suivant :
z x
1
x
2
x
3
x
4
x
5
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 :
(x
1
, x
2
, x
3
, x
4
, x
5
) = (2, 6, 2, 0, 0)
z = 36.
Section 3.3. Tableaux Simplexe et pivotage 39
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
9
4
2 4 6
3x1 + 2x2 =18
x
1
= 4
x
1
2x
2
= 12
x
2 P
0
= (0, 0)
P
1
= (0, 6)
P
2
= (2, 6)
Figure 3.1: Chemin suivi par l’algorithme du Simplexe.
la premi` ere it´ eration, on suit l’axe des x
2
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´ ecution 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´ eration, 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
´ egal ` a” avec un membre de droite positif. Nous examinerons ´ egalement ce qu’il
convient de faire si on ne trouve aucune variable candidate ` a sortir de la base.
Mais avant cela, r´ esumons l’algorithme du Simplexe en tableaux.
40 Chapitre 3. L’algorithme du Simplexe en Tableaux
3.4 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 x
1
x
2
. . . x
n
x
n+1
x
n+2
. . . x
n+m
1 −c
1
−c
2
−c
n
0 0 0 0
0 a
11
a
12
a
1n
1 0 0 b
1
0 a
21
a
22
a
2n
0 1 0 b
2
.
.
.
.
.
.
0 a
n1
a
n2
a
mn
0 0 1 b
1
Pas 1. Choix de la variable entrante : s´ electionner comme variable entrante la
variable hors base avec le coefficient dans la ligne objectif le plus n´ egatif,
en se restreignant aux variables ` a coefficient n´ egatif.
Soit x
e
telle que −c
e
≤ −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 ent-
rante. Il en r´ esulte le tableau suivant :
z x
1
x
2
x
e
x
n
x
n+1
x
n+2
. . . x
n+m
1 −c
1
−c
2
−c
e
−c
n
0 0 0 0
0 a
11
a
12
a
1e
a
1n
1 0 0 b
1
0 a
21
a
22
a
2e
a
2n
0 1 0 b
2
.
.
.
.
.
.
0 a
n1
a
n2
a
ne
a
mn
0 0 1 b
1
Section 3.4. Algorithme du Simplexe en tableaux 41
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 :
b
l
a
le
= min{
b
i
a
ie
|a
ie
> 0}
La variable sortante est celle dont on lit la valeur dans la ligne o` u le minimum
se produit. Soit x
s
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 x
1
x
2
x
e
x
n
x
n+1
x
n+2
. . . x
n+m
1 −c
1
−c
2
−c
e
−c
n
0 0 0 0
0 a
11
a
12
a
1e
a
1n
1 0 0 b
1
0 a
21
a
22
a
2e
a
2n
0 1 0 b
2
0 a
l1
a
l2
a
le
a
ln
0 0 1 0 b
l
0 a
n1
a
n2
a
ne
a
mn
0 0 1 b
1
Pas 3. Pivotage : La variable entrante x
e
prend la place de la variable sortante
x
s
dans la base. Il faut
1. Exprimer la fonction objectif en fonction des nouvelles variables hors
base.
2. Expliciter le syst` eme d’´ equations des contraintes en fonctions des nou-
velles 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 a
le
.
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 Chapitre 3. L’algorithme du Simplexe en Tableaux
3.5 Exercices
3.1. Algorithme duSimplexe. R´ esoudre en appliquant la m´ ethode du Simplexe :
maxz = 3x
1
+ 2x
2
+ 4x
3
s.c.q. x
1
+ x
2
+ 2x
3
≤ 4
2x
1
+ 3x
3
≤ 5
2x
1
+ x
2
+ 3x
3
≤ 7
x
1
, x
2
, x
3
≥ 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 ci-
dessous.
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´ es 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 probl` eme.
(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 ´ etape 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 ab-
sence 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 ?
Le premier point sera r´ esoluenconsid´ erant unprobl` eme auxiliaire : 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 compo-
santes 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` eme 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, mˆ eme 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 = x
1
− x
2
+ x
3
s.c.q.

2x
1
−x
2
+2x
3
≤ 4,
−2x
1
+3x
2
−x
3
≥ 5,
x
1
−x
2
+2x
3
≥ 1,
x
1
, x
2
, x
3
≥ 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 = x
1
− x
2
+ x
3
s.c.q.

2x
1
−x
2
+2x
3
+x
4
= 4,
2x
1
−3x
2
+x
3
+x
5
= −5,
−x
1
+x
2
−2x
3
+x
6
= −1,
x
1
, 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 x
0
, ou ce qui revient au mˆ eme, retrancher x
0
au membre de gauche. On
obtient le syst` eme suivant :

2x
1
−x
2
+2x
3
+x
4
−x
0
= 4,
2x
1
−3x
2
+x
3
+x
5
−x
0
= −5,
−x
1
+x
2
−2x
3
+x
6
−x
0
= −1.
On voit qu’en donnant ` a x
0
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
de d´ epart r´ ealisable pour le probl` eme original. Puisqu’on veut se d´ ebarrasser de x
0
,
on va chercher ` a minimiser cette variable, ou, ce qui revient au mˆ eme, ` a maximiser
Section 4.2. Initialisation de l’algorithme 45
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 = −x
0
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 r´ ealisable. 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 x
0
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 x
0
x
1
x
2
x
3
x
4
x
5
x
6
1 1 0 0 0 0 0 0
0 −1 2 −1 2 1 0 0 4
0 −1 2 −3 1 0 1 0 −5
0 −1 −1 1 −2 0 0 1 −1
Premi` ere it´ eration sp´ eciale :
w x
0
x
1
x
2
x
3
x
4
x
5
x
6
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 : x
2
entre, x
6
sort :
w x
0
x
1
x
2
x
3
x
4
x
5
x
6
1 0 −1/4 0 −5/4 0 1/4 3/4 −2
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/4 1
Troisi` eme it´ eration : x
3
entre, x
0
sort :
w x
0
x
1
x
2
x
3
x
4
x
5
x
6
1 1 0 0 0 0 0 0 0
0 −2 1 0 0 1 0 1 3
0 4/5 1/5 0 1 0 −1/5 −3/5 8/5
0 3/5 −3/5 1 0 0 −2/5 −1/5 11/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
r´ eussi ` a annuler la variable artificielle. On a donc une solution de base r´ ealisable
pour le probl` eme original.
On remarquera que le probl` eme de phase I est toujours r´ ealisable (par const-
ruction), et qu’il est toujours born´ e. En effet, son objectif est de minimiser la
variable artificielle qui est astreinte ` a ˆ etre non n´ egative. 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 x
0
;
• en reprenant comme fonction objectif la fonction objectif du probl` eme
original;
• en exprimant cette fonction objectif en fonction des seules variables hors
base.
Section 4.2. Initialisation de l’algorithme 47
Appliquons ceci ` a l’exemple. Pour rappel, la fonction objectif originale ´ etait ici :
z = x
1
−x
2
+ x
3
Les deux premi` eres op´ erations donne le tableau de phase II suivant :
z x
1
x
2
x
3
x
4
x
5
x
6
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 8/5
0 −3/5 1 0 0 −2/5 −1/5 11/5
La troisi` eme op´ eration peut ˆ etre effectu´ ee en ajoutant ` a la ligne objectif la deuxi` eme
contrainte et en retranchant la troisi` eme. On obtient le tableau suivant de d´ epart
de la phase II :
z x
1
x
2
x
3
x
4
x
5
x
6
1 −1/5 0 0 0 1/5 −2/5 −3/5
0 1 0 0 1 0 1 3
0 1/5 0 1 0 −1/5 −3/5 8/5
0 −3/5 1 0 0 −2/5 −1/5 11/5
On peut alors proc´ eder ` a la phase II car on dispose cette fois d’une base de d´ epart
r´ ealisable, x
1
= x
5
= x
6
= 0, hors base, et x
2
=
11
5
, x
3
=
8
5
, x
4
= 3 en base avec
la valeur correspondante de la fonction objectif z = −
3
5
. A la premi` ere it´ eration
de la phase II, x
6
entre et x
4
sort. On obtient le tableau suivant :
z x
1
x
2
x
3
x
4
x
5
x
6
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
0 −2/5 1 0 1/5 −2/5 0 14/5
La solution optimale vaut donc :
z

= 3/5
x

1
= 0
x

2
= 14/5
x

3
= 17/5
48 Chapitre 4. Questions sur l’algorithme du Simplexe.
Exemple 2 : probl` eme non r´ ealisable. Soit le probl` eme :
maxz = 3x
1
+ x
2
s.c.q.

−x
1
+x
2
≥ 1,
x
1
+x
2
≥ 3,
2x
1
+x
2
≤ 2,
x
1
, x
2
≥ 0.
Mettons le d’abord sous forme canonique avec in´ egalit´ es du type ≤ :
maxz = 3x
1
+ x
2
s.c.q.

x
1
−x
2
≤ −1,
−x
1
−x
2
≤ −3,
2x
1
+x
2
≤ 2,
x
1
, x
2
≥ 0.
Puis sous forme canonique avec variables d’´ ecart :
maxz = 3x
1
+ x
2
s.c.q.

x
1
−x
2
+x
3
= −1,
−x
1
−x
2
+x
4
= −3,
2x
1
+x
2
+x
5
= 2,
x
1
, x
2
, x
3
, x
4
, x
5
≥ 0.
Formons le tableau de d´ epart de la phase I :
w x
0
x
1
x
2
x
3
x
4
x
5
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 un premier pivotage non standard. La variable x
0
remplace dans la
base la variable la plus n´ egative, soit x
4
. La suite des tableaux est la suivante :
w x
0
x
1
x
2
x
3
x
4
x
5
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
Section 4.2. Initialisation de l’algorithme 49
A la premi` ere it´ eration, la variable x
1
entre et x
3
sort de la base :
w x
0
x
1
x
2
x
3
x
4
x
5
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 it´ eration, la variable x
2
entre et x
5
sort de la base :
w x
0
x
1
x
2
x
3
x
4
x
5
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 it´ eration, la variable x
3
entre et x
1
sort de la base :
w x
0
x
1
x
2
x
3
x
4
x
5
1 0 1/2 0 0 1/2 1/2 −1/2
0 0 2 0 1 −1 0 2
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 (x
0
est encore dans la base et vaut 1/2). Le
probl` 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.
-1 1 3
1
2
3
x
1
x
2
Figure 4.1: Probl` eme irr´ ealisable.
50 Chapitre 4. Questions sur l’algorithme du Simplexe.
4.3 D´ etermination de la variable entrante
La variable entrante doit ˆ etre une variable hors base avec uncoefficient c

j
n´ egatif
dans la ligne objectif du tableau courant. Si une telle variable n’existe pas, alors le
tableau courant d´ ecrit une solution optimale. En effet, la ligne objectif du tableau
courant peut s’´ ecrire
z +
¸
j∈N
c

j
x
j
= z

,
o` u N note l’ensemble des indices des variables hors base. Ceci qui peut encore
s’´ ecrire comme suit :
z = z


¸
j∈N
c

j
x
j
.
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 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 optimale.
4.4 D´ etermination de la variable sortante
La variable qui quitte la base est la premi` ere ` a bloquer l’augmentation de la
variable entrante. Cette r` egle est ambigu¨ e car elle peut donner lieu ` a plusieurs
candidats ou ` a aucun candidat. Ce dernier cas est illustr´ e ` a la deuxi` eme it´ eration
dans le probl` eme suivant :
maxz = 2x
1
+ x
2
s.c.q.

x
1
−2x
2
+x
3
= 2,
−2x
1
+x
2
+x
4
= 2,
x
1
, x
2
, x
3
, x
4
≥ 0.
Le tableau de d´ epart est :
z x
1
x
2
x
3
x
4
1 −2 −1 0 0 0
0 1 −2 1 0 2
0 −2 1 0 1 2
Premi` ere it´ eration :
Au d´ epart, x
1
= x
2
= 0 sont hors base et x
3
= 2, x
4
= 2 sont en base. On fait
Section 4.4. D´etermination de la variable sortante 51
entrer x
1
dans la base. Il n’y a que la variable de base x
3
qui limite la croissance
de x
1
. La variable x
3
sort de la base lorsque x
1
vaut 2.
z x
1
x
2
x
3
x
4
1 0 −5 2 0 4
0 1 −2 1 0 2
0 0 −3 2 1 6
Deuxi` eme it´ eration :
La variable x
2
est seule candidate ` a l’entr´ ee en base. Comme tous les coefficients
de la colonne x
2
sont nonpositifs, aucune des variables de base n’est bloquante.
La variable x
2
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` eme de d´ epart est le
suivant ;
maxz = 2x
1
+ x
2
s.c.q.

x
1
−2x
2
≤ 2,
−2x
1
+x
2
≤ 2,
x
1
, x
2
≥ 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 x
2
n’est plus born´ ee.
-1
2
-1
2
x
1
x
2
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 x
1
x
2
x
3
x
4
x
5
x
6
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 x
3
pour entrer en base, on trouve que chacune des trois variables de
base, x
4
, x
5
et x
6
bloque l’accroissement de x
3
` a
1
2
. Chacune de ces variables est
donc candidate ` a sortir de base. On peut choisir x
4
. On obtient le tableau suivant :
z x
1
x
2
x
3
x
4
x
5
x
6
1 −2 1 0 4 0 0 4
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
o` u l’on constate que les variables de base x
5
et x
6
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, x
1
entre en base et x
5
bloque son entr´ ee ` a une valeur ´ egale
` a z´ ero ! Donc la valeur de x
1
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.
Section 4.5. Arrˆet apr`es un nombre fini d’it´erations 53
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 at-
teindre 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 corres-
pond ` 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
C
n
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 aug-
mente 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 x
1
x
2
x
3
x
4
x
5
x
6
x
7
1 −10 57 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 1 0 0 0 0 0 1 1
Supposons que l’on adopte les r` egles suivantes en pr´ esence 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 x
1
x
2
x
3
x
4
x
5
x
6
x
7
1 0 −53 −41 204 20 0 0 0
0 1 −11 −5 18 2 0 0 0
0 0 4 2 −8 −1 1 0 0
0 0 11 5 −18 −2 0 1 1
Deuxi` eme it´ eration :
z x
1
x
2
x
3
x
4
x
5
x
6
x
7
1 0 0 −14, 5 98 6, 75 13, 25 0 0
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 −0, 5 4 0, 75 2, 75 1 1
Troisi` eme it´ eration :
z x
1
x
2
x
3
x
4
x
5
x
6
x
7
1 29 0 0 −18 15 93 0 0
0 2 0 1 −8 −1, 5 5, 5 0 0
0 −1 1 0 2 0, 5 −2, 5 0 0
0 1 0 0 0 0 0 1 1
Quatri` eme it´ eration :
z x
1
x
2
x
3
x
4
x
5
x
6
x
7
1 20 9 0 0 −10, 5 70, 5 0 0
0 −2 4 1 0 0, 5 −4, 5 0 0
0 −0, 5 0, 5 0 1 0, 25 −1, 25 0 0
0 1 0 0 0 0 0 1 1
Cinqui` eme it´ eration :
z x
1
x
2
x
3
x
4
x
5
x
6
x
7
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 1 0 0 0 0 0 1 1
Section 4.5. Arrˆet apr`es un nombre fini d’it´erations 55
Sixi` eme it´ eration :
z x
1
x
2
x
3
x
4
x
5
x
6
x
7
1 −10 57 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 1 0 0 0 0 0 1 1
On retrouve le tableau initial. L’algorithme du Simplexe va donc r´ ep´ eter inlassa-
blement la mˆ eme 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¸ con 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 ´ evite que l’algorithme ne boucle.
En effet, ` a la cinqui` eme it´ eration, on choisit x
1
plut ˆ ot que x
6
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 Chapitre 4. Questions sur l’algorithme du Simplexe.
4.6 Exercices
4.1. Probl` eme r´ ealisable. R´ esoudre en appliquant le Simplexe en deux phases :
maxz = 3x
1
+ x
2
s.c.q.

x
1
−x
2
≤ −1
−x
1
−x
2
≤ −3
2x
1
+x
2
≤ 4
x
1
, x
2
≥ 0.
4.2. Probl` eme non r´ ealisable. R´ esoudre par le Simplexe en deux phases :
maxz = 3x
1
+ x
2
s.c.q.

x
1
−x
2
≤ −1
−x
1
−x
2
≤ −3
2x
1
+x
2
≤ 2
x
1
, x
2
≥ 0.
4.3. Probl` eme non born´ e. R´ esoudre en appliquant le Simplexe en deux phases :
maxz = 3x
1
+ x
2
s.c.q.

x
1
−x
2
≤ −1
−x
1
−x
2
≤ −3
2x
1
−x
2
≤ 2
x
1
, x
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 va-
leur optimale de l’objectif d’un programme lin´ eaire en fonction des coefficients du
membre de droite est donn´ ee par la valeur des “prix cach´ es” que l’on peut lire dans
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 y

i
) mesure l’augmentation de la fonction objectif si
l’on accroˆıt d’une unit´ e la capacit´ e disponible (b
i
). Dans le tableau Simplexe
optimal, le prix cach´ e y

i
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 x
1
+ 5 x
2
s.c.q.

x
1
≤ 4
2x
2
≤ 12
3x
1
+ 2x
2
≤ 18
x
1
≥ 0
x
2
≥ 0
Consid´ erons le tableau final qui a ´ et´ e d´ etermin´ e au chapitre 3 :
z x
1
x
2
x
3
x
4
x
5
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 x
3
, x
4
et x
5
sont les variables d’´ ecart des contraintes de capacit´ e des trois
ateliers, on en d´ eduit les valeurs des prix cach´ es suivants :

y

1
= 0
y

2
= 3/2
y

3
= 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 :

b
1
= 4,
b
2
= 12,
b
3
= 18.
Ce r´ esultat peut ˆ etre d´ emontr´ e math´ ematiquement. Mais, plut ˆ ot que d’en don-
ner une d´ emonstration formelle, nous allons l’illustrer graphiquement. Consid´ e-
rons tout d’abord une augmentation de capacit´ e du premier atelier de b
1
= 4 ` a
b

1
= 5. On peut voir ` a la figure 5.1 que le nouveau point optimal reste le mˆ eme
9
8
4
2
3x1 + 2x2 =18
x
1
= 4
2x
2
= 12
0
,
x
1
= 5
2x
2
= 13
(5/3, 13/2)
z = 3x
1
+ 5x
2
2 8
x
2
x
1
6
6 4 0
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 y

1
:
∆z = z

−z

= 0 = y

1
.
Une augmentation de capacit´ e du deuxi` eme atelier de b
2
= 12 ` a b

2
= 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
2
= y

2
.
Enfin, consid´ erons une augmentationde capacit´ e dutroisi` eme atelier de b
3
= 18
` a b

3
= 19. Comme on peut le voir ` a la figure 5.2, cela donne un d´ eplacement du
point optimal vers :
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 = y

3
.
10
8
4
2
2 8
3x1 + 2x2 =18
x
1
= 4
x
2
2x
2
= 12
x
1
3x + x =19 1 2 2
(7/3, 6)
z = 3x
1
+ 5x
2
6
6 4 0
Figure 5.2: Variation de capacit´ e de l’atelier 3
Le r´ esultat peut aussi ˆ etre interpr´ et´ e dans l’autre sens : y

3
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
Section 5.2. Variation par rapport au second membre 61
l’effet d’une augmentation de b
1
sera nul sur la valeur optimum de l’objectif quel
que soit b
1
≥ 4, il n’en va pas de mˆ eme d’une diminution. En effet, en dessous
de b
1
= 2, la solution optimale va changer. On a donc d´ etermin´ e le domaine de
validit´ e de y

1
= 0. Il s’agit de l’intervalle :
b
1
∈ [2, +∞].
Pour le deuxi` eme atelier, au del` a de b
2
= 18, la solution optimale reste en (0,9).
La base optimale et y

2
changent :
y

2
= 0.
De mˆ eme, une diminution en de¸ c` a de b
2
= 6 va changer la base optimale. On en
d´ eduit le domaine de validit´ e de y

2
= 3/2. Il s’agit de l’intervalle :
b
2
∈ [6, 18].
Pour le troisi` eme atelier, au del` a de b
3
= 24, la solution optimale reste en (4,6).
La base optimale et y

3
changent :
y

3
= 0.
De mˆ eme, une diminution en de¸ c` a de b
3
= 12 va changer la base optimale. On en
d´ eduit le domaine de validit´ e de y

3
= 1. Il s’agit de l’intervalle :
b
3
∈ [12, 24].
Ces informations sont donn´ ees dans le rapport de sensibilit´ e dusolveur 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
x
1
≤ 4
a un “prix cach´ e” nul. Ceci a une interpr´ etation ´ economique. La ressource n’est
pas enti` erement utilis´ ee : il ne sert donc ` a rien d’augmenter son stock disponible.
62 Chapitre 5. Analyse postoptimale.
5.3 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 :
z

=
n
¸
j=1
(c
j
+ ∆c
j
)x

j
On en conclut que pour une variation unitaire du coefficient c
j
, l’augmentation de
z

est exactement la valeur optimale de la variable x

j
.
La “valeur de la j` eme variable ` a l’optimum” (not´ ee x

j
) mesure l’augmenta-
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 = 3x
1
+ 5x
2
On veut d´ eterminer l’intervalle de variation maximum de c
1
autour de 3 tel que la
base optimale ne change pas.
A la figure 5.3, on constate que le coefficient c
1
peut descendre jusqu’` a ce que
l’objectif z = c
1
x
1
+ 5x
2
soit parall` ele au segment
2x
2
= 12,
c’est-` a-dire lorsque c
1
= 0. Le coefficient c
1
peut augmenter jusqu’` a ce que l’ob-
jectif z = c
1
x
1
+ 5x
2
soit parall` ele au segment
3x
1
+ 2x
2
= 18.
Ceci se produit lorsqu’il y a ´ egalit´ e des pentes :
−c
1
5
=
−3
2
,
Section 5.3. Variation des coefficients objectifs 63
10
8
6
4
2
0 2 6 8
x
1
x
2
(2, 6)
z = 3x1 +5x2 =36
z = 4x1 +5x2 =38
10 12 4
Figure 5.3: Analyse de sensibilit´ e de c
1
c’est-` a-dire lorsque c
1
= 15/2.
La r´ eponse ` a la question de l’analyse de sensibilit´ e est donc la suivante. Tant
que
c
1
∈ [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 = 3x
1
+ c
2
x
2
soit parall` ele au segment
3x
1
+ 2x
2
= 18.
Ceci se produit lorsqu’il y a ´ egalit´ e des pentes :
−3
c
2
=
−3
2
,
c’est-` a-dire lorsque c
2
= 2. Dans l’autre sens, c
2
peut augmenter jusqu’` a ce que
l’objectif z = 3x
1
+ c
2
x
2
soit parall` ele au segment
2x
2
= 12.
Ceci ne se produit jamais. On en conclut que tant que :
c
2
∈ [2, +∞[,
on a la mˆ eme base optimale et donc la mˆ eme solution optimale.
Ces intervalles de sensibilit´ e sont ´ egalement donn´ es dans le rapport de sensi-
bilit´ e du solveur d’Excel.
64 Chapitre 5. Analyse postoptimale.
5.4 Coˆ ut 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 ˆ etre d´ eduite du tableau Simplexe optimal, il
s’agit du coˆ ut 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 aluminiumbois, 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 −3x
1
−5x
2
−4x
3
= 0
x
1
+x
3
+x
4
= 4
2x
2
+2x
3
+x
5
= 12
3x
1
+2x
2
+3x
3
+x
6
= 18
Elle se met sous la forme du tableau Simplexe initial suivant :
z x
1
x
2
x
3
x
4
x
5
x
6
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 de ce probl` eme lin´ eaire peut ˆ etre d´ etermin´ ee par l’algorithme
du Simplexe. Le tableau Simplexe optimal final est le suivant :
z x
1
x
2
x
3
x
4
x
5
x
6
1 0 0 2 0 3/2 1 36
0 0 0 2/3 1 1/3 −1/3 2
0 0 1 1 0 1/2 0 6
0 1 0 1/3 0 −1/3 1/3 2
Section 5.4. Coˆ ut r´eduit des variables hors base 65
On en d´ eduit la solution optimale suivante :
(x
1
, x
2
, x
3
, x
4
, x
5
, x
6
) = (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´ e des coˆ uts r´ 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 va-
riable. Ici, ` a l’optimum, ce coˆ ut r´ eduit, not´ e d
3
, est n´ egatif, traduisant le fait que
si la production de ce chassis ´ etait positive, elle diminuerait le profit d’autant.
d
3
= −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ˆ ut r´ eduit s’interpr` ete comme l’oppos´ e de l’aug-
mentation 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´ eaire, cette information : les coˆ uts r´ eduits 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 coˆ uts 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.
• Les prix cach´ es sont les coefficients des variables d’´ ecart des contraintes
dans la ligne objectif du tableau Simplexe optimal. Ils s’interpr` etent comme
l’augmentation du profit pour une augmentation unitaire d’un des co-
efficients du membre de droite.
Le rapport de sensibilit´ e d’Excel donne ces deux informations.
66 Chapitre 5. Analyse postoptimale.
5.5 Exercices
5.1. Sensibilit´ e aux coefficients objectif. Soit le probl` eme lin´ eaire suivant :
Minimiser 0x
1
+ x
2
s.c.q. 3x
1
+ 4x
2
≥ 9, (1)
5x
1
+ 2x
2
≤ 8, (2)
3x
1
− x
2
≤ 0, (3)
x
1
, x
2
≥ 0.
(a) D´ eterminer graphiquement la solution optimale.
(b) D´ eterminer l’intervalle maximum de variation de c
1
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 ˆ etre 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´ ee 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
Section 5.5. Exercices 67
qualit´ e 3 requiert 1 m` etre cube, un sac de qualit´ e 2 requiert 0,75 m` etre cube
et un sachet de qualit´ e 1 requiert 0,20 m` 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 ballots. Le mˆ eme
grossiste requiert 3 000 sacs de qualit´ e 2. Les profits que retire la soci´ et´ e
de la vente de ces produits s’´ el` event ` 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 le probl` eme lin´ eaire correspondant (choix des variables, ex-
pression de l’objectif et des contraintes).
(b) Voici le tableau Simplexe final :
z x
3
x
2
x
1
x
4
x
5
x
6
x
7
x
8
x
9
1 0 0 2, 2 0, 12 0 1, 20 0 0 0 198 000
0 0 1 0, 5 −0, 05 0 0, 25 0 0 0 7 500
0 0 0 0, 025 −0, 0425 1 0, 0125 0 0 0 2 375
0 0 0 0, 5 −0, 05 0 0, 25 0 0 1 4 500
0 0 0 0, 2 −0, 08 0 0, 20 1 0 0 3 000
0 0 0 −0, 2 0, 08 0 −0, 20 0 1 0 2 000
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 ce qui se passerait pour l’objectif si on produisait un sachet de
qualit´ e 1. En d´ eduire quel devrait ˆ etre 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 d’Excel vous fournit les intervalles de sensibilit´ e suivant
pour les coefficients c
j
de l’objectif et b
i
du membre de droite :
coefficient valeur pr´ esente valeur minimum valeur maximum
c
3
9 7, 50 15
c
2
12 7, 60 14, 4
c
1
2 −∞ 4, 20
b
1
450 000 425 000 487 500
b
2
20 000 17 625 +∞
b
3
120 000 105 000 130 000
b
4
15 000 12 000 ∞
b
5
10 000 −∞ 12 000
b
6
3 000 −∞ 7500
68 Chapitre 5. Analyse postoptimale.
Combien la soci´ et´ e serait prˆ ete ` a d´ epenser au maximum pour porter de
4 500 000 ` a 4 750 000 kg la capacit´ e printani` ere d’extraction ?
(e) Si le profit unitaire 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 Introduction
L’algorithme du Simplexe fournit une m´ ethode de r´ esolution g´ en´ erale pour tous
les probl` emes lin´ eaires quelle que soit leur forme. Au contraire, en programma-
tion en nombres entiers, on ne dispose pas d’un algorithme g´ en´ eral qui permette
de r´ esoudre efficacement tous les probl` emes en nombres entiers. Cependant, il
existe une classe g´ en´ erale de m´ ethodes connue sous le nom de branch and bound
(s´ eparation et borne) qui permet de r´ esoudre bon nombre de probl` emes en nombres
entiers. Onappelle probl` emes mixtes (MIPenanglais pour MixedInteger Program-
ming) les probl` 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 cette m´ ethode qui commence par la r´ esolution du
probl` eme lin´ eaire obtenu en relaxant les conditions d’int´ egralit´ e des variables.
C’est pourquoi on appelle ce programme la relaxation lin´ eaire du probl` eme.
Les probl` emes de flots (programmation sur les graphes) sont eux ` a mi-chemin
entre les probl` emes lin´ eaires et les probl` emes mixtes. En effet, si les donn´ ees du
probl` eme de flot ` a coˆ ut minimum (la formulation la plus g´ en´ erale d’un probl` eme
de flot) sont toutes enti` eres (demandes aux sommets enti` eres, capacit´ es des arcs
enti` eres et coefficients de coˆ ut entiers), la solution du probl` eme lin´ eaire fournit au-
tomatiquement une solution enti` ere. Autrement dit, ici la solution de la relaxation
lin´ eaire fournit la solution optimale du probl` eme mixte. Pour ces probl` emes, ou
pour ceux qui peuvent s’y ramener, on en conclut que l’on dispose d’un algorithme
performant de calcul : l’algorithme du Simplexe.
Malheureusement, un grand nombre de probl` emes en nombres entiers ne peu-
vent se mettre sous la forme de probl` emes de flot. Il convient donc pour ces
probl` emes d’avoir une m´ 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 pro-
grammation 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.
K
c(x)
x
m
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
compte du coˆ ut fixe de mise en route de production. Par contre, lorsque x = 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 ´ evite le coˆ ut 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 coˆ uts
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 ´ equipe 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

t
i
+ d
i
≤ t
j
si i est r´ ealis´ ee avant j
t
j
+ d
j
≤ t
i
si j est r´ ealis´ ee avant i
(6.3)
o` u t
i
est la variable indiquant le temps de d´ ebut au plus t ˆ ot de la tˆ ache i et d
i
, sa
dur´ ee, est donn´ ee.
Cette disjonction peut ˆ etre r´ esolue par la programmation mixte binaire. En
effet, d´ efinissons la variable binaire y
ij
, 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.
Onremplace alors la conditionde disjonction(6.3) par les contraintes suivantes :

t
i
+ d
i
≤ t
j
+ M(1 −y
ij
)
t
j
+ d
j
≤ t
i
+ My
ij
y
ij
∈ {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 o` u y
ij
= 1. Dans ce cas, le syst` eme (6.4) devient :

t
i
+ d
i
≤ t
j
t
j
+ d
j
≤ t
i
+ M
La premi` ere contrainte exprime donc que la tˆ ache i doit ˆ etre finie avant que ne
commence la tˆ ache j. La seconde contrainte est automatiquement satisfaite.
2. Cas y
ij
= 0. Dans ce cas, le syst` eme (6.4) devient :

t
i
+ d
i
≤ t
j
+ M
t
j
+ d
j
≤ t
i
La premi` ere contrainte est automatiquement satisfaite. La seconde contrainte
exprime que la tˆ ache j doit ˆ etre finie avant que ne commence la tˆ ache i.
6.2.3 M´ elange avec nombre limit´ e d’ingr´ edients
Il s’agit ´ egalement d’un probl` eme g´ en´ erique conduisant ` a une formulation mixte
enti` ere, les variables binaires indiquant la pr´ esence 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` udes contraintes techniques impliquent que seulement trois
huiles diff´ erentes peuvent ˆ etre 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 ˆ etre r´ esolu par la programmation mixte z´ ero/un. Si x
i
note la quantit´ e d’ingr´ edient i dans le m´ elange, d´ efinissons la variable binaire y
i
indiquant la pr´ esence de l’ingr´ edient i dans le m´ elange. Autrement dit :
y
i
= 1 si x
i
> 0;
y
i
= 0 si x
i
= 0.
On introduit alors les contraintes suivantes :
x
i
≤ M
i
y
i
et y
i
∈ {0, 1} (6.5)
o` u M
i
est une borne sup´ erieure sur x
i
.
La conditiondunombre maximumd’ingr´ edients dans le m´ elange s’exprime
alors simplement par :
n
¸
i=1
y
i
≤ 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 x
i
:
1. Soit x
i
> 0. Alors, par les contraintes (6.5), la variable y
i
doit valoir 1 et
exprime bien que l’ingr´ edient i est dans le m´ elange.
2. Soit x
i
= 0. Alors, par les contraintes (6.5), la variable y
i
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 y
i
soit une parfaite indicatrice de x
i
> 0, il faut
ajouter la contrainte suivante :
m
i
y
i
≤ x
i
avec m
i
, la teneur minimum d’un ingr´ edient dans le m´ elange. Cette nouvelle
contrainte forcera y
i
` a z´ ero lorsque x
i
est nul.
6.2.4 Choix parmi un nombre discret de valeurs
Dans beaucoup de probl` emes industriels, lors du dimensionnement d’un appareil-
lage, 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 ´ etant le diam` etre choisi et d´ efinissons y
i
une
indicatrice du fait que le diam` etre num´ ero i a ´ et´ e choisi. On peut alors ´ ecrire la
relation suivante pour le choix du diam` etre :
x = 12y
1
+ 17y
2
+ 24y
3
+ 47y
4
avec la contrainte qu’un seul diam` etre doit ˆ etre choisi :
y
1
+ y
2
+ y
3
+ y
4
= 1 (6.7)
et bien sˆ ur en imposant le caract` ere binaire de chaque indicatrice :
y
i
∈ {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´ ero.
74 Chapitre 6. La programmation en nombres entiers.
6.3 M´ ethode de branch and bound
La m´ ethode de “branch and bound” ou encore appel´ ee m´ ethode de s´ eparation et
´ evaluation que nous allons maintenant d´ ecrire est destin´ ee ` a r´ esoudre les probl` emes
en nombres entiers du type suivant :
z

= max c
T
x
s.c.q.

Ax ≤ b,
x ≥ 0 et entiers.
Cette m´ ethode peut ´ egalement ˆ etre appliqu´ ee aux probl` emes avec variables binaires
(z´ ero-un). Elle peut ´ egalement ˆ etre 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 = 10x
1
+ 50x
2
s.c.q.

−x
1
+ 2x
2
≤ 5,
x
1
+ 2x
2
≤ 14,
x
1
≤ 8,
x
1
, x
2
≥ 0 et entiers
(6.8)
La r´ egion r´ ealisable est repr´ esent´ ee ` a la figure 6.2.
x1
x
2
0 1 2 3 4 5 6 7 8
5
4
3
2
1
0
P
0
P
1
P
2
P
3
P
5
Figure 6.2: Repr´ esentation de la r´ egion r´ ealisable.
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 ´ egaliser.
Question 1 : comment construire une borne inf´ erieure sur z

?
La r´ 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.
Question 2 : comment construire une borne sup´ erieure sur z

?
Une fa¸ con 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 :
x
1
= 4, 5
x
2
= 4, 75
z
0
= 282, 5.
Cette solution est inacceptable car elle viole les contraintes d’int´ egralit´ e des va-
riables. 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)
d’op´ erer une s´ eparation : la r´ egion r´ ealisable va ˆ etre s´ epar´ ee en deux sous-r´ egions
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´ erents choixsont possibles et de ce choixpeut d´ 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 x
1
. On va effectuer un branchement
sur cette variable. Comme x
1
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 x
1
≤ 4 soit x
1
≥ 5
Cependant imposer cette condition va ´ eliminer la solution courante P
0
de la relaxa-
tion lin´ eaire. En g´ en´ eral si la variable choisie x
k
a la valeur fractionnaire N + ,
on imposera :
soit x
k
≤ N soit x
k
≥ N + 1
En imposant s´ epar´ ement l’une et l’autre conditions, on obtient deux sous-
mod` eles, un mod` ele fils et un mod` ele fille. Ce que l’on repr´ esente par une dia-
gramme du type de celui de la figure 6.3. Chaque nœud de cette figure correspond
z
0
= 282, 5
x
1
= 4, 50
x ,
2
= 4 75
x
1
4
x
1
5
z
1
= 265
x
1
= 4
x
2
= 4, 5
z
2
= 275
x
1
= 5
x
2
= 4, 5
x
2
4 x
2
5
z
3
= 260
x
1
= 6
x
2
= 4
z
4
= ∞
Probl` eme
non r´ ealisable
x
2
4
x
2
5
z
5
= 240
x
1
= 4
x
2
= 4
z
6
= ∞
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 x
1
≤ 4, tandis que le nœud 2 correspond au
mod` ele original avec en plus la restriction x
1
≥ 5. On a ici num´ erot´ e les nœuds
dans l’ordre o` u ils ont ´ et´ e g´ en´ er´ es.
On peut maintenant r´ esoudre les relaxations lin´ eaires correspondant aux pro-
bl` emes fils et fille. Dans notre exemple, on obtient les deux solutions suivantes :
Noeud 1 : x
1
= 4, x
2
= 4, 5, z
1
= 265.
Noeud 2 : x
1
= 5, x
2
= 4, 5 z
2
= 275.
Remarquez que les valeurs atteintes par la fonction objectif sont moins ´ elev´ ees
que dans la relaxation lin´ eaire pr´ ec´ edente. Ceci n’est pas ´ etonnant : 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(z
1
, z
2
) = 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 x
2
est non enti` ere. On la choisit donc pour op´ erer le branche-
ment suivant :
soit x
2
≤ 4 soit x
2
≥ 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 : x
1
= 6, x
2
= 4, z
3
= 260.
Noeud 4 : non r´ ealisable
Noter que, au nœud 3, on a obtenu une solution enti` ere dont la valeur correspon-
dante 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 z
1
= 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
´ etait termin´ ee.
Pas 1. Brancher sur une variable non enti` ere.
On branche ici sur x
2
en cr´ eant les nœuds 5 et 6 par la s´ eparation suivante :
soit x
2
≤ 4 soit x
2
≥ 5
On r´ esout les relaxations lin´ eaires correspondantes. On obtient :
Noeud 5 : x
1
= 4; x
2
= 4, z
5
= 240
Noeud 6 : impossible
La m´ ethode est termin´ ee puisqu’il n’existe plus de nœud ` a diviser. On d´ eter-
mine la solution optimale comme ´ etant la meilleure solution enti` ere trouv´ ee. 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 meil-
leure 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´ ethode 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.
Section 6.4. Exercices 79
6.4 Exercices
6.1. M´ elange de maximum4 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’ˆ etre ` 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 coˆ ut. La derni` ere colonne repr´ esente le coˆ ut
de construction de chaque ´ emetteur.
Ville Lille Dunkerque Valencienne Basieux Coˆ ut
Emetteur 1 1 1 25
Emetteur 2 1 1 30
Emetteur 3 1 1 15
Emetteur 4 1 1 35
Emetteur 5 1 1 1 90
Tableau 6.2: Accessibilit´ e des villes ` a partir des ´ emetteurs.
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 ´ emetteur et ceci ` a coˆ ut d’investissement total minimum.
80 Chapitre 6. La programmation en nombres entiers.
6.3. Probl` eme d’affectation de lignes a´ eriennes. Une petite compagnie a´ erien-
ne 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 OMpar 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´ esenter le probl` eme
(comme dans les probl` emes d’ordonnancement de projets).
Les origines des mod` eles sur r´ 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).
• Les probl` emes de planification des t ˆ aches : il s’agit ici de d´ eterminer l’en-
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 r´ esolution : la m´ ethode potentiel et la
m´ ethode PERT (voir cours de licence).
• Les probl` emes 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).
Les mod` eles sur r´ eseau sont le plus souvent des mod` eles lin´ eaires qui peuvent
donc ˆ etre r´ esolus par l’algorithme du Simplexe mais pour lesquels il existe souvent
un algorithme sp´ ecialis´ e plus efficace que le Simplexe.
83
84 Chapitre 7. Les mod`eles sur r´eseau
7.1 Le probl` eme de transport simple
Le probl` eme de transport simple se rencontre lorsque l’on a un bien homog` ene
(gaz, eau, ´ electricit´ 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` ere ` a minimiser le coˆ ut total de transport sur le r´ eseau. On connaˆıt c
ij
,
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 minimumtout 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ˆ ut 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 ˆ etre repr´ esent´ e
par un graphe. Rappelons la d´ efinition de graphe.
Section 7.1. Le probl`eme de transport simple 85
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 Aun 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).
3
2
1 1
2
s
1
135
s
2
56
s
3
93
D
2
= 83
D
3
= 39
D
4
= 91
D
1
= 62
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
x
ij
la quantit´ e transport´ ee annuellement du producteur i au client j;
s
i
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 =
¸
(i,j)∈A
c
ij
x
ij
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 ˆ etre ´ egale ` a
sa demande :
¸
i|(i,j)∈A
x
ij
= D
j
, j = 1, . . .n
(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
´ egale ` a sa capacit´ e de production :
¸
j|(i,j)∈A
x
ij
= s
i
≤ K
i
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
¸
i=1
K
i

n
¸
j=1
D
j
Il ne faut ´ evidemment 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 ´ egalement 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 : x
ij
= 0 pour tout (i, j) impossible.
2. On peut p´ enaliser l’utilisation de tels chemins par un coefficient objectif c
ij
tr` es ´ elev´ 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.
Section 7.2. Planification de la production 87
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’´ enonce 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 ´ egalement 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´ evrier 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
Le coˆ ut de production est de 1 par unit´ e produite en heures normales, alors
qu’il est de 1,5 par unit´ e produite en heures suppl´ ementaires. Le coˆ ut de stockage
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 x
ij
la quantit´ e produite en heures normales ` a la p´ eriode i pour
satisfaire une demande de p´ eriode j avec i = 1, 2, . . .4 et j = i, i + 1, . . .4.
De mani` ere semblable, y
ij
d´ esigne la quantit´ e produite en heures suppl´ e-
mentaires ` 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 x
ijk
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 ´ evidemment pas de coˆ ut de production pour une production post´ e-
rieure ` a la p´ eriode de demande.
88 Chapitre 7. Les mod`eles sur r´eseau
Demande
Production Janvier F´ evrier Mars Avril
Janvier h.norm. 1 1,3 1,6 1,9
h.supp. 1,5 1,8 2,1 2,4
F´ evrier h.norm. - 1 1,3 1,6
h.supp. - 1,5 1,8 2,1
Mars h.norm. - - 1 1,3
h.supp. - - 1,5 1,8
Avril 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 (x
ij
, y
ij
≥ 0, i = 1, . . .4, j = 1, . . .4),
il existe deux types de contraintes :
• Les contraintes de satisfaction de la demande s’´ ecrivent ici comme :
x
11
+ y
11
= 80,
x
12
+ y
12
+ x
22
+ y
22
= 200,
x
13
+ y
13
+ x
23
+ y
23
+ x
33
+ y
33
= 300,
x
14
+ y
14
+ x
24
+ y
24
+ x
34
+ y
34
+ x
44
+ y
44
= 200.
• Les contraintes de capacit´ e s’´ ecrivent ici comme :
x
11
+ x
12
+ x
13
+ x
14
≤ 100,
y
11
+ y
12
+ y
13
+ y
14
≤ 50,
x
22
+ x
23
+ x
24
≤ 150,
y
22
+ y
23
+ y
24
≤ 75,
x
33
+ x
34
≤ 140,
y
33
+ y
34
≤ 70,
x
44
≤ 160,
y
44
≤ 80.
Remarquez que si l’on raisonne en termes de probl` eme de transport, les quan-
tit´ es x
ij
sont des quantit´ es transport´ ees de laproductionaumois i vers une demande
au mois j et la somme des coˆ uts de production et de stockage joue ici le rˆ ole de
coˆ ut de transport.
Section 7.3. Probl`eme d’affectation optimale 89
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 t
ij
, 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 x
ij
= 1 si personne i affect´ ee au poste j, x
ij
= 0, dans le cas contraire.
2. Formulation de l’objectif :
L’objectif est de minimiser l’inefficacit´ e totale de l’affectation :
minz =
n
¸
i=1
n
¸
j=1
t
ij
x
ij
3. Formulation des contraintes : Il y a deux types de contraintes :
• chaque poste j doit ˆ etre pourvu :
n
¸
i=1
x
ij
= 1, j = 1, . . .n
Cette contrainte exprime qu’exactement une personne est affect´ ee ` a
chaque poste.
• chaque personne i est employ´ ee :
n
¸
j=1
x
ij
= 1, i = 1, . . .n
Cette contrainte exprime qu’exactement un poste est affect´ e ` a chaque
personne.
• et bien sˆ ur, il faut ajouter les contraintes d’int´ egrit´ e des variables :
x
ij
∈ {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
+15
5
4
2
4
6
1
5
6
3
2
-9
-6
4
0
1
2
3
4
5
6
7
+10
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 x
ij
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 =
¸
(i,j)∈A
c
ij
x
ij
.
o` u c
ij
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 = x
02
15 = x
13
x
02
+ x
42
= x
23
+ x
24
+ x
25
x
23
+ x
13
= x
34
+ x
37
Section 7.4. Le probl`eme de transport g´en´eral 91
x
24
+ x
34
= x
42
+ x
45
+ x
46
x
25
+ x
45
= 9
x
46
+ x
76
= 10
x
37
= x
76
+ 6
En mettant toutes les variables ` a gauche et toutes les constantes ` a droite, on obtient
le syst` eme suivant d’´ egalit´ es :
x
02
= 10
x
13
= 15
−x
02
+x
23
+x
24
+x
25
−x
42
= 0
−x
13
−x
23
+x
34
+x
37
= 0
−x
24
−x
34
+x
42
+x
45
+x
46
= 0
−x
25
−x
45
= −9
−x
46
−x
76
= −10
−x
37
x
76
= −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 co-
lonne 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 13 23 24 25 34 37 42 45 46 76
0 1
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 ` a un autre sur un r´ eseau routier par la route la plus courte. Ala figure 7.3,
92 Chapitre 7. Les mod`eles sur r´eseau
1
1
1
2 1
1
3
4
1
2
2
1
1
2
0
1
2
4
5
6
7
8
3
3
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 ˆ etre
reformul´ e en un probl` eme 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` eme du flot maximumest celui que l’on rencontre lorsque l’on veut, pour
un r´ eseau de transport, d´ eterminer le flot maximumde voitures qu’il peut supporter
avant d’arriver ` a saturation. Etant donn´ e des capacit´ es des arcs (voir les chiffres
12
20
6
2
3
7
6
5
8
9
4
0
1
2
3
4
5
6
7
E
S
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.
Section 7.5. Exercices 93
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 produc-
tion varie ´ egalement 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 orga-
niser 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 Commandes Capacit´ e Coˆ ut de production Coˆ ut de stockage
Janvier 10 25 1,08 0,015
F´ evrier 15 35 1,11 0,015
Mars 25 30 1,10 0,015
Avril 20 10 1,13 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 Origine Destination Capacit´ e
1 A B 3
2 A C 7
3 C B 2
4 C D 2
5 B D 4
6 C E 4
7 E D 2
8 D F 6
9 E F 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 probl` eme.
94 Chapitre 7. Les mod`eles sur r´eseau
7.3. Tourn´ ees de v´ ehicules. Consid´ erons le probl` eme d’organisation des tour-
n´ 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 ville 4 incin´ erateur
De la ville 1 0 10 ∞ ∞ 45
De la ville 2 10 0 5 ∞ ∞
De la ville 3 ∞ 5 0 5 20
De la ville 4 ∞ ∞ 5 0 ∞
De l’incin´ erateur 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 probl` eme.
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 ´ etablir son plan de
mutation, tient compte du d´ esagr´ ement d’ˆ etre 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´ ement sera d’autant plus grand que la nouvelle
affectation sera ´ eloign´ ee. Pour les 5 officiers ` a muter cette ann´ ee, on a
´ etabli le coˆ ut de les affecter ` a chacun des 4 autres postes occup´ es par les
coll` egues. On d´ esire d´ eterminer l’affectation des officiers qui minimise
Coˆ ut pour d’ˆ etre mut´ e au poste
l’officier a b c d e
A - 12 15 11 17
B 6 - 14 12 16
C 8 17 - 21 17
D 7 16 9 - 12
E 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` eme de
transport simple introduit au chapitre 7. Pour rappel, il s’agit du probl` eme obtenu
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 r´ esolution 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),
que nous appellerons le potentiel du nœud. On d´ efinit le coˆ ut r´ eduit de l’arc (i, j)
comme
c
π
ij
= c
ij
−π(i) + π(j) (8.1)
Prenons un exemple d’utilisation de la notion de coˆ ut r´ eduit. Il s’agit du
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 d
i
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 d
i
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 c
ij
indique
95
96 Chapitre 8. R´esolution du probl`eme de transport simple
d
i
i
c
ij
j
d
j
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 ˆ etre v´ erifi´ ee :
d
j
≤ d
i
+ c
ij
(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
= d
i
+ c
ij
Soit le plus court chemin passe par un autre arc et passer par i est plus long :
d
j
< d
i
+ c
ij
Dans les deux cas, on a bien que (8.2) est satisfaite. Ce qui peut se r´ ecrire :
c
ij
+ d
i
−d
j
≥ 0, ∀(i, j) ∈ A
En posant π
i
= −d
i
, il est ´ equivalent de dire que
c
π
ij
= c
ij
−π
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.
4
1
d
1
= 0
d
2
= 2
d
3
= 2
d4 = 3
c
12
= 2
c
13
= 2
c
23
= 1
c
24
= 3
c
34
= 1
2
3
Figure 8.2: Application de la notion de coˆ ut r´ eduit.
Pour d´ eterminer d
i
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 :
Section 8.2. Notion de coˆ ut r´eduit 97
1. le label courant du nœud, not´ e d
i
, 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 p
i
, 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 l
o
= 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
← c
oj
, sinon d
j
← ∞;
2. It´ erationk. On s´ electionne l’´ el´ ement q ∈ S de label provisoire d
q
minimum:
q ∈ S|d
q
= min
j∈S
d
j
Ce nœud q est d´ eplac´ e de l’ensemble S vers l’ensemble T :
T = T ∪ {q} et S = S \ {q}
On remet alors ` a jour les labels provisoires des ´ el´ ements de S. Pour tout
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 d
q
+ c
qj
< d
j
, alors d
j
= d
q
+ c
qj
et p
j
= q
3. Terminaison. L’algorithme s’arrˆ ete d` es que l’on a d´ etermin´ e le label
d´ efinitif du sommet de destination d, c’est-` a-dire d` es 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 l
d
.
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 4
d
i
0 2 2 +∞
p
i
− 1 1 −
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
d
i
0 2 2 5
p
i
− 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
d
i
0 2 2 3
p
i
− 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
= −d
i
, on peut en d´ eduire
π
1
= 0, π
2
= −2, π
3
= −2, π
4
= −3.
On en d´ eduit le calcul des coˆ uts r´ eduits (c
π
ij
= c
ij
−π
i
+ π
j
) :
c
π
12
= 2 + 0 −2 = 0
c
π
13
= 2 + 0 −2 = 0
c
π
23
= 1 + 2 −2 = 1
c
π
24
= 3 + 2 −3 = 2
c
π
34
= 1 + 2 −3 = 0
qui s’interpr` ete comme le surcoˆ ut d’utiliser cet arc par rapport au plus court chemin.
Section 8.3. Le probl`eme de transport simple 99
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 ´ egalement, 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.
m
2
1
n
1
2
s

d

E
S
Figure 8.3: Probl` eme de transport simple.
On choisit comme variable x
ij
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 d
ij
. L’objectif se formule
donc comme
z = min
¸
(i,j)∈A
c
ij
x
ij
o` u Aest 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 ´ evident que si transporter du flot coˆ ute, on va, ` a la solution optimale, tout
juste satisfaire la demande en chaque nœud de demande. Autrement dit, on aura
que :
¸
i|(i,j)∈A
x
ij
= d
j
∀j ∈ N
d
Supposons que l’offre totale soit ´ egale ` a la demande globale, autrement dit que
¸
i∈N
s
s
i
=
¸
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´ emen-
taire auquel on attribue l’exc´ edent d’offre sur la demande (
¸
i∈N
s
s
i

¸
j∈N
d
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.
Dans ce cas, chaque arc d’entr´ ee doit ´ egalement ˆ etre utilis´ e ` a pleine capacit´ e
et nous aurons semblablement que
¸
j|(i,j)∈A
x
ij
= s
i
∀i ∈ N
s
On voit donc qu’avec les hypoth` eses faites dans le cas du r´ eseau 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
¸
(i,j)∈A
c
ij
x
ij
s.c.q.

¸
j|(i,j)∈A
x
ij
= s
i
∀i ∈ N
s
¸
i|(i,j)∈A
x
ij
= d
j
∀j ∈ N
d
x
ij
≥ 0 ∀(i, j) ∈ A
(8.3)
8.4 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 ´ egalement 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 trans-
port minimum.
8.4.1 R´ esolution par le Simplexe
Appelons c
ij
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
Section 8.4. R´esolution du probl`eme de transport simple 101
Coˆ ut de Destination Capacit´ e
fourniture St-Brieuc Poitiers Melun Toulouse de
venant 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 x
ij
la quantit´ e transport´ ee de l’usine i au d´ epˆ ot j, le probl` eme se formule
comme suit :
z = min
3
¸
i=1
4
¸
j=1
c
ij
x
ij
s.c.q.

4
¸
j=1
x
ij
= CAP
i
∀i = 1, . . .3
3
¸
i=1
x
ij
= DEM
j
∀j = 1, . . .4
x
ij
≥ 0 ∀(i, j)
(8.4)
Remarquez que le probl` eme est parfaitement ´ equilibr´ e car :
3
¸
i=1
CAP
i
=
4
¸
j=1
DEM
j
Ce probl` eme lin´ eaire peut ˆ etre 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´ ethode. Pour la d´ etermination d’une
solution de d´ epart, au moins deux m´ ethodes heuristiques peuvent ˆ etre utilis´ ees :
• la m´ ethode du coin Nord-Ouest;
• la m´ ethode de Houthakker.
La m´ ethode du coin Nord-Ouest :
La m´ ethode du coin Nord-Ouest consiste ` a attribuer le plus grand nombre possible
` a la case situ´ ee le plus ` a l’Ouest (1er crit` ere) et le plus au Nord (2` eme crit` ere)
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 ´ etant utilis´ ee, 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 ´ etant 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 Destination Capacit´ e
venant St-Brieuc Poitiers Melun Toulouse de
de l’usine
Lyon 9 9
Strasbourg 1 14 2 17
Lille 5 4 9
Demande 10 14 7 4
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 c
ij
le plus faible. Melunest livr´ ee par l’usine
Section 8.4. R´esolution du probl`eme de transport simple 103
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 ´ etant 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 coˆ uts 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 Trestantes de Strasbourg ` a Toulouse. On obtiendra
le tableau 8.3 pour un coˆ ut de 6.714 kF.
Fourniture Destination Capacit´ e
venant St-Brieuc Poitiers Melun Toulouse de
de l’usine
Lyon 9 9
Strasbourg 10 3 4 17
Lille 2 7 9
Demande 10 14 7 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
´ egal ` 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 :
Pour chaque case pr´ esentant une valeur nulle, on calcule le coˆ ut marginal engendr´ e
par le d´ eplacement d’une unit´ e 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 Strasbourg-
Poitiers. Ce qui repr´ esente un coˆ ut de
+264 −130 −279 + 244 = +99.
Le solde ´ etant positif, l’op´ eration n’est pas int´ eressante.
104 Chapitre 8. R´esolution du probl`eme de transport simple
Poitiers Melun
Lyon -1 (x 130) +1 (x 139)
Lille +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´ ee au tableau 8.4. Ce qui
repr´ esente un coˆ ut de
−130 + 139 + 166 −66 = +109.
Le solde ´ etant 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
Poitiers Toulouse
Lyon -1 (x 130) +1 (x 160)
Strasbourg +1 (x 244) -1 (x 307)
Tableau 8.5: Calcul du troisi` eme coˆ ut marginal
repr´ esente un coˆ ut de
−130 + 160 + 244 −306 = −33.
Le solde ´ etant 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 ´ etape 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 u
i
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 :
u
i
+ v
j
= c
ij
Section 8.4. R´esolution du probl`eme de transport simple 105
Pour la solution du tableau 8.3, on a donc que :
u
1
+ v
2
= 130
u
2
+ v
1
= 279
u
2
+ v
2
= 244
u
2
+ v
4
= 307
u
3
+ v
2
= 166
u
3
+ v
3
= 66
Il s’agit d’un syst` eme de 6 ´ equations ` a 7 inconnues. On peut donc arbitrairement
fixer ` a z´ ero la valeur d’une variable (par exemple u
1
). On en d´ eduit imm´ ediatement
la valeur de toutes les autres variables :
u
1
= 0
v
2
= 130
u
2
= 114
u
3
= 36
v
1
= 165
v
4
= 193
v
3
= 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) :
d
ij
= c
ij
−(u
i
+ v
j
)
Ceci est fait au tableau 8.6.
v
1
= 165 v
2
= 130 v
3
= 30 v
4
= 193
u
1
= 0 264 - 0 130 - 0 139 -0 160 - 0
-165 =99 -130 = 0 -30 = 109 -193 = -33
u
2
= 114 279 -114 244 -114 146 -114 307 -114
-165 = 0 -130 = 0 - 30 = 2 -193 = 0
u
3
= 36 200 -36 166 -36 66 -36 278 -36
-165 = -1 -130 = 0 - 30 = 0 -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 Chapitre 8. R´esolution du probl`eme de transport simple
8.5 Exercices
8.1. Plan de transport. Une entreprise, sp´ ecialis´ ee dans la production de sau-
cisses, dispose de 4 laboratoires o` u elle ´ elabore 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
d
ij
CD
1
CD
2
CD
3
CD
4
CD
5
Offre
L
1
100 300 250 450 250 26
L
2
50 200 250 450 250 24
L
3
250 100 50 350 300 27
L
4
300 150 200 250 450 23
Demande 18 20 22 19 21
Tableau 8.7: Coˆ uts unitaires de transport
´ et´ 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’acheminement ` a coˆ 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 d´ ebouch´ 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 ´ egalement (voir tableau 8.8 pour les
donn´ ees 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` eme de transport g´ en´ eral introduit
au chapitre 7. Il s’agit de d´ eterminer le flot ` a coˆ ut minimum dans un r´ eseau de
transport g´ en´ eral. L’algorithme faisant appel ` a la notion de coˆ ut r´ eduit introduite
au chapitre 8. Elle fait ´ egalement appel ` a notion de r´ eseau 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´ es 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 ˆ etre 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 r´ esoudre 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 cherche ` a 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´ erons unarc (i, j) dont le fluxdoit ˆ etre compris entre une borne inf´ erieure
107
108 Chapitre 9. R´esolution du probl`eme de transport g´en´eral
0 et une borne sup´ erieure ´ egale ` a la capacit´ e de l’arc c
ij
(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 ´ egal ` a la capacit´ e
r´ esiduelle r
ij
qui se calcule comme suit :
r
ij
= c
ij
−f
ij
Mais on peut ´ egalement 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´ erieure z´ ero, ou ce qui est ´ equivalent,
faire circuler un flux au maximum de f
ij
dans un arc de j ` a i.
d
i
i
c
ij
j
d
j
d
i
i j
d
j
r
ij
= c
ij
f
ij
r
ji
= f
ij
Figure 9.1: Notion de r´ eseau r´ esiduel
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 ´ egale ` a la valeur actuelle du flux.
D´ efinition 9.1 Le r´ eseau r´ esiduel, not´ e G(f) consiste en les seuls arcs ayant une
capacit´ e r´ esiduelle r
ij
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 r´ esiduel est d´ ependante du flot actuel, ce que traduit la notation G(f).
9.3 R´ esolution du probl` eme de flot ` a coˆ ut minimum
Plusieurs algorithmes existent pour r´ esoudre ce probl` eme. Le lecteur int´ eress´ e en
trouvera quelques uns dans l’ouvrage de AHUJAet 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 109
9.3.1 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.
D´ efinition 9.2 Unpseudoflot f satisfait les contraintes de capacit´ es et de positivit´ e
des flux. On d´ efinit l’exc` es au nœud i, soit e(i) comme suit
e(i) = s(i) +
¸
k|(k,i)∈A
f
ki
−d(i) −
¸
j|((i,j)∈A
f
ij
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.
Le principe de l’algorithme est ` a chaque ´ etape de s´ electionner un nœud 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
, r
ij
)
o` u c
π
ij
d´ enote le coˆ ut r´ eduit de l’arc qui, pour rappel, se calcule comme suit :
c
π
ij
= c
ij
−π
i
+ π
j
et r
ij
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, j) ∈ A
π
i
= 0 ∀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
4
1
s
1
= 4
d
4
= 4
(2,4)
2
3
(3,3)
(1,5)
(2,2)
(1,2)
(c
π
ij
, r
ij
)=
e(1) = 4
π(1) = 0
e(2) = 0
π(2) = 0
e(3) = 0
π(3) = 0
e(4) = -4
π(4) = 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 c
π
ij
. 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), r
ij
∀(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 coˆ uts 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
4
1
s
1
= 4
d
4
= 4
(0,4)
2
3
(2,3)
(0,3) (0,2)
(1,2)
(c
π
ij
, r
ij
)=
e(1) = 2
π(1) = 0
e(2) = 0
π(2) = -2
e(3) = 0
π(3) = -2
e(4) = -2
π(4) = -3
(0,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
= 2 −0 + (−2) = 0
c
π
13
= 2 −0 + (−2) = 0
c
π
23
= 1 −(−2) + (−2) = 1
c
π
24
= 3 −(−2) + (−3) = 2
c
π
34
= 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´ ees sur les coˆ uts 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
= 0 + 2 = 2
f
13
= 2 + 0 = 2
f
23
= 0 + 2 = 2
f
24
= 0 + 0 = 0
f
34
= 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.
3
2
1
3
1
2
4
4
Figure 9.4: Probl` eme d’affectation.
Section 9.4. Application au probl`eme d’affectation 113
Nous le compl´ etons le graphique en mettant les temps pour effectuer chacune
des tˆ 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.
3
2
1
7
5
6
4
0
9
0
0
0
0
5
10
8
12
0
0
0
0
15
11
3
15
20
8
4 4
0
0
0
0
3
3
8
12
11
0
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 :
c
01
= 0 −0 + 0 = 0 c
37
= 15 −0 + (−12) = 3
c
02
= 0 −0 + 0 = 0 c
38
= 11 −0 + (−11) = 0
c
03
= 0 −0 + 0 = 0 c
47
= 15 −0 + (−12) = 3
c
04
= 0 −0 + 0 = 0 c
48
= 20 −0 + (−11) = 9
c
15
= 5 −0 + (−3) = 2 c
59
= 0 −(−3) + (−3) = 0
c
16
= 10 −0 + (−8) = 2 c
69
= 0 −(−8) + (−3) = 5
c
26
= 8 −0 + (−8) = 0 c
79
= 0 + 12 −3 = 9
c
27
= 12 −0 + (−12) = 0 c
89
= 0 + 11 −3 = 8
c
35
= 3 −0 + (−3) = 0
On remet ` a jour le r´ eseau r´ esiduel. Ceci est fait ` a la figure 9.6.
3
2
1
7
5
6
4
0
9
0
0
0
0
2
2
0
0
0
5
9
8
3
0
0
3
9
8
4 4
0
0
2
0
2
5
0
0
2
0
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.
Section 9.4. Application au probl`eme d’affectation 115
On met ` a jour les coˆ uts r´ eduits :
c
01
= 0 −0 + 0 = 0 c
37
= 15 −(−2) + (−12) = 5
c
02
= 0 −0 + 0 = 0 c
38
= 11 −(−2) + (−13) = 0
c
03
= 0 −0 + (−2) = −2 c
47
= 15 −0 + (−12) = 3
c
04
= 0 −0 + 0 = 0 c
48
= 20 −0 + (−13) = 7
c
15
= 5 −0 + (−5) = 0 c
59
= 0 −(−5) + (−8) = −3
c
16
= 10 −0 + (−8) = 2 c
69
= 0 −(−8) + (−8) = 0
c
26
= 8 −0 + (−8) = 0 c
79
= 0 −(−12) −8 = 4
c
27
= 12 −0 + (−12) = 0 c
89
= 0 −(−13) −8 = 5
c
35
= 3 −(−2) + (−5) = 0
On remet ` a jour le r´ eseau r´ esiduel. Ceci est fait ` a la figure 9.7.
3
2
1
7
5
6
4
0
9
0
0
2
0
0
2
0
0
3
0
4
5
5
0
0
3
7
8
4 4
0
2
0
0
0
5
2
2
0
0
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 :
c
01
= 0 −0 + 0 = 0 c
37
= 15 −(−2) + (−14) = 3
c
02
= 0 −0 + (−2) = −2 c
38
= 11 −(−2) + (−13) = 0
c
03
= 0 −0 + (−2) = −2 c
47
= 15 −0 + (−14) = 1
c
04
= 0 −0 + 0 = 0 c
48
= 20 −0 + (−13) = 7
c
15
= 5 −0 + (−5) = 0 c
59
= 0 −(−5) + (−13) = −8
c
16
= 10 −0 + (−10) = 0 c
69
= 0 −(−10) + (−13) = −3
c
26
= 8 + 2 + (−10) = 0 c
79
= 0 −(−14) −13 = 1
c
27
= 12 + 2 + (−14) = 0 c
89
= 0 −(−13) −13 = 0
c
35
= 3 −(−2) + (−5) = 0
On remet ` a jour le r´ eseau r´ esiduel. Ceci est fait ` a la figure 9.8.
3
2
1
7
5
6
4
0
9
0
2
2
0
0
0
0
0
8
3
1
0
3
0
0
1
7
8
4 4
0
2
0
0
2
2
2
1
2
0
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
= 1
x

22
= 1
x

34
= 1
x

43
= 1
Section 9.5. Exercices 117
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 A B C D E F G H I J K L
Age (mois) 2 1 4 3 2 4 5 2 1 4 5 3
Tableau 9.1: Stocks de m´ edicaments
Le laboratoire qui fabrique ce m´ edicament a ´ etabli que son efficacit´ e va d´ e-
croissant avec le nombre de mois ´ ecoul´ es depuis sa production (voir tableau
9.2).
Age (mois) 0 1 2 3 4 5 6 7 8 9
Efficacit´ e (%) 100 99 97 94 88 83 81 78 76 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 1 2 3 4 5
Besoins 3 2 4 1 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.
(a) D´ eterminez une affectation qui corresponde ` a la r` egle du premier entr´ e
= premier sorti et calculer son efficacit´ e globale.
(b) D´ eterminez une affectation qui corresponde ` a la r` egle du dernier entr´ e
= premier sorti et calculer son efficacit´ e globale.
(c) Formuler le probl` eme de la d´ etermination de l’affectation d’efficacit´ e
globale maximumcomme 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.
Tˆ ache 1 Tˆ ache 2 Tˆ ache 3 Tˆ ache 4
Ouvrier 1 45 - - 30
Ouvrier 2 50 55 15 -
Ouvrier 3 - 60 25 75
Ouvrier 4 45 - - 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´ ee 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` ere ´ etape, dont la
r´ esolution est triviale. Ensuite, et en proc´ edant ` a rebours, on ´ etend progressivement
le probl` eme en incluant les ´ etapes pr´ ec´ edentes et en calculant la politique optimale
` a chaque ´ etape 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 am´ ericain il y a plus d’un si` ecle.
Son point de d´ epart et sa destination sont connus. Il effectue son voyage en quatre
´ etapes. A chaque ´ etape, il a le choix de se diriger vers plusieurs ´ etats. A la
figure 10.1, on a repr´ esent´ e chaque ´ etat par un cercle. Son ´ etat de d´ epart est l’´ etat
1 et son ´ etat d’arriv´ ee est l’´ etat 10.
Le voyageur souscrit ` a chaque ´ etape une police d’assurance dont le coˆ ut 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` ere ` a choisir la route la
plus sˆ ure en minimisant la somme des polices d’assurance pour le passage d’´ etat
en ´ etat.
Notez d’abord que l’approche tr` es simple qui consiste ` a choisir ` a chaque ´ etape
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.
1
2
3
4
5
6
7
8
9
10
1
2
4
3
7
6
4
4
4
3
2
5
1
4
6
3
3
3
3
4
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
´ etape, on peut gagner aux ´ etapes ult´ erieures. En effet, par exemple la route 1 →
4 → 6 → 9 → 10 permet un coˆ ut 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 dyna-
mique commence avec une petite portion du probl` eme original, trouve la solution
optimale pour cette portion du probl` eme. Ensuite on ´ elargit progressivement le
probl` eme, en d´ eterminant la nouvelle solution optimale ` a partir de la pr´ ec´ edente.
Pour le probl` eme du voyageur, on consid` ere le probl` eme 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 ´ elargit d’une unit´ e le nombre d’´ etapes ` a effectuer. On peut ensuite d´ eduire la
strat´ egie optimale pour la troisi` eme ´ etape en fonction de la strat´ egie optimale pour
la derni` ere ´ etape.
En programmation dynamique, deux types de variables sont associ´ ees ` a chaque
´ etape. La variable s
t
indique l’´ etat du syst` eme au d´ ebut de l’´ etape t. Cette
variable doit contenir toute l’information r´ esultant des choix effectu´ es aux ´ etapes
pr´ ec´ edentes. La variable x
t
indique la d´ ecision strat´ egique prise ` a l’´ etape t. Ainsi,
dans notre exemple, notons s
t
l’´ etat de d´ epart de l’´ etape t tandis que x
t
note la
destination de l’´ etape t.
On note par f
t
(s
t
, x
t
) le coˆ ut total de la meilleure strat´ egie pour les ´ etapes
restantes, si l’on se trouve au d´ ebut de l’´ etape t dans l’´ etat du syst` eme s
t
et que
Section 10.1. Le probl`eme du voyageur 121
l’on prend x
t
comme d´ ecision strat´ egique ` a l’´ etape t. Notons par x

t
la valeur de
x
t
qui minimise f
t
(s
t
, x
t
) et f

t
(s
t
) la valeur minimum correspondante. On a donc
que :
f

t
(s
t
) = min
x
t
f
t
(s
t
, x
t
) = f
t
(s
t
, x

t
)
Ainsi, dans notre exemple, f
t
(s
t
, x
t
) note le coˆ ut total de la meilleure strat´ egie
pour les ´ etapes restantes si le voyageur est dans l’´ etat s
t
` a l’´ etape t et s´ electionne
comme ´ etat suivant l’´ etat x
t
.
La programmation dynamique va d´ eterminer successivement f

4
(s
4
), f

3
(s
3
),
f

2
(s
2
), f

1
(s
1
) pour chaque ´ etat possible s
t
` a l’´ etape t et utiliser par exemple f

2
(s
2
)
pour calculer f

1
(s
1
).
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 ´ etat courant s
4
(ici s
4
= 8
ou 9) et sa destination finale x
4
= 10. Le tableau 10.1 reprend les coˆ uts minimaux
de la derni` ere ´ etape ainsi que la d´ ecision optimale en fonction de l’´ etat de d´ epart.
s
4
x

4
f

4
(s
4
)
8 10 3
9 10 4
Tableau 10.1: Coˆ uts minimaux de la derni` ere ´ etape
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 ` a l’´ etape 3 vers l’´ etat 8 ou 9 ` a un coˆ ut respectif de c
5,8
= 1 ou c
5,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 x

3
= 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 ´ etats possibles ` a l’´ etape 3,
c’est-` a-dire les ´ etats s
3
= 6 et s
3
= 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 ´ etats destination sont cette
fois au nombre de trois : il s’agit de x
2
= 5, x
2
= 6 ou x
2
= 7 tandis que les ´ etats
de d´ epart possibles sont s
2
= 2, s
2
= 3 ou s
2
= 4. Pour les ´ etats 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.
s
3
x
3
= 8 x
3
= 9 x

3
f

3
(s
3
)
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 ´ etape
s
2
x
2
= 5 x
2
= 6 x
2
= 7 x

2
f

2
(s
2
)
2 7 + 4 = 11 4 + 7 = 11 6 + 6 = 12 5 ou 6 11
3 3 + 4 = 7 2 + 7 = 9 4 + 6 = 10 5 7
4 4 + 4 = 8 1 + 7 = 8 5 + 6 = 11 5 ou 6 8
Tableau 10.3: Coˆ ut minimaux de la deuxi` eme ´ etape
Enfin, pour terminer, le probl` eme de premi` ere ´ etape (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` ere ´ etape plus le coˆ ut minimum des
´ etapes ult´ erieures. On obtient les r´ esultats de la table 10.4.
s
1
x
1
= 2 x
1
= 3 x
1
= 4 x

1
f

1
(s
1
)
1 2 + 11 = 13 4 + 7 = 11 3 + 8 = 11 3 ou 4 11
Tableau 10.4: Coˆ ut minimaux de la premi` ere ´ etape
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 s
2
= 3 est x

2
= 5 (voir tableau
10.3), ce qui dans l’´ etape t = 3 conduit ` a l’´ etat s
3
= 5. La strat´ egie optimale pour
s
3
= 5 consiste ` a choisir x

3
= 8 (voir tableau 10.2). On se retrouve en s
4
= 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
s
t
1 3 5 8
x

t
3 5 8 10
Section 10.2. R´esolution des probl`emes dynamiques 123
10.2 R´ esolution des probl` emes dynamiques
Nous allons ici r´ esumer la notation utilis´ ee en programmation dynamique ainsi
que la m´ ethode de r´ esolution.
Rappelons qu’un probl` eme dynamique est divis´ e en ´ etapes indic´ ees par t. A
chaque ´ etape, l’´ etat initial est caract´ eris´ e par s
t
et on prend une d´ ecision strat´ egique
not´ ee x
t
.
Les probl` emes dynamiques peuvent ˆ etre repr´ esent´ es comme ` a la figure 10.2.
A l’´ etape t, on est dans l’´ etat s
t
. En d´ ecidant la politique x
t
, on am` ene le syst` eme
` a l’´ etape t + 1 ` a ˆ etre dans l’´ etat s
t+1
.
Etat : s
t+1
s
t
Etape
t
Etape
t + 1
D´ ecision strat´ egique
x
t
f(s
t
, x
t
)
f

t
(s
t+1
)
Figure 10.2: R´ esolution des probl` emes dynamiques
Du point de vue de l’objectif, la politique optimale a d´ ej` a ´ et´ e calcul´ ee en t +1,
et donne une valeur optimale pour les ´ etapes ult´ erieures de f

t+1
(s
t+1
). La d´ ecision
x
t
donne une certaine contribution ` a l’objectif qui vient s’ajouter ` a la pr´ ec´ edente
pour donner f
t
(s
t
, x
t
) au d´ ebut de l’´ etape t.
f
t
(s
t
, x
t
) = c
s
t
,x
t
+ f

t+1
(x
t
)
Par exemple, dans le cas du voyageur, la contribution de l’´ etape c
s
t
,x
t
est le coˆ ut
de l’assurance pour aller de s
t
` a x
t
. En optimisant par rapport ` a x
t
, on obtient
f

t
(s
t
) = min
x
t
{f
t
(s
t
, x
t
)}
On note par x

t
la politique optimale pour l’´ etape courante de sorte que l’on a que :
f

t
(s
t
) = f
t
(s
t
, x

t
)
On proc` ede de mˆ eme pour tous les ´ etats possibles s
t
de l’´ etape t et l’on
d´ etermine ainsi tous les valeurs optimales f

t
(s
t
). La proc´ edure peut alors ˆ etre
continu´ ee ` a rebours.
124 Chapitre 10. La programmation dynamique.
10.3 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 ´ egalement 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 Pays 1 Pays 2 Pays 3
1 45 20 50
2 70 45 70
3 90 75 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
´ etapes 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 ´ etapes.
Comment identifier les ´ etats ? Autrement dit, quelle est l’information n´ e-
cessaire ` a une ´ etape pour pouvoir d´ eterminer la politique optimale ? Il s’agit
simplement du nombre d’´ equipes m´ edicales qui restent disponibles. Notons s
t
le
nombre d’´ equipes encore disponibles au d´ ebut de l’´ etape t.
Notons p
t
(x
t
) la mesure de l’efficacit´ e de l’allocation de x
t
´ equipes m´ edicales
au pays t. Si, comme pr´ ec´ edemment, on note par f
t
(s
t
, x
t
) la contribution ` a
l’objectif des ´ etapes ult´ erieures ` a t et de l’´ etape t si l’on est dans l’´ etat s
t
et que
l’on prend la d´ ecision x
t
, on peut ´ ecrire :
f
t
(s
t
, x
t
) = p
t
(x
t
) + f

t+1
(s
t+1
)
avec p
t
(x
t
) le b´ en´ efice pour le pays t de recevoir x
t
´ equipes et s
t+1
le nombre
d’´ equipes encore disponibles au d´ ebut de l’´ etape t + 1. Celui-ci est li´ e ` a s
t
par la
relation de r´ ecurrence suivante :
s
t+1
= s
t
−x
t
.
La relation de r´ ecurrence liant f

n
et f

n+1
s’´ ecrit quant ` a elle comme suit :
f

t
(s
t
) = max
x
t
f
t
(s
t
, x
t
) = max
x
t

p
t
(x
t
) + f

t+1
(s
t
−x
t
)
¸
.
Section 10.3. Un probl`eme d’affectation de ressources rares 125
A l’´ etape t = 3, les ´ etats possibles vont de 1 (il faut au moins une ´ equipe pour
le pays 3) jusqu’` a 3 (on a au moins affect´ e une ´ equipe au pays 1 et une ´ equipe
au pays 2). A la derni` ere ´ etape, on a int´ erˆ et ` a affecter toutes les ´ equipes encore
disponibles (voir tableau 10.6).
s
3
x

3
f

3
(s
3
)
1 1 50
2 2 70
3 3 80
Tableau 10.6: Calculs de l’´ etape 3
A l’´ etape 2, les ´ etats 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 ´ equipe au pays
1). A la deuxi` eme ´ etape, au gain de l’´ etape, il faut ajouter le gain r´ esultant pour
l’´ etape 3 avec s
3
= s
2
−x
2
. Le d´ etail des calculs est donn´ e au tableau 10.7.
s
2
x
2
= 1 x
2
= 2 x
2
= 3 x

2
f

2
(s
2
)
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
De mˆ eme ` a l’´ etape 1, au gain de l’´ etape, il faut ajouter ceux des ´ etapes suivantes
avec s
2
= s
1
−x
1
. Le d´ etail des calculs est donn´ e au tableau 10.8.
s
1
x
1
= 1 x
1
= 2 x
1
= 3 x

1
f

1
(s
1
)
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 s
2
= 5 − 1 = 4 pour la
deuxi` eme ´ etape ou encore x

2
= 3, ce qui donne s
3
= 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
s
t
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 ta-
bleau 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 pro-
duction 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´ es. Le coˆ ut de stockage est de 10 par
unit´ e stock´ ee par mois. Le d´ elai de fabrication est n´ egligeable. 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 pro-
grammation dynamique. Pour cela, d´ efinissons la variable d’´ etat de la p´ eriode
t suivante :
s
t
= stock au d´ ebut de la p´ eriode t.
D´ efinissons aussi la variable de d´ ecision de la p´ eriode t suivante :
x
t
= production ` a la p´ eriode t.
On d´ efinit la fonction
f
t
(s
t
, x
t
)
comme ´ etant le coˆ ut de la meilleure planification pour les p´ eriodes restantes si on
est dans l’´ etat s
t
au d´ ebut de la p´ eriode t et que l’on d´ ecide de produire x
t
` 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 coˆ ut des ´ etapes ult´ erieures :
f
t
(s
t
, x
t
) = cp
t
(x
t
) + c
s
s
t
+ f

t+1
(s
t
+ x
t
−d
t
)
Section 10.4. Application ` a la planification de la production. 127
o` u d
t
note la demande pr´ evisionnelle qui est donn´ ee au tableau 10.9. La fonction
cp
t
(x
t
) 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 ˆ etre v´ erifi´ e
` a la figure 10.3 qui illustre la fonction de coˆ ut pour t = 5 :
cp
5
(x
5
) =

0 si x
5
= 0;
150 + 200x
5
si x
5
= 1, 2 ou 3;
150 + 600 + 250(x
5
−3) si x
5
= 4, 5 ou 6.
cp
5
(x
5
)
x
5
1 2 3 4 5 6
1500
1250
1000
750
550
350
350
200
250
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 ´ etats
du monde possibles ` a chaque ´ etape.
Nous allons maintenant r´ esoudre le probl` eme par la programmation dyna-
mique. A l’´ etape 5, on a d
5
= 4. Ce qui explique qu’il faut au moins produire
4 unit´ es si s
5
= 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 :
s
5
x
5
= 2 x
5
= 3 x
5
= 4 x
5
= 5 x
5
= 6 x

5
f

5
(s
5
)
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 s
5
= 0 et x
5
= 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 s
5
= 1 et x
5
= 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 d
4
= 2. On ajoute au coˆ ut de production de l’´ etape, le coˆ ut
des ´ etapes ult´ erieures. Ainsi, dans le cas o` u s
4
= 0 et x
4
= 2, le coˆ ut correspond
` a l’application de la formule :
f
4
(s
4
, x
4
) = cp
4
(x
4
) + f

5
(s
4
+ x
4
−d
4
)
= (150 + 400) + 1.000
= 1.550
On obtient le tableau de coˆ uts suivant :
s
4
x
4
= 0 x
4
= 1 x
4
= 2 x
4
= 3 x
4
= 4 x

4
f

4
(s
4
)
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 d
3
= 4. On d´ etermine semblablement le tableau de coˆ uts
suivant :
s
3
x
3
= 2 x
3
= 3 x
3
= 4 x
3
= 5 x
3
= 6 x

3
f

3
(s
3
)
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 d
2
= 1. On a une capacit´ e de production ` a 200 limit´ ee ` a deux
unit´ es. On obtient le tableau de coˆ uts suivant :
s
2
x
2
= 0 x
2
= 1 x
2
= 2 x
2
= 3 x

2
f

2
(s
2
)
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 :
s
1
x
1
= 2 x
1
= 3 x
1
= 4 x

1
f

1
(s
1
)
0 3.370 3.320 3.340 3 3.320
On peut ensuite d´ eterminer la politique optimale en partant de s
1
= 0. En
premi` ere ´ etape, la strat´ egie optimale est de produire 3. La demande ´ etant de 2, on
se retrouve avec un stock initial s
2
= 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 s
3
= 0. La strat´ egie optimale est de produire x
3
= 4, c’est-` a-dire la demande
de la p´ eriode. On se retrouve avec un stock initial s
4
= 0. La strat´ egie optimale
est dans ce cas de produire x
4
= 3, soit une unit´ e de plus que la demande. On se
retrouve avec un stock initial s
5
= 1 et on produit x
5
= 3.
La planification optimale est donc la suivante :
t 1 2 3 4 5
s
t
0 1 0 0 1
x

t
3 0 4 3 3
d
t
2 1 4 2 4
Remarquez qu’en p´ eriode 2, on a pr´ ef´ er´ e ne pas produire la seule unit´ e de-
mand´ ee car une unit´ e en premi` ere ´ etape 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 p´ eriode 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 Chapitre 10. La programmation dynamique.
10.5 Exercices
10.1. Ventes de livres. Un ´ editeur 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 R´ egion 2 R´ egion 3
1 4 3 5
2 6 6 7
3 9 8 12
4 11 10 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 :
P´ eriode 13 14 15 16
Besoins totaux 4 5 2 3
La fabricationdumoteur M200demande une semaine et le coˆ 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.

g
i
(x) ≤ 0, i = 1, . . .m
h
k
(x) = 0, k = 1, . . .p
o` u f(x), g
i
(x), k = 1, . . .m, et h
k
(x), i = 1, . . .p sont des fonctions continˆ ument
diff´ erenciables d´ efinies sur R
n
` 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 m
1
(x
1
) = 550 + 2x
1
, cela donnera un terme non lin´ eaire dans l’objectif :
maxz = m
1
(x
1
)x
1
= 550x
1
+ 2x
2
1
.
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, p
i
et p
j
:
f
2
ij
= C
2
ij

p
2
i
−p
2
j

131
132 Chapitre 11. Les mod`eles non lin´eaires
11.2 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 opti-
male du probl` eme. Nous allons donc d’abord nous attacher ` a ´ etablir ces conditions.
Ces conditions sont les extensions ` a R
n
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).
x
1
x
2
P

c
T
x
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´ ee en g´ en´ eral. 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 133
11.3 Diff´ erence avec la programmation lin´ eaire
Les mod` eles non lin´ eaires sont beaucoup plus difficiles ` a r´ esoudre en g´ en´ eral que
les mod` eles lin´ eaires. Nous allons souligner par quelques exemples les diff´ erences
avec la programmation lin´ eaire.
Tout d’abord, contrairement ` a la programmation lin´ eaire o` 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 x
1
+ 5 x
2
s.c.q.

x
1
≤ 4
9x
2
1
+ 5x
2
2
≤ 216
x
1
, x
2
≥ 0
Pour pouvoir en donner une repr´ esentation graphique, remarquons que
x
2
1
(4, 9)
2
+
x
2
2
(6, 5)
2
≤ 1
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.
4
2
2 4
3x
1
+ 5x
2
= 36
x
1
= 4
x
1
x
2
(2, 6)
6
Figure 11.2: Solution non extrˆ eme
Mais la solution ne doit mˆ eme pas ˆ etre situ´ ee sur la fronti` ere de la r´ 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 = (x
1
−3)
2
+ (x
2
−3)
2
s.c.q.

x
1
≤ 4
2x
2
≤ 12
3x
1
+ 2x
2
≤ 18
x
1
, x
2
≥ 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.
8
6
4
2
0 2 4 6 x
1
x
2
(3, 3)
z = 0
z = 1
z = 4
z = 9
z = 16
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 = 3x
1
+ 5x
2
s.c.q.

x
1
≤ 4
8x
1
−x
2
1
+ 14x
2
−x
2
2
≤ 49
x
1
, x
2
≥ 0
Pour pouvoir tracer sa repr´ esentation graphique, remarquons que
(x
1
−4)
2
+ (x
2
−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 !
4
2
2 4 x
1
x
2
6
(0, 7)
(4, 3)
z = 3x
1
+5x
2
= 35
z = 3x
1
+5x
2
= 27
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 ´ egalement 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
fonction concave y = −x
2
sur l’intervalle [−1, 2]. Au point x = −1, on a un
minimum qui n’est pas global.
2
-4
x
y
-1
-1
Figure 11.5: Minimum local non global
La d´ etermination de tous les optimaux locaux est un probl` eme tr` es 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 commerciauxfournissent toujours unminimumlocal.
136 Chapitre 11. Les mod`eles non lin´eaires
11.4 Les probl` emes convexes
D´ efinition 11.1 L’ensemble S ⊂ R
n
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
P
Q
Figure 11.7: Ensembles non convexes.
D´ efinition 11.2 Une fonctionf est convexe si l’ensemble des points situ´ e audessus
de son graphe, encore appel´ e ´ epigraphe :
S = {(x, y) ∈ R
n
×R|y ≥ f(x)} .
est un ensemble convexe.
Ceci est illustr´ e ` a la figure 11.8 pour l’exemple de la fonction x
2
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
Section 11.4. Les probl`emes convexes 137
x
y
f(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.
x
y
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 d´ efinir la notion de probl` eme convexe :
D´ efinition 11.4 Un programme math´ ematique est dit convexe s’il s’agit de la
minimisation d’une fonction convexe sur une r´ egion r´ ealisable convexe, soit de
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` emes 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.

h
i
(x) = 0, i = 1, 2, . . .m
g
k
(x) ≤ 0, k = 1, 2, . . .p
(11.1)
o` u f(x), h
i
(x), i = 1, 2, . . .m et g
k
(x), k = 1, 2, . . .p sont des fonctions de R
n
dans R.
Une notion importante en programmation non lin´ eaire est celle de contraintes
actives :
D´ efinition 11.5 Une in´ egalit´ e g
k
(x) ≤ 0 est active en x si g
k
(x) = 0.
Il d´ ecoule imm´ ediatement de cette d´ efinition que h
i
(x) = 0 sont actives pour tout
i. Par exemple, ` a la figure 11.10, seule g
2
est active en x

. Le concept de con-
g
1
(x) = 0
g
2
(x) = 0
g
3
(x) = 0
x

r´ egion
r´ ealisable
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 d´ eterminent la solution optimale.
Pour ´ ecrire les conditions d’optimalit´ e, on a besoin qu’une condition de r´ egu-
larit´ e soit satisfaite.
Section 11.5. Conditions de Kuhn et Tucker 139
D´ efinition 11.6 D´ efinition de point r´ egulier des contraintes. Soit x

satisfaisant
les contraintes :
h(x

) = 0, g(x

) ≤ 0 (11.2)
Alors x

est dit r´ egulier pour les contraintes (11.2) si les gradients des contraintes
actives sont lin´ eairement ind´ ependants.
Cette d´ efinition n´ ecessite quelques rappels math´ ematiques concernant la notion
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
sur R
n
continˆ ument diff´ erenciable en x. C’est-` a-dire une fonction continue dont
les d´ eriv´ ees partielles premi` eres sont ´ egalement continues. On d´ efinit le gradient
comme ´ etant le vecteur ligne constitu´ e des d´ eriv´ ees partielles :
∇f(x) =
¸
∂f(x)
∂x
1
,
∂f(x)
∂x
2
, . . .
∂f(x)
∂x
n
¸
.
La d´ eriv´ ee partielle par rapport ` a la variable x
j
, not´ ee
∂f(x)
∂x
j
, est obtenue en
d´ erivant f en consid´ erant que les autres variables que x
j
sont des constantes.
Illustrons cette notion par un exemple. Consid´ erons la fonction suivante :
f(x
1
, x
2
) = 2x
2
1
+ 2x
1
x
2
+ x
2
2
−10x
1
−10x
2
Les d´ eriv´ ees partielles par rapport ` a chacune des variables se calculent en consi-
d´ erant les autres variables comme des constantes :
∂f/∂x
1
= 4x
1
+ 2x
2
−10
∂f/∂x
2
= 2x
1
+ 2x
2
−10
De sorte que le gradient peut s’´ ecrire ici comme suit :
∇f(x) = [4x
1
+ 2x
2
−10, 2x
1
+ 2x
2
−10]
D´ efinition 11.8 Notion d’ind´ ependance de vecteurs. On dit que m vecteurs sont
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 R
2
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 ´ ecrire 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)
s.c.q.

h(x) = 0,
g(x) ≤ 0
(11.3)
et supposons x

r´ egulier pour les contraintes. Alors il existe des multiplicateurs
λ ∈ R
m
et µ ∈ R
p
tels que
∇f(x

) +
m
¸
i=1
λ
i
∇h
i
(x

) +
p
¸
k=1
µ
k
∇g
k
(x

) = 0 (11.4)
µ
k
g
k
(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 ˆ etre 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 (h
i
(x) = 0)
par un multiplicateur λ
i
, le membre de gauche de chaque contrainte d’in´ egalit´ e
(g
k
(x) ≤ 0) par son multiplicateur µ
k
et en additionnant le tout ` a la fonction
objectif :
L(x, λ, µ) = f(x) +
m
¸
i=1
λ
i
h
i
(x) +
p
¸
k=1
µ
k
g
k
(x)
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 R
n
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 2x
2
1
+ 2x
1
x
2
+ x
2
2
−10x
1
−10x
2
s.c.q.

x
2
1
+ x
2
2
≤ 5
3x
1
+ x
2
≤ 6
Section 11.5. Conditions de Kuhn et Tucker 141
Le lagrangien s’´ ecrit de la mani` ere suivante :
L(x, λ, µ) = 2x
2
1
+ 2x
1
x
2
+ x
2
2
−10x
1
−10x
2

1
(x
2
1
+ x
2
2
−5)

2
(3x
1
+ x
2
−6)
Les conditions de Kuhn et Tucker s’´ ecrivent ici simplement :
∂L/∂x
1
= 4x
1
+ 2x
2
−10 + 2µ
1
x
1
+ 3µ
2
= 0
∂L/∂x
2
= 2x
1
+ 2x
2
−10 + 2µ
1
x
2
+ µ
2
= 0
µ
1
g
1
= µ
1
(x
2
1
+ x
2
2
−5) = 0
µ
2
g
2
= µ
2
(3x
1
+ x
2
−6) = 0
µ
1
≥ 0
µ
2
≥ 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 :
4x
1
+ 2x
2
−10 + 2µ
1
x
1
= 0
2x
1
+ 2x
2
−10 + 2µ
1
x
2
= 0
x
2
1
+ x
2
2
= 5
dont la solution est donn´ ee par :
x

1
= 1,
x

2
= 2,
µ
1
= 1,
µ
2
= 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´ eces-
saires sont aussi suffisantes pour montrer que l’on est ` a l’optimum.
Nous pr´ esenterons au chapitre suivant les algorithmes de r´ esolution.
142 Chapitre 11. Les mod`eles non lin´eaires
11.6 Exercices
11.1. Conditions de Kuhnet Tucker. Onconsid` ere la maximisationde la fonction
14x −x
2
+ 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 ´ epargnant 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 r
X
, r
Y
et r
Z
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 de mod` ele non lin´ eaire. En g´ en´ eral,
il s’agit de r´ esoudre le probl` eme suivant :
max f(x)
s.c.q.

g
i
(x) ≤ 0, i = 1, . . .m
h
k
(x) = 0, k = 1, . . .p
o` u au moins une des fonctions est non lin´ eaire. Nous avons ´ egalement vu les
conditions de Kuhn et Tucker qui sont n´ ecessairement v´ erifi´ ees ` a l’optimum
d’un tel probl` eme.
Nous allons maintenant voir deux cas particuliers de probl` emes nonlin´ eaires
qui peuvent ˆ etre 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´ e-
aires d’une seule variable. Comme nous allons le voir ` a la section 12.2, ces
probl` emes peuvent ˆ etre 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 ˆ etre r´ esolus par la m´ ethode de Franck-
Wolfe qui consid` erent une suite d’approximations lin´ eaires de la fonction
objectif non lin´ eaire.
143
144 Chapitre 12. R´esolution des probl`emes non lin´eaires
12.2 Programmation s´ eparable
Il existe une classe particuli` ere de probl` emes qui ne n´ ecessitent pas le recours ` a des
logiciels d’optimisation non lin´ eaire, car ils peuvent se r´ esoudre par utilisations
r´ ep´ et´ ees de l’algorithme du Simplexe. Ce sont les programmes s´ eparables.
D´ efinition 12.1 Une fonction est s´ eparable si elle peut ˆ etre exprim´ ee comme la
somme de fonctions d’une seule variable :
f(x) =
n
¸
j=1
f
j
(x
j
)
Par exemple, la fonction suivante est s´ eparable :
x
2
1
+ 2x
2
+ e
x
3
,
puisque somme de fonctions d’une seule variable alors que la fonction suivante :
x
1
x
2
+
1
1 + x
1
+ x
3
est non s´ eparable ` a cause du terme x
1
x
2
.
Un exemple pratique, d´ ej` a cit´ e au chapitre 11, d’application de la programma-
tion 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, p
i
et p
j
:
f
2
ij
= C
2
ij

p
2
i
−p
2
j

o` u C
ij
est un param` etre constant d´ ependant de la longueur et du diam` etre du
gazoduc.
Les mod` eles s´ eparables peuvent ˆ etre r´ esolus par une suite d’approximations
lin´ eaires par morceaux. Plus pr´ ecis´ ement, on effectuera de la mani` ere suivant.
Algorithme 12.1 Algorithme de r´ esolution des probl` emes s´ eparables.
1. Chaque fonction non lin´ eaire d’une seule variable est remplac´ ee par une
approximation lin´ eaire par morceaux.
2. Le probl` eme approxim´ e est alors r´ esolu par une version sp´ ecialis´ ee de
l’algorithme du Simplexe traitant les probl` emes lin´ eaires par morceaux.
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` ere.
Section 12.2. Programmation s´eparable 145
Voyons ceci sur un exemple. Supposons que l’on ait ` a r´ esoudre le probl` eme
convexe suivant :
min x
2
1
−4x
1
−2x
2
scq

x
1
+ x
2
≤ 4
2x
1
+ x
2
≤ 5
−x
1
+ 4x
2
≥ 2
x
1
, x
2
≥ 0
(12.1)
Il s’agit bien d’un probl` eme convexe car on minimise x
2
1
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 ≤ x
1
≤ 2, 5. On choisit alors un ensemble de valeurs de x
1
o` u la fonction
est ´ evalu´ 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 x
1
= 0 y = x
2
1
= 0
Point A x
1
= 1 y = x
2
1
= 1
Point B x
1
= 2 y = x
2
1
= 4
Point C x
1
= 2, 5 y = x
2
1
= 6, 25
On obtient les points O, A, B et C ` a la figure 12.1.
x
y = x
2
O
B
C
1
2
3
4
5
6
1 2
A
(1)
(2)
(3)
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.
Nous allons maintenant voir comment r´ esoudre le probl` eme lin´ eaire par mor-
ceaux. En effet, l’algorithme du Simplexe ne peut traiter directement ce genre de
probl` eme. Il existe au moins deux m´ ethodes pour r´ esoudre 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 mor-
ceaux liant x
1
et y par son ´ epigraphe comme fait ` a la figure 12.1. On peut v´ erifier
que l’´ epigraphe correspond aux trois in´ egalit´ es suivantes :
y ≥ x
1
(1)
y ≥ 3x
1
−2 (2)
y ≥ 4, 5x
1
−5 (3)
Ce qui peut encore s’´ ecrire comme suit :
x
1
−y ≤ 0
3x
1
−y ≤ 2
4, 5x
1
−y ≤ 5
Il suffit alors de minimiser y. En effet, en minimisant y avec la contrainte que
(x
1
, y) appartienne ` a l’´ epigraphe, 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 −4x
1
−2x
2
scq

x
1
+x
2
≤ 4
2x
1
+x
2
≤ 5
−x
1
+4x
2
≥ 2
x
1
−y ≤ 0
3x
1
−y ≤ 2
4, 5x
1
−y ≤ 5
x
1
, x
2
≥ 0
Section 12.2. Programmation s´eparable 147
12.2.2 R´ esolution par la notion d’enveloppe convexe
Une seconde solution est d’imposer que (x
1
, y) appartiennent ` a l’ensemble convexe
des points extrˆ emes du polygone OABC comme illustr´ e ` a la figure 12.2. Pour cela,
x
y = x
2
O
B
C
1
2
3
4
5
6
1 2
A
Figure 12.2: Approximation par une fonction lin´ eaire par morceaux
on a ´ ecrire que (x
1
, 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 x
1
et y :
x
1
= 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 ˆ etre 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 (x
1
, 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 −4x
1
−2x
2
scq

x
1
+x
2
≤ 4
2x
1
+x
2
≤ 5
−x
1
+4x
2
≥ 2
−x
1

2
+ 2λ
3
+ 2, 5λ
4
= 0
−y +λ
2
+ 4λ
3
+ 6, 25λ
4
= 0
λ
1
+ λ
2
+ λ
3
+ λ
4
= 1
y, x
1
, x
2
, λ
1
, λ
2
, λ
3
, λ
4
≥ 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´ ement 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` emes s´ eparables non convexes, il faudra imposer explicitement
la condition (12.3). Par exemple, si l’on veut minimiser la fonction y = x
3
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 pour x
1
= 1, 5, la fonction
vraie x
2
1
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 149
12.3 La m´ ethode de Franck-Wolfe
Nous allons voir un type particulier d’algorithme qui permet de r´ esoudre les
probl` emes d’optimisation non lin´ eaires convexes. Il est du type s´ equence d’ap-
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 con-
traintes lin´ eaires. En effet, cette proc´ edure combine des approximations lin´ eaires
de l’objectif pour trouver la direction de recherche avec une recherche unidimen-
sionnelle pour trouver le pas suivant cette direction.
Etant donn´ ee la solution initiale r´ ealisable x
0
, la fonction objectif du probl` eme
suivant
max f(x)
scq

Ax ≤ b
x ≥ 0
(12.4)
est approxim´ e par son d´ eveloppement de Taylor d’ordre 1 :
f(x) ≈ f(x
0
) +
n
¸
j=1
∂f(x
0
)
∂x
j
(x
j
−x
0
j
)
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 :
g(x) =
n
¸
j=1
c
j
x
j
avec
c
j
=
∂f(x
0
)
∂x
j
,
on obtient un probl` eme lin´ eaire soluble par l’algorithme du Simplexe. Notons x
1
LP
sa solution optimale de ce premier probl` eme lin´ eaire.
Notez que l’objectif non lin´ eaire est de moins en moins bien approxim´ e par son
approximation lin´ eaire lorsque x s’´ ecarte de x
0
mais que l’objectif doit s’accroˆıtre,
du moins au d´ ebut, le long du segment de x
0
` a x
1
LP
. Aussi va-t-on choisir le point
qui maximise f(x) le long de ce segment en r´ esolvant le probl` eme unidimensionnel
suivant :
max
0≤α≤1
h(α) = f(x
0
+ α(x
1
LP
−x
0
))
On v´ erifie que α = 0 correspond ` a rester en x
0
et α = 1 correspond ` a aller en x
1
LP
.
Notons α

, l’optimum. Le point suivant :
x
1
= x
0
+ α

(x
1
LP
−x
0
)
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) = 5x
1
−x
2
1
+ 8x
2
−2x
2
2
scq

3x
1
+ 2x
2
≤ 6
x
1
, x
2
≥ 0
Calculons le gradient :
∂f
∂x
1
= 5 −2x
1
∂f
∂x
2
= 8 −4x
2
Il est clair que x = (0, 0) fournit une solution r´ ealisable initiale :
x
0
= (0, 0)
Donc les coefficients du gradient sont
c
1
= 5
c
2
= 8
On peut r´ esoudre graphiquement le probl` eme lin´ eaire suivant :
maxz = 5x
1
+ 8x
2
scq

3x
1
+ 2x
2
≤ 6
x
1
, x
2
≥ 0
A la figure 12.3, on obtient P
1
, la solution du premier probl` eme lin´ eaire :
x
1
LP
= (0, 3)
Le segment entre x
0
et x
1
LP
a comme coordonn´ ees :
x(α) = x
0
+ α(x
1
LP
−x
0
) = (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` ere :
24 −36α = 0
Section 12.3. La m´ethode de Franck-Wolfe 151
x
1
x
2
1 2
3
2
1
P
1
P
2
P
0
Figure 12.3: M´ ethode de Franck Wolfe
soit α = 2/3. On obtient donc le point en fin d’it´ eration 1 :
x
1
= (0, 0) + 2/3[(0, 3) −(0, 0)] = (0, 2)
Proc´ edons ` a la deuxi` eme it´ eration :
c
1
= 5 −2 ×0 = 5
c
2
= 8 −4 ×2 = 0
On peut r´ esoudre graphiquement le probl` eme lin´ eaire suivant :
maxz = 5x
1
s.c.q.

3x
1
+ 2x
2
≤ 6
x
1
, x
2
≥ 0
A la figure 12.3, on obtient P
2
, la solution du deuxi` eme probl` eme lin´ eaire :
x
2
LP
= (2, 0)
Le segment entre x
1
et x
2
LP
a comme coordonn´ ees :
x
1
+ α(x
2
LP
−x
1
) = (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` ere :
10 −24α = 0
soit α = 5/12. On obtient donc le point en fin d’it´ eration 2 :
x
2
= (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 x
0
une solution initiale r´ ealisable. Posons k = 1.
2. It´ eration k. Pour j = 1, 2, ...n, ´ evaluer
c
j
=
∂f(x
k−1
)
∂x
j
3. Calcul de la direction. Trouver, par application de l’algorithme du Sim-
plexe, x
k
LP
la solution optimale du probl` eme lin´ eaire suivant :
max g(x) =
n
¸
j=1
c
j
x
j
scq

Ax ≤ b
x ≥ 0
4. Calcul du pas. Trouvez α
k
la solution optimale de
max f

x
k−1
+ α(x
k
LP
−x
k−1
)

scq 0 ≤ α ≤ 1
et mettre
x
k
= x
k−1
+ α
k
(x
k
LP
−x
k−1
)
5. Crit` ere d’arrˆ et. Si x
k−1
et x
k
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 ´ evaluer 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 proc´ edure
de recherche unidimensionnelle illustr´ ee ` a la figure 12.4
Soit [x, ¯ x] l’intervalle de recherche. Chaque it´ eration consiste en les points
suivants :
Section 12.3. La m´ethode de Franck-Wolfe 153
x
x

x
x
f(x)
x
x

x
x
f(x)
Figure 12.4: Recherche unidimensionnelle.
1. Calculer
x

=
x + ¯ x
2
et ´ evaluer f

(x

), la d´ eriv´ ee de f en x

.
2. Si f

(x

) ≥ 0, mettre x = x

.
3. Si f

(x

) < 0, mettre ¯ x = x

. Retour en 1.
Illustrons ceci sur un exemple. Soit la fonction d’une seule variable suivante :
f(x) = 12x −3x
4
−2x
6
Calculons
f

(x) = 12 −12x
3
−12x
5
= 12(1 −x
3
−x
5
)
Les 4 premi` eres it´ erations sont illustr´ ees au tableau 12.1.
k f

x ¯ x x

f(x

)
0 0, 00 2, 000 1, 0000 7, 0000
1 −12, 00 0, 00 1, 000 0, 5000 5, 7812
2 10, 12 0, 50 1, 000 0, 7500 7, 6948
3 4, 09 0, 75 1, 000 0, 8750 7, 8439
4 −2, 19 0, 75 0, 875 0, 8125 7, 8672
Tableau 12.1: Quelques it´ erations de la recherche unidimensionnelle.
154 Chapitre 12. R´esolution des probl`emes non lin´eaires
12.4 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 x
2
1
−4x
1
−2x
2
Scq

x
1
+ x
2
≤ 4
2x
1
+ x
2
≤ 5
−x
1
+ 4x
2
≥ 2
x
1
, x
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] CHV
´
ATAL 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.
[9] GUERRIEN Bernard, Initiation aux math´ ematiques, Economica, 1991.
[10] F.S. HILLIER et G.S. LIEBERMAN, Introduction to Operations Research,
6` eme ´ edition, Mac Graw-Hill International Editions, Singapour, 1995.
[11] F.S. HILLIER, M.S. HILLIER et G.S. LIEBERMAN, Introduction to Mana-
gement Sciences, 1` ere ´ edition, Mac Graw-Hill International Editions, Boston,
2000.
[12] LACAZE Dominique, Optimisation appliqu´ ee ` a la gestion et ` a l’´ economie,
Economica, 1990.
155
156 Bibliographie
[13] D. G. LUENBERGER, Linear and NonlinearProgramming, Addison-Wesley,
1984.
[14] NEMHAUSER, G.L. et L.A. WOLSEY, Integer and Combinatorial Optimi-
zation, Wiley, New York, 1988.
[15] Y. NORBERT, R. OUELLET et R. PARENT, La recherche op´ erationnelle,
Ga¨ etan Morin Editeur, Montr´ eal-Paris, 1995.
[16] SIMMONARD Michel, La programmation lin´ eaire, Dunod 1972.
[17] M.P. WILLIAMS, Model building in Mathematical Programming, John Wi-
ley, 1990.
[18] M.P. WILLIAMS, Model solving in Mathematical Programming, John Wiley,
1992.
[19] XPRESS-MP, User Guide and Reference Manual, Release 10, Dash Asso-
ciate, 1997.

Table des mati` res e
I La programmation lin´ aire et en nombres entiers e 1 La programmation lin´ aire. e 1.1 1.2 1.3 1.4 1.5 1.6 2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 9 9

Plan du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Un simple exemple . . . . . . . . . . . . . . . . . . . . . . . . . 10 R´ solution graphique . . . . . . . . . . . . . . . . . . . . . . . 13 e Formulation g´ n´ rale e e . . . . . . . . . . . . . . . . . . . . . . . 17 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 21

Algorithme du Simplexe. 2.1 2.2 2.3 2.4 2.5

Principe de l’algorithme . . . . . . . . . . . . . . . . . . . . . . 21 Formes canoniques d’un programme lin´ aire. . . . . . . . . . . . 22 e Notion de solution de base . . . . . . . . . . . . . . . . . . . . . 24 Initialisation de l’algorithme . . . . . . . . . . . . . . . . . . . . 26 Une it´ ration Simplexe . . . . . . . . . . . . . . . . . . . . . . . 27 e 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 Choix de la direction . . . . . . . . . . . . . . . . . . . . 27 Choix de la variable sortante . . . . . . . . . . . . . . . . 27 Calcul du nouveau sommet . . . . . . . . . . . . . . . . 28 Test d’optimalit´ . . . . . . . . . . . . . . . . . . . . . . 30 e Chemin suivi par l’algorithme du Simplexe . . . . . . . . 31

2.6 3

Algorithme du Simplexe . . . . . . . . . . . . . . . . . . . . . . 32 33

L’algorithme du Simplexe en Tableaux 3.1

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3

. 50 e D´ termination de la variable sortante . . . . . . . . . . . .2. . . . . . . . . . . . .4 5. . . . . . . . . . . . . . . . . . . . . 34 Tableaux Simplexe et pivotage . . . . . . . . . . .4 3. . . . . . 74 e Exercices . . . . . . . .2 3. 69 Formulation des probl` mes mixtes . . . 66 69 6 La programmation en nombres entiers. . . 79 . . . . . . . . . . . . . . . . . . . . . . . . . 73 6. . . . . . . . .2. . . . . . . . .5 4 Table des mati`res e Notion de tableau Simplexe . . . . . . . . . . . . . . . . . 58 Variation des coefficients objectifs . . . .2 6. . . . . . . . . . 40 Exercices .1 6. . . . . . .2. 4. . . . . . . .1 4. . .2.3 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Algorithme du Simplexe en tableaux . . . . . . . . . . . . . . 6. . . . . . . . . . . . . . . . . . .2 4. .2 5. 57 Variation par rapport au second membre . . 53 e e e Exercices . . . . . . . . . . . . . . . . . . . . . . . .3 6. . . . .4 Probl` mes avec coˆ ts fixes . . . . . . . . . . 70 e u Probl` mes avec contrainte logique .3 3. . . . . . . . . 5. . . . . . . . . . . . . . . 42 43 Questions sur l’algorithme du Simplexe. . . . . . . . . 64 u e Exercices . . . . . . . . . 50 e Arrˆ t apr` s un nombre fini d’it´ rations . . .1 6. . . . . . 71 e M´ lange avec nombre limit´ d’ingr´ dients . . . . . . . . . 56 57 5 Analyse postoptimale. .2 Introduction .4 4. 72 e e e Choix parmi un nombre discret de valeurs . .4 M´ thode de branch and bound . . . . . . . . . .6 Introduction . .5 4. .3 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 4. . . . .1 5.4 3. . . . . . . . . . . .5 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 43 Initialisation de l’algorithme . . . 70 e 6. . . . . . . . . . . 43 D´ termination de la variable entrante . . . 62 Coˆ t r´ duit des variables hors base . . . . . . . . . . . . .

. . . . . . . .2 7. . . . . . . . . . .3 8. . . . . . .1 Algorithme de plus courts chemins successifs . . . 90 e e e 7. . .1 7. . . . . . . . . . . .2 7. . . . . . . . . . . . . .4 Introduction . . .1 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 95 R´ solution du probl` me de transport simple e e 8. . . . . . . . .3 7. . . . . . . . . . . . . . . 102 e e 8. . . . . . 117 119 10 La programmation dynamique. . .Table des mati`res e II Les mod` les sur r´ seau. . . . . 92 e 7. . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . 85 e Planification de la production . . . . . . 87 Probl` me d’affectation optimale . .1 9. . . . . . . . . 84 e Formulation du probl` me . . . 89 e Le probl` me de transport g´ n´ ral . . . . . . . . .4 5 81 83 Le probl` me de transport simple . . . . . . . . . .1 8. . 91 e Probl` me du flot maximum . .2 Probl` me du plus court chemin . . . . 107 Notion de r´ seau r´ siduel . 95 Notion de coˆ t r´ duit . . . . . . . . . . . . . . . . . . . . dynamiques et non lin´ aires. . . . . . . . . . . . . . . . 99 e R´ solution du probl` me de transport simple . . . . . . . . . . . . . .2 9. . . . . . . . . . . . . . . . . . . . . . . . . 106 107 R´ solution du probl` me de transport g´ n´ ral e e e e 9. . . . . . . . . . 109 Application au probl` me d’affectation . . . . . . . . .1 Le probl` me du voyageur . . . . . .1. . . . .3 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 7. . . . . . .4.5 9 Exercices . . . 112 e Exercices .2 R´ solution par le Simplexe . . . . . 100 e e 8.4. . .2 8. . . .4. . . . . . . . . . . 100 e R´ solution par la m´ thode du stepping stone .4 9. . 95 u e Le probl` me de transport simple .5 8 Exercices . . .1 7. . . .3. . . . . . . . .5 Introduction . . . . . . . . . . . . . . . . . e e e 7 Les mod` les sur r´ seau e e 7. 107 e e R´ solution du probl` me de flot a coˆ t minimum . 84 e Repr´ sentation au moyen d’un graphe . . . 119 e . . . . . . . 108 e e ` u 9. . . . . . . . . . . . . . . . .4. . . . . . . . . . . 10.

. . . . . . . . 149 e 12. . . . . .6 Table des mati`res e 10. . . . . . . . . .2 Difficult´ de r´ solution des probl` mes non lin´ aires . . . . . . . . . . . . . . . . . . .5 Conditions de Kuhn et Tucker . 130 11 Les mod` les non lin´ aires e e 131 11. . . . 124 e 10. . . . .3 Diff´ rence avec la programmation lin´ aire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 e e 11. .2 R´ solution par la notion d’enveloppe convexe . . . . . . . . . . . . . . . . . .1 Introduction . .1 Introduction . . . . . . . . . . . . . . .4 Les probl` mes convexes . . . . . . . . . . . . . 154 . . . . . . . . .4 Application a la planification de la production. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 12 R´ solution des probl` mes non lin´ aires e e e 143 12. . . . . . . . . . . . . . . . . . . 136 e 11. . . . . . . 146 e e 12. 131 11. . . . . . . . . . . . . . . .2 Programmation s´ parable . . . . 123 e e 10. . . .1 R´ solution par la notion d’´ pigraphe . . . . . . . . . . . . . . . . . . . .3 Un probl` me d’affectation de ressources rares . .3 La m´ thode de Franck-Wolfe . . . . . . . . . 144 e 12. . 132 e e e e 11. 147 e 12. . . . . . . . . . . . . . .4 Exercices . . . . . . . . . . . .5 Exercices . . .2. . . .2. . . . . . . . . . 138 11. . . . . . . 126 ` 10. 143 12. . . . . . .6 Exercices . . . . . . .2 R´ solution des probl` mes dynamiques . .

Partie I La programmation lin´ aire et en nombres e entiers 7 .

.

c’est-` -dire les probl` e e a e mes o` la fonction objectif et les contraintes sont purement lin´ aires. ` e ` e On parle d’analyse post-optimale. nous examinerons une question tr` s e importante : a savoir la sensibilit´ de la solution a des modifications de donn´ es. Il s’agit de l’algorithme du Simplexe e e que nous verrons au chapitre 2. Nous verrons au chapitre 6 une technique de r´ solution de ces e e e probl` mes : il s’agit de la m´ thode de branch and bound. maximiser le b´ n´ fice d’une entreprise sous les e e contraintes de satisfaire la demande et de respecter la capacit´ de production. C’est ce que nous verrons dans ce chapitre. Dans la premi` re partie du cours. e e Nous commencerons par le cas des probl` mes lin´ aires. Il s’agit. e Le cours est divis´ en deux parties correspondant a des types diff´ rents de e ` e e mod` les d’optimisation. nous nous concentrerons sur les probl` mes e 9 . e e On parle de probl` me d’optimisation lorsqu’il faut maximiser une fonction e sous contraintes. e 1. d’une part. e e Dans la seconde partie du cours. Au chapitre 5.Chapitre 1 La programmation lin´ aire. Lorsqu’il n’y u e a que deux variables de d´ cision. d’autre part. de pr´ senter ` e e les techniques de r´ solution de ces probl` mes. Il s’agit. on parle de probl` e e mes en nombres entiers. Lorsque les variables doivent prendre des valeurs enti` res. un algorithme mis en œuvre sous la forme d’un programme informatique s’av` re n´ cessaire. nous nous concentrerons sur les probl` mes e e lin´ aires et les probl` mes en nombres entiers. de donner une introduction a la formulation en mod` les d’optimisation. Par exemple.1 Introduction L’objectif de ce cours est double. en plus. On devrait a proprement parler de probl` mes lin´ aires en ` e e nombres entiers car on impose. un probl` me lin´ aire peut etre r´ solu de mani` re e e e ˆ e e purement graphique. aux contraintes et a la fonction objectif ` d’ˆ tre lin´ aires. Lorsqu’il y a un plus grand nombre de variables.

• Les mod` les en nombres entiers. • Les mod` les non lin´ aires. le solveur d’Excel dispose d’une impl´ mentation de ces e e algorithmes. ` • Application a la planification de production. e e Le chapitre 10 est consacr´ a la formulation et a la r´ solution des probl` mes e` ` e e dynamiques. Une application typique est la planification de production o` a chaque u ` ´ p´ riode de l’horizon de planification. c’est-` -dire ceux o` une d´ cision strat´ gique doit etre prise a chaque a u e e ˆ ` etape. La programmation lin´aire. e e e 1. e dynamiques et les probl` mes non lin´ aires. e e e • Les mod` les sur r´ seau. dynamiques et non lin´ aires. Par exemple. on parle e de probl` mes non lin´ aires. e • R´ solution des mod` les en nombres entiers.3 Un simple exemple Nous prenons un exemple tir´ de Hillier et Lieberman [10]. Nous verrons au chapitre 11 quelques m´ thodes de e e e r´ solution de ces probl` mes. • Questions sur l’algorithme du Simplexe. e e Lorsque les contraintes et/ou la fonction objectif sont non lin´ aires. e e Partie II : les mod` les sur r´ seau. 1. on doit d´ cider du niveau de production. il ne viendrait plus a l’id´ e de les programmer ` e soi-mˆ me. e e • La programmation lin´ aire. • L’analyse post-optimale.10 Chapitre 1. e • L’algorithme du Simplexe. e e Il est a remarquer que toutes ces m´ thodes de r´ solution etant mises en œuvre ` e e ´ dans des logiciels commerciaux. e e • La programmation dynamique.2 Plan du cours Partie I : les probl` mes lin´ aires et en nombres entiers. Il s’agit d’une ente reprise de fabrication de chassis qui envisage la production de deux nouveaux . e e • R´ solution des mod` les non lin´ aires.

formulation des contraintes.3.Section 1. e e Cette d´ finition permet de diff´ rencier les variables des param` tres. par exemple d’une p´ riode a l’autre ou d’un sc´ nario e e ` e a l’autre.1. e 2. e 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` me d’optimisation comporte toujours les trois etapes e ´ suivantes : 1. Les marges e u e unitaires. qui sont des e e e donn´ es qui peuvent varier. temps d’usinage et capacit´ s. La premi` re etape consiste a choisir les variables du probl` me. formulation de l’objectif.1 On appelle variable toute quantit´ utile a la r´ solution du probl` me e e e e dont le mod` le doit d´ terminer la valeur.1: Marges. Produit 1 (heures/produit) Atelier 1 1 Atelier 2 0 Atelier 3 3 Marge 3$ Produit 2 Capacit´ disponible e (heures/produit) (heures/semaine) 0 4 2 12 2 18 5$ Tableau 1. Ici les quantit´ s que le mod` le doit d´ terminer sont les productions de ` e e e . Le premier produit n´ cessite le passage dans le premier atelier pour fabriquer le cadre en aluminium et e dans le troisi` me atelier o` le verre est mont´ sur le chassis. choix des variables du mod` le. Tandis que le second e u e produit n´ cessite le passage dans le deuxi` me atelier pour fabriquer le cadre en e e bois et dans le troisi` me atelier o` le verre est mont´ sur le chassis. 3. Un simple exemple 11 mod` les au moyen des capacit´ s r´ siduelles de ses trois ateliers. Il s’agit respece e e tivement d’un chassis en aluminium et d’un chassis en bois. e ´ ` e ` D´ finition 1. les temps de fabrication de chacun des produits dans chacun des ateliers ainsi que les capacit´ s hebdomadaires r´ siduelles de ces ateliers sont donn´ s au e e e tableau 1.

La programmation lin´aire. x2 ≥ 0. e ´ ` e D´ finition 1. Notons donc : Chapitre 1. e Ici l’entreprise d´ sire maximiser son profit net. e x1 = nombre de chassis de type 1 produits par semaine. Le temps pour assembler 1 chassis de type 1 dans l’atelier 1 est de 1 heure o` il reste 4 heures disponibles. les ˆ quantit´ produites ne peuvent etre n´ gatives. on obtient la formulation suivante : e e max z = 3 x1 + 5 x2   x1                  s. Elles peuvent etre plus complexes comme les contrainte de capacit´ de producˆ e tion.1) . e ´ e D´ finition 1. Math´ matiquement : e ˆ e e x1 . on peut construire les contraintes de capacit´ s des deux autres e ateliers : 2x2 ≤ 12 3x1 + 2x2 ≤ 18 Il est alors tr` s utile de reprendre sous une forme condens´ e la formulation e e compl` te du probl` me. Ces relations peuvent etre de simples bornes sur les variables.3 On appelle contraintes du probl` me toutes les relations limitant e e le choix des valeurs possibles des variables. x2 = nombre de chassis de type 2 produits par semaine. La deuxi` me etape consiste a formuler math´ matiquement l’objectif.2 On appelle fonction objectif d’un probl` me d’optimisation le crie e t` re de choix entre les diverses solutions possibles. Par exemple. l’objectif s’exprime comme suit : max z = 3x1 + 5x2 La troisi` me etape est la formulation les contraintes du probl` me. 3x1 x1 2x2 + 2x2 x2 ≤ 4 ≤ 12 ≤ 18 ≥ 0 ≥ 0 (1.12 chassis par semaine. D’o` la contrainte de capacit´ de l’atelier 1 : u u e x1 ≤ 4 Semblablement. La marge etant de 3 pour le premier e ´ type de chassis et de 5 pour le second.c.q. Ici.

. .5 On appelle poly` dre de Rn l’ensemble des x ∈ Rn v´ rifiant un e e e syst` me d’in´ quations lin´ aires : e e e ak1 x1 + ak2 x2 + . R´solution graphique e 13 1. . + akn xn ≤ bk est un demi-espace ferm´ situ´ d’un cˆ t´ de l’hyperplan de Rn d’´ quation : e e oe e ak1 x1 + ak2 x2 + . mais bien e e de poly` dre.Section 1.1). e e e e G´ n´ ralisation. l’ensemble des valeurs de variables e e e de d´ cision qui satisfont toutes les contraintes. + akn xn ≤ bk .1. la r´ gion de Rn correspondant aux solutions d’une in´ galit´ e e e e lin´ aire du type suivant : e ak1 x1 + ak2 x2 + . on ne parle plus de polygone. dans le cas de deux variables de d´ cision. e e ` e e Lorsque l’on fait l’intersection des cinq demi-plans correspondant aux cinq in´ gae lit´ s : e   x1 ≤ 4 (1)       2x2 ≤ 12 (2)   3x1 + 2x2 ≤ 18 (3)     x1 ≥ 0 (4)      x2 ≥ 0 (5) on obtient le polygone hachur´ a la figure 1. . c’est l’ensemble des points (x1 .4 R´ solution graphique e Comme annonc´ dans l’introduction. . e Dans le cas de l’exemple.p . x2 ) satisfaisant les in´ galit´ s de (1. En economie. si on a n variables. En effet. . e e D´ finition 1. . . cet ensemble r´ alisable e` ´ e est encore appel´ l’ensemble de production. D´ finition 1. e e un probl` me lin´ aire peut etre r´ solu de mani` re purement graphique en suivant le e e ˆ e e processus en trois etapes qui suit. La notion de poly` dre de Rn . . Plus g´ n´ ralement. k = 1. e e Graphiquement une in´ galit´ telle que 3x1 + 2x2 ≤ 18 correspond a un demie e ` plan limit´ par la droite obtenue en prenant l’in´ quation a l’´ galit´ (3x1 +2x2 = 18).4. ´ La premi` re etape de la r´ solution consiste a repr´ senter graphiquement la e ´ e ` e r´ gion r´ alisable. + akn xn = bk .4 On appelle r´ gion r´ alisable.

14
x2 (4) 10 8 6 4 2 0 2

Chapitre 1. La programmation lin´aire. e

(1) (2)

(3) (5) 4 6 8 x1

Figure 1.1: Ensemble de production. A titre d’illustration, le poly` dre de R3 d´ fini par les in´ galit´ s suivantes : e e e e x1 + x2 + x3 ≤ 1 x1 , x2 , x3 ≥ 0 est repr´ sent´ a la figure 1.2 par le prisme OABC o` O note l’origine des axes. e e` u

x3 C

O

B

x2

x1

A

Figure 1.2: Hyperfaces d’un poly` dre dans R3 . e On voit ici clairement que le syst` me est sous-d´ termin´ . On va devoir choisir e e e entre ces diff´ rents plans de production. Pour ce faire, et c’est la deuxi` me etape e e ´ de la r´ solution, on va repr´ senter graphiquement des lignes d’isovaleur de la e e fonction objectif : z = 3x1 + 5x2 .

Section 1.4. R´solution graphique e

15

En effet, on remarquera que l’expression de la fonction objectif fait intervenir trois variables et ne peut donc etre repr´ sent´ e que dans l’espace. Pour se ramener dans ˆ e e le plan, on va consid´ rer des valeurs successives de l’objectif : e z = k. Ce qui correspond graphiquement a des droites parall` les ` e 3x1 + 5x2 = k. Les points d’une de ces droites sont donc le lieu de tous les points donnant la mˆ me e valeur du profit (d’o` le nom de droite d’isovaleur de la fonction objectif). Ceci u est fait a la figure 1.3 o` l’on a repr´ sent´ z = 10, 20 et 36. ` u e e
x2 10 8 6 4 2 0 2 6 z = 10 8
(2, 6)

(4 , 3) z = 36

x1

z = 20

Figure 1.3: Droites d’isoprofit. Enfin, et c’est la troisi` me etape de la r´ solution, l’optimum sera d´ termin´ e ´ e e e graphiquement comme le plan de production situ´ sur la droite d’isoprofit la plus e ´ e elev´ e, c’est-` -dire celle qui donne le profit le plus elev´ . On voit a la figure 1.3 a ´ e ` qu’il s’agit du point x∗ = (2, 6). Justifions ce choix. Comme on maximise le profit on a int´ rˆ t a prendre la droite ee ` d’isovaleur la plus elev´ e possible. Bien sˆ r, il faut que le plan de production soit ´ e u e ` e e encore r´ alisable : autrement dit, il faut se restreindre a la r´ gion r´ alisable. On a alors la tr` s important remarque suivante : e Observation 1 : Pour maximiser l’objectif, il faut prendre la droite d’isovaleur de l’objectif qui ` touche encore la r´ gion r´ alisable et qui donne la plus grande valeur a l’objectif. e e

16

Chapitre 1. La programmation lin´aire. e Sur base de cet exemple, on tire une deuxi` me observation : e

Observation 2 : ` On constate que la solution optimale est a un sommet de la r´ gion r´ alisable. e e On peut alors se demander si la solution optimale sera toujours a un sommet de ` la r´ gion r´ alisable. En fait, lorsque la ligne d’iso-marge est parall` le a un cˆ t´ du e e e ` oe polygone, on a que tout le cˆ t´ du polygone est optimal. Par exemple, si l’objectif oe ´e avait et´ z = 3x1 + 2x2 , tout le segment entre (2,6) et (4,3) aurait et´ optimum. ´e Observation 3 : Mˆ me si tout un cˆ t´ du polygone est optimal, on peut toujours choisir une solution e oe ` optimale correspondant a un sommet. En conclusion, on peut voir qu’il suffit d’´ valuer la valeur de l’objectif en e chacun des sommets pour d´ terminer l’optimum d’un probl` me lin´ aire. e e e Mais on peut aller plus loin encore pour limiter le nombre de sommets a ` examiner en se basant sur la quatri` me observation suivante. e Observation 4 : ˆ Le long d’un cˆ t´ du polygone, la valeur de l’objectif peut etre soit constante, soit oe strictement croissante, soit strictement d´ croissante. e On peut donc sugg´ rer l’algorithme suivant : e Algorithme 1.1 Principe de l’algorithme du Simplexe. e e i) Choisir comme point de d´ part un sommet x∗ de la r´ gion r´ alisable. e oe ii) D´ terminer les cˆ t´ s passant par ce sommet x∗ . Trouver un cˆ t´ le long e oe ∗ duquel z croˆt. S’il n’y en n’a pas, STOP : le x courant est optimal. ı ` oe iii) D´ terminer le sommet y∗ a l’autre bout du cˆ t´ et poser x∗ = y∗ . Retour en e ii). Nous allons voir au chapitre suivante comment g´ n´ raliser cet algorithme au cas e e de Rn : on obtient alors l’algorithme du Simplexe. Mais avant cela, g´ n´ ralisons e e la notion de cˆ t´ et de sommet et voyons la formulation g´ n´ rale d’un probl` me oe e e e lin´ aire. e G´ n´ ralisation. Notion de faces d’un poly` dre. e e e ´ On peut egalement g´ n´ raliser les notions de cot´ s et de sommet d’un polygone. e e e Il s’agit, en fait, de cas particuliers de la notion de face d’un poly` dre. e D´ finition 1.6 On appelle face d’un poly` dre l’ensemble des points appartenant e e ` e au poly` dre et qui v´ rifient un certain nombre de contraintes a l’´ galit´ : e e e ak1 x1 + ak2 x2 + . . . + akn xn = bk , k ∈ I ⊆ {1, . . .p}

une face de dimension e n − 1..7 Dans l’espace Rn . . On veut d´ terminer le point qui maximise un crit` re. e e e Il s’agit donc d’une face. Capacit´ e disponible b1 b2 bm n a1n a2n amn cn Tableau 1.5. .Section 1.. arˆ te. 1. e e e e e Ressource 1 2 . 17 D´ finition 1. la quantit´ de ressource i disponible. a22 .2. Le point C est l’intersection de 3 (n = 3) hyperplans d´ limitants.. Elle est de dimension 2 et donc il s’agit donc d’une hyper` face. . e Reprenons l’exemple du poly` dre OABC ci-dessus. il e e est de dimension 0 : c’est donc un sommet. m marge 1 a11 a21 am1 c1 Produit 2 . Les e e e donn´ es num´ riques du probl` me sont r´ sum´ es au tableau 1. . tout en respectant des contraintes. elles aussi fonctions e . Notons cj . . une face de dimension 0. une face de dimension 1 et sommet. on a des noms particuliers. . a12 . La droite AB est l’ensemble des points du poly` dre v´ rifiant 2 contraintes a e e l’´ galit´ (x1 + x2 + x3 = 1 et x3 = 0). am2 c2 . Consid´ rons qu’il y a n produits e e e possibles (ici n = 2) n´ cessitant l’utilisation eventuelle de m ressources limit´ es e ´ e (ici m = 3 ateliers de capacit´ limit´ e). . on appelle hyperface.. l’accroissement du profit par e e unit´ de produit j et bi . Elle est de dimension 1 : il s’agit donc e e d’une arˆ te.. e e e Un programme lin´ aire peut donc se formuler en g´ n´ ral de la mani` re suie e e e vante.2: Donn´ es num´ riques du probl` me. Le triangle ABC est l’ene ` e semble des points du poly` dre v´ rifiant une contrainte a l’´ galit´ (x1 +x2 +x3 = 1).5 Formulation g´ n´ rale e e Nous allons g´ n´ raliser l’exemple introductif.. Notons par aij la e e quantit´ de ressource i consomm´ e pour produire une unit´ de produit j. fonction lin´ aire e e e des variables de d´ cision. Formulation g´n´rale e e Suivant la dimension de l’ensemble obtenu.

8 Tout point x v´ rifiant les contraintes de (1.2). b2 . . xn ≥ 0. les n e ` ` e e derni` res etant celles de non n´ gativit´ des variables.. e lin´ aires des variables de d´ cision. On peut ecrire : e e ´ max z = c1 x1 + c2 x2 · · · + cn xn .c. e ´ e e Matriciellement.q. . Ax ≤ b.q. e e e Notons par S la r´ gion r´ alisable : e e S = {x ∈ Rn |Ax ≤ b. .2) s. D´ finition 1. La programmation lin´aire. . am1 x1 + am2 x2 · · · + amn xn ≤ bm .   avec A c matrice (m × n) b vecteur (m × 1) vecteur (n × 1) x vecteur (n × 1).c. . x1 x2 . . .                                                  a11 x1 + a21 x1 + . . est dit une solution optimale pour le probl` me lin´ aire (1. celles qui maximisent l’objectif sont appel´ es e e solutions optimales. s. x ≥ . (1. 0. D´ finition 1. a1n xn ≤ a2n xn ≤ . 0. a12 x2 · · · + a22 x2 · · · + . e e . ≥ On a donc un probl` me a n variables et a m + n contraintes d’in´ galit´ . . cT x∗ ≥ cT x. le probl` me peut s’´ crire comme e e max    z = cT x.2) est dit une solution e e r´ alisable pour le probl` me lin´ aire.9 Tout point x∗ ∈ S et tel que e ∀x ∈ S. Parmi ces solutions r´ alisables. . x ≥ 0} . ≥ b1 .18 Chapitre 1.

le prix que la soci´ t´ re¸ oit e ee c pour la vente de journaux chute et donc la compagnie ne d´ sire pas vendre e plus que cette quantit´ . Une entreprise fabrique ˆ deux produits P1 et P2 . Son rˆ le consiste a e e o ` s´ parer les listes d’ordinateur et les journaux. Combien la soci´ t´ doit-elle acheter de d´ chets par e ee e an a chacune des villes ? ` (a) Formuler math´ matiquement le probl` me (choix des variables. Ces poure e centages ainsi que la quantit´ maximum de d´ chets que peuvent fournir par e e an ces deux villes sont reprises au tableau suivant : Ville Listes (%) Journaux (%) Offre (tonnes par an) Ville 1 5 20 10. Elle ee e doit d´ cider du montant optimal de d´ chets a acheter a chaque ville pour e e ` ` minimiser son coˆ t d’achat. n´ cessitant 700 heures d’usinage et 350 heures de ´e e finition. Chaque produit doit passer les deux ateliers d’usinage et de finition. Recyclage du papier. une partie est directement proportionnelle au nombre d’heures pass´ es a la production (les frais variables). Exercices 19 1.6. L’entreprise dispose egalement d’une section administration. la soci´ t´ doit au u ee moins collecter 1. La r´ partition entre m´ nages e e e et soci´ t´ s est diff´ rente d’une ville a l’autre expliquant un pourcentage ee e ` diff´ rent de listes d’ordinateur et de journaux dans les d´ chets.6 Exercices 1. Une soci´ t´ de tri de d´ chets et recyclage de paee e pier peut se fournir en d´ chets aupr` s de deux villes. 1. Le mois dernier.500 tonnes de listing d’ordinateur par an. 700 unit´ s de e e P2 ont et´ produites. Planification de production sur cout variable.1.000 Ville 2 15 30 20. e ` e . Une ´ partie du coˆ t de production est ind´ pendante du nombre d’heures pass´ es a u e e ` la production (les frais fixes). De mˆ me. Le mois pass´ . Pour couvrir ses frais fixes. Au del` de 6.2.000 La soci´ t´ offre aux villes un prix de 35 EURO par tonne de d´ chet. 500 unit´ s de P1 ont et´ produites grˆ ce a e ´e a ` 750 heures d’usinage et 250 heures de finition.000 a tonnes de journaux mis sur le march´ par an. (b) D´ terminer graphiquement le plan d’achat optimal et en d´ duire le coˆ t e e u d’achat minimum. exprese e sion des contraintes et de l’objectif).Section 1.

u e Indication : calculer d’abord le prix de l’heure dans chacun des ateliers et le temps n´ cessaire dans chacun des ateliers par produit. (a) Calculer les marges sur coˆ ts variables (diff´ rence entre prix de vente u e et coˆ t variable de production) par unit´ de chacun des deux produits.000 6. e on a observ´ la r´ partition suivantes entre frais fixes et frais variables : e e Section frais fixes frais variables Administration 50.000 0 Usinage 60.20 Chapitre 1.200 heures par mois pour l’usie e nage et de 500 heures pour la finition. La programmation lin´aire.000 11. e (b) Les capacit´ s de production sont de 1.600 Finition 40. ` u (c) D´ terminer graphiquement la solution optimale. Formuler le programme lin´ aire correspondant a la maximisation de la marge sur coˆ ts variables. Les prix de vente sont de 55 euros et 43 euros respectivement.000 Il y a un coˆ t de conditionnement de 8 euros l’unit´ pour P1 et de 6 euros u e pour P2 . e .

6). Partant du point (0. e 21 . Dans le cas contraire. l` . lors du passage par une phase pr´ liminaire appel´ e phase I. ` ` Nous allons maintenant voir comment effectuer ces mˆ mes op´ rations en utie e lisant uniquement l’alg` bre. conduit a diminuer l’objectif. on constate que tout mouvement. On est donc a l’optimum. 2. 3x1 x1 2x2 + 2x2 x2 ≤ 4 ≤ 12 ≤ 18 ≥ 0 ≥ 0 (2. Nous verrons la phase I au chapitre 4.6). On d´ termine une e e e arˆ te le long de laquelle l’objectif s’accroˆt : l’arˆ te en direction de (2. Et le processus continue de mani` re it´ rative. e e ` Le principe de l’algorithme du Simplexe est de d´ terminer une solution optie male en allant de sommet en sommet adjacent.c. en arri` re vers (0. l’ale gorithme.1. e Rappelons la formulation de l’exemple introductif : max z = 3 x1 + 5 x2   x1                  s.6) e a e ou en avant vers (4. on va aller jusqu’au bout de cette arˆ te : c’est-` -dire e a au sommet (0. Ensuite.1 Principe de l’algorithme L’algorithme du Simplexe permet la d´ termination d’une solution optimale d’un e programme lin´ aire lorsqu’une telle solution existe.0). On va e ı e jusqu’au bout de l’arˆ te et.1) dont la repr´ sentation graphique est donn´ e a la figure 2.3). d´ termine e e e l’absence de solution r´ alisable. l’arˆ te e e ı e en direction de (0. C’est l’objet de l’algorithme du Simplexe.Chapitre 2 Algorithme du Simplexe. l’algorithme va d´ terminer une arˆ te le long de laquelle l’objectif s’accroˆt : par exemple.6).q.

la contrainte e e e 3x1 + 2x2 ≤ 18. e La forme canonique d’un programme lin´ aire dans l’espace des variables originales e avait et´ vue au chapitre 1. x ≥ . 0) (6 .22 x1 = 0 Chapitre 2. 0) 8 x2 = 0 Figure 2. 6) 4 2 (0 . e e e Cependant. parmi ces derni` res . e e e e e Observons qu’il est toujours possible de transformer une contrainte d’in´ galit´ e e g´ n´ rale en une contrainte d’´ galit´ par ajout d’une variable a laquelle on impose e e e e ` d’ˆ tre non n´ gative. Consid´ rons.q. . Il s’agit d’un probl` me avec n variables et m + n contraintes d’in´ galit´ . Elle correspond a la forme matricielle suivante : ´e ` max z = cT x. Algorithme du Simplexe.   avec A c Ax ≤ b. il y a m contraintes qui peuvent etre des contraintes e ˆ d’in´ galit´ g´ n´ rales et n qui ne sont que des contraintes de positivit´ des variables. 6) 2x2 = 12 (4. 6) (4 . par exemple. 10 (0.    s.1: Un exemple de programme lin´ aire e 2.c. 9) 8 (0. e ´ revient a dire qu’il faudrait ajouter une quantit´ non n´ gative au membre de gauche ` e e pour qu’il y ait egalit´ : ´ e 3x1 + 2x2 + x3 = 18. 0) x1 = 4 (2. matrice (m × n) b vecteur (m × 1) vecteur (n × 1) x vecteur (n × 1). Imposer que le membre de gauche soit inf´ rieur ou egal au membre de droite. 3) 3x1 + 2x2 = 18 2 (4. e avec la condition que la variable x3 soit non n´ gative x3 ≥ 0.2 Formes canoniques d’un programme lin´ aire.

1 La variable d’´ cart est la quantit´ qui. e Illustrons cette correspondance entre solutions : a la solution (3.5) du probl` me (2.c. il suffit de tronquer la solution dans R5 en ne retenant que ses deux premi` res e composantes.   3x1 +2x2 +x5     x1 . on impose que le membre de gauche d´ passe le membre de droite. x2 . e D´ finition 2.8. x4 . ´ d’une part. e Bien que dans la forme canonique on ne consid` re que des contraintes d’in´ e e galit´ s g´ n´ rales du type inf´ rieur ou egal.1).1.2) du probl` me ` e (2.1) correspond la solution augment´ e (3. Comme. toute solution r´ alisable du probl` me (2. Lorsqu’on impose e e e ´ ´ e 2x1 + x2 ≥ 4. ajout´ e au membre de e e e e ´ gauche d’une contrainte. En effet. Pour revenir a l’´ galit´ . Comme cet ecart peut varier. permet de transformer la contrainte en egalit´ . . Formes canoniques d’un programme lin´aire. e 23 Cette quantit´ repr´ sente un d´ ficit ou un ecart.1). on a bien equivalence entre les ´ deux probl` mes. ˆ e e e d’autre part.2. il faut ´ e ˆ ` e e retrancher une quantit´ non n´ gative du membre de gauche.2).2). on e e e ´ ´ l’appelle variable d’´ cart.Section 2. e e 2x1 + x2 − x3 = 4.2) Remarquons qu’il y a equivalence totale entre les deux formes. x5 = 4 = 12 = 18 ≥ 0 (2.1) peut etre augment´ e en une e e ˆ e solution r´ alisable pour le probl` me (2. Il y a donc e aussi un ecart qui s’av` re cette fois etre un surplus. on peut aussi envisager de transformer e e e e ´ des contraintes g´ n´ rales du type sup´ rieur ou egal en egalit´ .2) peut etre tronqu´ e en une solution r´ alisable pour le probl` me (2. x3 . avec x3 ≥ 0.q. Appliquons ceci au probl` me (2. Dans l’autre e e sens.2. les fonctions objectifs sont identiques. On obtient le probl` me sous forme standard e e avec egalit´ s suivant : ´ e max z = 3x1 + 5x2   x1 +x3      +x4 2x2 s. Toute solution r´ alisable du probl` me e e e e (2.

e e en plus.2) forment un syst` me de m =3 ´ e e e egalit´ s en n + m = 2 + 3 = 5 inconnues.3 Notion de solution de base On remarquera que les egalit´ s du probl` me (2. e e . Algorithme du Simplexe. Les m variables restantes sont appel´ es variables de base (v. D´ finition 2. on obtient une solution unique en r´ solvant les m contraintes e d’´ galit´ s obtenues en ajoutant les variables d’´ cart. Par exemple.b. la solution de base suivante : x1 = 0.b. v´ rifie les contraintes de positivit´ . les variables de base sont donc x3 . e e e e ee ` Propri´ t´ 2. Donc la valeur de n = 2 variables peut ´ e etre fix´ e arbitrairement.3) : x3 = 4 x4 = 12 x5 = 18 D´ finition 2.24 Chapitre 2. 2.h.).) les n variables de Rn+m e fix´ es a z´ ro.2 On appelle variables hors base (v.1 La notion g´ om´ trique de sommet du polygone correspond a la ee e e notion alg´ brique de solution de base r´ alisable.3) = 12 +x5 = 18 les deux variables x1 et x2 peuvent etre fix´ es a z´ ro. e e Dans l’exemple. e ` e e Dans l’exemple. x5 = 18 variables de base est r´ alisable car toutes les variables de base sont positives. e Le lien entre l’alg` bre et la g´ om´ trie est alors donn´ par la propri´ t´ suivante.4 On appelle solution de base r´ alisable une solution de base qui. x4 et x5 dont on peut lire la valeur dans (2.3 On appelle solution de base une solution o` en ayant choisi n e u variables hors base. On dit qu’elles sont mises ˆ e ` e hors base. dans le syst` me d’´ galit´ s : ˆ e e e e              x1 2x2 3x1 +2x2 +x3 +x4 = 4 (2. x2 = 0 variables hors base x3 = 4. x4 = 12. e e e D´ finition 2.

x5 x3 . 0) (2. 0.3). x4 = 12. x2 = 6 . = 4. e Nous avons d´ j` annonc´ que l’algorithme du Simplexe consiste a aller de ea e ` sommet en sommet adjacent. x5 x4 . 0) (0. x1 x2 x3 x4 x5 = 0.0).b. 9) (2. (4. 0) (0. 0) (6. x1 = 2. 0) (0. x2 ) (x3 . x5 ) sommet ? (0. 0) (4. 6) (4. −6. e ´ v.1: Correspondance entre solution de base r´ alisable et sommet.1. x5 = 18. 18) (4. 6. −6) (0. A la figure 2. x2 = 0. ˆ ´ D´ finition 2.1. =6 car elles ne diff` rent que par une seule variable hors base. 0) oui oui non oui non oui oui non Tableau 2. les deux solutions de base suivantes sont adjacentes : x1 = 0. 3) (4. = 6. Par contre les solutions e suivantes : x1 = 0. 6) (4.h.3. 0. les sommets e ee (0. Interpr´ t´ alg´ briquement. x2 = 0. (2. x1 .6). 12.9). x4 x1 . x3 x2 . (4. x5 x2 . (0. 12. Notion de solution de base 25 On peut v´ rifier cette propri´ t´ sur l’exemple. x4 x3 . x3 = 4. x2 x1 . 6.5 On appelle solutions de base adjacentes deux solutions de base e dont les variables de base sont les mˆ mes sauf une qui est de base dans la premi` re e e base et hors base dans la seconde. (4.0) correspondent a des solutions de base r´ alisables ` e tandis que les points (0. 6) (−2.6). x5 (x1 . 0.6) et (6.Section 2. x4 . e ` e La notion d’adjacence doit etre etendue aux solutions de base. = 0. Dans l’exemple. Cette correspondance est etablie au tableau 2. 6) (0. cela revient a consid´ rer ee e ` e un passage d’une solution de base r´ alisable a une autre solution de base r´ alisable. 6) (4.0) correspondent a des solutions de base non ` r´ alisables.

4 Initialisation de l’algorithme La question qui se pose est : “Comment choisir le point de d´ part ?” e Si le probl` me est mis sous forme d’in´ galit´ s avec bi ≥ 0. Algorithme du Simplexe. on n’aurait pas pu d´ marrer ainsi. On e peut le v´ rifier a la figure 2. 0) En termes alg´ briques. +x5 = 18 on lit la valeur des variables de base : x3 = 4 x4 = 12 x5 = 18 D’o` la solution de base r´ alisable de d´ part : u e e (0. e ` ` Propri´ t´ 2.2 La notion g´ om´ trique de sommets adjacents correspond a la noee e e tion alg´ brique de solutions de base r´ alisables adjacentes. . toutes les variables originales sont mises hors base. ` . e e 2. Remarquons que si un membre de droite avait et´ n´ gatif ou si une contrainte avait ´e e et´ sous forme d’´ galit´ . il suffit e e e de prendre l’origine comme point de d´ part. 12. Que vaut la fonction objectif pour cette premi` re solution de base ? e z = 3x1 + 5x2 = 3 · 0 + 5 · 0 = 0. ce qui n’est pas etonnant vu que cela a e e ´ correspond a une production nulle des deux produits. .26 Chapitre 2. c’est-` -dire une marge b´ n´ ficiaire nulle.1. 0. 4. ne sont pas adjacentes puisqu’elle diff` rent par plus d’une variable hors base. Dans l’exemple.n. dans le syst` me d’´ galit´ s : e e e              x1 2x2 3x1 +2x2 +x3 +x4 = 4 = 12 . 18). . i = 1. x2 ) = (0. Ces embˆ ches peuvent ´e e e e u etre lev´ es en passant par une phase pr´ liminaire appel´ e phase I de l’algorithme ˆ e e e du Simplexe (voir chapitre 4). cela donne : e (x1 . Autoe matiquement .

a la premi` re e e e ` e contrainte rencontr´ e. la fonction objectif z doit etre exprim´ e en ´ e ˆ e fonction des seules variables hors base. on constate qu’en ce point la variable e e d’´ cart x4 s’annule et aller au del` conduirait a la rendre n´ gative.5. Une it´ration Simplexe e 27 2.1 Choix de la direction La question qui se pose est alors : comment choisir la direction ? Remarquez qu’alg´ briquement. 2. z augmente de 5.0). Pour une augmentation unitaire de x1 .5. z augmente de 3. e e ı 2. tant que les variables de base restent non n´ gatives. e ` En maintenant x1 hors base dans (2. Pour une augmentation unitaire de x2 .5 Une it´ ration Simplexe e Pour rappel. cette question se formule de mani` re equivalente par : quelle e e ´ variable hors base va entrer en base ? Le crit` re de s´ lection de la variable entrante est de prendre la variable hors e e base qui fournit le plus fort taux d’augmentation de la fonction objectif : z = 3x1 + 5x2 . On va donc c ` e se d´ placer a partir de notre solution de base de d´ part vers une solution de base e ` e r´ alisable en suivant une arˆ te le long de laquelle l’objectif s’accroˆt. on se dirige sur l’axe x2 et on s’arˆ te en (6. On va donc pouse a ` e ser x2 le plus loin possible. on obtient la variation des variables de base en fonction de x2 : x3 = 4 ≥ 0 . ´ e Remarquez que pour pouvoir appliquer ce crit` re simple (choisir la variable e de coefficient objectif le plus elev´ ). le principe de l’algorithme du Simplexe consiste a se d´ placer de ` e sommet en sommet adjacent de fa¸ on a am´ liorer la fonction objectif.Section 2. Alg´ briquement. Le crit` re de s´ lection de la variable entrante est donc le suivant : on choisit e e la variable avec le coefficient objectif le plus elev´ .2 Choix de la variable sortante La question qui se pose est : quand s’arrˆ ter le long de la direction ? e G´ om´ triquement. e Le crit` re de s´ lection de la variable sortante est donc le suivant : prendre e e comme variable sortante la premi` re variable de base a s’annuler.5.3).

c’est-` -dire la premi` re qui s’annule (pour x2 = 6). Ceci peut etre fait au moyen de deux types d’op´ rations qui ne modifient pas ˆ e l’ensemble des solutions d’un syst` me d’´ quations : e e 1. Ajoutons au syst` me de d´ part (2. Additionner un multiple d’une equation a une autre equation. ´ e 2. Multiplier une egalit´ par une constante non nulle.3) en fonction e des nouvelles variables de base. Plus pr´ cis´ ment. Pour ce faire. x4 = 12 − 2x2 ≥ 0 x5 = 18 − 2x2 ≥ 0 ou encore : x2 ≤ x2 12 =6 2 18 ≤ =9 2 a e On en conclut que la variable sortante est x4 . on e e e e e va calculer la nouvelle solution de base en explicitant le syst` me (2.5. il faut : .28 Chapitre 2.3 Calcul du nouveau sommet La question qui se pose est : comment calculer la nouvelle solution de base ? On va y r´ pondre en utilisant la r´ solution de syst` mes. u 2. On veut donc expliciter x2 dans la contrainte (2) en lieu et place de x4 . De mani` re g´ n´ rale. Algorithme du Simplexe.3) en premi` re ` e e e ligne la d´ finition de la fonction objectif : e z −3x1 −5x2 x1 2x2 3x1 +2x2 +x3 +x4 = = 0 (0) 4 (1) = 12 (2) +x5 = 18 (3) Donc x2 remplace x4 comme variable de base. ´ ` ´ Appliquons ceci a l’exemple. La variable sortante est celle dont on lit la valeur dans la ligne o` ce minimum se produit. on calcul le minimum du rapport du coefficient du membre e e e de droite sur le coefficient de la variable entrante dans la mˆ me ligne lorsque e celui-ci est positif.

Une it´ration Simplexe e 29 1. 0. Autrement dit. x3 . 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` me est donc le suivant : e z −3x1 x1 x2 3x1 +x3 + 1 x4 2 + 5 x4 2 = 30 (0 ) = = −x4 +x5 = 4 (1) 6 (2 ) 6 (3 ) o` l’on peut lire directement (en se souvenant que x1 et x4 sont hors base u donc nulles) : z x3 x2 x5 = = = = 30 4 6 6 On en d´ duit la valeur de la nouvelle solution de base : e (x1 . x2 . 6.Section 2. Amener un 1 comme coefficient de x2 dans (2).5. . x5 ) = (0. la nouvelle contrainte not´ e (2’) est l’ancienne (2) multipli´ e par 1/2 : e e (2 ) = (2) × 1 2 ´ 2. e e e par exemple. x4 . Eliminer x2 des autres equations. Remarquez que les op´ rations d’´ limination de x2 des lignes autres que la e e ` deuxi` me se font obligatoirement en retranchant a chacune de ces lignes un mule tiple de la deuxi` me ligne. 4. Toute autre op´ ration d´ truirait les colonnes de la e e e matrice identit´ dans le syst` me r´ sultant comme on peut le constater en essayant. de faire : (3 ) = −1 × (3) + (2). 6) qui donne la nouvelle valeur de l’objectif : z = 30.

4 Test d’optimalit´ e La question qui se pose maintenant est la suivante : comment d´ terminer le fait e d’ˆ tre optimum. c’est elle qui est la premi` re a s’annuler (pour x1 = 2). il est int´ ressant de faire entrer x1 en base. Comment peut-on voir s’il existe e ´ ` encore un sommet adjacent profitable ? Pour r´ pondre a cette question. e Un sommet est optimal si tous les sommets adjacents donnent des valeurs inf´ rieures ou egales a la fonction objectif. 2 on s´ lectionne donc pour la variable entrante x1 . e ` Pour calculer le nouveau sommet. Algorithme du Simplexe. Effectuons donc la seconde it´ ration de l’algorithme du Simplexe.5. nous allons utiliser la ligne de d´ finition de e ` e l’objectif. c’est la variable avec e le plus grand coefficient objectif. e Le crit` re d’arrˆ t sera donc le suivant : la solution de base courante est optie e male si tous les coefficients objectif sont n´ gatifs ou nuls lorsque z est exprim´ e e e en fonction des seules variables hors base. et d’ailleurs la seule possible.30 Chapitre 2. 2 Comme x1 a un coefficient positif. on exprime le syst` me en fonction des noue velles variables de base (x1 prend la place de x5 ) : z + 3 x4 2 x2 x1 + 1 x4 2 +x5 = 36 2 6 2 x3 + 1 x4 − 1 x5 = 3 3 = − 1 x4 + 1 x5 = 3 3 . Au vu de e 5 z = 30 + 3x1 − x4 . 2. En effet. etudions la variation des variables de e ´ base en fonction d’une augmentation de x1 : x3 = 4 − x1 x2 = 6 x5 = 6 − 3x1 La variable sortante est x5 . L’´ quation (0’) se r´ crit : e e 5 z = 30 + 3x1 − x4 . Pour d´ terminer la variable sortante.

5 Chemin suivi par l’algorithme du Simplexe On peut suivre a la figure 2. Une it´ration Simplexe e Donnant la nouvelle solution de base r´ alisable : e (2.5. La ligne objectif s’´ crit : ` e e 3 z = 36 − x4 − x5 . 0) Appliquons a nouveau le test d’optimalit´ . Initialisations.0). Terminaison. 2. 6. 31 Nous verrons au chapitre suivant voir une autre fa¸ on de pr´ senter les mˆ mes c e e calculs. trouver une variable entrante ? e ` e Pourra-t-on. trouver une variable sortante ? ` e e 3. Pourra-t-on toujours trouver une solution de base de d´ part e r´ alisable ? e 2. It´ rations. a chaque it´ ration. Pourra-t-on.6). La troisi` me it´ ration e ` e e consiste a constater que l’on est a l’optimum.5. ` e Partant du sommet (0. e 2. ` ` Nous verrons au chapitre 4 les diff´ rents probl` mes qui peuvent se produire lors e e de l’ex´ cution de l’algorithme du Simplexe. Il s’agit de la pr´ sentation du Simplexe en tableaux. a chaque it´ ration.6). Ces probl` mes peuvent se produire e e durant les trois etapes de l’algorithme : ´ 1. e e . la solution courante e x∗ = 2 1 x∗ = 6 2 est optimale. 0. 2 Comme tous les coefficients objectifs sont n´ gatifs. la premi` re it´ ration consiste a aller au sommet (0. e e ` La second it´ ration consiste a rejoindre le sommet (2.1 le chemin emprunt´ par l’algorithme du Simplexe.Section 2. L’algorithme va-t-il converger en un nombre fini d’´ tapes ? Mais avant cela donnons un r´ sum´ de l’algorithme du Simplexe. Elle donne sa valeur maximale a l’objectif qui est de : ` z ∗ = 36.

soit e l’indice de cette variable entrante.1 Algorithme du Simplexe. 2.b. • Eliminer xe des autres lignes par soustraction d’un multiple de la ligne s. Pas 2. e • S´ lectionner les variables originales comme variables hors base.h. e ` • La variable sortante est la premi` re a s’annuler : c’est celle pour laquelle le minimum est atteint dans : bi bs = min i|aie >0 aie ase Soit s l’indice de la ligne correspondante. Choix de la variable sortante. • Choisir comme variable entrante la v. donc le coefficient objectif est le plus elev´ lorsque z est exprim´ e en fonction des seules v. • Retour au Pas 1. Initialisations. D´ terminer la nouvelle solution de base : e • Diviser toutes les coefficients de la ligne s par ase . Pas 0. Algorithme du Simplexe. e Pas 1.6 Algorithme du Simplexe Terminons en donnant une description sch´ matique de l’algorithme du Simplexe. Choix de la variable entrante. Pas 3.h.32 Chapitre 2. • Sinon. e Algorithme 2. alors stop. ´ e e • Si tous sont n´ gatifs ou nuls.b. . • Ajouter les variables d’´ cart. Le tableau courant d´ crit une e e solution optimale.

Chapitre 3 L’algorithme du Simplexe en Tableaux 3. faire le pivotage : la variable entrante prend la colonne de la variable sortante dans le syst` me d’´ quation. Il c e e s’agit de la pr´ sentation du Simplexe en tableaux. la premi` re variable de base a s’annuler e ` (ce qui correspond a la rencontre de la premi` re contrainte dans la direction ` e choisie). ´ On effectue g´ n´ ralement les calculs sur le tableau des coefficients qui porte e e le nom de tableau Simplexe. choisir comme variable entrante. choisir comme variable sortante. e e e 33 . ` 2. Pour rappel. celle de coefficient le plus elev´ dans la ´ e ligne objectif (ce qui correspond a choisir la direction assurant plus grand ` taux d’accroissement a la fonction objectif).1 Introduction Nous avons vu au chapitre pr´ c´ dent une pr´ sentation alg´ brique de l’algorithme e e e e du Simplexe. Mais il faut bien garder a l’esprit que ce tableau et ` les op´ rations que l’on va y effectuer ne sont qu’une traduction des op´ rations sur e e le syst` me d’´ quations alg´ briques correspondantes. e Nous verrons au chapitre suivant les embˆ ches que l’on peut rencontrer a u ` chacune des etapes de l’algorithme. 3. Nous allons maintenant voir une autre fa¸ on de pr´ senter les mˆ mes calculs. il s’agit. partant d’une solution de base (correspondant a un sommet de la r´ gion r´ alisable). en ce compris dans l’expression de la fonction e e objectif. a chaque it´ ration de ` e e ` e 1.

les coefficients de la fonction objectif. les coefficients du membre de droite. L’algorithme du Simplexe en Tableaux 3.34 Chapitre 3. On aura donc : e 1. 3x1 x1 2x2 + 2x2 x2 ≤ 4 ≤ 12 ≤ 18 ≥ 0 ≥ 0 Le syst` me de d´ part : e e z −3x1 −5x2 x1 2x2 3x1 +2x2 se met sous la forme du tableau suivant : z x1 x2 x3 x4 x5 0 1 0 0 0 0 1 0 0 0 0 4 +x3 +x4 = = 0 4 = 12 +x5 = 18 1 −3 −5 0 0 0 1 0 3 0 2 2 0 12 1 18 .1 Un tableau Simplexe est constitu´ des coefficients des equations e e alg´ briques sans le nom des variables. Sa formulation est reprise ci-dessous : max z = 3 x1 + 5 x2   x1                  s. o` l’on s´ pare les coefficients de objectif des contraintes d’une barre horizontale u e et les coefficients du membre de gauche des contraintes des coefficients du membre de droite par une barre verticale.c. les coefficients des variables dans le membre de gauche des contraintes.q. 2.2 Notion de tableau Simplexe ´ D´ finition 3. Reprenons l’exemple du chapitre 1. 3.

• Ensuite la premi` re ligne donne l’oppos´ des coefficients objectif. x2 . x3 . e ` • Tout d’abord les valeurs du membre de droite donnent les valeurs courantes des variables de base. 18) 3. 2 2 Dans le cas o` le coefficient dans la colonne entrante est n´ gatif ou nul. On indique ceci dans le tableau e en encadrant la colonne de la variable entrant que l’on appelle la colonne pivot : z x1 x2 x3 x4 x5 0 1 0 0 0 0 1 0 0 0 0 4 1 −3 −5 0 0 0 1 0 3 0 2 2 0 12 1 18 On s´ lectionne la variable sortante comme etant la variable de base qui s’annule la e ´ premi` re. x5 ) = (0. • On identifie des variables de base a une colonne de coefficient de la matrice ` identit´ et a un coefficient objectif nul. = 6. le dernier coefficient premi` re ligne donne la valeur courante de e l’objectif. la ligne u e n’entre pas en compte dans le calcul du minimum. e e • Enfin. . e ` On en d´ duit la solution courante : e (x1 .3.Section 3. cela revient a calculer le e e e ` 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 : 12 18 min −. Plusieurs caract´ ristiques d’un tableau sont a remarquer. 12. 0. Tableaux Simplexe et pivotage 35 o` l’on a ajout´ au dessus du tableau le nom des variables pour voir a quelle variable u e ` correspond chaque colonne du tableau. x4 . on s´ lection comme variable entrante la variable x2 de e e e coefficient le plus n´ gatif dans la ligne objectif. 4. .3 Tableaux Simplexe et pivotage A la premi` re it´ ration. Illustrons ceci sur un exemple. Comme nous l’avons vu au chapitre pr´ c´ dent.

Il suffit. e ´ Remarquez que cela revient a amener la colonne de x4 en lieu et place de celle de ` x2 . dans le cas pr´ sent. La variable sortante est alors la variable de base dont la valeur se lit dans la ligne o` le minimum se produit : ici. C’est donc le centre de la croix ainsi form´ e par la ligne et la colonne pivot. e ` On encadre alors la ligne o` le minimum se produit. Elle correspond bien a la variable x4 . L’algorithme du Simplexe en Tableaux e ` Supposons que le coefficient de x2 dans la premi` re contrainte soit -1 a la place de 0. Ceci peut etre fait par deux types d’op´ rations : ˆ e ` 1. la variable de base x1 reste positive. Amener un coefficient 1 a la place du pivot en divisant la ligne pivot par le pivot : z x1 x2 x3 0 1 x4 x5 0 0 0 0 0 0 4 6 1 −3 −5 0 0 0 1 0 3 0 1 2 0 1/2 0 0 1 18 . L’´ quation correspondante se r´ crit de mani` re equivalente comme suit : e e e ´ x1 = 4 + x2 Quelle que soit la valeur de x2 > 0. de chercher la colonne identit´ dont le coefficient 1 est dans la deuxi` me ligne.36 Chapitre 3. il s’agit de la deuxi` me ligne et donc de la u e e e variable x4 . Cette ligne re¸ oit le nom u c de ligne pivot : z x1 x2 x3 x4 x5 0 1 0 0 0 0 1 0 0 0 0 4 1 −3 −5 0 0 0 1 0 3 0 2 2 0 12 1 18 D´ finition 3. e Le pas suivant de l’it´ ration Simplexe consiste a d´ terminer le nouveau some ` e met : ceci en exprimant x2 dans la deuxi` me equation en lieu et place de x4 .2 On appelle el´ ment pivot le coefficient situ´ a l’intersection de la e ´e e` colonne pivot et de la ligne pivot.

6) z = 30. 1 3 = 2. 6. ` e e La nouvelle solution de base et la nouvelle valeur de l’objectif sont respectivement : (x1 . Effectuons maintenant la deuxi` me it´ ration de l’algorithme du Simplexe. un multiple de la e ligne pivot a l’exclusion de toute autre ligne sinon on d´ truirait la matrice identit´ . 4. 0. x4 . Il s’agit de x1 .Section 3.3. Eliminer x2 des autres equations en retranchant chaque fois un multiple de la nouvelle ligne pivot : z x1 x2 x3 0 0 1 0 x4 x5 0 30 0 0 1 4 6 6 1 −3 0 0 0 1 0 3 0 5/2 1 0 −1 0 1/2 0 Rappelons que l’on doit utiliser. Le minimum se produit dans la derni` re ligne o` l’on lit la valeur de x5 qui sort e u . D’o` e u la s´ lection de la colonne pivot suivante : e z x1 x 2 x 3 0 0 1 0 x4 x5 0 30 0 0 1 4 6 6 1 −3 0 0 0 1 0 3 0 5/2 1 0 −1 0 1/2 0 Le second pas de l’it´ ration consiste a d´ terminer la variable sortante. x5 ) = (0. Tableaux Simplexe et pivotage 37 ´ 2. −. Le e e e e ` e premier pas de la deuxi` me it´ ration consiste a d´ terminer la variable entrante. dans cette seconde op´ ration. x2 . On e ` e 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 : min 4 6 . la variable de coefficient le plus n´ gatif dans la ligne objectif. x3 .

x2 . x4 . L’algorithme du Simplexe en Tableaux donc de base. Le r´ sultat de ces deux types d’op´ rations est le suivant : e e z x1 x2 x3 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 x4 3/2 x5 1 36 2 6 2 1/3 −1/3 1/2 0 1/3 0 −1/3 La nouvelle solution de base et la nouvelle valeur de l’objectif valent : (x1 . 6. x3 .38 Chapitre 3. 0) z = 36. 2. x5 ) = (2. 0. Amener un 1 en position pivot. Eliminer x1 des autres contraintes. . On encadre la ligne pivot : z x1 x 2 x 3 0 0 1 0 x4 x5 0 30 0 0 1 4 6 6 1 −3 0 0 0 1 0 3 0 5/2 1 0 0 1/2 0 −1 Le dernier pas de l’it´ ration Simplexe consiste a d´ terminer la nouvelle soe ` e lution de base au moyen des deux types d’op´ rations el´ mentaires sur le tableau e ´e Simplexe : 1. z x1 x 2 x 3 0 0 1 0 0 1 0 x4 5/2 0 1/2 x5 0 30 0 0 4 6 2 1 −3 0 0 0 1 0 1 0 −1/3 1/3 2.

il y avait toujours une variable sortant de la base. ` Mais avant cela. Nous verrons au chapitre e suivant comment on peut d´ marrer l’algorithme si toutes les contraintes initiales e ne se pr´ sentent pas sous forme de contraintes d’in´ galit´ s du type “inf´ rieur ou e e e e egal a” avec un membre de droite positif. r´ sumons l’algorithme du Simplexe en tableaux. 6) 4 P 2 = (2. e .Section 3. Le chemin suivi par l’algorithme du Simplexe est illustr´ a la figure 3. e ` Initialement. Tableaux Simplexe et pivotage 39 Si maintenant. on suit l’axe des x2 en direction du point P1 = (0. soit le point P0 = (0. on se dirige horizontalement vers le somme P2 = (2. 0). Au cours de x1 9 P 1 = (0. En effet. A la e e deuxi` me it´ ration. Nous examinerons egalement ce qu’il ´ ` ´ convient de faire si on ne trouve aucune variable candidate a sortir de la base. nous avons ici suppos´ que l’on e e pouvait toujours trouver une solution de base de d´ part r´ alisable et qu’` chaque e e a it´ ration. La e e troisi` me it´ ration constate l’optimalit´ du point P2 . la premi` re it´ ration. on part de l’origine des axes. On arrˆ te l’algorithme : la solution courante est optimale : e x∗ = 2 1 x∗ = 6 2 z ∗ = 36. 6). on constate que lors du e e premier pas de celle-ci.3. 6). e e e Nous verrons au chapitre suivant les embˆ ches que l’on peut rencontrer dans u l’ex´ cution de l’algorithme du Simplexe.1: Chemin suivi par l’algorithme du Simplexe. c’est-` -dire lors de la s´ lection de la variable entrante. 0) 2 4 6 x2 Figure 3. on effectue par la troisi` me it´ ration. 6) 2x2 = 12 x1 = 4 3x1 + 2x2 = 18 P 0 = (0.1. il a e n’y a aucun candidat.

4 Algorithme du Simplexe en tableaux Algorithme 3. xn+m 0 1 0 0 0 1 .1 Algorithme du Simplexe. .. e Soit xe telle que − ce ≤ −cj . stop : on a trouv´ la solution optimale. an1 an2 ane amn 0 0 1 b1 0 0 1 −c1 −c2 −ce −cn 0 0 . xj = 0.. e e e 2.40 Chapitre 3. Pas 0. e 1. 0 a11 a21 a12 a22 a1e a2e a1n a2n 0 b1 0 b2 . .. . on entoure la colonne correspondante qui est appel´ e colonne ente rante. L’algorithme du Simplexe en Tableaux 3. xn xn+1 xn+2 . Choix de la variable entrante : s´ lectionner comme variable entrante la e variable hors base avec le coefficient dans la ligne objectif le plus n´ gatif. 0 a11 a21 a12 a22 0 b1 0 b2 Pas 1. Initialisation : Pour d´ marrer l’algorithme. ∀j = 1. Ajouter les variables d’´ cart aux contraintes d’in´ galit´ . . an1 an2 amn 0 0 1 b1 0 0 1 −c1 −c2 0 0 . . . . . ∀j| − cj < 0 Si une telle variable n’existe pas.n Il en r´ sulte le tableau de d´ part suivant : e e z x1 x2 . xn+m −cn a1n a2n 0 1 0 0 0 1 . e ` en se restreignant aux variables a coefficient n´ gatif. . . . Il en r´ sulte le tableau suivant : e z x1 x2 xe xn xn+1 xn+2 . e Sinon.. . . Mettre les variables originales hors base et les variables d’´ cart en e base.

On entoure la ligne o` le minimum se produit. ` e Pas 4. Pivotage : La variable entrante xe prend la place de la variable sortante xs dans la base. Il faut 1. e . Algorithme du Simplexe en tableaux 41 Pas 2. Pour cela. on calcule le minimum du e rapport du coefficient du membre de droite sur le coefficient de la variable entrante dans la mˆ me ligne lorsque celui-ci est positif. Exprimer la fonction objectif en fonction des nouvelles variables hors base. Soit xs la variable de base dont on lit la valeur en ligne l. 2. Soit l la ligne o` le e u minimum se produit : bl bi = min{ |aie > 0} ale aie La variable sortante est celle dont on lit la valeur dans la ligne o` le minimum u se produit. Amener des z´ ros dans le reste de la colonne pivote en ajoutant aux e autres lignes un multiple de la ligne ou l’on a amen´ le 1. 2. Pour cela. Amener un coefficient 1 au croisement de la colonne pivot et de la ligne ligne pivot en divisant celle-ci par le coefficient ale . It´ rer : retour au Pas 1. Choix de la variable sortante : s´ lectionner comme variable sortante la e ` premi` re variable de base a s’annuler. pratiquement on doit 1. . . xn+m 0 1 0 0 0 0 0 1 0 0 1 0 0 1 −c1 −c2 −ce −cn 0 0 0 0 a11 a21 al1 an1 a12 a22 al2 an2 a1e a2e ale a1n a2n aln 0 b1 0 b2 0 bl 1 b1 ane amn Pas 3.4. Il en r´ sulte le tableau suivant : u e z x1 x2 xe xn xn+1 xn+2 .Section 3. Expliciter le syst` me d’´ quations des contraintes en fonctions des noue e velles variables de base.

R´ soudre en appliquant la m´ thode du Simplexe : e e max z = 3x1 + 2x2 + 4x3 s. Les marges unitaires sont respectivement de 2 pour le premier produit et de 1 pour le second. x1 + 2x1 + 2x1 + x2 + 2x3 ≤ 4 3x3 ≤ 5 x2 + 3x3 ≤ 7 x1 . Temps dans pour le produit 1 pour le produit 2 l’atelier 1 l’atelier 2 1 heure 1 heure 0 heure 1 heure Les capacit´ s r´ siduelles sont de 4. Une compagnie fabrique deux produits dans ses deux ateliers. x2 .2. pour chaque tableau. (c) Illustrer sur un graphique le chemin suivi par l’algorithme du Simplexe.q. e e (b) D´ terminer la solution optimale au moyen de l’algorithme du Simplexe. x3 ≥ 0 3.42 Chapitre 3.5 heures par jour et de 6 heures par jour e e respectivement dans le premier et le second atelier. e (a) Formuler math´ matiquement le probl` me.1. e Pr´ ciser. la solution de base courante et justifier e le choix des variables entrante et sortante. .5 Exercices 3. Planification de production. Algorithme du Simplexe. L’algorithme du Simplexe en Tableaux 3. Les productions non enti` res sont permises. Le temps pass´ dans chacun des e ateliers pour fabriquer un produit de chaque type est donn´ au tableau cie dessous.c.

concernant le e e troisi` me point. la convergence est garantie.Chapitre 4 Questions sur l’algorithme du Simplexe. e 4. nous verrons que l’absence de e 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` me est non born´ . e 43 . 4. Enfin. a chaque it´ ration. trouver une variable e ` e entrante et une variable sortante ? (iii) Terminaison : va-t-on arriver a une conclusion (solution optimale ou ab` sence de solution) en un nombre fini d’it´ rations ? Qu’est-ce qui nous e garantit que l’on ne va pas it´ rer a l’infini ? e ` Le premier point sera r´ solu en consid´ rant un probl` me auxiliaire : le probl` me e e e e e e e dit de phase I. nous verrons que si la fonction objectif croˆt strictement a chaque e ı ` it´ ration.1 Introduction L’exemple consid´ r´ au chapitre 2 pour illustrer le fonctionnement de l’algorithme ee du Simplexe ne montrait pas les embˆ ches qui peuvent surgir a chaque etape de u ` ´ l’algorithme du Simplexe : (i) Initialisation : comment construire une solution de base r´ alisable ? e (ii) Chaque it´ ration : pourra-t-on.2 Initialisation de l’algorithme Les quelques exemples de probl` mes examin´ s jusqu’` pr´ sent n’ont pas pos´ de e e a e e probl` me d’initialisation car nous partions d’un probl` me o` toutes les compoe e u santes du membre de droite etaient non n´ gatives. En ce qui concerne les it´ rations. Supposons donc qu’il existe ´ e au moins un des coefficients du membre de droite strictement n´ gatif. Ce probl` me sera lui-mˆ me r´ solu par l’application de l’algorithme du Simplexe.

q. Le probl` me est double. x1 . −2x1 +3x2 x1 s.c. D’autre part. x5 .c. x2 . Questions sur l’algorithme du Simplexe. x4 . x3 . ce qui revient au mˆ me. retrancher x0 au membre de gauche. 2x1 −3x2 = −5.44 Chapitre 4. ou ce qui revient au mˆ me. Il e faudra cependant eliminer cette variable artificielle si on veut d´ terminer une base ´ e de d´ part r´ alisable pour le probl` me original. a maximiser ` e ` .q. On obtient la formulation e e sous forme d’´ galit´ s suivante : e e max z = x1 − x2 + x3                    2x1 −x1 −x2 +2x3 +x4 +x3 +x5 +x2 −2x3 = 4. on va lui ajouter une quantit´ e e positive x0 . On voit qu’en donnant a x0 la valeur 5 et en la faisant passer dans le membre ` de droite. 0. on rend non n´ gatives toutes les composantes du membre de droite. Nous allons illustrer ceci sur le probl` me suivant : e e max z =                    x1 − x2 + x 3 2x1 −x2 +2x3 ≤ 4. x6 ≥ Pour rendre le membre de droite non n´ gatif. x3 ≥ 0. ou. e e e e on va chercher a minimiser cette variable. Puisqu’on veut se d´ barrasser de x0 . il n’est pas clair de savoir a quelle base elle se rapporte. s. +x6 −x0 = −1. D’une part. il n’est pas evident que le probl` me e ´ e consid´ r´ ait une solution r´ alisable. On peut se ramener a la forme avec egalit´ s en multipliant les deux derni` res ` ´ e e in´ quations par (-1) et en ajoutant les variables d’´ cart. +x6 = −1. On e obtient le syst` me suivant : e              2x1 −x1 −x2 +2x3 +x4 +x3 +x5 +x2 −2x3 −x0 = 4. x2 . 2x1 −3x2 −x0 = −5. x1 . e ` On va r´ pondre a ces deux questions par la r´ solution d’un probl` me auxiliaire : e ` e e le probl` me de phase I. −x2 +2x3 ≥ 1. mˆ me dans le cas o` une ee e e u solution r´ alisable existe. −x3 ≥ 5.

e On peut alors r´ soudre le probl` me auxiliaire par la m´ thode du Simplexe. Initialisation de l’algorithme 45 son oppos´ . e On forme une base de d´ part non r´ alisable en prenant comme pr´ c´ demment les e e e e variables d’´ cart en base. avec ce probl` me de phase I. Notons par le symbole w. la fonction objectif de sorte que l’on peut e ajouter la ligne objectif suivante correspondant a une maximisation : ` max w = −x0 On obtient ainsi le probl` me dit de phase I de l’algorithme du Simplexe. e Notons que l’on se trouve. Cette op´ ration e e e correspond pr´ cis´ ment a donner a la variable artificielle une valeur suffisante pour e e ` ` qu’elle rende toutes les composantes du membre de droite non n´ gatives. e e e Les tableaux successifs seront les suivants : Tableau de d´ part : e w 1 x0 1 x1 0 2 2 x2 0 −1 −3 1 x3 0 2 1 −2 x4 x5 x6 0 1 0 0 0 1 0 0 0 0 1 0 4 −5 −1 0 −1 0 −1 0 −1 −1 Premi` re it´ ration sp´ ciale : e e e w x0 1 0 0 0 0 0 1 0 x1 2 0 −2 −3 x2 −3 2 3 4 x3 1 1 −1 −3 x4 0 1 0 0 x5 1 −1 −1 −1 x6 0 0 0 1 −5 9 5 4 .2. On fait alors rentrer la variable artificielle x0 dans la e base en l’´ changeant avec la variable de base la plus n´ gative. Une op´ ration de e e e e pivotage non standard nous permet cependant de nous en tirer dans le cas pr´ sent.Section 4. toujours confront´ e e au probl` me de la construction d’une base de d´ part r´ alisable.

e e Lorsqu’on a obtenu une solution de base r´ alisable pour le probl` me original. et qu’il est toujours born´ . dans ce cas. Soit elle est nulle et ` on a une solution de base r´ alisable du probl` me original. e e on passe a la phase II : ` • en supprimant la variable artificielle x0 . • en reprenant comme fonction objectif la fonction objectif du probl` me e original. une `ˆ e e borne inf´ rieure sur la valeur de la fonction objectif (` minimiser). Deux cas sont e possibles quant a la valeur optimale de sa fonction objectif. On a donc une solution de base r´ alisable e ` e pour le probl` me original. • en exprimant cette fonction objectif en fonction des seules variables hors base. Deuxi` me it´ ration : x2 entre. son objectif est de minimiser la e variable artificielle qui est astreinte a etre non n´ gative. La valeur e correspondante de la fonction objectif est w = 0. . soit elle est non nulle e e et le probl` me original n’est pas r´ alisable. Questions sur l’algorithme du Simplexe. e On remarquera que le probl` me de phase I est toujours r´ alisable (par conste e ruction). En effet. x0 sort : e e w 1 0 x0 1 −2 x1 0 1 1/5 x2 x3 x4 0 0 0 1 0 0 1 0 0 1 0 0 x5 0 0 x6 0 1 0 3 8/5 0 4/5 −1/5 −3/5 0 3/5 −3/5 −2/5 −1/5 11/5 Nous avons obtenu la solution optimale du probl` me auxiliaire. Z´ ro est. Ce qui revient a dire que l’on a ` r´ ussi a annuler la variable artificielle. x6 sort : e e w x0 1 0 0 0 0 0 1 0 x1 −1/4 3/2 1/4 −3/4 x2 0 0 0 1 x3 −5/4 5/2 5/4 −3/4 x4 0 1 0 0 x5 1/4 x6 3/4 −2 7 2 1 −1/2 −1/2 −1/4 −3/4 −1/4 1/4 Troisi` me it´ ration : x3 entre.46 Chapitre 4. e a Le probl` me de phase I a donc toujours une solution optimale.

Section 4.2. Initialisation de l’algorithme

47

Appliquons ceci a l’exemple. Pour rappel, la fonction objectif originale etait ici : ` ´ z = x1 − x2 + x3 Les deux premi` res op´ rations donne le tableau de phase II suivant : e e z 1 0 0 x1 −1 1 1/5 x2 1 0 0 1 x3 −1 0 1 0 x4 0 1 0 0 x5 0 0 x6 0 1 0 3 8/5

−1/5 −3/5

0 −3/5

−2/5 −1/5 11/5

La troisi` me op´ ration peut etre effectu´ e en ajoutant a la ligne objectif la deuxi` me e e ˆ e ` e contrainte et en retranchant la troisi` me. On obtient le tableau suivant de d´ part e e de la phase II : z x1 x2 x3 x4 0 0 0 1 0 0 1 0 0 1 0 0 x5 1/5 0 x6 −2/5 −3/5 1 3 8/5

1 −1/5 0 0 1 1/5

−1/5 −3/5

0 −3/5

−2/5 −1/5 11/5

On peut alors proc´ der a la phase II car on dispose cette fois d’une base de d´ part e ` e r´ alisable, x1 = x5 = x6 = 0, hors base, et x2 = 11 , x3 = 8 , x4 = 3 en base avec e 5 5 la valeur correspondante de la fonction objectif z = − 3 . A la premi` re it´ ration e e 5 de la phase II, x6 entre et x4 sort. On obtient le tableau suivant : z 1 0 0 x1 1/5 1 4/5 x2 x3 0 0 0 1 0 0 1 0 z∗ x∗ 1 x∗ 2 x∗ 3 x4 2/5 1 x5 1/5 0 x6 0 1 0 0 3/5 3 17/5 14/5

3/5 −1/5 1/5 −2/5 = = = = 3/5 0 14/5 17/5

0 −2/5

La solution optimale vaut donc :

48

Chapitre 4. Questions sur l’algorithme du Simplexe.

Exemple 2 : probl` me non r´ alisable. Soit le probl` me : e e e max z = 3x1   −x1      x 1 s.c.q.   2x1  
 

+ x2 +x2 +x2 +x2 x1 , x2

≥ ≥ ≤ ≥

1, 3, 2, 0.

Mettons le d’abord sous forme canonique avec in´ galit´ s du type ≤ : e e max z = 3x1   x1      −x 1 s.c.q.   2x1  
 

+ x2 −x2 −x2 +x2 x1 , x2

≤ −1, ≤ −3, ≤ 2, ≥ 0.

Puis sous forme canonique avec variables d’´ cart : e max z = 3x1   x1      −x 1 s.c.q.   2x1  
 

+ x2 −x2 +x3 −x2 +x4 +x2 +x5 x1 , x2 , x3 , x4 , x5

= −1, = −3, = 2, ≥ 0.

Formons le tableau de d´ part de la phase I : e 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 un premier pivotage non standard. La variable x0 remplace dans la base la variable la plus n´ gative, soit x4 . La suite des tableaux est la suivante : e 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 2 0 −1 1 5 0 0 3

Section 4.2. Initialisation de l’algorithme A la premi` re it´ ration, la variable x1 entre et x3 sort de la base : e e 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` me it´ ration, la variable x2 entre et x5 sort de la base : e e 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 1/2 1 0 0 0 1 −3/4 1/4 A la troisi` me it´ ration, la variable x3 entre et x1 sort de la base : e e w x0 x1 x2 x3 x4 x5 1 0 1/2 0 0 1/2 1/2 −1/2 0 0 2 0 1 −1 0 2 0 1 −1/2 0 0 −1/2 −1/2 1/2 0 0 −3/2 1 0 −1/2 1/2 5/2

49

La phase I se termine sans que w = 0 (x0 est encore dans la base et vaut 1/2). Le probl` me original n’est donc pas r´ alisable. En effet, les contraintes du probl` me e e e sont incompatibles. Ce verdict est confirm´ par un examen de la figure 4.1. e
x2 3 2 1

-1

1

3

x1

Figure 4.1: Probl` me irr´ alisable. e e

50

Chapitre 4. Questions sur l’algorithme du Simplexe.

4.3

D´ termination de la variable entrante e

La variable entrante doit etre une variable hors base avec un coefficient cj n´ gatif ˆ e dans la ligne objectif du tableau courant. Si une telle variable n’existe pas, alors le tableau courant d´ crit une solution optimale. En effet, la ligne objectif du tableau e courant peut s’´ crire e z+ cj xj = z ∗ ,
j∈N

o` N note l’ensemble des indices des variables hors base. Ceci qui peut encore u s’´ crire comme suit : e z = z∗ − cj xj .
j∈N

La solution courante o` xj = 0 pour tout j ∈ N donne la valeur z ∗ a la fonction u ` objectif. Si cj ≥ 0 pour tout j ∈ N , alors toute solution r´ alisable o` xj ≥ 0 pour e u tout j ∈ N donne a la fonction objectif une valeur qui est au plus z ∗ . La solution ` courante est par cons´ quent optimale. e

4.4

D´ termination de la variable sortante e

La variable qui quitte la base est la premi` re a bloquer l’augmentation de la e ` variable entrante. Cette r` gle est ambigu¨ car elle peut donner lieu a plusieurs e e ` candidats ou a aucun candidat. Ce dernier cas est illustr´ a la deuxi` me it´ ration ` e` e e dans le probl` me suivant : e max z = 2x1 + x2
            

x1 −2x2 +x3 −2x1 +x2

= 2, +x4 = 2,

s.c.q.

x1 , x2 , x3 , x4 ≥ 0.

Le tableau de d´ part est : e z x1 x2 −2 1 x3 x4 0 1 0 0 0 1 0 2 2

1 −2 −1 0 1 0 −2

Premi` re it´ ration : e e Au d´ part, x1 = x2 = 0 sont hors base et x3 = 2, x4 = 2 sont en base. On fait e

Le syst` me de d´ part est le e e e e suivant . Comme tous les coefficients ` e de la colonne x2 sont non positifs. D´termination de la variable sortante e 51 entrer x1 dans la base. On peut voir a la figure 4. s.Section 4.0). −2x1 +x2 ≤ 2. max z = 2x1 + x2              x1 −2x2 ≤ 2. aucune des variables de base n’est bloquante. On peut le v´ rifier graphiquement. La variable x2 peut croˆtre au del` de toute limite. Dans ce cas. x2 ≥ 0. La variable x3 sort de la base lorsque x1 vaut 2.q. le probl` me est non born´ . z x1 1 0 0 0 1 0 x2 −5 −2 −3 x3 x4 2 1 2 0 0 1 4 2 6 Deuxi` me it´ ration : e e La variable x2 est seule candidate a l’entr´ e en base.2: Solution non born´ e. On en conclut que le probl` me ı a e est non born´ . la r´ gion connaˆt une ` a e ı direction o` x2 n’est plus born´ e. e e .2 qu’` partir du sommet (2. x1 . e On peut arriver a la mˆ me conclusion en g´ n´ ral: s’il n’y a pas de candidat ` e e e pour quitter la base. u e x2 2 -1 -1 2 x1 Figure 4. Il n’y a que la variable de base x3 qui limite la croissance de x1 .c.4. on peut faire croˆtre la variable entrante et donc aussi la ı fonction objectif autant qu’on le veut.

La pr´ sence de plusieurs candidats pour quitter e la base a une cons´ quence importante : la d´ g´ n´ rescence. D’autre part. e Des it´ rations Simplexe qui changent juste la base sans changer la valeur de e la solution de base sont appel´ es it´ rations d´ g´ n´ r´ es. en g´ n´ ral. ne constituent que des “accidents passagers” dans le e e sens qu’apr` s quelques it´ rations d´ g´ n´ r´ es la fonction objectif se remet a croˆtre e e e e ee ` ı strictement. on trouve que chacune des trois variables de base. Il est a remarquer que les e e e e e e ` it´ rations d´ g´ n´ r´ es sont tr` s souvent pr´ sentes dans la r´ solution de probl` mes e e e ee e e e e pratiques mais. Questions sur l’algorithme du Simplexe. alors n’importe lequel de ces candidats peut servir. e e e e A l’it´ ration suivante. s’il y a plusieurs candidats pour quitter la base.52 Chapitre 4. Chacune de ces variables est ` 2 donc candidate a sortir de base. e e e e Illustrons ceci par l’exemple suivant : z x1 x2 x3 x4 x5 x6 0 1 0 0 0 0 1 0 0 0 0 1 0 3 1 2 1 −2 0 0 0 1 −8 0 2 6 4 2 −4 0 −1 +3 Ayant choisi x3 pour entrer en base. On peut choisir x4 . Continuons l’exemple. Ceci am` ne directement a consid´ rer le point suivant. par voie de cons´ quence. x4 . e ` e . x5 et x6 bloque l’accroissement de x3 a 1 . x1 entre en base et x5 bloque son entr´ e a une valeur egale e e ` ´ a z´ ro ! Donc la valeur de x1 et. On obtient le tableau suivant : ` z x1 x2 x3 1 0 0 x4 x5 x6 4 0 0 1 0 0 4 1 −2 0 0 0 1 1/2 0 0 −3 −2 0 1/2 0 1 0 0 2 −4 0 −1 +3 o` l’on constate que les variables de base x5 et x6 ont une valeur nulle ! Des u solutions de base avec une ou plusieurs variables de base nulles sont appel´ es des e solutions d´ g´ n´ r´ es. des autres variables et ` e e de l’objectif restent inchang´ es au cours de ce pivotage. e e e e La d´ g´ n´ rescence peut avoir la cons´ quence suivante.

alors on doit at` e teindre une solution optimale ou d´ tecter que le probl` me est non born´ apr` s un e e e e nombre fini d’it´ rations.Section 4. En cas d’ex aequo. e e Tout ce raisonnement repose sur l’hypoth` se que la fonction objectif auge mente strictement a chaque it´ ration. Il n’est alors pas e e possible d’it´ rer ind´ finiment. a chaque it´ ration. on ne peut pas repasser par une solution de base ` e d´ j` rencontr´ e. a chaque it´ ration. e e z x1 x2 57 x3 x4 x5 x6 x7 9 24 9 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 −10 0 0 0 0. 5 0. un nombre fini. ou ce qui revient au ea e e mˆ me le nombre de points extrˆ mes du poly` dre des contraintes. 5 −1. on prend la variable de e plus petit indice. La fonction objectif augmentant ` e strictement a chaque it´ ration.5. 5 −2. Arrˆt apr`s un nombre fini d’it´rations e e e 53 4. On remarquera la pr´ sence de composantes nulles dans le membre de droite. c’est-` -dire r´ p´ ter a l’infini la e a e e ` mˆ me suite d’it´ rations. (ii) En cas de plusieurs variables de base candidates a la sortie de la base. est major´ par e e e e n Cm+n . si ` e cette hypoth` se n’est pas satisfaite. on peut cycler. Le nombre de solutions de base r´ alisables. 5 −0. En effet. la solution de base correse ` e pond a un sommet du poly` dre des contraintes. 5 1 0 0 Supposons que l’on adopte les r` gles suivantes en pr´ sence de candidats multiples e e pour les crit` res d’entr´ e et de sortie : e e (i) La variable entrante est toujours la variable hors base de coefficient le plus n´ gatif dans la fonction objectif.5 Arrˆ t apr` s un nombre fini d’it´ rations e e e Si. Il faut en effet choisir n variables hors base parmi les n + m variables possibles (celles de d´ part plus les variables d’´ cart). 5 −5. la fonction objectif augmente strictement. on ` prend la variable de plus petit indice. e . Comme le montre l’exemple suivant.

5 −4 −0. 5 0 0 0 0 0 0 0 1 1 0 −10. 5 −2 −0. 25 −1. Questions sur l’algorithme du Simplexe. 5 −2. 75 0. 5 0 −0. 75 Troisi` me it´ ration : e e z 1 0 0 Quatri` me it´ ration : e e z 1 0 0 Cinqui` me it´ ration : e e z 0 0 0 x1 −4 1 x2 93 8 0 x3 x4 x5 21 2 0 0 0 1 0 1 0 0 x6 x7 0 0 0 0 0 0 1 1 −9 1 0 1 −22 0 −24 x1 20 −2 1 x2 x3 x4 9 4 0 0 1 0 0 0 1 0 x5 0. 5 . 75 0 −14. z x1 1 0 0 0 Deuxi` me it´ ration : e e z x1 x2 1 0 0 0 0 1 0 0 0 1 0 x2 x3 −5 2 x4 204 18 x5 x6 x7 20 2 0 0 1 0 0 0 0 0 0 0 1 1 0 −53 −41 1 −11 0 0 4 11 −8 −1 5 −18 −2 x3 x4 98 x5 x6 x7 0 0 0 0 0 0 1 1 2. 25 0. 5 0 0 −1 0. 75 13. 5 x1 x 2 x 3 29 2 1 0 0 1 0 1 0 0 x4 x5 15 x6 x7 93 5. 5 6. 5 −0. 25 0. 75 0. 5 0. 5 4 0.54 Premi` re it´ ration : e e Chapitre 4. 5 0 x6 x7 70. 5 −4. 5 0. 5 −1. 25 −0. 5 0 0 0 0 0 0 0 1 1 0 −18 2 0 −8 −1. 25 2.

a la cinqui` me it´ ration. ni aucune des variables ne change de valeur. pp 34-37] pour l’expos´ de deux e e ee ` e autres m´ thodes qui evitent le probl` me du cyclage : la m´ thode de perturbation e ´ e e et la m´ thode lexicographique. 5 −1. G´ om´ triquement on e e se trouve en un point extrˆ me du poly` dre des contraintes o` plus de n hyperplans e e u s’intersectent. la e e r` gle de Bland. Insistons sur la diff´ rence par rapport e e a la r` gle que nous avons utilis´ . Cette r` gle consiste a syst´ matiquement choisir comme variable e e ` e entrante la premi` re de coefficient n´ gatif dans la ligne objectif et comme la e e variable sortante. 5 −0. e ´ En effet. On passe d’une de ces d´ finitions a une autre. on evite que l’algorithme ne boucle. L’algorithme du Simplexe va donc r´ p´ ter inlassae e blement la mˆ me suite de six it´ rations sans jamais atteindre la solution optimale e e qui existe cependant avec z = 1. on choisit x1 plutˆ t que x6 pour entrer en base ` e e o et on sort du ph´ nom` ne de cyclage. e . Une base d´ g´ n´ r´ e u e e ee peut donner lieu a une ou plusieurs it´ rations cons´ cutives au cours desquelles ni la ` e e fonction objectif. e ` Il existe des r` gles qui permettent d’empˆ cher le cyclage. qu’en adoptant la r` gle de Bland. 5 1 0 0 On retrouve le tableau initial. e e Le lecteur int´ ress´ se r´ f´ rera a Chvatal [4. Arrˆt apr`s un nombre fini d’it´rations e e e Sixi` me it´ ration : e e z 0 0 0 x1 x2 57 x3 x4 x5 x6 x7 9 24 9 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 55 1 −10 0. Nous avions chaque fois choisi la candidate de ` e e plus petit indice parmi toutes les variables de coefficient objectif le plus n´ gatif. Par exemple. Il y a donc diff´ rentes fa¸ on de d´ finir ce point extrˆ me comme e c e e intersection de n hyperplans. la premi` re qui veut sortir. Notons que le ph´ nom` ne de cyclage est n´ cessairement associ´ a la pr´ sence e e e e` e de solutions de base o` certaines variables de base sont nulles. on d´ cide de prendre la premi` re variable de coefficient n´ gatif rencontr´ e e e e e donc pas forc´ ment celle de coefficient minimum. La seule chose qui change est la liste des variables qui sont en base ou hors base. e Ici. On v´ rifiera.5. 5 −5.Section 4. 5 0. e Terminons en remarquant que le cyclage est un ph´ nom` ne assez rare dans e e la pratique de sorte que beaucoup de logiciels mettant en œuvre la m´ thode du e Simplexe ignorent totalement ce probl` me. On dit que l’algorithme cycle. 5 −2. sur l’exemple e e ci-dessus.

4. 4.   2x1    + x2 −x2 −x2 −x2 x1 . R´ soudre par le Simplexe en deux phases : e e e max z = 3x1   x1     −x 1 s.2. x2 ≤ −1 ≤ −3 ≤ 2 ≥ 0. R´ soudre en appliquant le Simplexe en deux phases : e e e max z = 3x1   x1     −x 1 s.56 Chapitre 4.c.6 Exercices 4.q. R´ soudre en appliquant le Simplexe en deux phases : e e e max z = 3x1   x1     −x 1 s. x2 ≤ −1 ≤ −3 ≤ 4 ≥ 0. Probl` me r´ alisable.3. Probl` me non r´ alisable. x2 ≤ −1 ≤ −3 ≤ 2 ≥ 0.c. Probl` me non born´ .q. .c.  2x1     + x2 −x2 −x2 +x2 x1 .1. Questions sur l’algorithme du Simplexe.q.  2x1     + x2 −x2 −x2 +x2 x1 . 4.

nous verrons que le taux de variation de l’objectif est donn´ par la e valeur des variables a l’optimum.1 Introduction Dans ce chapitre. Ici aussi. C’est l’objet e e de ce que l’on appelle l’analyse postoptimale. e Nous allons d’abord envisager le cas de la variation des coefficients du membre de droite des contraintes. e e Nous verrons ensuite. une solution na¨ve consiste a e ı ` appliquer le Simplexe au nouveau probl` me et bien sˆ r on peut en d´ duire l’effet e u e sur l’objectif. nous voir comment va varier la valeur optimale de l’objectif d’un programme lin´ aire lorsque l’on modifie certains coefficients du probl` me e e (coefficients objectif ou du membre de droite). le cas de la variation des coefficients de la fonction objectif.Chapitre 5 Analyse postoptimale. Nous verrons comment d´ terminer le e domaine de validit´ de ces prix cach´ s. si la base optimale e ne change pas. Ici. il y a un un domaine de validit´ pour ` e ces valeurs optimales des variables : elles restent valables tant que la base optimale ne change pas. Pour voir l’effet de tels changements de donn´ es. 5. Enfin. Mais nous allons voir dans ce chapitre que. g´ n´ ralement la solution e e num´ rique d’un probl` me lin´ aire est moins significative que de savoir comment e e e l’objectif va bouger si l’on modifie certaines donn´ es du probl` me. nous terminerons en donnant l’interpr´ tation d’une autre information e que l’on peut tirer du tableau Simplexe. a savoir la valeur des coˆ ts r´ duits des ` u e 57 . En effet. on peut pr´ dire sans aucun nouveau calcul l’effet de variation des donn´ es sur la fonction objectif en exploitant simplement le tableau Simplexe e optimal du probl` me original. Nous allons voir que la variation de la valeur optimale de l’objectif d’un programme lin´ aire en fonction des coefficients du e membre de droite est donn´ e par la valeur des “prix cach´ s” que l’on peut lire dans e e la ligne objectif du tableau Simplexe final.

2 Variation par rapport au second membre La question qui se pose est ici la suivante : “Si on augmente la capacit´ disponible e d’une ressource. le prix cach´ yi est le coefficient de la variable d’´ cart de la contrainte e ∗ e dans la ligne objectif. 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ˆ me e base reste optimale. on en d´ duit les valeurs des prix cach´ s suivants : e e              ∗ y1 = 0 ∗ y2 = 3/2 ∗ y3 = 1 .q. on peut r´ pondre a cette question en exploitant le tableau e ` Simplexe optimal de la mani` re suivante : e Le “prix cach´ ” (not´ yi ) mesure l’augmentation de la fonction objectif si e e ∗ l’on accroˆt d’une unit´ la capacit´ disponible (bi ). Chapitre 5. Nous allons illustrer ceci sur sur l’exemple introductif du chapitre 2 dont l’´ nonc´ est rappel´ ci-dessous. x4 et x5 sont les variables d’´ cart des contraintes de capacit´ des trois ateliers. e e e max z = 3 x1 + 5 x2   x1                  s.58 variables hors base. 3x1 x1 2x2 + 2x2 x2 ≤ 4 ≤ 12 ≤ 18 ≥ 0 ≥ 0 Consid´ rons le tableau final qui a et´ d´ termin´ au chapitre 3 : e ´e e e z x1 x2 x3 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 x4 3/2 x5 1 36 2 6 2 1/3 −1/3 1/2 0 1/3 0 −1/3 e e Comme x3 . Dans le tableau Simplexe ı e e optimal. 5. Analyse postoptimale.c.

1: Analyse postoptimale x ∗ = x∗ = (2. 13/2) 6 4 2 0 0 2 2x2 = 13 x1 = 4 2x2 = 12 x1 = 5 3x1 + 2x2 = 18 4 . En cons´ quence de quoi. Consid´ e e rons tout d’abord une augmentation de capacit´ du premier atelier de b1 = 4 a e ` b1 = 5. Ce r´ sultat peut etre d´ montr´ math´ matiquement. On peut voir a la figure 5. ce qui etait bien pr´ dit par la valeur nulle u ´ e ∗ du prix cach´ y1 : e ∗ ∆z = z ∗ − z ∗ = 0 = y1 . Variation par rapport au second membre 59 qui correspondent aux prix cach´ s des ressources utilis´ es dans les ateliers 1.1) vers le nouveau point : e x ∗ = (5/3. Mais. la valeur optimale de l’objectif ne change pas : e z ∗ = z ∗ = 36 D’o` une variation nulle de l’objectif. 13/2). . 6). ` Une augmentation de capacit´ du deuxi` me atelier de b2 = 12 a b2 = 13 donne un e e d´ placement du point optimal (voir figure 5.2. nous allons l’illustrer graphiquement. = 18. 6 8 x1 Figure 5. plutˆ t que d’en done ˆ e e e o ner une d´ monstration formelle. 2 et e e 3 dont les capacit´ s disponibles sont : e     b1     b2      b3 = 4.1 que le nouveau point optimal reste le mˆ me ` e x2 z = 3x1 + 5x2 9 8 (5/3. = 12.Section 5.

e e e Remarquons. Analyse postoptimale. et ceci est l’objet de l’analyse de sensibilit´ qu’il y a une limite e de validit´ de chaque prix cach´ .2. 5 D’o` un accroissement de l’objectif egal a la valeur du deuxi` me prix cach´ : u ´ ` e e ∆z = z ∗ − z ∗ = 37. 6) x1 = 4 2x2 = 12 Figure 5.2: Variation de capacit´ de l’atelier 3 e ∗ Le r´ sultat peut aussi etre interpr´ t´ dans l’autre sens : y3 est la perte de profit e ˆ ee si on diminue d’une unit´ la capacit´ du troisi` me atelier. 2 Enfin. 6). si e e e .60 Chapitre 5. la nouvelle valeur de l’objectif vaut : e z ∗ = 37 D’o` une augmentation d’objectif egale a la valeur du troisi` me prix cach´ : u ´ ` e e ∗ ∆z = z ∗ − z ∗ = 37 − 36 = 1 = y3 . la nouvelle valeur de l’objectif est donn´ e par : e e z ∗ = 37. Comme on peut le voir a la figure 5. dans le cas de la premi` re ressource. En effet. consid´ rons une augmentation de capacit´ du troisi` me atelier de b3 = 18 e e e a b3 = 19. cela donne un d´ placement du ` ` e point optimal vers : x ∗ = (7/3. En cons´ quence de quoi. En cons´ quence de quoi. x2 z = 3x1 + 5x2 10 3x1 + 2x2 = 19 8 6 4 2 3x1 + 2x2 = 18 0 2 4 6 8 x1 (7/3. 5 − 36 = 3 ∗ = y2 .

Pour le troisi` me atelier. au del` de b2 = 18.2. Il s’agit de l’intervalle : e e b3 ∈ [12. une diminution en de¸ a de b2 = 6 va changer la base optimale. e a ∗ La base optimale et y3 changent : ∗ y3 = 0. au del` de b3 = 24. Une contrainte non liante est une contrainte o` u la variable d’´ cart est non nulle. il n’en va pas de mˆ me d’une diminution. En effet. la solution optimale reste en (0. Par exemple. e e Ces informations sont fournies sous la forme d’une augmentation admissible et d’une diminution admissible. +∞].9). La ressource n’est e e pas enti` rement utilis´ e : il ne sert donc a rien d’augmenter son stock disponible. la solution optimale reste en (4. On a donc d´ termin´ le domaine de e e ∗ validit´ de y1 = 0. On en e c` ∗ d´ duit le domaine de validit´ de y3 = 1. la solution optimale va changer.6). une diminution en de¸ a de b3 = 12 va changer la base optimale. e a ∗ La base optimale et y2 changent : ∗ y2 = 0. la premi` re contrainte e e x1 ≤ 4 ´ a un “prix cach´ ” nul. Pour le deuxi` me atelier. Ces informations sont donn´ es dans le rapport de sensibilit´ du solveur d’Excel. De mˆ me. Il s’agit de l’intervalle : e b1 ∈ [2. De mˆ me. 18]. Ceci a une interpr´ tation economique. Il s’agit de l’intervalle : e e b2 ∈ [6. e e ` . 24].Section 5. On en e c` ∗ d´ duit le domaine de validit´ de y2 = 3/2. Elle sont reprises ci-dessous : Contrainte augmentation diminution admissible Atelier 1 Atelier 2 Atelier 3 +∞ 6 6 admissible 2 6 6 membre de droite 4 12 18 Remarquons finalement que l’on a toujours une valeur nulle du prix cach´ e pour une contrainte non liante. en dessous e de b1 = 2. Variation par rapport au second membre 61 l’effet d’une augmentation de b1 sera nul sur la valeur optimum de l’objectif quel que soit b1 ≥ 4.

la solution optimale x∗ = (x∗ . quel est l’impact sur la valeur de u l’objectif ?” A nouveau. j La “valeur de la j eme variable a l’optimum” (not´ e x∗ ) mesure l’augmenta` ` e j tion de la fonction objectif si l’on accroˆt d’une unit´ la marge unitaire cj . l’augmentation de z ∗ est exactement la valeur optimale de la variable x∗ . on peut pr´ dire cette variation de l’objectif pour autant que la e base optimale ne change pas.3. 5 2 . tant que la base optimale ne change pas. Analyse postoptimale. En effet. x∗ . les augmentations de profit pour une augmentation unitaire de la marge des produits valent respectivement : x∗ = 2 et x∗ = 6. . Seul le profit optimal e 1 2 n change. A la figure 5. 1 2 Consid´ rons maintenant la question l’analyse de sensibilit´ .3 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ˆ t unitaire de production. ı e Dans le cas de l’exemple. . Initialement : e z = 3x1 + 5x2 On veut d´ terminer l’intervalle de variation maximum de c1 autour de 3 tel que la e base optimale ne change pas. Le coefficient c1 peut augmenter jusqu’` ce que l’oba jectif z = c1 x1 + 5x2 soit parall` le au segment e 3x1 + 2x2 = 18. 5. on constate que le coefficient c1 peut descendre jusqu’` ce que a l’objectif z = c1 x1 + 5x2 soit parall` le au segment e 2x2 = 12. Nous allons a e e ` nouveau l’illustrer sur le mˆ me exemple. Le nouveau profit vaut donc : z∗ = n j=1 (cj + ∆cj )x∗ j On en conclut que pour une variation unitaire du coefficient cj .x∗ ) reste la mˆ me. a c’est-` -dire lorsque c1 = 0. . Ceci se produit lorsqu’il y a egalit´ des pentes : ´ e −3 −c1 = .62 Chapitre 5.

c2 2 a c’est-` -dire lorsque c2 = 2. e . Variation des coefficients objectifs x2 10 8 6 4 2 0 2 4 6 8 10 12 x1 (2. e e Effectuons l’analyse de sensibilit´ pour le second coefficient objectif. Ceci se produit lorsqu’il y a egalit´ des pentes : ´ e −3 −3 = . c2 peut augmenter jusqu’` ce que a l’objectif z = 3x1 + c2 x2 soit parall` le au segment e 2x2 = 12. e e Ces intervalles de sensibilit´ sont egalement donn´ s dans le rapport de sensie ´ e bilit´ du solveur d’Excel.3. Tant e ` e que c1 ∈ [0. 6) z = 4x1 + 5x2 = 38 z = 3x1 + 5x2 = 36 63 Figure 5. on a la mˆ me base optimale et donc la mˆ me solution optimale. +∞[. Celui-ci e peut d´ croˆtre jusqu’` ce que l’objectif z = 3x1 + c2 x2 soit parall` le au segment e ı a e 3x1 + 2x2 = 18. a La r´ ponse a la question de l’analyse de sensibilit´ est donc la suivante. 15/2]. on a la mˆ me base optimale et donc la mˆ me solution optimale. Dans l’autre sens.Section 5.3: Analyse de sensibilit´ de c1 e c’est-` -dire lorsque c1 = 15/2. On en conclut que tant que : c2 ∈ [2. Ceci ne se produit jamais.

Analyse postoptimale. La formulation de ce probl` me est reprise e ci-dessous : z −3x1 −5x2 −4x3 x1 +x3 +x4 2x2 +2x3 3x1 +2x2 +3x3 +x5 = = 0 4 = 12 +x6 = 18 Elle se met sous la forme du tableau Simplexe initial suivant : z x1 x2 x3 x4 x5 x6 0 1 0 0 0 0 1 0 0 0 0 4 1 −3 −5 −4 0 0 0 1 0 3 0 2 2 1 2 3 0 12 1 18 La solution optimale de ce probl` me lin´ aire peut etre d´ termin´ e par l’algorithme e e ˆ e e du Simplexe. 2 et 3 heures. Le tableau Simplexe optimal final est le suivant : z x1 x2 1 0 0 0 0 0 0 1 0 x3 x4 2 0 1 0 x5 3/2 x6 1 36 2 6 2 0 2/3 1 1 1/3 −1/3 1/2 0 1/3 0 1/3 0 −1/3 . Nous illustrerons cette notion sur l’ exemple de planification de la production de chassis auquel on adjoint un troisi` me chassis mixte aluminium bois. Dans le tableau Simplexe optimal.4 Cout r´ duit des variables hors base ˆ e Pour terminer ce chapitre consacr´ a l’analyse postoptimale. not´ dj . il ´ ˆ e s’agit du cout r´ duit d’une variable hors base. ˆ e Le “cout r´ duit” de la variable hors base xj . mesure l’augmentation ˆ e e de la fonction objectif si l’on accroˆt d’une unit´ la valeur de la variable hors ı e base xj . pour lequel e la marge unitaire est de 4 et les temps unitaires de fabrication dans les trois ateliers sont respectivement de 1. 5.64 Chapitre 5. nous allons d´ finir une e` e notion importante qui peut egalement etre d´ duite du tableau Simplexe optimal. le coˆ t r´ duit dj est l’oppos´ du u e e coefficient de la variable dans la ligne objectif.

not´ d3 . les coefficients des variables hors base dans la ligne e objectif du tableau Simplexe optimal. en g´ n´ ral. Ils s’interpr` tent. nous avons vu dans ce chapitre comment interpr´ ter tous les e coefficients dans la ligne objectif du tableau Simplexe optimal final : • Les couts r´ duits sont. Ici. pour la mˆ me capacit´ disponible des trois ateliers e e de faire moins de chassis 3 que de chassis 1. les coefficients des variables hors ˆ e e base dans la ligne objectif du tableau Simplexe optimal. cette information : les coˆ ts r´ duits des variables hors base e e u e sont. le chassis 3. ce coˆ t r´ duit. Ici. Coˆt r´duit des variables hors base u e On en d´ duit la solution optimale suivante : e (x1 . En effet. Le rapport de sensibilit´ d’Excel donne ces deux informations. comme u e e e e l’augmentation de la fonction objectif lorsque l’on augmente d’une unit´ la vae riable. 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´ pondre a cette question en exploitant le tableau Simplexe optimal e ` de la mani` re suivante : les coefficients dans la ligne objectif du tableau Simplexe e final (l’oppos´ des coˆ ts r´ duits) fournissent l’augmentation de prix n´ cessaire. x3 . ´ d3 = −2. x6 ) = (2. 6. x2 . 0. e en g´ n´ ral. Pour qu’il devienne int´ ressant de le produire. e e • Les prix cach´ s sont les coefficients des variables d’´ cart des contraintes e dans la ligne objectif du tableau Simplexe optimal. au signe pr` s. bien qu’ayant une marge unitaire sup´ rieure au chassis 1. Ils s’interpr` tent comme e l’augmentation du profit pour une augmentation unitaire d’un des coefficients du membre de droite. e Remarquez que tous les optimiseurs fournissent en plus de la solution optimale d’un probl` me lin´ aire. elle diminuerait le profit d’autant. traduisant le fait que ` u e e e si la production de ce chassis etait positive. en effet. 0) Tandis que la valeur optimale de l’objectif est donn´ e par : e z ∗ = 36 65 On constate que seuls sont rentables les productions des chassis 1 et 2. les coˆ ts r´ duits des variables hors base s’interpr` tent. le coˆ t r´ duit s’interpr` te comme l’oppos´ de l’auge u e e e mentation minimale de prix pour que la production devienne int´ ressante. a l’optimum. comme l’augmentation de la fonction objectif lorsque l’on e e augmente d’une unit´ la variable hors base. x4 . 0. En e u e e effet. au signe pr` s. x5 . il faut donc augmenter sa marge e d’au moins cette quantit´ . est n´ gatif.4.Section 5. 2. consomme e plus de ressources et permet. En conclusions. e .

celle de qualit´ 2 en sacs plastiques de 20 e kg et celle de qualit´ 1 en sachets de 5 kg. (2) 0.c.1. e (b) D´ terminer la valeur des prix cach´ s a l’optimum.q. (a) D´ terminer graphiquement la solution optimale.5 Exercices 5. Un kg de tourbe humide extraite donne 100 grammes de produit sec commercialisable. Analyse postoptimale. La tourbe de qualit´ 3 se e ` e e commercialise en ballots de 25 kg. L’entrepˆ t permet e e ee o de stocker 20 000 m` tres cubes de tourbe s` che emball´ e. e e e e e la qualit´ 2 qui sert d’engrais aux entreprises mar´ chaires et la qualit´ 1 e e e destin´ e a l’empotage des plantes d’int´ rieur. Sensibilit´ aux coefficients objectif. Fabrication de tourbe.3. La tourbe s´ ch´ e est d´ fibr´ e a l’automne. Sensibilit´ du membre de droite. 8 minutes pour un e e sac de qualit´ 2 et 3 minutes pour un sachet de qualit´ 1. Une firme qu´ b´ quoise de production de tourbe e e met sur le march´ 3 qualit´ s de tourbe : la qualit´ 3 utilis´ e comme liti` re. un emballage de e e e . e 5. (3) 0. (1) 8. La tourbe s’extrait au printemps e sous forme humide et est s´ ch´ e au soleil durant l’´ t´ pour etre livr´ e a e e ee ˆ e ` l’automne. 5. 0x1 3x1 5x1 3x1 + x2 + 4x2 + 2x2 − x2 x1 . e (b) D´ terminer l’intervalle maximum de variation de c1 autour de z´ ro qui e e pr´ serve la solution optimale.2. La machinerie qui extrait la tourbe humide permet d’extraire 4 500 000 kg de tourbe humide chaque printemps. x2 ≥ ≤ ≤ ≥ 9. (a) R´ soudre par l’algorithme du Simplexe. a-t-on int´ rˆ t a augmenter la capacit´ du premier ou du second ee e atelier ? (d) Jusqu’` quel niveau est-il int´ ressant d’augmenter cette capacit´ ? a e e 5. au moyen de d´ fibreuses qui e e e e ` e mettent 5 minutes pour pr´ parer un ballot de Qualit´ 3. e e ` (c) Si l’unit´ de capacit´ suppl´ mentaire coˆ t le mˆ me prix pour les deux e e e u e ateliers. Soit le probl` me lin´ aire suivant : e e e Minimiser s. On dispose de 2 e e 000 heures de d´ fibrage pendant la p´ riode consid´ r´ e.66 Chapitre 5. Pour le probl` me lin´ aire formul´ a e e e e ` l’exercice 2 du chapitre 1.

Section 5.5. Exercices

67

qualit´ 3 requiert 1 m` tre cube, un sac de qualit´ 2 requiert 0,75 m` tre cube e e e e et un sachet de qualit´ 1 requiert 0,20 m` tre cube. e e Le service marketing impose la fabrication maximale de 15 000 ballots de e e e qualit´ 3 dont un grossiste retient chaque ann´ e 10 000 ballots. Le mˆ me grossiste requiert 3 000 sacs de qualit´ 2. Les profits que retire la soci´ t´ e ee de la vente de ces produits s’´ l` vent a 9 dollars le ballot de qualit´ 3, a 12 ee ` e ` dollars le sac de qualit´ 2 et a 2 dollars le sachet de qualit´ 1. e ` e (a) Formuler le probl` me lin´ aire correspondant (choix des variables, exe e pression de l’objectif et des contraintes). (b) Voici le tableau Simplexe final : x1 x4 x5 x6 x7 x8 x9 z x3 x2 1 0 0 2, 2 0, 12 0 1, 20 0 0 0 198 000 0 0 1 0, 5 −0, 05 0 0, 25 0 0 0 7 500 0 0 0 0, 025 −0, 0425 1 0, 0125 0 0 0 2 375 0 0 0 0, 5 −0, 05 0 0, 25 0 0 1 4 500 0 0 0 0, 2 −0, 08 0 0, 20 1 0 0 3 000 0 0 0 −0, 2 0, 08 0 −0, 20 0 1 0 2 000 0 1 0 −0, 2 0, 08 0 −0, 20 0 0 0 12 000 Donnez la solution optimale, d´ terminez les variables en base et hors e base. (c) Dites ce qui se passerait pour l’objectif si on produisait un sachet de qualit´ 1. En d´ duire quel devrait etre le profit minimal que la soci´ t´ e e ˆ ee devrait tirer de la mise sur le march´ d’un sachet de qualit´ 1 pour que e e cette production devienne rentable. (d) Le solveur d’Excel vous fournit les intervalles de sensibilit´ suivant e pour les coefficients cj de l’objectif et bi du membre de droite : coefficient valeur pr´ sente valeur minimum valeur maximum e 9 7, 50 15 c3 c2 12 7, 60 14, 4 c1 2 −∞ 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 5. Analyse postoptimale. Combien la soci´ t´ serait prˆ te a d´ penser au maximum pour porter de ee e ` e 4 500 000 a 4 750 000 kg la capacit´ printani` re d’extraction ? ` e e (e) Si le profit unitaire associ´ a un emballage de qualit´ 3 passait de 9 a e` e ` e 11 dollars, le plan de production optimal resterait-il le mˆ me ? Si oui, le profit optimal serait-il augment´ ou diminu´ ? de combien ? e e

Chapitre 6 La programmation en nombres entiers.
6.1 Introduction

L’algorithme du Simplexe fournit une m´ thode de r´ solution g´ n´ rale pour tous e e e e les probl` mes lin´ aires quelle que soit leur forme. Au contraire, en programmae e tion en nombres entiers, on ne dispose pas d’un algorithme g´ n´ ral qui permette e e de r´ soudre efficacement tous les probl` mes en nombres entiers. Cependant, il e e existe une classe g´ n´ rale de m´ thodes connue sous le nom de branch and bound e e e (s´ paration et borne) qui permet de r´ soudre bon nombre de probl` mes en nombres e e e entiers. On appelle probl` mes mixtes (MIP en anglais pour Mixed Integer Programe ming) les probl` mes comportant un certain nombre de variables lin´ aires (donc e e continues) et un certain nombre de variables en nombres entiers (donc discr` tes). e Nous allons ici d´ crire cette m´ thode qui commence par la r´ solution du e e e probl` me lin´ aire obtenu en relaxant les conditions d’int´ gralit´ des variables. e e e e C’est pourquoi on appelle ce programme la relaxation lin´ aire du probl` me. e e Les probl` mes de flots (programmation sur les graphes) sont eux a mi-chemin e ` entre les probl` mes lin´ aires et les probl` mes mixtes. En effet, si les donn´ es du e e e e probl` me de flot a coˆ t minimum (la formulation la plus g´ n´ rale d’un probl` me e ` u e e e de flot) sont toutes enti` res (demandes aux sommets enti` res, capacit´ s des arcs e e e enti` res et coefficients de coˆ t entiers), la solution du probl` me lin´ aire fournit aue u e e tomatiquement une solution enti` re. Autrement dit, ici la solution de la relaxation e lin´ aire fournit la solution optimale du probl` me mixte. Pour ces probl` mes, ou e e e pour ceux qui peuvent s’y ramener, on en conclut que l’on dispose d’un algorithme performant de calcul : l’algorithme du Simplexe. Malheureusement, un grand nombre de probl` mes en nombres entiers ne peue vent se mettre sous la forme de probl` mes de flot. Il convient donc pour ces e probl` mes d’avoir une m´ thode tenant compte explicitement du caract` re discret e e e des variables.

69

l’ajout d’une variable indicatrice d’une production positive : y= 1 si x > 0 0 si x = 0 2.1 Probl` mes avec cout fixe de mise en route de la production. et u e ´ d’un coˆ t proportionnel. Si x > 0. 6.2. vaut la somme d’un coˆ t fixe de production. la modification de la fonction objectif en : c(x.70 Chapitre 6. Cette fonction est repr´ sent´ e a la figure 6. c(x) = K + mx.1. e 6. dans le cas contraire. le taux marginal etant m.2 Formulation des probl` mes mixtes e Nous allons voir quelques probl` mes classiques n´ cessitant le recours a la proe e ` grammation mixte enti` re. u e o` x d´ note le niveau de production. c(x) = 0. u On veut donc pouvoir exprimer la fonction suivante : Si x = 0.1 Probl` mes avec couts fixes e ˆ Exemple 6. e e ` c(x) m K (6. not´ K. On e ˆ veut repr´ senter un coˆ t de production qui est nul en l’absence de production et e u qui.1) x Figure 6. y) = Ky + mx qui devient donc purement lin´ aire.1: Repr´ sentation d’un coˆ t fixe e u La repr´ sentation math´ matique de ce coˆ t fixe n´ cessite : e e u e 1. e . La programmation en nombres entiers.

2) permet les choix y = 0 ou y = 1. Par contre. la solution qui evite le coˆ t fixe ! ´ u Il y a de nombreuses applications de cette mod´ lisation des coˆ ts fixes par la e u programmation mixte enti` re. o 6. e e 71 (6. e e ´ e Les deux tˆ ches ne peuvent donc avoir lieu simultan´ ment. soit mettent en œuvre la mˆ me machine. Math´ matiquement.2 Probl` mes avec contrainte logique e Parfois des probl` mes de gestion comportent une condition logique.2. on peut ecrire e e ´ ceci par la condition suivante : soit ti + di ≤ tj si i est r´ alis´ e avant j e e tj + dj ≤ ti si j est r´ alis´ e avant i e e (6. est donn´ e. l’ajout des contraintes suivantes : x ≤ M y. d´ finissons la variable binaire yij . dont la valeur est 1 si la tache i est r´ alis´ e e e e avant la tˆ che j et 0 si la tˆ che j est r´ alis´ e avant la tˆ che i. En ˆ e effet. Formulation des probl`mes mixtes e 3. Un exemple de mise en application de ces coˆ ts e u fixes est fournit par l’exemple de localisation d’entrepˆ ts o` il y a un coˆ t fixe o u u d’ouverture de ces entrepˆ ts.3) e o a o` ti est la variable indiquant le temps de d´ but au plus tˆ t de la tˆ che i et di . e e Cette disjonction peut etre r´ solue par la programmation mixte binaire. par les relations (6. 1} avec M une borne sup´ rieure sur la quantit´ produite (x). il se peut que deux tˆ ches doivent etre e ` e e a ˆ effectu´ es par la mˆ me equipe d’ouvriers. Deux cas sont possibles pour la variable binaire : e e . 1} o` M note une borne sup´ rieure sur la date de fin des travaux. Cependant. a a e e a On remplace alors la condition de disjonction (6.Section 6. sa u dur´ e.4) D´ montrons l’´ quivalence. (6. l’optimiseur va automatiquement choisir y = 0. lorsque x = 0.2). u e (6.2. Un exemple e typique est celui des probl` mes de gestion de projets avec contrainte disjonctive.3) par les contraintes suivantes :    ti + di ≤ tj + M (1 − yij ) t + dj ≤ ti + M yij  j  yij ∈ {0. comme on minimise.2) Remarquons que si x > 0. e Dans ces probl` mes. sans que l’on puisse a e ˆ dire laquelle doit etre effectu´ e en premier lieu. et y ∈ {0. on doit d´ terminer l’enchaˆnement des tˆ ches d’un projet de e e ı a mani` re a le r´ aliser dans le meilleur d´ lai. on a que y = 1 et on tient u compte du coˆ t fixe de mise en route de production.

Dans ce cas. Ce nombre etant limit´ par le nombre de e ´ e portes de chargement du haut fourneau.6) . Cas yij = 0. La seconde contrainte est automatiquement satisfaite. e C’est le cas. On introduit alors les contraintes suivantes : xi ≤ Mi yi et yi ∈ {0. Autrement dit : e e e yi = 1 si yi = 0 si xi > 0. e 1. le syst` me (6. a ˆ a 6. par exemple. d’un probl` me de m´ lange d’huiles o` cinq huiles e e u sont disponibles mais o` des contraintes techniques impliquent que seulement trois u huiles diff´ rentes peuvent etre pr´ sentes dans le m´ lange. La seconde contrainte e exprime que la tˆ che j doit etre finie avant que ne commence la tˆ che i. 1} e o` Mi est une borne sup´ rieure sur xi .72 Chapitre 6. Dans ce cas. i=1 (6. Ce probl` me peut etre r´ solu par la programmation mixte z´ ro/un. Un autre exemple.3 M´ lange avec nombre limit´ d’ingr´ dients e e e Il s’agit egalement d’un probl` me g´ n´ rique conduisant a une formulation mixte ´ e e e ` enti` re.5) yi ≤ k. est e ˆ e e celui du chargement de hauts fourneaux o` le nombre de charbons disponibles u e ˆ e est souvent nettement sup´ rieur au nombre de charbons qui peuvent etre charg´ s simultan´ ment dans le haut fourneau. a e 2. La programmation en nombres entiers. les variables binaires indiquant la pr´ sence o` non d’un ingr´ dient dans le e e u e m´ lange.4) devient : ` ti + di ≤ tj tj + dj ≤ ti + M La premi` re contrainte exprime donc que la tˆ che i doit etre finie avant que ne e a ˆ commence la tˆ che j. d´ finissons la variable binaire yi e e e e indiquant la pr´ sence de l’ingr´ dient i dans le m´ lange.2. Cas ou yij = 1. xi = 0. le syst` me (6.4) devient : ti + di ≤ tj + M tj + dj ≤ ti La premi` re contrainte est automatiquement satisfaite. u La condition du nombre maximum d’ingr´ dients dans le m´ lange s’exprime e e alors simplement par : n (6. Si xi e ˆ e e note la quantit´ d’ingr´ dient i dans le m´ lange.

2. En ` e effet. lors du dimensionnement d’un appareile lage. e e D´ montrons l’´ quivalence. par les contraintes (6. e e 2. 1}. exprimera donc bien que au plus k ingr´ dients seront e pris dans le m´ lange. ∀i = 1. Formulation des probl`mes mixtes e avec k. par les contraintes (6. ` e 6. la variable yi peut valoir 0 ou 1. . le nombre maximum d’ingr´ dients dans le m´ lange.4 La contrainte (6. Soit xi = 0. on doit choisir parmi les valeurs suivantes pour le diam` tre : e 12 cm. la variable yi doit valoir 1 et exprime bien que l’ingr´ dient i est dans le m´ lange. Cette nouvelle e e contrainte forcera yi a z´ ro lorsque xi est nul. e Remarquez que si on veut que yi soit une parfaite indicatrice de xi > 0.6).4 Choix parmi un nombre discret de valeurs Dans beaucoup de probl` mes industriels. Alors. La contrainte (6. Deux cas sont possibles pour la variable xi : e e 73 1. il faut ajouter la contrainte suivante : m i yi ≤ xi avec mi . Soit xi > 0. 24 cm ou 47 cm. ` e (6. On peut alors ecrire la e e ´e ´ relation suivante pour le choix du diam` tre : e x = 12y1 + 17y2 + 24y3 + 47y4 avec la contrainte qu’un seul diam` tre doit etre choisi : e ˆ y1 + y2 + y3 + y4 = 1 et bien sˆ r en imposant le caract` re binaire de chaque indicatrice : u e yi ∈ {0. . on doit choisir sa capacit´ parmi les valeurs commerciales existant sur le e march´ . la teneur minimum d’un ingr´ dient dans le m´ lange.5). On peut a nouveau mod´ liser ce choix par l’utilisation de variables binaires.2.Section 6. Par exemple.7) .5). 17 cm.2. Alors. d´ finissons la variable x comme etant le diam` tre choisi et d´ finissons yi une e ´ e e indicatrice du fait que le diam` tre num´ ro i a et´ choisi.7) fera en effet qu’une seule indicatrice vaudra un tandis que toutes les autres seront a z´ ro. lors du dimensionnement d’une canalisation de transport e d’eau.

3 M´ thode de branch and bound e La m´ thode de “branch and bound” ou encore appel´ e m´ thode de s´ paration et e e e e evaluation que nous allons maintenant d´ crire est destin´ e a r´ soudre les probl` mes ´ e e ` e e en nombres entiers du type suivant : z ∗ = max cT x Ax ≤ b.q. Elle peut egalement etre appliqu´ e aux probl` mes mixtes (MIP).2. Nous illustrons la m´ thode sur l’exemple suivant tir´ de Norbert et al [15] : e e z ∗ = max z = 10x1 + 50x2                 −x1 + 2x2 ≤ ≤ .    x1 + 2x2 ≤ 14. x ≥ 0 et entiers.c.8) s. s. 0 et entiers La r´ gion r´ alisable est repr´ sent´ e a la figure 6. 6. Cette m´ thode peut egalement etre appliqu´ e aux probl` mes avec variables binaires e ´ ˆ e e (z´ ro-un).2: Repr´ sentation de la r´ gion r´ alisable. x2 ≥ 5. e e e Remarquons qu’une fa¸ on de r´ soudre le probl` me serait de construire une c e e .74 Chapitre 6. c’este ´ ˆ e e a-dire aux probl` mes comportant un certain nombre de variables enti` res et un ` e e certain nombre de variables continues. (6.q. La programmation en nombres entiers. x1 x1 8.c. e e e e ` x2 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 P1 P5 P0 P2 P3 x1 Figure 6.

3. 5.8). Cette solution est inacceptable car elle viole les contraintes d’int´ gralit´ des vae e ∗ riables. il suffit de donner une solution r´ alisable pour (6. Une fa¸ on simple de choisir cette variable est de e e c prendre la variable la plus distante d’un entier. Comme x1 ne peut prendre que des valeurs enti` res. Le choix de cette variable est e e heuristique.2 : ` x1 = 4. En effet. on obtient comme solution de la relaxation lin´ aire le point not´ e e P0 a la figure 6. Cependant trouver en g´ n´ ral une solution r´ alisable e e e pour un probl` me en nombres entiers n’est pas une mince affaire. On va effectuer un branchement sur cette variable. e La seconde id´ e de la m´ thode de branch and bound est (comme le nom l’indique) e e d’op´ rer une s´ paration : la r´ gion r´ alisable va etre s´ par´ e en deux sous-r´ gions e e e e ˆ e e e dont aucune ne peut contenir la solution optimale non enti` re P0 . pour trouver e ` ` une borne inf´ rieure.8) en laissant tomber les contraintes d’int´ gralit´ des ` e e variables. elle fournit une premi` re borne sup´ rieure sur z : e e z ∗ ≤ 282. parfois utilis´ e. Cette s´ paration e e n´ cessite le choix d’une variable de s´ paration. e Question 2 : comment construire une borne sup´ rieure sur z ∗ ? e Une fa¸ on de r´ pondre a cette question est de r´ soudre le probl` me lin´ aire c e ` e e e que l’on obtient a partir de (6. C’est aussi le premier pas de la m´ thode de branch and bound que nous e allons maintenant d´ crire sur l’exemple. il s’agit de la variable x1 .Section 6. Brancher sur une variable non enti` re. Pas 1. Comme e e l’objectif est de maximiser. e Pas 0. Diff´ rents choix sont possibles et de ce choix peut d´ pendre l’efficacit´ e e e de la m´ thode de r´ solution. e e Pour cet exemple. Cependant. a ´ Question 1 : comment construire une borne inf´ rieure sur z ∗ ? e La r´ ponse a cette question est a la fois simple et difficile. l’optimum e ainsi obtenu ne pourra qu’ˆ tre sup´ rieur a l’optimum du probl` me en nombres e e ` e entiers. 75 z0 = 282. Dans notre exemple. il n’y a e . M´thode de branch and bound e 75 e borne sup´ rieure sur z ∗ et une borne inf´ rieure sur z ∗ et ensuite de raffiner ces e bornes jusqu’` les egaliser. 5. e est de prendre la variable la plus proche d’un entier. R´ soudre la relaxation lin´ aire. l’optimum du probl` me ne pourra qu’ˆ tre sup´ rieur a e e e ` la valeur de z en ce point. Une alternative. Comme on maximise sur un ensemble r´ alisable plus large. 5 x2 = 4.

on obtient deux souse e mod` les. 50 x2 = 4. x2 = 4. a un probl` me lin´ aire. 5 z2 = 275. En g´ n´ ral si la variable choisie xk a la valeur fractionnaire N + . 5 x2 4 x2 5 x2 4 4 x1 5 z2 = 275 x1 = 5 x 2 = 4. x2 = 4.76 Chapitre 6. On a ici num´ rot´ les nœuds e e e dans l’ordre o` ils ont et´ g´ n´ r´ s. Dans notre exemple. e e e on imposera : soit xk ≤ N soit xk ≥ N + 1 En imposant s´ par´ ment l’une et l’autre conditions. en e e e ´ . Noeud 2 : x1 = 5. Ce que l’on repr´ sente par une diae e e e gramme du type de celui de la figure 6. Le nœud 1 est le mod` le ` e e e e original avec en plus la restriction x1 ≤ 4. z1 = 265.3. tandis que le nœud 2 correspond au mod` le original avec en plus la restriction x1 ≥ 5. Chaque nœud de cette figure correspond z 0 = 282. on obtient les deux solutions suivantes : e Noeud 1 : x1 = 4. 5 x1 = 4. 75 x1 z1 = 265 x1 = 4 x 2 = 4. un mod` le fils et un mod` le fille. La programmation en nombres entiers. u ´e e ee On peut maintenant r´ soudre les relaxations lin´ aires correspondant aux proe e bl` mes fils et fille. 5.3: Arbre de branch and bound. Le nœud 0 au mod` le original. Ceci n’est pas etonnant : on a. Remarquez que les valeurs atteintes par la fonction objectif sont moins elev´ es ´ e que dans la relaxation lin´ aire pr´ c´ dente. aucune perte de g´ n´ ralit´ d’imposer que e e e soit x1 ≤ 4 soit x1 ≥ 5 Cependant imposer cette condition va eliminer la solution courante P0 de la relaxa´ tion lin´ aire. 5 x2 5 z5 = 240 x1 = 4 x2 = 4 z6 = ∞ Probl` eme non r´ ealisable z3 = 260 x1 = 6 x2 = 4 z4 = ∞ Probl` eme non r´ ealisable Figure 6.

M´thode de branch and bound e 77 effet. e e Comme les deux sous-r´ gions forment une repr´ sentation contenant l’ensemble e e des solution enti` res. 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´ soudre ` e le probl` me. On dit que le nœud est coup´ . A nouveau. On la choisit donc pour op´ rer le branchee e ment suivant : soit x2 ≤ 4 soit x2 ≥ 5 On ajoute s´ par´ ment chacune de ces contraintes aux contraintes du probl` me 2 e e e et on g´ n` re ainsi les nœuds 3 et 4. x2 = 4. Il est clair egalement qu’il n’y o ´ a aucune raison de continuer a diviser le nœud 3 pour lequel la solution optimale ` du probl` me en nombres entiers a et´ obtenue. ` Pour cet exemple.Section 6. e Pour l’illustration de la m´ thode. aucune des deux solutions n’est acceptable car toutes les deux comportent des parties fractionnaires.2) et on obtient les solutions e suivantes : Noeud 3 : x1 = 6. Ceci est illustr´ a la figure 6. On a une premi` re borne inf´ rieure sur la e e valeur optimale de la fonction objectif et on a donc que : 260 ≤ z ∗ ≤ 275 Si la fourchette n’est pas trop grande. on choisit donc le nœud 2 et on r´ p` te le Pas 1. Ce ` e e n’est pas etonnant vu que l’on rajoute de plus en plus de contraintes. z3 = 260. Diviser a nouveau un nœud fils ou fille en deux. on a obtenu une solution enti` re dont la valeur correspone dante de la fonction objectif est 260. ajout´ des contraintes et donc restreint l’espace des solutions r´ alisables. Pas 2. au nœud 3.3.3. e ´e e Remarquons aussi que le nœud 4 a conduit a un probl` me non r´ alisable. Choisir une variable pour brancher. Noeud 4 : non r´ alisable e Noter que. z2 ) = 275. nous adoptons la r` gle de choix heuristique e e suivante : choisir le probl` me dont la relaxation lin´ aire fournit la meilleure (c’este e a-dire la plus grande en cas de maximisation) valeur de la fonction objectif. On va donc continuer en choisissant un des deux nœuds ` pour le diviser a nouveau. on peut en conclure que la borne sup´ rieure sur z ∗ est : e e z ∗ ≤ max(z1 . ` Ici. On r´ sout e e e` e graphiquement les relaxations lin´ aires (voir figure 6. Ici seule la variable x2 est non enti` re. e e Pas 1. on peut se satisfaire de cette solution non optimale plutˆ t que de continuer de longs calculs. ´ .

e En conclusions. Continuons la division ` ` des autres nœuds. il ne sert a rien de continuer a diviser ce nœud. on aurait egalement coup´ cette branche et la m´ thode ´ e e etait termin´ e. ` On choisit le nœud 1 qui est le seul a encore diviser. e e e On branche ici sur x2 en cr´ ant les nœuds 5 et 6 par la s´ paration suivante : soit x2 ≤ 4 soit x2 ≥ 5 On r´ sout les relaxations lin´ aires correspondantes. e e 2. il y a trois raisons de couper une branche dans l’arbre : 1. On obtient : e e Noeud 5 : x1 = 4. e Enfin terminons par la remarque g´ n´ rale suivante. Diviser a nouveau un nœud fils ou fille en deux. Brancher sur une variable non enti` re. dans ce cas. il n’y a pas de garantie de convergence de la e e m´ thode de branch and bound. pour notre exemple. ´ e Pas 1. lorsque la relaxation lin´ aire obtenue est non r´ alisable. On est ainsi e e garanti d’un nombre fini de branches dans l’arbre. certaines impl´ mentations e ´ e e demandent une borne inf´ rieure et sup´ rieure sur chaque variable. lorsque la valeur de la borne sup´ rieure est inf´ rieure a la valeur de la meile e ` leure solution enti` re obtenue. . trouv´ et aussi prouv´ que la solution du nœud 3 etait la solution e e ´ optimale du probl` me en nombres entiers. x2 = 4. e e 3.78 Chapitre 6. Remarquez que c’est parce ` que la valeur de z1 = 265 est sup´ rieure a la borne inf´ rieure 260 que l’on doit e ` e continuer. Il ´ s’agit du point P3 suivant : x∗ = 6 1 x∗ = 4 2 auquel correspond une valeur optimale de l’objectif de z ∗ = 260. On a en effet un espoir de trouver ici une solution enti` re meilleure que e 260. Pour eviter ce probl` me. lorsque la relaxation lin´ aire obtenue fournit une solution enti` re. Pas 2. Dans le cas contraire. z5 = 240 Noeud 6 : impossible La m´ thode est termin´ e puisqu’il n’existe plus de nœud a diviser. On d´ tere e ` e e e mine la solution optimale comme etant la meilleure solution enti` re trouv´ e. La programmation en nombres entiers. On a ainsi. Si la r´ gion r´ alisable de e e e e la relaxation lin´ aire n’est pas born´ e.

Exercices 79 6. De plus. M´ lange de maximum 4 charbons. Pour produire du coke.0 % Charbon 7 15 2.4.0 % Charbon 4 10 5. une r´ action a haute temp´ rature u e ` e produit le coke.0 % Charbon 2 14 2.5 % Charbon 3 17 1. on veut savoir o` implanter. 6. La derni` re colonne repr´ sente le coˆ t e u e e u de construction de chaque emetteur. ´ Ville Lille Emetteur 1 1 Emetteur 2 1 Emetteur 3 Emetteur 4 Emetteur 5 1 Dunkerque 1 1 Valencienne Basieux Coˆ t u 25 1 30 15 1 35 1 90 1 1 1 Tableau 6. un ensemble d’´ metteurs de t´ l´ vision susceptibles de desservir ces e ee diff´ rentes villes au moindre coˆ t. Valencienne et Basieux).1. Etant donn´ une r´ gion e ee e e comportant quatre villes (Lille. on m´ lange des e e charbons dans un haut fourneau o` ensuite.0 % Charbon 8 11 1. permettant e d’avoir au maximum 4 charbons diff´ rents dans le m´ lange. On suppose qu’il y a 8 charbons disponibles. parmi divers emplacements disponibles (au nombre u de 5). il doit l’ˆ tre a hauteur de minimum e e e ` 5%. Ces charbons sont entr´ s par des bandes porteuses qui sont au nombre de 4.2: Accessibilit´ des villes a partir des emetteurs.1 reprend les prix et teneur en Si des charbons. e veut d´ terminer le m´ lange r´ pondant aux sp´ cifications qui soit de coˆ t e e e e u minimum. e ` ´ On demande d’´ crire le programme correspondant a la d´ termination du e ` e nombre d’´ metteurs a construire afin que chaque ville soit desservie par au e ` moins un emetteur et ceci a coˆ t d’investissement total minimum.4 Exercices 6.8 % Le tableau 6. De plus. si un e e charbon est pr´ sent dans le m´ lange. on exige que la teneur du m´ lange en Silicium soit d’au plus e 1.0 % Charbon 6 9 5.1: Teneurs en Si et prix des diff´ rents charbons.Section 6. On Charbon Prix Teneur Si Charbon 1 12 2. Dunkerque.2.0 % Charbon Prix Teneur Si Charbon 5 13 1.5 % Tableau 6. Localisation optimale d’´ metteurs de t´ l´ vision. ´ ` u .

6. u etc. ) d’un voyage sur la ligne OM est de 4 et de 3 sur la ligne OT. les taxes d’atterrissage. (b) R´ soudre par la m´ thode de Branch and bound en r´ solvant chaque e e e fois la relaxation lin´ aire de mani` re purement graphique ! e e . Elle d´ sire affecter sa flotte d’avions e aux deux lignes int´ rieures ouvertes a la concurrence (les lignes OM et OT). Une petite compagnie a´ riene e e ne dispose de six avions de 150 places. . e ` Le nombre de passagers d´ sirant effectuer chaque jour un parcours sur la e ligne OM par cette nouvelle compagnie est 500. Probl` me d’affectation de lignes a´ riennes.3. Le coˆ t marginal (frais variables tels que le carburant. La programmation en nombres entiers. et de 200 sur la ligne OT. e u (a) Formuler math´ matiquement le probl` me de la meilleure affectation e e de la flotte de cette compagnie. .80 Chapitre 6. On d´ sire minimiser le coˆ t d’exploitation en satisfaisant la demande.

dynamiques et non e e lin´ aires.Partie II Les mod` les sur r´ seau. e 81 .

.

nous allons introduire diff´ rents mod` les qui utilisent un graphe e e dans leur formulation. Il existe u e e un algorithme sp´ cialis´ : l’algorithme de Dijkstra (voir cours de licence).Chapitre 7 Les mod` les sur r´ seau e e Dans ce chapitre. soit pour repr´ senter un r´ seau (comme dans les probl` mes e e e de transport). e a • Les probl` mes de planification des tˆ ches : il s’agit ici de d´ terminer l’ene chaˆnement des tˆ ches d’un projet de mani` re a terminer au plus vite en ı a e ` tenant compte des relations d’ant´ riorit´ de certaines tˆ ches par rapport a e e a ` d’autres. e Les origines des mod` les sur r´ seaux sont nombreuses et d´ bordent largement e e e le cadre des seuls probl` mes de transport. soit que le graphe soit une fa¸ on commode de repr´ senter le probl` me c e e (comme dans les probl` mes d’ordonnancement de projets). e e Les mod` les sur r´ seau sont le plus souvent des mod` les lin´ aires qui peuvent e e e e donc etre r´ solus par l’algorithme du Simplexe mais pour lesquels il existe souvent ˆ e un algorithme sp´ cialis´ plus efficace que le Simplexe. On peut citer : e • Les probl` mes de distribution : il s’agit de d´ terminer a partir de quel e e ` lieu de production servir les diff´ rents points de consommation de mani` re a e e ` minimiser les coˆ ts de transport : il existe plusieurs algorithmes de r´ solution u e pour ce probl` me (voir chapitre 9). Il existe deux m´ thodes de r´ solution : la m´ thode potentiel et la e e e m´ thode PERT (voir cours de licence). e • Les probl` mes d’affectation optimale : il s’agit d’affecter des personnes a e ` des postes de travail de mani` re a maximiser l’efficacit´ g´ n´ rale : il s’agit e ` e e e d’un probl` me en nombres entiers (on affecte enti` rement une personne a e e ` un poste ou pas du tout) qui peut etre r´ solu sans recourir a la m´ thode de ˆ e ` e “Branch and Bound” (voir chapitre 6). e • Les probl` mes de plus court chemin : il s’agit ici de trouver le chemin le plus e court ou le moins coˆ teux entre deux points donn´ s d’un r´ seau. e e 83 .

Les mod`les sur r´seau e e 7.1 Le probl` me de transport simple e Le probl` me de transport simple se rencontre lorsque l’on a un bien homog` ne e e (gaz.1 Repr´ sentation au moyen d’un graphe e Nous allons voir comment le probl` me de transport simple peut etre repr´ sent´ e ˆ e e par un graphe. ) a transporter entre m lieux de production de capacit´ ´ e ` e de production Ki connue et n lieux de consommation de demande dj connue de mani` re a minimiser le cout total de transport sur le r´ seau. electricit´ .84 Chapitre 7.1: Capacit´ annuelle des fournisseurs e Il y a quatre 4 points de consommations (n = 4).1. Supposons qu’il y ait 3 e producteurs (m = 3) dont les capacit´ s annuelles sont donn´ es au tableau 7. . La question qui se pose est la suivante : “Comment satisfaire la demande des consommateurs a coˆ t total de transport minimum tout en respectant les contraintes ` u de capacit´ des producteurs ?” e Illustrons ceci sur un exemple tir´ de Williams [17]. ˆ Les coˆ ts manquants indiquent que le fournisseur ne peut satisfaire le client. e ` ˆ e ı le coˆ t de fourniture d’une unit´ du producteur i au client j pour chaque couple u e (producteur. Les demandes annuelles de ces clients sont reprises au tableau 7. On connaˆt cij .2: Demandes annuelles des clients Les couts de transport entre producteurs et clients sont repris au tableau 7.1.3: Coˆ ts unitaires de fourniture u 7. u Coˆ t unitaire Client 1 Client 2 Client 3 Client 4 u Fournisseur 1 132 97 103 Fournisseur 2 85 91 Fournisseur 3 106 89 100 98 Tableau 7.2. e .3. Client 1 2 3 4 Demande 62 83 39 91 Tableau 7. client). e e Fournisseur 1 2 3 Capacit´ e 135 56 93 Tableau 7. Rappelons la d´ finition de graphe. eau.. .

2 Formulation du probl` me e Nous allons formuler le probl` me de mani` re classique (choix des variables. appel´ s arcs. Le probl`me de transport simple e 85 D´ finition 7. 1.Section 7. isoler deux groupes de nœuds : les nœuds de production. les nœuds repr´ sentent les lieux de production ou de consommation alors que e les arcs repr´ sentent les liens physiques existant entre lieux de production et lieux e de consommation. on ne peut aller d’un lieu de production vers un client que directement (sans passer par des points interm´ diaires). Le graphe associ´ au probl` me de transport simple peut etre repr´ sent´ comme e e ˆ e e a la figure 7.1 Un graphe est d´ fini comme la paire G = (N. Autrement dit. j). e e si la quantit´ pr´ lev´ e annuellement chez le producteur i. et les nœuds de consommation. Choix des variables : notons xij la quantit´ transport´ e annuellement du producteur i au client j. Il s’agit en fait d’un cas particulier de graphe : il s’agit d’un ` graphe bipartite.1: Exemple de probl` me de transport simple e 7. en effet. On peut. A) ou N repr´ sente e e e un ensemble de nœuds et A un ensemble de couples (i.1. et il n’existe de liens (d’arcs) qu’entre les nœuds du premier ensemble et les nœuds du second ensemble. e e expression de la fonction objectif et des contraintes ).1. avec i ∈ N e et j ∈ N . e e e . d’autre part. d’une part. Ici.1. e s1 135 1 1 D1 = 62 D2 = 83 s2 56 2 3 s3 93 3 4 D4 = 91 2 D3 = 39 Figure 7.

j) impossible. Expression de la fonction objectif : l’objectif est simplement la minimisation de la somme des coˆ ts de transport entre producteurs et clients : u min z = (i. .86 Chapitre 7. Les mod`les sur r´seau e e 2. e e` Remarquez egalement que cette condition n’est pas suffisante dans le cas o` ´ u tous les producteurs ne peuvent servir tous les clients. la condition etait viol´ e d’une certaine e e ´ e quantit´ .j)∈A (b) Contraintes de capacit´ des producteurs : la somme des quantit´ s e e fournies par un producteur i a tous ses clients doit etre inf´ rieure ou ` ˆ e egale a sa capacit´ de production : ´ ` e xij = si ≤ Ki j|(i. On peut imposer explicitement : xij = 0 pour tout (i. C’est la solution retenue dans notre formulation. Formulation des contraintes : on a deux types de contraintes (cfr figure 7. Si par exemple. ´ e Mais il convient de v´ rifier si cette condition est satisfaite avant de se lancer dans e la r´ solution du mod` le. e ´ e 3. . 2. .j)∈A Une condition n´ cessaire de r´ alisabilit´ du probl` me est que la somme des e e e e capacit´ s de production des producteurs soit suffisante pour couvrir la somme des e demande des clients : m n Ki ≥ i=1 j=1 Dj Il ne faut evidemment pas ajouter cette relation comme contrainte au mod` le. pour cette quantit´ a la sous-traitance. On peut aussi restreindre les sommations aussi bien dans l’objectif que dans les contraintes aux seuls chemins (i. j) existants. .j)∈A cij xij 3. On peut p´ naliser l’utilisation de tels chemins par un coefficient objectif cij e tr` s elev´ .n i|(i. j = 1. Il existe au moins trois mani` re d’interdire les chemins impossibles : e 1. il faudrait recourir.1) : (a) Contraintes de satisfaction de la demande : la somme des quantit´ s e fournies par tous les producteurs a un client donn´ j doit etre egale a ` e ˆ ´ ` sa demande : xij = Dj .

. . La production en heures e suppl´ mentaires est egalement possible moyennant un surcoˆ t.2. On produit un e e bien unique pour lequel la demande est connue pour les prochains mois. i + 1. u e il faut ajouter autant de fois le coˆ t de stockage qu’il n’y a de mois s´ parant u e la production de la demande. . . e De mani` re semblable. . yij d´ signe la quantit´ produite en heures suppl´ e e e e mentaires a la p´ riode i pour satisfaire une demande de p´ riode j avec ` e e i = 1. Il n’y a evidemment pas de coˆ t de production pour une production post´ ´ u e rieure a la p´ riode de demande. 2. e Mois Janvier capacit´ (heures normales) e 100 capacit´ (heures suppl´ mentaires) e e 50 Demande 80 F´ vrier e 150 75 200 Mars Avril 140 160 70 80 300 200 Tableau 7.4. .3 par mois et par unit´ stock´ e.4: Capacit´ s et demandes e Le coˆ t de production est de 1 par unit´ produite en heures normales. .2 Planification de la production Le probl` me de transport permet de mod´ liser des probl` mes qui a priori n’ont e e e ` rien avoir avec la distribution. .Section 7. Le tableau 7. . e 2.5 reprend le calcul du coˆ t total u de production et stockage. Le coˆ t de stockage e e u est de 0. . Planification de la production 87 7.5 par unit´ produite en heures suppl´ mentaires. ainsi le probl` me de planification de la production e suivant tir´ de Williams [17].4 e ´ u reprend les capacit´ s (en heures normales et en heures suppl´ mentaires) ainsi que e e la demande pour les 4 premiers mois de l’ann´ e. . i + 1.4. Remarquez que l’on aurait egalement pu utiliser une seule variable a trois ´ ` indices xijk o` k indiquerait le mode de production (k = 1 pour les heures u normales et k = 2 pour les heures suppl´ mentaires). ` e . On connaˆt ı aussi la capacit´ de production pour les prochains mois. Expression de l’objectif : Au coˆ t de production (en heures normales ou en heures suppl´ mentaires). alors u e qu’il est de 1. e Le probl` me de planification de la production s’´ nonce ainsi.4 et j = i. 2.4 et j = i. . e e Nous allons maintenant formuler ce probl` me en probl` me de transport : e e 1. Choix des variables : D´ signons par xij la quantit´ produite en heures normales a la p´ riode i pour e e ` e satisfaire une demande de p´ riode j avec i = 1. Le tableau 7.

. les quane e e tit´ s xij sont des quantit´ s transport´ es de la production au mois i vers une demande e au mois j et la somme des coˆ ts de production et de stockage joue ici le rˆ le de u o coˆ t de transport.5 F´ vrier h.6 1. 300.88 Chapitre 7. h. - Tableau 7.norm.5 1.1 2.1 1 1.3 1. u . e h. 200. 70. yij ≥ 0.supp. .supp. . Mars h.5 Production Janvier Janvier h. 150.norm. Avril h. 140.4 1 1. .norm.9 1. 160.5 1. .supp. = = = = 80. j = 1.supp.5: Coˆ ts de production et de stockage u 3. e il existe deux types de contraintes : • Les contraintes de satisfaction de la demande s’´ crivent ici comme : e x11 + y11 x12 + y12 + x22 + y22 x13 + y13 + x23 + y23 + x33 + y33 x14 + y14 + x24 + y24 + x34 + y34 + x44 + y44 • Les contraintes de capacit´ s’´ crivent ici comme : e e x11 + x12 + x13 + x14 y11 + y12 + y13 + y14 x22 + x23 + x24 y22 + y23 + y24 x33 + x34 y33 + y34 x44 y44 ≤ ≤ ≤ ≤ ≤ ≤ ≤ ≤ 100.6 1.3 1. 80. Remarquez que si l’on raisonne en termes de probl` me de transport. 75.8 2. Expression des contraintes : Outre les contraintes de positivit´ (xij .8 1 1. h.8 2. . 200.4. Les mod`les sur r´seau e e Demande F´ vrier Mars Avril e 1.norm.3 1. 50. i = 1. 1 h.4). 1.

xij = 0. Choix des variables : On note xij = 1 si personne i affect´ e au poste j.n j=1 Cette contrainte exprime qu’exactement un poste est affect´ a chaque e` personne. i = 1. . e e e . e e 1. Formulation de l’objectif : L’objectif est de minimiser l’inefficacit´ totale de l’affectation : e n n min z = i=1 j=1 tij xij 3.3. il faut ajouter les contraintes d’int´ grit´ des variables : u e e xij ∈ {0. dans le cas contraire. La question qui se pose est la suivante : “Comment affecter les personnes aux diff´ rents postes pour minimiser le temps total de r´ alisation des e e tˆ ches ?” a Le probl` me se formule de la mani` re suivante.n i=1 Cette contrainte exprime qu’exactement une personne est affect´ e a e ` chaque poste. j = 1. • et bien sˆ r. . e 2. ` La seconde contrainte devient une in´ galit´ . • chaque personne i est employ´ e : e n xij = 1.Section 7. Formulation des contraintes : Il y a deux types de contraintes : ˆ • chaque poste j doit etre pourvu : n xij = 1. Probl`me d’affectation optimale e 89 7. Autrement dit. 1} Le probl` me d’embauche se rencontre lorsqu’il y a plus de personnes que de e postes a pourvoir. . On a n personnes a affecter a n e e e ` ` postes. On obtient ainsi le probl` me de transport g´ n´ ral. . on a m personnes pour n postes avec m ≥ n.3 Probl` me d’affectation optimale e Le probl` me s’´ nonce de la mani` re suivante. . . le temps moyen mis par la personne i pour effectuer le ı travail au poste j. e e Le probl` me de transport simple peut etre g´ n´ ralis´ en permettant des nœuds e ˆ e e e interm´ diaires qui ne soient pas des nœuds source (nœud d’offre) ou des nœuds e puits (nœuds de demande). On connaˆt tij .

j). u u 3. Les mod`les sur r´seau e e 7.2: Probl` me de flot a coˆ t minimum e ` u comment satisfaire la demande des diff´ rents puits par des flux circulant a travers e ` le r´ seau depuis les sources a coˆ t total minimum.2.4 Le probl` me de transport g´ n´ ral e e e Le probl` me de flot a cout minimum est illustr´ par l’exemple tir´ de Williams e ` ˆ e e [17] repris a la figure 7. 6 et 7. Les coˆ ts unitaires de transport sont indiqu´ s au dessus des arcs.j)∈A cij xij . e e 2. On veut d´ terminer u e e +10 0 5 2 4 6 2 1 +15 1 4 3 2 4 -6 7 4 3 6 -10 6 5 5 -9 Figure 7. 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 . 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. o` cij note le coˆ t de transport unitaire sur l’arc (i. Contraintes du probl` me : e Les contraintes expriment la conservation du flux aux nœuds.90 Chapitre 7. Choix des variables : On appelle xij la quantit´ transport´ e entre le nœud i et le nœud j. e ` u On peut formuler le probl` me de transport g´ n´ ral comme suit : e e e 1. Expression de l’objectif : L’objectif correspond simplement a la minimisation des coˆ ts de transport : ` u min z = (i.

4.4. Le probl`me de transport g´n´ral e e e x24 + x34 x25 + x45 x46 + x76 x37 = = = = x42 + x45 + x46 9 10 x76 + 6 91 En mettant toutes les variables a gauche et toutes les constantes a droite.1 Probl` me du plus court chemin e Le probl` me du plus court chemin est celui qui se pose lorsque l’on veut aller e d’un point a un autre sur un r´ seau routier par la route la plus courte. A la figure 7.Section 7. ` e . on obtient ce que l’on appelle la matrice d’incidence nœuds/arcs qui a comme particularit´ que chaque coe lonne ne comporte qu’un coefficient +1 et un coefficient -1. Chaque colonne correspond a un arc. on obtient ` ` le syst` me suivant d’´ galit´ s : e e e x02 x13 −x02 +x23 +x24 +x25 −x42 +x34 +x37 −x13 −x23 −x34 +x42 +x45 +x46 −x24 −x45 −x25 −x46 −x76 x76 −x37 = 10 = 15 = 0 = 0 = 0 = −9 = −10 = −6 En isolant les coefficients de ces contraintes.3. e 7. et il y a un +1 dans la ligne correspondant au nœud d’o` est ` u 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 1 1 1 −1 2 −1 −1 −1 1 1 3 −1 −1 1 1 1 4 −1 −1 5 −1 −1 6 −1 1 7 Nous allons maintenant voir un certain nombre de cas particuliers de ce probl` me.

Les mod`les sur r´seau e e 3 1 3 4 2 2 7 1 5 1 1 1 1 6 8 Figure 7. Au nœud origine. cela revient a maximiser le flux dans l’arc retour. on veut maximiser le flot entre les e ` sources et les puits.92 1 2 2 0 1 3 4 1 2 Chapitre 7.3: Probl` me du plus court chemin e on a repr´ sent´ les distances entre les divers points. ` . On utilise alors un algorithme sp´ cialis´ pour e e d´ terminer le flot a coˆ t minimum qui satisfait cette demande unitaire.2 Probl` me du flot maximum e Le probl` me du flot maximum est celui que l’on rencontre lorsque l’on veut. Etant donn´ des capacit´ s des arcs (voir les chiffres ` e e 12 0 2 2 3 E 20 1 3 9 4 7 6 7 4 8 6 S 5 6 5 Figure 7. Remarquez que ce probl` me etre e ˆ reformul´ en un probl` me de flot a cout minimum. le nœud e 8. Il existe e ` u cependant un algorithme sp´ cialis´ pour r´ soudre ce probl` me : l’algorithme de e e e e Dijkstra (voir cours de licence). 7.4). Si l’on rejoint toutes les sources a une source unique et tous ` les puits a un puits unique.4. e e ` ˆ il suffit de mettre une source de capacit´ unitaire et au nœud destination. pour e un r´ seau de transport. d´ terminer le flot maximum de voitures qu’il peut supporter e e avant d’arriver a saturation.4: Probl` me du flot maximum e indiqu´ s au dessus des arcs a la figure 7. un puits de demande unitaire. et que l’on trace l’arc de retour entre le puits unique et ` la source unique. le nœud 0. On se demande quel est le e e plus court chemin entre le nœud 0 et le nœud 8.

5 Exercices 7. e e . Au vu des donn´ es. e Arc Origine 1 A 2 A 3 C 4 C 5 B 6 C 7 E 8 D 9 E Destination Capacit´ e B 3 C 7 B 2 D 2 D 4 E 4 D 2 F 6 F 5 Tableau 7.11 0. e e e exprim´ es en milliers de voitures par heure. e la capacit´ de production varie de mois en mois. On se demande comment organiser la production du moteur pour minimiser les coˆ ts de production et de u stockage.6).7. Les capacit´ s des arcs. En fonction des op´ rations de maintenance.2.10 0.015 Avril 20 10 1.015 Tableau 7.015 F´ vrier e 15 35 1. e e e (b) Formuler math´ matiquement le probl` me. On veut d´ terminer quel est le flot maximum de e v´ hicules entre A et F que peut supporter le r´ seau. e e e Mois Commandes Capacit´ Coˆ t de production Coˆ t de stockage e u u Janvier 10 25 1. ´ e il est clair qu’il faudra recourir au stockage. Le tableau 7. Une entreprise de fabrication de moteurs d’avions travaille uniquement sur commandes. 7. Am´ lioration d’un r´ seau routier. Planification de la production de moteurs d’avions. On pr´ voit une augmentation du trafic e e e entre les villes A et F.015 Mars 25 30 1.Section 7.7: Capacit´ s des arcs d’un r´ seau routier. sont reprises au tableau 7. Formuler le probl` me comme un probl` me sur r´ seau.5. e e (a) Repr´ senter le probl` me sur un graphique de r´ seau.13 0.1. Le coˆ t unitaire de produce u tion varie egalement de mois en mois (voir tableau 7. Exercices 93 7.08 0.6 fournit en le nombre de moteurs a fournir en fin de chaque mois ` pour les quatre prochains mois.6: Production de moteurs d’avions.

on a ´ e ` e etabli le coˆ t de les affecter a chacun des 4 autres postes occup´ s par les ´ u ` e coll` gues. Tous les trois ans. le d´ sagr´ ment sera d’autant plus grand que la nouvelle e e affectation sera eloign´ e. Ces v´ hicules sont attribu´ s a e e e ` chaque ville : 4 a la ville 1.8: Temps de parcours temps de trajets entre ces villes et l’incin´ rateur sont donn´ s au tableau 7. e e e (b) Formuler math´ matiquement le probl` me. par exemple dans le cas d’un officier mari´ dont la femme e travaille dans le civil. e e On veut minimiser le temps total pour aller a l’incin´ rateur. La collectivit´ locale dispose e e e e de 12 v´ hicules pour collecter dans 4 villes. Les ` ` ` ` Vers ville 1 ville 2 ville 3 De la ville 1 0 10 ∞ De la ville 2 10 0 5 De la ville 3 ∞ 5 0 De la ville 4 ∞ ∞ 5 De l’incin´ rateur e 45 ∞ 20 ville 4 incin´ rateur e ∞ 45 ∞ ∞ 5 20 0 ∞ ∞ 0 Tableau 7.94 Chapitre 7. tient compte du d´ sagr´ ment d’ˆ tre mut´ loin de sa base d’origine. Consid´ rons le probl` me d’organisation des toure e e e n´ es de v´ hicules pour la collecte des d´ chets. ces officiers sont mut´ s a un autre poste pour e ` assurer la polyvalence du commandement et eviter que trop de fraternit´ ne ´ e s’installe entre les officiers et la troupe. L’arm´ e a une politique de mutation r´ guli` re de e e e ses officiers.12 15 11 17 6 .4.8.3. 1 a la ville 3 et 4 a la ville 4.14 12 16 8 17 . Les mod`les sur r´seau e e 7. Pour les 5 officiers a muter cette ann´ e.21 17 7 16 9 . Mutation des officiers. e e a e e Formuler math´ matiquement le probl` me. e e e e Et il est clair que. e e . e e 7. ` e (a) Repr´ senter le probl` me sur un graphique de r´ seau. Tourn´ es de v´ hicules. On d´ sire d´ terminer l’affectation des officiers qui minimise e e e Coˆ t pour u l’officier A B C D E d’ˆ tre mut´ au poste e e a b c d e . L’arm´ e. pour etablir son plan de e ´ mutation.12 7 13 8 12 - le d´ sagr´ ment total (c’est-` -dire la somme des d´ sagr´ ments individuels). 3 a la ville 2.

1) ij Prenons un exemple d’utilisation de la notion de coˆ t r´ duit. nous introduirons d’abord cette notion.1 Introduction Dans ce chapitre. On d´ finit le cout r´ duit de l’arc (i. e e Consid´ rons un arc quelconque du r´ seau comme illustr´ a la figure 8. on utilise la e e e notion de cout r´ duit d’un arc. Il s’agit du u e probl` me du calcul de la plus courte distance entre deux points dans un graphe e (voir cours de licence). ˆ e 8. ˆ e D´ finition 8. il s’agit du probl` me obtenu e lorsque que le r´ seau ne comporte que deux types de nœuds.2 Notion de cout r´ duit ˆ e Dans plusieurs algorithmes de r´ solution de probl` mes sur r´ seau. d’une part les nœuds e d’offre et. e a que nous appellerons le potentiel du nœud. nous allons pr´ senter un algorithme de r´ solution du probl` me de e e e transport simple introduit au chapitre 7. j) e ˆ e comme cπ = cij − π(i) + π(j) (8. L’algorithme de r´ solution faisant appel a e ` la notion de couts r´ duits. L’algorithme de Dijkstra calcule la fonction di qui donne la distance du plus court chemin entre le point d’entr´ e sur le r´ seau et le point i. Ainsi di e e e` note la distance du plus court chemin depuis l’entr´ e sur le r´ seau jusqu’au point i e e et dj note la distance du plus court chemin jusqu’au point j tandis que cij indique 95 .1.1 Supposons qu’` chaque nœud i ∈ N .Chapitre 8 R´ solution du probl` me de transport e e simple 8. Pour rappel. on associe un nombre π(i). d’autre part les nœuds de demande et que les arcs vont uniquement des nœuds d’offre aux nœuds de demande.

il est equivalent de dire que cπ = cij − πi + πj ≥ 0.2. soit le plus court chemin menant de l’entr´ e du r´ seau au e e nœud j passe par l’arc (i. la condition suivante doit etre v´ rifi´ e : ˆ e e dj ≤ di + cij (8. Ce qui peut se r´ crire : e cij + di − dj ≥ 0.1: Notion de coˆ t r´ duit d’un arc (i. u e Illustrons ceci sur l’exemple de la figure 8.2) est satisfaite. celui-ci stocke deux informations en chaque nœud : . ∀(i. j) ∈ A ij Autrement dit que les coˆ ts r´ duits sont tous positifs ou nuls. d2 = 2 2 c12 = 2 d1 = 0 1 c13 = 2 3 d3 = 2 c24 = 3 c23 = 1 d4 = 3 4 c34 = 1 Figure 8. on a bien que (8. j). En effet.96 Chapitre 8. A l’optimum. Pour rappel. u e Pour d´ terminer di la plus courte distance du nœud origine 1 au nœud i.2) Justifions ceci. R´solution du probl`me de transport simple e e di i dj j c ij Figure 8. j) u e la longueur de l’arc (i. ∀(i. j) ∈ A ´ En posant πi = −di .2: Application de la notion de coˆ t r´ duit. j) et on a donc que dj = di + cij Soit le plus court chemin passe par un autre arc et passer par i est plus long : dj < di + cij Dans les deux cas. on e utilise l’algorithme de Dijkstra.

e a e 2. Mettre lo = 0. T = {o}.2. j) : Pour tout j ∈ S. dj et pj sont remis a jour comme suit : Si dq + cqj < dj . si j tel que (o. 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. ´ ˆ e e Rappelons le principe de l’algorithme. j). ea e e e 2. . S = N \ T .1 Algorithme de Dijkstra. sinon dj ← ∞. Dans ce cas. L’ensemble S = N \ T des nœuds qui sont encore a traiter. Terminaison. 1. le label courant du nœud. L’algorithme s’arrˆ te d` s que l’on a d´ termin´ le label e e e e d´ finitif du sommet de destination d. Pour tout ˆ ` nœud j ∈ S qui peut etre atteint a partir de q par un arc (q. not´ pi . C’est l’ensemble des nœuds d´ j` trait´ s et qui ne n´ cessitent donc plus de traitement ult´ rieur. c’est-` -dire d` s que d ∈ T : e a e R´ p´ ter ii) jusqu’` ce que le sommet de destination d ∈ T . Initialisations. dans le plus court chemin trouv´ e e e e jusqu’` pr´ sent entre le nœud origine et i. qui indique la distance entre le nœud e origine et le nœud i par le plus court chemin trouv´ jusqu’` pr´ sent. e e a ` La distance du plus court chemin de o a d est tout simplement ld .Section 8. le pr´ d´ cesseur courant du nœud. On dit qu’ils ` ont un un label provisoire qui pourra encore eventuellement etre am´ lior´ . Notion de coˆt r´duit u e 97 1. not´ di . It´ ration k. Algorithme 8. 2. j) ∈ A alors dj ← coj . alors et dj = dq + cqj pj = q 3. on met comme label provisoire de j le temps de parcours de l’arc (o. L’ensemble T des nœuds dont on a d´ termin´ exactement le plus court e e chemin entre le nœud origine et ces nœuds. a e L’algorithme de Dijkstra utilise et met a jour deux ensembles : ` 1. On s´ lectionne l’´ l´ ment q ∈ S de label provisoire dq minimum : e e ee q ∈ S|dq = min dj j∈S Ce nœud q est d´ plac´ de l’ensemble S vers l’ensemble T : e e T = T ∪ {q} et S = S \ {q} ` ´e On remet alors a jour les labels provisoires des el´ ments de S. ˆ ` Pour tout nœud j ∈ S qui peut etre atteint a partir de o par un arc (o. Soit o l’indice du nœud origine.

e e e On a d´ termin´ les plus courtes distances de 1 a tous les nœuds. R´solution du probl`me de transport simple e e Voyons maintenant l’application de cet algorithme a notre exemple : ` Initialisations : on marque d´ finitivement le nœud 1 qui permet d’atteindre les e nœuds 2 et 3 : i 1 2 3 4 di 0 2 2 +∞ − pi − 1 1 It´ ration 1 : on marque d´ finitivement le nœud 2 de label provisoire minimum. On en d´ duit le calcul des coˆ ts r´ duits (cπ = cij − πi + πj ) : e u e ij 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` te comme le surcoˆ t d’utiliser cet arc par rapport au plus court chemin. π4 = −3. π2 = −2. e e Ce nœud permet d’atteindre le nœud 4 : i di 1 2 3 4 0 2 2 5 pi − 1 1 2 It´ ration 2 : on marque d´ finitivement le nœud 3 de label provisoire minimum. on peut en d´ duire e π1 = 0.98 Chapitre 8. e e Ce nœud permet d’atteindre le nœud 4 plus rapidement que par le nœud 2 : i di 1 2 3 4 0 2 2 3 pi − 1 1 3 It´ ration 3 : on marque d´ finitivement le nœud 4 et l’algorithme est termin´ . π3 = −2. e u . En posant e e ` πi = −di .

On peut donc repr´ senter le probl` me par un graphe bipartite e e e comme illustr´ a la figure 8. e e e ` L’objectif est donc la minimisation des coˆ ts de transport entre les nœuds d’entr´ e u e et les nœuds de sortie. on va.3. On suppose egalement.Section 8. Il n’y a donc pas de nœuds d’interconnexion. c’est la seconde e e ´ hypoth` se. tout ´ u ` juste satisfaire la demande en chaque nœud de demande.j)∈A o` A est l’ensemble des arcs de transport (correspondant au r´ seau ”ouvert” obtenu u e sans consid´ rer le nœud d’entr´ e et le nœud de sortie). Le probl`me de transport simple e 99 8. e On choisit comme variable xij pour d´ signer la quantit´ transport´ e de i a j.3 Le probl` me de transport simple e Rappelons la formulation du probl` me du transport simple pour lequel il existe e seulement deux types de nœuds : les nœuds d’entr´ e (ou encore nœuds d’offre e dont l’ensemble est not´ Ns ) et les nœuds de sortie (ou encore nœuds de demande e dont l’ensemble est not´ Nd ). Seuls ces arcs ont un coˆ t associ´ dij . a la solution optimale. e e Il est evident que si transporter du flot coˆ te. C’est e la premi` re hypoth` se simplificatrice. L’objectif se formule u e donc comme z = min cij xij (i. Autrement dit. e` 1 s 1 d 2 S E 2 m n Figure 8.j)∈A Supposons que l’offre totale soit egale a la demande globale.3: Probl` me de transport simple.3. que les arcs liant les nœuds d’entr´ e aux nœuds de sortie ont une e e capacit´ infinie. autrement dit que ´ ` si = i∈Ns j∈Nd dj . on aura que : xij = dj ∀j ∈ Nd i|(i.

j)∈A On voit donc qu’avec les hypoth` ses faites dans le cas du r´ seau de transport e e simple. la u e o capacit´ de l’usine i et DEMj . On a e donc la formulation math´ matique suivante pour le probl` me du transport simple. Melun et e o e ` Toulouse. e o e e On cherche l’affectation usines-d´ pˆ ts permettant d’aboutir a un coˆ t de transe o ` u port minimum.4. j) ∈ A  (i. la demande du d´ pˆ t j.j)∈A    xij    j|(i. en e e o . Le tableau 8.100 Chapitre 8. Trois usines situ´ es a Lyon. CAPi . Strasbourg et Lille e e ` peuvent approvisionner quatre d´ pˆ ts situ´ s a Saint-Brieuc.1 R´ solution par le Simplexe e Appelons cij le coˆ t unitaire de transport de l’usine i vers le d´ pˆ t j. e o Le tableau donne egalement la capacit´ de production (exprim´ e en milliers de ´ e e tonnes) et la demande des d´ pˆ ts (dans la mˆ me unit´ ).c.q.4 R´ solution du probl` me de transport simple e e Nous allons illustrer la r´ solution du probl` me de transport simple sur l’exemple e e suivant tir´ de Baglin et al [2]. chaque arc d’entr´ e doit egalement etre utilis´ a pleine capacit´ e ´ ˆ e` e et nous aurons semblablement que xij = si ∀i ∈ Ns j|(i. xij    i|(i. les flux circulant sur les arcs entrant et sortant sont connus a priori. Comme vu plus haut. Les ` seules inconnues du probl` me sont les flux fij dans les arcs de transport.j)∈A       xij ≥ 0 8. Dans ce cas. Poitiers. se ramener a ce cas en ajoutant un nœud de demande suppl´ men` e taire auquel on attribue l’exc´ dent d’offre sur la demande ( i∈Ns si − j∈Nd dj ) e et que l’on raccorde a chaque nœud d’offre par un arc de capacit´ infinie et de coˆ t ` e u de transport nul. 8. en effet.1 fournit (en F par tonne) les tarifs des transporteurs routiers de chaque usine vers chaque d´ pˆ t. e e z = min cij xij = si ∀i ∈ Ns (8. R´solution du probl`me de transport simple e e On peut.j)∈A    s.3) = dj ∀j ∈ Nd ∀(i.

j) Remarquez que le probl` me est parfaitement equilibr´ car : e ´ e 3 4 CAPi = i=1 j=1 DEMj Ce probl` me lin´ aire peut etre r´ solu par l’algorithme du Simplexe (voir chapitre e e ˆ e 3) qui donne la solution optimale suivante : • Lyon envoie 5. .Section 8.000 a Meulun. . .4) s. .4.000 a Poitiers.3 (8.000 a Toulouse. ` ` • Lille envoie 2. . . u . le probl` me se formule comme suit : 3 4 z = min     xij     j=1   i=1 j=1 4 cij xij = CAPi ∀i = 1.580 kF.000 T a Poitiers et 4.000 T a St-Brieuc et 9.1: R´ solution du probl` me de transport simple e e e e e o e appelant xij la quantit´ transport´ e de l’usine i au d´ pˆ t j.q. ` ` • Strasbourg envoie 8.c. ` ` Le coˆ t global de transport de cette solution est de 6. R´solution du probl`me de transport simple e e 101 Coˆ t de u fourniture venant de Lyon Strasbourg Lille Demande 264 279 200 10 Destination St-Brieuc Poitiers Melun Toulouse Capacit´ e de l’usine 130 244 166 14 139 146 66 7 160 307 278 4 9 17 9 Tableau 8.  3 xij =    i=1      x ≥0 ij DEMj ∀j = 1.000 T a St-Brieuc et 7.4 ∀(i.

On utilise les 2. la demande de Toulouse est satisfaite a partir des 4. On passe a la deuxi` me ` e colonne que l’on rempli a partir du Nord. on partira donc d’une solution consistant a livrer 9.000 T restant disponibles a Lille. u e ` Fourniture venant de Lyon Strasbourg Lille Demande 10 14 9 1 14 2 5 7 4 4 Destination St-Brieuc Poitiers Melun Toulouse Capacit´ e de l’usine 9 17 9 Tableau 8.2 pour un coˆ t total de transport s’´ levant a 7 805 kF. e Dans notre exemple.000 T venant de Lille pour saturer la demande de Melun.000 ` ´ e T de Strasbourg vers Poitiers dont la demande est ainsi satur´ e. Melun est livr´ e par l’usine e u e . e La m´ thode du coin Nord-Ouest : e La m´ thode du coin Nord-Ouest consiste a attribuer le plus grand nombre possible e ` ` ` a la case situ´ e le plus a l’Ouest (1er crit` re) et le plus au Nord (2` me crit` re) e e e e possible tout en respectant les contraintes de capacit´ de production et de demande.000 T restantes de Strasbourg compl´ t´ es de e ee 5. j) e pr´ sentant le coˆ t de transport unitaire cij le plus faible. Lyon etant satur´ e.4.2 R´ solution par la m´ thode du stepping stone e e Le principe de cette m´ thode consiste a partir d’une solution r´ alisable que l’on e ` e am´ liore pas a pas. e • la m´ thode de Houthakker. Enfin.102 Chapitre 8.000 T venant de Strasbourg.000 ` T de Lyon a St-Brieuc. R´solution du probl`me de transport simple e e 8. On obtiendra ` ` la solution du tableau 8. Pour la d´ termination d’une e ` u e e solution de d´ part. on sature la ` e ´ e demande de St-Brieuc par 1. D’o` le nom de la m´ thode.2: Heuristique du Coin Nord-Ouest Heuristique de Houthakker : La m´ thode de Houthakker propose de commencer par saturer les liaisons (i. au moins deux m´ thodes heuristiques peuvent etre utilis´ es : e e ˆ e • la m´ thode du coin Nord-Ouest. On passe a la e ` troisi` me colonne. Toute la capacit´ de Lyon etant utilis´ e. on envoie 14.

Remarquez que si deux cases sont de coˆ t minimum. u ce qui sature la demande de Poitiers. e e e Par exemple. Les deux coˆ ts unitaires minimum suivant u (264 et 278) correspondent a des capacit´ et demande satur´ es.000 T de Strasbourg vers Poitiers au coˆ t unitaire de 244. Ensuite. Le coˆ t minimum suivant est 139 de Lyon a Melun mais la capacit´ de u ` e Lyon est satur´ e.4. a concurrence de ` 9. le respect e ` des contraintes nous oblige a enlever une unit´ de la case Strasbourg-St-Brieuc. la capacit´ de Lille etant ainsi satur´ e. R´solution du probl`me de transport simple e e 103 de Lille (66 F la tonne). u Am´ lioration de la solution de base : e Pour chaque case pr´ sentant une valeur nulle.3 pour un coˆ t de 6. Et ` finalement. e e Le solde etant positif. on choisira ´ ` u celle o` l’on peut attribuer le plus grand nombre : ceci aura pour effet de mettre u comme coefficient du coˆ t minimum la plus grande valeur d’une variable. a ` e ` enlever une unit´ de la case Lyon-Poitiers et a ajouter une unit´ a la case Strasbourge ` e` Poitiers. Ce qui repr´ sente un coˆ t de e u +264 − 130 − 279 + 244 = +99. on envoie 2. On envoie ensuite ` e e 10. Ensuite. si on veut affecter une unit´ de Lyon a St-Brieuc. Puis le coˆ t minimum est de 160 de Lyon e u a Toulouse mais a nouveau Lyon est satur´ e. e u ` Mais la demande de Meulun est satur´ e. Ensuite Lyon approvisionnera Poitiers.714 kF. Ensuite le coˆ t minimum de 200 est de Lille a St-Brieuc mais la capacit´ de Lille est satur´ e.000 T restantes de Strasbourg a Toulouse. ´ .000 T. on envoie 3. u Fourniture Destination Capacit´ e venant St-Brieuc Poitiers Melun Toulouse de de l’usine Lyon 9 9 Strasbourg 10 3 4 17 Lille 2 7 9 Demande 10 14 7 4 Tableau 8.Section 8. on calcule le coˆ t marginal engendr´ e e u par le d´ placement d’une unit´ des cases affect´ es voisines vers celle-ci. l’op´ ration n’est pas int´ ressante. On obtiendra ` le tableau 8. le coˆ t minimum de 146 est de Strasbourg a Meulun.580 kF). u ` e e Ensuite. On sature ainsi la demande de St-Brieuc.000 T de Lille a ` ` e ` u e ´ e Poitiers au coˆ t unitaire de 166.000 T de Strasbourg a St-Brieuc.3: Heuristique du Houthakker On voit que l’on est d´ j` beaucoup plus proche de la solution optimale (de coˆ t ea u egal a 6. on envoie les 4.

pour obtenir la solution ` optimale d´ termin´ e par le Simplexe. e Le mˆ me raisonnement appliqu´ a la case Lille-St-Brieuc permet encore de e e` d´ placer 2. cette modification am´ liore la solution pr´ c´ dente. R´solution du probl`me de transport simple e e Poitiers Melun Lyon -1 (x 130) +1 (x 139) Lille +1 (x 166) -1 (x 66) Tableau 8.5. On peut ´ e e e e d´ placer 4. u Notez que l’algorithme de stepping stone choisit a chaque etape comme variable ` ´ celle de coˆ t marginal le plus n´ gatif. on peut montrer (cela r´ sulte du principe de dualit´ de la programmation e e lin´ aire) qu’il existe des variables auxiliaires ui et vj telles que pour chaque case e de base (c’est-` -dire chaque case utilis´ e dans la solution de d´ part). ´ e e L’ajout d’une unit´ de Lyon a Toulouse est illustr´ e au tableau 8.000 tonnes de la case Lille-Poitiers a la case Strasbourg-Poitiers et e ` aussi 2. Ce qui e ` e Poitiers Toulouse Lyon -1 (x 130) +1 (x 160) Strasbourg +1 (x 244) -1 (x 307) Tableau 8. Ce qui e ` e repr´ sente un coˆ t de e u −130 + 139 + 166 − 66 = +109.000 T de Strasbourg-St-Brieuc a Lille-St-Brieuc.4: Calcul du deuxi` me coˆ t marginal e u L’ajout d’une unit´ de Lyon a Meulun est illustr´ e au tableau 8.104 Chapitre 8. u e Calcul des couts marginaux ˆ Une m´ thode permet de r´ duire fortement le temps de calcul des coˆ ts r´ duits. e e Toute modification se traduirait alors par une augmentation du coˆ t global.4. on ait : a e e ui + vj = cij .5: Calcul du troisi` me coˆ t marginal e u repr´ sente un coˆ t de e u −130 + 160 + 244 − 306 = −33.000 T et gagner 4 × 33 = 132 kF. l’op´ ration n’est pas int´ ressante. Le solde etant n´ gatif. Le solde etant positif. e e u e En effet.

Section 8. ea e .30 = 2 -193 = 0 u3 = 36 200 -36 166 -36 66 -36 278 -36 -165 = -1 -130 = 0 .0 139 -0 160 . v1 = 165 v2 = 130 v3 = 30 v4 = 193 u1 = 0 264 .6: Calcul des coˆ ts marginaux u On retrouve bien les valeurs +99. On en d´ duit imm´ diatement ` e e e 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ˆ ts marginaux par la formule suivante (c’est la formule u de calcul des coˆ ts r´ duits de l’algorithme du Simplexe) : u e dij = cij − (ui + vj ) Ceci est fait au tableau 8. on a donc que : u1 + v2 u2 + v1 u2 + v2 u2 + v4 u3 + v2 u3 + v3 = = = = = = 130 279 244 307 166 66 105 Il s’agit d’un syst` me de 6 equations a 7 inconnues.3.30 = 0 -193 = 49 Tableau 8.0 -165 =99 -130 = 0 -30 = 109 -193 = -33 u2 = 114 279 -114 244 -114 146 -114 307 -114 -165 = 0 -130 = 0 . R´solution du probl`me de transport simple e e Pour la solution du tableau 8.0 130 .4. On peut donc arbitrairement e ´ ` fixer a z´ ro la valeur d’une variable (par exemple u1 ). +109 et -33 d´ j` calcul´ es plus haut.6.

5 1. dispose de 4 laboratoires o` elle elabore son produit et de 5 centres u ´ de distribution d’o` elle ravitaille sa client` le. 8. e ` u .5 1. La disponibilit´ (en tonne ´e e e e e de chair) des diff´ rents laboratoires est egalement donn´ e au tableau 8. Le tableau 8.8: Les donn´ es num´ riques du probl` me de transport.7: Coˆ ts unitaires de transport u et´ n´ goci´ au tarif kilom´ trique de 2 $ la tonne.4 550 Demande 325 300 275 Tableau 8. On e e e e e connaˆt la capacit´ de production de chacune des usines ainsi que la demande ı e de chacun des march´ s. e Usines March´ s e Offre New York Chicago Topeka Seattle 2.7 indique les u e distances entre les laboratoires et les centres de distribution.5 Exercices 8.2. e e e Les frais de transport sont de 90 $ par millier de miles. La e ´ e demande des centres de distribution est donn´ e en derni` re ligne du tableau. On dispose de deux usines de production dont e les d´ bouch´ s sont situ´ s sur trois march´ s distants g´ ographiquement. exprim´ es en milliers de miles.106 Chapitre 8. On se demande combien d’unit´ s du produit acheminer a chaque march´ a partir de chaque e ` e` usine de mani` re a minimiser les coˆ ts de transport. e e L’entreprise cherche le plan d’acheminement a coˆ t minimal des laboratoires ` u aux centres de distribution.7.8 pour les e ´ donn´ es pr´ cises) des distances. sp´ cialis´ e dans la production de saue e cisses.7 1. R´solution du probl`me de transport simple e e 8. Calculer une solution par l’heuristique du coin Nord-Ouest et par celle d’Houthakker. entre les e e e sites de production et les march´ s.8 350 San Diego 2.1. On dispose egalement (voir tableau 8. Une entreprise. Le transport a dij CD1 L1 100 L2 50 L3 250 L4 300 Demande 18 CD2 300 200 100 150 20 CD3 250 250 50 200 22 CD4 450 450 350 250 19 CD5 250 250 300 450 21 Offre 26 24 27 23 Tableau 8. Plan de transport.8 1. Probl` me de transport.

c’est-` -dire celui qui permet de faire passer un suppl´ ment de e e a e flux. Consid´ rons un arc (i. e Le principe de cet algorithme est le suivant : on d´ termine un plus court chemin e e e e entre un nœud d’entr´ e et un nœud de sortie non satur´ s en utilisant le r´ seau r´ siduel (celui o` il reste de la capacit´ de transport).2 Notion de r´ seau r´ siduel e e Dans plusieurs algorithmes. e a D’autres algorithmes existent pour r´ soudre ce probl` me. e e 9.2. ` Nous pr´ senterons ensuite l’algorithme de plus courts chemins successifs. Nous verrons ensuite a la section 9. Il est alors int´ ressant d’identifier non pas le r´ seau actuel mais e e le r´ seau r´ siduel. Aussi. On d´ termine alors le flux e u e e maximum qui peut etre transmis le long de ce chemin. L’algorithme faisant appel a la notion de cout r´ duit introduite e e ` ˆ e au chapitre 8. j) dont le flux doit etre compris entre une borne inf´ rieure e ˆ e 107 . nous ´ ` e e commencerons par introduire cette notion a la section 9. on cherche a augmenter le flot par rapport a la situation ` ` actuelle du flot. Elle fait egalement appel a notion de r´ seau r´ siduel. On augmente le flot et on ˆ it` re jusqu’` saturer tous les points de demande. On en trouvera une e e description dans Ahuja et al[1]. Il s’agit de d´ terminer le flot a coˆ t minimum dans un r´ seau de e e transport g´ n´ ral.1 Introduction Nous allons voir ici comment r´ soudre le probl` me de transport g´ n´ ral introduit e e e e ` u au chapitre 7.4 l’application de cet algorithme a la ` ` r´ solution du probl` me d’affectation.Chapitre 9 R´ solution du probl` me de transport e e g´ n´ ral e e 9.

que nous allons pr´ senter ci-dessous est l’algorithme de plus courts chemins successifs. ou ce qui est equivalent. on ajoute un arc en sens e ` e oppos´ dont la capacit´ r´ siduelle est egale a la valeur actuelle du flux. De e e e e mˆ me. si le flux sur cet arc n’est pas a sa borne inf´ rieure. soit par un arc de mˆ me sens (cas du flux nul). j) e e c e qui n’est pas a sa borne sup´ rieure par un arc dans le mˆ me sens avec comme ` e e capacit´ r´ siduelle la diff´ rence entre la capacit´ de l’arc et le flot actuel. j) un suppl´ ment de flux egal a la capacit´ e ´ ` e r´ siduelle rij qui se calcule comme suit : e rij = cij − fij Mais on peut egalement faire passer du flux dans l’autre sens en ajoutant un arc de ´ j a i de capacit´ r´ siduelle : ` e e rji = fij En effet. Remarquez egalement que la notion e ` e ´ de r´ seau r´ siduel est d´ pendante du flot actuel. e e e 9. e .3 R´ solution du probl` me de flot a cout minimum e e ` ˆ Plusieurs algorithmes existent pour r´ soudre ce probl` me. Le lecteur int´ ress´ en e e e e trouvera quelques uns dans l’ouvrage de AHUJA et al [1].108 Chapitre 9. il est facile de voir que l’on peut faire encore passer en flux dans l’arc (i. on peut etre amener a remplacer un arc du r´ seau initial ˆ ` e G. soit par deux arcs (cas du flux e strictement entre ses bornes inf´ rieure et sup´ rieure) soit par un arc dans le sens e e oppos´ (cas du flux a sa borne sup´ rieure). not´ G(f ) consiste en les seuls arcs ayant une e e e e capacit´ r´ siduelle rij positive e e Remarquez que ce faisant.1 Le r´ seau r´ siduel. ` e e ´ faire circuler un flux au maximum de fij dans un arc de j a i. Si la e ´ ` e valeur actuelle du flux sur cet arc est fij .1: Notion de r´ seau r´ siduel e e On construit le r´ seau r´ siduel en rempla¸ ant syst´ matiquement un arc (i. ce que traduit la notation G(f ). R´solution du probl`me de transport g´n´ral e e e e 0 et une borne sup´ rieure egale a la capacit´ de l’arc cij (voir figure 9.1). on peut ramener le flux a sa borne inf´ rieure z´ ro. Un de ceux-ci. ` rij = cij fij di i c ij dj j di i r ji = fij dj j Figure 9. e e e ´ ` D´ finition 9.

Section 9. soit e(i) comme suit e e e(i) = s(i) + k|(k.3. On d´ finit l’exc` s au nœud i. on a donc (voir figure 9. d(i). tous les flots sont mis a z´ ro ainsi e e ` e que tous les potentiels aux nœuds : fij = 0 πi = 0 ∀(i. e e D´ finition 9. e e On va illustrer l’algorithme sur l’exemple de la figure 9. e Le principe de l’algorithme est a chaque etape de s´ lectionner un nœud s ` ´ e avec un exc` s d’offre et un nœud t avec une demande non satisfaite et d’envoyer e ` du flot de s a t le long d’un plus court chemin du r´ seau r´ siduel (voir section 9.2 Un pseudoflot f satisfait les contraintes de capacit´ s et de positivit´ e e e des flux. e . A chaque etape. e(2) = 0. j) ∈ A ∀i ∈ N Ainsi. On d´ finit les deux e ensembles E des nœuds avec exc` s d’offre et D avec exc` s de demande : e e E = {i|e(i) > 0} D = {i|e(i) < 0} Au d´ part. Donc e(i) est la partie de l’offre au nœud i qui n’est pas encore port´ e plus loin. pour rappel. on dispose d’une ´ solution f qui satisfait les conditions de non n´ gativit´ et de capacit´ s des arcs mais e e e pas n´ cessairement les conditions de conservation de la mati` re aux nœuds. rij ) ij o` cπ d´ note le coˆ t r´ duit de l’arc qui.3. le flux dans l’arc (i.2 o` la notation des u arcs est la suivante : (cπ .2 e e pour la notion de r´ seau r´ siduel). R´solution du probl`me de flot a coˆt minimum e e ` u 109 9. se calcule comme suit : u ij e u e cπ = cij − πi + πj ij et rij note la capacit´ r´ siduelle. e(3) = 0 et e(4) = 0. on peut calculer facilement les exc` s de demande aux nœuds : e e(i) = s(i) − d(i) Ce qui donne ici e(1) = 4.j)∈A fij o` s(i) note l’injection dans le r´ seau au nœud i.i)∈A fki − d(i) − j|((i.2) : E = {1} et D = {4}.1 Algorithme de plus courts chemins successifs Le principe de l’algorithme est le suivant. j). Initialement. la demande satisfaite au u e nœud i et fij .

les plus courtes distances du e nœud 1 au nœud i.2) Figure 9. 2. 5} = 2 . −e(l). soit d(i). On met a jour les potentiels aux nœuds par ` la formule π = π − d.110 Chapitre 9. u e Appliquons ceci a l’exemple. 3) et le plus court chemin P = 1 − 3 − 4. π(3) = −2. π(4) = −3. Algorithme 9. Tant que E = ∅. On d´ termine les plus courtes distances d(j) du e e nœud source k vers tous les nœuds du r´ seau r´ siduel G(f ) sur base des coˆ ts e e u π ` r´ duits cij .4) s1 = 4 1 e(1) = 4 π(2) = 0 2 (3. On calcule le flot maximum que l’on peut faire passer le long du chemin : δ = min{4. R´solution du probl`me de transport g´n´ral e e e e e(2) = 0 π (cij .1 Algorithme de plus courts chemins successifs. π(2) = −2. On met a jour le r´ seau r´ siduel G(f). ∀i ∈ N . ` e e Ensuite. en se basant sur les coˆ ts r´ duits. on d´ termine. par l’algorithme de Dijkstra. rij ∀(i.2: Algorithme de plus courts chemins successifs. on s´ lectionne k = 1 et l = 4. On met a jour : e π(i) = π(i) − d(i). rij )= (2. les e e ensembles E. j) ∈ P } ` On augmente le flot le long de P de δ. D et les coˆ ts r´ duits.5) 3 e(3) = 0 π(3) = 0 e(4) = -4 π(4) = 0 4 d4 = 4 π(1) = 0 (2. 2. A l’it´ ration 1. 4.2) (1. on s´ lectionne k ∈ E et l ∈ D. Soit P le plus court chemin du nœud k au nœud l. On obtient : u e d = (0. On obtient ainsi π(1) = 0.3) (1. et on calcule le flux maximum que l’on peut faire passer le long du chemin par δ = min{e(k). 2.

4) s1 = 4 π(4) = -3 (1. on s´ lectionne k = 1 et l = 4. rij )= (2. On remet a jour les coˆ ts r´ duits : ` u e 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´ ration.2) π(1) = 0 (0. π(3) = −3. 3} = 2 . 2. 0. Les plus courtes e e distances au nœud k source bas´ es sur les coˆ ts r´ duits et sur le r´ seau r´ siduel e u e e e sont d = (0. e e E et D : E = {1} et D = {4}. π(4) = −4.3: Situation au d´ but de l’it´ ration 2.2) 1 4 e(1) = 2 d4 = 4 (0.3) 3 e(3) = 0 π(3) = -2 Figure 9.2) (0. π(2) = −2. 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.3) ainsi que les ensembles ` e e e(2) = 0 π(2) = -2 2 π (cij . 1.Section 9. On calcule le maximum de flux que l’on peut faire passer le long du chemin δ = min{2.3. R´solution du probl`me de flot a coˆt minimum e e ` u On peut donc augmenter de 2 unit´ s le flux le long des arcs du chemin e f13 = 2 et f34 = 2 111 On remet a jour le r´ seau r´ siduel G(f ) (voir figure 9.3) e(4) = -2 (0. 4. 2.

On veut affecter 4 personnes a 4 postes de ` travail.112 Chapitre 9. ` 1 1 2 2 3 3 4 4 Figure 9. 9. on a la solution optimale. 3 ou 4 et la quatri` me. On d´ termine ainsi l’efficacit´ de e e chaque personne a chaque poste o` elle est susceptible d’ˆ tre affect´ e. Leurs comp´ tences sont telles que la premi` re personne ne peut travailler e e que sur les postes de travail 1 ou 2. ` u e e On peut repr´ senter le probl` me par un r´ seau de transport bipartite o` les e e e u sommets origine d´ signent les personnes et les sommets destination.4 Application au probl` me d’affectation e Illustrons ceci sur l’exemple suivant. sur les postes 3 ou 4. Comme E est vide. les postes.4: Probl` me d’affectation. R´solution du probl`me de transport g´n´ral e e e e On peut donc augmenter de 2 unit´ s le flux le long des arcs du chemin e f12 f13 f23 f24 f34 = = = = = 0+2=2 2+0=2 0+2=2 0+0=0 2+2=4 On remet a jour les ensembles E et D. e . De plus la premi` re e e personne a une efficacit´ double si on la met au premier poste de travail plutˆ t e o qu’au second.4. On peut v´ rifier que : ` e e(1) = e(2) = e(3) = e(4) = 0. la troisi` me e sur les postes 1. e 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. la seconde sur les postes 2 ou 3. Ainsi de suite pour les autres.

8. on met a z´ ro tous les flux ainsi que les fonctions potentielles : ` e π(i) = 0 ∀i et fij = 0 ∀(i. On met a jour les π : ` (0. 5. 3. −12. 11. −8. 0. 0.4.Section 9.5: Probl` me d’affectation : it´ ration 1 e e Initialement. 0. −11. 3. −3) On d´ termine la maximum de flux qui peut passer sur le chemin e δ = min{4. Application au probl`me d’affectation e 113 Nous le compl´ tons le graphique en mettant les temps pour effectuer chacune e des tˆ ches par chacun des candidats ainsi qu’en faisant apparaˆtre une entr´ e unique a ı e et un puits unique. −3. 0. 9). 0. 1.5. 0. 1} = 1 On augmente d’une unit´ le flux le long de P : e f03 = f35 = f59 = 1. On obtient la figure 9. 0 1 0 4 0 0 0 0 0 0 2 0 3 3 15 5 10 8 12 12 7 11 8 0 0 8 6 3 5 0 0 3 4 9 11 15 0 20 4 Figure 9. 12. 1. j) On calcule l’exc` s aux nœuds ainsi que les ensembles E et D : e e(0) = 4 e(9) = −4 E = {0} D = {9} It´ ration 1 : e On s´ lectionne k = 0 et l =9 et on calcule les plus courtes distances a k : e ` (0. 4. 3) Le plus court chemin est P = (0. . 0. 0.

2. R´solution du probl`me de transport g´n´ral e e e e On met a jour les coˆ ts r´ duits : ` u e 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´ seau r´ siduel. 6.114 Chapitre 9. On met a jour les π : ` (0. 0. −5. ` e e ` 0 1 0 4 0 0 0 0 0 0 2 2 3 0 3 0 0 3 4 9 2 2 0 0 0 7 2 8 9 8 0 6 2 5 0 5 5 4 9 Figure 9. 0. 0. 2. 0. e . 2. 9). 0. 1. 0. 0. −8.6.6: Probl` me d’affectation : it´ ration 2 e e It´ ration 2 : e On s´ lectionne k = 0 et l = 9 et on calcule les plus courtes distances a k : e ` (0. 3. −2. Ceci est fait a la figure 9. 5) Le plus court chemin est P = (0. −12. −13. −8) On d´ termine la maximum de flux qui peut passer sur le chemin e δ = min{3. 0. 1} = 1 On augmente d’une unit´ le flux le long de P : f02 = f26 = f69 = 1. 2. 1.

7: Probl` me d’affectation : it´ ration 3 e e It´ ration 3 : e On s´ lectionne k = 0 et l =9 et on calcule les plus courtes distances a k : e ` (0. −14.Section 9. 0. 1. 1. 1. 0. On met a jour les π : ` (0. 2. ` e e ` 0 1 0 4 0 0 0 2 0 2 2 0 0 3 0 4 3 7 5 0 0 8 0 2 0 0 2 7 4 5 2 6 0 5 3 0 5 4 9 Figure 9. 2. Application au probl`me d’affectation e On met a jour les coˆ ts r´ duits : ` u e 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 115 On remet a jour le r´ seau r´ siduel. 3. 1. 2. 0. 5. 1. 1} = 1 On augmente d’une unit´ le flux le long de P : e f01 = f15 = f38 = f89 = 1 f35 = 0 . 0. 5) Le plus court chemin est P = (0. 8. 9). −13. 0. Ceci est fait a la figure 9. −10. −2. 0. −2.4.7. −13) On d´ termine la maximum de flux qui peut passer sur le chemin e δ = min{2. 0. 2. −5.

1. la troisi` me au e e e e quatri` me et la quatri` me au troisi` me poste : e e e x∗ 11 x∗ 22 x∗ 34 x∗ 43 = = = = 1 1 1 1 .8: Probl` me d’affectation : it´ ration 4 e e It´ ration 4 : e On s´ lectionne k = 0 et l =9 et on calcule les plus courtes distances a k : e ` (0. 2. 2. ` e e ` 0 1 0 4 0 0 2 2 0 2 2 0 3 0 3 0 0 1 4 7 0 0 0 0 1 7 2 8 1 0 2 6 2 5 8 3 2 4 9 Figure 9. 1. 7. 1.116 Chapitre 9. la deuxi` me au deuxi` me. Ceci est fait a la figure 9. 0. 1. On augmente d’une unit´ e le flux le long de P : f04 = f47 = f79 = 1 Comme E est vide. on a trouv´ la solution optimale qui consiste donc a affecter e ` la premi` re personne au premier poste. 2. 2) Le plus court chemin est P = (0. 9). 1} = 1. On d´ termine la maximum de flux qui e peut passer sur le chemin δ = min{1. 4. R´solution du probl`me de transport g´n´ral e e e e On met a jour les coˆ ts r´ duits : ` u e 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) =0 = −2 = −2 =0 =0 =0 =0 =0 =0 c37 c38 c47 c48 c59 c69 c79 c89 = = = = = = = = 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´ seau r´ siduel. 2. 2. 2. 1.8.

e (c) Formuler le probl` me de la d´ termination de l’affectation d’efficacit´ e e e globale maximum comme un probl` me affectation (ne pas le r´ soudre). e selon la distribution indiqu´ e au tableau 9. La pharmacie.3: Besoins de m´ dicaments e a maximiser l’efficacit´ totale des lots. Les d´ lais de commande et de livraison sont tels que a e la pharmacie centrale devra compter sur ses propres stocks pour les cinq prochains mois.2). ´ (a) D´ terminez une affectation qui corresponde a la r` gle du premier entr´ e ` e e = premier sorti et calculer son efficacit´ globale. e e 9. Le tableau 9. qui cherche e Mois 1 2 3 4 5 Besoins 3 2 4 1 2 Tableau 9. e (b) D´ terminez une affectation qui corresponde a la r` gle du dernier entr´ e ` e e = premier sorti et calculer son efficacit´ globale. s’interroge sur la s´ quence selon ` e e laquelle elle devra ecouler ses lots.2: Efficacit´ des m´ dicaments e e La pharmacie pr´ voit avoir besoin de 12 lots au cours des 5 prochains mois. Une entreprise de construction doit affecter 4 ouvriers a 4 tˆ ches.1. Entreprise de construction.1 fournit l’´ tat actuel des stocks. e Lot A B C D E F G H Age (mois) 2 1 4 3 2 4 5 2 I 1 J K L 4 5 3 Tableau 9.Section 9.5 Exercices 9. Exercices 117 9. La pharmacie centrale du Mali e doit r´ pondre a une demande d’un m´ dicament rare dont elle d´ tient certains e ` e e stocks d’ˆ ges divers.3. Le tableau 9.1: Stocks de m´ dicaments e Le laboratoire qui fabrique ce m´ dicament a etabli que son efficacit´ va d´ e ´ e e croissant avec le nombre de mois ecoul´ s depuis sa production (voir tableau ´ e 9.2.5. Age (mois) 0 1 2 3 4 5 6 7 8 9 Efficacit´ (%) 100 99 97 94 88 83 81 78 76 75 e Tableau 9.4 indique l’efficacit´ de la personne si elle ` a e . Le probl` me de la pharmacie centrale.

Une barre indique que la personne n’est pas qualifi´ e e ` a e pour la tˆ che. e e e Tˆ che 1 Tˆ che 2 Tˆ che 3 Tˆ che 4 a a a a 45 30 50 55 15 60 25 75 45 35 Ouvrier 1 Ouvrier 2 Ouvrier 3 Ouvrier 4 Tableau 9.118 Chapitre 9.4: Entreprise de construction . Utilisez l’algorithme de plus courts chemins successifs pour a identifier une affectation qui maximise l’efficacit´ g´ n´ rale. R´solution du probl`me de transport g´n´ral e e e e est affect´ e a la tˆ che.

dont la e e ´ r´ solution est triviale. Il va donc d´ terminer son itin´ raire de mani` re a choisir la route la e e e ` plus sˆ re en minimisant la somme des polices d’assurance pour le passage d’´ tat u e en etat. A chaque etape.Chapitre 10 La programmation dynamique. en suivant cette strat´ gie. il a le choix de se diriger vers plusieurs etats. Ensuite. e e e Son point de d´ part et sa destination sont connus. La programmation dynamique a pour but de traiter les mod` les o` une s´ quence e u e optimale de d´ cisions doit etre prise. Son etat de d´ part est l’´ tat e e ´ ´ e e 1 et son etat d’arriv´ e est l’´ tat 10. e ` e En effet.1.1. celui de derni` re etape. ´ e e Le voyageur souscrit a chaque etape une police d’assurance dont le coˆ t refl` te ` ´ u e le degr´ d’ins´ curit´ du voyage. L’id´ e g´ n´ rale des proc´ dures de r´ solution en programmation dynamique e e e e e est la suivante. Elle est largement utilis´ e en planification de e ˆ e la production pour d´ terminer les lancements de production en cas de coˆ ts fixes e u de lancement de production. tir´ de Hillier et Lieberman [10]. Ceux-ci sont indiqu´ s au dessus des arcs a la e e e e ` figure 10. on choisirait le chemin 1 → 2 → 6 → 9 → 10 e 119 . on a repr´ sent´ chaque etat par un cercle. va nous permettre e d’introduire la terminologie employ´ e en programmation dynamique. On part d’un sous probl` me. ` ´ e 10. Il effectue son voyage en quatre e etapes. Il s’agit du e probl` me du voyageur devant traverser l’ouest am´ ricain il y a plus d’un si` cle. ´ Notez d’abord que l’approche tr` s simple qui consiste a choisir a chaque etape e ` ` ´ la police la moins ch` re ne conduit pas a une solution globalement la moins ch` re. A la ´ ´ ´ figure 10.1 Le probl` me du voyageur e Un exemple purement fictif. on etend progressivement e e ` ´ e ´ e e le probl` me en incluant les etapes pr´ c´ dentes et en calculant la politique optimale a chaque etape en se basant sur la politique optimale de l’´ tape suivante. et en proc´ dant a rebours.

trouve la solution e optimale pour cette portion du probl` me. deux types de variables sont associ´ es a chaque e ` etape. Cependant sur e e ce petit exemple. xt ) le coˆ t total de la meilleure strat´ gie pour les etapes u e restantes. e ´ En programmation dynamique. ` e e on elargit d’une unit´ le nombre d’´ tapes a effectuer. Ensuite on elargit progressivement le e ´ e e ` e e probl` me. La variable st indique l’´ tat du syst` me au d´ but de l’´ tape t. Pour le probl` me du voyageur. par exemple la route 1 → ´ ´ e 4 → 6 → 9 → 10 permet un coˆ t total de 11. Ainsi. En effet. La programmation dynamique. Cependant en sacrifiant un peu a la premi` re u ` e etape. e e ı C’est ici qu’intervient la programmation dynamique qui permet de calculer la solution optimale sans faire de l’´ num´ ration explicite. on consid` re le probl` me de fin de voyage. 7 4 2 3 1 4 3 4 4 1 5 7 3 3 3 2 4 6 6 2 5 4 1 8 6 10 3 9 4 3 Figure 10. Pour ce probl` me la solution optimale est evidente : ´ ` e ´ le voyageur doit aller directement a sa destination. on peut gagner aux etapes ult´ rieures.120 Chapitre 10. lorsqu’il e e e n’y a plus qu’une etape a faire. cela devient vite un travail prohibitif. l’´ tat 10. notons st l’´ tat de d´ part de l’´ tape t tandis que xt note la e e e destination de l’´ tape t. u Une autre m´ thode serait d’´ valuer toutes les routes possibles. On peut ensuite d´ duire la ´ e e ` e strat´ gie optimale pour la troisi` me etape en fonction de la strat´ gie optimale pour e e ´ e la derni` re etape. en d´ terminant la nouvelle solution optimale a partir de la pr´ c´ dente. La programmation dynae e mique commence avec une petite portion du probl` me original.1: Probl` me du voyageur e avec un coˆ t total d’assurance de 13. si l’on se trouve au d´ but de l’´ tape t dans l’´ tat du syst` me st et que e e e e . A l’it´ ration suivante. Cette ´ e e e e variable doit contenir toute l’information r´ sultant des choix effectu´ s aux etapes e e ´ ` e pr´ c´ dentes. e e e e dans notre exemple. e ´ On note par ft (st . elles sont d´ j` au nombre de 3 × 3 × 2 = 18 et lorsque le nombre ea d’´ tapes et/ou le nombre d’´ tats croˆt. La variable xt indique la d´ cision strat´ gique prise a l’´ tape t.

le voyageur est dans l’´ tat 5. S’il ` e e ` u choisit l’´ tat 8. il devra u e additionner 4 + 4 = 8. de sorte ` e e que son coˆ t total est de 1 + 3 = 4. ∗ f2 (s2 ). e ´ e e e ∗ s4 x∗ f4 (s4 ) 4 8 9 10 10 3 4 Tableau 10. il e e peut aller a l’´ tape 3 vers l’´ tat 8 ou 9 a un coˆ t respectif de c5. donc x3 = 8. f3 (s3 ).1. qui donne un coˆ t minimum pour le chemin qui reste a parcourir u ` ∗ de f3 (5) = 4.2. xt ) note le coˆ t total de la meilleure strat´ gie pour les etapes restantes si le voyageur est dans l’´ tat st a l’´ tape t et s´ lectionne ´ e ` e e comme etat suivant l’´ tat xt . e ∗ ∗ f1 (s1 ) pour chaque etat possible st a l’´ tape t et utiliser par exemple f2 (s2 ) ´ ` e ∗ pour calculer f1 (s1 ). Notons par x∗ la valeur de t ∗ xt qui minimise ft (st .1 reprend les coˆ ts minimaux u de la derni` re etape ainsi que la d´ cision optimale en fonction de l’´ tat de d´ part. la solution ´ ` requi` re un peu plus de calculs. On a donc que : ft∗ (st ) = min ft (st .1. ˆ u e . Pour t = 4. Le probl`me du voyageur e 121 e e ` e l’on prend xt comme d´ cision strat´ gique a l’´ tape t. e e ´ ` e c’est-` -dire les etats s3 = 6 et s3 = 7 et on obtient les valeurs donn´ es dans la a ´ e table 10. e ´ e la destination optimale peut etre au choix 5 ou 6 puisque le coˆ t total est le mˆ me. ft (st . le coˆ t additionnel qu’il va encourir pour rejoindre sa destination e u ∗ a partir de l’´ tat 8 est donn´ dans la table 10. sa route est enti` rement d´ termin´ e par son etat courant s4 (ici s4 = 8 e e e ´ ou 9) et sa destination finale x4 = 10. On proc` de de mˆ me pour les autres etats possibles a l’´ tape 3. ` c’est-` -dire lorsque le voyageur n’a plus qu’une etape a effectuer pour rejoindre sa a ´ ` destination. La solution pour le probl` me o` il reste trois etapes (t = 2) est obtenue de e u ´ mani` re similaire. il s’agit de f4 (8) = 3.9 = 4. Le tableau 10.8 = 1 ou c5. dans notre exemple. Et donc l’´ tat qu’il va choisir comme destination est l’´ tat e e ∗ 8. Si. par exemple.1: Coˆ ts minimaux de la derni` re etape u e ´ Lorsque le voyageur a encore deux etapes a effectuer (t = 3). Nous allons maintenant appliquer ceci a l’exemple du voyageur. Elle est illustr´ e a la table 10. ´ e ∗ ∗ La programmation dynamique va d´ terminer successivement f4 (s4 ). Pour les etats de d´ part 2 ou 4. Les etats destination sont cette e e ` ´ fois au nombre de trois : il s’agit de x2 = 5. x2 = 6 ou x2 = 7 tandis que les etats ´ de d´ part possibles sont s2 = 2.3. Semblablement. xt ) et ft (st ) la valeur minimum correspondante. s2 = 3 ou s2 = 4.Section 10. s’il choisit l’´ tat 9. xt ) = ft (st . x∗ ) t xt u e Ainsi.

3).3: Coˆ t minimaux de la deuxi` me etape u e ´ Enfin. ´ e e s1 1 x1 = 2 x1 = 3 x1 = 4 x∗ 1 ∗ f1 (s1 ) 2 + 11 = 13 4 + 7 = 11 3 + 8 = 11 3 ou 4 Tableau 10. le probl` me de premi` re etape (t = 1). ∗ x∗ f3 (s3 ) 3 x3 = 8 x3 = 9 1+3=4 4+4=8 6+3=9 3+4=7 3+3=6 3+4=7 8 9 8 4 7 6 Tableau 10.4.4: Coˆ t minimaux de la premi` re etape u e ´ 11 On peut maintenant identifier une politique optimale. la strat´ gie optimale pour s2 = 3 est x∗ = 5 (voir tableau 2 10. Supposons qu’il choisisse e ∗ e x1 = 3. La programmation dynamique.2: Coˆ ts minimaux de la troisi` me etape u e ´ s2 2 3 4 x2 = 5 3+ 4 =7 4+ 4 =8 x2 = 6 2+ 7 =9 1+ 7 =8 x2 = 7 4 + 6 = 10 x∗ 2 5 ∗ f2 (s2 ) 7 + 4 = 11 4 + 7 = 11 6 + 6 = 12 5 ou 6 5 + 6 = 11 5 ou 6 11 7 8 Tableau 10. On obtient les r´ sultats de la table 10.122 s3 5 6 7 Chapitre 10. Pour t = 2.1).2). Une des routes optimales est ` e 4 ∗ donc 1 → 3 → 5 → 8 → 10 donnant un coˆ t total minimum de f1 (1) = 11. le coˆ t minimum e e ´ u de la police optimale est a nouveau donn´ en fonction de l’´ tat destination de ` e e l’´ tape comme la somme du coˆ t de premi` re etape plus le coˆ t minimum des e u e ´ u etapes ult´ rieures. On u peut r´ sumer la solution dans le tableau suivant : e t 1 2 3 4 8 st 1 3 5 x∗ 3 5 8 10 t . On se retrouve en s4 = 8 et ` 3 on choisit x∗ = 10 a l’´ tape 4 (voir tableau 10. Pour t = 1. le voyageur doit donc se diriger initialement vers l’´ tat 3 ou 4. ce qui dans l’´ tape t = 3 conduit a l’´ tat s3 = 5. La strat´ gie optimale pour e ` e e s3 = 5 consiste a choisir x∗ = 8 (voir tableau 10. pour terminer.

e ˆ e e ` e e e A l’´ tape t.2 R´ solution des probl` mes dynamiques e e Nous allons ici r´ sumer la notation utilis´ e en programmation dynamique ainsi e e que la m´ thode de r´ solution. on am` ne le syst` me e e a l’´ tape t + 1 a etre dans l’´ tat st+1 . ` e `ˆ e Etape t Decision strat´ ´ egique st xt s t+1 ft∗(s t+1 ) Etape t+1 Etat : f (s t. l’´ tat initial est caract´ ris´ par st et on prend une d´ cision strat´ gique ´ e e e e e not´ e xt . ea´e e ∗ et donne une valeur optimale pour les etapes ult´ rieures de ft+1 (st+1 ). la politique optimale a d´ j` et´ calcul´ e en t + 1. xt ) = cst . R´solution des probl`mes dynamiques e e 123 10. xt ) Figure 10. e Les probl` mes dynamiques peuvent etre repr´ sent´ s comme a la figure 10.2. En optimisant par rapport a xt . on obtient ` ` ft∗ (st ) = min {ft (st .xt est le coˆ t e u de l’assurance pour aller de st a xt . x∗ ) t On proc` de de mˆ me pour tous les etats possibles st de l’´ tape t et l’on e e ´ e ∗ d´ termine ainsi tous les valeurs optimales ft (st ). dans le cas du voyageur.2. xt )} xt e On note par x∗ la politique optimale pour l’´ tape courante de sorte que l’on a que : t ft∗ (st ) = ft (st . A e e e chaque etape. En d´ cidant la politique xt . xt ) au d´ but de l’´ tape t. on est dans l’´ tat st . e e ´ Rappelons qu’un probl` me dynamique est divis´ en etapes indic´ es par t.Section 10. La d´ cision ´ e e ` ` e e xt donne une certaine contribution a l’objectif qui vient s’ajouter a la pr´ c´ dente pour donner ft (st . la contribution de l’´ tape cst . e ` . e e ∗ ft (st .2: R´ solution des probl` mes dynamiques e e Du point de vue de l’objectif. La proc´ dure peut alors etre e e ˆ continu´ e a rebours.xt + ft+1 (xt ) Par exemple.

3 Un probl` me d’affectation de ressources rares e Nous illustrons le fait que le champs d’application de la m´ thode de r´ solution e e est tr` s large sur un deuxi` me exemple egalement tir´ de Hillier et Lieberman e e ´ e [10] : il s’agit du probl` me de l’organisation mondiale de la sant´ .5: Milliers d’ann´ es-homme suppl´ mentaires e e Bien qu’il n’y ait pas de succession temporelle. La programmation dynamique. on note par ft (st . On suppose e e que l’OMS dispose de 5 equipes m´ dicales a affecter a 3 pays pour mener a ´ e ` ` ` bien une campagne de vaccination. Si. Celui-ci est li´ a st par la e e e e` relation de r´ currence suivante : e st+1 = st − xt . On suppose que e e chaque pays doit b´ n´ ficier d’au moins une equipe. e e e Notons pt (xt ) la mesure de l’efficacit´ de l’allocation de xt equipes m´ dicales e ´ e au pays t. On a donc identifi´ les etapes. La mesure de l’efficacit´ est donn´ e en terme d’ann´ es-homme e e e de vie suppl´ mentaire. quelle est l’information n´ ´ e cessaire a une etape pour pouvoir d´ terminer la politique optimale ? Il s’agit ` ´ e simplement du nombre d’´ quipes m´ dicales qui restent disponibles. e ´ Comment identifier les etats ? Autrement dit. on peut imaginer que les trois etapes d’un processus dynamique consistent en l’affectation successive aux trois ´ pays puisque lorsqu’une equipe est affect´ e a un pays. Ces donn´ es sont reprises au tableau 10. Notons st le e e nombre d’´ quipes encore disponibles au d´ but de l’´ tape t. L’OMS doit d´ terminer combien d’´ quipes e e envoyer dans chacun des trois pays de mani` re a maximiser l’efficacit´ g´ n´ rale e ` e e e de l’affectation. x x t t .5. xt ) = max pt (xt ) + ft+1 (st − xt ) . 10. elle n’est plus disponible ´ e ` pour les autres pays. e e ´ Nombre d’´ quipes Pays 1 Pays 2 Pays 3 e 1 45 20 50 2 70 45 70 3 90 75 80 Tableau 10. ∗ ∗ e ` La relation de r´ currence liant fn et fn+1 s’´ crit quant a elle comme suit : e ∗ ft∗ (st ) = max ft (st . xt ) la contribution a e e ` l’objectif des etapes ult´ rieures a t et de l’´ tape t si l’on est dans l’´ tat st et que ´ e ` e e l’on prend la d´ cision xt . on peut ecrire : e ´ ∗ ft (st . comme pr´ c´ demment. xt ) = pt (xt ) + ft+1 (st+1 ) e e ´ avec pt (xt ) le b´ n´ fice pour le pays t de recevoir xt equipes et st+1 le nombre d’´ quipes encore disponibles au d´ but de l’´ tape t + 1.124 Chapitre 10.

Le d´ tail des calculs est donn´ au tableau 10.3.8: Calculs de l’´ tape 1 e La solution optimale est donc x∗ = 1 qui donne s2 = 5 − 1 = 4 pour la 1 deuxi` me etape ou encore x∗ = 3. il faut ajouter ceux des etapes suivantes e ` e e ´ avec s2 = s1 − x1 . au gain de l’´ tape.Section 10. A la derni` re etape.8. e e ∗ s1 x1 = 1 x1 = 2 x1 = 3 x∗ f1 (s1 ) 1 5 45 + 125 = 170 70 + 95 = 165 90 + 70 = 160 1 170 Tableau 10.7: Calculs de l’´ tape 2 e De mˆ me a l’´ tape 1. Le d´ tail des calculs est donn´ au tableau 10. au gain de l’´ tape. e e e ∗ s2 x2 = 1 x2 = 2 x2 = 3 x∗ f2 (s2 ) 2 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. on a int´ rˆ t a affecter toutes les equipes encore e ´ ee ` ´ disponibles (voir tableau 10. il faut ajouter le gain r´ sultant pour e ´ e e l’´ tape 3 avec s3 = s2 − x2 . Un probl`me d’affectation de ressources rares e 125 A l’´ tape t = 3. les etats possibles vont de 1 (il faut au moins une equipe pour e ´ ´ le pays 3) jusqu’` 3 (on a au moins affect´ une equipe au pays 1 et une equipe a e ´ ´ au pays 2). A la deuxi` me etape.7.6).6: Calculs de l’´ tape 3 e A l’´ tape 2. On peut e 3 r´ sumer la solution dans le tableau suivant : e t 1 2 3 st 5 4 1 x∗ 1 3 1 t . ce qui donne un gain de 170 000 hommes-ann´ es. ce qui donne s3 = 4 − 3 = 1 pour l’´ tape 3 e ´ e 2 de sorte que x∗ = 1. ∗ s3 x∗ f3 (s3 ) 3 1 1 50 2 2 70 3 3 80 Tableau 10. les etats possibles vont de 2 (il faut au moins une equipe pour le e ´ ´ pays 2 et une equipe pour le pays 3) a 4 (on a au moins attribu´ une equipe au pays ´ ` e ´ 1).

` e On d´ finit la fonction e ft (st . Le coˆ t fixe de lancement de la proe e e u duction est de 150. Nous allons tout d’abord formuler le probl` me en un probl` me de proe e grammation dynamique. Pour cela. d’un coˆ t de e u u e u possession du stock pendant le mois t ainsi que du coˆ t des etapes ult´ rieures : u ´ e ∗ ft (st . La demande pr´ visionnelle de fin de mois d’un composant est donn´ e au tae e bleau 10.9: Demande pr´ visionnelle et capacit´ de production e e une capacit´ de stockage limit´ e a 2 unit´ s. Le coˆ t u e u est de 200 en heures normales. Le d´ lai de fabrication est n´ gligeable. d´ finissons la variable d’´ tat de la p´ riode e e e t suivante : st = stock au d´ but de la p´ riode t. Le coˆ t direct d´ pend de la main d’œuvre disponible. il faut satisfaire la demande de fin de mois. On s’interdit toute e e e e rupture de stock. La fabrication de ce composant n´ cessite un certain nombre de r´ glages e e ind´ pendants du nombre d’unit´ s fabriqu´ es.126 Chapitre 10. xt ) = cpt (xt ) + cs st + ft+1 (st + xt − dt ) .9. xt ) comme etant le coˆ t de la meilleure planification pour les p´ riodes restantes si on ´ u e est dans l’´ tat st au d´ but de la p´ riode t et que l’on d´ cide de produire xt a la e e e e ` p´ riode t. La programmation dynamique. Ce coˆ t est la somme du coˆ t de production de l’´ tape t. e e D´ finissons aussi la variable de d´ cision de la p´ riode t suivante : e e e xt = production a la p´ riode t. Le coˆ t de stockage est de 10 par e e ` e u unit´ stock´ e par mois. Autrement dit. On e P´ riode t e 1 2 3 4 5 3 3 3 3 3 3 4 2 4 Capacit´ de production a 200 2 2 e ` Capacit´ de production a 250 3 3 e ` Demande pr´ visionnelle e 2 1 Tableau 10. Le tableau 10.9 e donne la production maximale en heures normales et heures suppl´ mentaires. de 250 en heures suppl´ mentaires.4 Application a la planification de la production. ` Nous allons maintenant voir comment la programmation dynamique permet de r´ soudre des probl` mes de planification de la production en pr´ sence de coˆ ts de e e e u production non convexes. Illustrons ceci sur un exemple. 10.

Application a la planification de la production.4. et d’un coˆ t ` u direct de main d’œuvre qui est de 200 par unit´ produite en heures normales. Ce dernier est la somme d’un coˆ t e u ` e u fixe de lancement de 150. La fonction u cpt (xt ) d´ note le coˆ t de production a l’´ tape t. cp5 (x5 ) =  150 + 200x5 150 + 600 + 250(x5 − 3) si x5 = 4. ` ´ Nous allons maintenant r´ soudre le probl` me par la programmation dynae e mique. u La capacit´ de stockage est limit´ e a 2 unit´ s. cp 5(x5 ) 1500 1250 250 1000 750 550 350 350 1 2 3 4 5 6 x5 200 Figure 10. 2 ou 3.Section 10.3 qui illustre la fonction de coˆ t pour t = 5 : ` u             0 si x5 = 0.3: Coˆ t non convexe. Remarquez qu’en pr´ sence de e e e coˆ t de lancement le cout de production n’est pas convexe. on a d5 = 4.9. si x5 = 1. Ce qui limitera a trois les etats e e ` e ` ´ du monde possibles a chaque etape. ` 127 e e o` dt note la demande pr´ visionnelle qui est donn´ e au tableau 10. a payer pour autant qu’il y ait production. de e 250 par unit´ produite en heures suppl´ mentaires. Ceci peut etre v´ rifi´ u ˆ ˆ e e a la figure 10. Ce qui explique qu’il faut au moins produire e 4 unit´ s si s5 = 0 mais pas plus de 6 sinon le stock final sera sup´ rieur a deux e e ` . A l’´ tape 5. 5 ou 6.

le coˆ t e u e u des etapes ult´ rieures.550 On obtient le tableau de coˆ ts suivant : u ∗ s4 x4 = 0 x4 = 1 x4 = 2 x4 = 3 x4 = 4 x∗ f4 (s4 ) 4 0 1 2 − − 1.500 − − 4 3 2 1.320 1.000 si s5 = 0 et x5 = 4 r´ sulte du seul coˆ t de production u e u qui se calcule comme suit : 150 + 3 × 200 + 250 = 1000.270 2.000 1.550 1.020 A l’´ tape 3. Ainsi. dans le cas o` s4 = 0 et x4 = 2. on a d4 = 2.130 1.040 . Le coˆ t de 760 si s5 = 1 et x5 = 3 r´ sulte de la somme du coˆ t de stockage d’une u e u unit´ pendant un mois et du coˆ t de production des trois unit´ s : e u e 1 × 10 + 150 + 3 × 200 = 760. La programmation dynamique.250 1.020 − 1.128 Chapitre 10.510 1. On d´ termine semblablement le tableau de coˆ ts e e u suivant : ∗ s3 x3 = 2 x3 = 3 x3 = 4 x3 = 5 x3 = 6 x∗ f3 (s3 ) 3 0 1 2 − − 2.140 1. De plus la capacit´ de production est limit´ e a six unit´ s. on a d3 = 4.510 2.330 − 1.000 760 570 Par exemple le coˆ t de 1.090 2. unit´ s. x4 ) = cp4 (x4 ) + f5 (s4 + x4 − d4 ) = (150 + 400) + 1.260 − 1.080 − 2.020 1.330 2.320 1.280 − 2. A l’´ tape 4.270 2.510 2.040 2. On obtient les e e e ` e coˆ ts suivants des diff´ rentes strat´ gies : u e e ∗ s5 x5 = 2 x5 = 3 x5 = 4 x5 = 5 x5 = 6 x∗ f5 (s5 ) 5 0 1 2 − − 570 − 760 770 1. le coˆ t correspond ´ e u u a l’application de la formule : ` ∗ f4 (s4 .510 1.360 1. On ajoute au coˆ t de production de l’´ tape.570 2.520 − − 4 3 4 2.570 − − 3 2 0 1.010 1.000 = 1.

520 2. La strat´ gie optimale e e est dans ce cas de produire x4 = 3.630 2. en effet. On a une capacit´ de production a 200 limit´ e a deux e unit´ s. soit une unit´ de plus que la demande. Application a la planification de la production.320 3.290 2. La strat´ gie optimale est de produire x3 = 4.4.820 2. On se retrouve avec un stock e initial s3 = 0. La strat´ gie optimale pour la deuxi` me e e p´ riode est dans ce cas de ne produire rien du tout.840 − − 2 0 0 2.820 2.290 A l’´ tape 1. on a pr´ f´ r´ ne pas produire la seule unit´ dee eee e mand´ e car une unit´ en premi` re etape mˆ me en heures suppl´ mentaires et avec e e e ´ e e un coˆ t de stockage revient mois cher (260) qu’une seule unit´ en heure normale u e a la p´ riode 2 (350).410 2.340 3 3. la demande est de 2 et on a le tableau de coˆ ts suivant : e u ∗ s1 x1 = 2 x1 = 3 x1 = 4 x∗ f1 (s1 ) 1 0 3. On obtient le tableau de coˆ ts suivant : e u ∗ s2 x2 = 0 x2 = 1 x2 = 2 x2 = 3 x∗ f2 (s2 ) 2 0 1 2 − 2.600 − 2.860 2.520 2. on produit une unit´ de ` e e e plus que la demande pour eviter de produire a 250 en p´ riode 5 la quatri` me unit´ ´ ` e e e demand´ e cette p´ riode. ` 129 e ` e ` A l’´ tape 2. la strat´ gie optimale est de produire 3. e e . En e premi` re etape. Il y a. On se e 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∗ 3 0 4 3 3 t dt 2 1 4 2 4 Remarquez qu’en p´ riode 2. Remarquez aussi qu’en p´ riode 4. on e ´ e ´ se retrouve avec un stock initial s2 = 1. c’est-` -dire la demande e a de la p´ riode. On se retrouve avec un stock initial s4 = 0. La demande etant de 2. une unit´ disponible a 200 (+ 10 de coˆ t e e e ` u de stockage) au mois pr´ c´ dent.320 On peut ensuite d´ terminer la politique optimale en partant de s1 = 0. on a d2 = 1.370 3.Section 10.

` (c) Donner le plan optimal de production et de stockage. La capacit´ de stockage est limit´ e a deux e e e ` moteurs et le coˆ t unitaire hebdomadaire de stockage est de 50 F.2. Un editeur de livres educatifs doit d´ cider du nombre de ´ ´ e vendeurs qu’il envoie dans chacune des r´ gions du pays pour maximiser le e nombre de ventes.1. u (a) Formuler le probl` me de planification comme un probl` me dynamique. e e (b) Sachant qu’au d´ but de semaine 13. e e d´ terminer le plan de production optimal du moteur M200 pour les semaines 12 a 15. sont e ` e ` les suivantes : P´ riode e 13 14 15 16 Besoins totaux 4 5 2 3 La fabrication du moteur M 200 demande une semaine et le coˆ t de lancement u dans l’atelier moteurs est estim´ a 500 F. les commandes a honorer pour les p´ riodes 13 a 16. Le tableau qui suit donne l’augmentation du nombre de ventes dans chaque r´ gion en fonction du nombre de vendeurs envoy´ s. e e 10. Ventes de livres.130 Chapitre 10. Le coˆ t variable unitaire est de 300 e` u F pour les trois premi` res unit´ s produites au cours d’une semaine et de e e 400 F pour les unit´ s suivantes. il ne reste aucun M200 en stock. Au d´ but de la e douzi` me semaine. Plan de production hebdomadaire optimal. Une soci´ t´ de construction ee automobile doit planifier la production du moteur M200.5 Exercices 10. e e Nombre de vendeurs R´ gion 1 R´ gion 2 R´ gion 3 e e e 1 4 3 5 2 6 6 7 3 9 8 12 4 11 10 12 Il y a 6 vendeurs mais il est d´ cid´ d’en envoyer au mois un dans chaque e e r´ gion. . 10. La programmation dynamique. Formuler et r´ soudre par la programmation dynamique.

m hk (x) = 0. cela donnera un terme non lin´ aire dans l’objectif : e max z = m1 (x1 )x1 = 550x1 + 2x2 . . . gi (x) ≤ 0. c’est-` -dire une contribution unitaire au profit e a s’accroissant avec la quantit´ produite. Il s’agit donc de la g´ n´ ralisation e e ` e e au cas non lin´ aire du probl` me classique de la programmation lin´ aire : e e e max cx s.p u o` f (x). si la marge unitaire est de la e forme m1 (x1 ) = 550 + 2x1 . et hk (x). . . k = 1.1 Introduction On parle de mod` le d’optimisation non lin´ aire lorsque l’on doit maximiser ou e e minimiser une fonction sous contraintes et que la fonction objectif. .m. i = 1. pi et pj : e 2 2 fij = Cij p2 − p2 i j 131 .p sont des fonctions continˆ ment u diff´ renciables d´ finies sur Rn a valeurs dans R. . k = 1.q.Chapitre 11 Les mod` les non lin´ aires e e 11.c. Par exemple. not´ fij .q. ou au moins une contrainte est non lin´ aire. on peut citer la relation entre le flot de e gaz entre les nœuds i et j. on peut citer le cas d’un e rendement croissant d’´ chelle. i = 1. . Dans cette partie du cours.c. gi (x). et les pressions en ces points. . . . Ax ≤ b x ≥ 0 Comme exemple de fonction objectif non lin´ aire. nous allons donc nous e attacher a la r´ solution du probl` me suivant : ` e e max f (x)      s. 1 Comme exemple de contrainte non lin´ aire. . .

En programmation lin´ aire. e e e e Beaucoup d’algorithmes de programmation non lin´ aire exploitent directement e les conditions d’optimalit´ . Nous verrons au e e chapitre suivant les algorithmes de r´ solution. Les mod`les non lin´aires e e 11. cette propri´ t´ e e ee n’est plus v´ rifi´ e en g´ n´ ral. c’est-` -dire les conditions v´ rifi´ es a la solution optie a e e ` male du probl` me. on peut avoir un optimum local e e e e diff´ rent de l’optimum global.132 Chapitre 11. il faudra prendre en compte ` e e explicitement le caract` re non lin´ aire des probl` mes pour les r´ soudre. en g´ n´ ral.2).1). e e e Avant de passer a l’´ nonc´ de ces conditions. Autrement dit. e e x2 cTx P∗ x1 Figure 11. e e D` s que l’objectif ou les contraintes deviennent non lin´ aires. Ce probl` me ne se produit cependant pas pour e e les probl` mes convexes.2 Difficult´ de r´ solution des probl` mes non lin´ aires e e e e Si certains probl` mes particuliers d’optimisation non lin´ aire peuvent se ramener a e e ` la r´ solution d’une suite de probl` mes lin´ aires (comme les probl` mes s´ parables e e e e e que nous traiteront a la section 12. Nous verrons ensuite a la section 11. Nous verrons a la section 11. on peut toujours choisir e e ˆ un sommet sur celle-ci. e `´ Ces conditions sont les extensions a Rn des conditions bien connues d’annulation ` de la d´ riv´ e premi` re pour une fonction d’une variable dans R. e e mˆ me si toute une arˆ te du polygone peut etre optimale.4 la notion de probl` mes e ` e convexes.1: Probl` me lin´ aire. e . Nous allons donc d’abord nous attacher a etablir ces conditions. la solution optimale est toujours en un sommet de la r´ gion r´ alisable (cfr figure 11.5 les tr` s importantes conditions ` e n´ cessaires d’optimalit´ : les conditions de Kuhn et Tucker. Pire encore. soulignons quelques diff´ rences ` e e e fondamentales avec la programmation lin´ aire. la e e solution optimale est toujours obtenue sur la fronti` re du domaine r´ alisable et.

e e e x2 6 4 2 2 4 x1 3x 1 + 5x 2 = 36 x1 = 4 (2.q. 6) Figure 11.3 Diff´ rence avec la programmation lin´ aire e e Les mod` les non lin´ aires sont beaucoup plus difficiles a r´ soudre en g´ n´ ral que e e ` e e e les mod` les lin´ aires. e Tout d’abord.2 que la seule solution optimale n’est pas situ´ en un point ` e extrˆ me de la r´ gion r´ alisable.2: Solution non extrˆ me e Mais la solution ne doit mˆ me pas etre situ´ e sur la fronti` re de la r´ gion. x2 ≤ ≥ 4 0 s. On peut e e e voir a la figure 11. Ainsi. e ˆ e e e on peut avoir une solution optimale int´ rieure.c. remarquons que e x2 x2 1 2 + ≤1 (4. 9x2 + 5x2 ≤ 216 1 2 Pour pouvoir en donner une repr´ sentation graphique.Section 11. on peut avoir une solution e e e optimale non extrˆ me. Ceci est illustr´ par l’exemple e e . 5)2 est l’´ quation d’une surface bord´ e par une ellipse centr´ e en l’origine. contrairement a la programmation lin´ aire o` la solution optimale ` e u est toujours situ´ e en un sommet de la r´ gion r´ alisable. Nous allons souligner par quelques exemples les diff´ rences e e e avec la programmation lin´ aire. 9)2 (6. Ceci est illustr´ par l’exemple suivant : e e max z = 3 x1 + 5 x2          x1 x1 .3. Diff´rence avec la programmation lin´aire e e 133 11.

strictement int´ rieur a la r´ gion.3 o` l’on peut voir que la e e ` u solution optimale est strictement int´ rieure. 3) 2 4 6 x1 Figure 11.3). a e ` e x2 8 6 4 2 0 z = 16 z=9 z=4 z=1 z=0 (3.c. ≤ 49 Pour pouvoir tracer sa repr´ sentation graphique. 2x2 ≤ 12 3x1 + 2x2 ≤ 18 x1 . x2 x2 2 ≤ ≥ 4 0 s. x2 ≥ 0 dont la repr´ sentation graphique est donn´ e a la figure 11.q. remarquons que e (x1 − 4)2 + (x2 − 7)2 ≥ 16 .c. En effet. les courbes d’isovaleurs de e la fonction objectif forment des cercles concentriques et on a int´ rˆ t a se situer au ee ` centre de ces cercles. Illustrons ceci sur l’exemple suivant : max z = 3x1 + 5x2          x1 8x1 − x1 x2 1 + 14x2 − . Les mod`les non lin´aires e e min z = (x1 − 3)2 + (x2 − 3)2                x1 ≤ 4 s.q. c’est-` -dire au point (3.3: Solution int´ rieure e Mais la principale difficult´ de la programmation non lin´ aire est que l’on peut e e avoir des optimaux locaux qui ne sont pas globaux.134 suivant : Chapitre 11.

7).3) minimum local e ` u non global ! x2 (0.3.4: Minimum local C’est la une des plus grandes difficult´ s des probl` mes non convexes : on e e peut avoir des optimaux locaux qui ne sont pas globaux. Diff´rence avec la programmation lin´aire e e 135 correspond au plan moins un cercle de rayon 4 centr´ en (4. 7) 6 4 2 z = 3x 1 + 5x 2 = 35 (4.4 o` l’on peut voir que (4. 2]. 3) z = 3x 1 + 5x 2 = 27 2 4 x1 Figure 11. e Remarquez que les logiciels commerciaux fournissent toujours un minimum local. on a un minimum qui n’est pas global. Remarquez que le probl` me peut egalement se produire si la fonction objectif que l’on minimise est e ´ non convexe.5: Minimum local non global La d´ termination de tous les optimaux locaux est un probl` me tr` s d´ licat en e e e e g´ n´ ral. lorsqu’un optimum local est atteint. Prenons l’exemple illustr´ a la figure 11. il existe une classe de probl` mes pour lesquels e ce probl` me ne se produit pas dans le sens que tous les optimums locaux sont e des optimum globaux. dans quelle direction faut-il e e continuer la recherche ? Cependant. . En effet.Section 11. Il s’agit des probl` mes convexes (voir section suivante). y -1 2 x -1 -4 Figure 11. Au point x = −1.5 de la minimisation de la e` fonction concave y = −x2 sur l’intervalle [−1. La repr´ sentation e e graphique est donn´ e a la figure 11.

la diff´ rence des ensembles non convexes illustr´ s a la figure 11.1 L’ensemble S ⊂ Rn est convexe.7: Ensembles non convexes. tout le segment [P. Remarquez egalement que la d´ finition e ` ´ e .7.6. encore appel´ epigraphe : e´ S = {(x.6: Ensembles convexes.2 Une fonction f est convexe si l’ensemble des points situ´ au dessus e e de son graphe.8 pour l’exemple de la fonction x2 o` l’on voit que e` l’´ pigraphe est bien un ensemble convexe. Ce cas est illustr´ a la figure 11. La d´ finition de fonction convexe se e e ram` ne donc a celle d’ensemble convexe.4 Les probl` mes convexes e D´ finition 11. y) ∈ Rn × R|y ≥ f (x)} . Les mod`les non lin´aires e e 11. Q] est contenu dans l’ensemble S. D´ finition 11. u Ceci est illustr´ a la figure 11. est un ensemble convexe.136 Chapitre 11. Ces ensembles n’ont pas de partie rentrante a e` ` Q P P Q Figure 11. e e ` Q P P Q Figure 11. si et seulement si quels que e soient les deux points P et Q pris dans l’ensemble S.

on peut donc citer les probl` mes e e avec d´ s´ conomie d’´ chelle puisqu’il s’agit de la maximisation d’une fonction ee e e concave. nous pouvons d´ finir la notion de probl` me convexe : e e D´ finition 11.3 Une fonction f est concave si la fonction −f est convexe. e Un exemple de fonction concave est illustr´ e a la figure 11. a savoir que la corde est toujours situ´ e au dessus du graphe se d´ duit directement du fait que l’´ pigraphe constitue un e e ensemble convexe. .8: Exemple de fonction convexe ` e classique pour les fonctions de R dans R.Section 11.4.9: Exemple de fonction concave Maintenant que nous avons d´ fini les notions d’ensemble convexe et de fonction e convexe. soit de e e la maximisation d’une fonction concave sur une r´ gion r´ alisable convexe. e ` y x f (x) Figure 11.9. on peut citer les ´ probl` mes avec economie d’´ chelle puisqu’il s’agit de probl` mes de maximisation e e e d’une fonction convexe. D´ finition 11. Les probl`mes convexes e y f (x) 137 x Figure 11. e e Comme exemple de probl` mes convexes. Et comme exemple de probl` mes non convexes.4 Un programme math´ matique est dit convexe s’il s’agit de la e e minimisation d’une fonction convexe sur une r´ gion r´ alisable convexe.

2. on a besoin qu’une condition de r´ gu´ e e larit´ soit satisfaite.m gk (x) ≤ 0. 2.138 Chapitre 11. seules les e contraintes actives a l’optimum importent pour le probl` me. . k = 1. e e e Il d´ coule imm´ diatement de cette d´ finition que hi (x) = 0 sont actives pour tout e e e i. hi (x). Les mod`les non lin´aires e e 11. . i = 1.5 Une in´ galit´ gk (x) ≤ 0 est active en x si gk (x) = 0. . . 2.p sont des fonctions de Rn u dans R. Le concept de con` x∗ g2 (x) = 0 g1 (x) = 0 r´ egion r´ ealisable g3 (x) = 0 Figure 11. . Par exemple.m et gk (x).10. On pourrait r´ soudre ` e e le probl` me sans les autres et obtenir la mˆ me solution : ce sont uniquement les e e contraintes actives qui d´ terminent la solution optimale.q. f (x) hi (x) = 0. . . tout comme en programmation lin´ aire. a la figure 11.p (11. Une notion importante en programmation non lin´ aire est celle de contraintes e actives : D´ finition 11. k = 1. .10: Concept de contraintes actives trainte active est important car. . . . e Pour ecrire les conditions d’optimalit´ .c.1) o` f (x). seule g2 est active en x∗ .5 Conditions de Kuhn et Tucker Nous consid´ rons le probl` me de minimisation sous contraintes suivant : e e min s. . e . i = 1. 2.

6 D´ finition de point r´ gulier des contraintes.1) de R2 sont lin´ airement ind´ pendants car il e e est impossible d’´ crire l’un comme un multiple de l’autre. e e ` La d´ riv´ e partielle par rapport a la variable xj .0) et (0. 2x1 + 2x2 − 10] D´ finition 11. x2 ) = 2x2 + 2x1 x2 + x2 − 10x1 − 10x2 1 2 Les d´ riv´ es partielles par rapport a chacune des variables se calculent en consie e ` d´ rant les autres variables comme des constantes : e ∂f /∂x1 = 4x1 + 2x2 − 10 ∂f /∂x2 = 2x1 + 2x2 − 10 De sorte que le gradient peut s’´ crire ici comme suit : e ∇f (x) = [4x1 + 2x2 − 10. ∂x1 ∂x2 ∂xn ∂f (x) . C’est-` -dire une fonction continue dont ˆ e a ´ les d´ riv´ es partielles premi` res sont egalement continues. Conditions de Kuhn et Tucker 139 D´ finition 11.8 Notion d’ind´ pendance de vecteurs. e ` D´ finition 11.2) si les gradients des contraintes actives sont lin´ airement ind´ pendants.. Par contre les vecteurs e .2) e Alors x∗ est dit r´ gulier pour les contraintes (11. e e Cette d´ finition n´ cessite quelques rappels math´ matiques concernant la notion e e e de gradient et la notion d’ind´ pendance de vecteurs.. On dit que m vecteurs sont e e ˆ lin´ airement ind´ pendants si aucun ne peut etre exprim´ comme une combinaison e e e lin´ aire des autres. Soit x∗ satisfaisant e e e les contraintes : h(x∗ ) = 0. Soit f une fonction a valeurs r´ elles d´ finie e e e n sur R continument diff´ renciable en x. not´ e e e e Illustrons cette notion par un exemple. Consid´ rons la fonction suivante : e f (x1 . g(x∗ ) ≤ 0 (11. .. . On d´ finit le gradient e e e e ´ comme etant le vecteur ligne constitu´ des d´ riv´ es partielles : e e e ∇f (x) = ∂f (x) ∂f (x) ∂f (x) .5.Section 11.7 Notion de gradient. est obtenue en ∂xj d´ rivant f en consid´ rant que les autres variables que xj sont des constantes. les vecteurs (1. e Ainsi.

On e remarque que pr´ cis´ ment les conditions de Kuhn et Tucker (11. Alors il existe des multiplicateurs e λ ∈ Rm et µ ∈ Rp tels que ∇f (x∗ ) + m i=1 λi ∇hi (x∗ ) + p k=1 µk ∇gk (x∗ ) = 0 (11.1 Conditions n´ cessaires de Kuhn-Tucker.p Les conditions (11. (11. son multiplicateur µk doit etre nul.3) s. 0) + 3 × (0. ∀k = 1.3) e e ´ comme une combinaison lin´ aire des deux autres.c. on passe d’un probl` me d’optimisation sous contraintes e a un probl` me d’optimisation sans contrainte. 2x2 + 2x1 x2 + x2 − 10x1 − 10x2 1 2 x2 + x2 ≤ 5 1 2 3x1 + x2 ≤ 6 .p (11. λ.0) et (0. . . . λ∗ . En effet : e (2. µ∗ ) = 0. Les conditions d’optimalit´ pour ` e e une fonction d´ finie sur Rn sont simplement l’annulation de son gradient. (1. 3) = 2 × (1.3). g(x) ≤ 0 et supposons x∗ r´ gulier pour les contraintes. nous allons les r´ crire e au moyen de la fonction de Lagrange. le membre de gauche de chaque contrainte d’in´ galit´ e e ` (gk (x) ≤ 0) par son multiplicateur µk et en additionnant le tout a la fonction objectif : m p L(x. .q. ∀k = 1.5) sont les conditions de compl´ mentarit´ disant que si e e une contrainte n’est pas active. Illustrons ceci sur l’exemple suivant : min s.140 Chapitre 11. µ) = f (x) + i=1 λi hi (x) + k=1 µk gk (x) Remarquez que ce faisant.q. Pour bien ˆ comprendre la signification pratique des conditions (11. . Les mod`les non lin´aires e e (2.4) µk gk (x∗ ) = 0. . 1). La fonction de Lagrange est obtenue en multipliant le membre de gauche de chaque contrainte d’´ galit´ (hi (x) = 0) e e par un multiplicateur λi .c.4) ne sont rien e e d’autre que l’annulation du gradient par rapport a x du gradient du Lagrangien : ` ∇x L(x∗ . On peut alors ecrire les tr` s importantes conditions n´ cessaires suivantes : ´ e e Th´ or` me 11.4).5) µk ≥ 0. Soit x∗ un minimum e e e local pour le probl` me e min f (x) h(x) = 0.1) ne sont pas lin´ airement ind´ pendants car on peut ecrire (2.

Nous pr´ senterons au chapitre suivant les algorithmes de r´ solution. 2. la r´ solution de ces conditions permet de d´ terminer le point optimum. 0. cette solution satisfait les conditions n´ cessaires de Kuhn e et Tucker. supposons la premi` re contrainte active. µ) = 2x2 + 2x1 x2 + x2 − 10x1 − 10x2 1 2 2 2 +µ1 (x1 + x2 − 5) +µ2 (3x1 + x2 − 6) Les conditions de Kuhn et Tucker s’´ crivent ici simplement : e ∂L/∂x1 = 4x1 + 2x2 − 10 + 2µ1 x1 + 3µ2 ∂L/∂x2 = 2x1 + 2x2 − 10 + 2µ1 x2 + µ2 µ1 g1 = µ1 (x2 + x2 − 5) 1 2 µ2 g2 = µ2 (3x1 + x2 − 6) µ1 µ2 = = = = ≥ ≥ 0 0 0 0 0 0 141 Parfois.Section 11. Enfin. 1. Conditions de Kuhn et Tucker Le lagrangien s’´ crit de la mani` re suivante : e e L(x. et la seconde inactive (µ2 = 0). Proposition 11. on peut montrer la proposition suivante. les conditions n´ cese e e ` saires sont aussi suffisantes pour montrer que l’on est a l’optimum.1 Si le probl` me est un probl` me convexe. e e Ainsi. de plus. λ.5. e e . µ1 ≥ 0. Comme. e Les conditions se r´ duisent a : e ` 4x1 + 2x2 − 10 + 2µ1 x1 = 0 2x1 + 2x2 − 10 + 2µ1 x2 = 0 x2 + x2 = 5 1 2 dont la solution est donn´ e par : e x∗ 1 x∗ 2 µ1 µ2 = = = = 1.

(b) Ecrire les conditions de Kuhn et Tucker pour ce probl` me et v´ rifier si e e la solution (x. ee ´ ` (a) Ecrire le programme quadratique correspondant. z) tout en s’imposant un rendement esp´ r´ du portefeuille au moins egal a 12 %. z) est mesur´ a e` partir de la matrice de variance-covariance des rendements des trois titres : 3 1 −0. z) = (20. e e (b) D´ terminer graphiquement la solution optimale.142 Chapitre 11. Le risque V (x. 16. On suppose connues leurs e moyennes respectives : 30%.    . 32. On consid` re la maximisation de la fonction e 14x − x2 + 6y − y 2 + 7 sous les contraintes x + y ≤ 2 et x + 2y ≤ 3. Un epargnant dispose de 100 francs a investir ´ ` en bourse.4 1 z On veut minimiser le risque V (x.4   y  V (x. y. y. z)    −0. Conditions de Kuhn et Tucker. (a) Ecrire les conditions n´ cessaires d’optimalit´ de Kuhn et Tucker. Son portefeuille d’actions peut comporter trois titres dont on veut d´ terminer les parts optimales x. 877) les satisfait.5 −0. 091. y et z. 20% et 8 %. Les rendements rX . z) = (x.5 x  1 2 −0. rY et rZ e de ces trois titres sont des variables al´ atoires.1. 712. e 11.2. Minimisation des risques.6 Exercices 11. e (c) V´ rifiez que cette solution satisfait les conditions de Kuhn et Tucker. y. y. Les mod`les non lin´aires e e 11. y.

p o` au moins une des fonctions est non lin´ aire. En g´ n´ ral. e 143 . . Nous avons egalement vu les u e ´ conditions de Kuhn et Tucker qui sont n´ cessairement v´ rifi´ es a l’optimum e e e ` d’un tel probl` me. Comme nous allons le voir a la section 12. . e Nous allons maintenant voir deux cas particuliers de probl` mes non lin´ aires e e qui peuvent etre r´ solus par recours it´ ratifs a la programmation lin´ aire.c. . gi (x) ≤ 0.3.Chapitre 12 R´ solution des probl` mes non lin´ aires e e e 12.q. nous avons introduit la notion de mod` le non lin´ aire. . e e e e il s’agit de r´ soudre le probl` me suivant : e e max f (x)      s. k = 1. Il s’agit ˆ e e ` e respectivement : • Des probl` mes s´ parables qui ne comportent que des fonctions non lin´ e e e aires d’une seule variable. ces ` probl` mes peuvent etre r´ solus en consid´ rant une suite d’approximation e ˆ e e lin´ aires par morceaux des fonctions non lin´ aires d’une seule variable. . e e • Des probl` mes a contraintes lin´ aires. i = 1.2. Comme nous allons le voir a la e ` e ` section 12.1 Introduction Au chapitre 11. . ces probl` mes peuvent etre r´ solus par la m´ thode de Francke ˆ e e Wolfe qui consid` rent une suite d’approximations lin´ aires de la fonction e e objectif non lin´ aire.m hk (x) = 0.

144 Chapitre 12. d’application de la programmaea e tion s´ parable est la relation entre le flot de gaz entre les nœuds i et j. Ce sont les programmes s´ parables. Plus pr´ cis´ ment. e ` Un exemple pratique. e ee e ˆ D´ finition 12. on effectuera de la mani` re suivant. e e 3. et e e les pressions en ces points. Chaque fonction non lin´ aire d’une seule variable est remplac´ e par une e e approximation lin´ aire par morceaux.1 Une fonction est s´ parable si elle peut etre exprim´ e comme la e e e somme de fonctions d’une seule variable : n f (x) = j=1 fj (xj ) Par exemple. e e e . la fonction suivante est s´ parable : e x2 + 2x2 + ex . e e e 1. R´solution des probl`mes non lin´aires e e e 12.1 Algorithme de r´ solution des probl` mes s´ parables. Le probl` me approxim´ est alors r´ solu par une version sp´ cialis´ e de e e e e e l’algorithme du Simplexe traitant les probl` mes lin´ aires par morceaux. car ils peuvent se r´ soudre par utilisations e e r´ p´ t´ es de l’algorithme du Simplexe. Les mod` les s´ parables peuvent etre r´ solus par une suite d’approximations e e ˆ e lin´ aires par morceaux. not´ fij . si la solution ainsi obtenue s’´ carte trop des relations non lin´ aires e e originales.2 Programmation s´ parable e Il existe une classe particuli` re de probl` mes qui ne n´ cessitent pas le recours a des e e e ` logiciels d’optimisation non lin´ aire. e e e e Algorithme 12. d´ j` cit´ au chapitre 11. pi et pj : 2 2 fij = Cij p2 − p2 i j o` Cij est un param` tre constant d´ pendant de la longueur et du diam` tre du u e e e gazoduc. on raffine la discr´ tisation autour de la solution optimale du e probl` me approxim´ et on it` re. 1 puisque somme de fonctions d’une seule variable alors que la fonction suivante : x 1 x2 + 1 + x3 1 + x1 3 est non s´ parable a cause du terme x1 x2 . e 2. Enfin.

x2 ≥ 0 Il s’agit bien d’un probl` me convexe car on minimise x2 qui est une fonction e 1 convexe. Ceci est fait ci-dessous : Point O x1 = 0 Point A x1 = 1 Point B x1 = 2 Point C x1 = 2.2.1) 1 2 scq  −x1 + 4x2 ≥ 2    x1 . 25 On obtient les points O. On choisit alors un ensemble de valeurs de x1 o` la fonction est evalu´ e. A.5. ` y = x2 (3) C 6 5 4 3 2 1 (1) O (2) 1 2 x B A Figure 12. Ici.1: Approximation par une fonction lin´ aire par morceaux e On construit alors une approximation lin´ aire par morceaux de la fonction en e reliant par des segments de droite les points d’´ valuation de la fonction. On calcule la valeur de la fonction ´ e en ces points. Programmation s´parable e 145 Voyons ceci sur un exemple. ce sont les points 0.Section 12. B et C a la figure 12. 5 y y y y = x2 1 = x2 1 = x2 1 = x2 1 =0 =1 =4 = 6.1. 1. 2 et 2. Supposons que l’on ait a r´ soudre le probl` me ` e e convexe suivant : min x2 − 4x1 − 2x2 1  x1 + x2 ≤ 4     2x + x ≤ 5 (12. Supposons e ` e u ici que 0 ≤ x1 ≤ 2. La premi` re chose a faire est de se donner une borne inf´ rieure et une e ` e borne sup´ rieure a la valeur que pourra prendre la variable non lin´ aire. On obtient e . 5.

5x1 − 5 (3) Ce qui peut encore s’´ crire comme suit : e x1 − y ≤ 0 3x1 − y ≤ 2 4. on se retrouvera donc bien sur la limite inf´ rieure ` e e de l’´ pigraphe.1.146 Chapitre 12. On peut v´ rifier ´ ` e que l’´ pigraphe correspond aux trois in´ galit´ s suivantes : e e e (1) y ≥ x1 y ≥ 3x1 − 2 (2) y ≥ 4. En effet. R´solution des probl`mes non lin´aires e e e la courbe lin´ aire par morceaux indiqu´ e par OABC a la figure 12. en minimisant y avec la contrainte que (x1 .1. En effet. Le probl` me original est donc remplac´ par le suivant : e e min y − 4x1 − 2x2   x1 +x2 ≤ 4      2x1 +x2 ≤ 5     −x +4x  ≥ 2 1 2  x1 −y ≤ 0 scq    3x1 −y ≤ 2     4. Il existe au moins deux m´ thodes pour r´ soudre le probl` me lin´ aire par morceaux au moyen de l’algorithme du Simplexe.1 R´ solution par la notion d’´ pigraphe e e Lorsque le probl` me est convexe. e e ` Nous allons maintenant voir comment r´ soudre le probl` me lin´ aire par more e e ceaux. ` 12.1. 5x  −y ≤ 5  1    x1 . 5x1 − y ≤ 5 Il suffit alors de minimiser y. donc sur la la courbe lin´ aire par morceaux indiqu´ e par OABC a e e e ` la figure 12. y) appartienne a l’´ pigraphe. l’algorithme du Simplexe ne peut traiter directement ce genre de e e e e e probl` me. x2 ≥ 0 . a savoir ` • le recours a la notion d’´ pigraphe. ` e • le recours a la notion d’enveloppe convexe des sommets. on peut remplacer la fonction lin´ aire par more e ceaux liant x1 et y par son epigraphe comme fait a la figure 12.2.

2) traduisent le fait que le point (x1 . y) est une combinaison convexe des sommets du polygone.2) Si on veut se restreindre a etre sur la courbe lin´ aire par morceaux.2. Programmation s´parable e 147 12. e e` y = x2 C 6 5 4 3 2 1 B A O 1 2 x Figure 12. ´ Une combinaison convexe est une combinaison lin´ aire dont tous les coefficients e sont positifs et dont la somme est egale a un. 25λ4 1 = λ1 +λ2 +λ3 +λ4 (12. il faut imposer `ˆ e la restriction suppl´ mentaire que : e au plus deux λi adjacents sont non nuls.3) Les relations (12.Section 12. A. ´ ` e` On note par λi le poids attribu´ a chacun des points de cassure O.2.2: Approximation par une fonction lin´ aire par morceaux e on a ecrire que (x1 . (12.3) e e . B et C de la fonction approxim´ e.2 R´ solution par la notion d’enveloppe convexe e Une seconde solution est d’imposer que (x1 . Pour cela. y) est combinaison convexe des points extrˆ mes O. 5λ4 y = 0λ1 +1λ2 +4λ3 +6. B et C alors que la condition suppl´ mentaire (12. y) appartiennent a l’ensemble convexe ` des points extrˆ mes du polygone OABC comme illustr´ a la figure 12. A. On traduit alors le fait d’appartenir a l’enveloppe convexe e ` de ces quatre sommets par les relations suivantes liant x1 et y : x1 = 0λ1 +1λ2 +2λ3 +2.2.

Elle ne peut donc directement etre e ˆ trait´ e par l’algorithme du Simplexe. on e e e e e introduit une erreur par rapport la vraie fonction. 25λ4      λ1 + λ2 + λ3 + λ4     y. 5 λ2 = 0.148 Chapitre 12. 75 et y = 0. 5λ4 scq    −y +λ2 + 4λ3 + 6. x 2 . AB ou BC puisque l’on est une combinaison convexes des deux points extrˆ mes adjacents. Il faudra avoir recours a ` une extension de l’algorithme du Simplexe qui impose explicitement qu’au plus deux λi cons´ cutifs sont non nuls (voir De Wolf et Smeers [5]). e e on s’est ramen´ a la r´ solution d’un probl` me lin´ aire pur ! e` e e e Pour les probl` mes s´ parables non convexes. Remarquez e e e a nouveau que la fonction illustr´ e par la la courbe lin´ aire par morceaux OABC e e ` de la figure 12. e Quelle que soit la m´ thode utilis´ e pour r´ soudre le probl` me approxim´ . Ainsi pour x1 = 1. On en conclut que pour les probl` mes s´ parables convexes. On obtiendra ainsi e l’optimum global pour des probl` mes convexes et un optimum local pour des e probl` mes non convexes. λ2 . 75 et y = 1. R´solution des probl`mes non lin´aires e e e impose en plus que l’on se trouve sur un des segments OA. 75. x1 . la fonction vraie x2 vaut 2. par exemple : λ1 = 0. supposons que la r´ partition des poids ne v´ rifie e e pas la condition. 25 alors que son approximation lin´ aire par morceaux fournit e 1 comme valeur 2.1) est approxim´ par : e min y − 4x1 − 2x2   x1 +x2      2x1 +x2      −x1 +4x2  −x1 +λ2 + 2λ3 + 2. λ4 ≤ ≤ ≥ = = = ≥ 4 5 2 0 0 1 0 Remarquons que la condition (12. D’o` la n´ cessit´ de raffiner la discr´ tisation et d’it´ rer. 25 qui correspond au point : x = 0. 5. c’est-` -dire pr´ cis´ ment en se trouvant sur la limite inf´ rieure de l’ensemble a e e e convexe OABC. 25 λ3 = 0.3) sera automatiquement v´ rifi´ e pour un e e programme convexe. Par exemple. λ 1 . En effet. λ3 .2 est une fonction non lin´ aire. on peut faire mieux en prenant : x = 0. 5.3). il faudra imposer explicitement e e la condition (12. si l’on veut minimiser la fonction y = x3 qui est convexe pour les x > 0 et concave pour les x < 0. 25 Comme on minimise y. u e e e e . e Ainsi le programme convexe (12. e Voyons maintenant comment r´ soudre le probl` me approxim´ .

La m´thode de Franck-Wolfe e 149 12. le long du segment de x a xLP .3. a une constante ` e ` pr` s. e Son principe est particuli` rement simple dans le cas de probl` mes avec cone e traintes lin´ aires. ∂xj on obtient un probl` me lin´ aire soluble par l’algorithme du Simplexe. e e Notez que l’objectif non lin´ aire est de moins en moins bien approxim´ par son e e 0 approximation lin´ aire lorsque x s’´ carte de x mais que l’objectif doit s’accroˆtre. Le point suivant : x1 = x0 + α∗ (x1 − x0 ) LP . cette proc´ dure combine des approximations lin´ aires e e e de l’objectif pour trouver la direction de recherche avec une recherche unidimensionnelle pour trouver le pas suivant cette direction.Section 12.3 La m´ thode de Franck-Wolfe e Nous allons voir un type particulier d’algorithme qui permet de r´ soudre les e probl` mes d’optimisation non lin´ aires convexes. a f (x) son approximation donn´ e.4) scq x ≥ 0 est approxim´ par son d´ veloppement de Taylor d’ordre 1 : e e ∂f (x0 ) f (x) ≈ f (x ) + (xj − x0 ) j j=1 ∂xj 0 n Si on substitue dans (12. l’optimum. la fonction objectif du probl` me suivant max f (x) Ax ≤ b (12. Aussi va-t-on choisir le point e ` qui maximise f (x) le long de ce segment en r´ solvant le probl` me unidimensionnel e e suivant : max h(α) = f (x0 + α(x1 − x0 )) LP 0≤α≤1 ` On v´ rifie que α = 0 correspond a rester en x0 et α = 1 correspond a aller en x1 . e e e Etant donn´ e la solution initiale r´ alisable x0 .4). par g(x) d´ finie ci-dessous : e e n g(x) = j=1 cj xj avec cj = ∂f (x0 ) . e ` LP ∗ Notons α . Il est du type s´ quence d’ape e e proximations lin´ aires. Notons x1 e e LP sa solution optimale de ce premier probl` me lin´ aire. Il s’agit de l’algorithme de Franck-Wolfe. e e ı 0 1 du moins au d´ but. En effet.

on obtient P1 . 3) − (0. 0) fournit une solution r´ alisable initiale : e x0 = (0. La maximisation sans contrainte conduit a ` annuler la d´ riv´ e premi` re : e e e 24 − 36α = 0 . 0) Donc les coefficients du gradient sont c1 = 5 c2 = 8 On peut r´ soudre graphiquement le probl` me lin´ aire suivant : e e e max z = 5x1 + 8x2 3x1 + 2x2 ≤ 6 scq x1 . x2 ≥ 0 e e A la figure 12. 0) + α[(0.3. x2 ≥ 0 Calculons le gradient : ∂f = 5 − 2x1 ∂x1 ∂f = 8 − 4x2 ∂x2 Il est clair que x = (0. R´solution des probl`mes non lin´aires e e e deviendra le point initial pour l’it´ ration suivante. 3α) On va donc maximiser la fonction h(α) = f (x(α)) = 24α − 18α2 sous les contraintes que 0 ≤ α ≤ 1. 3) LP e Le segment entre x0 et x1 a comme coordonn´ es : LP x(α) = x0 + α(x1 − x0 ) = (0. e Appliquons ceci sur l’exemple suivant : max f (x) = 5x1 − x2 + 8x2 − 2x2 1 2 3x1 + 2x2 ≤ 6 scq x1 .150 Chapitre 12. la solution du premier probl` me lin´ aire : x1 = (0. 0)] LP = (0.

2) + α[(2. La m´thode de Franck-Wolfe e x2 3 P1 151 2 1 P2 P0 1 2 x1 Figure 12.Section 12.3. 0)] = (0. On obtient donc le point en fin d’it´ ration 1 : e x1 = (0.c. 0) + 2/3[(0. on obtient P2 . x1 . 2) Proc´ dons a la deuxi` me it´ ration : e ` e e c1 = 5 − 2 × 0 = 5 c2 = 8 − 4 × 2 = 0 On peut r´ soudre graphiquement le probl` me lin´ aire suivant : e e e max z = 5x1 3x1 + 2x2 ≤ 6 s.3. 2)] LP = (2α. la solution du deuxi` me probl` me lin´ aire : e e e x2 = (2. 2 − 2α) de sorte que l’on maximise max h(α) = 8 + 10α − 12α2 . 0) LP Le segment entre x1 et x2 a comme coordonn´ es : e LP x1 + α(x2 − x1 ) = (0. x2 ≥ 0 A la figure 12. 3) − (0. 0) − (0.q.3: M´ thode de Franck Wolfe e soit α = 2/3.

. e ´ 2. x] l’intervalle de recherche. Pour j = 1.2 Algorithme de Franck-Wolfe. le probl` me de la maximisation de la fonction ` e e e e d’une variable h(α). Crit` re d’arrˆ t. Calcul de la direction.. Trouver. Calcul du pas.n. R´solution des probl`mes non lin´aires e e e sous les contraintes que 0 ≤ α ≤ 1. 0) − (0. Reste a r´ soudre en g´ n´ ral. par application de l’algorithme du Sime e plexe. Initialisation.4 e ` Soit [x. . Posons k = 1. It´ ration k. on peut se baser sur la proc´ dure e e e e de recherche unidimensionnelle illustr´ e a la figure 12. 1. La maximisation sans contrainte conduit a ` annuler la d´ riv´ e premi` re : e e e 10 − 24α = 0 soit α = 5/12. e Algorithme 12. Soit x0 une solution initiale r´ alisable. 7/6) On peut r´ sumer l’algorithme de Franck-Wolfe comme suit. Chaque it´ ration consiste en les points ¯ e suivants : . 2) + 5/12[(2. On obtient donc le point en fin d’it´ ration 2 : e x2 = (0. 2. 2)] = (5/6. Si xk−1 et xk sont suffisamment proches. xk la solution optimale du probl` me lin´ aire suivant : LP n max g(x) = j=1 cj xj scq Ax ≤ b x ≥ 0 4. Trouvez αk la solution optimale de max f xk−1 + α(xk − xk−1 ) LP scq 0 ≤ α ≤ 1 et mettre xk = xk−1 + αk (xk − xk−1 ) LP 5. evaluer e cj = ∂f (xk−1 ) ∂xj 3.152 Chapitre 12. stop. Sinon retour e e en 2. Si on peut evaluer une fonction f (x) d’une seule variable ´ ainsi que sa d´ riv´ e premi` re f (x) en tout point.

8439 7. ¯ 3. mettre x = x . La m´thode de Franck-Wolfe e f (x) f (x) 153 x x x x x x x x Figure 12. 12 3 4. 00 0. 000 1.4: Recherche unidimensionnelle.3. 000 0. 00 0. 7500 0. Illustrons ceci sur un exemple. Si f (x ) < 0. Calculer x+x ¯ 2 e e et evaluer f (x ). la d´ riv´ e de f en x .1: Quelques it´ rations de la recherche unidimensionnelle. 8125 f (x ) 7. e . 0000 5. ´ x = 2. 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` res it´ rations sont illustr´ es au tableau 12. 75 x ¯ 2. 1.1. e e e k f 0 1 −12. 000 1. 6948 7. Retour en 1. Si f (x ) ≥ 0. 09 4 −2. 8672 Tableau 12. 19 x 0. 875 x 1. 00 2 10.Section 12. 75 0. 0000 0. 7812 7. 5000 0. 000 1. 8750 0. mettre x = x . 50 0.

M´ thode de Franck-Wolfe. Recherche unidimensionnelle. e` 12. Programmation s´ parable. Faire la troisi` me it´ ration de la m´ thode de e e e e Franck-Wolfe pour l’exemple trait´ a la section 12.4 Exercices 12. R´ soudre le probl` me non lin´ aire s´ parable e e e e e suivant en appliquant la technique d’approximations lin´ aires par morceaux : e Min Scq x2 − 4x1 − 2x2 1 x1 + x2 ≤ 2x1 + x2 ≤  −x1 + 4x2 ≥    x1 .3. R´solution des probl`mes non lin´aires e e e 12.154 Chapitre 12. x2 ≥      4 5 2 0 12.3 et en d´ duire par e ` e e e extrapolation la solution optimale du probl` me non lin´ aire.2.1.3. . Faire trois it´ rations de plus pour l’exemple e de recherche unidimensionnelle trait´ a la section 12.

1992. 155 . Economica.S. Management Industriel et Logistique. Michel GREIF et e Christian VAN DELFT. GAMS User’s guide Release 2. Guide de l’utilisateur. Paris. M. 1995. 1993. Universit´ Catholique de Louvain. Englewood Cliffs. 1991. Introduction to Operations Research. 2003. Freeman and Company. e ´ 2000. Olivier JANSSENS dE BISTHOVEN et Yves SMEERS. [3] BROOKE Anthony. ´ [4] CHVATAL Va˘ek.S. 1996. Linear Programming. Olivier BRUEL. LIEBERMAN. HILLIER et G. LIEBERMAN. Marc SEVAUX. [8] Christelle GUERET. e [9] GUERRIEN Bernard. Gestion de la production et des flux. Paris. Economica. Network Flows. e [10] F. 1` re edition. Singapour. HILLIER.Bibliographie [1] Ravindra AHUJA. Mac Graw-Hill International Editions. Microsoft.25. 1992. Boston. Christian PRINS. 1983. 1990. Thomas MAGNANTI et James ORLIN. CORE DISCUSSION Paper 9119. e ` Economica. [7] GIARD Vincent. Programmation lin´ aire. HILLIER et G. e [6] EXCEL. The Scientific Press. s [5] DE WOLF Daniel. e ´ [11] F. 6` me edition. Eyrolles. 2000. Paris. David KENDRICK et Alexander MEERAUS. Optimisation appliqu´ e a la gestion et a l’´ conomie. The Simplex algorithm extended to piecewise linearly constrained problems.S.S. Introduction to Management Sciences.S. Alain GARREAU. [2] BAGLIN G´ rard. Mac Graw-Hill International Editions. ` e [12] LACAZE Dominique. 1991. Prentice Hall. Economica. San Francisco. Initiation aux math´ matiques.

R. OUELLET et R. [18] M. Addison-Wesley. La recherche op´ rationnelle. La programmation lin´ aire.L. Wiley. 1995. Dunod 1972. New York. 1984. Montr´ al-Paris. Model building in Mathematical Programming. LUENBERGER. 1992. WILLIAMS. [19] XPRESS-MP. 1997. e e e Ga¨ tan Morin Editeur. WOLSEY. WILLIAMS. John Wiley. User Guide and Reference Manual. 1990. PARENT. John Wiley. Integer and Combinatorial Optimization.P. Release 10. Linear and NonlinearProgramming.A. . [14] NEMHAUSER. e [17] M.P. 1988. et L. G.156 Bibliographie [13] D. G. [16] SIMMONARD Michel. Dash Associate. NORBERT. Model solving in Mathematical Programming. [15] Y.

Sign up to vote on this title
UsefulNot useful