You are on page 1of 100

Universit e du Littoral C ote dOpale

Master 2 en Sciences Economiques et de Gestion


Recherche op erationnelle
Daniel DE WOLF
Dunkerque, Septembre 2006
Table des mati` eres
1 La programmation lin eaire. 7
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Plan du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Un simple exemple . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.1 Choix des variables . . . . . . . . . . . . . . . . . . . . 9
1.3.2 Expression de lobjectif . . . . . . . . . . . . . . . . . . 10
1.3.3 Expression des contraintes . . . . . . . . . . . . . . . . . 10
1.4 R esolution graphique . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.1 Repr esentation de la r egion r ealisable . . . . . . . . . . . 11
1.4.2 Repr esentation de lobjectif . . . . . . . . . . . . . . . . 12
1.4.3 D etermination du point optimum . . . . . . . . . . . . . 13
1.5 Formulation g en erale . . . . . . . . . . . . . . . . . . . . . . . 16
1.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2 Algorithme du Simplexe. 19
2.1 Principe de lalgorithme . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Ajout des variables d ecart. . . . . . . . . . . . . . . . . . . . . 20
2.3 Notion de solution de base . . . . . . . . . . . . . . . . . . . . . 21
2.4 Initialisation de lalgorithme . . . . . . . . . . . . . . . . . . . . 23
2.5 Une it eration Simplexe . . . . . . . . . . . . . . . . . . . . . . . 24
2.5.1 Choix de la direction . . . . . . . . . . . . . . . . . . . . 24
2.5.2 Choix de la variable sortante . . . . . . . . . . . . . . . . 24
2.5.3 Calcul du nouveau sommet . . . . . . . . . . . . . . . . 25
2.5.4 Test doptimalit e . . . . . . . . . . . . . . . . . . . . . . 27
3
4 Table des mati`eres
2.6 Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 Lalgorithme du Simplexe en Tableaux 31
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Notion de tableau Simplexe . . . . . . . . . . . . . . . . . . . . 31
3.3 Tableaux Simplexe et pivotage . . . . . . . . . . . . . . . . . . . 33
3.4 Probl` emes non born es . . . . . . . . . . . . . . . . . . . . . . . 37
3.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4 Analyse postoptimale. 41
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2 Variation par rapport au second membre . . . . . . . . . . . . . . 42
4.3 Variation des coefcients objectifs . . . . . . . . . . . . . . . . . 46
4.3.1 Analyse de sensibilit e aux coefcients objectif . . . . . . 48
4.4 Co ut r eduit des variables hors base . . . . . . . . . . . . . . . . . 49
4.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5 La programmation en nombres entiers. 53
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2 Probl` emes avec quantit es indivisibles . . . . . . . . . . . . . . . 53
5.3 Probl` emes avec co uts xes . . . . . . . . . . . . . . . . . . . . . 55
5.4 Probl` emes avec contrainte logique . . . . . . . . . . . . . . . . . 56
5.5 M elange avec nombre limit e dingr edients . . . . . . . . . . . . . 57
5.6 Choix parmi un nombre discret de valeurs . . . . . . . . . . . . . 58
5.7 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6 R esolution des probl` emes entiers. 61
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.2 Principe de la m ethode de branch and bound . . . . . . . . . . . . 62
6.3 Application ` a lexemple . . . . . . . . . . . . . . . . . . . . . . 63
6.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7 La programmation dynamique. 69
Table des mati`eres 5
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
7.2 Le probl` eme du voyageur . . . . . . . . . . . . . . . . . . . . . 70
7.2.1 Formulation en un probl` eme dynamique . . . . . . . . . . 71
7.3 Proc edure de r esolution . . . . . . . . . . . . . . . . . . . . . . 72
7.4 Un probl` eme daffectation de ressources rares . . . . . . . . . . . 74
7.4.1 Formulation comme un probl` eme dynamique . . . . . . . 74
7.4.2 R esolution par la programmation dynamique . . . . . . . 76
7.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8 Les mod` eles non lin eaires 79
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
8.2 Diff erence avec la programmation lin eaire . . . . . . . . . . . . . 80
8.3 Les probl` emes convexes . . . . . . . . . . . . . . . . . . . . . . 83
8.4 Conditions de Kuhn et Tucker . . . . . . . . . . . . . . . . . . . 85
8.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
9 R esolution des probl` emes non lin eaires 89
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
9.2 Programmation s eparable . . . . . . . . . . . . . . . . . . . . . 90
9.3 La m ethode de Franck-Wolfe . . . . . . . . . . . . . . . . . . . 93
9.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
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 quatre 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, cest-` a-dire les probl` emes 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 sous forme
alg ebrique et au chapitre 3 sous forme de tableaux. Au chapitre 4, nous exami-
nerons 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. Cest lobjet de la deuxi` eme partie du cours. 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 examinerons la
question de la formulation de tels probl` emes au chapitre 5 tandis que nous verrons
au chapitre 6 une technique de r esolution de ces probl` emes : il sagit de la m ethode
de branch and bound.
7
8 Chapitre 1. La programmation lineaire.
La troisi` eme partie du cours est consacr ee ` a l etude des probl` emes dyna-
miques. Le chapitre 7 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. Cest lobjet de la quatri` eme partie du cours. Nous ver-
rons au chapitre 8 la formulation et les conditions doptimalit e dun probl` eme non
lin eaire tandis quelques m ethodes de r esolution de ces probl` emes seront pr esent ees
au chapitre 9.
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
Le cours est divis e en 4 parties et 9 chapitres :
Partie I : Les probl` emes lin eaires.
La programmation lin eaire.
Lalgorithme du Simplexe.
Lanalyse post-optimale.
Partie II : Les probl` emes en nombres entiers.
Les mod` eles en nombres entiers.
R esolution des mod` eles en nombres entiers.
Partie III : Les mod` eles dynamiques.
La programmation dynamique.
Partie IV : Les mod` eles non lin eaires.
Les mod` eles non lin eaires.
R esolution des mod` eles non lin eaires.
Section 1.3. Un simple exemple 9
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
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.
1.3.1 Choix des variables
La premi` ere etape consiste ` a choisir les variables du probl` eme.
10 Chapitre 1. La programmation lineaire.
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
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.
1.3.2 Expression de lobjectif
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
1.3.3 Expression des contraintes
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
Section 1.4. Resolution graphique 11
1.4 R esolution graphique
Reprenons la formulation sous la forme condens ee 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)
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 :
1. repr esentation graphique de la r egion r ealisable,
2. repr esentation graphique des contraintes,
3. d etermination de la solution optimale.
1.4.1 Repr esentation de la r egion r ealisable
La premi` ere etape de la r esolution consiste donc ` 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)
on obtient le polygone hachur e ` a la gure 1.1.
12 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.
1.4.2 Repr esentation de lobjectif
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
.
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.2 o` u lon a repr esent e z = 15 et z = 30.
La droite disovaleur z = 15, cest-` a-dire :
z = 3x
1
+ 5x
2
= 15
passe par les points (5,0) et (0,3) tandis que la droite disovaleur z = 30, cest-` a-
dire :
z = 3x
1
+ 5x
2
= 30
Section 1.4. Resolution graphique 13
9
6
4
2
0 2 6 x
1
x
2
z = 36
z = 30
z = 15
(2, 6)
5 10
Figure 1.2: Droites disoprot.
passe par les points (10,0) et (0,6) . On obtient donc des droites parall` eles qui
montent vers le haut si z saccrot.
1.4.3 D etermination du point optimum
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.2
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.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. Le point de contact est un point optimum.
Sur base de cet exemple, on d eduit une deuxi` eme observation.
Observation 1.2 On constate que la solution optimale est ` a un sommet de la
r egion r ealisable.
14 Chapitre 1. La programmation lineaire.
On peut alors se poser la question suivante : La solution optimale dun probl` eme
doptimisation lin eaire sera-t-elle toujours trouv ee en un sommet de la r egion
r ealisable ?
En fait, le seul cas o` u se pr esentent des solutions qui ne sont pas en des sommets
de la r egion r ealisable est la situation o` u tout un c ot e est optimal. Illustrons ce cas
en changeant lobjectif. Supposons que lon aie un objectif de la forme :
maxz

= 3x
1
+ 2x
2
Il est facile, dans ce cas, de voir que les droites disovaleur de lobjectif seraient
toutes parall` eles au c ot e :
3x
1
+ 2x
2
= 18
On en d eduit (voir gure 1.3) que tout le c ot e joignant le sommet (2,6) ausommet
(4,3) est optimal. Mais, m eme dans ce cas, on peut trouver une solution (m eme
deux) en un sommet de la r egion r ealisable. Il suft de choisir le point (2,6) ou le
point (4,3).
9
6
4
2
0 2 6 x
1
x
2
(2, 6)
5 10
z

= 3x
1
+2x
2
= 18
(4, 3)
Figure 1.3: Tout un c ot e est optimal.
Sur base de cet exemple, on tire une troisi` eme observation :
Observation 1.3 M eme si tout un c ot e du polygone est optimal, on peut toujours
choisir une solution optimale correspondant ` a un sommet.
Section 1.4. Resolution graphique 15
En conclusions, on voit quil suft de limiter la recherche de loptimum dun
probl` eme lin eaire aux seuls sommets de la r egion r ealisable. On peut faire mieux
que d evaluer lobjectif en chaque sommet.
Ainsi, le principe de lalgorithme du Simplexe est, partant dun sommet de la
r egion r ealisable, daller de sommet en sommet adjacent jusqu` a d etermination de
loptimum.
On peut donc sugg erer lalgorithme suivant :
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).
Le fonctionnement de lalgorithme dans le cas de lexemple est illustr e ` a la
gure 1.4. A la premi` ere it eration, partant du sommet initial P
0
= (0, 0), on
9
2 4 6
x
1
x
2 P
0
= (0, 0)
P
1
= (0, 6)
P
2
= (2, 6)
Itration 1
Itration 2
Figure 1.4: Chemin de lalgorithme du Simplexe.
d etermine la direction de laxe vertical qui permet daccrotre lobjectif. On va
jusquau bout du c ot e et on obtient le point P
1
= (0, 6) en n dit eration 1. A
la deuxi` eme it eration, on se dirige vers le point P
2
= (2, 6). A la troisi` eme
it eration, on constate quil ny a plus de direction daccroissement de lobjectif.
On est donc ` a loptimum.
16 Chapitre 1. La programmation lineaire.
1.5 Formulation g en erale
Consid erons quil y a n produits n ecessitant lutilisation de m ressources. Notons
c
j
, la marge unitaire du 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 :
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.
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).
Section 1.6. Exercices 17
1.6 Exercices
1.1. Formulation dun probl` eme de production. La production dune compa-
gnie se r eduit ` a 2 produits frais, P et Q quun grossiste lui ach` ete. La marge
unitaire de la compagnie est de 42 francs pour P et 48 francs pour Q. Chaque
soir, les produits frais sont achemin es chez le grossiste par un transporteur
qui facture ` a la compagnie 2 francs par kg transport e. Ce co ut de transport
vient en d eduction de la marge. La capacit e de transport est de 2.000 kg par
jour. Les produits P et Q s elaborent ` a partir de 2 mat eriaux M et N selon
les recettes pr esent ees au tableau suivant.
Produit Poids (en kg) Poids (en kg) Poids total
du composant M du composant N (en kg)
P 4 3 7
Q 2 1 3
Consid erons une journ ee o` u la compagnie dispose de 3.200 kg de M et de
2.400 kg de N. Formuler le probl` eme de la maximisation de son prot.
1.2. R esolution dun probl` eme de production. Une soci et e produit deux ar-
ticles A et B. La production est limit ee par les disponibilit es en mati` eres
premi` eres : la mati` ere premi` ere P1 est limit ee ` a 21 unit es par semaine et P2
` a 30 unit es par semaine. La production est egalement limit ee par la main
duvre disponible : on dispose dau maximum 5 ouvriers par semaine. Par
ailleurs, on doit employer au moins 3 ouvriers par semaine. La production
dune unit e de A n ecessite un ouvrier pendant une semaine, 9 unit es de P1
et 10 unit es de P2. La production dune unit e de B n ecessite un ouvrier
pendant une semaine, 3 unit es de P1 et 4 unit es de P2. La marge unitaire de
A est de 6, elle est de 3 pour B.
(a)

Ecrire le programme lin eaire correspondant.
(b) R esoudre graphiquement.
1.3. 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
18 Chapitre 1. La programmation lineaire.
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. La soci et e ne
d esire pas collecter plus de 6.000 tonnes de journaux par an. 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.4. 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. 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,
on a observ e la r epartition suivantes entre frais xes et frais variables :
Section frais xes frais variables
Usinage 60.000 11.600
Finition 40.000 6.000
Il y a un co ut de conditionnement de 8 euro lunit e pour P
1
et de 6 euro pour
P
2
. Les prix de vente sont de 55 euro et 43 euro 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
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
, x
2
0
(2.1)
dont la repr esentation graphique est donn ee ` a la gure 2.1.
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
19
20 Chapitre 2. Algorithme du Simplexe.
Le principe de lalgorithme du Simplexe est de d eterminer une solution
optimale en allant de sommet en sommet adjacent.
D enition 2.1 On appelle sommet du polygone un point intersection de 2 cont-
raintes ` a l egalit e v eriant toutes les contraintes.
Par exemple, les points (0,0), (0,6), (2,6), (4,3), (4,0) sont des sommets. Les points
(0,9), (4,6) et (6,0), bien qu` a lintersection de deux contraintes, ne sont pas des
sommets car ne satisfont pas toutes les contraintes.
D enition 2.2 On appelle ar ete du polygone les points de la r egion r ealisable
v eriant une contrainte ` a l egalit e.
G eom etriquement, il sagit dun segment de droite situ e ` a la fronti` ere de la r egion
r ealisable. Par exemple, le segment de (4,3) ` a (2,6) est une ar ete du polygone.
D enition 2.3 On appelle sommets adjacents deux sommets que lon peut joindre
par une ar ete.
Par exemple, (4,3) est adjacent ` a (2,6) mais (4,3) nest pas adjacent ` a (0,0).
Nous allons maintenant voir comment effectuer ces m emes op erations en uti-
lisant uniquement lalg` ebre. Cest lobjet de lalgorithme du Simplexe.
2.2 Ajout des variables d ecart.
Pour pouvoir d emarrer lalgorithme du Simplexe, il faut ramener les contraintes
din egalit e en des contraintes d egalit e. Observons quil est toujours possible de
transformer une contrainte din egalit e 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
x
1
4.
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 :
x
1
+ x
3
= 4,
avec la condition que la variable x
3
soit non n egative
x
3
0.
Cette quantit e repr esente un d ecit ou un ecart. Comme cet ecart peut varier, on
lappelle variable d ecart.
Section 2.3. Notion de solution de base 21
D enition 2.4 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.
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.
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.5 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.d.b.).
22 Chapitre 2. Algorithme du Simplexe.
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.6 On appelle solution de base une solution o` u en ayant choisi n
variables hors base, on obtient une solution unique en r esolvant les m contraintes
d egalit es obtenues en ajoutant les variables d ecart.
D enition 2.7 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.
Voir ` a ce propos lexercice 1 en n de chapitre.
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.8 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
Section 2.4. Initialisation de lalgorithme 23
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
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.
Voir aussi ` a ce propos lexercice 1 en n de chapitre.
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).
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.
24 Chapitre 2. Algorithme du Simplexe.
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
Section 2.5. Une iteration Simplexe 25
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 :
26 Chapitre 2. Algorithme du Simplexe.
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).
Section 2.5. Une iteration Simplexe 27
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 deuxi` eme 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
28 Chapitre 2. Algorithme du Simplexe.
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.
Onpeut suivre ` a la gure 2.2. le cheminemprunt e par lalgorithme duSimplexe.
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 2.2: Chemin suivi par lalgorithme du Simplexe.
Partant du sommet (0,0), la premi` ere it eration consiste ` a aller au sommet (0,6).
La deuxi` eme 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 suivant voir une autre fa con de pr esenter les m emes
calculs. Il sagit de la pr esentation du Simplexe en tableaux.
Section 2.6. Exercice 29
2.6 Exercice
2.1. Notion de solutions de bases adjacentes. Pour le probl` eme introductif
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
(2.4)
(a)

Ecrire le probl` eme sous forme d egalit es en ajoutant les variables d e-
cart.
(b) Consid erer toutes les bases possibles . Pour rappel, une base est obte-
nue en cherchant lintersection de deux contraintes prises ` a l egalit e.
V erier la propri et e suivante : Toute solution de base r ealisable
correspond ` a un sommet de la r egion r ealisable. On compl etera le
tableau 2.1.
v.h.b. (x
1
, x
2
) (x
3
, x
4
, x
5
) sommet ?
x
1
, x
2
oui/non
x
1
, x
3
oui/non
x
1
, x
4
oui/non
x
1
, x
5
oui/non
x
2
, x
3
oui/non
x
2
, x
4
oui/non
x
2
, x
5
oui/non
x
3
, x
4
oui/non
x
3
, x
5
oui/non
x
4
, x
5
oui/non
Tableau 2.1: Correspondance entre solution de base r ealisable et sommet.
(c) Consid erer toutes les solutions de base r ealisables. Donner les couples
de bases adjacentes en vous basant uniquement sur lalg` ebre. Pour ce
faire, on compl etera le tableau 2.2.
30 Chapitre 2. Algorithme du Simplexe.
Adjacentes ? (0,0) (0,6) (4,0) (4,3) ( 2,6)
(0,0) - oui/non oui/non oui/non oui/non
(0,6) oui/non - oui/non oui/non oui/non
(4,0) oui/non oui/non - oui/non oui/non
(4,3) oui/non oui/non oui/non - oui/non
(2,6) oui/non oui/non oui/non oui/non -
Tableau 2.2: Bases adjacentes.
Pour rappel, deux solutions de bases r ealisables sont adjacentes si
elles ont les m emes variables de base sauf une qui est de base dans la
premi` ere base et hors base dans la seconde.
On v eriera graphiquement le r esultat du tableau 2.2.
2.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 it eration, 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 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 r ealisable
(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.
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.
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 :
31
32 Chapitre 3. Lalgorithme du Simplexe en Tableaux
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
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.
Section 3.3. Tableaux Simplexe et pivotage 33
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. 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
34 Chapitre 3. Lalgorithme du Simplexe en Tableaux
Quelle que soit la valeur de x
2
> 0, la variable de base x
1
reste positive.
Remarquez aussi que, dans le cas o` u les coefcients de la variable entrante
sont tous n egatifs ou nuls, il ny aura aucune variable sortante. Ainsi, la variable
entrante et lobjectif lent ` a linni. On parle, dans ce cas, de probl` eme non
born e. Nous illustrerons ce cas ` a la section suivante.
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 35
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
36 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.
Si maintenant, on effectue par la troisi` eme it eration, on constate lors de la
s election de la variable entrante, quil ny a aucun candidat. On arr ete lalgo-
rithme : la solution courante est optimale.
Section 3.4. Probl`emes non bornes 37
3.4 Probl` emes non born es
Nous allons maintenant illustrer le cas de probl` emes non born es sur lexemple
suivant :
maxz = 2x
1
+ x
2
s.c.q.
_

_
x
1
2x
2
2,
2x
1
+x
2
2,
x
1
, x
2
0.
Ajoutons les variables d ecart :
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
Effectuons la 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 entrer x
1
dans la base. On d etermine la
variable sortante par le minimum suivant :
min{
2
1
; } = 2.
Le minimum se produit en premi` ere ligne o` u lon lit la valeur de la variable de
base x
3
. La variable de base x
3
sort donc 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
38 Chapitre 3. Lalgorithme du Simplexe en Tableaux
Effectuons maintenant la deuxi` eme it eration. La variable x
2
est seule can-
didate ` a lentr ee en base. Comme tous les coefcients de la colonne x
2
sont
non positifs, 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 3.1 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 3.1: 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.
Remarquons pour terminer que si le probl` eme est non born e, cest s urement
d u ` a une erreur de formulation. Dans la pratique, il y a toujours des contraintes
limitant lusage de ressources.
Section 3.5. Exercices 39
3.5 Exercices
3.1. Probl` eme ` a deux variables r esolu par lalgorithme du Simplexe.
Max 3x
1
+ 2x
2
scq x
1
+ 2x
2
7,
2x
1
+ x
2
8,
x
1
+ x
2
2,
x
1
, x
2
0.
(a) Ajouter les variables d ecart.
(b) R esoudre par la m ethode du Simplexe.
(c) Donner la solution obtenue par lalgorithme du Simplexe.
(d) Tracer la r egion r ealisable et indiquer graphiquement le chemin suivi
par lalgorithme du Simplexe.
(e) V erier en tra cant les droites disovaleur de la fonction objectif que le
point obtenu par lalgorithme du Simplexe est bien optimum.
3.2. Probl` eme ` a trois variables r esolu par lalgorithme du Simplexe. R esou-
dre 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.3. Lecture du tableau Simplexe. Soit le probl` eme lin eaire suivant :
maxz = 10x
1
+ 9x
2
+ 7x
3
s.c.q.
_

_
2x
1
+3x
2
+5x
3
450
2x
1
+4, 5x
2
+5x
3
600
3x
1
+2x
2
+6x
3
600
x
1
, x
2
, x
3
0.
40 Chapitre 3. Lalgorithme du Simplexe en Tableaux
Apr` es quelques it erations, le tableau Simplexe courant s ecrit :
z x
1
x
2
x
3
x
4
x
5
x
6
1 0 7/3 13 0 0 10/3 2000
0 0 5/3 1 1 0 2/3 50
0 0 19/6 1 0 1 2/3 200
0 1 2/3 2 0 0 1/3 200
(a) Donnez les variables de base et leurs valeurs ` a cette it eration.
(b) Quelles sont les valeurs des variables d ecart ?
(c) Poursuivez les calculs pour d eterminer la solution optimale.
Chapitre 4
Analyse postoptimale.
4.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). 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
variables hors base.
41
42 Chapitre 4. Analyse postoptimale.
4.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
, 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
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.
Section 4.2. Variation par rapport au second membre 43
9
3
x
1
=
4
0
x
1
=
5
z = 3x
1
+ 5x
2
2 8
x
2
x
1
6
0
(1)
(2)
(3)
6 5
(1)
(1)
(2,6)
x
1
=
6
Figure 4.1: Augmentation de capacit e du premier atelier
On peut voir ` a la gure 4.1 que le nouveau point optimal reste le m eme
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
.
Le r esultat peut aussi etre interpr et e dans lautre sens : y

1
est la perte de prot
si on diminue dune unit e la capacit e du premier 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 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, +].
Consid erons maintenant une variation de la capacit e du deuxi` eme atelier.
44 Chapitre 4. Analyse postoptimale.
9
3
0
z = 3x
1
+ 5x
2
2 8
x
2
x
1
6
0
(1)
(3)
6 5
2x
2
= 13
(5/3, 13/2)
2x
2
= 12
(2)
(2)
(2)
2x
2
= 18
Figure 4.2: Augmentation de la capacit e du deuxi` eme atelier
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 4.2) vers le nouveau point :
x

= (5/3, 13/2).
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
.
Pour le deuxi` eme atelier, au del` a de b
2
= 18, la solution optimale reste en (0,9).
Le prix cach e y

2
change :
y

2
= 0.
De m eme, une diminution en de c` a de b
2
= 6 va changer le prix cach e. On en
d eduit le domaine de validit e de y

2
= 3/2. Il sagit de lintervalle :
b
2
[6, 18].
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 4.3, cela donne un d eplacement du
point optimal vers :
x

= (7/3, 6).
Section 4.2. Variation par rapport au second membre 45
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
.
9
3
0
z = 3x
1
+ 5x
2
2 8
x
2
x
1
6
0
(1)
(3)
6 5
(2)
3x1 + 2x2 =18
3x + x =19 1 2 2
(7/3, 6)
(3)
(3)
3x + x =24 1 2 2
(4,6)
Figure 4.3: 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.
Pour le troisi` eme atelier, au del` a de b
3
= 24, la solution optimale reste en (4,6).
Le prix cach e y

3
change :
y

3
= 0.
De m eme, une diminution en de c` a de b
3
= 12 va changer le prix cach e. On en
d eduit le domaine de validit e de y

3
= 1. Il sagit de lintervalle :
b
3
[12, 24].
46 Chapitre 4. Analyse postoptimale.
Ces informations sont donn ees dans le rapport de sensibilit e dusolveur dExcel.
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.
4.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 ?
On peut pr edire cette variation de lobjectif pour autant que la solution optimale
optimale ne change pas. En effet, pour de faibles variations de coefcients objectif
la solution optimale ne change pas. Seul le prot optimal change. On peut montrer
le r esultat suivant.
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 illustr e ` a la gure 4.4, les augmentations de prot
pour une augmentation unitaire de la marge des produits valent respectivement :
x

1
= 2 et x

2
= 6.
En effet, si le prot passe de :
maxz = 3x
1
+ 5x
2
` a la forme suivante (augmentation de la marge de x
1
) :
maxz

= 4x
1
+ 5x
2
,
on peut voir graphiquement que le changement de pente nest pas sufsant pour
changer de point optimum. Autrement dit,
(x

1
, x

2
) = (2, 6)
Donc la solution optimale reste identique. Seul le prot augmente :
z

= 4 2 + 5 6 = 38
Section 4.3. Variation des coecients objectifs 47
10
8
6
4
2
0 2 6 8
x
1
x
2
(2, 6)
z = 3x1 +5x2 =36
10 12 4
z

= 4x
1
+ 5x
2
= 38
z

= 7, 5x
1
+5x
2
= 45
Figure 4.4: Analyse de sensibilit e de c
1
On a donc une augmentation de prot :
z = z

z = 38 36 = 2
pr ecis ement egale ` a la valeur de
x

1
= 2.
De mani` ere semblable, si le prot passe de :
maxz = 3x
1
+ 5x
2
` a la forme suivante (augmentation de la marge de x
1
) :
maxz

= 4x
1
+ 6x
2
,
on peut voir que le changement de pente nest pas sufsant pour changer de point
optimum. Autrement dit,
(x

1
, x

2
) = (2, 6)
Donc la solution optimale reste identique. Seul le prot augmente :
z

= 3 2 + 6 6 = 42
On a donc une augmentation de prot :
z = z

z = 42 36 = 2
pr ecis ement egale ` a la valeur de
x

2
= 6.
48 Chapitre 4. Analyse postoptimale.
4.3.1 Analyse de sensibilit e aux coefcients objectif
Consid erons maintenant la question lanalyse de sensibilit e. Nous allons ` a nou-
veau 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 4.4, 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
,
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 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.
Section 4.4. Co ut reduit des variables hors base 49
4.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
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
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
50 Chapitre 4. Analyse postoptimale.
Les valeurs des co uts r eduits des variables hors base sont donn es par :
d
3
= 2
d
5
= 3/2
d
6
= 1
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 montrer que produire une
unit e du chassis 3 diminuerait le prot de 2. En effet, supposons que lon force la
production dune unit e du chassis 3. Les contraintes de capacit es qui s ecrivent :
_

_
x
1
+x
3
4
2x
2
+2x
3
12
3x
1
+2x
2
+3x
3
18
peuvent se r ecrire (avec x
3
= 1) comme suit :
_

_
x
1
4 x
3
= 3
2x
2
12 2x
3
= 10
3x
1
+2x
2
18 3x
3
= 15
De la deuxi` eme contrainte, on en d eduit que x

2
sera au maximum egal ` a 5. On
perd une unit e de x
2
. Si on xe x

2
= 5, on constate, par la troisi` eme contrainte,
que x

1
sera au maximum egal ` a 5/3. On perd un tiers dunit e de x
1
. Autrement
dit , le prot va augmenter de la marge de x
3
mais diminuer dune fois la marge
de x
2
et dun tiers fois la marge de x
1
:
z

= 1/3 c
1
1 c
2
+ 1 c
3
= 1/3 3 1 5 + 1 4 = 2
On peut alors se poser la question suivante : de combien faut-il augmenter la
marge du chassis 3 pour le rendre attractif ?
Nous venons de voir que le co ut r eduit de la variable hors base x
3
sinterpr` ete
comme la perte de prot lorsque lon augmente dune unit e la variable. Pour quil
devienne int eressant de le produire, il faut donc augmenter sa marge dau moins
loppos e de 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.
Section 4.5. Exercices 51
4.5 Exercices
4.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.
4.2. Sensibilit e du membre de droite. Pour le probl` eme lin eaire formul e ` a
lexercice 4 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 ?
(d) Jusqu` a quel niveau est-il int eressant daugmenter cette capacit e ?
4.3. Fabricationde tourbe. Une rme 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
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.
52 Chapitre 4. Analyse postoptimale.
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.
(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, 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
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 5
La programmation en nombres entiers.
5.1 Introduction
On parle de programmes en nombres entiers lorsque lon minimise une fonction
lin eaire sous des contraintes lin eaires et quen plus chacune des variables doit
prendre des valeurs enti` eres.
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 verrons dans ce chapitre que la programmation en nombres entiers a un
domaine dapplication beaucoup plus large que la mod elisation de probl` emes de
production o` u les quantit es produites doivent etre enti` eres. En effet, de nombreux
probl` emes n ecessitent lutilisation de la programmation en nombres entiers. Nous
verrons au chapitre 6 une m ethode de r esolution de ces probl` emes. Il sagit de la
m ethode de branch and bound.
5.2 Probl` emes avec quantit es indivisibles
Cest la premi` ere classe dapplication qui vient ` a lesprit. Comme signal e plus
haut, il sagit des probl` emes o` u, soit les quantit es produites, soit les quantit es de
facteurs ` a mettre en uvre doivent etre enti` eres. Cest le cas, par exemple, de la
construction davions.
Nous allons illustrer le fait quil est n ecessaire de r esoudre le probl` eme
en nombres entiers et que la m ethode simpliste qui consisterait ` a r esoudre le
probl` eme lin eaire en densuite arrondir sa solution optimale peut conduire ` a des
sous-optimalit es. Ceci est illustr e sur lexemple suivant :
Max z = x
1
+ x
2
53
x1 + x2

2x1 + 2x2 = 1

8x1 +10x2 = 13
x1
x2
4
1
2
3
4 1 2 3
4. 5
54 Chapitre 5. La programmation en nombres entiers.
Scq
_

_
2x
1
+2x
2
1
8x
1
+10x
2
13
x
1
, x
2
N.
En r esolvant le mod` ele lin eaire obtenu en rel achant le caract` ere entier des
variables, cest-` a-dire en r esolvant la relaxation lin eaire suivante :
Max z = x
1
+ x
2
Scq
_

_
2x
1
+2x
2
1
8x
1
+10x
2
13
x
1
, x
2
0,
on obtient (voir gure 5.1) la solution optimale suivante du probl` eme lin eaire :
(x
1
, x
2
) = (4; 4, 5).
A la gure 5.1, on a illustr e en gris e la r egion r ealisable correspondant au
probl` eme lin eaire. On voit que la solution optimale du probl` eme lin eaire est
obtenue pour le point extr eme (x
1
; x
2
) = (4; 4, 5) alors que le probl` eme en nombres
entiers nadmet que les valeurs enti` eres situ ees dans cette r egion r ealisable. Ces
valeurs enti` eres sont indiqu ees par des croix ` a la gure 5.1.
Figure 5.1: Exemple de programme en nombres entiers
La solution du probl` eme en nombres entiers est, comme on peut le voir ` a la
gure 5.1, le point :
(x

1
, x

2
) = (1, 2).
On en conclut que arrondir la solution de la relaxation lin eaire ne fournit
pas la solution optimale ! Qui plus est, dans ce cas, cela donne la solution
(x
1
, x
2
) = (4, 4) ou la solution (x
1
, x
2
) = (4, 5), toutes deux non r ealisables !
Section 5.3. Probl`emes avec co uts xes 55
5.3 Probl` emes avec co uts xes
Exemple 5.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.
(5.1)
o` u x d enote le niveau de production.
Cette fonction est repr esent ee ` a la gure 5.2.
K
c(x)
x
m
Figure 5.2: 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;
3. lajout des contraintes suivantes :
x My, et y {0, 1} (5.2)
avec M une borne sup erieure sur la quantit e produite x.
56 Chapitre 5. La programmation en nombres entiers.
Remarquons que si x > 0, par les relations (5.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,
(5.2) permet les choix y = 0 ou y = 1. Cependant, comme on minimise c(x, y),
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.
5.4 Probl` emes avec contrainte logique
Parfois des probl` emes doptimisation 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 simul-
tan 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
(5.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
est la
dur ee de la t ache.
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(5.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}
(5.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 :
1. Cas o` u y
ij
= 1. Dans ce cas, le syst` eme (5.4) devient :
_
t
i
+ d
i
t
j
t
j
+ d
j
t
i
+ M
Section 5.5. Melange avec nombre limite dingredients 57
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 (5.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.
5.5 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} (5.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, (5.6)
avec k, le nombre maximum dingr edients dans le m elange.
D emontrons l equivalence. Deux cas sont possibles pour la variable x
i
:
58 Chapitre 5. La programmation en nombres entiers.
1. Soit x
i
> 0. Alors, par les contraintes (5.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 (5.5), la variable y
i
peut valoir 0 ou
1. La contrainte (5.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.
5.6 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 (5.7)
et bien s ur en imposant le caract` ere binaire de chaque indicatrice :
y
i
{0, 1}, i = 1, 2. . .4
La contrainte (5.7) fera en effet quune seule indicatrice vaudra un tandis que toutes
les autres seront ` a z ero.
Nous verrons au chapitre suivante une m ethode de r esolution de ces probl` emes
mixtes-entiers.
Section 5.7. Exercices 59
5.7 Exercices
5.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 5.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 5.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. Formuler le probl` eme comme un probl` eme en nombres entiers.
5.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 5.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.
60 Chapitre 5. La programmation en nombres entiers.
5.3. Appel doffres. Une municipalit e lance un appel doffres concernant 4 pro-
jets de construction. Elle re coit des devis de la part de 3 entreprises. Chaque
entreprise propose des devis concernant un sous-ensemble des projets. La
table 5.3 reprend le montrant du devis propos e pour chacun des projets par
lentreprise uniquement dans le cas o` u elles ont soumissionn e pour le projet.
La municipalit e d esire minimiser le co ut total de ses op erations de const-
Projet A B C D
Entreprise 1 4 1 - 6
Entreprise 2 - 2 5 -
Entreprise 3 3 - 6 5
Tableau 5.3: Montants des offres.
ruction.

Ecrire le programme correspondant sachant que chaque projet doit
etre attribu e ` a une seule entreprise. La municipalit e d esire aussi que chaque
entreprise r ealise au moins un projet. A quelle condition ceci est possible
? En admettant que cette condition soit remplie, ecrire la contrainte corres-
pondante. Formuler le probl` eme comme un probl` eme en nombres entiers.
5.4. Affectation dune otte davions. Une compagnie a erienne r egionale
d esire affecter sa otte davions aux 4 lignes quelle exploite (lignes A,
B, C et D). Le nombre de passagers d esirant effectuer chaque jour un par-
cours sur la ligne A est 100, sur la B de 200, sur la C de 150 et sur la D de
300. La compagnie dispose de deux types davions : 8 petits avions de 40
places et 3 avions moyens de 180 places. Le co ut dexploitation dun avion
d epend de sa taille et de la ligne ` a laquelle il est affect e. Ces co uts sont repris
` a la table 5.4. On d esire minimiser le co ut dexploitation en satisfaisant la
Ligne A B C D
Petits avions 4 1 10 6
Grands avions 15 4 30 20
Tableau 5.4: Co uts dexploitation.
demande. On doit egalement utiliser au moins trois avions de type 1 (pe-
tits) sur lensemble des lignes A,B et D. Formuler le probl` eme comme un
probl` eme en nombres entiers.
Chapitre 6
R esolution des probl` emes 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. 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.
61
62 Chapitre 6. Resolution des probl`emes entiers.
6.2 Principe de la 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 [16] dont
on a l eg` erement modi e la fonction objectif :
z

= maxz = 15x
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.1)
La r egion r ealisable est repr esent ee ` a la gure 6.1.
Remarquons quune fa con de r esoudre le probl` eme serait de construire une
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.1). 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.1) en laissant tomber les contraintes dint egralit e des
variables. Comme on maximise sur un ensemble r ealisable plus large, loptimum
Section 6.3. Application ` a lexemple 63
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
9 10
z = 150
(1)
(2)
(3)
Figure 6.1: Repr esentation de la r egion r ealisable.
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.
6.3 Application ` a 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.1 :
x
1
= 4, 5
x
2
= 4, 75
z
0
= 305.
Cette solution est inacceptable car les variables ne sont pas enti` eres. Cependant,
elle fournit une premi` ere borne sup erieure sur z

:
z

305.
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
64 Chapitre 6. Resolution des probl`emes entiers.
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.
Le crit` ere de choix de la variable de branchement adopt e ici est de prendre
la variable la plus distante 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
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.2. Chaque nud de cette gure correspond
z
0
= 305
x
1
= 4, 50
x ,
2
= 4 75
x
1
4
x
1
5
z
1
= 285
x
1
= 4
x
2
= 4, 5
z
2
= 300
x
1
= 5
x
2
= 4, 5
x
2
4 x
2
5
z
3
= 290
x
1
= 6
x
2
= 4
z
4
=
Probl` eme
non r ealisable
Figure 6.2: 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
Section 6.3. Application ` a lexemple 65
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
= 285.
Noeud 2 : x
1
= 5, x
2
= 4, 5 z
2
= 300.
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
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
) = 300.
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 :
Le crit` ere de choix du nud ` a diviser adopt e ici est de prendre la la re-
laxation 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.2. On r esout
graphiquement les relaxations lin eaires (voir gure 6.1) et on obtient les solutions
suivantes :
Noeud 3 : x
1
= 6, x
2
= 4, z
3
= 290.
Noeud 4 : non r ealisable
66 Chapitre 6. Resolution des probl`emes entiers.
Noter que, au nud 3, on a obtenu une solution enti` ere dont la valeur correspon-
dante de la fonction objectif est 290. On a une premi` ere borne inf erieure sur la
valeur optimale de la fonction objectif et on a donc que :
290 z

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 3 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,
dans ce cas, il ne sert ` a rien de continuer ` a diviser ce nud. On peut donc couper
le nud 4.
Remarquons, pour terminer, que lon peut egalement couper la branche du
nud 1. En effet, la valeur de z
1
= 285 est inf erieure ` a la borne inf erieure de 290
qui vient d etre trouv ee. On na donc aucun espoir de trouver en poursuivant les
calculs ` a la branche 1 de trouver une solution enti` ere meilleure que 290. Dans le
cas contraire, on aurait du diviser la branche 1.
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

= 290. 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 (cas du nud 4 ci-
dessus),
2. lorsque la relaxation lin eaire obtenue fournit une solution enti` ere (cas du
nud 3 ci-dessus),
3. lorsque la valeur de la borne sup erieure est inf erieure ` a la valeur de la meil-
leure solution enti` ere obtenue (cas du nud 1 ci-dessus).
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 67
6.4 Exercices
6.1. 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 aux deux lignes ouvertes ` a la concurrence.
(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 ! Choisir comme
variable de branchement la variable la plus eloign ee dun entier. En
cas d egalit e, choisir celle dindice le plus faible.
6.2. M ethode de branch and bound. Soit le probl` eme en nombres entiers
suivant :
z

= max x
1
+ x
2
s.c.q. x
1
+ x
2
1,
3x
1
x
2
3,
x
1
4x
2
14,
4x
1
+ x
2
20,
2x
1
x
2
7,
x
1
, x
2
0 et entiers
R esoudre par la m ethode de branch and bound en r esolvant les relaxations
lin eaires de mani` ere purement graphique.
Prendre comme crit` ere de choix de la variable de branchement, celle qui est
la plus eloign ee dun entier.
6.3. Crit` ere de la variable la plus proche dun entier. R esoudre le probl` eme
suivant par la m ethode de branch and bound en r esolvant chaque fois les
relaxations lin eaires graphiquement :
Max x
1
+ x
2
Scq 2x
1
+ 2x
2
1
8x
1
+ 10x
2
13
x
1
, x
2
N.
68 Chapitre 6. Resolution des probl`emes entiers.
On appliquera les crit` eres suivants dans la m ethode de branch and bound :
Le nud ` a diviser sera celui qui fournit la meilleure borne sur la valeur
de lobjectif.
La variable de division sera celle qui est la plus proche dun entier.
En cas d egalit e, on prendra celle dindice le plus faible.
6.4. M ethode de branch and bound. Consid erons le probl` eme en nombres
entiers suivant :
z

PNE
= maxz = 5x
1
+ 4x
2
s.c.q.
_

_
x
1
+x
2
5, (1)
10x
1
+6x
2
45, (2)
x
1
, x
2
0 et entiers
On demande de r esoudre le probl` eme par la m ethode de branch and bound
en r esolvant les relaxations lin eaires de mani` ere purement graphique.
(a) R esoudre graphiquement la relaxation lin eaire initiale. Quelle est la
solution optimale du probl` eme lin eaire ?
(b) Repr esenter ici par un arbre la suite de vos calculs de la m ethode de
branch and bound. Comme crit` ere de choix de la variable de bran-
chement, prendre la premi` ere non enti` ere. Justier ici bri` evement les
diff erents pas de la m ethode de branch and bound.
(c) Quelle est la solution optimale du probl` eme en nombres entiers ?
Chapitre 7
La programmation dynamique.
7.1 Introduction
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.
Les mod` eles dynamiques r epondent aux caract eristiques suivantes :
Ils comportent une certain nombre de p eriode de temps qui seront not ees :
t = 1, 2, ...n
Achaque etape, une d ecision doit etre prise. On note par x
t
la d ecision prise
` a la p eriode t.
Chaque etape est caract eris ee par un certain nombre d etats initiaux pos-
sibles. On note par s
t
l etat initial de la p eriode t.
Par exemple, en planication de la production :
les etapes sont les diff erentes p eriodes de planication,
la d ecision x
t
prise ` a la p eriode t est le niveau de production de la p eriode,
la variable d etat s
t
indique le niveau initial du stock de la p eriode t.
Lid ee g en erale des proc edures de r esolutionenprogrammationdynamique
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.
69
70 Chapitre 7. La programmation dynamique.
7.2 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 7.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.
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 7.1: Probl` eme du voyageur.
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 7.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.
Remarquez 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 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.
Section 7.2. Le probl`eme du voyageur 71
7.2.1 Formulation en un probl` eme dynamique
La formulation dun probl` eme dynamique comporte cinq etapes :
1. La d enition des etapes. Ici les etapes sont les quatre etapes du voyage.
Elles sont not ees :
t = 1, 2, ...4
2. Le choix des variables d etat. Dans notre exemple, s
t
note l etat de d epart
de l etape t. On peut ici donner les valeurs possibles de s
t
` a chaque etape :
s
1
= 1
s
2
{2, 3, 4}
s
3
{5, 6, 7}
s
4
{8, 9}
3. Le choix des variables de d ecision. Dans notre exemple, x
t
note la desti-
nation de l etape t. On peut donner les valeurs possibles de x
t
` a chaque
etape :
x
1
{2, 3, 4}
x
2
{5, 6, 7}
x
3
{8, 9}
x
4
= 10.
4. Lexpression des relations entre les variables. Ici, les contraintes expriment
que la destination dune etape (x
t
) est le point de d epart de la suivante (s
t+1
) :
s
1
= 1
s
2
= x
1
s
3
= x
2
s
4
= x
3
x
4
= 10
5. Lexpression de lobjectif. Lobjectif est ici de minimiser le co ut total du
voyage. Il peut s ecrire :
minz =
4

t=1
c
t
(s
t
, x
t
)
o` u c
t
(s
t
, x
t
) est le co ut ` a l etape daller de s
t
vers x
t
.
72 Chapitre 7. La programmation dynamique.
7.3 Proc edure de r esolution
La programmation dynamique 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.
Fixons-nous deux notations utiles pour la proc edure de r esolution.
D enition 7.1 On note par x

t
(s
t
) la meilleure strat egie ` a l etape t, si on est dans
l etat s
t
` a l etape t.
D enition 7.2 On note par f

t
(s
t
) le co ut de la meilleure strat egie ` a l etape t, si
on est dans l etat s
t
` a l etape t.
La programmation dynamique va d eterminer successivement f

4
(s
4
), f

3
(s
3
),
f

2
(s
2
) et enn 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
).
Pour t = 4, cest-` a-dire lorsque le voyageur na plus quune etape ` a effectuer, sa
destination nale est connue : x
4
= 10. Le tableau 7.1 reprend les co uts minimaux
de la derni` ere etape ainsi que la d ecision optimale en fonction de s
4
,l etat de d epart.
s
4
x

4
f

4
(s
4
)
8 10 3
9 10 4
Tableau 7.1: Co uts minimaux de la derni` ere etape
Consid erons le cas t = 3, cest-` a-dire lorsque le voyageur a encore deux etapes
` a effectuer. Si le voyageur est dans l etat 5 (s
3
= 5), il peut aller vers 8 ou 9 ` a des
co uts respectifs de c
5,8
= 1 ou c
5,9
= 4 auxquels il faut ajouter le co ut additionnel
de l etape 4 donn e dans la table 7.1. Il sagit de f

4
(8) = 3 sil va vers 8 et de
f

4
(9) = 4 sil va vers 9. Le co ut total minimum de 1 + 3 = 4 est obtenu sil va
Section 7.3. Procedure de resolution 73
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 7.2: Co uts minimaux de la troisi` eme etape.
vers 8, donc x

3
= 8 et f

3
(5) = 4. On proc` ede de m eme pour s
3
= 6 et s
3
= 7 et
on obtient les valeurs donn ees dans la table 7.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 7.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.
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 7.3: Co ut minimaux de la deuxi` eme etape.
Enn, pour 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 7.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 7.4: Co ut minimaux de la premi` ere etape.
On faut 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
7.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 7.2). On se retrouve en s
4
= 8 et on
74 Chapitre 7. La programmation dynamique.
choisit x

4
= 10 ` a l etape 4 (voir tableau 7.1). Une des routes optimales est donc
le parcours suivant :
1 3 5 8 10
et donnant un co ut total de :
f

1
(1) = 11
Cette solution est illustr ee au tableau 7.5.
t 1 2 3 4
s
t
1 3 5 8
x

t
3 5 8 10
Tableau 7.5: Solution optimale pour le probl` eme du voyageur.
7.4 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 7.6. 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 7.6: Milliers dann ees-homme suppl ementaires.
7.4.1 Formulation comme un probl` eme dynamique
1. D enition des etapes. 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
Section 7.4. Un probl`eme daectation de ressources rares 75
` a un pays, elle nest plus disponible pour les autres pays. On a donc identi e
les etapes.
2. Choix des variables d etat. Comment identier les etats ? Autrement dit,
quelle est linformation n ecessaire ` 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. On peut donner les valeurs possibles de s
t
:
s
1
= 5
s
2
{2, 3, 4}
s
3
{1, 2, 3}
3. Choix des variables de d ecision. Notons x
t
le nombre d equipes m edicales
affect ees au pays t. On peut donner les valeurs possibles de x
t
:
x
1
{1, 2, 3}
x
2
{1, 2, 3}
x
3
{1, 2, 3}
4. Relations entre les variables. Les relations de r ecurrence entre les variables
s ecrivent ici :
s
1
= 5
s
2
= s
1
x
1
s
3
= s
2
x
2
En g en eral, on peut ecrire la relation suivante :
s
t+1
= s
t
x
t
.
Il faut egalement ajouter la condition quau moins une equipe soit envoy ee
dans chaque pays :
x
t
1, t = 1, 2, 3
5. Lexpression de lobjectif. Lobjectif est ici de maximiser lefcacit e de
lallocation. Il peut s ecrire :
maxz =
3

t=1
B
t
(x
t
)
o` u B
t
(x
t
) mesure le b en ece de lallocation de x
t
equipes m edicales au pays
t.
76 Chapitre 7. La programmation dynamique.
7.4.2 R esolution par la programmation dynamique
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 7.7).
s
3
x

3
f

3
(s
3
)
1 1 50
2 2 70
3 3 80
Tableau 7.7: 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 7.8.
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 7.8: 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 7.9.
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 7.9: Calculs de l etape 1.
La solution optimale est calcul ee ci-dessous.
t 1 2 3
s
t
5 4 1
x

t
1 3 1
Elle donne un gain de 170 000 hommes-ann ees.
Section 7.5. Exercices 77
7.5 Exercices
7.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 7.10 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
Tableau 7.10: Ventes de livres
Il y a 6 vendeurs mais il est d ecid e den envoyer au mois un dans chaque
r egion.
(a) Formuler comme un probl` eme dynamique.
(b) R esoudre par la programmation dynamique.
7.2. R epartition du budget publicitaire. Une compagnie planie sa strat egie
publicitaire pour le lancement de trois nouveaux produits. Elle a un total de
6 millions de dollars ` a sa disposition pour lann ee prochaine pour lancer les
trois nouveaux produits. On suppose que la soci et e investit par million entier
sur chaque produit en publicit e avec au minimum un million sur chaque
produit. Le tableau 7.11 donne les estimations daugmentation de ventes
pour les produits en fonction du budget publicitaire investi.
Budget Produit 1 Produit 2 Produit 3
1 million +7 +4 +6
2 millions +10 +8 +9
3 millions +14 +11 +13
4 millions +17 +14 +15
Tableau 7.11: Augmentation des ventes
(a) Formulez le probl` eme comme un probl` eme de programmation dyna-
mique. Pour ce faire,
d enissez les etapes,
78 Chapitre 7. La programmation dynamique.
d enissez les variables d etat,
d enissez les variables de d ecision,
donnez la relation de r ecurrence entre les variables d etat de deux
etapes successives.
(b) Utilisez la programmation dynamique pour r esoudre ce probl` eme.
7.3. D etermination du chemin critique par la programmation dynamique.
Consid erons un projet dont le graphe de la m ethode PERT est repris ci-
dessous. Consid erons le probl` eme de la d etermination du chemin critique.
G,4
L,7
J,5
B,3
H,6
A,5
C,4
D,2
9
E,3
I,2
F,1
4
1
3
6
5
7
2
8
9
K,4
Figure 7.2: Graphe de la m ethode PERT.
On peut d eterminer ce chemin critique en cherchant le plus long chemin liant
le d ebut du projet (nud 1) ` a la n du projet (nud 9).
(a) Formuler ce probl` eme comme un probl` eme dynamique.
Quelles sont les etapes ?
Quels sont les etats du monde ` a chaque etape ?
Quels sont les d ecisions ` a chaque etape ?
Quel est le lien entre les variables ?
Quel est lobjectif du probl` eme ?
(b) Utilisez la programmation dynamique pour r esoudre ce probl` eme.
(c) D eterminer tous les chemins critiques.
Chapitre 8
Les mod` eles non lin eaires
8.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 c
T
x
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
_
.
79
80 Chapitre 8. Les mod`eles non lineaires
8.2 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, on peut avoir une so-
lution optimale qui nest pas situ ee en un point extr eme de la r egion r ealisable.
Consid erons le probl` eme non lin eaire suivant :
minz = (x
1
2)
2
+ (x
2
2)
2
s.c.q.
_
_
_
x
1
+ x
2
2
x
1
, x
2
0
(8.1)
Ala gure 8.1, on a repr esent e des courbes disovaleurs de la fonction objectif.
Il sagit, dans le cas pr esent, de cercles concentriques autour du point (2,2). On a
x
1
2
P

x
2
2
1
1
Figure 8.1: Programme non lin eaire.
int er et ` a se situer sur la courbe (et non plus la droite) disovaleur de lobjectif la
moins elev ee qui touche encore la r egion r ealisable. On constate que la solution
optimale, P

, est situ ee au milieu dune ar ete et non plus ` a un sommet du


poly` edre. Ceci rend evidemment lalgorithme propos e au chapitre 1 caduque pour
r esoudre des probl` emes non lin eaires.
Mais la solution ne doit m eme pas etre situ ee sur la fronti` ere de la r egion. Ainsi,
on peut avoir une solutionoptimale strictement int erieure ` a la r egionr ealisable.
Ceci peut etre illustr e par le m eme exemple o` u le centre des cercles concentriques
serait un point strictement int erieur ` a la r egion r ealisable. Consid erons le probl` eme
Section 8.2. Dierence avec la programmation lineaire 81
non lin eaire suivant :
minz = (x
1
2)
2
+ (x
2
2)
2
s.c.q.
_
_
_
x
1
+ x
2
5
x
1
, x
2
0
(8.2)
Cette fois-ci, la solution optimale est situ ee au cur m eme de la r egion r ealisable,
au point (2,2) comme on peut le voir ` a la gure 8.2.
x
1
2
P

x
2
2
1
1 4 3 5
4
3
5
Figure 8.2: Second exemple de programme non lin eaire.
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 la deuxi` eme
contrainte (en compl etant les carr es) est equivalente ` a :
(x
1
4)
2
+ (x
2
7)
2
16.
Ce qui correspond au plan moins un cercle de rayon 4 centr e en (4,7). La
repr esentation graphique est donn ee ` a la gure 8.3 o` u lon peut voir que (4,3)
minimum local non global !
82 Chapitre 8. Les mod`eles non lineaires
4
2
2 4
x
1
x
2
6
z = 3x
1
+5x
2
= 35
(4, 3)
(4,7)
(0, 7)
z = 3x
1
+5x
2
= 27
z = 3x
1
+5x
2
= 15
5
Figure 8.3: 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 8.4 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 8.4: 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.
Section 8.3. Les probl`emes convexes 83
8.3 Les probl` emes convexes
D enition 8.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 8.5. Ces ensembles nont pas de partie rentrante ` a la
P
Q
P
Q
Figure 8.5: Ensembles convexes.
diff erence des ensembles non convexes illustr es ` a la gure 8.6.
P
Q
P
Q
Figure 8.6: Ensembles non convexes.
D enition 8.2 Une fonction f est convexe si lensemble des points situ es au dessus
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 8.7 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
84 Chapitre 8. Les mod`eles non lineaires
x
y
f(x)
Figure 8.7: 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 8.3 Une fonction f est concave si la fonction f est convexe.
Un exemple de fonction concave est illustr ee ` a la gure 8.8.
x
y
f(x)
Figure 8.8: 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 8.4 Un probl` eme doptimisation est dit convexe sil sagit de la mi-
nimisation 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.
Section 8.4. Conditions de Kuhn et Tucker 85
8.4 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
(8.3)
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.
Pour ecrire les conditions doptimalit e, on a besoin de calculer les d eriv ees
partielles. Rappelons cette notion pour une fonction de R
n
dans R.
D enition 8.5 La d eriv ee partielle de f par rapport ` a x
j
, not ee
f
x
j
, est obtenue
en d erivant f en consid erant les autres variables comme des constantes.
Illustrons ceci sur lexemple suivant :
f(x) = 2x
2
1
+ 2x
1
x
2
+ x
2
2
10x
1
10x
2
Les d eriv ees partielles se calculent ainsi :
f
x
1
= 4x
1
+ 2x
2
10
f
x
2
= 2x
1
+ 2x
2
10
Pour ecrire les conditions doptimalit e, on doit d enir le Lagrangien.
D enition 8.6 La fonction de Lagrange est obtenue en multipliant le membre de
gauche de chaque contrainte d egalit e par un multiplicateur
i
, le membre de
gauche de chaque contrainte din egalit e par son multiplicateur
k
et en addition-
nant le tout ` a la fonction objectif :
L(x) = f(x) +
m

i=1

i
h
i
(x) +
p

k=1

k
g
k
(x)
On peut alors ecrire les tr` es importantes conditions n ecessaires suivantes :
Th eor` eme 8.1 Conditions de Kuhn-Tucker. Soit x

un minimum local pour le


probl` eme
min f(x)
s.c.q. h(x) = 0, g(x) 0
(8.4)
86 Chapitre 8. Les mod`eles non lineaires
et supposons x

r egulier pour les contraintes. Alors il existe des multiplicateurs


R
m
et R
p
avec 0 tels que
L(x

)
x
j
= 0, i = 1, . . .n (8.5)

k
g
k
(x

) = 0, k = 1, . . .p (8.6)

k
0, k = 1, . . .p (8.7)
Remarquez quen ecrivant le Lagrangien ` a la place de la fonction objectif, 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
lannulation de ses d eriv ees partielles. On remarque que les conditions (8.5) ne sont
rien dautre que lannulation des d eriv ees partielles du Lagrangien. Les conditions
(8.6) sont les conditions de compl ementarit e disant que si une contrainte nest pas
active, son multiplicateur doit etre nul. Remarquez aussi que les contraintes (8.6)
peuvent sinterpr eter en disant que : L(x

) = f(x

).
A titre dillustration, consid erons lexemple suivant :
maxz = 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
Il se r ecrit sous la forme (8.3) de la mani` ere suivante :
minf(x) = 2x
2
1
+ 2x
1
x
2
+ x
2
2
10x
1
10x
2
s.c.q.
_
g
1
(x) = x
2
1
+ x
2
2
5 0
g
2
(x) = 3x
1
+ x
2
6 0
Les conditions de Kuhn et Tucker s ecrivent ici simplement :
L(x

)
x
1
= 4x
1
+ 2x
2
10 + 2
1
x
1
+ 3
2
= 0
L(x

)
x
2
= 2x
1
+ 2x
2
10 + 2
1
x
2
+
2
= 0

1
g
1
(x

) =
1
(x
2
1
+ x
2
2
5) = 0

2
g
2
(x

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

1
0

2
0
Proposition 8.1 Si le probl` eme est un probl` eme convexe, les conditions n ecessai-
res sont aussi sufsantes pour montrer que lon est ` a loptimum.
Nous pr esenterons au chapitre 9 quelques algorithmes de r esolution.
Section 8.5. Exercices 87
8.5 Exercices
8.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.
8.2. Minimisation des risques. Un epargnant dispose de 100 euro ` 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 = 20, 091
y = 16, 712
z = 32, 877
les satisfait.
8.3. Conditions doptimalit e pour un probl` eme non lin eaire. Consid erons le
probl` eme non lin eaire suivant :
maxf(x) = 10x
1
2x
2
1
x
3
1
+ 8x
2
x
2
2
scq x
1
+ x
2
2
x
1
0
x
2
0
(a) R ecrire le probl` eme de mani` ere ` a le mettre sous la forme des conditions
du th eor` eme de Kuhn et Tucker.
88 Chapitre 8. Les mod`eles non lineaires
(b)

Ecrire le Lagrangien correspondant ` a ce probl` eme equivalent.
(c)

Ecrire les conditions n ecessaires doptimalit e de Kuhn et Tucker.
(d) Utiliser les conditions de Kuhn-Tucker pour d emontrer que (x
1
, x
2
) =
(1, 1) nest pas un point optimum.
Chapitre 9
R esolution des probl` emes non lin eaires
9.1 Introduction
Au chapitre 8, 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 9.2, ces
probl` emes peuvent etre r esolus en consid erant une suite dapproximations
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 9.3, ces probl` emes peuvent etre r esolus par la m ethode de Franck-
Wolfe qui consid` ere une suite dapproximations lin eaires de la fonction
objectif non lin eaire.
89
90 Chapitre 9. Resolution des probl`emes non lineaires
9.2 Programmation s eparable
Comme indiqu e dans lintroduction, il existe une classe particuli` ere de probl` emes
qui peuvent se r esoudre par utilisations r ep et ees de lalgorithme du Simplexe. Ce
sont les programmes s eparables.
D enition 9.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 8, dapplication de la programmation
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, not ees 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 9.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 9.2. Programmation separable 91
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
(9.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 9.1.
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
la courbe lin eaire par morceaux indiqu ee par OABC ` a la gure 9.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. An de r esoudre le probl` eme lin eaire par morceaux au moyen de
lalgorithme du Simplexe, nous allons avoir recours ` a la notion d epigraphe. En
effet, lorsque le probl` eme est convexe, on peut remplacer la fonction lin eaire par
morceaux liant x
1
et y par son epigraphe comme fait ` a la gure 9.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
92 Chapitre 9. Resolution des probl`emes non lineaires
x
y = x
2
O
B
C
1
2
3
4
5
6
1 2
A
(1)
(2)
(3)
Figure 9.1: Approximation par une fonction lin eaire par morceaux
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 9.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
En r esolvant 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 9.3. La methode de Franck-Wolfe 93
9.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.
Lid ee de la m ethode est la suivante. Il sagit dun algorithme dapproxima-
tions lin eaires successives. Appliquons cette id ee au probl` eme suivant dont les
contraintes sont purement lin eaires :
maxf(x) = 5x
1
x
2
1
+ 8x
2
2x
2
2
s.c.q.
_

_
3x
1
+ 2x
2
6
x
1
0
x
2
0
En effet, cest le type de probl` eme que nous allons rencontrer pour la r esolution
du probl` eme daffectation du trac.
Une it eration de la m ethode comporte les etapes suivantes :
a) Calcul de la direction. On calcule la direction de recherche en r esolvant un
probl` eme lin eaire obtenu en rempla cant la fonction objectif par son approxi-
mation lin eaire (points 1 et 2 ci-dessous).
b) Calcul du pas. On calcule le pas ` a faire dans la direction en minimisant la
fonction f(x) le long de la direction d etermin ee en a) (points 3 et 4 ci-
dessous).
Nous partons du point initial x
0
= (0, 0).
It eration 1 :
1. Comme seul lobjectif est non lin eaire, on va remplacer f(x) par son ap-
proximation de Taylor limit ee ` a lordre 1 :
f(x) f(0, 0) +
f
x
1
(0, 0)(x
1
0) +
f
x
2
(0, 0)(x
2
0)

Evaluons le gradient en x
0
= (0, 0) :
f
x
1
= 5 2(0) = 5
f
x
2
= 8 4(0) = 8
94 Chapitre 9. Resolution des probl`emes non lineaires
Do` u lapproximation lin eaire de la fonction en (0,0) :
g(x) = 5x
1
+ 8x
2
2. On peut donc r esoudre le probl` eme lin eaire :
maxg(x) = 5 x
1
+ 8 x
2
s.c.q.
_

_
3x
1
+ 2x
2
6
x
1
0
x
2
0
par lalgorithme du Simplexe en g en eral. Comme il ny a que deux variables,
ceci est fait graphiquement ` a la gure 9.2. La solution optimale est le point
x
1
x
2
1 2
3
2
1
P
1
P
2
P
0
z = 5x
1
+ 8x
2
Figure 9.2: M ethode de Franck-Wolfe : it eration 1
x
1
LP
= (0, 3).
3. Comme, plus on s eloigne du point de d epart x
0
, plus lapproximation
lin eaire g(x) s eloigne de la fonction f(x), on a probablement et e trop loin
en allant jusquau point x
1
LP
. Cependant, en se dirigeant dans la direction
de x
1
LP
, au d ebut du mois, on pourra r eduire f(x). On va d eterminer le pas
dans la direction :
x
1
= x
0
+ (x
1
LP
x
0
)
_
x
1
x
2
_
=
_
0
0
_
+
_
0 0
3 0
_
=
_
0
3
_
Section 9.3. La methode de Franck-Wolfe 95
avec [0, 1] qui minimise cette fois la vraie fonction :
h() = f(x
0
+ (x
1
LP
x
0
)).
On obtient donc le probl` eme de minimisation unidimensionnelle :
maxh() = 24 18
2
dont le maximum est obtenu en annulant la d eriv ee : = 2/3. Do` u
x
1
= (0, 0) + 2/3 [(0, 3) (0, 0)] = (0, 2)
It eration 2 :
1.

Evaluation du gradient en x
1
= (0, 2) :
f
x
1
= 5 2(0) = 5
f
x
2
= 8 4(2) = 0
2. R esoudre le probl` eme lin eaire :
maxz = 5 x
1
+ 0 x
2
s.c.q.
_

_
3x
1
+ 2x
2
6
x
1
0
x
2
0
Ceci est fait ` a la gure 9.3. La solution optimale est x
2
LP
= (2, 0).
3. Recherche unidimensionnelle :
x
2
= x
1
+ (x
LP
x
1
)
_
x
1
x
2
_
=
_
0
2
_
+
_
2 0
0 2
_
=
_
2
2 2
_
On obtient donc le probl` eme de minimisation unidimensionnelle :
maxh() = 8 + 10 12
2
qui est maximum pour = 5/12 do` u :
x
2
= (0, 2) + 5/12 [(2, 0) (0, 2)] = (5/6, 7/6)
96 Chapitre 9. Resolution des probl`emes non lineaires
x
1
x
2
1 2
3
2
1
P
1
P
2
P
0
z = 5x
1
Figure 9.3: M ethode de Franck-Wolfe : it eration 2.
On peut r esumer lalgorithme de Franck-Wolfe comme suit.
Algorithme 9.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.
Section 9.4. Exercices 97
9.4 Exercices
9.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
9.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 9.3.
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] Lee KRAJEWSKI, Manoj MALHOTRA et Larry RITZMAN, Operations
Management, 8` eme edition, Pearson Education, Upper Saddle River, 2007.
99
100 Bibliographie
[13] LACAZE Dominique, Optimisation appliqu ee ` a la gestion et ` a l economie,
Economica, 1990.
[14] D. G. LUENBERGER, Linear and NonlinearProgramming, Addison-Wesley,
1984.
[15] NEMHAUSER, G.L. et L.A. WOLSEY, Integer and Combinatorial Optimi-
zation, Wiley, New York, 1988.
[16] Y. NORBERT, R. OUELLET et R. PARENT, La recherche op erationnelle,
Ga etan Morin Editeur, Montr eal-Paris, 1995.
[17] SIMMONARD Michel, La programmation lin eaire, Dunod 1972.
[18] M.P. WILLIAMS, Model building in Mathematical Programming, John Wi-
ley, 1990.
[19] M.P. WILLIAMS, Model solving in Mathematical Programming, John Wiley,
1992.
[20] Hamdy TAHA, Operations Resaerch: an Introduction, 8` eme edition, Pearson
Education, Upper Saddle River, 2007.
[21] XPRESS-MP, User Guide and Reference Manual, Release 10, Dash Asso-
ciate, 1997.

You might also like