Vous êtes sur la page 1sur 106

Universite du Littoral C ote dOpale

Master 2 L.T. & Master 2 M.P.


Recherche operationnelle
Daniel DE WOLF
Dunkerque, Septembre 2009
Table des mati`eres
1 La programmation lineaire. 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 Resolution graphique . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.1 Representation de la region realisable . . . . . . . . . . 11
1.4.2 Representation de lobjectif . . . . . . . . . . . . . . . 12
1.4.3 Determination du point optimum . . . . . . . . . . . . 13
1.5 Formulation generale . . . . . . . . . . . . . . . . . . . . . . . 16
1.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2 Algorithme du Simplexe. 21
2.1 Principe de lalgorithme . . . . . . . . . . . . . . . . . . . . . 21
2.2 Ajout des variables decart. . . . . . . . . . . . . . . . . . . . 22
2.3 Notion de solution de base . . . . . . . . . . . . . . . . . . . . 23
2.4 Initialisation de lalgorithme . . . . . . . . . . . . . . . . . . . 25
2.5 Une iteration Simplexe . . . . . . . . . . . . . . . . . . . . . . 26
2.5.1 Choix de la direction . . . . . . . . . . . . . . . . . . . 26
2.5.2 Choix de la variable sortante . . . . . . . . . . . . . . . 26
2.5.3 Calcul du nouveau sommet . . . . . . . . . . . . . . . . 27
3
4 Table des mati`eres
2.5.4 Test doptimalite . . . . . . . . . . . . . . . . . . . . . 29
2.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3 Lalgorithme du Simplexe en Tableaux 33
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2 Notion de tableau Simplexe . . . . . . . . . . . . . . . . . . . 34
3.3 Tableaux Simplexe et pivotage . . . . . . . . . . . . . . . . . . 35
3.4 Probl`emes non bornes . . . . . . . . . . . . . . . . . . . . . . 39
3.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4 Analyse postoptimale. 43
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2 Variation par rapport au second membre . . . . . . . . . . . . 44
4.3 Variation des coecients objectifs . . . . . . . . . . . . . . . . 48
4.3.1 Analyse de sensibilite aux coecients objectif . . . . . 50
4.4 Co ut reduit des variables hors base . . . . . . . . . . . . . . . 51
4.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5 La programmation en nombres entiers. 55
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2 Probl`emes avec quantites indivisibles . . . . . . . . . . . . . . 56
5.3 Probl`emes avec co uts xes . . . . . . . . . . . . . . . . . . . . 57
5.4 Probl`emes avec contrainte logique . . . . . . . . . . . . . . . . 58
5.5 Melange avec nombre limite dingredients . . . . . . . . . . . . 59
5.6 Choix parmi un nombre discret de valeurs . . . . . . . . . . . 61
5.7 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6 Resolution des probl`emes entiers. 65
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.2 Principe de la methode de branch and bound . . . . . . . . . . 66
6.3 Application `a lexemple . . . . . . . . . . . . . . . . . . . . . . 67
6.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Table des mati`eres 5
7 La programmation dynamique. 73
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
7.2 Le probl`eme du voyageur . . . . . . . . . . . . . . . . . . . . . 74
7.2.1 Formulation en un probl`eme dynamique . . . . . . . . 75
7.3 Procedure de resolution . . . . . . . . . . . . . . . . . . . . . . 76
7.4 Un probl`eme daectation de ressources rares . . . . . . . . . 78
7.4.1 Formulation comme un probl`eme dynamique . . . . . . 79
7.4.2 Resolution par la programmation dynamique . . . . . . 80
7.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
8 Les mod`eles non lineaires 83
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.2 Dierence avec la programmation lineaire . . . . . . . . . . . . 84
8.3 Les probl`emes convexes . . . . . . . . . . . . . . . . . . . . . . 87
8.4 Conditions de Kuhn et Tucker . . . . . . . . . . . . . . . . . . 90
8.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
9 Resolution des probl`emes non lineaires 95
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
9.2 Programmation separable . . . . . . . . . . . . . . . . . . . . 96
9.3 La methode de Franck-Wolfe . . . . . . . . . . . . . . . . . . . 99
9.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Chapitre 1
La programmation lineaire.
1.1 Introduction
Lobjectif de ce cours est double. Il sagit, dune part, de donner une intro-
duction `a la formulation en mod`eles doptimisation. Il sagit, dautre
part, de presenter les techniques de resolution de ces probl`emes.
On parle de probl`eme doptimisation lorsquil faut maximiser une
fonction sous contraintes. Par exemple, maximiser le benece dune entre-
prise sous les contraintes de satisfaire la demande et de respecter la capacite
de production.
Le cours est divise en quatre parties correspondant `a des types dierents
de mod`eles doptimisation.
Dans la premi`ere partie du cours, nous nous concentrerons sur les
probl`emes lineaires, cest-` a-dire les probl`emes o` u la fonction objectif et les
contraintes sont purement lineaires. Lorsquil ny a que deux variables de
decision, un probl`eme lineaire peut etre resolu de mani`ere purement gra-
phique. 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 necessaire. Il sagit de lalgorithme du Sim-
plexe que nous verrons au chapitre 2 sous forme algebrique et au chapitre
3 sous forme de tableaux. Au chapitre 4, nous examinerons une question
tr`es importante : `a savoir la sensibilite de la solution `a des modications de
donnees. On parle danalyse post-optimale.
Lorsque les variables doivent prendre des valeurs enti`eres, on parle de pro-
bl`emes en nombres entiers. Cest lobjet de la deuxi`eme partie du cours.
On devrait `a proprement parler de probl`emes lineaires en nombres entiers car
on impose, en plus, aux contraintes et `a la fonction objectif detre lineaires.
7
8 Chapitre 1. La programmation lineaire.
Nous examinerons la question de la formulation de tels probl`emes au chapitre
5 tandis que nous verrons au chapitre 6 une technique de resolution de ces
probl`emes : il sagit de la methode de branch and bound.
La troisi`eme partie du cours est consacree `a letude des probl`emes
dynamiques. Le chapitre 7 est consacre `a la formulation et `a la resolution
des probl`emes dynamiques, cest-` a-dire ceux o` u une decision strategique doit
etre prise `a chaque etape. Une application typique est la planication de
production o` u `a chaque periode de lhorizon de planication, on doit decider
du niveau de production.
Lorsque les contraintes et/ou la fonction objectif sont non lineaires, on
parle de probl`emes non lineaires. Cest lobjet de la quatri`eme partie du
cours. Nous verrons au chapitre 8 la formulation et les conditions dopti-
malite dun probl`eme non lineaire tandis quelques methodes de resolution de
ces probl`emes seront presentees au chapitre 9.
Il est `a remarquer que toutes ces methodes de resolution etant mises
en uvre dans des logiciels commerciaux, il ne viendrait plus `a lidee de
les programmer soi-meme. Par exemple, le solveur dExcel dispose dune
implementation de ces algorithmes.
1.2 Plan du cours
Le cours est divise en 4 parties et 9 chapitres :
Partie I : Les probl`emes lineaires.
La programmation lineaire.
Lalgorithme du Simplexe.
Lanalyse post-optimale.
Partie II : Les probl`emes en nombres entiers.
Les mod`eles en nombres entiers.
Resolution des mod`eles en nombres entiers.
Partie III : Les mod`eles dynamiques.
La programmation dynamique.
Partie IV : Les mod`eles non lineaires.
Les mod`eles non lineaires.
Resolution des mod`eles non lineaires.
Section 1.3. Un simple exemple 9
1.3 Un simple exemple
Nous prenons un exemple tire de Hillier et Lieberman [10]. Il sagit dune
entreprise de fabrication de chassis qui envisage la production de deux nou-
veaux mod`eles au moyen des capacites residuelles de ses trois ateliers. Il
sagit respectivement dun chassis en aluminium et dun chassis en bois. Le
premier produit necessite le passage dans le premier atelier pour fabriquer le
cadre en aluminium et dans le troisi`eme atelier o` u le verre est monte sur le
chassis. Tandis que le second produit necessite le passage dans le deuxi`eme
atelier pour fabriquer le cadre en bois et dans le troisi`eme atelier o` u le verre
est monte sur le chassis. Les marges unitaires, les temps de fabrication de
chacun des produits dans chacun des ateliers ainsi que les capacites hebdo-
madaires residuelles de ces ateliers sont donnes au tableau 1.1.
Produit 1 Produit 2 Capacite 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 capacites.
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.
Denition 1.1 On appelle variable toute quantite utile `a la resolution du
probl`eme dont le mod`ele doit determiner la valeur.
10 Chapitre 1. La programmation lineaire.
Cette denition permet de dierencier les variables des param`etres, qui sont
des donnees qui peuvent varier, par exemple dune periode `a lautre ou dun
scenario `a lautre. Ici les quantites que le mod`ele doit determiner 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 mathematiquement lobjectif.
Denition 1.2 On appelle fonction objectif dun probl`eme doptimisation le
crit`ere de choix entre les diverses solutions possibles.
Ici lentreprise desire 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 :
max z = 3x
1
+ 5x
2
1.3.3 Expression des contraintes
La troisi`eme etape est la formulation les contraintes du probl`eme.
Denition 1.3 On appelle contraintes du probl`eme toutes les relations limi-
tant le choix des valeurs possibles des variables.
Ces relations peuvent etre de simples bornes sur les variables. Par exemple,
les quantite produites ne peuvent etre negatives. Mathematiquement :
x
1
, x
2
0.
Elles peuvent etre plus complexes comme les contrainte de capacite de
production. 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 capacite de
latelier 1 :
x
1
4
Semblablement, on peut construire les contraintes de capacites des deux
autres ateliers :
2x
2
12
3x
1
+ 2x
2
18
Section 1.4. Resolution graphique 11
1.4 Resolution graphique
Reprenons la formulation sous la forme condensee suivante :
max z = 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 annonce dans lintroduction, dans le cas de deux variables de
decision, un probl`eme lineaire peut etre resolu de mani`ere purement gra-
phique en suivant le processus en trois etapes :
1. representation graphique de la region realisable,
2. representation graphique des contraintes,
3. determination de la solution optimale.
1.4.1 Representation de la region realisable
La premi`ere etape de la resolution consiste donc `a representer graphi-
quement la region realisable.
Denition 1.4 On appelle region realisable, lensemble des valeurs de va-
riables de decision qui satisfont toutes les contraintes.
Dans le cas de lexemple, cest lensemble des points (x
1
, x
2
) satisfaisant les
inegalites de (1.1).
Graphiquement une inegalite telle que 3x
1
+ 2x
2
18 correspond `a un
demi-plan limite par la droite obtenue en prenant linequation `a legalite
(3x
1
+ 2x
2
= 18). Lorsque lon fait lintersection des cinq demi-plans corres-
pondant aux cinq inegalites :
_

_
x
1
4 (1)
2x
2
12 (2)
3x
1
+ 2x
2
18 (3)
x
1
0 (4)
x
2
0 (5)
12 Chapitre 1. La programmation lineaire.
on obtient le polygone hachure `a la gure 1.1.
9
6
4
2
0 2 6 x
1
x
2
(1)
4
(2)
(3)
(4)
(5)
Figure 1.1: Ensemble de production.
1.4.2 Representation de lobjectif
On voit ici clairement que le syst`eme est sous-determine. On va devoir choisir
entre ces dierents plans de production. Pour ce faire, et cest la deuxi`eme
etape de la resolution, on va representer graphiquement des lignes diso-
valeur de la fonction objectif :
z = 3x
1
+ 5x
2
.
En eet, on remarquera que lexpression de la fonction objectif fait intervenir
trois variables et ne peut donc etre representee que dans lespace. Pour se
ramener dans le plan, on va considerer 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 meme 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 represente z = 15 et z = 30.
La droite disovaleur z = 15, cest-` a-dire :
z = 3x
1
+ 5x
2
= 15
Section 1.4. Resolution graphique 13
9
6
4
2
0 2 6 x
1
x
2
4
(2)
(4)
z = 30
z = 15
z = 36
Figure 1.2: Droites disoprot.
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
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 Determination du point optimum
Enn, et cest la troisi`eme etape de la resolution, loptimum sera deter-
mine graphiquement comme le plan de production situe sur la droite diso-
prot la plus elevee, cest-` a-dire celle qui donne le prot le plus eleve. On
voit `a la gure 1.2 quil sagit du point
x

= (2, 6).
Justions ce choix. Comme on maximise le prot on a interet `a prendre la
droite disovaleur la plus elevee possible. Bien s ur, il faut que le plan de
production soit encore realisable : autrement dit, il faut se restreindre `a la
region realisable. On a alors la tr`es important remarque suivante :
Observation 1.1 Pour maximiser lobjectif, il faut prendre la droite diso-
valeur de lobjectif qui touche encore la region realisable et qui donne la plus
grande valeur `a lobjectif. Le point de contact est un point optimum.
Sur base de cet exemple, on deduit une deuxi`eme observation.
14 Chapitre 1. La programmation lineaire.
Observation 1.2 On constate que la solution optimale est `a un sommet de
la region realisable.
On peut alors se poser la question suivante : La solution optimale dun
probl`eme doptimisation lineaire sera-t-elle toujours trouvee en un sommet
de la region realisable ?
En fait, le seul cas o` u se presentent des solutions qui ne sont pas en des
sommets de la region realisable est la situation o` u tout un c ote est optimal.
Illustrons ce cas en changeant lobjectif. Supposons que lon aie un objectif
de la forme :
max z
0
= 3x
1
+ 2x
2
Il est facile, dans ce cas, de voir que les droites disovaleur de lobjectif seraient
toutes parall`eles au c ote :
3x
1
+ 2x
2
= 18
On en deduit (voir gure 1.3) que tout le c ote joignant le sommet (2,6)
au sommet (4,3) est optimal. Mais, meme dans ce cas, on peut trouver
une solution (meme deux) en un sommet de la region realisable. Il sut de
choisir le point (2,6) ou le point (4,3).
x
1
x
2
z

= 3x
1
+2x
2
= 18
(2,6)
9
6
2 0 6 4
(4,3)
Figure 1.3: Tout un c ote est optimal.
Sur base de cet exemple, on tire une troisi`eme observation :
Observation 1.3 Meme si tout un c ote 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 sut de limiter la recherche de loptimum
dun probl`eme lineaire aux seuls sommets de la region realisable. On peut
faire mieux que devaluer lobjectif en chaque sommet.
Ainsi, le principe de lalgorithme du Simplexe est, partant dun som-
met de la region realisable, daller de sommet en sommet adjacent jusqu` a
determination de loptimum.
On peut donc suggerer lalgorithme suivant :
i) Choisir comme point de depart un sommet x

de la region realisable.
ii) Determiner les c otes passant par ce sommet x

. Trouver un c ote le long


duquel z crot. Sil ny en na pas, STOP : le x

courant est optimal.


iii) Determiner le sommet y

`a lautre bout du c ote et poser x

= y

.
Retour en ii).
Le fonctionnement de lalgorithme dans le cas de lexemple est illustre `a la
gure 1.4. A la premi`ere iteration, partant du sommet initial P
0
= (0, 0),
x
1
x
2
P
0
= (0, 0)
P
1
= (0, 6)
P
2
= (2, 6)
It ration 1
It ration 2
9
2 4 6
Figure 1.4: Chemin de lalgorithme du Simplexe.
on determine la direction de laxe vertical qui permet daccrotre lobjec-
tif. On va jusquau bout du c ote et on obtient le point P
1
= (0, 6) en n
diteration 1. A la deuxi`eme iteration, on se dirige vers le point P
2
= (2, 6).
A la troisi`eme iteration, on constate quil ny a plus de direction daccrois-
sement de lobjectif. On est donc `a loptimum.
16 Chapitre 1. La programmation lineaire.
1.5 Formulation generale
Considerons quil y a n produits necessitant lutilisation de m ressources.
Notons c
j
, la marge unitaire du produit j et b
i
, la quantite de ressource
i disponible. Notons par a
ij
la quantite de ressource i consommee pour
produire une unite de produit j. Les donnees numeriques du probl`eme
sont resumees au tableau 1.2.
Ressource Produit Capacite
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: Donnees numeriques du probl`eme.
Un programme lineaire peut donc se formuler en general de la mani`ere
suivante :
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
, x
2
x
n
0.
Matriciellement, le probl`eme peut secrire comme
max z = c
T
x,
s.c.q.
_

_
Ax b,
x 0.
(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
compagnie se reduit `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 achemines chez le gros-
siste par un transporteur qui facture `a la compagnie 2 francs par kg
transporte. Ce co ut de transport vient en deduction de la marge. La
capacite de transport est de 2.000 kg par jour. Les produits P et Q
selaborent `a partir de 2 materiaux M et N selon les recettes presentees
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
Considerons une journee 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. Resolution dun probl`eme de production. Une societe produit
deux articles A et B. La production est limitee par les disponibilites en
mati`eres premi`eres : la mati`ere premi`ere P1 est limitee `a 21 unites par
semaine et P2 `a 30 unites par semaine. La production est egalement
limitee 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 unite de A necessite un
ouvrier pendant une semaine, 9 unites de P1 et 10 unites de P2. La
production dune unite de B necessite un ouvrier pendant une semaine,
3 unites de P1 et 4 unites de P2. La marge unitaire de A est de 6, elle
est de 3 pour B.
(a)

Ecrire le programme lineaire correspondant.
(b) Resoudre graphiquement.
1.3. Recyclage du papier. Une societe de tri de dechets et recyclage
de papier peut se fournir en dechets aupr`es de deux villes. Son r ole
consiste `a separer les listes dordinateur et les journaux. La repartition
entre menages et societes est dierente dune ville `a lautre expliquant
un pourcentage dierent de listes dordinateur et de journaux dans les
18 Chapitre 1. La programmation lineaire.
dechets. Ces pourcentages ainsi que la quantite maximum de dechets
que peuvent fournir par an ces deux villes sont reprises au tableau
suivant :
Ville Listes (%) Journaux (%) Ore (tonnes par an)
Ville 1 5 20 10.000
Ville 2 15 30 20.000
La societe ore aux villes un prix de 35 euro par tonne de dechet. Elle
doit decider du montant optimal de dechets `a acheter `a chaque ville
pour minimiser son co ut dachat. Pour couvrir ses frais xes, la societe
doit au moins collecter 1.500 tonnes de listing dordinateur par an. La
societe ne desire pas collecter plus de 6.000 tonnes de journaux par an.
Combien la societe doit-elle acheter de dechets par an `a chacune des
villes ?
(a) Formuler mathematiquement le probl`eme (choix des variables, ex-
pression des contraintes et de lobjectif);
(b) Determiner graphiquement le plan dachat optimal et en deduire
le co ut dachat minimum.
1.4. Planication de production sur co ut variable. Une entreprise
fabrique deux produits P
1
et P
2
. Chaque produit doit passer les deux
ateliers dusinage et de nition. Le mois dernier, 500 unites de P
1
ont
ete produites gr ace `a 750 heures dusinage et 250 heures de nition.
De meme, 700 unites de P
2
ont ete produites, necessitant 700 heures
dusinage et 350 heures de nition. Une partie du co ut de production
est independante du nombre dheures passees `a la production (les frais
xes), une partie est directement proportionnelle au nombre dheures
passees `a la production (les frais variables). Le mois passe, on a observe
la repartition 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 lunite 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 (dierence entre prix de
vente et co ut variable de production) par unite de chacun des
deux produits. Indication : calculer dabord le prix de lheure
Section 1.6. Exercices 19
dans chacun des ateliers et le temps necessaire dans chacun des
ateliers par produit.
(b) Les capacites de production sont de 1.200 heures par mois pour
lusinage et de 500 heures pour la nition. Formuler le programme
lineaire correspondant `a la maximisation de la marge sur co uts
variables.
(c) Determiner graphiquement la solution optimale.
1.5. Production de detergents. Une entreprise de fabrication de deter-
gents commercialise deux produits : le detergent destine aux menages
et celui destine au marche industriel, tous deux fabriques `a partir de
deux ingredients, notes A et B. Si la contenance est de 5 litres dans les
deux cas, la composition du produit varie dun marche `a lautre comme
indique au tableau ci-dessous
Produit detergent menager detergent industriel
Ingredient A 4 litres 2 litres
Ingredient B 1 litre 3 litres
Tableau 1.3: Production de detergents
Autrement dit, chaque bidon de 5 litres de detergent menager requi`ere
4 litres dingredient A et 1 litre dingredient B tandis que chaque bidon
de 5 litres de detergent industriel requi`ere 2 litres de A et 3 litres de B.
Chaque semaine, lentreprise peut se fournir au maximum 20.000 litres
de A et 15.000 litres de B.
De plus, lemballage est achete aupr`es dun fournisseur qui ne peut
fournir plus de 4.000 emballages par semaine pour le produit menager
et 4.500 emballages pour le produit industriel.
La marge unitaire est de 30 eurocents pour le produit destines aux
menages et de 25 eurocents pour le produit industriel. Lentreprise
desire determiner son plan de production hebdomadaire optimal.
(a) Formuler le probl`eme lineaire correspondant (choix des variables,
expression de lobjectif, expression des contraintes).
(b) Resoudre graphiquement
(c) Donner la solution optimale.
20 Chapitre 1. La programmation lineaire.
1.6. Optimisation dune fonderie. Une petite fonderie au Quebec est
specialisee dans la fonte de materiaux de recuperation an de pro-
duire deux types de produits : des tuyaux agricoles dadduction et
devacuation deau ainsi que des contrepoids pour tracteurs. La fonde-
rie est en pleine planication des operations de la semaine prochaine.
Les commandes enregistrees sel`eve `a 34 tonnes pour les tuyaux et 14
tonnes pour les contrepoids. Cependant la fonderie ne sest pas engagee
`a livrer lensemble de ces commandes la semaine prochaine. On livrera
ce que les capacites de production permettent. Il ny a pas de penalite
`a ne pas livrer les commandes la semaine prochaine. La semaine pro-
chaine, la main duvre disponible sera de 160 heures dans latelier de
polissage et de 120 heures dans latelier peinture. Il faut compter 8
heures la tonne pour polir les tuyauteries et 4 heures la tonne pour les
contrepoids. La peinture requiert 4 heures pour une tonne de tuyaux,
6 heures pour une tonne de contrepoids. La marge sur une tonne de
tuyaux est de 1 000 $, sur une tonne de contrepoids de 1 200 $. Quelles
sont les commandes `a honorer la semaine prochaine pour maximiser le
prot ?
(a) Formuler le probl`eme lineaire de la maximisation du prot (choix
des variables, expression des contraintes et de lobjectif).
(b) Resoudre graphiquement. Donnez la solution optimale
Chapitre 2
Algorithme du Simplexe.
2.1 Principe de lalgorithme
Rappelons la formulation de lexemple introductif :
max z = 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 representation graphique est donnee `a la gure 2.1.
Le principe de lalgorithme du Simplexe est de determiner une so-
lution optimale en allant de sommet en sommet adjacent.
Denition 2.1 On appelle sommet du polygone un point intersection de 2
contraintes `a legalite veriant 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.
Denition 2.2 On appelle arete du polygone les points de la region reali-
sable veriant une contrainte `a legalite.
Geometriquement, il sagit dun segment de droite situe `a la fronti`ere de la
region realisable. Par exemple, le segment de (4,3) `a (2,6) est une arete du
polygone.
21
22 Chapitre 2. Algorithme du Simplexe.
4
2
2
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 lineaire
Denition 2.3 On appelle sommets adjacents deux sommets que lon peut
joindre par une arete.
Par exemple, (4,3) est adjacent `a (2,6) mais (4,3) nest pas adjacent `a (0,0).
Nous allons maintenant voir comment eectuer ces memes operations en
utilisant uniquement lalg`ebre. Cest lobjet de lalgorithme du Simplexe.
2.2 Ajout des variables decart.
Pour pouvoir demarrer lalgorithme du Simplexe, il faut ramener les cont-
raintes dinegalite en des contraintes degalite. Observons quil est tou-
jours possible de transformer une contrainte dinegalite en une contrainte
degalite par ajout dune variable `a laquelle on impose detre non negative.
Considerons, par exemple, la contrainte
x
1
4.
Imposer que le membre de gauche soit inferieur ou egal au membre de droite,
revient `a dire quil faudrait ajouter une quantite non negative au membre de
gauche pour quil y ait egalite :
x
1
+ x
3
= 4,
avec la condition que la variable x
3
soit non negative
x
3
0.
Section 2.3. Notion de solution de base 23
Cette quantite represente un decit ou un ecart. Comme cet ecart peut
varier, on lappelle variable decart.
Denition 2.4 La variable decart est la quantite qui, ajoutee au membre
de gauche dune contrainte, permet de transformer la contrainte en egalite.
Appliquons ceci au probl`eme (2.1). On obtient le probl`eme sous forme
standard avec egalites suivant :
max z = 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 eet, dune part, toute solution realisable du probl`eme (2.1) peut etre
augmentee en une solution realisable pour le probl`eme (2.2). Toute solution
realisable du probl`eme (2.2) peut etre tronquee en une solution realisable
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 augmentee (3,2,1,8,5) du probl`eme
(2.2). Dans lautre sens, il sut de tronquer la solution dans IR
5
en ne
retenant que ses deux premi`eres composantes.
2.3 Notion de solution de base
On remarquera que les egalites du probl`eme (2.2) forment un syst`eme de m
=3 egalites en n + m = 2 + 3 = 5 inconnues. Donc la valeur de n = 2
variables peut etre xee arbitrairement. Par exemple, dans le syst`eme
degalites :
_

_
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 xees `a zero. On dit quelles sont
mises hors base.
24 Chapitre 2. Algorithme du Simplexe.
Denition 2.5 On appelle variables hors base (v.h.b.) les n variables de
IR
n+m
xees `a zero. Les m variables restantes sont appelees variables de
base (v.d.b.).
Dans lexemple, les variables de base sont donc x
3
, x
4
et x
5
dont on peut
lire la valeur dans (2.3) :
x
3
= 4
x
4
= 12
x
5
= 18
Denition 2.6 On appelle solution de base une solution o` u en ayant choisi
n variables hors base, on obtient une solution unique en resolvant les m
contraintes degalites obtenues en ajoutant les variables decart.
Denition 2.7 On appelle solution de base realisable une solution de base
qui, en plus, verie les contraintes de positivite.
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 realisable car toutes les variables de base sont positives.
Le lien entre lalg`ebre et la geometrie est alors donne par la propriete
suivante.
Propriete 2.1 La notion geometrique de sommet du polygone correspond `a
la notion algebrique de solution de base realisable.
Voir `a ce propos lexercice 1 en n de chapitre.
Nous avons dej` a annonce que lalgorithme du Simplexe consiste `a aller
de sommet en sommet adjacent. Interprete algebriquement, cela revient `a
considerer un passage dune solution de base realisable `a une autre solution
de base realisable. La notion dadjacence doit etre etendue aux solutions de
base.
Denition 2.8 On appelle solutions de base adjacentes deux solutions de
base dont les variables de base sont les memes sauf une qui est de base dans
la premi`ere base et hors base dans la seconde.
Section 2.4. Initialisation de lalgorithme 25
Dans lexemple, les deux solutions de base suivantes sont adjacentes :
x
1
= 0, x
1
= 0,
x
2
= 0, x
2
= 6,
x
3
= 4, x
3
= 4,
x
4
= 12, x
4
= 0,
x
5
= 18, x
5
= 6
car elles ne di`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 di`erent par plus dune variable hors base.
On peut le verier `a la gure 2.1.
Propriete 2.2 La notion geometrique de sommets adjacents correspond `a
la notion algebrique de solutions de base realisables 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 depart ?
Si le probl`eme est mis sous forme dinegalites avec b
i
0, i = 1, ...n, il
sut de prendre lorigine comme point de depart. Dans lexemple, cela
donne :
(x
1
, x
2
) = (0, 0)
En termes algebriques, toutes les variables originales sont mises hors base.
Automatiquement, dans le syst`eme degalites :
_

_
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
26 Chapitre 2. Algorithme du Simplexe.
Do` u la solution de base realisable de depart :
(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 beneciaire nulle, ce qui nest pas etonnant vu que
cela correspond `a une production nulle des deux produits.
2.5 Une iteration Simplexe
Pour rappel, le principe de lalgorithme du Simplexe consiste `a se
deplacer de sommet en sommet adjacent de fa con `a ameliorer la fonction
objectif. On va donc se deplacer `a partir de notre solution de base de depart
vers une solution de base realisable en suivant une arete 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
qualgebriquement, cette question se formule de mani`ere equivalente par :
quelle variable hors base va entrer en base ?
Le crit`ere de selection 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 augmen-
tation unitaire de x
2
, z augmente de 5.
Le crit`ere de selection de la variable entrante est donc le suivant : on
choisit la variable avec le coecient objectif le plus eleve.
Remarquez que pour pouvoir appliquer ce crit`ere simple (choisir la va-
riable de coecient objectif le plus eleve), la fonction objectif z doit etre
exprimee en fonction des seules variables hors base.
2.5.2 Choix de la variable sortante
La question qui se pose est : quand sarreter le long de la direction ?
Section 2.5. Une iteration Simplexe 27
Geometriquement, on se dirige sur laxe x
2
et on sarete en (6,0), `a la
premi`ere contrainte rencontree. Algebriquement, on constate quen ce point
la variable decart x
4
sannule et aller au del` a conduirait `a la rendre negative.
On va donc pousser x
2
le plus loin possible, tant que les variables de base
restent non negatives.
Le crit`ere de selection 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 va-
riables de base en fonction de x
2
:
x
3
= 4 0
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 generale, on calcul le minimum du rapport du coecient du
membre de droite sur le coecient de la variable entrante dans la meme
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 repondre en utilisant la resolution de syst`emes. Plus precisement,
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 doperations qui ne modient
pas lensemble des solutions dun syst`eme dequations :
1. Multiplier une egalite par une constante non nulle;
2. Additionner un multiple dune equation `a une autre equation.
28 Chapitre 2. Algorithme du Simplexe.
Appliquons ceci `a lexemple. Ajoutons au syst`eme de depart (2.3), en
premi`ere ligne, la denition 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)
On a egalement encadre la colonne de la variable entrante et la ligne cor-
respondant `a la valeur de la variable sortante. 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 :
1. Amener un 1 comme coecient de x
2
dans (2). Autrement dit, la
nouvelle contrainte notee (2) est lancienne (2) multipliee par 1/2 :
(2
0
) = (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
0
) = (3) (2)
(0
0
) = (0) + 5 (2
0
)
Le nouveau syst`eme est donc le suivant :
z 3x
1
+
5
2
x
4
= 30 (0
0
)
x
1
+x
3
= 4 (1)
x
2
+
1
2
x
4
= 6 (2
0
)
3x
1
x
4
+x
5
= 6 (3
0
)
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
Section 2.5. Une iteration Simplexe 29
On en deduit 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 operations delimination de x
2
des lignes autres que la
deuxi`eme se font obligatoirement en retranchant `a chacune de ces lignes un
multiple de la deuxi`eme ligne. Toute autre operation detruirait les colonnes
de la matrice identite dans le syst`eme resultant comme on peut le constater
en essayant, par exemple, de faire :
(3
0
) = 1 (3) + (2).
2.5.4 Test doptimalite
La question qui se pose maintenant est la suivante : comment determiner le
fait detre optimum.
Un sommet est optimal si tous les sommets adjacents donnent des valeurs
inferieures ou egales `a la fonction objectif. Comment peut-on voir sil existe
encore un sommet adjacent protable ?
Pour repondre `a cette question, nous allons utiliser la ligne de denition
de lobjectif. Lequation (0) se recrit :
z = 30 + 3x
1

5
2
x
4
.
Comme x
1
a un coecient positif, il est interessant de faire entrer x
1
en
base.
Le crit`ere darret sera donc le suivant : la solution de base courante est
optimale si tous les coecients objectif sont negatifs ou nuls lorsque z
est exprimee en fonction des seules variables hors base.
Eectuons donc la deuxi`eme iteration de lalgorithme du Simplexe. Au
vu de
z = 30 + 3x
1

5
2
x
4
.
on selectionne donc pour la variable entrante x
1
. En eet, cest la variable
avec le plus grand coecient objectif, et dailleurs la seule possible.
30 Chapitre 2. Algorithme du Simplexe.
Pour determiner 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
nouvelles variables de base (x
1
prend la place de x
5
) :
z +
3
2
x
4
+x
5
= 36 (0
0
) + (3
0
)
x
3
+
1
3
x
4

1
3
x
5
= 2 (1) (3
0
)/3
x
2
+
1
2
x
4
= 6 (2
0
)
x
1

1
3
x
4
+
1
3
x
5
= 2 (3
0
)/3
Donnant la nouvelle solution de base realisable :
(x
1
, x
2
, x
3
, x
4
, x
5
) = (2, 6, 2, 0, 0)
Appliquons `a nouveau le test doptimalite. La ligne objectif secrit :
z = 36
3
2
x
4
x
5
.
Comme tous les coecients objectifs sont negatifs, la solution courante
x

1
= 2
x

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

= 36.
Nous verrons au chapitre suivant voir une autre fa con de presenter les
memes calculs. Il sagit de la presentation du Simplexe en tableaux.
Section 2.6. Exercices 31
2.6 Exercices
2.1. Notion de solutions de bases adjacentes. Pour le probl`eme intro-
ductif rappele ci-dessous :
max z = 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 degalites en ajoutant les variables
decart.
(b) Considerer toutes les bases possibles . Pour rappel, une base
est obtenue en cherchant lintersection de deux contraintes prises
`a legalite. Verier la propriete suivante : Toute solution
de base realisable correspond `a un sommet de la region
realisable. On completera 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 realisable et sommet.
(c) Considerer toutes les solutions de base realisables. Donner les
couples de bases adjacentes en vous basant uniquement sur lalg`e-
bre. Pour ce faire, on completera le tableau 2.2.
32 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 realisables sont adjacentes si
elles ont les memes variables de base sauf une qui est de base dans
la premi`ere base et hors base dans la seconde.
On veriera graphiquement le resultat du tableau 2.2.
2.2. Planication de production. Une compagnie fabrique deux pro-
duits dans ses deux ateliers. Les marges unitaires sont respectivement
de 2 pour le premier produit et de 1 pour le second. Le temps passe
dans chacun des ateliers pour fabriquer un produit de chaque type est
donne 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 capacites residuelles sont de 4,5 heures par jour et de 6 heures par
jour respectivement dans le premier et le second atelier. Les produc-
tions non enti`eres sont permises.
(a) Formuler mathematiquement le probl`eme.
(b) Determiner la solution optimale au moyen de lalgorithme du Sim-
plexe. Preciser, pour chaque iteration, 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 Sim-
plexe.
Chapitre 3
Lalgorithme du Simplexe en Tableaux
3.1 Introduction
Nous avons vu au chapitre precedent une presentation algebrique de lalgo-
rithme du Simplexe. Pour rappel, il sagit, partant dune solution de base
realisable (correspondant `a un sommet de la region realisable), `a chaque
iteration de
1. choisir comme variable entrante, celle de coecient le plus eleve 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 dequations, en ce compris dans lexpression
de la fonction objectif.
Nous allons maintenant voir une autre fa con de presenter les memes calculs.
Il sagit de la presentation du Simplexe en tableaux.
On eectue generalement les calculs sur le tableau des coecients qui
porte le nom de tableau Simplexe. Mais il faut bien garder `a lesprit que
ce tableau et les operations que lon va y eectuer ne sont quune traduction
des operations sur le syst`eme dequations algebriques correspondantes.
33
34 Chapitre 3. Lalgorithme du Simplexe en Tableaux
3.2 Notion de tableau Simplexe
Denition 3.1 Un tableau Simplexe est constitue des coecients des equa-
tions algebriques sans le nom des variables. On aura donc :
1. les coecients de la fonction objectif;
2. les coecients des variables dans le membre de gauche des contraintes;
3. les coecients du membre de droite.
o` u lon separe les coecients de objectif des contraintes dune barre horizon-
tale et les coecients du membre de gauche des contraintes des coecients
du membre de droite par une barre verticale.
Reprenons lexemple du chapitre 1. Sa formulation est reprise ci-dessous :
max z = 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 depart :
z 3x
1
5x
2
= 0
x
1
+x
3
= 4
2x
2
+x
4
= 12
3x
1
+2x
2
+x
5
= 18
se met sous la forme du tableau suivant :
z x
1
x
2
x
3
x
4
x
5
1 3 5 0 0 0 0
0 1 0 1 0 0 4
0 0 2 0 1 0 12
0 3 2 0 0 1 18
Section 3.3. Tableaux Simplexe et pivotage 35
o` u lon a ajoute au dessus du tableau le nom des variables pour voir `a quelle
variable correspond chaque colonne du tableau.
Plusieurs caracteristiques dun tableau sont `a remarquer.
Tout dabord les valeurs du membre de droite donnent les valeurs cou-
rantes des variables de base.
Ensuite la premi`ere ligne donne loppose des coecients objectif.
Enn, le dernier coecient premi`ere ligne donne la valeur courante de
lobjectif.
On identie des variables de base `a une colonne de coecient de la
matrice identite et `a un coecient objectif nul.
On en deduit 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 iteration, on selection comme variable entrante la variable x
2
de coecient le plus negatif 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 selectionne la variable sortante comme etant la variable de base qui san-
nule la premi`ere. Comme nous lavons vu au chapitre precedent, cela revient
`a calculer le minimum du rapport du coecient du membre de droite de
chaque contrainte sur le coecient correspondant de la colonne pivot lorsque
ce dernier est strictement positif :
min

,
12
2
,
18
2
_
= 6.
36 Chapitre 3. Lalgorithme du Simplexe en Tableaux
Dans le cas o` u le coecient dans la colonne entrante est negatif ou nul,
la ligne nentre pas en compte dans le calcul du minimum.
Illustrons ceci sur un exemple. Supposons que le coecient de x
2
dans
la premi`ere contrainte soit -1 `a la place de 0. Lequation correspondante se
recrit de mani`ere equivalente comme suit :
x
1
= 4 + x
2
Quelle que soit la valeur de x
2
> 0, la variable de base x
1
reste positive.
Remarquez aussi que, dans le cas o` u les coecients de la variable entrante
sont tous negatifs 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 borne. 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 sut, dans le cas present, de chercher la colonne identite
dont le coecient 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
Denition 3.2 On appelle element pivot le coecient situe `a lintersection
de la colonne pivot et de la ligne pivot.
Cest donc le centre de la croix ainsi formee par la ligne et la colonne pivot.
Le pas suivant de literation Simplexe consiste `a determiner le nouveau
sommet : 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 doperations :
1. Amener un coecient 1 `a la place du pivot en divisant la ligne pivot
Section 3.3. Tableaux Simplexe et pivotage 37
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
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 operation, un multiple de
la ligne pivot `a lexclusion de toute autre ligne sinon on detruirait la matrice
identite.
La nouvelle solution de base et la nouvelle valeur de lobjectif sont res-
pectivement :
(x
1
, x
2
, x
3
, x
4
, x
5
) = (0, 6, 4, 0, 6)
z = 30.
Eectuons maintenant la deuxi`eme iteration de lalgorithme du Sim-
plexe. Le premier pas de la deuxi`eme iteration consiste `a determiner la
variable entrante. Il sagit de x
1
, la variable de coecient le plus negatif
dans la ligne objectif. Do` u la selection 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
38 Chapitre 3. Lalgorithme du Simplexe en Tableaux
Le second pas de literation consiste `a determiner la variable sortante. On
calcul le minimum du rapport des coecients du membre de droite sur le co-
ecient 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 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 literation Simplexe consiste `a determiner la nouvelle
solution de base au moyen des deux types doperations elementaires 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 resultat de ces deux types doperations 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
Section 3.4. Probl`emes non bornes 39
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 eectue par la troisi`eme iteration, on constate lors
de la selection de la variable entrante, quil ny a aucun candidat. On arrete
lalgorithme : la solution courante est optimale.
3.4 Probl`emes non bornes
Nous allons maintenant illustrer le cas de probl`emes non bornes sur lexemple
suivant :
max z = 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 decart :
max z = 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 depart 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
Eectuons la premi`ere iteration. Au depart, 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
determine la variable sortante par le minimum suivant :
min{
2
1
; } = 2.
40 Chapitre 3. Lalgorithme du Simplexe en Tableaux
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
Eectuons maintenant la deuxi`eme iteration. La variable x
2
est seule
candidate `a lentree en base. Comme tous les coecients 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 borne. On peut le verier graphiquement. Le syst`eme de
depart est le suivant ;
max z = 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 region connat
une direction o` u x
2
nest plus bornee.
-1
2
-1
2
x
1
x
2
Figure 3.1: Solution non bornee.
Section 3.5. Exercices 41
3.5 Exercices
3.1. Probl`eme `a deux variables resolu par lalgorithme du Sim-
plexe.
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 decart.
(b) Resoudre par la methode du Simplexe.
(c) Donner la solution obtenue par lalgorithme du Simplexe.
(d) Tracer la region realisable et indiquer graphiquement le chemin
suivi par lalgorithme du Simplexe.
(e) Verier 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 resolu par lalgorithme du Sim-
plexe. Resoudre en appliquant la methode du Simplexe :
max z = 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 lineaire suivant :
max z = 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.
42 Chapitre 3. Lalgorithme du Simplexe en Tableaux
Apr`es quelques iterations, le tableau Simplexe courant secrit :
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 iteration.
(b) Quelles sont les valeurs des variables decart ?
(c) Poursuivez les calculs pour determiner 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 lineaire lorsque lon modie certains coecients du probl`eme
(coecients objectif ou du membre de droite). Cest lobjet de ce que lon
appelle lanalyse postoptimale. Considerons le probl`eme suivant :
z

= max z = c
T
x,
s.c.q.
_

_
Ax b,
x 0.
On va determiner ce que devient z

si b
i
est modie en b
0
i
ou si c
j
est modie
en c
0
j
.
Pour voir leet de tels changements de donnees, une solution nave
consiste `a appliquer le Simplexe au nouveau probl`eme et bien s ur on peut en
deduire leet sur lobjectif. Mais nous allons voir dans ce chapitre que, si
la base optimale ne change pas, on peut predire sans aucun nouveau
calcul leet de variation des donnees 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 coecients
du membre de droite des contraintes. Nous verrons ensuite, le cas de la
variation des coecients de la fonction objectif. Enn, nous termine-
rons en donnant linterpretation dune autre information que lon peut tirer
du tableau Simplexe, `a savoir la valeur des co uts reduits des variables hors
base.
43
44 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 capacite
disponible dune ressource, quel est limpact sur la valeur optimale de la
fonction objectif ?
Pour des variations de membre de droite susamment faibles pour que la
meme base reste optimale, on peut repondre `a cette question en exploitant
le tableau Simplexe optimal de la mani`ere suivante :
Le prix cache (note y

i
) mesure laugmentation de la fonction objectif
si lon accrot dune unite la capacite disponible (b
i
). Dans le tableau
Simplexe optimal, le prix cache y

i
est le coecient de la variable decart
de la contrainte dans la ligne objectif.
Nous allons illustrer ceci sur sur lexemple introductif du chapitre 2 dont
lenonce est rappele ci-dessous.
max z = 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
Considerons le tableau nal qui a ete determine 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 decart des contraintes de capacite des
trois ateliers, on en deduit les valeurs des prix caches suivants :
y

1
= 0 y

2
= 3/2 y

3
= 1
Ce resultat peut etre demontre mathematiquement. Mais, plut ot que den
donner une demonstration formelle, nous allons lillustrer graphiquement.
Considerons tout dabord une augmentation de capacite du premier atelier
de b
1
= 4 `a b
0
1
= 5.
Section 4.2. Variation par rapport au second membre 45
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 capacite du premier atelier
On peut voir `a la gure 4.1 que le nouveau point optimal reste le meme
x
0
= x

= (2, 6).
En consequence de quoi, la valeur optimale de lobjectif ne change pas :
z
0
= z

= 36
Do` u une variation nulle de lobjectif, ce qui etait bien predit par la valeur
nulle du prix cache y

1
:
z

= z
0
z

= 0 = y

1
.
Le resultat peut aussi etre interprete dans lautre sens : y

1
est la perte
de prot si on diminue dune unite la capacite du premier atelier.
Remarquons, et ceci est lobjet de lanalyse de sensibilite quil y a une
limite de validite de chaque prix cache.
En eet, dans le cas de la premi`ere ressource, si leet dune augmentation
de b
1
sera nul sur la valeur optimum de lobjectif quel que soit b
1
4, il nen
va pas de meme dune diminution. En eet, en dessous de b
1
= 2, la solution
optimale va changer. On a donc determine le domaine de validite de y

1
= 0.
Il sagit de lintervalle :
b
1
[2, +1].
46 Chapitre 4. Analyse postoptimale.
Considerons maintenant une variation de la capacite du deuxi`eme atelier.
Une augmentation de capacite du deuxi`eme atelier de b
2
= 12 `a b
0
2
= 13
donne un deplacement du point optimal (voir gure 4.2) vers le nouveau
9
3
0
z = 3x
1
+ 5x
2
2 8
x
2
x
1
6
0
(1)
(3)
6 5
2x
2
= 13
2x
2
= 12
(2)
(2)
(2)
2x
2
= 18
(2,6)
(5/3,13/2)
z = 3x
1
+ 5x
2
=36
=37,5
Figure 4.2: Augmentation de la capacite du deuxi`eme atelier
point :
x
0
= (5/3, 13/2).
En consequence de quoi, la nouvelle valeur de lobjectif est donnee par :
z
0
= 37, 5
Do` u un accroissement de lobjectif egal `a la valeur du deuxi`eme prix cache :
z

= z
0
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 cache y

2
change :
y

2
= 0.
De meme, une diminution en de c` a de b
2
= 6 va changer le prix cache. On en
deduit le domaine de validite de y

2
= 3/2. Il sagit de lintervalle :
b
2
[6, 18].
Section 4.2. Variation par rapport au second membre 47
Enn, considerons une augmentation de capacite du troisi`eme atelier de
b
3
= 18 `a b
0
3
= 19. Comme on peut le voir `a la gure 4.3, cela donne un
deplacement du point optimal vers :
x
0
= (7/3, 6).
En consequence de quoi, la nouvelle valeur de lobjectif vaut :
z
0
= 37
Do` u une augmentation dobjectif egale `a la valeur du troisi`eme prix cache :
z

= z
0
z

= 37 36 = 1 = y

3
.
9
3
0
z = 3x
1
+ 5x
2
=37
2 8
x
2
x
1
6
0
(1)
(3)
6 5
(2)
3x1 + 2x2 = 18
3x + x = 19 1 2 2 (3)
(3)
3x + x = 24 1 2 2
(4,6)
(7/3,6)
z = 3x
1
+ 5x
2
=36
(2,6)
3x + x = 12 1 2 2
Figure 4.3: Variation de capacite de latelier 3
Le resultat peut aussi etre interprete dans lautre sens : y

3
est la perte
de prot si on diminue dune unite la capacite du troisi`eme atelier.
48 Chapitre 4. Analyse postoptimale.
Pour le troisi`eme atelier, au del` a de b
3
= 24, la solution optimale reste en
(4,6). Le prix cache y

3
change :
y

3
= 0.
De meme, une diminution en de c` a de b
3
= 12 va modier le prix cache. On
en deduit le domaine de validite de y

3
= 1. Il sagit de lintervalle :
b
3
[12, 24].
Ces informations sont donnees dans le rapport de sensibilite du solveur
dExcel.
4.3 Variation des coecients 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 predire cette variation de lobjectif pour autant que la solution
optimale optimale ne change pas. En eet, pour de faibles variations de
coecients objectif la solution optimale ne change pas. Seul le prot optimal
change. On peut montrer le resultat suivant.
La valeur de la j`eme variable `a loptimum (notee x

j
) mesure
laugmentation de la fonction objectif si lon accrot dune unite la marge
unitaire c
j
.
Dans le cas de lexemple illustre `a la gure 4.4, les augmentations de
prot pour une augmentation unitaire de la marge des produits valent res-
pectivement :
x

1
= 2 et x

2
= 6.
En eet, si le prot passe de :
max z = 3x
1
+ 5x
2
`a la forme suivante (augmentation de la marge de x
1
) :
max z
0
= 4x
1
+ 5x
2
,
on peut voir graphiquement que le changement de pente nest pas susant
pour changer de point optimum. Autrement dit, la solution optimale reste :
(x

1
, x

2
) = (2, 6)
Section 4.3. Variation des coecients objectifs 49
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
2x
2
= 12
3x1 + 2x2 = 18
Figure 4.4: Analyse de sensibilite de c
1
Seul le prot augmente :
z
0
= 4 2 + 5 6 = 38
On a donc une augmentation de prot :
z

= z
0
z

= 38 36 = 2,
precisement egale `a la valeur de x

1
= 2.
De mani`ere semblable, si le prot passe de :
max z = 3x
1
+ 5x
2
`a la forme suivante (augmentation de la marge de x
2
) :
max z
0
= 4x
1
+6x
2
,
on peut voir que le changement de pente nest pas susant pour changer de
point optimum. Autrement dit, la solution optimale reste identique :
(x

1
, x

2
) = (2, 6)
Seul le prot augmente :
z
0
= 3 2 +6 6 = 42
On a donc une augmentation de prot :
z

= z
0
z

= 42 36 = 6,
precisement egale `a la valeur de x

2
= 6.
50 Chapitre 4. Analyse postoptimale.
4.3.1 Analyse de sensibilite aux coecients objectif
Considerons maintenant la question lanalyse de sensibilite. Nous allons
`a nouveau lillustrer sur le meme exemple. Initialement :
z = 3x
1
+ 5x
2
On veut determiner 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 coecient 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 coecient c
1
peut augmenter jusqu` a ce que
lobjectif z = c
1
x
1
+ 5x
2
soit parall`ele au segment
3x
1
+ 2x
2
= 18.
Ceci se produit lorsquil y a egalite des pentes :
c
1
5
=
3
2
,
cest-` a-dire lorsque c
1
= 15/2.
La reponse `a la question de lanalyse de sensibilite est donc la
suivante. Tant que
c
1
[0, 15/2],
on a la meme base optimale et la meme solution optimale.
Eectuons lanalyse de sensibilite pour le second coecient objectif. Il
peut decrotre 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 egalite 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, +1[,
on a la meme base optimale et donc la meme solution optimale.
Ces intervalles de sensibilite sont egalement donnes dans le rapport de
sensibilite du solveur dExcel.
Section 4.4. Co ut reduit des variables hors base 51
4.4 Co ut reduit des variables hors base
Pour terminer ce chapitre consacre `a lanalyse postoptimale, nous allons
denir une notion importante qui peut egalement etre deduite du tableau
Simplexe optimal, il sagit du co ut reduit dune variable hors base.
Le co ut reduit de la variable hors base x
j
, note d
j
, mesure laugmen-
tation de la fonction objectif si lon accrot dune unite la valeur de la
variable hors base x
j
. Dans le tableau Simplexe optimal, le co ut reduit d
j
est loppose du coecient de la variable dans la ligne objectif.
Nous illustrerons cette notion sur l exemple de planication de la produc-
tion de chassis auquel on adjoint un troisi`eme chassis mixte aluminium bois,
pour lequel la marge unitaire est de 4 et les temps unitaires de fabrication
dans les trois ateliers sont respectivement de 1, 2 et 3 heures. La formulation
de ce probl`eme est reprise ci-dessous :
z 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 lineaire peut etre determinee 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 deduit la solution optimale suivante :
(x

1
, x

2
, x

3
) = (2, 6, 0) avec z

= 36.
Les valeurs des co uts reduits des variables hors base sont donnes par :
d
3
= 2
d
5
= 3/2
d
6
= 1
52 Chapitre 4. Analyse postoptimale.
On constate que seuls sont rentables les productions des chassis 1 et 2.
En eet, le chassis 3, bien quayant une marge unitaire superieure au chassis
1, consomme plus de ressources et permet, pour la meme capacite disponible
des trois ateliers de faire moins de chassis. On peut montrer que produire
une unite du chassis 3 diminuerait le prot de 2. En eet, supposons que
lon force la production dune unite du chassis 3. Les contraintes de capacites
peuvent se recrire avec x
3
= 1 comme suit :
_

_
x
1
4 x
3
= 3 (1
0
)
2x
2
12 2x
3
= 10 (2
0
)
3x
1
+2x
2
18 3x
3
= 15 (3
0
)
On peut resoudre le probl`eme en (x
1
, x
2
) avec ces nouvelles contraintes (voir
gure 4.5). On obtient la solution suivante : (x

1
, x

2
) = (5/3, 5). On peut
7,5
6
5
3
0 3 5
x
1
x
2
z = 3x1 +5x2 = 30
10
(1)
(2)
(3)
(5/3,5)
z = 3x1 +5x2 = 15
Figure 4.5: Justication du co ut reduit d
1
calculer le nouveau prot :
z = 3x
1
+ 5x
2
+ 4x
3
= 3
5
3
+ 5 5 + 4 1 = 34.
On a donc une diminution de prot de : z = 34 36 = 2. Pour quil
devienne interessant de produire le produit 3, il faut donc augmenter sa
marge dau moins loppose de cette quantite, soit de deux dollars.
Section 4.5. Exercices 53
4.5 Exercices
4.1. Sensibilite aux coecients de lobjectif. Soit le probl`eme lineaire
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) Determiner graphiquement la solution optimale.
(b) Determiner lintervalle maximum de variation de c
1
autour de zero
qui preserve la solution optimale.
4.2. Sensibilite du membre de droite. Pour le probl`eme lineaire formule
`a lexercice 4 du chapitre 1,
(a) Resoudre par lalgorithme du Simplexe.
(b) Determiner la valeur des prix caches `a loptimum.
(c) Si une heure supplementaire co ute le meme prix pour les 2 ateliers,
a-t-on interet a augmenter la capacite du premier ou du second ?
(d) Jusqu` a quel niveau est-il interessant daugmenter cette capacite ?
4.3. Fabrication de tourbe. Une rme de production de tourbe met sur le
marche 3 qualites de tourbes. La tourbe de qualite 3 se commercialise
en ballots de 25 kg, celle de qualite 2 en sacs plastiques de 20 kg et
celle de qualite 1 en sachets de 5 kg. La tourbe sextrait au printemps
sous forme humide et est sechee au soleil durant lete pour etre livree `a
lautomne. Un kg de tourbe humide 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 (contrainte
1). La tourbe sechee est debree `a lautomne, au moyen de debreuses
qui mettent 5 minutes pour preparer un ballot de Qualite 3, 8 minutes
pour un sac de qualite 2 et 3 minutes pour un sachet de qualite 1.
On dispose de 2 000 heures de debrage pendant la periode consideree
(contrainte 3). Lentrep ot permet de stocker 20 000 m`etres cubes de
tourbe s`eche emballee (contrainte 2), un emballage de qualite 3 requiert
1 m`etre cube, un sac de qualite 2 requiert 0,75 m`etre cube et un sachet
de qualite 1 requiert 0,20 m`etre cube. Le service marketing impose
la fabrication maximale de 15 000 ballots de qualite 3 (contrainte 4)
54 Chapitre 4. Analyse postoptimale.
dont un grossiste retient chaque annee 10 000 ballots (contrainte 5).
Le meme grossiste requiert 3 000 sacs de qualite 2 (contrainte 6). Les
prots que retire la societe de la vente de ces produits sel`event `a 9
dollars le ballot de qualite 3, `a 12 dollars le sac de qualite 2 et `a 2
dollars le sachet de qualite 1.
(a) Formuler le probl`eme lineaire 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 qualite 1. En deduire quel devrait etre le prot minimal que
la societe devrait tirer de la mise sur le marche dun sachet de
qualite 1 pour que cette production devienne rentable.
(d) Le solveur dExcel vous fournit les intervalles de sensibilite suivant
pour les coecients c
j
de lobjectif et b
i
du membre de droite :
coecient valeur valeur minimum valeur maximum
c
3
9 7, 50 15
c
2
12 7, 60 14, 4
c
1
2 1 4, 20
b
1
450 000 425 000 487 500
b
2
20 000 17 625 +1
b
3
120 000 105 000 130 000
b
4
15 000 12 000 1
b
5
10 000 1 12 000
b
6
3 000 1 7500
Combien la societe serait prete `a depenser au maximum pour por-
ter de 4 500 T `a 4 750 T la capacite printani`ere dextraction ?
(e) Si le prot unitaire associe `a un emballage de qualite 3 passait de
9 `a 11 dollars, le plan de production optimal resterait-il le meme ?
Le prot optimal serait-il augmente ou diminue ? de combien ?
Chapitre 5
La programmation en nombres entiers.
5.1 Introduction
On parle de programmes en nombres entiers lorsque lon minimise une
fonction lineaire sous des contraintes lineaires et quen plus chacune des va-
riables doit prendre des valeurs enti`eres.
On appelle probl`emes mixtes (MIP en anglais pour Mixed Integer
Programming) les probl`emes comportant un certain nombre de variables
lineaires (donc continues) et un certain nombre de variables en nombres en-
tiers (donc discr`etes).
Il est `a remarquer que la resolution des probl`emes en nombres en-
tiers est beaucoup plus dicile que celle des probl`emes lineaires.
En eet, pour les probl`emes lineaires, il existe une methode de resolution
qui permet de resoudre des probl`emes de nimporte quelle taille : il sagit de
lalgorithme du Simplexe qui a ete vu au chapitre 2. Pour les probl`emes en
nombres entiers, il existe une methods de resolution connue sous le nom de
methode de branch and bound que nous presenterons au chapitre 6 mais qui
ne permet pas de resoudre des probl`emes en nombres entiers de grande taille.
Soulignons aussi que lutilite de la programmation en nombres en-
tiers ne se resume pas `a modeliser des probl`emes `a quantites indivisibles. En
eet, on utilise la programmation en nombres entiers dans les cas suivants :
modelisation de co uts xes,
modelisation de decisions logiques,
choix parmi un nombre discret de valeurs possibles,
probl`eme de melange avec nombre limite dingredients,. . .
55
56 Chapitre 5. La programmation en nombres entiers.
5.2 Probl`emes avec quantites indivisibles
Cest la premi`ere classe dapplication qui vient `a lesprit. Comme signale
plus haut, il sagit des probl`emes o` u, soit les quantites produites, soit les
quantites 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 necessaire de resoudre le pro-
bl`eme en nombres entiers et que la methode simpliste qui consisterait
`a resoudre le probl`eme lineaire et densuite arrondir sa solution optimale
peut conduire `a des solutions sous-optimales. Ceci est illustre sur lexemple
suivant tire de Williams [19] :
Max z = x
1
+ x
2
Scq
_

_
2x
1
+2x
2
1
8x
1
+10x
2
13
x
1
, x
2
IN.
En resolvant le mod`ele lineaire obtenu en rel achant le caract`ere entier
des variables, cest-` a-dire en resolvant la relaxation lineaire 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 la solution optimale suivante du probl`eme lineaire :
(x
1
, x
2
) = (4; 4, 5).
A la gure 5.1, on a illustre en grise la region realisable correspondant
au probl`eme lineaire. On voit que la solution optimale du probl`eme lineaire
est obtenue pour le point extreme (x
1
; x
2
) = (4; 4, 5) alors que le probl`eme
en nombres entiers nadmet que les valeurs enti`eres situees dans cette region
realisable. Ces valeurs enti`eres sont indiquees par des croix `a la gure 5.1.
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 lineaire 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
realisables !
Section 5.3. Probl`emes avec co uts xes 57
x
1
x
2
-1 4 2 3 1
4,5
2
3
1
4
x
1
+ x
2
-2 x
1
+ 2x
2
= 1
-8 x
1
+ 10x
2
= 13
Figure 5.1: Exemple de programme en nombres entiers
5.3 Probl`emes avec co uts xes
Exemple 5.1 Probl`emes avec co ut xe de mise en route de la pro-
duction. On veut representer 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, note K, et dun co ut proportionnel, le taux marginal etant m.
On veut donc pouvoir exprimer la fonction suivante :
c(x) =
_
K + mx si x > 0
0 si x = 0
(5.1)
o` u x denote le niveau de production.
Cette fonction est representee `a la gure 5.2. La representation mathema-
tique de ce co ut xe necessite :
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 lineaire;
58 Chapitre 5. La programmation en nombres entiers.
K
c(x)
x
m
Figure 5.2: Representation dun co ut xe
3. lajout des contraintes suivantes :
x My, et y {0, 1} (5.2)
avec M une borne superieure sur la quantite produite x.
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 !
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 cont-
rainte disjonctive. Dans ces probl`emes, on doit determiner lenchanement
des t aches dun projet de mani`ere `a le realiser dans le meilleur delai, il se
peut que deux t aches doivent etre eectuees par la meme equipe douvriers,
soit mettent en uvre la meme machine. Les deux t aches ne peuvent donc
avoir lieu simultanement, sans que lon puisse dire laquelle doit etre eectuee
en premier lieu. Mathematiquement, on peut ecrire ceci par la condition
suivante :
soit
_
t
i
+ d
i
t
j
si i est realisee avant j
t
j
+ d
j
t
i
si j est realisee avant i
(5.3)
o` u t
i
est la variable indiquant le temps de debut au plus t ot de la t ache i et
d
i
est la duree de la t ache.
Cette disjonction peut etre resolue par la programmation mixte
binaire. En eet, denissons la variable binaire y
ij
, dont la valeur est 1 si
Section 5.5. Melange avec nombre limite dingredients 59
la tache i est realisee avant la t ache j et 0 si la t ache j est realisee avant la
t ache i.
On remplace alors la condition de 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 superieure sur la date de n des travaux.
Demontrons lequivalence. Deux cas sont possibles pour la variable bi-
naire :
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
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 automatique-
ment 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 Melange avec nombre limite dingredients
Il sagit egalement dun probl`eme generique conduisant `a une formulation
mixte enti`ere, les variables binaires indiquant la presence o` u non dun ingre-
dient dans le melange.
Cest le cas, par exemple, dun probl`eme de melange dhuiles o` u cinq
huiles sont disponibles mais o` u des contraintes techniques impliquent que
seulement trois huiles dierentes peuvent etre presentes dans le melange.
Un autre exemple, est celui du chargement de hauts fourneaux o` u le nombre
de charbons disponibles est souvent nettement superieur au nombre de char-
bons qui peuvent etre charges simultanement dans le haut fourneau. Ce
60 Chapitre 5. La programmation en nombres entiers.
nombre etant limite par le nombre de portes de chargement du haut four-
neau. Generalement, il y a egalement une contrainte sur la teneur minimum
dun ingredient dans le melange. Par exemple, dans le chargement des hauts
fournaux, on ne peut descendre en dessous de 5 % dune ingredient.
Ce probl`eme peut etre resolu par la programmation mixte zero/un.
Si x
i
note la quantite dingredient i dans une tonne de melange, on peut ecrire
la relation suivante :
x
1
+ x
2
+ x
3
+ x
4
+ x
5
= 1
Denissons la variable binaire y
i
indiquant la presence de lingredient i dans
le melange. Autrement dit :
y
i
=
_
1 si x
i
> 0
0 si x
i
= 0
On introduit alors les contraintes suivantes :
m
i
y
i
x
i
(5.5)
x
i
M
i
y
i
(5.6)
y
i
{0, 1} (5.7)
o` u m
i
est une borne inferieure sur la teneur de x
i
dans le melange et M
i
est une borne superieure sur x
i
. Par exemple, si la teneur minimum dans le
melange est de 5 %, ces contraintes secrivent :
0, 05y
i
x
i
1, 0y
i
La condition du nombre maximum dingredients dans le melange
sexprime alors simplement par :
n

i=1
y
i
k, (5.8)
avec k, le nombre maximum dingredients dans le melange.
Demontrons lequivalence. Deux cas sont possibles pour la variable x
i
:
1. Soit x
i
> 0. Alors, par les contraintes (5.6) et (5.7), la variable y
i
doit
valoir 1 et exprime bien que lingredient i est dans le melange.
2. Soit x
i
= 0. Alors, par les contraintes (5.5) et (5.7), la variable y
i
doit
valoir 0.
La contrainte (5.8), exprimera donc bien que au plus k ingredients seront
pris dans le melange.
Section 5.6. Choix parmi un nombre discret de valeurs 61
5.6 Choix parmi un nombre discret de valeurs
Dans beaucoup de probl`emes industriels, lors du dimensionnement dun ap-
pareillage, on doit choisir sa capacite parmi les valeurs commerciales dispo-
nibles sur le marche. Par exemple, lors du dimensionnement dune canalisa-
tion 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 modeliser ce choix par lutilisation de variables binaires.
En eet, denissons la variable x comme etant le diam`etre choisi et denissons
y
i
une indicatrice du fait que le diam`etre numero i a ete choisi :
y
i
=
_
1 si x = d
i
0 si sinon.
On peut alors ecrire la relation suivante pour le choix du diam`etre :
x = 12y
1
+ 17y
2
+ 24y
3
+ 47y
4
ou encore :
x
i
=
4

i=1
d
i
y
i
avec la contrainte quun seul diam`etre doit etre choisi :
y
1
+ y
2
+ y
3
+ y
4
= 1 (5.9)
et bien s ur en imposant le caract`ere binaire de chaque indicatrice :
y
i
{0, 1}, i = 1, 2...4
La contrainte (5.9) fera en eet quune seule indicatrice vaudra un tandis
que toutes les autres seront `a zero. Notez quil sagit dun cas particulier du
probl`eme precedent de melange avec un nombre limite dingredients dans le
melange puisquici on impose exactement un ingredient dans le melange par
la condition (5.9).
Nous verrons au chapitre suivante une methode de resolution de ces
probl`emes mixtes-entiers : il sagit de la methode de branch and bound connue
en fran cais sous le nom de methode de separations et evaluations.
62 Chapitre 5. La programmation en nombres entiers.
5.7 Exercices
5.1. Melange de maximum 4 charbons. Pour produire du coke, on
melange des charbons dans un haut fourneau o` u ensuite, une reaction
`a haute temperature produit le coke. On suppose quil y a 8 charbons
disponibles. Ces charbons sont entres par des bandes porteuses qui sont
au nombre de 4, permettant davoir au maximum 4 charbons dierents
dans le melange. De plus, si un charbon est present dans le melange, il
doit letre `a hauteur de minimum 5%. De plus, on exige que la teneur
du melange en Silicium soit dau plus 1,8 %. Pour obtenir la teneur
en Silicium du melange, il faut faire la somme ponderee des teneurs en
Silicium des ingredients du melange. Le tableau 5.1 reprend les prix et
Charbon Prix Teneur Si
Charbon 1 12 2,0 %
Charbon 2 14 2,5 %
Charbon 3 17 1,0 %
Charbon 4 10 5,0 %
Charbon 5 13 1,0 %
Charbon 6 9 5,0 %
Charbon 7 15 2,0 %
Charbon 8 11 1,5 %
Tableau 5.1: Teneurs en Si et prix des dierents charbons.
teneur en Si des charbons. On veut determiner le melange repondant
aux specications qui soit de co ut minimum. Formuler le probl`eme
comme un probl`eme en nombres entiers.
5.2. Localisation optimale demetteurs de television. Etant donne
une region comportant quatre villes (Lille, Dunkerque, Valencienne
et Basieux), on veut savoir o` u implanter, parmi divers emplacements
disponibles (au nombre de 5), un ensemble demetteurs de television
susceptibles de desservir ces dierentes villes au moindre co ut. La
derni`ere colonne represente le co ut de construction de chaque emetteur.
On demande decrire le programme correspondant `a la determination
du nombre demetteurs `a construire an que chaque ville soit desservie
Section 5.7. Exercices 63
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: Accessibilite des villes `a partir des emetteurs.
par au moins un emetteur et ceci `a co ut dinvestissement total mini-
mum.
5.3. Appel dores. Une municipalite lance un appel dores concernant 4
projets 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 propose pour cha-
cun des projets par lentreprise uniquement dans le cas o` u elles ont
soumissionne pour le projet. La municipalite desire minimiser le co ut
Projet A B C D
Entreprise 1 4 1 - 6
Entreprise 2 - 2 5 -
Entreprise 3 3 - 6 5
Tableau 5.3: Montants des ores.
total de ses operations de construction.

Ecrire le programme correspon-
dant sachant que chaque projet doit etre attribue `a une seule entreprise.
La municipalite desire aussi que chaque entreprise realise au moins un
projet. A quelle condition ceci est possible ? En admettant que cette
condition soit remplie, ecrire la contrainte correspondante. Formuler le
probl`eme comme un probl`eme en nombres entiers.
5.4. Aectation dune otte davions. Une compagnie aerienne desire
aecter sa otte davions aux 4 lignes quelle exploite (lignes A, B, C et
D). Le nombre de passagers desirant eectuer chaque jour un parcours
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
64 Chapitre 5. La programmation en nombres entiers.
40 places et 3 avions moyens de 180 places. Le co ut dexploitation dun
avion depend de sa taille et de la ligne `a laquelle il est aecte. Ces co uts
sont repris `a la table 5.4. On desire minimiser le co ut dexploitation
Ligne A B C D
Petits avions 4 1 10 6
Grands avions 15 4 30 20
Tableau 5.4: Co uts dexploitation.
en satisfaisant la demande. On doit egalement utiliser au moins trois
avions de type 1 (petits) sur lensemble des lignes A,B et D. Formuler
le probl`eme comme un probl`eme en nombres entiers.
5.5. Abonnements de telephonie. Ayant ete approche par trois compa-
gnies de telephonie mobile, un entrepreneur doit decider des contrats
quil souhaite passer. Chacune des trois compagnies demande un forfait
mensuel (qui nest paye que si lon passe des appels) ainsi quun co ut
`a la minute. Ces informations sont reprises dans le tableau ci-dessous.
Compagnie A B C
Frais xes mensuels 16 25 18
Co ut par minute 0, 25 0, 21 0, 22
Lentrepreneur estime ses appels `a 200 minutes par mois. Etant donne
que lon ne paie les frais xes que si lon passe des appels et que plusieurs
contrats peuvent etre souscrits simultanement, comment repartir les
appels entre les trois compagnies pour minimiser les frais telephoniques
mensuels totaux ? Formuler le probl`eme.
Chapitre 6
Resolution des probl`emes entiers.
6.1 Introduction
Lalgorithme du Simplexe fournit une methode de resolution generale pour
tous les probl`emes lineaires quelle que soit leur forme. Au contraire,
en programmation en nombres entiers, on ne dispose pas dun algorithme
general qui permette de resoudre ecacement tous les probl`emes en nombres
entiers. Cependant, il existe une classe generale de methodes connue sous
le nom de branch and bound (separation et borne) qui permet de resoudre
bon nombre de probl`emes en nombres entiers. Nous allons ici decrire cette
methode qui commence par la resolution du probl`eme lineaire obtenu en
relaxant les conditions dintegralite des variables. Cest pourquoi on appelle
ce programme la relaxation lineaire du probl`eme.
Les probl`emes de ots (programmation sur les graphes) sont eux `a mi-
chemin entre les probl`emes lineaires et les probl`emes mixtes. En eet, si
les donnees du probl`eme de ot `a co ut minimum (la formulation la plus
generale dun probl`eme de ot) sont toutes enti`eres (demandes aux sommets
enti`eres, capacites des arcs enti`eres et coecients de co ut entiers), la solu-
tion du probl`eme lineaire fournit automatiquement une solution enti`ere.
Autrement dit, ici la solution de la relaxation lineaire fournit la solution op-
timale 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
peuvent se mettre sous la forme de probl`emes de ot. Il convient donc pour
ces probl`emes davoir une methode tenant compte explicitement du caract`ere
discret des variables.
65
66 Chapitre 6. Resolution des probl`emes entiers.
6.2 Principe de la methode de branch and bound
La methode de branch and bound ou encore appelee methode de separation
et evaluation que nous allons maintenant decrire est destinee `a resoudre les
probl`emes en nombres entiers du type suivant :
z

PNE
= max c
T
x
s.c.q.
_
Ax b,
x 0 et entiers.
Cette methode peut egalement etre appliquee aux probl`emes avec variables
binaires (zero-un). Elle peut egalement etre appliquee 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 methode sur lexemple suivant tire de Norbert et al [16]
dont on a leg`erement modie la fonction objectif :
z

PNE
= max z = 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 region realisable est representee `a la gure 6.1.
Remarquons quune fa con de resoudre le probl`eme serait de construire une
borne superieure sur z

et une borne inferieure sur z

et ensuite de raner
ces bornes jusqu` a les egaliser.
Question 1 : comment construire une borne inferieure sur z

?
La reponse `a cette question est `a la fois simple et dicile. En eet, pour
trouver une borne inferieure, il sut de donner une solution realisable pour
(6.1). Comme lobjectif est de maximiser, loptimum du probl`eme ne pourra
quetre superieur `a la valeur de z en ce point. Cependant trouver en general
une solution realisable pour un probl`eme en nombres entiers nest pas une
mince aaire.
Par exemple, le point (4,4) appartient `a la region realisable. Donc :
z(4, 4) = 15 4 + 50 4 = 260 z

PNE
Question 2 : comment construire une borne superieure sur z

?
Section 6.3. Application `a lexemple 67
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: Representation de la region realisable.
Une fa con de repondre `a cette question est de resoudre le probl`eme
lineaire que lon obtient `a partir de (6.1) en laissant tomber les contraintes
dintegralite des variables. Comme on maximise sur un ensemble realisable
plus large, loptimum ainsi obtenu ne pourra quetre superieur `a loptimum
du probl`eme en nombres entiers. Cest aussi le premier pas de la methode
de branch and bound que nous allons maintenant decrire sur lexemple.
6.3 Application `a lexemple
Pas 0. Resoudre la relaxation lineaire.
Pour cet exemple, on obtient comme solution de la relaxation lineaire le point
note 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. Cepen-
dant, elle fournit une premi`ere borne superieure sur z

PNE
:
z

PNE
305 = z

PL
.
Pas 1. Brancher sur une variable non enti`ere.
68 Chapitre 6. Resolution des probl`emes entiers.
La seconde idee de la methode de branch and bound est (comme le nom lin-
dique) doperer une separation : la region realisable va etre separee en deux
sous-regions dont aucune ne peut contenir la solution optimale non enti`ere
P
0
. Cette separation necessite le choix dune variable de separation. Le
choix de cette variable est heuristique. Dierents choix sont possibles et de
ce choix peut dependre lecacite de la methode de resolution. Une fa con
simple de choisir cette variable est de prendre la variable la plus distante
dun entier. Une alternative, parfois utilisee, est de prendre la variable la
plus proche dun entier.
Le crit`ere de choix de la variable de branchement adopte ici est
de prendre la variable la plus distante dun entier.
Dans notre exemple, il sagit de la variable x
1
. On va eectuer un branche-
ment sur cette variable. Comme x
1
ne peut prendre que des valeurs enti`eres,
il ny a aucune perte de generalite dimposer que
soit x
1
4 soit x
1
5
Cependant imposer cette condition va eliminer la solution courante P
0
de la
relaxation lineaire. En general si la variable choisie x
k
a la valeur fractionnaire
N + , avec N, entier, et ]0, 1[, on imposera :
soit x
k
N soit x
k
N + 1
En imposant separement lune et lautre conditions, on obtient deux sous-
mod`eles, un mod`ele ls et un mod`ele lle. Ce que lon represente par une
diagramme du type de celui de la gure 6.2. Chaque nud de cette gure
correspond `a un probl`eme lineaire. Le nud 0 au mod`ele original. Le nud
1 est le mod`ele original avec en plus la restriction x
1
4, tandis que le nud
2 correspond au mod`ele original avec en plus la restriction x
1
5. On a ici
numerote les nuds dans lordre o` u ils ont ete generes.
On peut maintenant resoudre les relaxations lineaires correspondant aux
probl`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 elevees
que dans la relaxation lineaire precedente. Ceci nest pas etonnant : on a, en
eet, ajoute des contraintes et donc restreint lespace des solutions realisables.
Section 6.3. Application `a lexemple 69
z
4
=-
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
0
= 305
x
1
= 4,50
x = 4,75
2
r gion
vide
car impossible car entier
car domin
Figure 6.2: Arbre de branch and bound.
Comme les deux sous-regions forment une representation contenant len-
semble des solution enti`eres, on peut en conclure que la borne superieure
sur z

PNE
est :
z

PNE
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 compor-
tent 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 nou-
veau heuristique et peut `a nouveau avoir une grande inuence sur le temps
total mis pour resoudre le probl`eme. Pour lillustration de la methode, nous
adoptons la r`egle de choix heuristique suivante :
Le crit`ere de choix du nud `a diviser adopte ici est de prendre
la la relaxation lineaire 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 rep`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 operer le
branchement suivant :
soit x
2
4 soit x
2
5
On ajoute separement chacune de ces contraintes au probl`eme 2 et on gen`ere
ainsi les nuds 3 et 4. Ceci est illustre `a la gure 6.2. On resout graphi-
70 Chapitre 6. Resolution des probl`emes entiers.
quement les relaxations lineaires (voir gure 6.1) et on obtient les solutions
suivantes :
Noeud 3 : x
1
= 6, x
2
= 4, z
3
= 290.
Noeud 4 : non realisable
Noter que, au nud 3, on a obtenu une solution enti`ere dont la valeur corres-
pondante de la fonction objectif est 290. On a une premi`ere borne inferieure
sur la valeur optimale de la fonction objectif et on a donc que :
290 z

PNE
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 ete
obtenue. On dit que le nud 3 est coupe.
Remarquons aussi que le nud 4 a conduit `a un probl`eme non realisable.
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 eet, la valeur de z
1
= 285 est inferieure `a la borne inferieure
de 290 qui vient detre trouvee. 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 methode est terminee puisquil nexiste plus de nud `a diviser. On
determine la solution optimale comme etant la meilleure solution
enti`ere trouvee. 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, trouve et aussi prouve 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 lineaire est non realisable (cas du nud 4),
2. lorsque la relaxation lineaire fournit une solution enti`ere (cas du nud
3),
3. lorsque la valeur de la borne superieure est inferieure `a la valeur de la
meilleure solution enti`ere obtenue (cas du nud 1).
Section 6.4. Exercices 71
6.4 Exercices
6.1. Probl`eme daectation de lignes aeriennes. Une petite compa-
gnie aerienne dispose de six avions de 150 places. Elle desire aecter sa
otte davions aux deux lignes interieures ouvertes `a la concurrence (les
lignes OM et OT). Le nombre de passagers desirant eectuer chaque
jour un parcours sur la ligne OM par cette nouvelle compagnie est 500,
et de 200 sur la ligne OT. Le co ut marginal (frais variables tels que le
carburant, les taxes datterrissage, etc...) dun voyage sur la ligne OM
est de 4 et de 3 sur la ligne OT. On desire minimiser le co ut dexploi-
tation en satisfaisant la demande.
(a) Formuler mathematiquement le probl`eme de la meilleure aecta-
tion de la otte de cette compagnie aux deux lignes ouvertes `a la
concurrence.
(b) Resoudre par la methode de branch and bound en resolvant les
relaxations lineaires de mani`ere purement graphique ! Choisir
comme variable de branchement la variable la plus eloignee dun
entier. En cas degalite, choisir celle dindice le plus faible.
6.2. Methode 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
Resoudre par la methode de branch and bound en resolvant les relaxa-
tions lineaires de mani`ere purement graphique.
Prendre comme crit`ere de choix de la variable de branchement, celle
qui est la plus eloignee dun entier.
6.3. Crit`ere de la variable la plus proche dun entier. Resoudre le
probl`eme suivant par la methode de branch and bound en resolvant
chaque fois les relaxations lineaires graphiquement :
Max x
1
+ x
2
72 Chapitre 6. Resolution des probl`emes entiers.
Scq 2x
1
+ 2x
2
1
8x
1
+ 10x
2
13
x
1
, x
2
IN.
On appliquera les crit`eres suivants dans la methode 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 degalite, on prendra celle dindice le plus faible.
6.4. Methode de branch and bound. Considerons le probl`eme suivant :
z

PNE
= max z = 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 resoudre le probl`eme par la methode de branch and
bound en resolvant les relaxations lineaires de mani`ere purement gra-
phique.
(a) Resoudre graphiquement la relaxation lineaire initiale. Quelle est
la solution optimale du probl`eme lineaire ?
(b) Representer ici par un arbre la suite de vos calculs de la methode
de branch and bound. Comme crit`ere de choix de la variable
de branchement, prendre la premi`ere non enti`ere. Justier ici
bri`evement les dierents pas de la methode 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
sequence optimale de decisions doit etre prise. Elle est largement utilisee
en planication de la production pour determiner les lancements de produc-
tion en cas de co uts xes de lancement de production.
Les mod`eles dynamiques repondent aux caracteristiques suivantes :
Ils comportent une certain nombre de periode de temps qui seront
notees :
t = 1, 2, ...n
A chaque etape, une decision doit etre prise. On note par x
t
la decision
prise `a la periode t.
Chaque etape est caracterisee par un certain nombre detats initiaux
possibles. On note par s
t
letat initial de la periode t.
Par exemple, en planication de la production :
les etapes sont les dierentes periodes de planication,
la decision x
t
prise `a la periode t est le niveau de production de la
periode,
la variable detat s
t
indique le niveau initial du stock de la periode t.
73
74 Chapitre 7. La programmation dynamique.
7.2 Le probl`eme du voyageur
Un exemple purement ctif, tire de Hillier et Lieberman [10], va nous per-
mettre dintroduire la terminologie employee en programmation dynamique.
Il sagit du probl`eme du voyageur devant traverser louest americain il
y a plus dun si`ecle. Son point de depart et sa destination sont connus. Il
eectue 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 represente chaque etat par
un cercle. Son etat de depart est letat 1 et son etat darrivee est letat 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 degre dinsecurite du voyage. Ceux-ci sont indiques au dessus des
arcs `a la gure 7.1. Il va donc determiner son itineraire de mani`ere `a choisir
la route la plus s ure en minimisant la somme des polices dassurance pour le
passage detat 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 globa-
lement la moins ch`ere. En eet, en suivant cette strategie, on choisirait le
chemin 1 2 6 9 10 avec un co ut total dassurance de 13. Cepen-
dant en sacriant un peu `a la premi`ere etape, on peut gagner aux etapes
ulterieures. En eet, par exemple la route 1 4 6 9 10 permet un
co ut total de 11.
Une autre methode serait devaluer toutes les routes possibles. Cepen-
dant sur ce petit exemple, elles sont dej` a au nombre de 3 3 2 = 18 et
lorsque le nombre detapes et/ou le nombre detats crot, cela devient vite
un travail prohibitif.
Section 7.2. Le probl`eme du voyageur 75
7.2.1 Formulation en un probl`eme dynamique
La formulation dun probl`eme dynamique comporte cinq etapes :
1. La denition des etapes. Ici les etapes sont les quatre etapes du voyage.
Elles sont notees :
t = 1, 2, ...4
2. Le choix des variables detat. Dans notre exemple, s
t
note letat de
depart de letape 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 decision. Dans notre exemple, x
t
note la
destination de letape 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 expri-
ment que la destination dune etape (x
t
) est le point de depart 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 secrire :
minz =
4

t=1
c
t
(s
t
, x
t
)
o` u c
t
(s
t
, x
t
) est le co ut `a letape daller de s
t
vers x
t
.
76 Chapitre 7. La programmation dynamique.
7.3 Procedure de resolution
La programmation dynamique commence avec une petite portion du pro-
bl`eme original, trouve la solution optimale pour cette portion du probl`eme.
Ensuite on elargit progressivement le probl`eme, en determinant la nouvelle
solution optimale `a partir de la precedente. 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, letat 10. A literation suivante, on
elargit dune unite le nombre detapes `a eectuer. On peut ensuite deduire la
strategie optimale pour la troisi`eme etape en fonction de la strategie optimale
pour la derni`ere etape.
Fixons-nous deux notations utiles pour la procedure de resolution.
Denition 7.1 On note par x

t
(s
t
) la meilleure strategie `a letape t, si on
est dans letat s
t
`a letape t.
Denition 7.2 On note par f

t
(s
t
) le co ut de la meilleure strategie `a letape
t, si on est dans letat s
t
`a letape t.
La programmation dynamique va determiner 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 letape 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 ef-
fectuer, 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 decision optimale en
fonction de s
4
,letat de depart.
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
Considerons le cas t = 3, cest-` a-dire lorsque le voyageur a encore deux
etapes `a eectuer. Si le voyageur est dans letat 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 letape 4 donne 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
Section 7.3. Procedure de resolution 77
est obtenu sil va vers 8, donc x

3
= 8 et f

3
(5) = 4. On proc`ede de meme
pour s
3
= 6 et s
3
= 7 et on obtient les valeurs donnees dans la table 7.2.
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.
La solution pour le probl`eme o` u il reste trois etapes (t = 2) est obtenue
de mani`ere similaire. Elle est illustree `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 depart possibles sont s
2
= 2, s
2
= 3 ou s
2
= 4. Pour
les etats de depart 2 ou 4, la destination optimale peut etre au choix 5 ou 6
puisque le co ut total est le meme.
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 donne en fonction de letat destination de
letape comme la somme du co ut de premi`ere etape plus le co ut minimum
des etapes ulterieures. On obtient les resultats 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 letat 3 ou 4. Supposons quil
choisisse x

1
= 3. Pour t = 2, la strategie optimale pour s
2
= 3 est x

2
= 5
(voir tableau 7.3), ce qui dans letape t = 3 conduit `a letat s
3
= 5. La
78 Chapitre 7. La programmation dynamique.
strategie optimale pour s
3
= 5 consiste `a choisir x

3
= 8 (voir tableau 7.2).
On se retrouve en s
4
= 8 et on choisit x

4
= 10 `a letape 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 illustree 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 daectation de ressources rares
Nous illustrons le fait que le champs dapplication de la methode de resolution
est tr`es large sur un deuxi`eme exemple egalement tire de Hillier et Lieber-
man [10] : il sagit du probl`eme de lorganisation mondiale de la sante. On
suppose que lOMS dispose de 5 equipes medicales `a aecter `a 3 pays pour
mener `a bien une campagne de vaccination. LOMS doit determiner combien
dequipes envoyer dans chacun des trois pays de mani`ere `a maximiser le-
cacite generale de laectation. La mesure de lecacite est donnee en terme
dannees-homme de vie supplementaire. Ces donnees sont reprises au tableau
7.6. On suppose que chaque pays doit benecier dau moins une equipe.
Nombre dequipes Pays 1 Pays 2 Pays 3
1 45 20 50
2 70 45 70
3 90 75 80
Tableau 7.6: Milliers dannees-homme supplementaires.
Section 7.4. Un probl`eme daectation de ressources rares 79
7.4.1 Formulation comme un probl`eme dynamique
1. Denition des etapes. Bien quil ny ait pas de succession temporelle, on
peut imaginer que les trois etapes dun processus dynamique consistent
en laectation successive aux trois pays puisque lorsquune equipe est
aectee `a un pays, elle nest plus disponible pour les autres pays. On
a donc identie les etapes.
2. Choix des variables detat. Comment identier les etats ? Autre-
ment dit, quelle est linformation necessaire `a une etape pour pouvoir
determiner la politique optimale ? Il sagit simplement du nombre
dequipes medicales qui restent disponibles. Notons s
t
le nombre de-
quipes encore disponibles au debut de letape 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 decision. Notons x
t
le nombre dequipes me-
dicales aectees au pays t. On peut donner les valeurs possibles de
x
t
:
x
1
, x
2
, x
3
{1, 2, 3}
4. Relations entre les variables. Les relations de recurrence entre les va-
riables secrivent ici :
s
1
= 5
s
2
= s
1
x
1
s
3
= s
2
x
2
Il faut egalement ajouter la condition quau moins une equipe soit en-
voyee dans chaque pays :
x
t
1, t = 1, 2, 3
5. Lexpression de lobjectif. Lobjectif est ici de maximiser lecacite de
lallocation. Il peut secrire :
max z =
3

t=1
B
t
(x
t
)
o` u B
t
(x
t
) mesure le benece de lallocation de x
t
equipes medicales au
pays t.
80 Chapitre 7. La programmation dynamique.
7.4.2 Resolution par la programmation dynamique
A letape 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 aecte une equipe au pays 1 et
une equipe au pays 2). A la derni`ere etape, on a interet `a aecter 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 letape 3.
A letape 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 attribue une
equipe au pays 1). A la deuxi`eme etape, au gain de letape, il faut ajouter
le gain resultant pour letape 3 avec s
3
= s
2
x
2
. Le detail des calculs est
donne 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 letape 2.
De meme `a letape 1, au gain de letape, il faut ajouter ceux des etapes
suivantes avec s
2
= s
1
x
1
. Le detail des calculs est donne 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 letape 1.
La solution optimale donnant un gain de 170 000 hommes-annees est
calculee ci-dessous.
t 1 2 3
s
t
5 4 1
x

t
1 3 1
Section 7.5. Exercices 81
7.5 Exercices
7.1. Ventes de livres. Un editeur de livres educatifs doit decider du
nombre de vendeurs quil envoie dans chacune des regions du pays pour
maximiser le nombre de ventes. Le tableau 7.10 donne laugmentation
du nombre de ventes dans chaque region en fonction du nombre de
vendeurs envoyes. Il y a 6 vendeurs mais il est decide den envoyer au
Nombre de vendeurs Region 1 Region 2 Region 3
1 4 3 5
2 6 6 7
3 9 8 12
4 11 10 12
Tableau 7.10: Ventes de livres
mois un dans chaque region.
(a) Formuler comme un probl`eme dynamique.
(b) Resoudre par la programmation dynamique.
7.2. Repartition du budget publicitaire. Une compagnie planie sa
strategie publicitaire pour le lancement de trois nouveaux produits.
Elle a un total de 6 millions de dollars `a sa disposition pour lannee
prochaine pour lancer les trois nouveaux produits. On suppose que la
societe investit par million entier sur chaque produit en publicite 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 dynamique.
(b) Utilisez la programmation dynamique pour resoudre ce probl`eme.
82 Chapitre 7. La programmation dynamique.
7.3. Determination du chemin critique par la programmation dy-
namique. Considerons un projet dont le graphe de la methode PERT
est repris ci-dessous. Considerons le probl`eme de la determination du
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 methode PERT.
chemin critique. On peut determiner ce chemin critique en cherchant
le plus long chemin liant le debut du projet (nud 1) `a la n du projet
(nud 9).
(a) Formuler ce probl`eme comme un probl`eme dynamique.
(b) Utilisez la programmation dynamique pour resoudre ce probl`eme.
(c) Determiner tous les chemins critiques.
7.4. Determination du plus court chemin par la programmation
dynamique. Supposons que vous vouliez calculer le plus court chemin
entre la ville (1) et la ville (7) sur le reseau routier illustre `a la gure 7.3.
Ces routes passent par des villes etapes notees 2 `a 6. Le chire indique
1
2
3
4
5
6
7
12
8
13
9
6
7
8
5
7
9
Figure 7.3: Probl`eme du plus court chemin.
au dessus de chaque arc donne le temps de parcours en heures. Vous
decidez deectuer votre trajet en trois etapes. On vous demande de
formuler et de resoudre ce probl`eme par la programmation dynamique.
Chapitre 8
Les mod`eles non lineaires
8.1 Introduction
On parle de mod`ele doptimisation non lineaire lorsque lon doit maxi-
miser ou minimiser une fonction sous contraintes et que la fonction objectif,
ou au moins une contrainte est non lineaire. Dans cette partie du cours,
nous allons donc nous attacher `a la resolution du probl`eme suivant :
max f(x)
s.c.q.
_

_
g
i
(x) 0, i = 1, ...m
h
k
(x) = 0, k = 1, ...p
(8.1)
o` u f(x), g
i
(x), k = 1, ...m, et h
k
(x), i = 1, ...p sont des fonctions contin ument
dierenciables denies sur IR
n
`a valeurs dans IR. Il sagit donc de la generali-
sation au cas non lineaire du probl`eme classique de la programmation lineaire
(voir chapitre 1). Notez que tout probl`eme doptimisation non lineaire peut
se recrire sous la forme (8.1). A titre dillustration, considerons lexemple
suivant :
max e(x) = 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
x
1
+ x
2
= 5
Il se recrit sous la forme (8.1) 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
h
1
(x) = x
1
+ x
2
5 = 0
83
84 Chapitre 8. Les mod`eles non lineaires
Comme exemple de fonction objectif non lineaire, on peut citer le cas
dun rendement croissant dechelle, cest-` a-dire une contribution unitaire
au prot saccroissant avec la quantite produite. Par exemple, si la marge
unitaire est de la forme m
1
(x
1
) = 550 + 2x
1
, cela donnera un terme non
lineaire dans lobjectif :
max z = m
1
(x
1
)x
1
= 550x
1
+ 2x
2
1
.
Comme exemple de contrainte non lineaire, on peut citer la relation entre le
ot de gaz entre les nuds i et j, note 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
_
.
8.2 Dierence avec la programmation lineaire
Les mod`eles non lineaires sont beaucoup plus diciles `a resoudre en
general que les mod`eles lineaires. Nous allons souligner par quelques exemples
les dierences avec la programmation lineaire.
Tout dabord, contrairement `a la programmation lineaire, on peut avoir
une solution optimale qui nest pas situee en un point extreme de
la region realisable. Considerons le probl`eme non lineaire suivant
1
:
minz = (x
1
2)
2
+ (x
2
2)
2
s.c.q.
_
_
_
x
1
+ x
2
2
x
1
, x
2
0
(8.2)
A la gure 8.1, on a represente des courbes disovaleurs de la fonction ob-
jectif. Il sagit, dans le cas present, de cercles concentriques autour du point
(2,2). On a interet `a se situer sur la courbe (et non plus la droite) disova-
leur de lobjectif la moins elevee qui touche encore la region realisable. On
constate que la solution optimale, P

, est situee au milieu dune arete


et non plus `a un sommet du poly`edre. Ceci rend evidemment lalgorithme
propose au chapitre 1 caduque pour resoudre des probl`emes non lineaires.
Mais la solution ne doit meme pas etre situee sur la fronti`ere de la region.
Ainsi, on peut avoir une solution optimale strictement interieure `a la
1
Pour rappel, lequation dun cercle de centre (a, b) et de rayon r est donnee par
(x
1
a)
2
+ (x
2
b)
2
= r
2
Section 8.2. Dierence avec la programmation lineaire 85
x
1
2
x
2
2
1
1
P
*
Figure 8.1: Programme non lineaire.
region realisable. Ceci peut etre illustre par le meme exemple o` u le centre
des cercles concentriques serait un point strictement interieur `a la region
realisable. Considerons le probl`eme non lineaire suivant :
minz = (x
1
2)
2
+ (x
2
2)
2
s.c.q.
_
_
_
x
1
+ x
2
5
x
1
, x
2
0
(8.3)
Cette fois-ci, la solution optimale est situee au cur meme de la region
realisable, au point (2,2) comme on peut le voir `a la gure 8.2.
x
1
2
x
2
2
1
1 4 3 5
4
3
5
P
*
Figure 8.2: Second exemple de programme non lineaire.
Mais la principale diculte de la programmation non lineaire est que lon
peut avoir des optimaux locaux qui ne sont pas globaux. Illustrons
86 Chapitre 8. Les mod`eles non lineaires
ceci sur lexemple suivant :
max z = 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 representation graphique, remarquons que la deuxi`eme
contrainte est equivalente `a :
x
2
1
8x
1
+ x
2
2
14x
2
49
En completant les carres, on obtient :
x
2
1
8x
1
+16 + x
2
2
14x
2
+49 49+16 +49
ou encore :
(x
1
4)
2
+ (x
2
7)
2
16.
Ce qui correspond au plan moins un cercle de rayon 4 centre en (4,7). La
representation graphique est donnee `a la gure 8.3 o` u lon peut voir que (4,3)
minimum local non global !
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 dicultes des probl`emes non convexes :
on peut avoir des optimaux locaux qui ne sont pas globaux. Remarquez
Section 8.3. Les probl`emes convexes 87
que le probl`eme peut egalement se produire si la fonction objectif que lon
minimise est non convexe. Prenons lexemple illustre `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 determination de tous les optimaux locaux est un probl`eme tr`es delicat
en general. En eet, lorsquun optimum local est atteint, dans quelle direc-
tion faut-il continuer la recherche ? Cependant, pour des probl`emes conve-
xes, on peut montrer que tous les optimums locaux sont des optimum
globaux.
8.3 Les probl`emes convexes
Denition 8.1 Lensemble S IR
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 illustre `a la gure 8.5. Ces ensembles nont pas de partie rentrante
`a la dierence des ensembles non convexes illustres `a la gure 8.6.
Denition 8.2 Une fonction f est convexe si lensemble des points situes
au dessus de son graphe, encore appele epigraphe :
S = {(x, y) IR
n
IR|y f(x)} .
est un ensemble convexe.
88 Chapitre 8. Les mod`eles non lineaires
P
Q
P
Q
Figure 8.5: Ensembles convexes.
P
Q
P
Q
Figure 8.6: Ensembles non convexes.
Ceci est illustre `a la gure 8.7 pour lexemple de la fonction x
2
o` u lon
voit que lepigraphe est bien un ensemble convexe. La denition de fonction
convexe se ram`ene donc `a celle densemble convexe. Remarquez egalement
que la denition classique pour les fonctions de IR dans IR, `a savoir que la
corde est toujours situee au dessus du graphe se deduit directement du fait
que lepigraphe constitue un ensemble convexe.
Denition 8.3 Une fonction f est concave si la fonction f est convexe.
Un exemple de fonction concave est illustree `a la gure 8.8.
Maintenant que nous avons deni les notions densemble convexe et de
fonction convexe, nous pouvons denir la notion de probl`eme convexe :
Denition 8.4 Un probl`eme doptimisation est dit convexe sil sagit de la
minimisation dune fonction convexe sur une region realisable convexe, soit
de la maximisation dune fonction concave sur une region realisable convexe.
Comme exemple de probl`emes convexes, on peut donc citer les
probl`emes avec deseconomie dechelle puisquil sagit de la maximisation
Section 8.3. Les probl`emes convexes 89
x
y
f(x)
Figure 8.7: Exemple de fonction convexe
x
y
f(x)
Figure 8.8: Exemple de fonction concave
90 Chapitre 8. Les mod`eles non lineaires
dune fonction concave. Et comme exemple de probl`emes non conve-
xes, on peut citer les probl`emes avec economie dechelle puisquil sagit de
probl`emes de maximisation dune fonction convexe.
8.4 Conditions de Kuhn et Tucker
Nous considerons le probl`eme de minimisation sous contraintes suivant :
min f(x)
s.c.q.
_
_
_
g
k
(x) 0, k = 1, 2, ...p
h
i
(x) = 0, i = 1, 2, ...m
(8.4)
o` u f(x), h
i
(x), i = 1, 2, ...m et g
k
(x), k = 1, 2, ...p sont des fonctions dune
seule variable `a valeur reelle.
A titre dillustration, considerons lexemple suivant :
max e(x) = 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
x
1
+ x
2
= 5
Il se recrit sous la forme (8.4) 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
h
1
(x) = x
1
+ x
2
5 = 0
Pour ecrire les conditions doptimalite, on a besoin de la notion de derivees
partielles.
Denition 8.5 La derivee partielle dune fonction par rapport `a une va-
riable est obtenue en derivant la fonction en considerant que toutes les autres
variables sont des constantes.
Illustrons ceci sur lexemple de la fonction objectif :
f(x) = 2x
2
1
+ 2x
1
x
2
+ x
2
2
10x
1
10x
2
Les derivees partielles se calculent comme suit :
@f
@x
1
= 4x
1
+ 2x
2
10
@f
@x
2
= 2x
1
+ 2x
2
10
Section 8.4. Conditions de Kuhn et Tucker 91
Pour ecrire les conditions doptimalite, on a encore besoin de la notion
de Lagrangien.
Denition 8.6 Le Lagrangien est obtenu en multipliant le membre de gau-
che de chaque contrainte degalite par un multiplicateur
i
, le membre de
gauche de chaque contrainte dinegalite par son multiplicateur
k
et en addi-
tionnant le tout `a la fonction objectif :
L(x) = f(x) +
p

k=1

k
g
k
(x) +
m

i=1

i
h
i
(x)

Ecrivons le Lagrangien pour lexemple :


L(x) = 2x
2
1
+ 2x
1
x
2
+ x
2
2
10x
1
10x
2
+
1
(x
2
1
+ x
2
2
5) +
2
(3x
1
+ x
2
6)
+
1
(x
1
+ x
2
5)
On peut alors ecrire les tr`es importantes conditions necessaires sui-
vantes :
Theor`eme 8.1 Conditions de Kuhn-Tucker. Soit x

un minimum local
pour le probl`eme
min f(x)
s.c.q.
_
_
_
g
k
(x) 0, k = 1, 2, ...p
h
i
(x) = 0, i = 1, 2, ...m
et supposons x

regulier pour les contraintes. Alors il existe des multiplica-


teurs R
m
et R
p
tels que
@L(x

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

k
g
k
(x

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

k
0, k = 1, ...p (8.7)
En ecrivant le Lagrangien, on passe dun probl`eme doptimisation sous
contraintes `a un probl`eme sans contrainte. Les conditions doptimalite pour
une fonction de plusieurs variables sans contrainte sont lannulation de ses
derivees partielles. Les conditions (8.5) ne sont rien dautre que lannulation
des derivees partielles du Lagrangien.
92 Chapitre 8. Les mod`eles non lineaires
Les conditions (8.6) sont les conditions de complementarite disant que
si une contrainte nest pas active, son multiplicateur
k
doit etre nul. Re-
marquez aussi que les contraintes (8.6) peuvent sinterpreter en disant que
L(x

) = f(x

).
Illustrons ceci sur lexemple suivant :
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
h
1
(x) = x
1
+ x
2
5 = 0
Pour rappel, le Lagrangien secrit de la mani`ere suivante :
L(x) = 2x
2
1
+ 2x
1
x
2
+ x
2
2
10x
1
10x
2
+
1
(x
2
1
+ x
2
2
5) +
2
(3x
1
+ x
2
6)
+
1
(x
1
+ x
2
5)
Les conditions de Kuhn et Tucker secrivent ici simplement :
@L
@x
1
= 4x
1
+ 2x
2
10 + 2
1
x
1
+ 3
2
+
1
= 0
@L
@x
2
= 2x
1
+ 2x
2
10 + 2
1
x
2
+
2
+
1
= 0

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

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

1
0

2
0
Proposition 8.1 Si le probl`eme est un probl`eme convexe, les conditions ne-
cessaires sont aussi susantes pour montrer que lon est `a loptimum.
Nous presenterons au chapitre 9 quelques algorithmes de resolution.
Section 8.5. Exercices 93
8.5 Exercices
8.1. Conditions de Kuhn et Tucker. On consid`ere la maximisation de
la fonction 14x x
2
+ 6y y
2
+ 7 sous les contraintes x + y 2 et
x + 2y 3.
(a)

Ecrire les conditions necessaires doptimalite de Kuhn et Tucker.
(b) Determiner graphiquement la solution optimale.
(c) Veriez que la 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 determiner les parts optimales x, y et z. Les rendements
r
X
, r
Y
et r
Z
de ces trois titres sont des variables aleatoires. On suppose
connues leurs moyennes respectives : 30%, 20% et 8 %. Le risque
V (x, y, z) est mesure `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
espere du portefeuille au moins egal `a 12 %.
(a)

Ecrire le programme quadratique correspondant.
(b)

Ecrire les conditions de Kuhn et Tucker et verier si la solution
(x, y, z) = (20,091; 16,712; 32,877) les satisfait.
8.3. Conditions doptimalite pour un probl`eme non lineaire. Con-
siderons le probl`eme non lineaire suivant :
max f(x) = 10x
1
2x
2
1
x
3
1
+ 8x
2
x
2
2
scq x
1
+ x
2
2
x
1
, x
2
0
(a) Recrire le probl`eme de mani`ere `a le mettre sous la forme des condi-
tions du theor`eme de Kuhn et Tucker.
(b)

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

Ecrire les conditions necessaires doptimalite de Kuhn et Tucker.
(d) Utiliser les conditions de Kuhn-Tucker pour demontrer que (1,1)
nest pas un point optimum.
94 Chapitre 8. Les mod`eles non lineaires
8.4. Kuhn et Tucker. Considerons le probl`eme doptimisation non lineaire
suivant :
min f(x
1
, x
2
) = (x
1
4)
2
+ (x
2
4)
2
s.c.q.
_

_
2x
1
+ x
2
6 (1)
x
1
+ 2x
2
6 (2)
x
1
0 (3)
x
2
0 (4)
(a) Mettre le probl`eme sous la forme du theor`eme de Kuhn et Tucker.
(b) Ecrire le Lagrangien.
(c) Ecrire les conditions de Kuhn et Tucker.
(d) Resoudre graphiquement. Pour rappel, lequation du cercle centre
en (a, b) et de rayon r est la suivante : (x
1
a)
2
+ (x
2
b)
2
= r
2
(e) Cette solution verie-t-elle les conditions de Kuhn et Tucker ?
Chapitre 9
Resolution des probl`emes non lineaires
9.1 Introduction
Au chapitre 8, nous avons introduit la notion de mod`ele non lineaire. En
general, il sagit de resoudre 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 lineaire. Nous avons egalement vu
les conditions de Kuhn et Tucker qui sont necessairement veriees `a
loptimum dun tel probl`eme.
Nous allons maintenant voir deux cas particuliers de probl`emes non
lineaires qui peuvent etre resolus par recours iteratifs `a la programmation
lineaire. Il sagit respectivement :
Des probl`emes separables qui ne comportent que des fonctions non
lineaires dune seule variable. Comme nous allons le voir `a la section 9.2,
ces probl`emes peuvent etre resolus en considerant une suite dapproxi-
mations lineaires par morceaux des fonctions non lineaires dune seule
variable.
Des probl`emes `a contraintes lineaires. Comme nous allons le voir
`a la section 9.3, ces probl`emes peuvent etre resolus par la methode de
Franck-Wolfe qui consid`ere une suite dapproximations lineaires de la
fonction objectif non lineaire.
95
96 Chapitre 9. Resolution des probl`emes non lineaires
9.2 Programmation separable
Comme indique dans lintroduction, il existe une classe particuli`ere de pro-
bl`emes qui peuvent se resoudre par utilisations repetees de lalgorithme du
Simplexe. Ce sont les programmes separables.
Denition 9.1 Une fonction est separable si elle peut etre exprimee comme
la somme de fonctions dune seule variable :
f(x) =
n

j=1
f
j
(x
j
)
Un exemple pratique, dej` a cite au chapitre 8, dapplication de la program-
mation separable est la relation entre le ot de gaz entre les nuds i et j,
note f
ij
, et les pressions en ces points, notees p
i
et p
j
:
f
2
ij
= C
2
ij

p
2
i
p
2
j
_
puisque somme de fonctions dune seule variable alors que la fonction :
x
1
x
2
+
1
1 + x
1
+ x
3
est non separable `a cause du terme x
1
x
2
.
Les mod`eles separables peuvent etre resolus par une suite dapproxi-
mations lineaires par morceaux. Plus precisement, on eectuera de la
mani`ere suivant.
Algorithme 9.1 Algorithme de resolution des probl`emes separables.
1. Chaque fonction non lineaire dune seule variable est remplacee par
une approximation lineaire par morceaux.
2. Le probl`eme approxime est alors resolu par une version specialisee de
lalgorithme du Simplexe traitant les probl`emes lineaires par morceaux.
3. Enn, si la solution ainsi obtenue secarte trop des relations non lineai-
res originales, on rane la discretisation autour de la solution optimale
du probl`eme approxime et on it`ere.
Section 9.2. Programmation separable 97
Voyons ceci sur un exemple. Supposons que lon ait `a resoudre 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 inferieure et
une borne superieure `a la valeur que pourra prendre la variable non lineaire.
Supposons ici que 0 x
1
2, 5. On choisit alors un ensemble de valeurs de
x
1
o` u la fonction est evaluee. 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 lineaire par morceaux de la fonction
en reliant par des segments de droite les points devaluation de la fonction.
On obtient la courbe lineaire par morceaux indiquee par OABC `a la gure 9.1.
Nous allons maintenant voir comment resoudre le probl`eme lineaire par
morceaux. En eet, lalgorithme du Simplexe ne peut traiter directement
ce genre de probl`eme. An de resoudre le probl`eme lineaire par morceaux
au moyen de lalgorithme du Simplexe, nous allons avoir recours `a la notion
depigraphe. En eet, lorsque le probl`eme est convexe, on peut remplacer la
fonction lineaire par morceaux liant x
1
et y par son epigraphe comme fait `a
la gure 9.1. On peut verier que lepigraphe correspond aux trois inegalites
suivantes :
y x
1
(1)
y 3x
1
2 (2)
y 4, 5x
1
5 (3)
Ce qui peut encore secrire comme suit :
x
1
y 0
3x
1
y 2
4, 5x
1
y 5
98 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 lineaire par morceaux
Il sut alors de minimiser y. En eet, en minimisant y avec la contrainte
que (x
1
, y) appartienne `a lepigraphe, on se retrouvera donc bien sur la limite
inferieure de lepigraphe, donc sur la la courbe lineaire par morceaux indiquee
par OABC `a la gure 9.1. Le probl`eme original est donc remplace 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 resolvant le probl`eme approxime, 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 lineaire par morceaux fournit comme valeur 2, 5. Do` u
la necessite de raner la discretisation et diterer.
Section 9.3. La methode de Franck-Wolfe 99
9.3 La methode de Franck-Wolfe
Nous allons voir un type particulier dalgorithme qui permet de resoudre
les probl`emes doptimisation non lineaires convexes. Il est du type sequence
dapproximations lineaires. Il sagit de lalgorithme de Franck-Wolfe.
Son principe est particuli`erement simple dans le cas de probl`emes avec
contraintes lineaires. En eet, cette procedure combine des approximations
lineaires de lobjectif pour trouver la direction de recherche avec une re-
cherche unidimensionnelle pour trouver le pas suivant cette direction.
Lidee de la methode est la suivante. Il sagit dun algorithme dap-
proximations lineaires successives. Appliquons cette idee au probl`eme
suivant dont les contraintes sont purement lineaires :
max f(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 eet, cest le type de probl`eme que nous allons rencontrer pour la resolu-
tion du probl`eme daectation du trac.
Une iteration de la methode comporte les etapes suivantes :
a) Calcul de la direction. On calcule la direction de recherche en resol-
vant un probl`eme lineaire obtenu en rempla cant la fonction objectif par
son approximation lineaire (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 determinee en a) (points 3 et 4
ci-dessous).
Nous partons du point initial x
0
= (0, 0).
Iteration 1 :
1. Comme seul lobjectif est non lineaire, on va remplacer f(x) par son
approximation de Taylor limitee `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
100 Chapitre 9. Resolution des probl`emes non lineaires
Do` u lapproximation lineaire de la fonction en (0,0) :
g(x) = 5x
1
+ 8x
2
2. On peut donc resoudre le probl`eme lineaire :
max g(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 general. Comme il ny a que deux
variables, ceci est fait graphiquement `a la gure 9.2. La solution
x
1
x
2
1 2
3
2
1
P
1
P
2
P
0
z = 5x
1
+ 8x
2
3 4
z = 20
= 24
Figure 9.2: Methode de Franck-Wolfe : iteration 1
optimale est le point
x
1
LP
= (0, 3).
3. Comme, plus on seloigne du point de depart x
0
, plus lapproximation
lineaire g(x) seloigne de la fonction f(x), on a probablement ete trop
loin en allant jusquau point x
1
LP
. Cependant, en se dirigeant dans la
direction de x
1
LP
, au debut du mois, on pourra reduire f(x). On va
determiner 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 101
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 :
max h() = 24 18
2
dont le maximum est obtenu en annulant la derivee : = 2/3. Do` u
x
1
= (0, 0) + 2/3 [(0, 3) (0, 0)] = (0, 2)
Iteration 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. Resoudre le probl`eme lineaire :
max z = 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 :
max h() = 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)
102 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
z = 5 = 10
Figure 9.3: Methode de Franck-Wolfe : iteration 2.
On peut resumer lalgorithme de Franck-Wolfe comme suit.
Algorithme 9.2 Algorithme de Franck-Wolfe.
1. Initialisation. Soit x
0
une solution initiale realisable. Posons k = 1.
2. Iteration 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
Simplexe, x
k
LP
la solution optimale du probl`eme lineaire 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 darret. Si x
k1
et x
k
sont susamment proches, stop. Sinon
retour en 2.
Section 9.4. Exercices 103
9.4 Exercices
9.1. Programmation separable. Resoudre le probl`eme non lineaire se-
parable suivant en appliquant la technique dapproximations lineaires
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. Methode de Franck-Wolfe. Faire la troisi`eme iteration de la me-
thode de Franck-Wolfe pour lexemple traite `a la section 9.3.
Bibliographie
[1] Ravindra AHUJA, Thomas MAGNANTI et James ORLIN, Network
Flows, Prentice Hall, Englewood Clis, 1993.
[2] BAGLIN Gerard, Olivier BRUEL, Alain GARREAU, Michel GREIF et
Christian VAN DELFT, Management Industriel et Logistique, Econo-
mica, 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 Vasek, Linear Programming, Freeman and Company, 1983.


[5] DE WOLF Daniel, Olivier JANSSENS dE BISTHOVEN et Yves
SMEERS, The Simplex algorithm extended to piecewise linearly const-
rained problems, CORE DISCUSSION Paper 9119, Universite Catho-
lique 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
lineaire, Eyrolles, Paris, 2000.
[9] GUERRIEN Bernard, Initiation aux mathematiques, Economica, 1991.
[10] F.S. HILLIER et G.S. LIEBERMAN, Introduction to Operations Re-
search, 6`eme edition, Mac Graw-Hill International Editions, Singapour,
1995.
[11] F.S. HILLIER, M.S. HILLIER et G.S. LIEBERMAN, Introduction to
Management Sciences, 1`ere edition, Mac Graw-Hill International Edi-
tions, Boston, 2000.
105
106 Bibliographie
[12] Lee KRAJEWSKI, Manoj MALHOTRA et Larry RITZMAN, Opera-
tions Management, 8`eme edition, Pearson Education, Upper Saddle Ri-
ver, 2007.
[13] LACAZE Dominique, Optimisation appliquee `a la gestion et `a lecono-
mie, Economica, 1990.
[14] D. G. LUENBERGER, Linear and NonlinearProgramming, Addison-
Wesley, 1984.
[15] NEMHAUSER, G.L. et L.A. WOLSEY, Integer and Combinatorial Op-
timization, Wiley, New York, 1988.
[16] Y. NORBERT, R. OUELLET et R. PARENT, La recherche operation-
nelle, Gaetan Morin Editeur, Montreal-Paris, 1995.
[17] SIMMONARD Michel, La programmation lineaire, Dunod 1972.
[18] M.P. WILLIAMS, Model building in Mathematical Programming, John
Wiley, 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 As-
sociate, 1997.