Vous êtes sur la page 1sur 156

UNIVERSITE DU LITTORAL

Matrise 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 lalgorithme . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Formes canoniques dun programme lin eaire. . . . . . . . . . . . 22
2.3 Notion de solution de base . . . . . . . . . . . . . . . . . . . . . 24
2.4 Initialisation de lalgorithme . . . . . . . . . . . . . . . . . . . . 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 doptimalit e . . . . . . . . . . . . . . . . . . . . . . 30
2.5.5 Chemin suivi par lalgorithme du Simplexe . . . . . . . . 31
2.6 Algorithme du Simplexe . . . . . . . . . . . . . . . . . . . . . . 32
3 Lalgorithme 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 lalgorithme du Simplexe. 43
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2 Initialisation de lalgorithme . . . . . . . . . . . . . . . . . . . . 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 ni dit 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 coefcients 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 xes . . . . . . . . . . . . . . . . . 70
6.2.2 Probl` emes avec contrainte logique . . . . . . . . . . . . . 71
6.2.3 M elange avec nombre limit e dingr 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 dun graphe . . . . . . . . . . . 84
7.1.2 Formulation du probl` eme . . . . . . . . . . . . . . . . . 85
7.2 Planication de la production . . . . . . . . . . . . . . . . . . . 87
7.3 Probl` eme daffectation 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 ot 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 ot ` a co ut minimum . . . . . . . . . . 108
9.3.1 Algorithme de plus courts chemins successifs . . . . . . . 109
9.4 Application au probl` eme daffectation . . . . . . . . . . . . . . . 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 daffectation de ressources rares . . . . . . . . . . . 124
10.4 Application ` a la planication de la production. . . . . . . . . . . 126
10.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
11 Les mod` eles non lin eaires 131
11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
11.2 Difcult 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 denveloppe 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
Lobjectif de ce cours est double. Il sagit, dune part, de donner une introduction
` a la formulation en mod` eles doptimisation. Il sagit, dautre part, de pr esenter
les techniques de r esolution de ces probl` emes.
On parle de probl` eme doptimisation lorsquil faut maximiser une fonction
sous contraintes. Par exemple, maximiser le b en ece dune 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 doptimisation.
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, cest-` a-dire les probl` e-
mes o` u la fonction objectif et les contraintes sont purement lin eaires. Lorsquil ny
a que deux variables de d ecision, un probl` eme lin eaire peut etre r esolu de mani` ere
purement graphique. Cest ce que nous verrons dans ce chapitre. Lorsquil y a un
plus grand nombre de variables, un algorithme mis en uvre sous la forme dun
programme informatique sav` ere n ecessaire. Il sagit de lalgorithme 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 modications de donn ees.
On parle danalyse 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 sagit 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 lineaire.
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, cest-` a-dire ceux o` u une d ecision strat egique doit etre prise ` a chaque
etape. Une application typique est la planication de production o` u ` a chaque
p eriode de lhorizon de planication, 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 lid ee de les programmer
soi-m eme. Par exemple, le solveur dExcel dispose dune 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.
Lalgorithme du Simplexe.
Questions sur lalgorithme du Simplexe.
Lanalyse 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 planication 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 sagit dune 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 sagit respec-
tivement dun chassis en aluminium et dun 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 dusinage 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 prot net ?
La formulation dun probl` eme doptimisation comporte toujours les trois etapes
suivantes :
1. choix des variables du mod` ele;
2. formulation de lobjectif;
3. formulation des contraintes.
La premi` ere etape consiste ` a choisir les variables du probl` eme.
D enition 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 enition permet de diff erencier les variables des param` etres, qui sont des
donn ees qui peuvent varier, par exemple dune p eriode ` a lautre ou dun sc enario
` a lautre. Ici les quantit es que le mod` ele doit d eterminer sont les productions de
12 Chapitre 1. La programmation lineaire.
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 lobjectif.
D enition 1.2 On appelle fonction objectif dun probl` eme doptimisation le cri-
t` ere de choix entre les diverses solutions possibles.
Ici lentreprise d esire maximiser son prot net. La marge etant de 3 pour le premier
type de chassis et de 5 pour le second, lobjectif sexprime comme suit :
maxz = 3x
1
+ 5x
2
La troisi` eme etape est la formulation les contraintes du probl` eme.
D enition 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 latelier 1 est de 1 heure
o` u il reste 4 heures disponibles. Do` u la contrainte de capacit e de latelier 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. Resolution graphique 13
1.4 R esolution graphique
Comme annonc e dans lintroduction, 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 enition 1.4 On appelle r egion r ealisable, lensemble des valeurs de variables
de d ecision qui satisfont toutes les contraintes.
Dans le cas de lexemple, cest lensemble 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 lin equation ` a l egalit e (3x
1
+2x
2
= 18).
Lorsque lon fait lintersection 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 gure 1.1. En economie, cet ensemble r ealisable
est encore appel e lensemble 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 dune 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 dun c ot e de lhyperplan de R
n
d equation :
a
k1
x
1
+ a
k2
x
2
+ . . . + a
kn
x
n
= b
k
.
D enition 1.5 On appelle poly` edre de R
n
lensemble des x R
n
v eriant un
syst` eme din 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 lineaire.
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 dillustration, le poly` edre de R
3
d eni 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 gure 1.2 par le prisme OABC o` u O note lorigine des axes.
x
1
x
3
x
2
A
C
B
O
Figure 1.2: Hyperfaces dun 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 cest la deuxi` eme etape
de la r esolution, on va repr esenter graphiquement des lignes disovaleur de la
fonction objectif :
z = 3x
1
+ 5x
2
.
Section 1.4. Resolution graphique 15
En effet, on remarquera que lexpression de la fonction objectif fait intervenir trois
variables et ne peut donc etre repr esent ee que dans lespace. Pour se ramener dans
le plan, on va consid erer des valeurs successives de lobjectif :
z = k.
Ce qui correspond graphiquement ` a des droites parall` eles
3x
1
+ 5x
2
= k.
Les points dune de ces droites sont donc le lieu de tous les points donnant la m eme
valeur du prot (do` u le nom de droite disovaleur de la fonction objectif). Ceci
est fait ` a la gure 1.3 o` u lon 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 disoprot.
Enn, et cest la troisi` eme etape de la r esolution, loptimum sera d etermin e
graphiquement comme le plan de production situ e sur la droite disoprot la plus
elev ee, cest-` a-dire celle qui donne le prot le plus elev e. On voit ` a la gure 1.3
quil sagit du point
x

= (2, 6).
Justions ce choix. Comme on maximise le prot on a int er et ` a prendre la droite
disovaleur 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 lobjectif, il faut prendre la droite disovaleur de lobjectif qui
touche encore la r egion r ealisable et qui donne la plus grande valeur ` a lobjectif.
16 Chapitre 1. La programmation lineaire.
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 diso-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 lobjectif
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 quil suft d evaluer la valeur de lobjectif en
chacun des sommets pour d eterminer loptimum dun 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 dun c ot e du polygone, la valeur de lobjectif peut etre soit constante, soit
strictement croissante, soit strictement d ecroissante.
On peut donc sugg erer lalgorithme suivant :
Algorithme 1.1 Principe de lalgorithme 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 crot. Sil ny en na pas, STOP : le x

courant est optimal.


iii) D eterminer le sommet y

` a lautre 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 lalgorithme du Simplexe. Mais avant cela, g en eralisons
la notion de c ot e et de sommet et voyons la formulation g en erale dun probl` eme
lin eaire.
G en eralisation. Notion de faces dun poly` edre.
On peut egalement g en eraliser les notions de cot es et de sommet dun polygone.
Il sagit, en fait, de cas particuliers de la notion de face dun poly` edre.
D enition 1.6 On appelle face dun poly` edre lensemble des points appartenant
au poly` edre et qui v erient 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 generale 17
Suivant la dimension de lensemble obtenu, on a des noms particuliers.
D enition 1.7 Dans lespace 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 lexemple du poly` edre OABC ci-dessus. Le triangle ABC est len-
semble des points du poly` edre v eriant une contrainte ` a l egalit e (x
1
+x
2
+x
3
= 1).
Il sagit donc dune face. Elle est de dimension 2 et donc il sagit donc dune hyper-
face. La droite AB est lensemble des points du poly` edre v eriant 2 contraintes ` a
l egalit e (x
1
+ x
2
+ x
3
= 1 et x
3
= 0). Elle est de dimension 1 : il sagit donc
dune ar ete. Le point C est lintersection de 3 (n = 3) hyperplans d elimitants, il
est de dimension 0 : cest donc un sommet.
1.5 Formulation g en erale
Nous allons g en eraliser lexemple introductif. Consid erons quil y a n produits
possibles (ici n = 2) n ecessitant lutilisation eventuelle de m ressources limit ees
(ici m = 3 ateliers de capacit e limit ee). Notons c
j
, laccroissement du prot 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 lineaire.
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 din 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 (mn) b vecteur (m1)
c vecteur (n 1) x vecteur (n 1).
D enition 1.8 Tout point x v eriant 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 lobjectif sont appel ees
solutions optimales.
D enition 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 dordinateur et les journaux. La r epartition entre m enages
et soci et es est diff erente dune ville ` a lautre expliquant un pourcentage
diff erent de listes dordinateur 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 dachat. Pour couvrir ses frais xes, la soci et e doit au
moins collecter 1.500 tonnes de listing dordinateur 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 lobjectif);
(b) D eterminer graphiquement le plan dachat optimal et en d eduire le co ut
dachat minimum.
1.2. Planication de production sur co ut variable. Une entreprise fabrique
deuxproduits P
1
et P
2
. Chaque produit doit passer les deuxateliers dusinage
et de nition. Le mois dernier, 500 unit es de P
1
ont et e produites gr ace ` a
750 heures dusinage et 250 heures de nition. De m eme, 700 unit es de
P
2
ont et e produites, n ecessitant 700 heures dusinage et 350 heures de
nition. Lentreprise dispose egalement dune section administration. Une
partie du co ut de production est ind ependante du nombre dheures pass ees ` a
la production (les frais xes), une partie est directement proportionnelle au
nombre dheures pass ees ` a la production (les frais variables). Le mois pass e,
20 Chapitre 1. La programmation lineaire.
on a observ e la r epartition suivantes entre frais xes et frais variables :
Section frais xes 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 lunit 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 dabord le prix de lheure 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 lusi-
nage et de 500 heures pour la nition. 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 lalgorithme
Lalgorithme du Simplexe permet la d etermination dune solution optimale dun
programme lin eaire lorsquune telle solution existe. Dans le cas contraire, lal-
gorithme, lors du passage par une phase pr eliminaire appel ee phase I, d etermine
labsence de solution r ealisable. Nous verrons la phase I au chapitre 4.
Rappelons la formulation de lexemple 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 gure 2.1.
Le principe de lalgorithme du Simplexe est de d eterminer une solution opti-
male en allant de sommet en sommet adjacent. Partant du point (0,0), lalgorithme
va d eterminer une ar ete le long de laquelle lobjectif saccrot : par exemple, lar ete
en direction de (0,6). Ensuite, on va aller jusquau bout de cette ar ete : cest-` 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 lobjectif saccrot : lar ete en direction de (2,6). On va
jusquau bout de lar ete et, l` a, on constate que tout mouvement, en arri` ere vers (0,6)
ou en avant vers (4,3), conduit ` a diminuer lobjectif. On est donc ` a loptimum.
Nous allons maintenant voir comment effectuer ces m emes op erations en uti-
lisant uniquement lalg` ebre. Cest lobjet de lalgorithme 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 dun programme lin eaire.
La forme canonique dun programme lin eaire dans lespace 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 (mn) b vecteur (m1)
c vecteur (n 1) x vecteur (n 1).
Il sagit dun probl` eme avec n variables et m + n contraintes din egalit e.
Cependant, parmi ces derni` eres , il ya mcontraintes qui peuvent etre des contraintes
din egalit e g en erales et n qui ne sont que des contraintes de positivit e des variables.
Observons quil est toujours possible de transformer une contrainte din egalit e
g en erale en une contrainte d egalit e par ajout dune 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 quil faudrait ajouter une quantit e non n egative au membre de gauche
pour quil 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 dun programme lineaire. 23
Cette quantit e repr esente un d ecit ou un ecart. Comme cet ecart peut varier, on
lappelle variable d ecart.
D enition 2.1 La variable d ecart est la quantit e qui, ajout ee au membre de
gauche dune contrainte, permet de transformer la contrainte en egalit e.
Bien que dans la forme canonique on ne consid` ere que des contraintes din 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. Lorsquon 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 sav` 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 quil y a equivalence totale entre les deux formes. En effet,
dune 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,
dautre 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 lautre
sens, il suft 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 x 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 x ees ` a z ero. On dit quelles sont mises
hors base.
D enition 2.2 On appelle variables hors base (v.h.b.) les n variables de R
n+m
x ees ` a z ero. Les m variables restantes sont appel ees variables de base (v.b.).
Dans lexemple, 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 enition 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 enition 2.4 On appelle solution de base r ealisable une solution de base qui,
en plus, v erie les contraintes de positivit e.
Dans lexemple, 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 lalg` 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 erier cette propri et e sur lexemple. A la gure 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 lalgorithme du Simplexe consiste ` a aller de
sommet en sommet adjacent. Interpr et e alg ebriquement, cela revient ` a consid erer
un passage dune solution de base r ealisable ` a une autre solution de base r ealisable.
La notion dadjacence doit etre etendue aux solutions de base.
D enition 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 lexemple, 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 puisquelle diff` erent par plus dune variable hors base. On
peut le v erier ` a la gure 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 lalgorithme
La question qui se pose est : Comment choisir le point de d epart ?
Si le probl` eme est mis sous forme din egalit es avec b
i
0, i = 1, . . .n, il suft
de prendre lorigine comme point de d epart. Dans lexemple, 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
Do` 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 naurait pas pu d emarrer ainsi. Ces emb uches peuvent
etre lev ees en passant par une phase pr eliminaire appel ee phase I de lalgorithme
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,
cest-` a-dire une marge b en eciaire nulle, ce qui nest pas etonnant vu que cela
correspond ` a une production nulle des deux produits.
Section 2.5. Une iteration Simplexe 27
2.5 Une it eration Simplexe
Pour rappel, le principe de lalgorithme 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 lobjectif saccrot.
2.5.1 Choix de la direction
La question qui se pose est alors : comment choisir la direction ? Remarquez
qualg 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 daugmentation 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 coefcient objectif le plus elev e.
Remarquez que pour pouvoir appliquer ce crit` ere simple (choisir la variable
de coefcient 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 sarr eter le long de la direction ?
G eom etriquement, on se dirige sur laxe x
2
et on sar ete en (6,0), ` a la premi` ere
contrainte rencontr ee. Alg ebriquement, on constate quen ce point la variable
d ecart x
4
sannule 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 sannuler.
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
, cest-` a-dire la premi` ere qui
sannule (pour x
2
= 6).
De mani` ere g en erale, on calcul le minimumdu rapport du coefcient du membre
de droite sur le coefcient 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 dop erations qui ne modient pas
lensemble des solutions dun syst` eme d equations :
1. Multiplier une egalit e par une constante non nulle;
2. Additionner un multiple dune equation ` a une autre equation.
Appliquons ceci ` a lexemple. Ajoutons au syst` eme de d epart (2.3) en premi` ere
ligne la d enition 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 iteration Simplexe 29
1. Amener un 1 comme coefcient de x
2
dans (2). Autrement dit, la nouvelle
contrainte not ee (2) est lancienne (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 lobjectif (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 lon 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 lobjectif :
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 doptimalit 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 sil existe
encore un sommet adjacent protable ?
Pour r epondre ` a cette question, nous allons utiliser la ligne de d enition de
lobjectif. L equation (0) se r ecrit :
z = 30 + 3x
1

5
2
x
4
.
Comme x
1
a un coefcient positif, il est int eressant de faire entrer x
1
en base.
Le crit` ere darr et sera donc le suivant : la solution de base courante est opti-
male si tous les coefcients 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 lalgorithme 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, cest la variable avec
le plus grand coefcient objectif, et dailleurs la seule possible.
Pour d eterminer la variable sortante, etudions la variation des variables de
base en fonction dune augmentation de x
1
:
x
3
= 4 x
1
x
2
= 6
x
5
= 6 3x
1
La variable sortante est x
5
, cest elle qui est la premi` ere ` a sannuler (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 iteration Simplexe 31
Donnant la nouvelle solution de base r ealisable :
(2, 6, 2, 0, 0)
Appliquons ` a nouveau le test doptimalit e. La ligne objectif s ecrit :
z = 36
3
2
x
4
x
5
.
Comme tous les coefcients objectifs sont n egatifs, la solution courante
x

1
= 2
x

2
= 6
est optimale. Elle donne sa valeur maximale ` a lobjectif qui est de :
z

= 36.
Nous verrons au chapitre suivant voir une autre fa con de pr esenter les m emes
calculs. Il sagit de la pr esentation du Simplexe en tableaux.
2.5.5 Chemin suivi par lalgorithme du Simplexe
On peut suivre ` a la gure 2.1 le chemin emprunt e par lalgorithme 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 lon est ` a loptimum.
Nous verrons au chapitre 4 les diff erents probl` emes qui peuvent se produire lors
de lex ecution de lalgorithme du Simplexe. Ces probl` emes peuvent se produire
durant les trois etapes de lalgorithme :
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. Lalgorithme va-t-il converger en un nombre ni d etapes ?
Mais avant cela donnons un r esum e de lalgorithme du Simplexe.
32 Chapitre 2. Algorithme du Simplexe.
2.6 Algorithme du Simplexe
Terminons en donnant une description sch ematique de lalgorithme 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 coefcient 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 lindice de cette variable entrante.
Pas 2. Choix de la variable sortante.
La variable sortante est la premi` ere ` a sannuler : cest celle pour laquelle
le minimum est atteint dans :
b
s
a
se
= min
i|a
ie
>0
b
i
a
ie
Soit s lindice de la ligne correspondante.
Pas 3. D eterminer la nouvelle solution de base :
Diviser toutes les coefcients de la ligne s par a
se
.
Eliminer x
e
des autres lignes par soustraction dun multiple de la ligne
s.
Retour au Pas 1.
Chapitre 3
Lalgorithme du Simplexe en Tableaux
3.1 Introduction
Nous avons vu au chapitre pr ec edent une pr esentation alg ebrique de lalgorithme
du Simplexe. Pour rappel, il sagit, partant dune 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 coefcient le plus elev e dans la
ligne objectif (ce qui correspond ` a choisir la direction assurant plus grand
taux daccroissement ` a la fonction objectif);
2. choisir comme variable sortante, la premi` ere variable de base ` a sannuler
(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 lexpression de la fonction
objectif.
Nous allons maintenant voir une autre fa con de pr esenter les m emes calculs. Il
sagit de la pr esentation du Simplexe en tableaux.
Nous verrons au chapitre suivant les emb uches que lon peut rencontrer ` a
chacune des etapes de lalgorithme.
On effectue g en eralement les calculs sur le tableau des coefcients qui porte
le nom de tableau Simplexe. Mais il faut bien garder ` a lesprit que ce tableau et
les op erations que lon va y effectuer ne sont quune traduction des op erations sur
le syst` eme d equations alg ebriques correspondantes.
33
34 Chapitre 3. Lalgorithme du Simplexe en Tableaux
3.2 Notion de tableau Simplexe
D enition 3.1 Un tableau Simplexe est constitu e des coefcients des equations
alg ebriques sans le nom des variables. On aura donc :
1. les coefcients de la fonction objectif;
2. les coefcients des variables dans le membre de gauche des contraintes;
3. les coefcients du membre de droite.
o` u lon s epare les coefcients de objectif des contraintes dune barre horizontale
et les coefcients du membre de gauche des contraintes des coefcients du membre
de droite par une barre verticale.
Reprenons lexemple 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 lon a ajout e au dessus du tableau le nomdes variables pour voir ` a quelle variable
correspond chaque colonne du tableau.
Plusieurs caract eristiques dun tableau sont ` a remarquer.
Tout dabord les valeurs du membre de droite donnent les valeurs courantes
des variables de base.
Ensuite la premi` ere ligne donne loppos e des coefcients objectif.
Enn, le dernier coefcient premi` ere ligne donne la valeur courante de
lobjectif.
On identie des variables de base ` a une colonne de coefcient de la matrice
identit e et ` a un coefcient 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
coefcient le plus n egatif dans la ligne objectif. On indique ceci dans le tableau
en encadrant la colonne de la variable entrant que lon 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 sannule la
premi` ere. Comme nous lavons vu au chapitre pr ec edent, cela revient ` a calculer le
minimum du rapport du coefcient du membre de droite de chaque contrainte sur
le coefcient correspondant de la colonne pivot lorsque ce dernier est strictement
positif :
min
_
,
12
2
,
18
2
_
= 6.
Dans le cas o` u le coefcient dans la colonne entrante est n egatif ou nul, la ligne
nentre pas en compte dans le calcul du minimum. Illustrons ceci sur un exemple.
36 Chapitre 3. Lalgorithme du Simplexe en Tableaux
Supposons que le coefcient 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 sagit de la deuxi` eme ligne et donc de la
variable x
4
. Il suft, dans le cas pr esent, de chercher la colonne identit e dont le
coefcient 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 enition 3.2 On appelle el ement pivot le coefcient situ e ` a lintersection de la
colonne pivot et de la ligne pivot.
Cest donc le centre de la croix ainsi form ee par la ligne et la colonne pivot.
Le pas suivant de lit 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 dop erations :
1. Amener un coefcient 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 lon doit utiliser, dans cette seconde op eration, un multiple de la
ligne pivot ` a lexclusion de toute autre ligne sinon on d etruirait la matrice identit e.
La nouvelle solution de base et la nouvelle valeur de lobjectif 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 lalgorithme du Simplexe. Le
premier pas de la deuxi` eme it eration consiste ` a d eterminer la variable entrante. Il
sagit de x
1
, la variable de coefcient le plus n egatif dans la ligne objectif. Do` 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 lit eration consiste ` a d eterminer la variable sortante. On
calcul le minimumdu rapport des coefcients du membre de droite sur le coefcient
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 lon lit la valeur de x
5
qui sort
38 Chapitre 3. Lalgorithme 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 lit eration Simplexe consiste ` a d eterminer la nouvelle so-
lution de base au moyen des deux types dop 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 dop 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 lobjectif 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, cest-` a-dire lors de la s election de la variable entrante, il
ny a aucun candidat. On arr ete lalgorithme : la solution courante est optimale :
x

1
= 2
x

2
= 6
z

= 36.
Le chemin suivi par lalgorithme du Simplexe est illustr e ` a la gure 3.1.
Initialement, on part de lorigine 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 lalgorithme du Simplexe.
la premi` ere it eration, on suit laxe 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 loptimalit e du point P
2
.
Nous verrons au chapitre suivant les emb uches que lon peut rencontrer dans
lex ecution de lalgorithme du Simplexe. En effet, nous avons ici suppos e que lon
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 lalgorithme si toutes les contraintes initiales
ne se pr esentent pas sous forme de contraintes din egalit es du type inf erieur ou
egal ` a avec un membre de droite positif. Nous examinerons egalement ce quil
convient de faire si on ne trouve aucune variable candidate ` a sortir de la base.
Mais avant cela, r esumons lalgorithme du Simplexe en tableaux.
40 Chapitre 3. Lalgorithme du Simplexe en Tableaux
3.4 Algorithme du Simplexe en tableaux
Algorithme 3.1 Algorithme du Simplexe.
Pas 0. Initialisation : Pour d emarrer lalgorithme,
1. Ajouter les variables d ecart aux contraintes din 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 coefcient dans la ligne objectif le plus n egatif,
en se restreignant aux variables ` a coefcient n egatif.
Soit x
e
telle que c
e
c
j
, j| c
j
< 0
Si une telle variable nexiste 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 sannuler. Pour cela, on calcule le minimum du
rapport du coefcient du membre de droite sur le coefcient 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 coefcient 1 au croisement de la colonne pivot et de la ligne
ligne pivot en divisant celle-ci par le coefcient 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 lon a amen e le 1.
Pas 4. It erer : retour au Pas 1.
42 Chapitre 3. Lalgorithme 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. Planication 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
latelier 1 1 heure 0 heure
latelier 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 lalgorithme du Simplexe.
Pr eciser, pour chaque tableau, la solution de base courante et justier
le choix des variables entrante et sortante.
(c) Illustrer sur un graphique le chemin suivi par lalgorithme du Simplexe.
Chapitre 4
Questions sur lalgorithme du Simplexe.
4.1 Introduction
Lexemple consid er e au chapitre 2 pour illustrer le fonctionnement de lalgorithme
du Simplexe ne montrait pas les emb uches qui peuvent surgir ` a chaque etape de
lalgorithme 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 ni dit erations ? Quest-ce qui nous
garantit que lon ne va pas it erer ` a linni ?
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 lapplication de lalgorithme
du Simplexe. En ce qui concerne les it erations, nous verrons que labsence de
variable entrante traduit le fait que lon est ` a loptimum tandis que labsence de
variable sortante traduit le fait que le probl` eme est non born e. Enn, concernant le
troisi` eme point, nous verrons que si la fonction objectif crot strictement ` a chaque
it eration, la convergence est garantie.
4.2 Initialisation de lalgorithme
Les quelques exemples de probl` emes examin es jusqu` a pr esent nont pas pos e de
probl` eme dinitialisation car nous partions dun probl` eme o` u toutes les compo-
santes du membre de droite etaient non n egatives. Supposons donc quil existe
au moins un des coefcients du membre de droite strictement n egatif.
43
44 Chapitre 4. Questions sur lalgorithme du Simplexe.
Le probl` eme est double. Dune part, il nest pas evident que le probl` eme
consid er e ait une solution r ealisable. Dautre part, m eme dans le cas o` u une
solution r ealisable existe, il nest pas clair de savoir ` a quelle base elle se rapporte.
On va r epondre ` a ces deux questions par la r esolution dun 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 quen 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 articielle si on veut d eterminer une base
de d epart r ealisable pour le probl` eme original. Puisquon 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 lalgorithme 45
son oppos e. Notons par le symbole w, la fonction objectif de sorte que lon peut
ajouter la ligne objectif suivante correspondant ` a une maximisation :
maxw = x
0
On obtient ainsi le probl` eme dit de phase I de lalgorithme du Simplexe.
Notons que lon se trouve, avec ce probl` eme de phase I, toujours confront e
au probl` eme de la construction dune 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 articielle 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 articielle une valeur sufsante pour
quelle 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 lalgorithme 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 lon a
r eussi ` a annuler la variable articielle. 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 quil est toujours born e. En effet, son objectif est de minimiser la
variable articielle 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 nest pas r ealisable.
Lorsquon a obtenu une solution de base r ealisable pour le probl` eme original,
on passe ` a la phase II :
en supprimant la variable articielle 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 lalgorithme 47
Appliquons ceci ` a lexemple. 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 dune 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 lalgorithme 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 dabord 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 lalgorithme 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 nest donc pas r ealisable. En effet, les contraintes du probl` eme
sont incompatibles. Ce verdict est conrm e par un examen de la gure 4.1.
-1 1 3
1
2
3
x
1
x
2
Figure 4.1: Probl` eme irr ealisable.
50 Chapitre 4. Questions sur lalgorithme du Simplexe.
4.3 D etermination de la variable entrante
La variable entrante doit etre une variable hors base avec uncoefcient c

j
n egatif
dans la ligne objectif du tableau courant. Si une telle variable nexiste pas, alors le
tableau courant d ecrit une solution optimale. En effet, la ligne objectif du tableau
courant peut s ecrire
z +

jN
c

j
x
j
= z

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

jN
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 laugmentation 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. Determination de la variable sortante 51
entrer x
1
dans la base. Il ny 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 lentr ee en base. Comme tous les coefcients
de la colonne x
2
sont nonpositifs, aucune des variables de base nest bloquante.
La variable x
2
peut crotre au del` a de toute limite. On en conclut que le probl` eme
est non born e. On peut le v erier 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 gure 4.2 qu` a partir du sommet (2,0), la r egion connat une
direction o` u x
2
nest 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: sil ny a pas de candidat
pour quitter la base, on peut faire crotre la variable entrante et donc aussi la
fonction objectif autant quon le veut. Dans ce cas, le probl` eme est non born e.
52 Chapitre 4. Questions sur lalgorithme du Simplexe.
Dautre part, sil y a plusieurs candidats pour quitter la base, alors nimporte
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 lexemple 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 laccroissement 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 lon 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 lexemple.
A lit 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 lobjectif 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 quapr` es quelques it erations d eg en er ees la fonction objectif se remet ` a crotre
strictement. Ceci am` ene directement ` a consid erer le point suivant.
Section 4.5. Arret apr`es un nombre ni diterations 53
4.5 Arr et apr` es un nombre ni dit 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 ni dit 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 ni. 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 nest alors pas
possible dit erer ind eniment.
Tout ce raisonnement repose sur lhypoth` ese que la fonction objectif aug-
mente strictement ` a chaque it eration. Comme le montre lexemple suivant, si
cette hypoth` ese nest pas satisfaite, on peut cycler, cest-` a-dire r ep eter ` a linni la
m eme suite dit 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 lon adopte les r` egles suivantes en pr esence de candidats multiples
pour les crit` eres dentr ee et de sortie :
(i) La variable entrante est toujours la variable hors base de coefcient le plus
n egatif dans la fonction objectif. En cas dex 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 lalgorithme 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. Arret apr`es un nombre ni diterations 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. Lalgorithme 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 lalgorithme 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
sintersectent. Il y a donc diff erentes fa con de d enir ce point extr eme comme
intersection de n hyperplans. On passe dune de ces d enitions ` a une autre.
Il existe des r` egles qui permettent demp 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 coefcient 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 coefcient objectif le plus n egatif.
Ici, on d ecide de prendre la premi` ere variable de coefcient n egatif rencontr ee
donc pas forc ement celle de coefcient minimum. On v eriera, sur lexemple
ci-dessus, quen adoptant la r` egle de Bland, on evite que lalgorithme 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 lexpos 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 lalgorithme 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 lobjectif
dun programme lin eaire lorsque lon modie certains coefcients du probl` eme
(coefcients objectif ou du membre de droite). En effet, g en eralement la solution
num erique dun probl` eme lin eaire est moins signicative que de savoir comment
lobjectif va bouger si lon modie certaines donn ees du probl` eme. Cest lobjet
de ce que lon appelle lanalyse postoptimale.
Pour voir leffet de tels changements de donn ees, une solution nave consiste ` a
appliquer le Simplexe au nouveau probl` eme et bien s ur on peut en d eduire leffet
sur lobjectif. Mais nous allons voir dans ce chapitre que, si la base optimale
ne change pas, on peut pr edire sans aucun nouveau calcul leffet de variation
des donn ees sur la fonction objectif en exploitant simplement le tableau Simplexe
optimal du probl` eme original.
Nous allons dabord envisager le cas de la variation des coefcients du
membre de droite des contraintes. Nous allons voir que la variation de la va-
leur optimale de lobjectif dun programme lin eaire en fonction des coefcients du
membre de droite est donn ee par la valeur des prix cach es que lon peut lire dans
la ligne objectif du tableau Simplexe nal. Nous verrons comment d eterminer le
domaine de validit e de ces prix cach es.
Nous verrons ensuite, le cas de la variation des coefcients de la fonction
objectif. Ici, nous verrons que le taux de variation de lobjectif est donn e par la
valeur des variables ` a loptimum. 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.
Enn, nous terminerons en donnant linterpr etation dune autre information
que lon 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
dune ressource, quel est limpact sur la valeur optimale de la fonction objectif ?
Pour des variations de membre de droite sufsamment 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 laugmentation de la fonction objectif si
lon accrot dune unit e la capacit e disponible (b
i
). Dans le tableau Simplexe
optimal, le prix cach e y

i
est le coefcient de la variable d ecart de la contrainte
dans la ligne objectif.
Nous allons illustrer ceci sur sur lexemple 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 nal 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 den don-
ner une d emonstration formelle, nous allons lillustrer graphiquement. Consid e-
rons tout dabord une augmentation de capacit e du premier atelier de b
1
= 4 ` a
b

1
= 5. On peut voir ` a la gure 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 lobjectif ne change pas :
z

= z

= 36
Do` u une variation nulle de lobjectif, ce qui etait bien pr edit par la valeur nulle
du prix cach e y

1
:
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 gure 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 lobjectif est donn ee par :
z

= 37, 5
Do` u un accroissement de lobjectif egal ` a la valeur du deuxi` eme prix cach e :
z = z

= 37, 5 36 =
3
2
= y

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

3
= 19. Comme on peut le voir ` a la gure 5.2, cela donne un d eplacement du
point optimal vers :
x

= (7/3, 6).
En cons equence de quoi, la nouvelle valeur de lobjectif vaut :
z

= 37
Do` u une augmentation dobjectif egale ` a la valeur du troisi` eme prix cach e :
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 latelier 3
Le r esultat peut aussi etre interpr et e dans lautre sens : y

3
est la perte de prot
si on diminue dune unit e la capacit e du troisi` eme atelier.
Remarquons, et ceci est lobjet de lanalyse de sensibilit e quil 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
leffet dune augmentation de b
1
sera nul sur la valeur optimum de lobjectif quel
que soit b
1
4, il nen va pas de m eme dune 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 sagit de lintervalle :
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 sagit de lintervalle :
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 sagit de lintervalle :
b
3
[12, 24].
Ces informations sont donn ees dans le rapport de sensibilit e dusolveur dExcel.
Ces informations sont fournies sous la forme dune augmentation admissible et
dune 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 nalement que lon 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 nest
pas enti` erement utilis ee : il ne sert donc ` a rien daugmenter son stock disponible.
62 Chapitre 5. Analyse postoptimale.
5.3 Variation des coefcients objectifs
La question qui se pose ici est la suivante :Si on augmente le prix de vente unitaire
ou si lon diminue le co ut unitaire de production, quel est limpact sur la valeur de
lobjectif ?
A nouveau, on peut pr edire cette variation de lobjectif 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 prot optimal
change. Le nouveau prot vaut donc :
z

=
n

j=1
(c
j
+ c
j
)x

j
On en conclut que pour une variation unitaire du coefcient c
j
, laugmentation de
z

est exactement la valeur optimale de la variable x

j
.
La valeur de la j` eme variable ` a loptimum (not ee x

j
) mesure laugmenta-
tion de la fonction objectif si lon accrot dune unit e la marge unitaire c
j
.
Dans le cas de lexemple, les augmentations de prot pour une augmentation
unitaire de la marge des produits valent respectivement :
x

1
= 2 et x

2
= 6.
Consid erons maintenant la question lanalyse de sensibilit e. Nous allons ` a
nouveau lillustrer sur le m eme exemple. Initialement :
z = 3x
1
+ 5x
2
On veut d eterminer lintervalle de variation maximum de c
1
autour de 3 tel que la
base optimale ne change pas.
A la gure 5.3, on constate que le coefcient c
1
peut descendre jusqu` a ce que
lobjectif z = c
1
x
1
+ 5x
2
soit parall` ele au segment
2x
2
= 12,
cest-` a-dire lorsque c
1
= 0. Le coefcient c
1
peut augmenter jusqu` a ce que lob-
jectif z = c
1
x
1
+ 5x
2
soit parall` ele au segment
3x
1
+ 2x
2
= 18.
Ceci se produit lorsquil y a egalit e des pentes :
c
1
5
=
3
2
,
Section 5.3. Variation des coecients 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
cest-` a-dire lorsque c
1
= 15/2.
La r eponse ` a la question de lanalyse 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 lanalyse de sensibilit e pour le second coefcient objectif. Celui-ci
peut d ecrotre jusqu` a ce que lobjectif z = 3x
1
+ c
2
x
2
soit parall` ele au segment
3x
1
+ 2x
2
= 18.
Ceci se produit lorsquil y a egalit e des pentes :
3
c
2
=
3
2
,
cest-` a-dire lorsque c
2
= 2. Dans lautre sens, c
2
peut augmenter jusqu` a ce que
lobjectif 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 dExcel.
64 Chapitre 5. Analyse postoptimale.
5.4 Co ut r eduit des variables hors base
Pour terminer ce chapitre consacr e ` a lanalyse postoptimale, nous allons d enir une
notion importante qui peut egalement etre d eduite du tableau Simplexe optimal, il
sagit du co ut r eduit dune variable hors base.
Le co ut r eduit de la variable hors base x
j
, not e d
j
, mesure laugmentation
de la fonction objectif si lon accrot dune unit e la valeur de la variable hors
base x
j
. Dans le tableau Simplexe optimal, le co ut r eduit d
j
est loppos e du
coefcient de la variable dans la ligne objectif.
Nous illustrerons cette notion sur l exemple de planication 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 lalgorithme
du Simplexe. Le tableau Simplexe optimal nal 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 reduit 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 lobjectif 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 quayant 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 coefcients dans la ligne objectif du tableau Simplexe
nal (loppos e des co uts r eduits) fournissent laugmentation de prix n ecessaire. En
effet, les co uts r eduits des variables hors base sinterpr` etent, en g en eral, comme
laugmentation de la fonction objectif lorsque lon augmente dune unit e la va-
riable. Ici, ` a loptimum, 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 prot dautant.
d
3
= 2.
Pour quil devienne int eressant de le produire, il faut donc augmenter sa marge
dau moins cette quantit e. Ici, le co ut r eduit sinterpr` ete comme loppos e de laug-
mentation minimale de prix pour que la production devienne int eressante.
Remarquez que tous les optimiseurs fournissent en plus de la solution optimale
dun probl` eme lin eaire, cette information : les co uts r eduits des variables hors base
sont, en effet, au signe pr` es, les coefcients 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
coefcients dans la ligne objectif du tableau Simplexe optimal nal :
Les co uts r eduits sont, au signe pr` es, les coefcients des variables hors
base dans la ligne objectif du tableau Simplexe optimal. Ils sinterpr` etent,
en g en eral, comme laugmentation de la fonction objectif lorsque lon
augmente dune unit e la variable hors base.
Les prix cach es sont les coefcients des variables d ecart des contraintes
dans la ligne objectif du tableau Simplexe optimal. Ils sinterpr` etent comme
laugmentation du prot pour une augmentation unitaire dun des co-
efcients du membre de droite.
Le rapport de sensibilit e dExcel donne ces deux informations.
66 Chapitre 5. Analyse postoptimale.
5.5 Exercices
5.1. Sensibilit e aux coefcients 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 lintervalle 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
lexercice 2 du chapitre 1,
(a) R esoudre par lalgorithme du Simplexe.
(b) D eterminer la valeur des prix cach es ` a loptimum.
(c) Si lunit 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 daugmenter cette capacit e ?
5.3. Fabrication de tourbe. Une rme 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 dengrais aux entreprises mar echaires et la qualit e 1
destin ee ` a lempotage des plantes dint 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 sextrait au printemps
sous forme humide et est s ech ee au soleil durant l et e pour etre livr ee ` a
lautomne. Un kg de tourbe humide extraite donne 100 grammes de produit
sec commercialisable. La machinerie qui extrait la tourbe humide permet
dextraire 4 500 000 kg de tourbe humide chaque printemps.
La tourbe s ech ee est d ebr ee ` a lautomne, au moyen de d ebreuses 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 ebrage pendant la p eriode consid er ee. Lentrep 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 prots 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 lobjectif et des contraintes).
(b) Voici le tableau Simplexe nal :
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 lobjectif si on produisait un sachet de
qualit e 1. En d eduire quel devrait etre le prot minimal que la soci et e
devrait tirer de la mise sur le march e dun sachet de qualit e 1 pour que
cette production devienne rentable.
(d) Le solveur dExcel vous fournit les intervalles de sensibilit e suivant
pour les coefcients c
j
de lobjectif et b
i
du membre de droite :
coefcient 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 dextraction ?
(e) Si le prot 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 prot optimal serait-il augment e ou diminu e ? de combien ?
Chapitre 6
La programmation en nombres entiers.
6.1 Introduction
Lalgorithme 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 dun algorithme g en eral qui permette
de r esoudre efcacement 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 dint egralit e des variables.
Cest pourquoi on appelle ce programme la relaxation lin eaire du probl` eme.
Les probl` emes de ots (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 ot ` a co ut minimum (la formulation la plus g en erale dun probl` eme
de ot) sont toutes enti` eres (demandes aux sommets enti` eres, capacit es des arcs
enti` eres et coefcients 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 sy ramener, on en conclut que lon dispose dun algorithme
performant de calcul : lalgorithme du Simplexe.
Malheureusement, un grand nombre de probl` emes en nombres entiers ne peu-
vent se mettre sous la forme de probl` emes de ot. Il convient donc pour ces
probl` emes davoir 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 xes
Exemple 6.1 Probl` emes avec co ut xe de mise en route de la production. On
veut repr esenter un co ut de production qui est nul en labsence de production et
qui, dans le cas contraire, vaut la somme dun co ut xe de production, not e K, et
dun 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 gure 6.1.
K
c(x)
x
m
Figure 6.1: Repr esentation dun co ut xe
La repr esentation math ematique de ce co ut xe n ecessite :
1. lajout dune variable indicatrice dune production positive :
y =
_
1 si x > 0
0 si x = 0
2. la modication 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. lajout 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 xe 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, loptimiseur
va automatiquement choisir y = 0, la solution qui evite le co ut xe !
Il y a de nombreuses applications de cette mod elisation des co uts xes par la
programmation mixte enti` ere. Un exemple de mise en application de ces co uts
xes est fournit par lexemple de localisation dentrep ots o` u il y a un co ut xe
douverture 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 lenchanement des t aches dun 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 douvriers, soit mettent en uvre la m eme machine.
Les deux t aches ne peuvent donc avoir lieu simultan ement, sans que lon 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 enissons 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 n 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 nie 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 nie avant que ne commence la t ache i.
6.2.3 M elange avec nombre limit e dingr edients
Il sagit egalement dun probl` eme g en erique conduisant ` a une formulation mixte
enti` ere, les variables binaires indiquant la pr esence o` u non dun ingr edient dans le
m elange.
Cest le cas, par exemple, dun probl` eme de m elange dhuiles 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 dingr edient i dans le m elange, d enissons la variable binaire y
i
indiquant la pr esence de lingr 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 maximumdingr edients dans le m elange sexprime
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 dingr 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 lingr 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 dun 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 dun appareil-
lage, on doit choisir sa capacit e parmi les valeurs commerciales existant sur le
march e. Par exemple, lors du dimensionnement dune canalisation de transport
deau, 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 lutilisation de variables binaires. En
effet, d enissons la variable x comme etant le diam` etre choisi et d enissons 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 quun 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 quune 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), cest-
` 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 lexemple 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 gure 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 quune fa con de r esoudre le probl` eme serait de construire une
Section 6.3. Methode de branch and bound 75
borne sup erieure sur z

et une borne inf erieure sur z

et ensuite de rafner 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 difcile. En effet, pour trouver
une borne inf erieure, il suft de donner une solution r ealisable pour (6.8). Comme
lobjectif est de maximiser, loptimum 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 nest 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 lon obtient ` a partir de (6.8) en laissant tomber les contraintes dint egralit e des
variables. Comme on maximise sur un ensemble r ealisable plus large, loptimum
ainsi obtenu ne pourra qu etre sup erieur ` a loptimum du probl` eme en nombres
entiers. Cest aussi le premier pas de la m ethode de branch and bound que nous
allons maintenant d ecrire sur lexemple.
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 gure 6.2 :
x
1
= 4, 5
x
2
= 4, 75
z
0
= 282, 5.
Cette solution est inacceptable car elle viole les contraintes dint 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 lindique)
dop 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 dune variable de s eparation. Le choix de cette variable est
heuristique. Diff erents choixsont possibles et de ce choixpeut d ependre lefcacit e
de la m ethode de r esolution. Une fa con simple de choisir cette variable est de
prendre la variable la plus distante dun entier. Une alternative, parfois utilis ee,
est de prendre la variable la plus proche dun entier.
Dans notre exemple, il sagit 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 ny a
76 Chapitre 6. La programmation en nombres entiers.
aucune perte de g en eralit e dimposer 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 lune et lautre conditions, on obtient deux sous-
mod` eles, un mod` ele ls et un mod` ele lle. Ce que lon repr esente par une dia-
gramme du type de celui de la gure 6.3. Chaque nud de cette gure 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 nud 0 au mod` ele original. Le nud 1 est le mod` ele
original avec en plus la restriction x
1
4, tandis que le nud 2 correspond au
mod` ele original avec en plus la restriction x
1
5. On a ici num erot e les nuds
dans lordre o` u ils ont et e g en er es.
On peut maintenant r esoudre les relaxations lin eaires correspondant aux pro-
bl` emes ls et lle. 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 nest pas etonnant : on a, en
Section 6.3. Methode de branch and bound 77
effet, ajout e des contraintes et donc restreint lespace des solutions r ealisables.
Comme les deux sous-r egions forment une repr esentation contenant lensemble
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 nud ls ou lle en deux.
Ici, aucune des deux solutions nest acceptable car toutes les deux comportent des
parties fractionnaires. On va donc continuer en choisissant un des deux nuds
pour le diviser ` a nouveau. Le choix du nud ` a diviser est ` a nouveau heuristique
et peut ` a nouveau avoir une grande inuence sur le temps total mis pour r esoudre
le probl` eme.
Pour lillustration 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 (cest-
` a-dire la plus grande en cas de maximisation) valeur de la fonction objectif.
Pour cet exemple, on choisit donc le nud 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 nuds 3 et 4. Ceci est illustr e ` a la gure 6.3. On r esout
graphiquement les relaxations lin eaires (voir gure 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 nud 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 nest pas trop grande, on peut se satisfaire de cette solution non
optimale plut ot que de continuer de longs calculs. Il est clair egalement quil ny
a aucune raison de continuer ` a diviser le nud 3 pour lequel la solution optimale
du probl` eme en nombres entiers a et e obtenue. On dit que le nud est coup e.
Remarquons aussi que le nud 4 a conduit ` a un probl` eme non r ealisable. Ce
nest pas etonnant vu que lon 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 nud. Continuons la division
des autres nuds.
Pas 2. Diviser ` a nouveau un nud ls ou lle en deux.
On choisit le nud 1 qui est le seul ` a encore diviser. Remarquez que cest parce
que la valeur de z
1
= 265 est sup erieure ` a la borne inf erieure 260 que lon 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 nuds 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 puisquil nexiste plus de nud ` a diviser. On d eter-
mine la solution optimale comme etant la meilleure solution enti` ere trouv ee. Il
sagit du point P
3
suivant :
x

1
= 6
x

2
= 4
auquel correspond une valeur optimale de lobjectif de z

= 260. On a ainsi, pour


notre exemple, trouv e et aussi prouv e que la solution du nud 3 etait la solution
optimale du probl` eme en nombres entiers.
En conclusions, il y a trois raisons de couper une branche dans larbre :
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.
Enn terminons par la remarque g en erale suivante. Si la r egion r ealisable de
la relaxation lin eaire nest pas born ee, il ny 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 dun nombre ni de branches dans larbre.
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 quil y a 8 charbons disponibles. Ces charbons
sont entr es par des bandes porteuses qui sont au nombre de 4, permettant
davoir 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 dau 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 ecications 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 an que chaque ville soit desservie par au
moins un emetteur et ceci ` a co ut dinvestissement total minimum.
80 Chapitre 6. La programmation en nombres entiers.
6.3. Probl` eme daffectation de lignes a eriennes. Une petite compagnie a erien-
ne dispose de six avions de 150 places. Elle d esire affecter sa otte davions
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 datterrissage,
etc. . . ) dun voyage sur la ligne OM est de 4 et de 3 sur la ligne OT. On
d esire minimiser le co ut dexploitation en satisfaisant la demande.
(a) Formuler math ematiquement le probl` eme de la meilleure affectation
de la otte 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 dordonnancement 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 sagit 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 daffectation optimale : il sagit daffecter des personnes ` a
des postes de travail de mani` ere ` a maximiser lefcacit e g en erale : il sagit
dun 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 planication des t aches : il sagit ici de d eterminer len-
chanement des t aches dun projet de mani` ere ` a terminer au plus vite en
tenant compte des relations dant eriorit e de certaines t aches par rapport ` a
dautres. 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 sagit ici de trouver le chemin le plus
court ou le moins co uteux entre deux points donn es dun r eseau. Il existe
un algorithme sp ecialis e : lalgorithme 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 lalgorithme du Simplexe mais pour lesquels il existe souvent
un algorithme sp ecialis e plus efcace que le Simplexe.
83
84 Chapitre 7. Les mod`eles sur reseau
7.1 Le probl` eme de transport simple
Le probl` eme de transport simple se rencontre lorsque lon 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 connat c
ij
,
le co ut de fourniture dune 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 quil 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 dun graphe
Nous allons voir comment le probl` eme de transport simple peut etre repr esent e
par un graphe. Rappelons la d enition de graphe.
Section 7.1. Le probl`eme de transport simple 85
D enition 7.1 Un graphe est d eni comme la paire G = (N, A) ou N repr esente
un ensemble de nuds et Aun ensemble de couples (i, j), appel es arcs, avec i N
et j N.
Ici, les nuds 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 gure 7.1. Il sagit en fait dun cas particulier de graphe : il sagit dun
graphe bipartite. On peut, en effet, isoler deux groupes de nuds : les nuds de
production, dune part, et les nuds de consommation, dautre part, et il nexiste
de liens (darcs) quentre les nuds du premier ensemble et les nuds du second
ensemble. Autrement dit, on ne peut aller dun 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 reseau
2. Expression de la fonction objectif : lobjectif 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 gure 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 sufsante 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 erier si cette condition est satisfaite avant de se lancer dans
la r esolution du mod` ele. Si par exemple, la condition etait viol ee dune certaine
quantit e, il faudrait recourir, pour cette quantit e ` a la sous-traitance.
Remarquez egalement que cette condition nest pas sufsante dans le cas o` u
tous les producteurs ne peuvent servir tous les clients. Il existe au moins trois
mani` ere dinterdire les chemins impossibles :
1. On peut imposer explicitement : x
ij
= 0 pour tout (i, j) impossible.
2. On peut p enaliser lutilisation de tels chemins par un coefcient objectif c
ij
tr` es elev e.
3. On peut aussi restreindre les sommations aussi bien dans lobjectif que dans
les contraintes aux seuls chemins (i, j) existants. Cest la solution retenue
dans notre formulation.
Section 7.2. Planication de la production 87
7.2 Planication de la production
Le probl` eme de transport permet de mod eliser des probl` emes qui ` a priori nont
rien avoir avec la distribution, ainsi le probl` eme de planication de la production
suivant tir e de Williams [17].
Le probl` eme de planication de la production s enonce ainsi. On produit un
bien unique pour lequel la demande est connue pour les prochains mois. On connat
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 lann 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
quil 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 lon 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 lobjectif :
Au co ut de production (en heures normales ou en heures suppl ementaires),
il faut ajouter autant de fois le co ut de stockage quil ny 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 ny 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 reseau
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 lon 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 daectation optimale 89
7.3 Probl` eme daffectation optimale
Le probl` eme s enonce de la mani` ere suivante. On a n personnes ` a affecter ` a n
postes. On connat 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 lobjectif :
Lobjectif est de minimiser linefcacit e totale de laffectation :
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 quexactement 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 quexactement un poste est affect e ` a chaque
personne.
et bien s ur, il faut ajouter les contraintes dint egrit e des variables :
x
ij
{0, 1}
Le probl` eme dembauche se rencontre lorsquil 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 nuds
interm ediaires qui ne soient pas des nuds source (nud doffre) ou des nuds
puits (nuds de demande). On obtient ainsi le probl` eme de transport g en eral.
90 Chapitre 7. Les mod`eles sur reseau
7.4 Le probl` eme de transport g en eral
Le probl` eme de ot ` a co ut minimum est illustr e par lexemple tir e de Williams
[17] repris ` a la gure 7.2. On a deux lieux de productions (deux sources) aux
nuds 0 et 1 et trois lieux de consommation (trois puits) aux nuds 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 ot ` a co ut minimum
comment satisfaire la demande des diff erents puits par des ux 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 nud i et le nud j.
2. Expression de lobjectif :
Lobjectif 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 larc (i, j).
3. Contraintes du probl` eme :
Les contraintes expriment la conservation du ux aux nuds. La somme des
ux entrant dans un nud est egale ` a la somme des ux sortant du nud :
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 general 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 coefcients de ces contraintes, on obtient ce que lon appelle
la matrice dincidence nuds/arcs qui a comme particularit e que chaque co-
lonne ne comporte quun coefcient +1 et un coefcient -1. Chaque colonne
correspond ` a un arc, et il y a un +1 dans la ligne correspondant au nud do` u est
issu larc et il y a un -1 dans la ligne correspondant au nud destination de larc :
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 lon veut aller
dun point ` a un autre sur un r eseau routier par la route la plus courte. Ala gure 7.3,
92 Chapitre 7. Les mod`eles sur reseau
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 nud 0 et le nud 8. Remarquez que ce probl` eme etre
reformul e en un probl` eme de ot ` a co ut minimum. Au nud origine, le nud 0,
il suft de mettre une source de capacit e unitaire et au nud destination, le nud
8, un puits de demande unitaire. On utilise alors un algorithme sp ecialis e pour
d eterminer le ot ` a co ut minimum qui satisfait cette demande unitaire. Il existe
cependant un algorithme sp ecialis e pour r esoudre ce probl` eme : lalgorithme de
Dijkstra (voir cours de licence).
7.4.2 Probl` eme du ot maximum
Le probl` eme du ot maximumest celui que lon rencontre lorsque lon veut, pour
un r eseau de transport, d eterminer le ot maximumde voitures quil peut supporter
avant darriver ` 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 ot maximum
indiqu es au dessus des arcs ` a la gure 7.4), on veut maximiser le ot entre les
sources et les puits. Si lon rejoint toutes les sources ` a une source unique et tous
les puits ` a un puits unique, et que lon trace larc de retour entre le puits unique et
la source unique, cela revient ` a maximiser le ux dans larc retour.
Section 7.5. Exercices 93
7.5 Exercices
7.1. Planication de la production de moteurs davions. Une entreprise de
fabrication de moteurs davions travaille uniquement sur commandes. Le
tableau 7.6 fournit en le nombre de moteurs ` a fournir en n 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 quil 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 davions.
7.2. Am elioration dun r eseau routier. On pr evoit une augmentation du trac
entre les villes A et F. On veut d eterminer quel est le ot 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 dun 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 reseau
7.3. Tourn ees de v ehicules. Consid erons le probl` eme dorganisation 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 lincin erateur 45 20 0
Tableau 7.8: Temps de parcours
temps de trajets entre ces villes et lincin erateur sont donn es au tableau 7.8.
On veut minimiser le temps total pour aller ` a lincin erateur.
(a) Repr esenter le probl` eme sur un graphique de r eseau.
(b) Formuler math ematiquement le probl` eme.
7.4. Mutation des ofciers. Larm ee a une politique de mutation r eguli` ere de
ses ofciers. Tous les trois ans, ces ofciers sont mut es ` a un autre poste pour
assurer la polyvalence du commandement et eviter que trop de fraternit e ne
sinstalle entre les ofciers et la troupe. Larm ee, pour etablir son plan de
mutation, tient compte du d esagr ement d etre mut e loin de sa base dorigine.
Et il est clair que, par exemple dans le cas dun ofcier mari e dont la femme
travaille dans le civil, le d esagr ement sera dautant plus grand que la nouvelle
affectation sera eloign ee. Pour les 5 ofciers ` 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 laffectation des ofciers qui minimise
Co ut pour d etre mut e au poste
lofcier 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 (cest-` 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 sagit du probl` eme obtenu
lorsque que le r eseau ne comporte que deux types de nuds, dune part les nuds
doffre et, dautre part les nuds de demande et que les arcs vont uniquement des
nuds doffre aux nuds de demande. Lalgorithme de r esolution faisant appel ` a
la notion de co uts r eduits, nous introduirons dabord 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 dun arc.
D enition 8.1 Supposons qu` a chaque nud i N, on associe un nombre (i),
que nous appellerons le potentiel du nud. On d enit le co ut r eduit de larc (i, j)
comme
c

ij
= c
ij
(i) + (j) (8.1)
Prenons un exemple dutilisation de la notion de co ut r eduit. Il sagit du
probl` eme du calcul de la plus courte distance entre deux points dans un graphe
(voir cours de licence). Lalgorithme de Dijkstra calcule la fonction d
i
qui donne
la distance du plus court chemin entre le point dentr ee sur le r eseau et le point i.
Consid erons un arc quelconque du r eseau comme illustr e ` a la gure 8.1. Ainsi d
i
note la distance du plus court chemin depuis lentr ee sur le r eseau jusquau point i
et d
j
note la distance du plus court chemin jusquau point j tandis que c
ij
indique
95
96 Chapitre 8. Resolution du probl`eme de transport simple
d
i
i
c
ij
j
d
j
Figure 8.1: Notion de co ut r eduit dun arc (i, j)
la longueur de larc (i, j). A loptimum, la condition suivante doit etre v eri ee :
d
j
d
i
+ c
ij
(8.2)
Justions ceci. En effet, soit le plus court chemin menant de lentr ee du r eseau au
nud j passe par larc (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 lexemple de la gure 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 nud origine 1 au nud i, on
utilise lalgorithme de Dijkstra. Pour rappel, celui-ci stocke deux informations
en chaque nud :
Section 8.2. Notion de co ut reduit 97
1. le label courant du nud, not e d
i
, qui indique la distance entre le nud
origine et le nud i par le plus court chemin trouv e jusqu` a pr esent;
2. le pr ed ecesseur courant du nud, not e p
i
, dans le plus court chemin trouv e
jusqu` a pr esent entre le nud origine et i.
Lalgorithme de Dijkstra utilise et met ` a jour deux ensembles :
1. Lensemble T des nuds dont on a d etermin e exactement le plus court
chemin entre le nud origine et ces nuds. Cest lensemble des nuds
d ej` a trait es et qui ne n ecessitent donc plus de traitement ult erieur.
2. Lensemble S = N \ T des nuds qui sont encore ` a traiter. On dit quils
ont un un label provisoire qui pourra encore eventuellement etre am elior e.
Rappelons le principe de lalgorithme. Soit o lindice du nud origine.
Algorithme 8.1 Algorithme de Dijkstra.
1. Initialisations. Mettre l
o
= 0; T = {o}; S = N \ T.
Pour tout nud 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 larc (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
jS
d
j
Ce nud q est d eplac e de lensemble S vers lensemble T :
T = T {q} et S = S \ {q}
On remet alors ` a jour les labels provisoires des el ements de S. Pour tout
nud 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 lancien
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. Lalgorithme sarr ete d` es que lon a d etermin e le label
d enitif du sommet de destination d, cest-` 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. Resolution du probl`eme de transport simple
Voyons maintenant lapplication de cet algorithme ` a notre exemple :
Initialisations : on marque d enitivement le nud 1 qui permet datteindre les
nuds 2 et 3 :
i 1 2 3 4
d
i
0 2 2 +
p
i
1 1
It eration 1 : on marque d enitivement le nud 2 de label provisoire minimum.
Ce nud permet datteindre le nud 4 :
i 1 2 3 4
d
i
0 2 2 5
p
i
1 1 2
It eration 2 : on marque d enitivement le nud 3 de label provisoire minimum.
Ce nud permet datteindre le nud 4 plus rapidement que par le nud 2 :
i 1 2 3 4
d
i
0 2 2 3
p
i
1 1 3
It eration 3 : on marque d enitivement le nud 4 et lalgorithme est termin e.
On a d etermin e les plus courtes distances de 1 ` a tous les nuds. 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 sinterpr` ete comme le surco ut dutiliser 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 nuds : les nuds dentr ee (ou encore nuds doffre
dont lensemble est not e N
s
) et les nuds de sortie (ou encore nuds de demande
dont lensemble est not e N
d
). Il ny a donc pas de nuds dinterconnexion. Cest
la premi` ere hypoth` ese simplicatrice. On suppose egalement, cest la seconde
hypoth` ese, que les arcs liant les nuds dentr ee aux nuds de sortie ont une
capacit e innie. On peut donc repr esenter le probl` eme par un graphe bipartite
comme illustr e ` a la gure 8.3.
m
2
1
n
1
2
s

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.
Lobjectif est donc la minimisation des co uts de transport entre les nuds dentr ee
et les nuds de sortie. Seuls ces arcs ont un co ut associ e d
ij
. Lobjectif se formule
donc comme
z = min

(i,j)A
c
ij
x
ij
o` u Aest lensemble des arcs de transport (correspondant au r eseau ouvert obtenu
sans consid erer le nud dentr ee et le nud de sortie).
Il est evident que si transporter du ot co ute, on va, ` a la solution optimale, tout
juste satisfaire la demande en chaque nud de demande. Autrement dit, on aura
que :

i|(i,j)A
x
ij
= d
j
j N
d
Supposons que loffre totale soit egale ` a la demande globale, autrement dit que

iN
s
s
i
=

jN
d
d
j
100 Chapitre 8. Resolution du probl`eme de transport simple
On peut, en effet, se ramener ` a ce cas en ajoutant un nud de demande suppl emen-
taire auquel on attribue lexc edent doffre sur la demande (

iN
s
s
i

jN
d
d
j
)
et que lon raccorde ` a chaque nud doffre par un arc de capacit e innie et de co ut
de transport nul.
Dans ce cas, chaque arc dentr 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 quavec les hypoth` eses faites dans le cas du r eseau de transport
simple, les ux circulant sur les arcs entrant et sortant sont connus ` a priori. Les
seules inconnues du probl` eme sont les ux 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 lexemple
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 laffectation usines-d ep ots permettant daboutir ` 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 lusine i vers le d ep ot j, CAP
i
, la
capacit e de lusine i et DEM
j
, la demande du d ep ot j. Comme vu plus haut, en
Section 8.4. Resolution du probl`eme de transport simple 101
Co ut de Destination Capacit e
fourniture St-Brieuc Poitiers Melun Toulouse de
venant de lusine
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 lusine 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 lalgorithme 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. Resolution 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 dune solution r ealisable que lon
am eliore pas ` a pas. Do` u le nom de la m ethode. Pour la d etermination dune
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 lOuest (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 dune 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 lon 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. Enn, 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 lusine
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 lusine
Section 8.4. Resolution 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
nalement, 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 lusine
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 lon 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 lon peut attribuer le plus grand nombre : ceci aura pour effet de mettre
comme coefcient du co ut minimum la plus grande valeur dune 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 dune 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, lop eration nest pas int eressante.
104 Chapitre 8. Resolution 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
Lajout dune 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, lop eration nest pas int eressante.
Lajout dune 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 modication 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 modication se traduirait alors par une augmentation du co ut global.
Notez que lalgorithme 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) quil existe des variables auxiliaires u
i
et v
j
telles que pour chaque case
de base (cest-` a-dire chaque case utilis ee dans la solution de d epart), on ait :
u
i
+ v
j
= c
ij
Section 8.4. Resolution 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 sagit dun syst` eme de 6 equations ` a 7 inconnues. On peut donc arbitrairement
xer ` a z ero la valeur dune 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 (cest la formule
de calcul des co uts r eduits de lalgorithme 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. Resolution 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 do` 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.
Lentreprise cherche le plan dacheminement ` a co ut minimal des laboratoires
aux centres de distribution. Calculer une solution par lheuristique du coin
Nord-Ouest et par celle dHouthakker.
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
connat 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 dunit 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 sagit de d eterminer le ot ` a co ut minimum dans un r eseau de
transport g en eral. Lalgorithme 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 lalgorithme de plus courts chemins successifs.
Le principe de cet algorithme est le suivant : on d etermine un plus court chemin
entre un nud dentr ee et un nud 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 ux
maximum qui peut etre transmis le long de ce chemin. On augmente le ot et on
it` ere jusqu` a saturer tous les points de demande.
Dautres 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 lapplication de cet algorithme ` a la
r esolution du probl` eme daffectation.
9.2 Notion de r eseau r esiduel
Dans plusieurs algorithmes, on cherche ` a augmenter le ot par rapport ` a la situation
actuelle du ot. Il est alors int eressant didentier non pas le r eseau actuel mais
le r eseau r esiduel, cest-` a-dire celui qui permet de faire passer un suppl ement de
ux.
Consid erons unarc (i, j) dont le uxdoit etre compris entre une borne inf erieure
107
108 Chapitre 9. Resolution du probl`eme de transport general
0 et une borne sup erieure egale ` a la capacit e de larc c
ij
(voir gure 9.1). Si la
valeur actuelle du ux sur cet arc est f
ij
, il est facile de voir que lon peut faire
encore passer en ux dans larc (i, j) un suppl ement de ux 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 ux dans lautre sens en ajoutant un arc de
j ` a i de capacit e r esiduelle :
r
ji
= f
ij
En effet, on peut ramener le ux ` a sa borne inf erieure z ero, ou ce qui est equivalent,
faire circuler un ux 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 nest 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 larc et le ot actuel. De
m eme, si le ux sur cet arc nest 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 ux.
D enition 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 ux nul), soit par deux arcs (cas du ux
strictement entre ses bornes inf erieure et sup erieure) soit par un arc dans le sens
oppos e (cas du ux ` a sa borne sup erieure). Remarquez egalement que la notion
de r eseau r esiduel est d ependante du ot actuel, ce que traduit la notation G(f).
9.3 R esolution du probl` eme de ot ` a co ut minimum
Plusieurs algorithmes existent pour r esoudre ce probl` eme. Le lecteur int eress e en
trouvera quelques uns dans louvrage de AHUJAet al [1]. Un de ceux-ci, que nous
allons pr esenter ci-dessous est lalgorithme de plus courts chemins successifs.
Section 9.3. Resolution du probl`eme de ot ` a co ut minimum 109
9.3.1 Algorithme de plus courts chemins successifs
Le principe de lalgorithme est le suivant. A chaque etape, on dispose dune
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 nuds.
D enition 9.2 Unpseudoot f satisfait les contraintes de capacit es et de positivit e
des ux. On d enit lexc` es au nud 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 linjection dans le r eseau au nud i, d(i), la demande satisfaite au
nud i et f
ij
, le ux dans larc (i, j). Donc e(i) est la partie de loffre au nud i
qui nest pas encore port ee plus loin.
Le principe de lalgorithme est ` a chaque etape de s electionner un nud s
avec un exc` es doffre et un nud t avec une demande non satisfaite et denvoyer
du ot de s ` a t le long dun plus court chemin du r eseau r esiduel (voir section 9.2
pour la notion de r eseau r esiduel).
On va illustrer lalgorithme sur lexemple de la gure 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 larc 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 ots sont mis ` a z ero ainsi
que tous les potentiels aux nuds :
f
ij
= 0 (i, j) A

i
= 0 i N
Ainsi, on peut calculer facilement les exc` es de demande aux nuds :
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 enit les deux
ensembles E des nuds avec exc` es doffre et D avec exc` es de demande :
E = {i|e(i) > 0}
D = {i|e(i) < 0}
Au d epart, on a donc (voir gure 9.2) : E = {1} et D = {4}.
110 Chapitre 9. Resolution du probl`eme de transport general
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
nud source k vers tous les nuds du r eseau r esiduel G(f) sur base des co uts
r eduits c

ij
. Soit P le plus court chemin du nud k au nud l. On met ` a jour :
(i) = (i) d(i), i N;
et on calcule le ux maximum que lon peut faire passer le long du chemin par
= min{e(k), e(l), r
ij
(i, j) P}
On augmente le ot 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 lexemple. A lit eration 1, on s electionne k = 1 et l = 4.
Ensuite, on d etermine, par lalgorithme de Dijkstra, les plus courtes distances du
nud 1 au nud 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 nuds par
la formule = d. On obtient ainsi
(1) = 0, (2) = 2, (3) = 2, (4) = 3.
On calcule le ot maximum que lon peut faire passer le long du chemin :
= min{4, 4, 2, 5} = 2
Section 9.3. Resolution du probl`eme de ot ` a co ut minimum 111
On peut donc augmenter de 2 unit es le ux 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 gure 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 lit 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 nud 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 = 1234. On met ` a jour les potentiels
aux nuds par la formule = d :
(1) = 0, (2) = 2, (3) = 3, (4) = 4.
On calcule le maximum de ux que lon peut faire passer le long du chemin
= min{2, 2, 4, 2, 3} = 2
112 Chapitre 9. Resolution du probl`eme de transport general
On peut donc augmenter de 2 unit es le ux 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 erier 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 daffectation
Illustrons ceci sur lexemple 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 efcacit e double si on la met au premier poste de travail plut ot
quau second. Ainsi de suite pour les autres. On d etermine ainsi lefcacit 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
laffectation de la personne au poste est possible. Ceci est fait pour notre exemple
` a la gure 9.4.
3
2
1
3
1
2
4
4
Figure 9.4: Probl` eme daffectation.
Section 9.4. Application au probl`eme daectation 113
Nous le compl etons le graphique en mettant les temps pour effectuer chacune
des t aches par chacun des candidats ainsi quen faisant apparatre une entr ee unique
et un puits unique. On obtient la gure 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 daffectation : it eration 1
Initialement, on met ` a z ero tous les ux ainsi que les fonctions potentielles :
(i) = 0 i et f
ij
= 0 (i, j)
On calcule lexc` es aux nuds 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 ux qui peut passer sur le chemin
= min{4, 4, 1, 1, 1} = 1
On augmente dune unit e le ux le long de P :
f
03
= f
35
= f
59
= 1.
114 Chapitre 9. Resolution du probl`eme de transport general
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 gure 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 daffectation : 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 ux qui peut passer sur le chemin
= min{3, 3, 1, 1, 1} = 1
On augmente dune unit e le ux le long de P : f
02
= f
26
= f
69
= 1.
Section 9.4. Application au probl`eme daectation 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 gure 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 daffectation : 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 ux qui peut passer sur le chemin
= min{2, 2, 1, 1, 1, 1, 1} = 1
On augmente dune unit e le ux le long de P :
f
01
= f
15
= f
38
= f
89
= 1
f
35
= 0
116 Chapitre 9. Resolution du probl`eme de transport general
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 gure 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 daffectation : 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 ux qui
peut passer sur le chemin = min{1, 1, 1, 1, 1, 1} = 1. On augmente dune unit e
le ux 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 dun 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 efcacit 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
Efcacit e (%) 100 99 97 94 88 83 81 78 76 75
Tableau 9.2: Efcacit 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 lefcacit e totale des lots, sinterroge 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 efcacit e globale.
(b) D eterminez une affectation qui corresponde ` a la r` egle du dernier entr e
= premier sorti et calculer son efcacit e globale.
(c) Formuler le probl` eme de la d etermination de laffectation defcacit 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 lefcacit e de la personne si elle
118 Chapitre 9. Resolution du probl`eme de transport general
est affect ee ` a la t ache. Une barre indique que la personne nest pas quali ee
pour la t ache. Utilisez lalgorithme de plus courts chemins successifs pour
identier une affectation qui maximise lefcacit 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 planication de
la production pour d eterminer les lancements de production en cas de co uts xes
de lancement de production.
Lid ee g en erale des proc edures de r esolution en programmation dynamique
est la suivante. On part dun 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 ctif, tir e de Hillier et Lieberman [10], va nous permettre
dintroduire la terminologie employ ee en programmation dynamique. Il sagit du
probl` eme du voyageur devant traverser louest am ericain il y a plus dun 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
gure 10.1, on a repr esent e chaque etat par un cercle. Son etat de d epart est l etat
1 et son etat darriv ee est l etat 10.
Le voyageur souscrit ` a chaque etape une police dassurance dont le co ut re` ete
le degr e dins ecurit e du voyage. Ceux-ci sont indiqu es au dessus des arcs ` a la
gure 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 dassurance pour le passage d etat
en etat.
Notez dabord que lapproche 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 dassurance de 13. Cependant en sacriant 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 crot, cela devient vite un travail prohibitif.
Cest ici quintervient 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 n de voyage, lorsquil
ny a plus quune etape ` a faire. Pour ce probl` eme la solution optimale est evidente :
le voyageur doit aller directement ` a sa destination, l etat 10. A lit eration suivante,
on elargit dune 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 linformation 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 lon 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
lon 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 lexemple du voyageur. Pour t = 4,
cest-` a-dire lorsque le voyageur na plus quune 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 nale 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. Sil
choisit l etat 8, le co ut additionnel quil va encourir pour rejoindre sa destination
` a partir de l etat 8 est donn e dans la table 10.1, il sagit de f

4
(8) = 3, de sorte
que son co ut total est de 1 + 3 = 4. Semblablement, sil choisit l etat 9, il devra
additionner 4 + 4 = 8. Et donc l etat quil 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,
cest-` 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 sagit 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
Enn, 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 identier une politique optimale. Pour t = 1, le voyageur
doit donc se diriger initialement vers l etat 3 ou 4. Supposons quil 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. Resolution 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 quun 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 gure 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 lobjectif, 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 lobjectif qui vient sajouter ` 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 lassurance 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 lon 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 lon
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 daffectation de ressources rares
Nous illustrons le fait que le champs dapplication 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 sagit du probl` eme de lorganisation mondiale de la sant e. On suppose
que lOMS dispose de 5 equipes m edicales ` a affecter ` a 3 pays pour mener ` a
bien une campagne de vaccination. LOMS doit d eterminer combien d equipes
envoyer dans chacun des trois pays de mani` ere ` a maximiser lefcacit e g en erale
de laffectation. La mesure de lefcacit e est donn ee en terme dann ees-homme
de vie suppl ementaire. Ces donn ees sont reprises au tableau 10.5. On suppose que
chaque pays doit b en ecier dau 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 dann ees-homme suppl ementaires
Bien quil ny ait pas de succession temporelle, on peut imaginer que les trois
etapes dun processus dynamique consistent en laffectation successive aux trois
pays puisque lorsquune equipe est affect ee ` a un pays, elle nest plus disponible
pour les autres pays. On a donc identi e les etapes.
Comment identier les etats ? Autrement dit, quelle est linformation n e-
cessaire ` a une etape pour pouvoir d eterminer la politique optimale ? Il sagit
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 lefcacit e de lallocation 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
lobjectif des etapes ult erieures ` a t et de l etape t si lon est dans l etat s
t
et que
lon 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 ece 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 daectation 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 planication de la production.
Nous allons maintenant voir comment la programmation dynamique permet de
r esoudre des probl` emes de planication de la production en pr esence de co uts de
production non convexes. Illustrons ceci sur un exemple.
La demande pr evisionnelle de n de mois dun 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 dunit es fabriqu ees. Le co ut xe de lancement de la pro-
duction est de 150. Le co ut direct d epend de la main duvre 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 sinterdit toute
rupture de stock. Autrement dit, il faut satisfaire la demande de n de mois.
Nous allons tout dabord formuler le probl` eme en un probl` eme de pro-
grammation dynamique. Pour cela, d enissons la variable d etat de la p eriode
t suivante :
s
t
= stock au d ebut de la p eriode t.
D enissons aussi la variable de d ecision de la p eriode t suivante :
x
t
= production ` a la p eriode t.
On d enit la fonction
f
t
(s
t
, x
t
)
comme etant le co ut de la meilleure planication pour les p eriodes restantes si on
est dans l etat s
t
au d ebut de la p eriode t et que lon 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, dun 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 planication 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 dun co ut
xe de lancement de 150, ` a payer pour autant quil y ait production, et dun co ut
direct de main duvre qui est de 200 par unit e produite en heures normales, de
250 par unit e produite en heures suppl ementaires. Remarquez quen pr esence de
co ut de lancement le co ut de production nest pas convexe. Ceci peut etre v eri e
` a la gure 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 quil faut au moins produire
4 unit es si s
5
= 0 mais pas plus de 6 sinon le stock nal 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 dune
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 lapplication 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 planication 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, cest-` 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 planication 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 quen 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) quune seule unit e en heure normale
` a la p eriode 2 (350). Remarquez aussi quen 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 quil envoie dans chacune des r egions du pays pour maximiser le
nombre de ventes. Le tableau qui suit donne laugmentation 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 den 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 planier 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 latelier 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 dune 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 planication comme un probl` eme dynamique.
(b) Sachant quau 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 doptimisation non lin eaire lorsque lon 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 enies sur R
n
` a valeurs dans R. Il sagit 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 dun
rendement croissant d echelle, cest-` a-dire une contribution unitaire au prot
saccroissant 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 lobjectif :
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 ot de
gaz entre les nuds 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 lineaires
11.2 Difcult e de r esolution des probl` emes non lin eaires
Si certains probl` emes particuliers doptimisation non lin eaire peuvent se ramener ` a
la r esolution dune 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 dalgorithmes de programmation non lin eaire exploitent directement
les conditions doptimalit e, cest-` a-dire les conditions v eri ees ` a la solution opti-
male du probl` eme. Nous allons donc dabord nous attacher ` a etablir ces conditions.
Ces conditions sont les extensions ` a R
n
des conditions bien connues dannulation
de la d eriv ee premi` ere pour une fonction dune 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 gure 11.1).
x
1
x
2
P

c
T
x
Figure 11.1: Probl` eme lin eaire.
D` es que lobjectif ou les contraintes deviennent non lin eaires, cette propri et e
nest plus v eri ee en g en eral. Pire encore, on peut avoir un optimum local
diff erent de loptimum 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 doptimalit e : les conditions de Kuhn et Tucker. Nous verrons au
chapitre suivant les algorithmes de r esolution.
Section 11.3. Dierence avec la programmation lineaire 133
11.3 Diff erence avec la programmation lin eaire
Les mod` eles non lin eaires sont beaucoup plus difciles ` 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 dabord, 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 lexemple 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 dune surface bord ee par une ellipse centr ee en lorigine. On peut
voir ` a la gure 11.2 que la seule solution optimale nest 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 lexemple
134 Chapitre 11. Les mod`eles non lineaires
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 gure 11.3 o` u lon peut voir que la
solution optimale est strictement int erieure. En effet, les courbes disovaleurs de
la fonction objectif forment des cercles concentriques et on a int er et ` a se situer au
centre de ces cercles, cest-` 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 difcult e de la programmation non lin eaire est que lon peut
avoir des optimaux locaux qui ne sont pas globaux. Illustrons ceci sur lexemple
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. Dierence avec la programmation lineaire 135
correspond au plan moins un cercle de rayon 4 centr e en (4,7). La repr esentation
graphique est donn ee ` a la gure 11.4 o` u lon 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
Cest la une des plus grandes difcult 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 lon minimise est
non convexe. Prenons lexemple illustr e ` a la gure 11.5 de la minimisation de la
fonction concave y = x
2
sur lintervalle [1, 2]. Au point x = 1, on a un
minimum qui nest 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, lorsquun 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 sagit des probl` emes convexes (voir section suivante).
Remarquez que les logiciels commerciauxfournissent toujours unminimumlocal.
136 Chapitre 11. Les mod`eles non lineaires
11.4 Les probl` emes convexes
D enition 11.1 Lensemble S R
n
est convexe, si et seulement si quels que
soient les deux points P et Q pris dans lensemble S, tout le segment [P, Q] est
contenu dans lensemble S.
Ce cas est illustr e ` a la gure 11.6. Ces ensembles nont 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 gure 11.7.
P
Q
P
Q
Figure 11.7: Ensembles non convexes.
D enition 11.2 Une fonctionf est convexe si lensemble 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 gure 11.8 pour lexemple de la fonction x
2
o` u lon voit que
l epigraphe est bien un ensemble convexe. La d enition de fonction convexe se
ram` ene donc ` a celle densemble convexe. Remarquez egalement que la d enition
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 enition 11.3 Une fonction f est concave si la fonction f est convexe.
Un exemple de fonction concave est illustr ee ` a la gure 11.9.
x
y
f(x)
Figure 11.9: Exemple de fonction concave
Maintenant que nous avons d eni les notions densemble convexe et de fonction
convexe, nous pouvons d enir la notion de probl` eme convexe :
D enition 11.4 Un programme math ematique est dit convexe sil sagit de la
minimisation dune fonction convexe sur une r egion r ealisable convexe, soit de
la maximisation dune 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 puisquil sagit de la maximisation dune fonction
concave. Et comme exemple de probl` emes non convexes, on peut citer les
probl` emes avec economie d echelle puisquil sagit de probl` emes de maximisation
dune fonction convexe.
138 Chapitre 11. Les mod`eles non lineaires
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 enition 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 enition que h
i
(x) = 0 sont actives pour tout
i. Par exemple, ` a la gure 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 loptimum 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 doptimalit e, on a besoin quune condition de r egu-
larit e soit satisfaite.
Section 11.5. Conditions de Kuhn et Tucker 139
D enition 11.6 D enition 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 enition n ecessite quelques rappels math ematiques concernant la notion
de gradient et la notion dind ependance de vecteurs.
D enition 11.7 Notion de gradient. Soit f une fonction ` a valeurs r eelles d enie
sur R
n
contin ument diff erenciable en x. Cest-` a-dire une fonction continue dont
les d eriv ees partielles premi` eres sont egalement continues. On d enit 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 enition 11.8 Notion dind 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 lun comme un multiple de lautre. Par contre les vecteurs
140 Chapitre 11. Les mod`eles non lineaires
(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 nest pas active, son multiplicateur
k
doit etre nul. Pour bien
comprendre la signication 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 din 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 dun probl` eme doptimisation sous contraintes
` a un probl` eme doptimisation sans contrainte. Les conditions doptimalit e pour
une fonction d enie sur R
n
sont simplement lannulation de son gradient. On
remarque que pr ecis ement les conditions de Kuhn et Tucker (11.4) ne sont rien
dautre que lannulation du gradient par rapport ` a x du gradient du Lagrangien :

x
L(x

) = 0.
Illustrons ceci sur lexemple 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.
Enn, 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 sufsantes pour montrer que lon est ` a loptimum.
Nous pr esenterons au chapitre suivant les algorithmes de r esolution.
142 Chapitre 11. Les mod`eles non lineaires
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 doptimalit e de Kuhn et Tucker.
(b) D eterminer graphiquement la solution optimale.
(c) V eriez 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 dactions 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 simposant 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 erier 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 sagit 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 eri ees ` a loptimum
dun 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 sagit
respectivement :
Des probl` emes s eparables qui ne comportent que des fonctions non lin e-
aires dune seule variable. Comme nous allons le voir ` a la section 12.2, ces
probl` emes peuvent etre r esolus en consid erant une suite dapproximation
lin eaires par morceaux des fonctions non lin eaires dune 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 dapproximations lin eaires de la fonction
objectif non lin eaire.
143
144 Chapitre 12. Resolution des probl`emes non lineaires
12.2 Programmation s eparable
Il existe une classe particuli` ere de probl` emes qui ne n ecessitent pas le recours ` a des
logiciels doptimisation non lin eaire, car ils peuvent se r esoudre par utilisations
r ep et ees de lalgorithme du Simplexe. Ce sont les programmes s eparables.
D enition 12.1 Une fonction est s eparable si elle peut etre exprim ee comme la
somme de fonctions dune 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 dune 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, dapplication de la programma-
tion s eparable est la relation entre le ot de gaz entre les nuds 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 dapproximations
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 dune 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
lalgorithme du Simplexe traitant les probl` emes lin eaires par morceaux.
3. Enn, si la solution ainsi obtenue s ecarte trop des relations non lin eaires
originales, on rafne la discr etisation autour de la solution optimale du
probl` eme approxim e et on it` ere.
Section 12.2. Programmation separable 145
Voyons ceci sur un exemple. Supposons que lon 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 sagit bien dun 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 gure 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. Resolution des probl`emes non lineaires
la courbe lin eaire par morceaux indiqu ee par OABC ` a la gure 12.1.
Nous allons maintenant voir comment r esoudre le probl` eme lin eaire par mor-
ceaux. En effet, lalgorithme 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 lalgorithme du Simplexe, ` a savoir
le recours ` a la notion d epigraphe;
le recours ` a la notion denveloppe 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 gure 12.1. On peut v erier
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 suft 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 gure 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 separable 147
12.2.2 R esolution par la notion denveloppe convexe
Une seconde solution est dimposer que (x
1
, y) appartiennent ` a lensemble convexe
des points extr emes du polygone OABC comme illustr e ` a la gure 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 coefcients
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 dappartenir ` a lenveloppe 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. Resolution des probl`emes non lineaires
impose en plus que lon se trouve sur un des segments OA, AB ou BC puisque
lon 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 gure 12.2 est une fonction non lin eaire. Elle ne peut donc directement etre
trait ee par lalgorithme 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 eri ee pour un
programme convexe. En effet, supposons que la r epartition des poids ne v erie
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,
cest-` a-dire pr ecis ement en se trouvant sur la limite inf erieure de lensemble
convexe OABC. On en conclut que pour les probl` emes s eparables convexes,
on sest ramen e ` a la r esolution dun probl` eme lin eaire pur !
Pour les probl` emes s eparables non convexes, il faudra imposer explicitement
la condition (12.3). Par exemple, si lon 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 lalgorithme du Simplexe qui impose explicitement quau plus
deux
i
cons ecutifs sont non nuls (voir De Wolf et Smeers [5]). On obtiendra ainsi
loptimum 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. Do` u la n ecessit e de rafner la discr etisation et dit erer.
Section 12.3. La methode de Franck-Wolfe 149
12.3 La m ethode de Franck-Wolfe
Nous allons voir un type particulier dalgorithme qui permet de r esoudre les
probl` emes doptimisation non lin eaires convexes. Il est du type s equence dap-
proximations lin eaires. Il sagit de lalgorithme 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 lobjectif 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 dordre 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 enie 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 lalgorithme du Simplexe. Notons x
1
LP
sa solution optimale de ce premier probl` eme lin eaire.
Notez que lobjectif 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 lobjectif doit saccrotre,
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
01
h() = f(x
0
+ (x
1
LP
x
0
))
On v erie que = 0 correspond ` a rester en x
0
et = 1 correspond ` a aller en x
1
LP
.
Notons

, loptimum. Le point suivant :


x
1
= x
0
+

(x
1
LP
x
0
)
150 Chapitre 12. Resolution des probl`emes non lineaires
deviendra le point initial pour lit eration suivante.
Appliquons ceci sur lexemple 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 coefcients 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 gure 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 methode 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 n dit 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 gure 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 lon maximise
maxh() = 8 + 10 12
2
152 Chapitre 12. Resolution des probl`emes non lineaires
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 n dit eration 2 :
x
2
= (0, 2) + 5/12[(2, 0) (0, 2)] = (5/6, 7/6)
On peut r esumer lalgorithme 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
k1
)
x
j
3. Calcul de la direction. Trouver, par application de lalgorithme 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
k1
+ (x
k
LP
x
k1
)
_
scq 0 1
et mettre
x
k
= x
k1
+
k
(x
k
LP
x
k1
)
5. Crit` ere darr et. Si x
k1
et x
k
sont sufsamment proches, stop. Sinon retour
en 2.
Reste ` a r esoudre en g en eral, le probl` eme de la maximisation de la fonction
dune variable h(). Si on peut evaluer une fonction f(x) dune 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 gure 12.4
Soit [x, x] lintervalle de recherche. Chaque it eration consiste en les points
suivants :
Section 12.3. La methode 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 dune 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. Resolution des probl`emes non lineaires
12.4 Exercices
12.1. Programmation s eparable. R esoudre le probl` eme non lin eaire s eparable
suivant en appliquant la technique dapproximations 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 lexemple trait e ` a la section 12.3.
12.3. Recherche unidimensionnelle. Faire trois it erations de plus pour lexemple
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
Users guide Release 2.25, The Scientic 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 lutilisateur, Microsoft, 1992.
[7] GIARD Vincent, Gestion de la production et des ux, 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.