Vous êtes sur la page 1sur 113

UNIVERSITE CHARLES DE GAULLE - LILLE 3

UFR DE MATHEMATIQUES,
SCIENCES ECONOMIQUES
ET SOCIALES.
Licence MASS
Th eorie et pratique de loptimisation
Daniel DE WOLF
Villeneuve dAscq, Octobre 2002
Table des mati` eres
I Les m ethodes doptimisation 7
1 La programmation lin eaire. 9
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Un simple exemple . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.1 Choix des variables . . . . . . . . . . . . . . . . . . . . 10
1.2.2 Expression de lobjectif . . . . . . . . . . . . . . . . . . 11
1.2.3 Expression des contraintes . . . . . . . . . . . . . . . . . 11
1.3 R esolution graphique . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.1 Repr esentation graphique de la r egion r ealisable . . . . . 12
1.3.2 Repr esentation graphique de lobjectif . . . . . . . . . . . 12
1.3.3 D etermination graphique de loptimum . . . . . . . . . . 14
1.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2 Algorithme du Simplexe. 17
2.1 Principe de lalgorithme . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Formes canoniques dun programme lin eaire. . . . . . . . . . . . 18
2.3 Notion de solution de base . . . . . . . . . . . . . . . . . . . . . 19
2.4 Initialisation de lalgorithme . . . . . . . . . . . . . . . . . . . . 20
2.5 Une it eration Simplexe . . . . . . . . . . . . . . . . . . . . . . . 21
2.5.1 Choix de la direction . . . . . . . . . . . . . . . . . . . . 21
2.5.2 Choix de la variable sortante . . . . . . . . . . . . . . . . 21
2.5.3 Calcul du nouveau sommet . . . . . . . . . . . . . . . . 22
2.5.4 Test doptimalit e . . . . . . . . . . . . . . . . . . . . . . 24
2.6 Tableau Simplexe et pivotage . . . . . . . . . . . . . . . . . . . 25
3
4 Table des mati`eres
2.7 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3 Analyse postoptimale. 31
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Variation par rapport au second membre . . . . . . . . . . . . . . 32
3.2.1 Interpr etation des prix cach es . . . . . . . . . . . . . . . 33
3.2.2 Domaine de validit e des prix cach es . . . . . . . . . . . . 34
3.3 Variation des coefcients objectifs . . . . . . . . . . . . . . . . . 36
3.3.1 Domaine de validit e de la solution optimale . . . . . . . . 36
3.4 Co ut r eduit des variables hors base . . . . . . . . . . . . . . . . . 38
3.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4 La programmation en nombres entiers. 41
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.2 Formulation des probl` emes mixtes . . . . . . . . . . . . . . . . . 41
4.2.1 Probl` emes avec co uts xes . . . . . . . . . . . . . . . . . 41
4.2.2 Probl` emes avec contrainte logique . . . . . . . . . . . . . 43
4.2.3 M elange avec nombre limit e dingr edients . . . . . . . . 44
4.2.4 Choix parmi un nombre discret de valeurs . . . . . . . . . 45
4.3 M ethode de branch and bound . . . . . . . . . . . . . . . . . . . 45
4.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5 Les mod` eles non lin eaires 51
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2 Diff erence avec la programmation lin eaire . . . . . . . . . . . . . 52
5.3 Les probl` emes convexes . . . . . . . . . . . . . . . . . . . . . . 54
5.4 Programmation s eparable . . . . . . . . . . . . . . . . . . . . . 56
5.5 La m ethode de Franck-Wolfe . . . . . . . . . . . . . . . . . . . 58
5.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Table des mati`eres 5
II Logiciels doptimisation 63
6 Le solveur dEXCEL. 65
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.2 Les rapports du solveur . . . . . . . . . . . . . . . . . . . . . . 69
6.2.1 Le rapport des r eponses . . . . . . . . . . . . . . . . . . 69
6.2.2 Le rapport de sensibilit e . . . . . . . . . . . . . . . . . . 70
6.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7 Le language GAMS 75
7.1 Un exemple de transport . . . . . . . . . . . . . . . . . . . . . . 75
7.1.1 Choix des variables de d ecision . . . . . . . . . . . . . . 75
7.1.2 Expression de lobjectif . . . . . . . . . . . . . . . . . . 76
7.1.3 Expression des contraintes . . . . . . . . . . . . . . . . . 76
7.2 Ecriture en GAMS . . . . . . . . . . . . . . . . . . . . . . . . . 77
7.2.1 Section SET . . . . . . . . . . . . . . . . . . . . . . . . 78
7.2.2 Les donn ees . . . . . . . . . . . . . . . . . . . . . . . . 79
7.2.3 Section VARIABLES . . . . . . . . . . . . . . . . . . . 81
7.2.4 Section EQUATIONS . . . . . . . . . . . . . . . . . . . 82
7.2.5 Section MODEL . . . . . . . . . . . . . . . . . . . . . . 84
7.2.6 Section SOLVE . . . . . . . . . . . . . . . . . . . . . . 84
7.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8 Fonctions plus avanc ees en GAMS 87
8.1 Les sous-ensembles . . . . . . . . . . . . . . . . . . . . . . . . 87
8.2 Les ensembles multi-dimensionnaux . . . . . . . . . . . . . . . . 87
8.3 D enition et initialisation de param` etres . . . . . . . . . . . . . . 88
8.4 D enition des variables et de leur type . . . . . . . . . . . . . . . 90
8.5 Utilisation de lop erateur dexceptions . . . . . . . . . . . . . . . 91
8.6 Section SOLVE . . . . . . . . . . . . . . . . . . . . . . . . . . 92
8.7 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6 Table des mati`eres
9 Interpr etation de la solution 95
9.1 Un exemple de planication de production . . . . . . . . . . . . 95
9.1.1 Choix des variables de d ecisions . . . . . . . . . . . . . . 96
9.1.2 Denition de la fonction objectif . . . . . . . . . . . . . 96
9.1.3 Expression des contraintes . . . . . . . . . . . . . . . . . 96
9.2 Interpr etation economique . . . . . . . . . . . . . . . . . . . . . 98
9.2.1 Interpr etation des prix duaux . . . . . . . . . . . . . . . 99
9.2.2 Interpr etation des co uts r eduits . . . . . . . . . . . . . . 99
9.3 Output de GAMS . . . . . . . . . . . . . . . . . . . . . . . . . 100
9.3.1 Echo du programme GAMS . . . . . . . . . . . . . . . . 100
9.3.2 Liste des contraintes . . . . . . . . . . . . . . . . . . . . 102
9.3.3 Liste des colonnes . . . . . . . . . . . . . . . . . . . . . 102
9.3.4 Statistiques du mod` ele . . . . . . . . . . . . . . . . . . . 103
9.3.5 Status du solveur . . . . . . . . . . . . . . . . . . . . . . 103
9.3.6 Rapport des solutions . . . . . . . . . . . . . . . . . . . 104
9.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
10 R esolution de mod` eles non lin eaires 107
10.1 Mod` eles en nombres entiers . . . . . . . . . . . . . . . . . . . . 107
10.2 Utilisation du solveur MIP avec GAMS . . . . . . . . . . . . . . 107
10.3 Mod` eles non lin eaires . . . . . . . . . . . . . . . . . . . . . . . 108
10.4 R esolution de probl` emes non lin eaires avec GAMS . . . . . . . . 108
10.5 Conditions de Kuhn et Tucker . . . . . . . . . . . . . . . . . . . 109
10.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Partie I
Les m ethodes doptimisation
7
Chapitre 1
La programmation lin eaire.
1.1 Introduction
Dans cette premi` ere partie du cours, nous allons donner une introduction aux
techniques de r esolution des probl` emes doptimisation, cest-` a-dire des probl` emes
o` u lon veut maximiser une fonction de plusieurs variables sous des contraintes.
En effet, bon nombre de probl` emes de gestion se formulent de cette mani` ere.
Nous commencerons par le cas des probl` emes lin eaires, cest-` a-dire les pro-
bl` emes o` u la fonction objectif et les contraintes sont purement lin eaires. Lorsquil
ny a que deux variables de d ecision, un probl` eme lin eaire peut etre r esolu de
mani` ere purement graphique. Lorsquil y a un plus grand nombre de variables,
un algorithme mis en uvre sous la forme dun programme informatique sav` ere
n ecessaire. Il sagit de lalgorithme du Simplexe que nous verrons au chapitre 2.
Lorsque les variables doivent prendre des valeurs enti` eres, on parle de probl` e-
mes en nombres entiers. On devrait ` a proprement parler de probl` emes lin eaires en
nombres entiers car on impose, en plus, aux contraintes et ` a la fonction objectif
d etre lin eaires. Nous verrons au chapitre 4 une technique de r esolution de ces
probl` emes : il sagit de la m ethode de branch and bound.
Lorsque les contraintes et/ou la fonction objectif sont non lin eaires, on parle
de probl` emes non lin eaires. Nous verrons au chapitre 5 deux algorithmes de
r esolution de probl` emes non lin eaires.
Il est ` a remarquer que ces m ethodes de r esolutions etant mises enuvre dans des
logiciels commerciaux, il ne viendrait plus ` a lid ee de les programmer soi-m eme.
La seconde partie du cours sera consacr ee au solveur dExcel [4] et au logiciel
GAMS [1] qui disposent tous deux dune impl ementation de ces algorithmes.
9
10 Chapitre 1. La programmation lineaire.
1.2 Un simple exemple
Nous prenons un exemple tir e de Hillier et Lieberman [6]. Il sagit dune entreprise
de fabrication de chassis qui envisage la production de deux nouveaux mod` eles
au moyen des capacit es r esiduelles de ses trois ateliers. Il sagit respectivement
dun chassis en aluminium et dun chassis en bois. Le premier produit n ecessite
le passage dans le premier atelier pour fabriquer le cadre en aluminium et dans le
troisi` eme atelier o` u le verre est mont e sur le chassis. Tandis que le second produit
n ecessite le passage dans le deuxi` eme atelier pour fabriquer le cadre en bois et
dans le troisi` eme atelier o` u le verre est mont e sur le chassis. Les marges unitaires,
les temps de fabrication de chacun des produits dans chacun des ateliers ainsi que
les capacit es hebdomadaires r esiduelles de ces ateliers sont donn es au tableau 1.1.
La question qui se pose est la suivante : Combien faut-il produire de chassis de
chaque type par semaine pour maximiser le prot net ?
Produit 1 Produit 2 Capacit e disponible
(heures/produit) (heures/produit) (heures/semaine)
Atelier 1 1 0 4
Atelier 2 0 2 12
Atelier 3 3 2 18
Marge 3$ 5$
Tableau 1.1: Marges, temps dusinage et capacit es.
La formulation dun probl` eme doptimisation comporte toujours trois etapes :
1. choix des variables du mod` ele,
2. formulation de lobjectif,
3. formulation des contraintes.
1.2.1 Choix des variables
D enition 1.1 On appelle variable toute quantit e utile ` a la r esolution du probl` eme
dont le mod` ele doit d eterminer la valeur.
Cette d enition permet de diff erencier les variables des param` etres, qui sont des
donn ees qui peuvent varier, par exemple dune p eriode ` a lautre. Ici les quantit es
Section 1.2. Un simple exemple 11
que le mod` ele doit d eterminer sont les productions de chassis par semaine :
x
1
= nombre de chassis de type 1 produits par semaine,
x
2
= nombre de chassis de type 2 produits par semaine.
1.2.2 Expression de lobjectif
D enition 1.2 On appelle fonction objectif dun probl` eme doptimisation le cri-
t` ere de choix entre les diverses solutions possibles.
Ici lentreprise d esire maximiser son prot net qui sexprime comme suit :
maxz = 3x
1
+ 5x
2
1.2.3 Expression des contraintes
D enition 1.3 On appelle contraintes du probl` eme toutes les relations limitant
le choix des valeurs possibles des variables.
Ces relations peuvent etre de simples bornes sur les variables. Par exemple, les
quantit e produites ne peuvent etre n egatives. Math ematiquement :
x
1
, x
2
0.
Elles peuvent etre plus complexes comme les contrainte de capacit e de produc-
tion. Le temps pour assembler 1 chassis de type 1 dans latelier 1 est de 1 heure
o` u il reste 4 heures disponibles. Do` u la contrainte de capacit e de latelier 1 :
x
1
4
Semblablement, on peut ecrire les contraintes de capacit e des 2 autres ateliers :
2x
2
12
3x
1
+ 2x
2
18
Il est alors tr` es utile de reprendre sous une forme condens ee la formulation
compl` ete du probl` eme. Ici, on obtient la formulation suivante :
maxz = 3 x
1
+ 5 x
2
s.c.q.
_

_
x
1
4
2x
2
12
3x
1
+ 2x
2
18
x
1
0
x
2
0
(1.1)
12 Chapitre 1. La programmation lineaire.
1.3 R esolution graphique
Comme annonc e dans lintroduction, dans le cas de deux variables de d ecision,
un probl` eme lin eaire peut etre r esolu de mani` ere purement graphique en suivant le
processus en trois etapes suivant :
1. repr esentation graphique de la r egion r ealisable;
2. repr esentation graphique de lobjectif,
3. d etermination graphique du point optimal.
1.3.1 Repr esentation graphique de la r egion r ealisable
D enition 1.4 On appelle r egion r ealisable, lensemble des valeurs de variables
de d ecision qui satisfont toutes les contraintes.
Dans le cas de lexemple, cest lensemble des points (x
1
, x
2
) satisfaisant les
in egalit es de (1.1).
Graphiquement une in egalit e telle que 3x
1
+ 2x
2
18 correspond ` a un demi-
plan limit e par la droite obtenue en prenant lin equation ` a l egalit e (ici 3x
1
+2x
2
=
18). Lorsque lon fait lintersection des cinq demi-plans correspondant aux cinq
in egalit es, suivantes :
_

_
x
1
4 (1)
2x
2
12 (2)
3x
1
+ 2x
2
18 (3)
x
1
0 (4)
x
2
0 (5)
onobtient le polygone hachur e ` a la gure 1.1. En economie, cet ensemble r ealisable
est encore appel e lensemble de production.
1.3.2 Repr esentation graphique de lobjectif
On voit ici clairement que le syst` eme est sous-d etermin e. On va devoir choisir entre
ces diff erents plans de production. Pour ce faire, on va repr esenter graphiquement
des lignes disovaleur de la fonction objectif :
z = 3x
1
+ 5x
2
.
Section 1.3. Resolution graphique 13
10
8
6
4
2
0 2 4 6 8 x
1
x
2
(1)
(2)
(3)
(4)
(5)
Figure 1.1: Ensemble de production.
En effet, on remarquera que lexpression de la fonction objectif fait intervenir trois
variables et ne peut donc etre repr esent ee que dans lespace. Pour se ramener dans
le plan, on va consid erer des valeurs successives de lobjectif :
z = k.
Ce qui correspond graphiquement ` a des droites parall` eles
3x
1
+ 5x
2
= k.
Les points dune de ces droites sont donc le lieu de tous les points donnant la m eme
valeur du prot (do` u le nom de droite disovaleur de la fonction objectif). Ceci
est fait ` a la gure 1.2 o` u lon a repr esent e z = 10, 20 et 36.
10
8
6
4
2
0 2 6 8 x
1
x
2
z = 36
z = 20
z = 10
(2, 6)
(4 , 3)
Figure 1.2: Droites disoprot.
14 Chapitre 1. La programmation lineaire.
1.3.3 D etermination graphique de loptimum
Loptimum sera d etermin e graphiquement comme le plan de production situ e sur
la droite disoprot la plus elev ee, cest-` a-dire celle qui donne le prot le plus
elev e. On voit ` a la gure 1.2 quil sagit du point
x

= (2, 6).
Justions ce choix. Comme on maximise le prot on a int er et ` a prendre la droite
disovaleur la plus elev ee possible. Bien s ur, il faut que le plan de production soit
encore r ealisable : autrement dit, il faut se restreindre ` a la r egion r ealisable.
Observation 1 :
Pour maximiser lobjectif, il faut prendre la droite disovaleur de lobjectif qui
touche encore la r egion r ealisable et qui donne la plus grande valeur ` a lobjectif.
Observation 2 :
On constate que la solution optimale est ` a un sommet de la r egion r ealisable.
On peut alors se demander si la solution optimale sera toujours ` a un sommet de
la r egion r ealisable. En fait, lorsque la ligne diso-marge est parall` ele ` a un c ot e du
polygone, on a que tout le c ot e du polygone est optimal. Par exemple, si lobjectif
avait et e z = 3x
1
+ 2x
2
, tout le segment entre (2,6) et (4,3) aurait et e optimum.
Observation 3 :
M eme si tout un c ot e du polygone est optimal, on peut toujours choisir une solution
optimale correspondant ` a un sommet.
En conclusion, on peut voir quil suft d evaluer la valeur de lobjectif en
chacun des sommets pour d eterminer loptimum dun probl` eme lin eaire.
Mais on peut aller plus loin encore pour limiter le nombre de sommets ` a
examiner en se basant sur la quatri` eme observation suivante.
Observation 4 :
Le long dun c ot e du polygone, la valeur de lobjectif peut etre soit constante, soit
strictement croissante, soit strictement d ecroissante.
On peut donc sugg erer lalgorithme suivant :
i) Choisir comme point de d epart un sommet x

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

. Trouver un c ot e le long
duquel z crot. Sil ny en na pas, STOP : le x

courant est optimal.


iii) D eterminer le sommet y

` a lautre bout du c ot e et poser x

= y

. Retour
en ii).
Section 1.4. Exercices 15
1.4 Exercices
1.1. La minimisation des co uts. Une entreprise peut fabriquer un m eme produit
dans deux usines diff erentes. Les capacit es de production de ces deux usines,
exprim ees en quantit e de produit par jour, sont de 7 pour la premi` ere usine et
de 10 pour la seconde. Dautre part, on suppose que le nombre dheures de
main duvre que lon peut affecter globalement ` a cette production est de 60
par jour. Or chaque unit e produite n ecessite 10 heures de main duvre dans
la premi` ere usine alors quelle nen n ecessite que 5 dans la seconde. Enn,
la production totale doit permettre de satisfaire au moins une demande de 8
unit es par jour. Sachant que les co uts variables unitaires sont de 2 pour la
premi` ere usine et de 3 pour la seconde, lentreprise d esire produire ` a co ut
minimum.
(a) Ecrire le programme lin eaire correspondant.
(b) R esoudre graphiquement.
1.2. Recyclage du papier. Une soci et e de tri de d echets et recyclage de pa-
pier peut se fournir en d echets aupr` es de deux villes. Son r ole consiste ` a
s eparer les listes dordinateur et les journaux. La r epartition entre m enages
et soci et es est diff erente dune ville ` a lautre expliquant un pourcentage
diff erent de listes dordinateur et de journaux dans les d echets. Ces pour-
centages ainsi que la quantit e maximum de d echets que peuvent fournir par
an ces deux villes sont reprises au tableau suivant :
Ville Listes Journaux Offre
% % tonnes par an
Ville 1 5 20 10.000
Ville 2 15 30 20.000
La soci et e offre aux villes un prix de 35 EURO par tonne de d echet. Elle
doit d ecider du montant optimal de d echets ` a acheter ` a chaque ville pour
minimiser son co ut dachat. Pour couvrir ses frais xes, la soci et e doit au
moins collecter 1.500 tonnes de listing dordinateur par an. Au del` a de 6.000
tonnes de journaux mis sur le march e par an, le prix que la soci et e re coit
pour la vente de journaux chute et donc la compagnie ne d esire pas vendre
plus que cette quantit e. Combien la soci et e doit-elle acheter de d echets par
an ` a chacune des villes ?
(a) Formuler math ematiquement le probl` eme (choix des variables, expres-
sion des contraintes et de lobjectif);
16 Chapitre 1. La programmation lineaire.
(b) D eterminer graphiquement le plan dachat optimal et en d eduire le co ut
dachat minimum.
1.3. Planication de production sur co ut variable. Une entreprise fabrique
deux produits P
1
et P
2
. Chaque produit doit passer dans deux ateliers (usi-
nage et nition). Le mois dernier, 500 unit es de P
1
ont et e produites gr ace
` a 750 heures de travail dans latelier usinage et 250 heures dans latelier
nition. De m eme, 700 unit es de P
2
ont et e produites, n ecessitant 700
heures dans latelier usinage et 350 heures dans latelier nition. Lentre-
prise dispose egalement dune section administration. Une partie du co ut de
production est ind ependante du nombre dheures pass ees ` a la production (les
frais xes), une partie est directement proportionnelle au nombre dheures
pass ees ` a la production (les frais variables). Le mois pass e, on a observ e la
r epartition suivantes entre frais xes et frais variables :
Section frais xes frais variables
Administration 50.000 0
Usinage 60.000 11.600
Finition 40.000 6.000
Il y a egalement un co ut de conditionnement du produit qui est de 8 EURO
par unit e du produit P
1
et de 6 EURO par unit e du produit P
2
. Les prix de
vente unitaires sont de 55 EURO et 43 EURO respectivement.
(a) Calculer les marges sur co uts variables (diff erence entre prix de vente
et co ut variable de production) par unit e de chacun des deux produits.
Indication: calculer dabord le prix de lheure dans chacun des ateliers
et le temps n ecessaire dans chacun des ateliers par produit.
(b) Les capacit es de production sont de 1.200 heures par mois pour latelier
dusinage et de 500 heures par mois pour latelier de nition. Formuler
le programme lin eaire correspondant ` a la maximisation de la marge sur
co uts variables (choix des variables, expression des contraintes et de
lobjectif).
(c) D eterminer graphiquement les productions qui maximise la marge sur
co ut variable.
Chapitre 2
Algorithme du Simplexe.
2.1 Principe de lalgorithme
Le principe de lalgorithme du Simplexe est de d eterminer une solution optimale
en allant de sommet en sommet adjacent. Rappelons la formulation de lexemple
introductif :
maxz = 3 x
1
+ 5 x
2
s.c.q.
_

_
x
1
4
2x
2
12
3x
1
+ 2x
2
18
x
1
, x
2
0
(2.1)
dont la repr esentation graphique est donn ee ` a la gure 2.1.
10
8
4
2
2 8
3x1 + 2x2 = 18
x
1
= 4
x
1
= 0
2x
2
= 12
x
2
= 0
(0, 9)
(0, 6)
(2, 6)
(4, 3)
(4, 0)
(0 , 0)
(6 , 0)
(4 , 6)
Figure 2.1: Un exemple de programme lin eaire
Partant du point (0,0), lalgorithme va d eterminer une ar ete le long de laquelle
lobjectif saccrot : par exemple, lar ete en direction de (0,6). Ensuite, on va
aller jusquau bout de cette ar ete : cest-` a-dire au sommet (0,6). Et le processus
17
18 Chapitre 2. Algorithme du Simplexe.
continue de mani` ere it erative. On d etermine une ar ete le long de laquelle lobjectif
saccrot : lar ete en direction de (2,6). On va jusquau bout de lar ete et l` a on
constate que tout mouvement, en arri` ere vers (0,6) ou en avant vers (4,3), conduit
` a diminuer lobjectif. On est donc ` a loptimum.
2.2 Formes canoniques dun programme lin eaire.
La forme canonique dun programme lin eaire dans lespace des variables originales
avait et e illustr ee par lexemple introductif (2.1). Observons quil est toujours pos-
sible de transformer une contrainte din egalit e g en erale en une contrainte d egalit e
par ajout dune variable ` a laquelle on impose d etre non n egative. Consid erons,
par exemple, la contrainte
3x
1
+ 2x
2
18.
Imposer que le membre de gauche soit inf erieur ou egal au membre de droite,
revient ` a dire quil faudrait ajouter une quantit e non n egative au membre de gauche
pour quil y ait egalit e :
3x
1
+ 2x
2
+ x
3
= 18,
avec la condition que la variable x
3
soit non n egative
x
3
0.
D enition 2.1 La variable d ecart est la quantit e qui, ajout ee au membre de
gauche dune contrainte, permet de transformer la contrainte en egalit e.
Appliquons ceci auprobl` eme (2.1). Onobtient le probl` eme sous forme standard
avec egalit es suivant :
maxz = 3x
1
+ 5x
2
s.c.q.
_

_
x
1
+x
3
= 4
2x
2
+x
4
= 12
3x
1
+2x
2
+x
5
= 18
x
1
, x
2
, x
3
, x
4
, x
5
0
(2.2)
Remarquons quil y a equivalence totale entre les deux formes. En effet,
dune part, toute solution r ealisable du probl` eme (2.1) peut etre augment ee en une
solution r ealisable pour le probl` eme (2.2). Toute solution r ealisable du probl` eme
(2.2) peut etre tronqu ee en une solution r ealisable pour le probl` eme (2.1). Comme,
dautre part, les fonctions objectifs sont identiques, on a bien equivalence entre les
deux probl` emes.
Section 2.3. Notion de solution de base 19
2.3 Notion de solution de base
On remarquera que les egalit es du probl` eme (2.2) forment un syst` eme de m =3
egalit es en n + m = 2 + 3 = 5 inconnues. Donc la valeur de n = 2 variables peut
etre x ee arbitrairement. Par exemple, dans le syst` eme d egalit es :
_

_
x
1
+x
3
= 4
2x
2
+x
4
= 12
3x
1
+2x
2
+x
5
= 18
(2.3)
les deux variables x
1
et x
2
peuvent etre x ees ` a z ero. On dit quelles sont mises
hors base.
D enition 2.2 On appelle variables hors base (v.h.b.) les n variables de R
n+m
x ees ` a z ero. Les m variables restantes sont appel ees variables de base (v.b.).
Dans lexemple, les variables de base sont donc x
3
, x
4
et x
5
dont on peut lire
la valeur dans (2.3) :
x
3
= 4
x
4
= 12
x
5
= 18
D enition 2.3 On appelle solution de base une solution o` u en ayant choisi n
variables hors base, on obtient une solution unique en r esolvant les mcontraintes
d egalit es obtenues en ajoutant les variables d ecart.
D enition 2.4 On appelle solution de base r ealisable une solution de base qui,
en plus, v erie les contraintes de positivit e.
Dans lexemple, la solution de base suivante :
x
1
= 0, x
2
= 0 variables hors base
x
3
= 4, x
4
= 12, x
5
= 18 variables de base
est r ealisable car toutes les variables de base sont positives.
Le lien entre lalg` ebre et la g eom etrie est alors donn e par la propri et e suivante.
Propri et e 2.1 La notion g eom etrique de sommet du polygone correspond ` a la
notion alg ebrique de solution de base r ealisable.
20 Chapitre 2. Algorithme du Simplexe.
Nous avons d ej` a annonc e que lalgorithme du Simplexe revient ` a aller de
sommet en sommet adjacent. Interpr et e alg ebriquement, cela revient ` a consid erer
un passage dune solution de base r ealisable ` a une autre solution de base r ealisable.
La notion dadjacence doit etre etendue aux solutions de base.
D enition 2.5 On appelle solutions de base adjacentes deux solutions de base
dont les variables de base sont les m emes sauf une qui est de base dans la premi` ere
base et hors base dans la seconde.
Dans lexemple, les deux solutions de base suivantes sont adjacentes :
x
1
= 0, x
1
= 0,
x
2
= 0, x
2
= 6,
x
3
= 4, x
3
= 4,
x
4
= 12, x
4
= 0,
x
5
= 18, x
5
= 6
car elles ne diff` erent que par une seule variable hors base.
Propri et e 2.2 La notion g eom etrique de sommets adjacents correspond ` a la no-
tion alg ebrique de solutions de base r ealisables adjacentes.
2.4 Initialisation de lalgorithme
La questionqui se pose est : Comment choisir le point de d epart ? Si le probl` eme
est mis sous forme din egalit es du type avec des membres de droite tous positif,
il suft de prendre lorigine comme point de d epart :
(x
1
, x
2
) = (0, 0)
En termes alg ebriques, toutes les variables originales sont mises hors base. Auto-
matiquement , dans le syst` eme d egalit es :
_

_
x
1
+x
3
= 4
2x
2
+x
4
= 12
3x
1
+2x
2
+x
5
= 18
,
on lit la valeur des variables de base :
x
3
= 4
x
4
= 12
x
5
= 18
Section 2.5. Une iteration Simplexe 21
2.5 Une it eration Simplexe
Pour rappel, le principe de lalgorithme du Simplexe consiste ` a se d eplacer de
sommet en sommet adjacent de fa con ` a am eliorer la fonction objectif. On va donc
se d eplacer ` a partir de notre solution de base de d epart vers une solution de base
r ealisable en suivant une ar ete le long de laquelle lobjectif saccrot.
2.5.1 Choix de la direction
La question qui se pose est alors : comment choisir la direction ? Remarquez
qualg ebriquement, cette question se formule de mani` ere equivalente par : quelle
variable hors base va entrer en base ?
Le crit` ere de s election de la variable entrante est de prendre la variable hors
base qui fournit le plus fort taux daugmentation de la fonction objectif :
z = 3x
1
+ 5x
2
.
Pour une augmentation unitaire de x
1
, z augmente de 3. Pour une augmentation
unitaire de x
2
, z augmente de 5.
Le crit` ere de s election de la variable entrante est donc le suivant : on choisit
la variable avec le coefcient objectif le plus elev e.
Remarquez que pour pouvoir appliquer ce crit` ere simple (choisir la variable
de coefcient objectif le plus elev e), la fonction objectif z doit etre exprim ee en
fonction des seules variables hors base.
2.5.2 Choix de la variable sortante
La question qui se pose est : quand sarr eter le long de la direction ?
G eom etriquement, on se dirige sur laxe x
2
et on sar ete en (6,0), ` a la premi` ere
contrainte rencontr ee. Alg ebriquement, on constate quen ce point la variable
d ecart x
4
sannule et aller au del` a conduirait ` a la rendre n egative. On va donc pous-
ser x
2
le plus loin possible, tant que les variables de base restent non n egatives.
Le crit` ere de s election de la variable sortante est donc le suivant : prendre
comme variable sortante la premi` ere variable de base ` a sannuler.
En maintenant x
1
hors base dans (2.3), on obtient la variation des variables de
base en fonction de x
2
:
x
3
= 4 0
22 Chapitre 2. Algorithme du Simplexe.
x
4
= 12 2x
2
0
x
5
= 18 2x
2
0
ou encore :
x
2

12
2
= 6
x
2

18
2
= 9
On en conclut que la variable sortante est x
4
, cest-` a-dire la premi` ere qui
sannule (pour x
2
= 6).
De mani` ere g en erale, on calcul le minimumdu rapport du coefcient du membre
de droite sur le coefcient de la variable entrante dans la m eme ligne lorsque
celui-ci est positif. La variable sortante est celle dont on lit la valeur dans la
ligne o` u ce minimum se produit.
2.5.3 Calcul du nouveau sommet
La question qui se pose est : comment calculer la nouvelle solution de base ?
On va y r epondre en utilisant la r esolution de syst` emes. Plus pr ecis ement, on
va calculer la nouvelle solution de base en explicitant le syst` eme (2.3) en fonction
des nouvelles variables de base.
Ceci peut etre fait au moyen de deux types dop erations qui ne modient pas
lensemble des solutions dun syst` eme d equations :
1. Multiplier une egalit e par une constante non nulle;
2. Additionner un multiple dune equation ` a une autre equation.
Appliquons ceci ` a lexemple. Ajoutons au syst` eme de d epart (2.3) en premi` ere
ligne la d enition de la fonction objectif :
z 3x
1
5x
2
= 0 (0)
x
1
+x
3
= 4 (1)
2x
2
+x
4
= 12 (2)
3x
1
+2x
2
+x
5
= 18 (3)
Donc x
2
remplace x
4
comme variable de base. On veut donc expliciter x
2
dans
la contrainte (2) en lieu et place de x
4
. Pour ce faire, il faut :
Section 2.5. Une iteration Simplexe 23
1. Amener un 1 comme coefcient de x
2
dans (2). Autrement dit, la nouvelle
contrainte not ee (2) est lancienne (2) multipli ee par 1/2 :
(2

) = (2)
1
2
2. Eliminer x
2
des autres equations. Ceci en retranchant ` a la contrainte (3) la
contrainte (2) et en ajoutant ` a lobjectif (0) cinq fois la nouvelle contrainte
(2) :
(3

) = (3) (2)
(0

) = (0) + 5 (2

)
Le nouveau syst` eme est donc le suivant :
z 3x
1
+
5
2
x
4
= 30 (0

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

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

)
o` u lon peut lire directement (en se souvenant que x
1
et x
4
sont hors base
donc nulles) :
z = 30
x
3
= 4
x
2
= 6
x
5
= 6
On en d eduit la valeur de la nouvelle solution de base :
(x
1
, x
2
, x
3
, x
4
, x
5
) = (0, 6, 4, 0, 6)
qui donne la nouvelle valeur de lobjectif :
z = 30.
Remarquez que les op erations d elimination de x
2
des lignes autres que la
deuxi` eme se font obligatoirement en retranchant ` a chacune de ces lignes un mul-
tiple de la deuxi` eme ligne. Toute autre op eration d etruirait les colonnes de la
matrice identit e dans le syst` eme r esultant comme on peut le constater en essayant,
par exemple, de faire :
(3

) = 1 (3) + (2).
24 Chapitre 2. Algorithme du Simplexe.
2.5.4 Test doptimalit e
La question qui se pose maintenant est la suivante : comment d eterminer le fait
d etre optimum.
Un sommet est optimal si tous les sommets adjacents donnent des valeurs
inf erieures ou egales ` a la fonction objectif. Comment peut-on voir sil existe
encore un sommet adjacent protable ?
Pour r epondre ` a cette question, nous allons utiliser la ligne de d enition de
lobjectif. L equation (0) se r ecrit :
z = 30 + 3x
1

5
2
x
4
.
Comme x
1
a un coefcient positif, il est int eressant de faire entrer x
1
en base.
Le crit` ere darr et sera donc le suivant : la solution de base courante est opti-
male si tous les coefcients objectif sont n egatifs ou nuls lorsque z est exprim ee
en fonction des seules variables hors base.
Effectuons donc la seconde it eration de lalgorithme du Simplexe. Au vu de
z = 30 + 3x
1

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

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

1
3
x
4
+
1
3
x
5
= 2
Section 2.6. Tableau Simplexe et pivotage 25
Donnant la nouvelle solution de base r ealisable :
(2, 6, 2, 0, 0)
Appliquons ` a nouveau le test doptimalit e. La ligne objectif s ecrit :
z = 36
3
2
x
4
x
5
.
Comme tous les coefcients objectifs sont n egatifs, la solution courante
x

1
= 2
x

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

= 36.
Nous allons maintenant voir une autre fa con de pr esenter les m emes calculs.
Il sagit de la pr esentation du Simplexe en tableaux.
2.6 Tableau Simplexe et pivotage
On effectue g en eralement les calculs sur le tableau des coefcients qui porte le
nom de tableau Simplexe. Mais il faut bien garder ` a lesprit que ce tableau et les
op erations que lon va y effectuer ne sont quune traduction des op erations sur le
syst` eme d equations alg ebriques correspondantes.
D enition 2.6 Un tableau Simplexe est constitu e des coefcients des equations
alg ebriques sans le nom des variables. On aura donc :
1. les coefcients de la fonction objectif;
2. les coefcients des variables dans le membre de gauche des contraintes;
3. les coefcients du membre de droite.
o` u lon s epare les coefcients de objectif des contraintes dune barre horizontale
et les coefcients du membre de gauche des contraintes des coefcients du membre
de droite par une barre verticale.
26 Chapitre 2. Algorithme du Simplexe.
Par exemple, le syst` eme de d epart :
z 3x
1
5x
2
= 0
x
1
+x
3
= 4
2x
2
+x
4
= 12
3x
1
+2x
2
+x
5
= 18
se met sous la forme du tableau suivant :
z x
1
x
2
x
3
x
4
x
5
1 3 5 0 0 0 0
0 1 0 1 0 0 4
0 0 2 0 1 0 12
0 3 2 0 0 1 18
o` u lon a ajout e au dessus du tableau le nomdes variables pour voir ` a quelle variable
correspond chaque colonne du tableau.
Plusieurs caract eristiques dun tableau sont ` a remarquer.
Tout dabord les valeurs du membre de droite donnent les valeurs courantes
des variables de base.
Ensuite la premi` ere ligne donne loppos e des coefcients objectif.
Enn, le dernier coefcient premi` ere ligne donne la valeur courante de
lobjectif.
On identie des variables de base ` a une colonne de coefcient de la matrice
identit e et ` a un coefcient objectif nul.
On en d eduit la solution courante :
(x
1
, x
2
, x
3
, x
4
, x
5
) = (0, 0, 4, 12, 18)
A la premi` ere it eration, on s election comme variable entrante la variable x
2
de
coefcient le plus n egatif dans la ligne objectif. On indique ceci dans le tableau
Section 2.6. Tableau Simplexe et pivotage 27
en encadrant la colonne de la variable entrant que lon appelle la colonne pivot :
z x
1
x
2
x
3
x
4
x
5
1 3 5 0 0 0 0
0 1 0 1 0 0 4
0 0 2 0 1 0 12
0 3 2 0 0 1 18
On s electionne la variable sortante comme etant la variable de base qui sannule
la premi` ere. Math ematiquement, cela revient ` a calculer le minimum du rapport du
coefcient du membre de droite de chaque contrainte sur le coefcient correspon-
dant de la colonne pivot lorsque ce dernier est strictement positif :
min
_
,
12
2
,
18
2
_
= 6.
Dans le cas o` u le coefcient dans la colonne entrante est n egatif ou nul, la ligne
nentre pas en compte dans le calcul du minimum. 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
. On encadre alors la ligne
o` u le minimum se produit. Cette ligne re coit le nom de ligne pivot :
z x
1
x
2
x
3
x
4
x
5
1 3 5 0 0 0 0
0 1 0 1 0 0 4
0 0 2 0 1 0 12
0 3 2 0 0 1 18
D enition 2.7 On appelle el ement pivot le coefcient situ e ` a lintersection de la
colonne pivot et de la ligne pivot.
Cest donc le centre de la croix ainsi form ee par la ligne et la colonne pivot.
Le pas suivant de lit eration Simplexe consiste ` a d eterminer le nouveau som-
met : ceci en exprimant x
2
dans la deuxi` eme equation en lieu et place de x
4
. Ceci
peut etre fait par deux types dop erations :
28 Chapitre 2. Algorithme du Simplexe.
1. Amener un coefcient 1 ` a la place du pivot en divisant la ligne pivot par le
pivot :
z x
1
x
2
x
3
x
4
x
5
1 3 5 0 0 0 0
0 1 0 1 0 0 4
0 0 1 0 1/2 0 6
0 3 2 0 0 1 18
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
La nouvelle solution de base et la nouvelle valeur de lobjectif sont respectivement :
(x
1
, x
2
, x
3
, x
4
, x
5
) = (0, 6, 4, 0, 6)
z = 30.
Effectuons maintenant la deuxi` eme it eration de lalgorithme du Simplexe. Le
premier pas de la deuxi` eme it eration consiste ` a d eterminer la variable entrante. Il
sagit de x
1
, la variable de coefcient le plus n egatif dans la ligne objectif. Do` u
la s election de la colonne pivot suivante :
z x
1
x
2
x
3
x
4
x
5
1 3 0 0 5/2 0 30
0 1 0 1 0 0 4
0 0 1 0 1/2 0 6
0 3 0 0 1 1 6
Le second pas de lit eration consiste ` a d eterminer la variable sortante. On
calcul le minimumdu rapport des coefcients du membre de droite sur le coefcient
Section 2.6. Tableau Simplexe et pivotage 29
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 lit eration Simplexe consiste ` a d eterminer la nouvelle so-
lution de base au moyen des deux types dop erations el ementaires sur le tableau
Simplexe :
1. Amener un 1 en position pivot;
2. Eliminer x
1
des autres contraintes.
Le r esultat de ces deux types dop erations est le suivant :
z x
1
x
2
x
3
x
4
x
5
1 0 0 0 3/2 1 36
0 0 0 1 1/3 1/3 2
0 0 1 0 1/2 0 6
0 1 0 0 1/3 1/3 2
La nouvelle solution de base et la nouvelle valeur de lobjectif valent :
(x
1
, x
2
, x
3
, x
4
, x
5
) = (2, 6, 2, 0, 0)
z = 36.
Si maintenant, on prolonge par la troisi` eme it eration, on constate que lors du
premier pas de celle-ci, cest-` a-dire lors de la s election de la variable entrante, il
ny a aucun candidat. On arr ete lalgorithme : la solution courante est optimale :
x

1
= 2
x

2
= 6
z

= 36.
30 Chapitre 2. Algorithme du Simplexe.
2.7 Exercices
2.1. Correspondance entre sommet et solution de base r ealisable. Pour
lexemple introductif (2.1), v erier que la notion g eom etrique de sommet du
polygone correspond ` a la notion alg ebrique de solution de base r ealisable.
2.2. Algorithme duSimplexe. R esoudre en appliquant la m ethode du Simplexe :
maxz = 3x
1
+ 2x
2
+ 4x
3
s.c.q. x
1
+ x
2
+ 2x
3
4
2x
1
+ 3x
3
5
2x
1
+ x
2
+ 3x
3
7
x
1
, x
2
, x
3
0
2.3. Planication de production. Une compagnie fabrique deux produits dans
ses deux ateliers. Les marges unitaires sont respectivement de 2 pour le
premier produit et de 1 pour le second. Le temps pass e dans chacun des
ateliers pour fabriquer un produit de chaque type est donn e au tableau ci-
dessous.
Temps dans pour le produit 1 pour le produit 2
latelier 1 1 heure 0 heure
latelier 2 1 heure 1 heure
Les capacit es r esiduelles sont de 4,5 heures par jour et de 6 heures par jour
respectivement dans le premier et le second atelier. Les productions non
enti` eres sont permises.
(a) Formuler math ematiquement le probl` eme.
(b) D eterminer la solution optimale au moyen de lalgorithme du Simplexe.
Pr eciser, pour chaque tableau, la solution de base courante et justier
le choix des variables entrante et sortante.
(c) Illustrer sur un graphique le chemin suivi par lalgorithme du Simplexe.
Chapitre 3
Analyse postoptimale.
3.1 Introduction
Dans ce chapitre, nous voir comment va varier la valeur optimale de lobjectif
dun programme lin eaire lorsque lon modie certains coefcients du probl` eme
(coefcients objectif ou du membre de droite). En effet, g en eralement la solution
num erique dun probl` eme lin eaire est moins signicative que de savoir comment
lobjectif va bouger si lon modie certaines donn ees du probl` eme. Cest lobjet
de ce que lon appelle lanalyse postoptimale.
Pour voir leffet de tels changements de donn ees, une solution nave consiste ` a
appliquer le Simplexe au nouveau probl` eme et bien s ur on peut en d eduire leffet
sur lobjectif. Mais nous allons voir dans ce chapitre que, si la base optimale du
probl` eme original reste optimale pour le nouveau mod` ele, on peut pr edire sans
aucun nouveau calcul leffet de variation des donn ees sur la fonction objectif en
exploitant simplement le tableau Simplexe optimal du probl` eme original.
Nous allons dabord envisager le cas de la variation des coefcients du
membre de droite des contraintes. Nous allons voir que la variation de la va-
leur optimale de lobjectif dun programme lin eaire en fonction des coefcients du
membre de droite est donn ee par la valeur des prix cach es que lon peut lire dans
la ligne objectif du tableau Simplexe nal. Nous verrons comment d eterminer le
domaine de validit e de ces prix cach es.
Nous verrons ensuite, le cas de la variation des coefcients de la fonction
objectif. Ici, nous verrons que le taux de variation de lobjectif est donn e par la
valeur des variables ` a loptimum. Ici aussi, il y a un un domaine de validit e pour
ces valeurs optimales des variables : elles restent valables tant que la base optimale
ne change pas. Enn, nous terminerons en donnant linterpr etation dune autre
information que lon peut tirer du tableau Simplexe, ` a savoir la valeur des co uts
r eduits des variables hors base.
31
32 Chapitre 3. Analyse postoptimale.
3.2 Variation par rapport au second membre
La question qui se pose est ici la suivante : Si on augmente la capacit e disponible
dune ressource, quel est limpact sur la valeur optimale de la fonction objectif ?
Pour des variations de membre de droite sufsamment faibles pour que la m eme
base reste optimale, on peut r epondre ` a cette question en exploitant le tableau
Simplexe optimal de la mani` ere suivante :
Le prix cach e (not e y

i
) mesure laugmentation de la fonction objectif si
lon accrot dune unit e le membre de droite dune contrainte. Dans le tableau
Simplexe optimal, le prix cach e y

i
est le coefcient de la variable d ecart de la
contrainte dans la ligne objectif.
Nous allons illustrer ceci sur sur lexemple introductif dont l enonc e est rappel e
ci-dessous.
maxz = 3 x
1
+ 5 x
2
s.c.q.
_

_
x
1
4
2x
2
12
3x
1
+ 2x
2
18
x
1
, x
2
0
Consid erons le tableau nal qui a et e d etermin e au chapitre 2 :
z x
1
x
2
x
3
x
4
x
5
1 0 0 0 3/2 1 36
0 0 0 1 1/3 1/3 2
0 0 1 0 1/2 0 6
0 1 0 0 1/3 1/3 2
Comme x
3
, x
4
et x
5
sont les variables d ecart des contraintes de capacit e des trois
ateliers, on en d eduit les valeurs des prix cach es suivants :
_

_
y

1
= 0
y

2
= 3/2
y

3
= 1
qui correspondent aux prix cach es des ressources utilis ees dans les ateliers 1, 2 et
3 dont les capacit es disponibles sont :
_

_
b
1
= 4,
b
2
= 12,
b
3
= 18.
Section 3.2. Variation par rapport au second membre 33
3.2.1 Interpr etation des prix cach es
Ce r esultat peut etre d emontr e math ematiquement. Mais, plut ot que den donner
une d emonstration formelle, nous allons lillustrer graphiquement. Consid erons
tout dabord une augmentation de capacit e du premier atelier de b
1
= 4 ` a b

1
= 5.
On peut voir ` a la gure 3.1 que le nouveau point optimal reste le m eme
9
8
4
2
3x1 + 2x2 = 18
x
1
= 4
2x
2
= 12
0
,
x
1
= 5
2x
2
= 13
(5/3, 13/2)
z = 3x
1
+ 5x
2
2 8
x
2
x
1
6
6 4 0
Figure 3.1: Analyse postoptimale
x

= x

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

= z

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

1
:
z = z

= 0 = y

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

2
= 13 donne un
d eplacement du point optimal vers (voir gure 3.1) :
x

= (5/3, 13/2).
En cons equence de quoi, la nouvelle valeur de lobjectif est donn ee par :
z

= 37, 5
34 Chapitre 3. Analyse postoptimale.
Do` u un accroissement de lobjectif qui vaut pr ecis ement la valeur du deuxi` eme
prix cach e :
z = z

=
3
2
= y

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

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

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

= 37
Do` u une augmentation dobjectif qui vaut exactement la valeur du troisi` eme prix
cach e :
z = z

= 1 = y

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

3
est la perte de prot
si on diminue dune unit e la capacit e du troisi` eme atelier.
3.2.2 Domaine de validit e des prix cach es
Remarquons, et ceci est lobjet de lanalyse de sensibilit e quil y a une limite de
validit e de chaque prix cach e. En effet, dans le cas de la premi` ere ressource, si
Section 3.2. Variation par rapport au second membre 35
leffet dune augmentation de b
1
sera nul sur la valeur optimum de lobjectif quel
que soit b
1
4, il nen va pas de m eme dune diminution. En effet, en dessous
de b
1
= 2, la solution optimale va changer. On a donc d etermin e le domaine de
validit e de y

1
= 0 : il sagit de lintervalle :
b
1
[2, +].
Pour le deuxi` eme atelier, au del` a de b
2
= 18, la solution optimale reste en (0,9).
La base optimale et y

2
changent :
y

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

2
= 3/2 : il sagit de lintervalle :
b
2
[6, 18].
Pour le troisi` eme atelier, au del` a de b
3
= 24, la solution optimale reste en (4,6).
La base optimale et y

3
changent :
y

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

3
= 1 : il sagit de lintervalle :
b
3
[12, 24].
Ces informations sont donn ees dans le rapport de sensiblit e du solveur dExcel.
Ces informations sont fournies sous la forme dune augmentation admissible et
dune diminution admissible. Elle sont reprises ci-dessous :
Contrainte augmentation admissible diminution admissible
Atelier 1 + 2
Atelier 2 6 6
Atelier 3 6 6
Remarquons nalement que lon a toujours une valeur nulle du prix cach e
pour une contrainte non liante. Une contrainte non liante est une contrainte o` u
la variable d ecart est non nulle. Par exemple, la premi` ere contrainte
x
1
4
a un prix cach e nul. Ceci a une interpr etation economique. La ressource nest
pas enti` erement utilis ee : il ne sert donc ` a rien daugmenter son stock disponible.
36 Chapitre 3. Analyse postoptimale.
3.3 Variation des coefcients objectifs
La question qui se pose ici est la suivante :Si on augmente le prix de vente unitaire
ou si lon diminue le co ut de production unitaire, quel est limpact sur la valeur de
lobjectif ?
A nouveau, on peut pr edire cette variation de lobjectif pour autant que la
base optimale ne change pas. En effet, tant que la base optimale ne change pas,
la solution optimale x

= (x

1
, x

2
, . . .x

n
) reste la m eme. Seul le prot optimal
change. Le nouveau prot vaut donc :
z

=
n

j=1
(c
j
+ c
j
)x

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

est exactement la valeur optimale de la variable x

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

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

_
x

1
= 2,
x

2
= 6.
3.3.1 Domaine de validit e de la solution optimale
Consid erons maintenant la question lanalyse de sensibilit e. Nous allons ` a nou-
veau lillustrer sur le m eme exemple introductif. On veut, par exemple, d eterminer
lintervalle de variation maximum de c
1
autour de 3 tel que la base optimale ne
change pas.
A la gure 3.3, on constate que le coefcient c
1
peut descendre jusqu` a ce que
lobjectif z = c
1
x
1
+ 5x
2
soit parall` ele au segment
2x
2
= 12,
cest-` a-dire lorsque c
1
= 0. Le coefcient c
1
peut augmenter jusqu` a ce que lob-
jectif z = c
1
x
1
+ 5x
2
soit parall` ele au segment
3x
1
+ 2x
2
= 18.
Section 3.3. Variation des coecients objectifs 37
9
8
4
2
3x1 + 2x2 = 18
x
1
= 4
2x
2
= 12
0
,
x
1
= 5
2x
2
= 13
(5/3, 13/2)
z = 3x
1
+ 5x
2
2 8
x
2
x
1
6
6 4 0
Figure 3.3: Analyse de sensibilit e de c
1
Ceci se produit lorsquil y a egalit e des pentes :
c
1
5
=
3
2
,
cest-` a-dire lorsque c
1
= 15/2.
La r eponse ` a la question de lanalyse de sensibilit e est donc la suivante : tant
que
c
1
[0, 15/2],
on a la m eme base optimale et donc la m eme solution optimale.
Effectuons lanalyse de sensibilit e pour le second coefcient objectif. Celui-ci
peut d ecrotre jusqu` a ce que lobjectif z = 3x
1
+ c
2
x
2
soit parall` ele au segment
3x
1
+ 2x
2
= 18.
Ceci se produit lorsquil y a egalit e des pentes :
3
c
2
=
3
2
,
cest-` a-dire lorsque c
2
= 2. Dans lautre sens, c
2
peut augmenter jusqu` a ce que
lobjectif z = 3x
1
+ c
2
x
2
soit parall` ele au segment
2x
2
= 12.
Ceci ne se produit jamais. On en conclut que tant que :
c
2
[2, +[,
on a la m eme base optimale et donc la m eme solution optimale.
Ces intervalles de sensiblit e sont donn es dans le rapport de sensibilit e du
solveur dExcel.
38 Chapitre 3. Analyse postoptimale.
3.4 Co ut r eduit des variables hors base
Pour terminer ce chapitre, nous allons d enir la notion de co ut r eduit dune va-
riable hors base qui peut egalement etre trouv e dans le tableau Simplexe optimal.
Le co ut r eduit de la variable hors base x
j
, not e d
j
, mesure laugmentation
de la fonction objectif si lon accrot dune unit e la valeur de la variable hors
base x
j
. Dans le tableau Simplexe optimal, le co ut r eduit d
j
est loppos e du
coefcient de la variable dans la ligne objectif.
Nous illustrerons cette notion sur l exemple de production de chassis auquel on
adjoint un troisi` eme chassis mixte aluminiumbois, pour lequel la marge unitaire est
de 4 et les temps unitaires de fabrication dans les trois ateliers sont respectivement
de 1, 2 et 3 heures. La formulation de ce probl` eme est reprise ci-dessous :
z 3x
1
5x
2
4x
3
= 0
x
1
+x
3
+x
4
= 4
2x
2
+2x
3
+x
5
= 12
3x
1
+2x
2
+3x
3
+x
6
= 18
La solution optimale de ce probl` eme lin eaire peut etre d etermin ee par lalgorithme
du Simplexe. Le tableau Simplexe optimal nal est le suivant :
z x
1
x
2
x
3
x
4
x
5
x
6
1 0 0 2 0 3/2 1 36
0 0 0 2/3 1 1/3 1/3 2
0 0 1 1 0 1/2 0 6
0 1 0 1/3 0 1/3 1/3 2
On en d eduit la solution optimale suivante :
(x

1
, x

2
, x

3
) = (2, 6, 0)
On constate que seuls sont rentables les chassis 1 et 2. En effet, le chassis 3, bien
quayant une marge unitaire sup erieure au chassis 1, consomme plus de ressources
et permet, pour la m eme capacit e disponible des trois ateliers de faire moins de
chassis 3 que de chassis 1. On peut alors se poser la question suivante : de combien
faut-il augmenter la marge du chassis 3 pour le rendre attractif ?
On peut r epondre ` a cette question en exploitant le tableau Simplexe optimal :
le coefcient dans la ligne objectif du tableau Simplexe nal (loppos e des co uts
r eduits) fournissent laugmentation de prix n ecessaire. En effet, le co uts r eduit de
la variables x
3
, est n egatif :
d
3
= 2,
exprimant ainsi la perte par unit e produite du chassis 3.
Section 3.5. Exercices 39
3.5 Exercices
3.1. Sensibilit e aux coefcients objectif. Soit le probl` eme lin eaire suivant :
Minimiser x
2
s.c.q. 3x
1
+ 4x
2
9, (1)
5x
1
+ 2x
2
8, (2)
3x
1
x
2
0, (3)
x
1
, x
2
0.
(a) D eterminer graphiquement la solution optimale.
(b) D eterminer lintervalle de variation du coefcient objectif de x
1
autour
de z ero qui pr eserve la solution optimale d etermin ee en (a).
3.2. Sensibilit e du membre de droite. Pour le probl` eme lin eaire formul e ` a
lexercice 1.3 du chapitre 1,
(a) R esoudre par lalgorithme du Simplexe.
(b) D eterminer la valeur des prix cach es ` a loptimum.
(c) Si lunit e de capacit e suppl ementaire co ut le m eme prix pour les deux
ateliers, a-t-on int er et a augmenter la capacit e du premier ou du second
atelier ?
(d) Jusqu` a quel niveau est-il int eressant daugmenter cette capacit e ?
3.3. Interpr etation des tableaux Simplexe. Soit le probl` eme lin eaire suivant :
Maximiser 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.
Le tableau simplexe initial correspondant est le suivant :
z x
1
x
2
x
3
x
4
x
5
x
6
1 10 9 7 0 0 0 0
0 2 3 5 1 0 0 450
0 2 4, 5 5 0 1 0 600
0 3 2 6 0 0 1 600
40 Chapitre 3. Analyse postoptimale.
Apr` es manipulations, le tableau Simplexe devient :
z x
1
x
2
x
3
x
4
x
5
x
6
1 0 7/3 13 0 0 10/3 2000
0 0 5/3 1 1 0 2/3 50
0 0 19/6 1 0 1 2/3 200
0 1 2/3 2 0 0 1/3 200
(a) Donnez les variables de base et leurs valeurs ` a cette it eration.
(b) Poursuivez les calculs du Simplexe pour d eterminer la solution opti-
male.
(c) D eterminez (sans effectuer de calculs) la valeur des prix duaux associ es
aux contraintes.
Chapitre 4
La programmation en nombres entiers.
4.1 Introduction
On parle de probl` emes en nombres entiers lorsque, pour un probl` eme dopti-
misation avec objectif et contraintes lin eaires, les variables sont astreintes ` a etre
enti` eres. On parle de probl` emes mixtes entiers lorsquune partie des variables
seulement sont astreintes ` a etre enti` eres. Nous allons voir ` a la section suivante
quelques exemples g en eriques n ecessitant lutilisation de variables enti` eres dans
leur formulation.
Nous avons vu que lalgorithme du Simplexe fournit une m ethode de r esolution
g en erale pour tous les probl` emes lin eaires quelle que soit leur forme. Au contraire,
en programmation en nombres entiers, on ne dispose pas dun algorithme g en eral
qui permette de r esoudre efcacement tous les probl` emes en nombres entiers.
Cependant, il existe une m ethode g en erale connue sous le nom de branch and
bound (s eparation et borne) qui permet de r esoudre bon nombre de probl` emes en
nombres entiers. Nous allons d ecrire ` a la section 4.3 cette m ethode.
4.2 Formulation des probl` emes mixtes
Nous allons voir quelques probl` emes classiques n ecessitant le recours ` a la pro-
grammation mixte enti` ere.
4.2.1 Probl` emes avec co uts xes
Exemple 4.1 Probl` emes avec co ut xe de mise en route de la production. On
veut repr esenter un co ut de production qui est nul en labsence de production
et qui, dans le cas contraire, vaut la somme dune constante K, le co ut xe de
production, ainsi que dun co ut proportionnel, le taux marginal etant m.
41
42 Chapitre 4. La programmation en nombres entiers.
On veut donc pouvoir exprimer la fonction suivante :
Si x = 0, c(x) = 0;
Si x > 0, c(x) = K + mx.
(4.1)
o` u x d enote le niveau de production.
Cette fonction est repr esent ee ` a la gure 4.1.
K
c(x)
x
m
Figure 4.1: Repr esentation dun co ut xe
La repr esentation math ematique de ce co ut xe n ecessite :
1. lajout dune variable indicatrice dune production positive :
y =
_
_
_
1 si x > 0
0 si x = 0
2. la modication de la fonction objectif en :
c(x, y) = Ky + mx
qui devient donc purement lin eaire;
3. lajout des contraintes suivantes :
x My, et y {0, 1} (4.2)
avec M une borne sup erieure sur la quantit e produite (x).
Remarquons que si x > 0, par les relations (4.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, (4.2)
permet les choix y = 0 ou y = 1. Cependant, comme on minimise, loptimiseur
va automatiquement choisir y = 0, la solution qui evite le co ut xe !
Section 4.2. Formulation des probl`emes mixtes 43
4.2.2 Probl` emes avec contrainte logique
Parfois des probl` emes de gestion de production comportent une condition logique.
Un exemple typique est celui des probl` emes de gestion de projets avec contrainte
disjonctive. Dans ces probl` emes, on doit d eterminer lenchanement des t aches
dun projet de mani` ere ` a le r ealiser dans le meilleur d elai, il se peut que deux
t aches doivent etre effectu ees par la m eme equipe douvriers, soit mettent en
uvre la m eme machine. Les deux t aches ne peuvent donc avoir lieu simul-
tan ement, sans que lon puisse dire laquelle doit etre effectu ee en premier lieu.
Math ematiquement, on peut ecrire ceci par la condition suivante :
soit
_
_
_
t
i
+ d
i
t
j
si i est r ealis ee avant j
t
j
+ d
j
t
i
si j est r ealis ee avant i
(4.3)
o` u t
i
est la variable indiquant le temps de d ebut au plus t ot de la t ache i et d
i
, sa
dur ee, est donn ee.
Cette disjonction peut etre r esolue par la programmation mixte 0/1. En
effet, d enissons la variable binaire y
ij
, dont la valeur est 1 si la tache i est r ealis ee
avant la t ache j et 0 si la t ache j est r ealis ee avant la t ache i.
Onremplace alors la conditionde disjonction(4.3) par les contraintes suivantes :
_
_
_
t
i
+ d
i
t
j
+ M(1 y
ij
)
t
j
+ d
j
t
i
+ My
ij
(4.4)
o` u M note une borne sup erieure sur la date de n des travaux.
D emontrons l equivalence. Deux cas sont possibles pour la variable binaire :
1. Cas o` u y
ij
= 1 : dans ce cas, le syst` eme (4.4) devient :
_
_
_
t
i
+ d
i
t
j
t
j
+ d
j
t
i
+ M
La premi` ere contrainte exprime donc que la t ache i doit etre nie avant que ne
commence la t ache j. La seconde contrainte est automatiquement satisfaite.
2. Cas y
ij
= 0 : dans ce cas, le syst` eme (4.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.
44 Chapitre 4. La programmation en nombres entiers.
4.2.3 M elange avec nombre limit e dingr edients
Cest le cas, par exemple, dun probl` eme de m elange dhuiles o` u cinq huiles sont
disponibles mais o` u des contraintes techniques impliquent que seulement trois
huiles diff erentes peuvent etre pr esentes dans le m elange. Un autre exemple, est
celui du chargement de hauts fourneaux o` u le nombre de charbons disponibles
est souvent nettement sup erieur au nombre de charbons qui peuvent etre charg es
simultan ement. Ce nombre etant limit e par le nombre de portes de chargement du
haut fourneau.
Ce probl` eme peut etre r esolu par la programmation mixte z ero/un. Si x
i
note la quantit e dingr edient i dans le m elange, d enissons la variable binaire y
i
indiquant la pr esence de lingr edient i dans le m elange. Autrement dit :
y
i
= 1 si x
i
> 0;
y
i
= 0 si x
i
= 0.
On introduit alors les contraintes suivantes :
x
i
M
i
y
i
(4.5)
o` u M
i
est une borne sup erieure sur x
i
.
La conditiondunombre maximumdingr edients dans le m elange sexprime
alors simplement par :
n

i=1
y
i
k, (4.6)
avec k, le nombre maximum dingr edients dans le m elange.
D emontrons l equivalence. Deux cas sont possibles pour la variable x
i
:
1. Soit x
i
> 0. Alors, par la contrainte (4.5), la variable y
i
doit valoir 1 et
exprime bien que lingr edient i est dans le m elange.
2. Soit x
i
= 0. Alors, par la contrainte (4.5), la variable y
i
peut valoir 0 ou 1.
La (4.6), exprimera donc bien que au plus k ingr edients seront pris dans le
m elange.
Remarquez que si on veut que y
i
soit une parfaite indicatrice de x
i
> 0, il faut
ajouter la contrainte suivante :
m
i
y
i
x
i
avec m
i
, la teneur minimum dun ingr edient dans le m elange. Cette nouvelle
contrainte forcera y
i
` a z ero lorsque x
i
est nul.
Section 4.3. Methode de branch and bound 45
4.2.4 Choix parmi un nombre discret de valeurs
Dans beaucoup de probl` emes industriels, lors du dimensionnement dun appareil-
lage, on doit choisir sa capacit e parmi les valeurs commerciales existant sur le
march e. Par exemple, lors du dimensionnement dune canalisation de transport
deau, on doit choisir parmi les valeurs suivantes pour le diam` etre :
12 cm, 17 cm, 24 cm ou 47 cm.
On peut ` a nouveau mod eliser ce choix par lutilisation de variables binaires. En
effet, d enissons la variable x comme etant le diam` etre choisi et d enissons y
i
une
indicatrice du fait que le diam` etre num ero i a et e choisi. On peut alors ecrire la
relation suivante pour le choix du diam` etre :
x = 12y
1
+ 17y
2
+ 24y
3
+ 47y
4
avec la contrainte quun seul diam` etre doit etre choisi :
y
1
+ y
2
+ y
3
+ y
4
= 1 (4.7)
et bien s ur en imposant le caract` ere binaire de chaque indicatrice :
y
i
{0, 1}, i = 1, 2. . .4
La contrainte (4.7) fera en effet quune seule indicatrice vaudra un tandis que toutes
les autres seront ` a z ero.
4.3 M ethode de branch and bound
Nous illustrons la m ethode sur lexemple suivant tir e de Norbert et al [10] :
z

= maxz = 10x
1
+ 50x
2
s.c.q.
_

_
x
1
+ 2x
2
5,
x
1
+ 2x
2
14,
x
1
8,
x
1
, x
2
0 et entiers
(4.8)
La r egion r ealisable est repr esent ee ` a la gure 4.2.
Remarquons quune fa con de r esoudre le probl` eme serait de construire une
borne sup erieure sur z

et une borne inf erieure sur z

et ensuite de rafner ces


bornes jusqu` a les egaliser.
46 Chapitre 4. La programmation en nombres entiers.
x1
x
2
0 1 2 3 4 5 6 7 8
5
4
3
2
1
0
P
0
P
1
P
2
P
3
P
5
Figure 4.2: Repr esentation de la r egion r ealisable.
Question 1 : comment construire une borne inf erieure sur z

?
La r eponse ` a cette question est ` a la fois simple et difcile. En effet, pour trouver
une borne inf erieure, il suft de donner une solution r ealisable pour (4.8). Comme
lobjectif est de maximiser, loptimum du probl` eme ne pourra qu etre sup erieur ` a
la valeur de z en ce point. Cependant trouver en g en eral une solution r ealisable
pour un probl` eme en nombres entiers nest pas une mince affaire.
Question 2 : comment construire une borne sup erieure sur z

?
Une fa con de r epondre ` a cette question est de r esoudre le probl` eme lin eaire
que lon obtient ` a partir de (4.8) en laissant tomber les contraintes dint egralit e des
variables. Comme on maximise sur un ensemble r ealisable plus large, loptimum
ainsi obtenu ne pourra qu etre sup erieur ` a loptimum du probl` eme en nombres
entiers. Cest aussi le premier pas de la m ethode de branch and bound que nous
allons maintenant d ecrire sur lexemple.
Pas 0. R esoudre la relaxation lin eaire.
Pour cet exemple, on obtient comme solution de la relaxation lin eaire le point not e
P
0
` a la gure 4.2 :
x
1
= 4, 5
x
2
= 4, 75
z
0
= 282, 5.
Cette solution est inacceptable car elle viole les contraintes dint egralit e des va-
riables. Cependant, elle fournit une premi` ere borne sup erieure sur z

:
z

282, 5.
Section 4.3. Methode de branch and bound 47
Pas 1. Brancher sur une variable non enti` ere.
La seconde id ee de la m ethode de branch and bound est dop erer une s eparation :
la r egion r ealisable va etre s epar ee en deux sous-r egions dont aucune ne peut
contenir la solution optimale P
0
. Cette s eparation n ecessite le choix dune variable
de s eparation. Le choix de cette variable est heuristique. Diff erents choix sont
possibles et de ce choix peut d ependre lefcacit e de la m ethode de r esolution. Une
fa con simple de choisir cette variable est de prendre la variable la plus distante
dun entier. Une alternative, parfois utilis ee, est de prendre la variable la plus
proche dun entier.
Dans notre exemple, il sagit de la variable x
1
. On va effectuer un branchement
sur cette variable. Comme x
1
ne peut prendre que des valeurs enti` eres, il ny a
aucune perte de g en eralit e dimposer que
soit x
1
4 soit x
1
5
Cependant imposer cette condition va eliminer la solution courante P
0
de la relaxa-
tion lin eaire. En g en eral si la variable choisie x
k
a la valeur fractionnaire N + ,
on imposera :
soit x
k
N soit x
k
N + 1
En imposant s epar ement lune et lautre conditions, on obtient deux sous-
mod` eles, un mod` ele ls et un mod` ele lle. Ce que lon repr esente par une dia-
gramme du type de celui de la gure 4.3. Chaque nud de cette gure correspond
z0 = 282, 5
x1 = 4, 50
x ,
2
= 4 75
x
1
4 x
1
5
z
1
= 265
x
1
= 4
x
2
= 4, 5
z
2
= 275
x
1
= 5
x
2
= 4, 5
x
2
4 x2 5
z
3
= 260
x
1
= 6
x
2
= 4
z
4
=
Probl` eme
non r ealisable
x
2
4
x2 5
z
5
= 240
x
1
= 4
x
2
= 4
z
6
=
Probl` eme
non r ealisable
Figure 4.3: Arbre de branch and bound.
` a un probl` eme lin eaire. Le nud 0 au mod` ele original. Le nud 1 est le mod` ele
original avec en plus la restriction x
1
4, tandis que le nud 2 correspond au
48 Chapitre 4. La programmation en nombres entiers.
mod` ele original avec en plus la restriction x
1
5. On a ici num erot e les nuds
dans lordre o` u ils ont et e g en er es.
On peut maintenant r esoudre les relaxations lin eaires correspondant aux pro-
bl` emes ls et lle. Dans notre exemple, on obtient les deux solutions suivantes :
Noeud 1 : x
1
= 4, x
2
= 4, 5, z
1
= 265.
Noeud 2 : x
1
= 5, x
2
= 4, 5 z
2
= 275.
Remarquez que les valeurs atteintes par la fonction objectif sont moins elev ees
que dans la relaxation lin eaire pr ec edente. Ceci nest pas etonnant : on a, en
effet, ajout e des contraintes et donc restreint lespace des solutions r ealisables.
Comme les deux sous-r egions forment une repr esentation contenant lensemble
des solution enti` eres, on peut en conclure que la borne sup erieure sur z

est :
z

max(z
1
, z
2
) = 275.
Pas 2. Diviser ` a nouveau un nud ls ou lle en deux.
Ici, aucune des deux solutions nest acceptable car toutes les deux comportent des
parties fractionnaires. On va donc continuer en choisissant un des deux nuds
pour le diviser ` a nouveau. Le choix du nud ` a diviser est ` a nouveau heuristique
et peut ` a nouveau avoir une grande inuence sur le temps total mis pour r esoudre
le probl` eme.
Pour lillustration de la m ethode, nous adoptons la r` egle de choix heuristique
suivante : choisir le probl` eme dont la relaxation lin eaire fournit la meilleure (cest-
` a-dire la plus grande en cas de maximisation) valeur de la fonction objectif.
Pour cet exemple, on choisit donc le nud 2 et on r ep` ete le Pas 1.
Pas 1. Choisir une variable pour brancher.
Ici seule la variable x
2
est non enti` ere. On la choisit donc pour op erer le branche-
ment suivant :
soit x
2
4 soit x
2
5
On ajoute s epar ement chacune de ces contraintes aux contraintes du probl` eme 2
et on g en` ere ainsi les nuds 3 et 4. Ceci est illustr e ` a la gure 4.3. On r esout les
relaxations lin eaires et on obtient les solutions suivantes :
Noeud 3 : x
1
= 6, x
2
= 4, z
3
= 260.
Noeud 4 : non r ealisable
Noter que, au nud 3, on a obtenu une solution enti` ere dont la valeur correspon-
dante de la fonction objectif est 260. On a une premi` ere borne inf erieure sur la
valeur optimale de la fonction objectif et on a donc que :
260 z

275
Section 4.3. Methode de branch and bound 49
Si la fourchette nest pas trop grande, on peut se satisfaire de cette solution non
optimale plut ot que de continuer de longs calculs. Il est clair egalement quil ny
a aucune raison de continuer ` a diviser le nud 3 pour lequel la solution optimale
du probl` eme en nombres entiers a et e obtenue. On dit que le nud est coup e.
Remarquons aussi que le nud 4 a conduit ` a un probl` eme non r ealisable. Ce
nest pas etonnant vu que lon rajoute de plus en plus de contraintes. A nouveau,
dans ce cas, il ne sert ` a rien de continuer ` a diviser ce nud. Continuons la division
des autres nuds.
Pas 2. Diviser ` a nouveau un nud ls ou lle en deux.
On choisit le nud 1 qui est le seul ` a encore diviser. Remarquez que cest parce
que la valeur de z
1
= 265 est sup erieure ` a la borne inf erieure 260 que lon doit
continuer. On a en effet un espoir de trouver ici une solution enti` ere meilleure que
260. Dans le cas contraire, on aurait egalement coup e cette branche et la m ethode
etait termin ee.
Pas 1. Brancher sur une variable non enti` ere.
On branche ici sur x
2
en cr eant les nuds 5 et 6 par la s eparation suivante :
soit x
2
4 soit x
2
5
On r esout les relaxations lin eaires correspondantes. On obtient :
Noeud 5 : x
1
= 4; x
2
= 4, z
5
= 240
Noeud 6 : impossible
La m ethode est termin ee puisquil nexiste plus de nud ` a diviser. On d eter-
mine la solution optimale comme etant la meilleure solution enti` ere trouv ee. Il
sagit du point P
3
suivant :
x

1
= 6
x

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

= 260. On a ainsi, pour


notre exemple, trouv e et aussi prouv e que la solution du nud 3 etait la solution
optimale du probl` eme en nombres entiers.
En conclusions, il y a trois raisons de couper une branche dans larbre :
1. lorsque la relaxation lin eaire obtenue est non r ealisable,
2. lorsque la relaxation lin eaire obtenue fournit une solution enti` ere,
3. lorsque la valeur de la borne sup erieure est inf erieure ` a la valeur de la meil-
leure solution enti` ere obtenue.
50 Chapitre 4. La programmation en nombres entiers.
4.4 Exercices
4.1. M elange de maximum4 charbons. Pour produire du coke, on m elange des
charbons dans un haut fourneau. On suppose quil y a 8 charbons disponibles
(voir tableau 4.1). Comme les entr ees dans le haut founeau sont au nombre
de 4, il ne peut y avoir que maximum 4 charbons diff erents dans le m elange.
De plus, si un charbon est pr esent dans le m elange, il doit l etre ` a hauteur
dau moins 5%. On exige egalement que la teneur du m elange en Silicium
soit dau plus 1,8 % Formuler le probl` eme.
Charbon Prix Teneur Si Charbon Prix Teneur Si
Charbon 1 12 2 % Charbon 5 13 1 %
Charbon 2 14 2,5 % Charbon 6 9 5 %
Charbon 3 17 1 % Charbon 7 15 2 %
Charbon 4 10 5 % Charbon 8 11 1,5 %
Tableau 4.1: Teneurs en Si et prix des diff erents charbons.
4.2. Localisation optimale d emetteurs de t el evision. Pour une r egion com-
portant quatre villes (voir tableau 4.2), on veut d eterminer, parmi 5 sites
possibles, quels sont les d emetteurs de t el evision ` a construire an de des-
servir ces 5 villes au moindre co ut. Formuler le probl` eme.
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 4.2: Accessibilit e des villes ` a partir des emetteurs.
4.3. Probl` eme daffectation de lignes a eriennes. Une compagnie a erienne
disposant de six avions de 150 places d esire les affecter aux deux lignes
OM et OT. Le nombre de clients est de 500 par jour sur la ligne OM et
de 200 sur la ligne OT. Les frais variables (tels que le carburant, les taxes
datterrissage) dun voyage sur la ligne OM est de 4 et de 3 sur la ligne OT.
On d esire minimiser le co ut dexploitation en satisfaisant la demande.
(a) Formuler math ematiquement le probl` eme.
(b) R esoudre par la m ethode de Branch and bound.
Chapitre 5
Les mod` eles non lin eaires
5.1 Introduction
On parle de mod` ele doptimisation non lin eaire lorsque lon doit maximiser ou
minimiser une fonction sous contraintes et que la fonction objectif, ou au moins
une contrainte est non lin eaire.
Comme exemple de fonction objectif non lin eaire, on peut citer le cas dun
rendement croissant d echelle, cest-` a-dire une contribution unitaire au prot
saccroissant avec la quantit e produite. Par exemple, si la marge unitaire est de la
forme m
1
(x
1
) = 550 + 2x
1
, cela donnera un terme non lin eaire dans lobjectif :
maxz = m
1
(x
1
)x
1
= 550x
1
+ 2x
2
1
.
Comme exemple de contrainte non lin eaire, on peut citer la relation entre le ot de
gaz entre les nuds i et j, not e f
ij
, et les pressions en ces points, p
i
et p
j
:
f
2
ij
= C
2
ij
_
p
2
i
p
2
j
_
Nous allons souligner ` a la section 5.2 la diff erence avec la programmation
lin eaire. Dans le cas de la programmation lin eaire, la solution optimale pouvait
toujours etre d etermin ee en un sommet de la r egion r ealisable. Nous verrons ici
que cette propri et e est perdue : on peut avoir une solution optimale non extr emale
ou encore une solution int erieure. Pire encore, on peut avoir un optimum local
diff erent de loptimum global. Ce probl` eme ne se produit cependant pas pour
les probl` emes convexes. Nous verrons ` a la section 5.3 la notion de probl` emes
convexes.
Nous verrons ` a la section 5.4 que lalgorithme du Simplexe peut etre utilis e
de mani` ere it erative pour r esoudre un cas particulier de probl` eme doptimisation
non lin eaire : les probl` emes s eparables. Enn, nous terminerons en voyant ` a la
section 5.5 un algorithme g en eral de programmation non lin eaire : la m ethode de
Franck-Wolfe.
51
52 Chapitre 5. Les mod`eles non lineaires
5.2 Diff erence avec la programmation lin eaire
Tout dabord, contrairement ` a la programmation lin eaire o` u la solution optimale
est toujours situ ee en un sommet de la r egion r ealisable, on peut avoir une solution
optimale non extr eme. Ceci est illustr e par lexemple suivant :
maxz = 3 x
1
+ 5 x
2
s.c.q.
_

_
x
1
4
9x
2
1
+ 5x
2
2
216
x
1
, x
2
0
Pour pouvoir en donner une repr esentation graphique, remarquons que
x
2
1
(4, 9)
2
+
x
2
2
(6, 5)
2
1
est l equation dune surface bord ee par une ellipse centr ee en lorigine. On peut
voir ` a la gure 5.1 que la seule solution optimale nest pas situ e en un point extr eme
de la r egion r ealisable.
4
2
2 4
3x
1
+ 5x
2
= 36
x
1
= 4
x
1
x
2
(2, 6)
6
Figure 5.1: Solution non extr eme
Mais la solution ne doit m eme pas etre situ ee sur la fronti` ere de la r egion. Ainsi,
on peut avoir une solution optimale int erieure. Ceci est illustr e par lexemple
suivant :
minz = (x
1
3)
2
+ (x
2
3)
2
s.c.q.
_

_
x
1
4
2x
2
12
3x
1
+ 2x
2
18
x
1
, x
2
0
Section 5.2. Dierence avec la programmation lineaire 53
dont la repr esentation graphique est donn ee ` a la gure 5.2 o` u lon peut voir que la
solution optimale est strictement int erieure. En effet, les courbes disovaleurs de
la fonction objectif forment des cercles concentriques et on a int er et ` a se situer au
centre de ces cercles.
8
6
4
2
0 2 4 6 x
1
x
2
(3, 3)
z = 0
z = 1
z = 4
z = 9
z = 16
Figure 5.2: Solution int erieure
Mais la principale difcult e de la programmation non lin eaire est que lon peut
avoir des optimaux locaux qui ne sont pas globaux. Illustrons ceci sur lexemple
suivant :
maxz = 3x
1
+ 5x
2
s.c.q.
_

_
x
1
4
8x
1
x
2
1
+ 14x
2
x
2
2
49
x
1
, x
2
0
Pour pouvoir tracer sa repr esentation graphique, remarquons que
(x
1
4)
2
+ (x
2
7)
2
16
correspond au plan moins un cercle de rayon 4 centr e en (4,7). Sa repr esentation
est donn ee ` a la gure 5.3 o` u lon peut voir que (4,3) minimum local non global !
Cest la une des plus grandes difcult es des probl` emes non convexes : on
peut avoir des optimaux locaux qui ne sont pas globaux. Cependant, il existe une
classe de probl` emes pour lesquels ce probl` eme ne se produit pas dans le sens que
tous les optimums locaux sont des optimum globaux. Il sagit des probl` emes
convexes.
54 Chapitre 5. Les mod`eles non lineaires
4
2
2 4 x
1
x
2
6
(0, 7)
(4, 3)
z = 3x
1
+5x
2
= 35
z = 3x1 +5x2 = 27
Figure 5.3: Minimum local
5.3 Les probl` emes convexes
D enition 5.1 Lensemble S est convexe, si quels que soient les deux points P, Q
S, tout le segment PQ S.
Ce cas est illustr e ` a la gure 5.4. Ces ensembles nont pas de partie rentrante ` a la
P
Q
P
Q
Figure 5.4: Ensembles convexes.
diff erence des ensembles non convexes illustr es ` a la gure 5.5.
P
Q
P
Q
Figure 5.5: Ensembles non convexes.
Section 5.3. Les probl`emes convexes 55
D enition 5.2 Une fonction f est convexe si lensemble
S = {(x, y) R
n
R|y f(x)} .
est un ensemble convexe.
Ceci est illustr e ` a la gure 5.6 pour lexemple de la fonction x
2
. La d enition
de fonction convexe se ram` ene donc ` a celle densemble convexe.
x
y
f(x)
Figure 5.6: Exemple de fonction convexe
D enition 5.3 Une fonction f est concave si la fonction f est convexe.
Un exemple de fonction concave est illustr ee ` a la gure 5.7.
x
y
f(x)
Figure 5.7: Exemple de fonction concave
Maintenant que nous avons d eni les notions densemble convexe et de fonction
convexe, nous pouvons d enir la notion de probl` eme convexe :
56 Chapitre 5. Les mod`eles non lineaires
D enition 5.4 Un programme math ematique est dit convexe sil sagit de la mi-
nimisation dune fonction convexe sur une r egion r ealisable convexe, soit de la
maximisation dune fonction concave sur une r egion r ealisable convexe.
Comme exemple de probl` emes convexes, on peut donc citer les probl` emes
avec d es economie d echelle puisquil sagit de la maximisation dune fonction
concave. Et comme exemple de probl` emes non convexes, on peut citer les
probl` emes avec economie d echelle puisquil sagit de probl` emes de maximisation
dune fonction convexe.
5.4 Programmation s eparable
Il existe une classe particuli` ere de probl` emes qui ne n ecessitent pas le recours ` a des
logiciels doptimisation non lin eaire, car ils peuvent se r esoudre par utilisations
r ep et ees de lalgorithme du Simplexe. Ce sont les programmes s eparables.
D enition 5.5 Une fonction est s eparable si elle peut etre exprim ee comme la
somme de fonctions dune seule variable :
f(x) =
n

j=1
f
j
(x
j
)
Par exemple, la fonction suivante est s eparable :
x
2
1
+ 2x
2
+ e
x
3
,
tandis que la fonction suivante est non s eparable ` a cause du terme x
1
x
2
:
x
1
x
2
+
1
1 + x
1
+ x
3
Les mod` eles s eparables peuvent etre r esolus par une suite dapproximations
lin eaires par morceaux. Plus pr ecis ement, on effectuera de la mani` ere suivant :
1. Chaque fonction s eparable est remplac ee par son approximation lin eaire par
morceaux.
2. Le probl` eme approxim e est alors r esolu par une version sp ecialis ee de lal-
gorithme du Simplexe traitant les probl` emes lin eaires par morceaux;
3. On rafne la discr etisation autour de la solution optimale du probl` eme
approxim e et on it` ere.
Section 5.4. Programmation separable 57
Onobtiendra ainsi loptimumglobal pour des probl` emes convexes et unoptimum
local pour des probl` emes non convexes.
Voyons ceci sur un exemple. Supposons que lon ait ` a r esoudre le probl` eme
convexe suivant :
min x
2
1
4x
1
2x
2
scq
_

_
x
1
+ x
2
4
2x
1
+ x
2
5
x
1
+ 4x
2
2
x
1
, x
2
0
(5.1)
Il sagit bien dun probl` eme convexe car on minimise x
2
1
qui est une fonction
convexe. La premi` ere chose ` a faire est de se donner une borne inf erieure et une
borne sup erieure ` a la valeur que pourra prendre la variable non lin eaire. Supposons
ici que 0 x
1
2, 5. On choisit alors un ensemble de valeurs de x
1
o` u la fonction
est evalu ee. Ici, ce sont les points 0, 1, 2 et 2,5. On r ealise alors une approximation
lin eaire par morceaux de la fonction en reliant par des segments de droites les points
d evaluation de la fonction. On obtient la courbe lin eaire par morceaux indiqu ee
par OABC ` a la gure 5.8.
x
y = x
2
O
B
C
1
2
3
4
5
6
1 2
A
Figure 5.8: Approximation par une fonction lin eaire par morceaux
Remarquez que, ce faisant, on introduit une erreur par rapport la vraie fonction.
Ainsi pour x
1
= 1, 5, la fonction vraie x
2
1
vaut 2, 25 alors que son approximation
lin eaire par morceaux fournit comme valeur 2, 5.
58 Chapitre 5. Les mod`eles non lineaires
Voyons maintenant comment r esoudre le probl` eme approxim e. Remarquez
que la fonctionillustr ee par la la courbe lin eaire par morceauxOABCde la gure 5.8
est une fonction non lin eaire. Elle ne peut donc directement etre trait ee par
lalgorithme du Simplexe. Aussi va-t-on recourrir ` a la m ethode suivante : on va
minimiser y en imposant ` a (x
1
, y) d etre dans l epigraphe de la fonction lin eaire
par morceaux. Ceci peut etre effectu e en imposant les trois contraintes suivantes :
y x
1
y 1 3(x
1
1)
y 4 4, 5(x
1
2)
Les trois relations ci-dessus traduisent le fait que le point (x
1
, y) est situ e au dessus
des segments OA, AB et BC.
Ainsi le programme convexe (5.1) est approxim e par :
min y 4x
1
2x
2
scq
_

_
x
1
+x
2
4
2x
1
+x
2
5
x
1
+4x
2
2
y x
1
0
y 3x
1
2
y 4, 5x
1
5
y, x
1
, x
2
0
Remarquons que, pour toute valeur de x
1
, si on minimise y en imposant que
(x
1
, y) soit dans l epigraphe, on se situera bien ` a loptimum sur lun des segments
OA, AB et BC. On en conclut que pour les probl` emes s eparables convexes, on
sest ramen e ` a la r esolution dun probl` eme lin eaire.
5.5 La m ethode de Franck-Wolfe
Nous allons voir un second algorithme qui permet de r esoudre les probl` emes dop-
timisation non lin eaires convexes par une s equence dapproximations lin eaires. Il
sagit de lalgorithme de Franck-Wolfe. Son principe est particuli` erement simple
dans le cas de probl` emes avec contraintes lin eaires.
Etant donn ee la solution initiale r ealisable x
0
, la fonction objectif du probl` eme
suivant
max f(x)
scq
_
Ax b
x 0
(5.2)
Section 5.5. La methode de Franck-Wolfe 59
est approxim e par son d eveloppement de Taylor dordre 1 :
f(x) f(x
0
) +
n

j=1
f(x
0
)
x
j
(x
j
x
0
j
)
Si on substitue dans (5.2), ` a f(x) son approximation donn ee, ` a une constante pr` es,
par g(x) d enie ci-dessous :
g(x) =
n

j=1
c
j
x
j
=
n

j=1
f(x
0
)
x
j
x
j
,
on obtient un probl` eme lin eaire soluble par lalgorithme du Simplexe. Notons x
LP
sa solution optimale.
Notez que lobjectif non lin eaire est de moins en moins bien approxim e lorsque
x s ecarte de x

mais que lobjectif doit saccrotre, du moins au d ebut, le long du


segment de x

` a x
LP
. Aussi va-t-on choisir le point qui maximise f(x) le long de
ce segment en r esolvant le probl` eme unidimensionnel suivant :
max
01
h() = f(x

+ (x
LP
x

))
Notons

, loptimum. Le point suivant :


x = x

(x
LP
x

)
deviendra le point initial pour lit eration suivante.
Appliquons ceci sur lexemple suivant :
max f(x) = 5x
1
x
2
1
+ 8x
2
2x
2
2
scq
_
3x
1
+ 2x
2
6
x
1
, x
2
0
Calculons le gradient :
f
x
1
= 5 2x
1
f
x
2
= 8 4x
2
Il est clair que x = (0, 0) fournit une solution r ealisable initiale :
x
0
= (0, 0)
Donc les coefcients du gradient sont
c
1
= 5
c
2
= 8
60 Chapitre 5. Les mod`eles non lineaires
On peut r esoudre graphiquement le probl` eme lin eaire suivant :
max 5x
1
+ 8x
2
scq
_
3x
1
+ 2x
2
6
x
1
, x
2
0
A la gure 5.9, on obtient P
1
, la solution du premier probl` eme lin eaire :
x
1
x
2
1 2
3
2
1
P
1
P
2
P
0
Figure 5.9: M ethode de Franck Wolfe
x
1
LP
= (0, 3)
Le segment entre x
0
et x
1
LP
a comme coordonn ees :
x
0
+ (x
1
LP
x
0
) = (0, 0) + [(0, 3) (0, 0)]
= (0, 3)
On va donc
maxh() = 24 18
2
sous les contraintes que 0 1. La maximisation sans contrainte conduit ` a
annuler la d eriv ee premi` ere :
24 36 = 0
soit = 2/3. On obtient donc le point en n dit eration 1 :
x
1
= (0, 0) + 2/3[(0, 3) (0, 0)] = (0, 2)
Proc edons ` a la deuxi` eme it eration :
c
1
= 5 2 0 = 5
c
2
= 8 4 2 = 0
Section 5.5. La methode de Franck-Wolfe 61
On peut r esoudre graphiquement le probl` eme lin eaire suivant :
max 5x
1
scq
_
3x
1
+ 2x
2
6
x
1
, x
2
0
A la gure 5.9, on obtient P
2
, la solution du deuxi` eme probl` eme lin eaire :
x
2
LP
= (2, 0)
Le segment entre x
1
et x
2
LP
a comme coordonn ees :
x
1
+ (x
2
LP
x
1
) = (0, 2) + [(2, 0) (0, 2)]
= (2, 2 2)
de sorte que lon maximise
maxh() = 8 + 10 12
2
sous les contraintes que 0 1. La maximisation sans contrainte conduit ` a
annuler la d eriv ee premi` ere :
10 24 = 0
soit = 5/12. On obtient donc le point en n dit eration 2 :
x
2
= (0, 2) + 5/12[(2, 0) (0, 2)] = (5/6, 7/6)
On peut r esumer lalgorithme de Franck-Wolfe comme suit :
1. Initialisation. Soit x
0
une solution initiale r ealisable. Posons k = 1.
2. It eration k. Pour j = 1, 2, ...n, evaluer
c
j
=
f(x
k1
)
x
j
3. Calcul de la direction. Trouver, par application de lalgorithme du Sim-
plexe, x
k
LP
la solution optimale du probl` eme lin eaire suivant :
maxg(x) =
n

j=1
c
j
x
j
s. c. q. Ax b et x 0
62 Chapitre 5. Les mod`eles non lineaires
4. Calcul du pas. Trouvez
k
la solution optimale de
max f
_
x
k1
+ (x
k
LP
x
k1
)
_
scq 0 1
et mettre
x
k
= x
k1
+
k
(x
k
LP
x
k1
)
5. Crit` ere darr et. Si x
k1
et x
k
sont sufsamment proches, stop. Sinon retour
en 2.
Reste ` a r esoudre eng en eral, le probl` eme de la maximisationde la fonctiondune
variable h(). Ceci peut etre fait, par exemple, par une m ethode de bissection.
5.6 Exercices
5.1. Programmation s eparable. R esoudre le probl` eme non lin eaire s eparable
suivant en appliquant la technique dapproximations lin eaires par morceaux :
Min x
2
1
4x
1
2x
2
Scq
_

_
x
1
+ x
2
4
2x
1
+ x
2
5
x
1
+ 4x
2
2
x
1
, x
2
0
5.2. M ethode de Franck-Wolfe. Faire la troisi` eme it eration de la m ethode de
Franck-Wolfe pour lexemple trait e ` a la section 5.5.
5.3. Minimisation des risques. Un epargnant dispose de 100 francs ` a investir
en bourse. Son portefeuille dactions peut comporter trois titres dont on
veut d eterminer les parts optimales x, y et z. Les rendements r
X
, r
Y
et r
Z
de ces trois titres sont des variables al eatoires. On suppose connues leurs
moyennes respectives : 30%, 20% et 8 %. Le risque V (x, y, z) est mesur e ` a
partir de la matrice de variance-covariance des rendements des trois titres :
V (x, y, z) = (x, y, z)
_
_
_
3 1 0.5
1 2 0.4
0.5 0.4 1
_
_
_
_
_
_
x
y
z
_
_
_
(a) Formuler le probl` eme lin eaire de la maximisation de la valeur moyenne
esp er ee de linvestissement dans le portefeuille.
(b) Forlumer le probl` eme de minimisation duu risque V (x, y, z) tout en
simposant un rendement esp er e du portefeuille au moins egal ` a 12 %.
Partie II
Logiciels doptimisation
63
Chapitre 6
Le solveur dEXCEL.
6.1 Introduction
Le solveur dEXCELest un r esolveur d equation ainsi quun optimiseur exploitant
les techniques de la programmation lin eaire, de la programmation en nombres
entiers et de la programmation non lin eaire.
Illustrons ceci sur lexemple de lentreprise de fabrication de chassis tir e
de [6]. Pour rappel, ce probl` eme s enonce ainsi : lentreprise de fabrication de
chassis envisage la mise en production de deux nouveaux mod` eles (le chassis en
aluminium et le chassis en bois) au moyen des capacit es r esiduelles de ses trois
ateliers : ` a savoir latelier 1 o` u sont fabriqu es les cadres en aluminium, latelier
2 o` u sont fabriqu es les cadres en bois et latelier 3 o` u le montage du verre sur le
chassis est r ealis e pour les deux types de chassis.
Le nombre dheures n ecessaires par produit et le nombre dheures encore dispo-
nibles par semaine sont donn es au tableau 6.1.
Atelier Chassis Chassis Capacit e
aluminium bois disponible
1 1 h 0 h 4 h/semaine
2 0 h 2 h 12 h/semaine
3 3 h 2 h 18 h/semaine
Tableau 6.1: Temps n ecessaires et capacit es r esiduelles
Les marges unitaires sont de 3 $ pour le chassis en aluminium et de 5 $ pour
le chassis en bois.
On se pose la question suivante : combien produire de chassis de chaque type
par semaine pour maximiser le prot net ?
65
66 Chapitre 6. Le solveur dEXCEL.
La formulation de ce probl` eme est particuli` erement simple. En posant x
1
, le
nombre de chassis en aluminium fabriqu es par semaine et x
2
, le nombre de chassis
en bois fabriqu es par semaine, on obtient la formulation suivante :
max = 3x
1
+ 5x
2
s.c.q.
_

_
x
1
4
2x
2
12
3x
1
+ 2x
2
18
x
1
0
x
2
0
Nous allons maintenant r esoudre le probl` eme au moyen du solveur dExcel.
La premi` ere chose ` a faire est de rentrer les donn ees num eriques du probl` eme et
les formules de calcul de la fonction objectif ainsi que du membre de gauche des
contraintes. Pour la clart e du mod` ele, il est indispensable de mettre egalement des
commentaires. Comme le probl` eme est lin eaire, on peut rentrer, les coefcients
num eriques sous forme dune matrice. On remarquera au tableau 6.2 que les
A B C D E
1 x1 x2 b
2
3 Prot : 3 5 =B3*$B$2+C3*$C$2
4 Atelier 1 : 1 0 =B4*$B$2+C4*$C$2 4
5 Atelier 2 : 0 2 =B5*$B$2+C5*$C$2 12
6 Atelier 3 : 3 2 =B6*$B$2+C6*$C$2 18
7 x1 positif : 1 0 =B7*$B$2+C7*$C$2 0
8 x2 positif : 0 1 =B8*$B$2+C8*$C$2 0
Tableau 6.2: Exemple de probl` eme lin eaire
coefcients dune m eme equation ainsi que sa formule de calcul ont et e rang es dans
une m eme ligne qui contient comme commentaire le nom de l equation (Atelier
1, Atelier 2, . . . ). De m eme, les coefcients se rapportant ` a une m eme variable
ont et e rang e en colonne sous le nom de la variable (x
1
, x
2
). Remarquez ici, pour
comprendre les formules, que lon a choisi de placer la valeur de x
1
en cellule
$B$2$ tandis que celle de x
2
est plac ee en cellule $C$2.
Il reste maintenant ` a indiquer ` a Excel, o` u se trouvent les variables, la fonction
objectif, le membre de gauche, de droite et le sens des contraintes. Ceci peut etre
mis en uvre en Excel 4.0 de la mani` ere suivante :
Section 6.1. Introduction 67
1. Dans le menu S election, choisir le sous-menu Solveur.
2. Dans la zone Cellule ` a d enir, mettre la r ef erence de la cellule de calcul
de lobjectif (ici $D$3).
3. Dans la zone Egale ` a, choisir Max ou Min (ici Max).
4. Dans la zone Cellules variables, mettre les r ef erences des cellules conte-
nant les variables (ici $B$2:$C$2) .
5. Dans la zone Contraintes, choisir ajouter une contrainte et pour chaque
contrainte :
Dans la zone Cellule, mettre la r ef erence de la cellule contenant la
formule de calcul du membre de gauche (par exemple, pour latelier
1 : $D$4).
Dans la zone Relation, mettre le sens de la contrainte (par exemple,
pour latelier 1 : <=).
Dans la zone Contrainte, mettre la r ef erence de la cellule contenant
le membre de droite (par exemple, pour latelier 1 : $E$4).
6. Dans Option, choisir Mod` ele suppos e lin eaire.
7. Lancer la commande R esoudre.
On obtient alors le mod` ele illustr e par la copie d ecran de la gure 6.1.
Figure 6.1: Param` etres du solveur
Plusieurs remarques sur les particularit es dExcel simposent ici :
1. Pour modier le mod` ele on peut utiliser :
68 Chapitre 6. Le solveur dEXCEL.
la commande supprimer la contrainte;
la commande modier la contrainte.
2. Il est important de bien choisir le nomde la contrainte et le nomdes variables
pour une pr esentation claire du rapport (voir ` a la section suivante comment
Excel d etermine le nom des variables et des contraintes).
3. La solution est mise dans les cellules variables.
4. Les contraintes de positivit e des variables doivent etre entr ees explicite-
ment, ceci contrairement ` a la convention de beaucoup doptimiseurs qui
consid` erent par d efaut des variables non n egatives. Remarquez que lon
peut directement entrer la contrainte sous la forme suivante :
$B$2:$C$2 >= 0
5. Seules les variables non calcul ees (les variables ind ependantes du mod` ele)
doivent etre rentr ees dans la sectionvariables. Ainsi, si lonavait calcul e dans
une cellule le nombre dheures pass ees dans latelier 1, cette cellule contien-
drait une variable (au sens math ematique du terme) mais ne devrait pas etre
rentr ee dans les cellules variables pour Excel, sans quoi Excel consid ererait
quil sagit dune variable ind ependante et effacerait sa formule de calcul.
6. Si le mod` ele est lin eaire (contraintes lin eaires et fonction objectif lin eaire),
on a tout int er et ` a s electionner loption Mod` ele suppos e lin eaire, ce qui
d eclenchera lalgorithme du Simplexe plut ot quun algorithme g en eral de
programmation non lin eaire.
7. Remarquez enn que on peut rentrer dune seule commande tout un groupe
de contraintes ayant le m eme sens. Ainsi, dans lexemple, on aurait pu
rentrer les trois contraintes de capacit es par la commande suivante :
$D$4:$D$6 <= $E$4:$E$6
La solution du solveur correspond bien ` a celle d etermin ee pr ec edemment, ` a
savoir
x

1
= 2
x

2
= 6
z

= 36
Section 6.2. Les rapports du solveur 69
6.2 Les rapports du solveur
Lorsque le solveur a termin e, quil ait trouv e la solution optimale ou non, la bote
de dialogue illustr ee ` a la gure 6.2 apparat.
Figure 6.2: Rapports possibles du solveur
Elle laisse le choix entre garder dans les cellules variables la solution obte-
nue par le solveur soit r etablir la solution initiale (g en eralement z ero partout).
Cette bote permet egalement de g en erer trois types de rapport : le rapport des
r eponses, le rapport de sensibilit e et le rapport des limites.
6.2.1 Le rapport des r eponses
Figure 6.3: Rapports des r eponses
Le rapport des r eponses (voir gure 6.3) fournit :
70 Chapitre 6. Le solveur dEXCEL.
la r ef erence de la cellule, le nom, la valeur initiale et nale de lobjectif;
la r ef erence de la cellule, le nom, la valeur initiale et nale des variables;
les informations sur les contraintes : la r ef erence de la cellule, le nom, la
valeur nale du membre de gauche, la formule de calcul, son status (active
ou non), ainsi que la marge (valeur de la variable d ecart).
Remarquez que pour d eterminer le nom, Excel fait, dans chaque cas, la concat e-
nation du premier commentaire rencontr e dans la m eme ligne que la cellule et du
premier commentaire rencontr e dans la m eme colonne que la cellule.
6.2.2 Le rapport de sensibilit e
Figure 6.4: Rapport de sensibilit e
Le rapport de sensibilit e (voir gure 6.4) fournit :
les informations sur les variables : la r ef erence de la cellule, le nom et la
valeur nale de la variable, le co ut r eduit, le coefcient dans la fonction
objectif, laccroissement et la diminution maximale de ce coefcient avant
quune variable ne change de valeur.
les informations sur les contraintes : la r ef erence de la cellule, le nom et la
valeur nale du membre de gauche de la contrainte, le prix dual, la valeur du
membre de droite, laugmentation et la diminution maximum de ce membre
de droite telle que la base optimale reste la m eme.
Section 6.3. Exercices 71
6.3 Exercices
6.1. Choix dinvestissements. Un epargnant peut investir 1000 F. Il a le choix
entre 3 investissements possibles : A, B et C. Les valeurs attendues et les
valeurs minimales garanties apr` es un an sont, pour un franc :
Type valeur valeur
dinvestissement attendue garantie
A 1, 4 0, 9
B 1, 2 1, 2
C 1, 6 0, 5
L epargnant souhaite un int er et minimum garanti de 5% lan. Lint er et mi-
nimal doit porter sur la somme disponible. Cependant, il a promis dinvestir
au moins 600 F sur B et C ensemble. Comment pourrait-il r epartir son
investissement pour maximiser la valeur attendue globale apr` es un an ?
6.2. D ecoupe de bobines m` eres. Les papetiers fabriquent des rouleaux de papier
dont la largeur est x ee par les caract eristiques des machines de production.
Leur clients peuvent leur r eclamer des rouleaux de diverses largeurs et de
diverses longueurs. Comme il est fr equent que ni la largeur ni la longueur
des bobines m` eres ne soient des multiples de celles de rouleaux command es,
il y a des pertes connues sous le nomde chutes. La largeur des bobines m` eres
est de 215 cm et leur longueur de 250 m. Les commandes accept ees par le
papetier sont reprises au tableau 6.3. Comme la longueur des rouleaux com-
Largeur (en cm) longueur (en m) nombre de rouleaux
64 250 360
60 250 180
35 250 180
Tableau 6.3: Commandes accept ees
mand es est identique ` a celle des bobines m` eres, il suft dassurer la coupe
transversale dun certain nombre de bobines m` eres. Pour satisfaire les com-
mandes accept ees, le papetier peut, par exemple, combiner trois coupes de
largeur 64 cm dans la m eme bobine, mais aussi, par exemple, deux de lar-
geur 64 et deux de largeur 35. Toutes les possibilit es sont reprises au tableau
6.4. On veut d eterminer comment satisfaire les commandes accept ees avec
le minimum de bobines m` eres.
(a) Formuler le probl` eme comme un probl` eme en nombres entiers.
(b) Mettre en uvre sous la forme dun mod` ele de calcul Excel.
72 Chapitre 6. Le solveur dEXCEL.
Largeur 1 2 3 4 5 6 7 8 9 10
64 3 2 2 1 1 1 0 0 0 0
60 0 1 0 2 1 0 3 2 1 0
35 0 0 2 0 2 4 1 2 4 6
Chute 23 27 17 31 21 11 0 25 15 5
Tableau 6.4: plans de coupe
(c) Donner la solution du solveur dExcel.
6.3. Effet de la publicit e. Une rme fabrique et met sur le march e 2 produits A
et B. Le prix de vente unitaire et les ressources n ecessaires pour fabriquer
une unit e sont donn ees au tableau 6.5. Chaque semaine, la soci et e peut se
Produit A Produit B
Prix de vente 60 $ 41 $
Mat eriau requis 2 unit es 1 unit e
Main-duvre 0,75 heure 0,5 heure
Usinage 1,5 heure 0,8 heure
Tableau 6.5: Prix unitaires et quantit es de facteurs
procurer 400 unit es du mat eriau requis au co ut de 4,75 $ lunit e. Au service
de la soci et e se trouvent 4 employ es qui travaillent chacun 40 heures semaine
et dont les salaires sont xes (ind ependant du volume de production). Les
heures suppl ementaires sont pay ees 15 $ de lheure. Mais la direction a
promis de ne jamais exiger plus de 35 heures suppl ementaires par semaine.
Lusinage se fait sur deux machines, disponibles chacune ` a raison de 160
heures par semaine. La demande de base du produit est au maximum de
50 unit es par semaine pour A et de 60 unit es pour B. On peut ins erer des
publicit es dans la presse locale. On estime que chaque $ de publicit e investi
pour A augmente sa demande maximum de 8 unit es et chaque $ investi pour
B augmente sa demande de 4 unit es. Le budget publicit e maximum est de
65 $ par semaine.
(a) Formuler le probl` eme de la maximisation du revenu net (choix des
variables, expression de lobjectif et des contraintes).
(b) R esoudre au moyen du solveur dExcel.
(c) Les ouvriers estiment que le prix de 15 $ nest pas une compensation
nanci` ere sufsante. Ils exigent une augmentation de 10 $ par heure.
Faut-il acc eder ` a leur demande ?
Section 6.3. Exercices 73
(d) Quel serait le revenu net que tirerait la soci et e de 10 $ de d epenses
suppl ementaires en publicit e chaque semaine ?
Chapitre 7
Le language GAMS
7.1 Un exemple de transport
Nous allons illustrer l ecriture dun mod` ele en GAMS sur un exemple de transport
tir e du manuel GAMS [1]. On dispose de deux usines de production dont les
d ebouch es sont situ es sur trois march es distants g eographiquement. On connat la
capacit e de production de chacune des usines ainsi que la demande de chacun des
march es. On dispose egalement (voir tableau 7.1 pour les donn ees) des distances,
exprim ees enmilliers de miles, entre les sites de productionet les march es. Les frais
Usines March es Offre
Distance New York Chicago Topeka
Seattle 2.5 1.7 1.8 350
San Diego 2.5 1.8 1.4 600
Demande 325 300 275
Tableau 7.1: Les donn ees num eriques du probl` eme de transport.
de transport sont de 90 $ par millier de miles. On se demande combien dunit es
du produit acheminer ` a chaque march e ` a partir de chaque usine de mani` ere ` a
minimiser les co uts de transport, les co uts de production, etant les m emes dans
toutes les usines, nentrent pas en ligne de compte.
Nous allons dabord formuler math ematiquement le probl` eme. Nous indi-
cons par i, les usines et par j, les march es. Affectons egalement des symboles aux
donn ees num eriques (voir tableau 7.2).
7.1.1 Choix des variables de d ecision
Notons par x
ij
, la quantit e transport ee de lusine i vers le march e j.
75
76 Chapitre 7. Le language GAMS
Symbole Signication
O
i
Offre de produit ` a lusine i;
D
j
Demande pour le produit au march e j;
d
ij
Distance entre lusine i et le march e j;
c
ij
Co ut unitaire de transport entre lusine i et le march e j.
Tableau 7.2: Les symboles affect es aux donn ees.
7.1.2 Expression de lobjectif
Il sagit simplement de la minimisation de la somme des co uts de transport :
min

j
c
ij
x
ij
o` u le coefcient c
ij
se calcule ` a partir du coefcient d
ij
repr esentant la distance en
milliers de miles entre i et j par la formule suivante :
c
ij
= 90d
ij
, i, j
7.1.3 Expression des contraintes
Observer la capacit e de lusine i : elle sexprime simplement par le fait que
la somme des quantit es pr elev ees ` a lusine i doit etre inf erieure ou egale ` a
sa capacit e :
x
11
+ x
12
+ x
13
350 = O
1
x
21
+ x
22
+ x
23
600 = O
2
En g en eral :

j
x
ij
O
i
, i
Satisfaire la demande au march e j : elle sexprime simplement par le fait
que la somme des quantit es arrivant sur le march e j doit au moins etre egale
` a la demande :
x
11
+ x
21
325 = D
1
x
12
+ x
22
300 = D
2
x
13
+ x
23
275 = D
3
En g en eral :

i
x
ij
D
j
, j
Section 7.2. Ecriture en GAMS 77
7.2 Ecriture en GAMS
EnGAMS, les indices sont appel es des ensembles (SETS), les donn ees sont appel ees
des param` etres (PARAMETERS), les variables de d ecisions sont appel ees variables
(VARIABLES) et les contraintes et la fonction objectif sont appel es des equations
(EQUATIONS).
Voyons maintenant l ecriture en GAMS du mod` ele. Elle d ecoule directement
de la formulation :
SETS
I les usines /SEATTLE,SAN-DIEGO/
J les marches /NEW-YORK,CHICAGO,TOPEKA/ ;
PARAMETERS
OFF(I) capacite de lusine i
/ SEATTLE 350
SAN-DIEGO 600 /
DEM(J) demande au marche j
/ NEW-YORK 325
CHICAGO 300
TOPEKA 275 / ;
TABLE DIST(I,J) distance en milliers de miles
NEW-YORK CHICAGO TOPEKA
SEATTLE 2.5 1.7 1.8
SAN-DIEGO 2.5 1.8 1.4 ;
SCALAR F cout de transport en dollar par mille miles /90/;
PARAMETER C(I,J) cout de transport en dollars ;
C(I,J) = F * DIST(I,J) ;
VARIABLES
X(I,J) quantites transportees
Z cout total de transport en dollars ;
POSITIVE VARIABLE X ;
EQUATIONS
COUT definit la fonction objectif
78 Chapitre 7. Le language GAMS
OFFRE(I) respecter la capacite de lusine i
DEMANDE(J) satisfaire la demande du marche j ;
COUT.. Z =E= SUM((I,J), C(I,J)*X(I,J)) ;
OFFRE(I).. SUM(J,X(I,J)) =L= OFF(I) ;
DEMANDE(J).. SUM(I,X(I,J)) =G= DEM(J) ;
MODEL TRANSPORT /ALL/ ;
SOLVE TRANSPORT USING LP MINIMIZING Z;
Voyons maintenant plus en d etails chacune des sections dun chier GAMS.
7.2.1 Section SET
Dans lexemple, la section SET est constitu ee des lignes suivantes :
SETS
I les usines /SEATTLE,SAN-DIEGO/
J les marches /NEW-YORK,CHICAGO,TOPEKA/ ;
Dans cette section, on donne un nom ` a chaque indice qui sera utilis e dans le
mod` ele, un texte explicatif de cet indice et les membres de lensemble entre barres
de division, le s eparateur etant la virgule.
Il est ` a remarquer quaussi bien les noms que les commentaires doivent etre en
ASCII pur : pas daccent, pas de caract` eres sp eciaux tels que , ni m eme le $
qui sera utilis e pour exprimer des conditions de restriction (voir plus loin).
Remarquez egalement que linstruction SET est termin ee par un ;, le s epara-
teur dinstruction en GAMS. On peut egalement mettre une instruction SET devant
chaque nom dindice, il faut alors terminer chaque ligne par un ;.
Lorsque les el ements dun ensemble sont des nombres cons ecutifs, on peut
utiliser le caract` ere * qui signie tous les nombres compris entre les deux
valeurs. Par exemple, pour un indice sur les ann ees tel que le T suivant :
SET T toutes les annees de 1991 a 1994 /1991,1992,1993,1994/;
on peut le d enir plus simplement par :
Section 7.2. Ecriture en GAMS 79
SET T toutes les annees de 1991 a 1994 /1991 * 1994/ ;
Dans certains probl` emes, il est n ecessaire davoir une deuxi` eme copie dun
m eme indice. Par exemple, dans un tableau carr e des distances kilom etriques
entre villes o` u lon utilise en abscisse et en ordonn ee les m emes villes. Ceci peut
etre fait en GAMS de la mani` ere suivante :
SET I noeuds du reseau /ZEE,DUD,BRU,ZOM,LOE,ARL,PET/ ;
ALIAS(I,J) ;
Lensemble J sera alors une copie parfaite de lensemble I. Cest analogue au i

en
notation math ematique.
7.2.2 Les donn ees
On peut introduire les donn ees de trois mani` eres :
1. sous forme dune liste de valeurs;
2. sous forme dun tableau de valeurs;
3. par assignation de valeur au moyen dune formule de calcul.
Donn ees sous forme dune liste des valeurs :
Dans lexemple, cest le cas des param` etres OFF(I) et DEM(J) :
PARAMETERS
OFF(I) capacite de lusine i
/ SEATTLE 350
SAN-DIEGO 600 /
DEM(J) demande au marche j
/ NEW-YORK 325
CHICAGO 300
TOPEKA 275 / ;
On d enit ici deux param` etres OFF(I) et DEM(J) en donnant leurs domaines de
d enition respectif I et J entre parenth` eses. On donne ensuite une phrase de
commentaires puis la liste des indices et la valeur correspondante du param` etre, le
s eparateur entre deux arguments etant le retour de ligne ou la virgule.
80 Chapitre 7. Le language GAMS
Il est ` a remarquer que les param` etres sont, par d efaut, initialis es ` a ZERO.
Ainsi, on ne rentre pas les valeurs nulles des param` etres. Il faut en tenir compte si
le param` etre est, par exemple, une capacit e innie. Si on ne rentre aucune valeur,
GAMS linterpr etera comme une capacit e nulle pour lusine. On peut rentrer une
capacit e innie par le nombre INF comme dans lexemple suivant :
PARAMETERS
DEM(J) demande au marche j
/ NEW-YORK 325
CHICAGO 300
TOPEKA INF / ;
Il est aussi ` a remarquer quun param` etre peut etre d enit sans aucun domaine
via linstruction SCALAR o` u lon donne le nom, un texte de commentaires et la
valeur du param` etre entre barres de division comme dans lexemple suivant :
SCALAR F cout de transport en dollar par mille miles /90/;
Il est aussi ` a remarquer que lon peut rentrer des param` etres d enis sur plus
dun indice. Dans ce cas, on utilisera le . comme liaison entre le premier et le
second indice comme dans lexemple suivant o` u lon donne la capacit e des arcs
dun r eseau de transport :
SET I les noeuds du reseau /A,B,C,D,E,F/;
ALIAS(I,J) ;
PARAMETER CAP(I,J) capacite de larc
/A.B 3
A.C 7
C.B 2
C.D 2
B.D 4
C.E 4
E.D 2
D.F 6
E.F 5
F.A INF/;
Section 7.2. Ecriture en GAMS 81
Donn ees sous forme de tableaux :
Dans le cas de deux indices, une fa con plus commode de rentrer les valeurs dune
matrice de param` etres est de les rentrer via la section TABLE comme dans lexemple
suivant :
TABLE DIST(I,J) distance en milliers de miles
NEW-YORK CHICAGO TOPEKA
SEATTLE 2.5 1.7 1.8
SAN-DIEGO 2.5 1.8 1.4 ;
Il est ` a remarquer que le s eparateur de colonne est un ou plusieurs blancs.
Remarquez egalement quune seule table peut etre introduite apr` es le mot-cl e
TABLE, contrairement ` a ce qui peut se faire avec les mots-cl es SETSouPARAMETERS.
Si plusieurs tables doivent etre introduites, on r ep etera donc chaque fois le mot
TABLE devant le nom de la table.
Donn ees entr ees par assignation directe :
Une troisi` eme forme (outre la liste de valeurs et la table) pour rentrer les valeurs dun
param` etre est laffectation directe via une formule qui est illustr ee par lexemple
suivant :
PARAMETER C(I,J) cout de transport en dollars ;
C(I,J) = F * DIST(I,J) ;
o` u laffectation est faite pour toute valeur de I et toute valeur de J. Cette ligne est
donne equivalente ` a une double boucle daffectation pour tout i et pour tout j.
7.2.3 Section VARIABLES
La section VARIABLES donne, ligne par ligne, le nom des variables avec leurs
indices eventuels entre parenth` eses ainsi quune phrase dexplication de la signi-
cation de la variable. Dans lexemple introductif, cela donne :
VARIABLES
X(I,J) quantites transportees
Z cout total de transport en dollars ;
82 Chapitre 7. Le language GAMS
On peut ensuite affecter aux variables un type comme dans le cas de lexemple :
POSITIVE VARIABLE X ;
Apr` es le mot-cl e POSITIVE VARIABLE, on donne la liste de toutes les variables qui
doivent etre positives ou nulles. Remarquez que lon reprend le nom des variables
sans les indices.
On peut egalement sp ecier BINARY VARIABLE pour la liste des variables
binaires 0/1 et INTEGER VARIABLE pour la liste des variables enti` eres (en fait
comprises entre 0 et 100). Il existe encore deux autres types de variables :
NEGATIVE VARIABLE pour les variables astreintes ` a etre n egatives ou nulles et
FREE VARIABLE pour les variables pouvant aller de moins linni ` a plus linni.
Le type par d efaut est le type FREE et la variable de calcul de lobjectif (ici Z) doit
etre de ce type.
7.2.4 Section EQUATIONS
D eclaration des equations
La section EQUATIONS donne la liste, ligne par ligne, des noms des contraintes
ainsi que de la ligne de calcul de la fonction objectif avec les indices eventuels sur
lesquels portent ces contraintes suivi dun texte de commentaires. Dans lexemple,
cela donne :
EQUATIONS
COUT definit la fonction objectif
OFFRE(I) respecter la capacite de lusine i
DEMANDE(J) satisfaire la demande du marche j ;
Remarquez quen GAMS, EQUATIONS englobe aussi bien la d enition de lob-
jectif, que celle des contraintes d egalit e que celle des contraintes din egalit e.
Remarquez aussi que les equations qui ont la m eme forme alg ebrique sont
d enies en une seule ligne et seront cr e ees pour toutes les valeurs des indices
apparaissant comme arguments dans le nom de la contrainte. Un indice I dans le
nom de la contrainte est donc equivalent math ematiquement ` a ecrire la contrainte
pour tout I.
Remarquez aussi que les noms de contraintes doivent etre diff erents des noms
des variables et diff erents des noms de param` etres. Si par exemple, on a
d ej` a d eni un param` etre DEMANDE(J), on ne peut plus appeler la contrainte de
satisfaction de la demande au march e J du m eme nom DEMANDE(J).
Section 7.2. Ecriture en GAMS 83
D enition des equations :
Ensuite la d enition de chaque contrainte et de lobjectif sont donn ees sous la
forme suivante :
COUT.. Z =E= SUM((I,J), C(I,J)*X(I,J)) ;
OFFRE(I).. SUM(J,X(I,J)) =L= OFF(I) ;
DEMANDE(J).. SUM(I,X(I,J)) =G= DEM(J) ;
Cest-` a-dire que lon reprend le nomde la contrainte avec son indice eventuel suivi
de .. et de sa d enition : membre de gauche, sens de la contrainte, membre de
droite termin e par ;. La signication de la lettre pr ecisant le sens de la contrainte
est donn ee au tableau 7.3.
=L= Less than or equal
=G= Greater than or equal
=E= Equality
Tableau 7.3: Signication du type de contrainte
La syntaxe dune sommation est la suivante :
SUM(les indices de sommation, le contenu de la sommation)
La sommation peut porter sur un seul indice, comme dans lexemple suivant :
OFFRE(I).. SUM(J,X(I,J)) =L= OFF(I) ;
qui est equivalent ` a :

j
x
ij
O
i
.
La sommation peut porter sur plusieurs indices comme dans lexemple suivant :
COUT.. Z =E= SUM((I,J), C(I,J)*X(I,J)) ;
qui est equivalent ` a
z =

i,j
c
ij
x
ij
.
Remarquez aussi que si on veut utiliser un nom d equation pour une valeur
donn ee dun indice, on mettra cette valeur entre guillemets simples. Par exemple,
l equation de demande ` a NEW-YORK s ecrit :
84 Chapitre 7. Le language GAMS
DEMAND(NEW-YOR).. X(SEATTLE,NEW-YORK)
+ X(SAN-DIEGO,NEW-YORK) =G= DEM(NEW-YOR) ;
La m eme remarque est vraie pour lutilisation dune valeur dun indice dune
variable ou dun param` etre.
7.2.5 Section MODEL
La section MODEL sp ecie les contraintes et lobjectif ` a prendre en consid eration
dans le mod` ele. Ceci permet, par exemple, de tester une version lin eaire restreinte
dun mod` ele qui comporte certaines contraintes non lin eaires en ne reprenant dans
la liste que les contraintes purement lin eaires. Remarquez que lon ne pr ecise pas
les variables ` a consid erer : GAMS consid erera toutes les variables impliqu ees dans
les contraintes de la liste. Si lon veut reprendre toutes les contraintes qui ont et e
d enies dans la section EQUATIONS, on se contentera de mettre ALL dans la liste
comme dans lexemple :
MODEL TRANSPORT /ALL/;
qui est equivalent ` a :
MODEL TRANSPORT /COUT,OFFRE,DEMANDE/;
7.2.6 Section SOLVE
La section SOLVE indique ` a GAMS quel est le mod` ele ` a optimiser, le sens de
loptimisation (MINIMIZE ou MAXIMIZE), lobjectif et le type doptimiseur ` a
utiliser. La signication des lettres pr ecisant loptimiseur est donn ee au tableau 7.4.
LP Linear Programming
NLP Non Linear Programming
MIP Mixed Integer Programming
Tableau 7.4: Signication du type doptimiseur ` a utiliser
La syntaxe de cette commande est la suivante :
SOLVE modele USING optimiseur MINIMIZING objectif;
Ce qui dans notre exemple, donne :
SOLVE TRANSPORT USING LP MINIMIZING Z;
Section 7.3. Exercices 85
7.3 Exercices
7.1. Probl` eme de livraison de marchandises. Une rme poss` ede trois usines
situ ees ` a Anvers, Li` ege et Mons de capacit es mensuelles de production de
25, 15 et 15 respectivement. Le directeur des ventes de cette rme sait, au vu
de ses ches de commandes, que, pour la n du moins, il doit livrer 20, 12,
9 et 14 unit es du produit ` a quatre clients qui habitent Bruxelles, Charleroi,
Namur et Ostende, respectivement. Les co uts de transport dune unit e de
produit entre les usines et les villes sont donn es au tableau 7.5.
Co ut de transport Anvers Li` ege Mons
Bruxelles 100 120 70
Charleroi 150 170 30
Namur 180 80 90
Ostende 90 210 140
Tableau 7.5: Co uts unitaires de transport.
Comment ce directeur doit-il organiser le transport entre ses usines et clients
pour en minimiser les frais, tout en satisfaisant les commandes ? Les co uts
de production sont identiques dans les trois usines et nentrent donc pas en
consid eration. Formulez le mod` ele et le r esoudre au moyen de GAMS.
7.2. Chargement dun haut fourneau. Une fonderie re coit une commande de
1000 tonnes dacier. Cet acier doit r epondre aux caract eristiques suivantes :
il doit contenir au moins 0,45 % de mangan` ese tandis que son pourcentage
en Siliciumdoit se situer entre 3,25 et 5,50. Pour couler cet acier, la fonderie
dispose en quantit es illimit ees de trois types de minerais (A,B et C) dont les
teneurs en Si et Mn sont donn ees au tableau 7.6. Le proc ed e de production
Minerai A B C
Si 4 % 1 % 0,6 %
Mn 0,45 % 0,5 % 0,4 %
Tableau 7.6: Teneurs en Silicium et Mangan` ese des diff erents minerais.
de lacier est tel quune addition directe de mangan` ese est envisageable. Ce
mangan` ese est disponible au prix de 8 millions la tonne. Quant aux minerais,
ils co utent respectivement 21 millions les mille tonnes pour le type A, 25
millions par mille tonnes pour B, et 15 millions par mille tonnes pour C.
86 Chapitre 7. Le language GAMS
Si la fonderie envisage de vendre lacier produit 0,45 million la tonne, que
doit etre son plan de production pour maximiser son prot, sachant que le
co ut de fonte dune tonne de minerai est de 0,005 million ?
Formulez le mod` ele et le r esoudre au moyen de GAMS.
7.3. Optimisationde ux de transports. Lentreprise B atiment Travaux Publics
Nantes Atlantique a 3 chantiers en cours : C1, C2, C3. Elle poss` ede 2 unit es
de production de b eton, B1 et B2, et 2 carri` eres, G1 et G2, o` u sont produits
les gravillons qui entrent dans la fabrication du b eton. Si la production
interne ne suft pas, il est possible de faire appel ` a la sous-traitance pour la
production de gravillons (unit e G3) et/ou pour la production de b eton (unit e
B3). Dans la mesure du possible, on evite dutiliser la sous-traitance. Il faut
1/2tonne de gravillons pour 1tonne de b eton. Les quantit es de b eton ` a fournir
dans la p eriode aux chantiers C1, C2 et C3 sont respectivement 100, 200 et
130 tonnes. Les capacit es de production en gravillons des unit es G1 et G2
sont respectivement 75 et 60 tonnes pendant la p eriode. La carri` ere du sous-
traitant G3peut fournir 100tonnes aumaximum. Les capacit es de production
en b eton des unit es B1 et B2 sont respectivement de 60 et 120 tonnes. Le
sous-traitant B3 a une capacit e de 600 tonnes pendant la m eme p eriode.
Les co uts de transport unitaire (en euros/tonne) des gravillons sont donn es
euros/tonne vers B1 vers B2 vers B3
de G1 100 80 85
de G2 60 70 65
de G3 120 180 140
Tableau 7.7: Co uts de transport des gravillons
` a la table 7.7 tandis que les co uts de transport unitaire (en euros/tonne) des
b etons sont donn es ` a la table 7.8. On veut d eterminer comment satisfaire les
F/tonne vers C1 vers C2 vers C3
de B1 40 50 60
de B2 25 30 30
de B3 40 45 60
Tableau 7.8: Co uts de transport des b etons
commandes accept ees ` a co ut de transport minimum tout en nayant recours
` a la sous-traitance que pour les capacit es manquantes de mani` ere interne.
Formuler le probl` eme et le r esoudre au moyen de GAMS.
Chapitre 8
Fonctions plus avanc ees en GAMS
8.1 Les sous-ensembles
Il est parfois n ecessaire de d enir un sous-ensemble dindices. Par exemple, dans
un probl` eme de transport o` u les nuds du r eseau indiquent soit des points doffre,
soit des points de demande, soit des points dinterconnection du r eseau, on peut
vouloir distinguer les sous-ensembles des nuds doffre et des nuds de demande.
Ceci pourra etre fait en GAMS de la mani` ere suivante :
SET I noeuds du reseau /ZEE,DUD,BRU,ZOM,LOE,
ANT,GEN,PER,VOE,BER,LIE,WAR,NAM,AND,
MON,BLA,WAN,SIN,ARL,PET/ ;
SETS D(I) noeuds de demande /ANT,ARL,BRU,GEN,
LIE,MON,NAM,PET,BLA/
O(I) noeuds doffre /ZEE,DUD,LOE,VOE,AND,PER/;
La syntaxe donne le nom du sous-ensemble et entre parenth` eses lensemble dont
il est issu, ensuite un texte dexplication et les membres du sous-ensemble entre
barres de division, s epar es par des virgules.
8.2 Les ensembles multi-dimensionnaux
Dans certains probl` emes, il peut etre utile de stocker des couples dindices. Par
exemple, les arcs dun r eseau de transport peuvent etre stock es sous la forme de
couples (i,j) comme dans lexemple suivant :
SET I noeuds du reseau /ZEE,DUD,BRU,ZOM,LOE,
87
88 Chapitre 8. Fonctions plus avancees en GAMS
ANT,GEN,PER,VOE,BER,LIE,WAR,NAM,AND,
MON,BLA,WAN,SIN,ARL,PET/ ;
ALIAS(I,J) ;
SET A(I,J) liste des arcs du reseau /ZEE.DUD,DUD.BRU,
BRU.ZOM,LOE.ANT,ANT.GEN,GEN.ZOM,ZOM.PER,VOE.BER,
BER.LIE,LIE.WAR,WAR.NAM,NAM.AND,AND.PER,PER.MON,
MON.BLA,WAR.WAN,WAN.SIN,SIN.ARL,ARL.PET/
La signication est la suivante : A est un ensemble de couples dindices dont le
premier appartient ` a I et le second ` a J. Le lien est cr e e en mettant un . entre le
premier indice et le second indice. On utilisera la m eme syntaxe pour des n-uples.
8.3 D enition et initialisation de param` etres
La d enition dunparam` etre peut yinclure soninitialisation comme dans lexemple
suivant o` u le param` etre CAPACITE est fonction de deux indices :
PARAMETER CAP(I,J) capacite de larc
/A.B 3
A.C 7
C.B 2
C.D 2
B.D 4
C.E 4
E.D 2
D.F 6
E.F 5
F.A INF/;
Le param` etre repr esente ici la capacit e des arcs dun r eseau de transport. La
signication est la suivante : pour larc ayant sont origine en A et son extr emit e en
B, la capacit e de larc est 3. Remarquez que le lien est cr e e entre le premier et le
second indice par un point. On utilisera la m eme syntaxe dans le cas de n-uples.
On peut egalement initialiser un param` etre ` a deux indices via la sp ecication
TABLE. C etait le cas du param` etre distance entre usines et march es dans lexemple
du chapitre 7. Remarquez que linstruction TABLE ne peut porter que sur une seule
table contrairement aux instructions SET et PARAMETER qui peuvent porter sur
plusieurs ensembles et plusieurs param` etres cons ecutifs.
Section 8.3. Denition et initialisation de param`etres 89
Pour les tables ` a trois indices ou plus, on utilisera le point pour faire la jonction
entre deux indices comme dans lexemple suivant :
SET
I les periodes de production /janvier,fevrier,mars,avril/
J les periodes de consommation /janvier,fevrier,mars,avril/
M les modes de production /h-norm,h-supp/;
TABLE COUT(I,J,K)
janvier.h-norm fevrier.h-norm mars.h-norm avril.hnorm
janvier 1.0 1.3 1.6 1.9
fevrier +INF 1.0 1.3 1.6
mars +INF +INF 1.0 1.3
avril +INF +INF +INF 1.0
+ janvier.h-supp fevrier.h-supp mars.h-supp avril.supp
janvier 1.5 1.8 2.1 2.4
fevrier +INF 1.5 1.8 2.1
mars +INF +INF 1.5 1.8
avril +INF +INF +INF 1.5 ;
Il sagit dunexemple tir e de Williams [11] o` ulonpeut produire enheures normales
au co ut de 1 ou en heures suppl ementaires au co ut de 1,5, le co ut de stockage
pendant un mois dune unit e etant de 0,3. Remarquez que la seconde partie du
tableau aurait tr` es bien pu etre plac ee ` a droite de la premi` ere partie. Si on veut,
comme cest fait ici, entrer les colonnes dun tableau en plusieurs blocs, on utilise
le + qui signie que lon continue tout simplement le m eme tableau.
On peut egalement initialiser un param` etre s epar ement de sa d enition. C etait
le cas des co uts de transport dans lexemple introductif du chapitre 7. On peut
calculer les param` etres en utilisant les fonctions arithm etiques. Par exemple, le
calcul de la capacit e totale de mode m se calcule math ematiquement comme :
CAPTOT
m
=

i
CAP
im
Ce qui s ecrit en GAMS :
PARAMETER TOTCAP(M) capacite totale du mode M ;
TOTCAP(M) = SUM( I , CAPACITE(I,M) );
90 Chapitre 8. Fonctions plus avancees en GAMS
On peut egalement utiliser la fonction produit PROD ou la fonction exponenciation
comme dans lexemple suivant :
OUTPUT =
i
INPUT
part
i
i
qui s ecrit en GAMS :
OUTPUT = PROD( I, INPUT(I) ** SHARE(I) ) ;
On peut aussi utiliser les fonctions SMIN et SMAX qui ont la m eme syntaxe que la
sommation ou le produit mais qui calculent le minimum ou le maximum respecti-
vement comme dans les exemples suivants :
CAPMIN = SMIN( I , CAP(I) );
CAPMAX = SMAX( I , CAP(I) );
8.4 D enition des variables et de leur type
Les variables sont d enies via leur liste avec leur domaine de d enition respectif.
Par d efaut une variable est libre (FREE). On peut sp ecier un type diff erent par une
des instructions suivantes :
FREE [INF, +INF]
POSITIVE [0, +INF]
NEGATIVE [INF, 0]
BINARY {0, 1}
INTEGER {0, 1, 2, . . .100}
Remarquez que ces diff erents types sont mutuellement exclusifs : on ne peut
d eclarer une variable POSITIVE et INTEGER en m eme temps. On peut egalement
affecter des valeurs aux bornes inf erieures ou sup erieures des variables via les
sufxes .LO pour la borne inf erieure et .UP pour la borne sup erieure. On peut
egalement introduire une valeur initiale via le sufxe .L, ce qui est particuli` erement
utile dans le cas de la programmation non lin eaire. Voici des exemples :
X.UP(I,J) = 100 ;
X.LO(I,J) = 1 ;
X.L(I,J) = (X.UP(I,J) - X.LO(I,J))/2 ;
Section 8.5. Utilisation de loperateur dexceptions 91
8.5 Utilisation de lop erateur dexceptions
On peut utiliser lop erateur $ pour des exceptions dans trois cas diff erents :
1. dans les sommations : pour restreindre la sommation ` a un sous-ensemble
comme dans le cas dun r eseau de transport o` u lon ne veut faire la sommation
que sur les arcs existant et ayant et e d enis dans lensemble ` a double indice
A(I,J) :
CONSER(I).. SUM( J $A(J,I), FLUX(J,I))
=E= SUM( J$ A(I,J),FLUX(I,J)) ;
La signication est la suivante : on fera la somme des ux F(I,J) que si le
couple (I,J) fait partie de lensemble des arcs A(I,J).
On peut egalement utiliser les op erateurs relationnels dans la condition. Par
exemple, la somme sur les villes I o` u la capacit e est comprise entre 10 et 20
s ecrit en GAMS :
SUM( I $ ( ( CAP(I) GE 10 ) AND ( CAP(I) LE 20 ) ), X(I))
Les op erateurs les plus courants et leur signications sont donn es au ta-
bleau 8.1.
LT Less Than LE Less or Equal
GE Greather or Equal GT Greater Than
EQ Equal NE Non Equal
OR Or AND And
Tableau 8.1: Signication des op erateurs
2. dans le calcul alg ebrique : pour ajouter un terme dans une equation unique-
ment si la condition est vraie comme dans lexemple suivant o` u lon ajoute
la demande uniquement dans le cas ou I est un nud de demande :
CONSER(I).. SUM(J$A(J,I),FLUX(J,I)) + OFF(I)$O(I)
=E= SUM(J$A(I,J),FLUX(I,J)) + DEM(I)$D(I);
La signication est la suivante : on ajoutera OFF(I) uniquement dans le cas
o` u I appartient ` a lensemble O(I) qui est le sous-ensemble des nuds doffre.
92 Chapitre 8. Fonctions plus avancees en GAMS
3. dans le domaine de d enition dune equation : ce qui a pour effet de res-
treindre le nombre d equations g en er ees comme dans le cas suivant o` u lon
restreint la contrainte de bilan sur les stocks aux p eriodes 1 ` a 4 au lieu des
p eriodes 0 ` a 4 :
SETS T /0,1,2,3,4/ ;
BILAN(T)$(ORD(T) GT 1).. PRODUCTION(T) + STOCK(T-1)
=E= DEMANDE(T) + STOCK(T) ;
o` u ORD(T) donne le num ero dordre de T dans lensemble.
8.6 Section SOLVE
La syntaxe de cette instruction est illustr ee par lexemple du chapitre introductif :
SOLVE TRANSPORT USING LP MINIMIZING Z ;
Les diff erents solveurs disponibles sont les suivants :
LP = Linear Programming
NLP = Non Linear Programming
MIP = Mixed Integer Programming
On peut, avant de lancer lex ecution, modier la valeur par d efaut de certains
param` etres de contr ole. Par exemple, les instructions suivantes :
OPTION ITERLIM = 2000 ;
OPTION RESLIM = 3000;
ont pour effet de xer le nombre maximumdit erations ` a 2000 et la limite du temps
maximum dex ecution ` a 3000 (par d efaut, 1000 pour les deux param` etres).
Linstruction suivante est utilis ee uniquement en cas de r esolution de probl` emes
en nombres entiers :
OPTION OPTCR = 0.05 ;
Cette instruction a pour effet darr eter lex ecution si la diff erence relative entre
la meilleure borne sup erieure et la meilleure borne inf erieure sur lobjectif est
inf erieure ` a 5 %. La valeur par d efaut est de 0,1 (10 %). Si on veut forcer la
m ethode de branch and bound ` a aller jusqu` a la solution optimale du probl` eme en
nombres entiers il faut xer ce param` etre ` a 0.
Section 8.7. Exercices 93
8.7 Exercices
8.1. Planication de production. Un industriel cherche ` a etablir son plan de
production pour les quatre mois ` a venir, sachant que les demandes sont d ej` a
connues (cfr tableau 8.2). En r egime normal, la production est de 1200
Mois 1 2 3 4
Commandes 900 1100 1700 1300
Tableau 8.2: Commandes des quatre prochains mois.
articles par mois. A laide dheures suppl ementaires, ce niveau standard
peut etre elev e jusqu` a 400 articles en plus, mais il faut compter dans ce cas
un co ut additionnel de 7 euros par article. Les co uts de stockage mensuels
sont de 3 euros par article en stock en n de mois.
Comment lindustriel doit-il planier sa production pour minimiser les co uts
variables, cest-` a-dire les co uts occasionn es par les heures suppl ementaires
et le stockage ? La situation est telle quil peut se permettre en r egime normal
de produire mois de 1200 articles par mois. Cela naura aucune incidence
sur les co uts de production, ceux-ci etant xes en r egime normal, mais leffet
sur les co uts de stockage peut etre b en eque.
Formuler le mod` ele correspondant et le r esoudre au moyen de GAMS.
8.2. Tourn ees de v ehicules. Consid erons le probl` eme dorganisation de la col-
lecte des d echets. La collectivit e locale dispose de 12 v ehicules de collecte
r epartis comme suit pour collecter dans 4 villes not ees ville 1 ` a ville 4.
Ville 1 2 3 4
Nombre de camions 4 3 1 4
Les temps de trajets entre ces villes et lincin erateur sont les suivants :
Vers ville 1 ville 2 ville 3 ville 4 incin erateur
De la ville 1 0 10 45
De la ville 2 10 0 5
De la ville 3 5 0 5 20
De la ville 4 5 0
De lincin erateur 45 20 0
Formuler le probl` eme de minimisation du temps total pour aller ` a lin-
cin erateur comme un probl` eme en nombre entiers et le r esoudre avec GAMS.
94 Chapitre 8. Fonctions plus avancees en GAMS
8.3. Location de surfaces dentreposage. Le b atiment dentreposage dune
rme fabriquant des peintures vient d etre compl` etement ravag e par le feu.
Pour pouvoir continuer ` a stocker ses surplus de production pr evus pour les 6
prochains mois (soit la p eriode de reconstruction de lentrep ot), la rme doit
disposer des surfaces minimum reprises au tableau 8.3. La soci et e sadresse
Mois 1 2 3 4 5 6
Surface (en 100 m
2
) 35 20 30 10 15 20
Tableau 8.3: Besoins minimaux en surface dentreposage
` a une rme sp ecialis ee dans lentreposage qui permet de louer nimporte
quelle surface pour un nombre quelconque de mois. Le co ut de location est
d ecroissant en fonction de la longueur du bail (cfr tableau 8.4). La rme
Dur ee du bail (en mois) 1 2 3 4 5 6
Co ut du bail (euros pour 100 m
2
) 200 360 500 625 745 850
Tableau 8.4: Co ut des baux
peut donc signer chaque mois autant de baux quelle le d esire pour la dur ee
et la surface quelle juge utiles. Lobjectif est de minimiser le co ut total des
baux qui permettront de couvrir les besoins en entreposage des 6 prochains
mois. On vous charge d etablir le calendrier de d ebut et de n de chacun des
baux ainsi que la surface sur laquelle ils portent.
Chapitre 9
Interpr etation de la solution
9.1 Un exemple de planication de production
Il sagit dun probl` eme de planication de la production tir e de Williams [11].
Une usine peut produire cinq produits (not es PROD1 ` a PROD5). La marge
b en eciaire, cest-` a-dire la diff erence entre le prix de vente et le co ut de pro-
duction, est donn ee par produit au tableau 9.1.
Produit PROD1 PROD2 PROD3 PROD4 PROD5
Marge 550 600 350 400 200
Tableau 9.1: Prot net par produit
Chaque produit n ecessite le passage par trois etapes de fabrication. Le temps
requis ` a chaque etape est donn e pour chaque produit au tableau 9.2.
Produit PROD1 PROD2 PROD3 PROD4 PROD5

Etape 1 12 20 0 25 15

Etape 2 10 8 16 0 0

Etape 3 20 20 20 20 20
Tableau 9.2: Temps de fabrication
Enn, il faut tenir compte des ressources en facteurs disponibles. Elles sont
donn ees au tableau 9.3. Lusine travaille en deux poses de huit heures par jour, et
ceci, au maximum six jours par semaine. Chaque personne travaille une pose de 8
heures et ceci 6 jours par semaine au maximum.
95
96 Chapitre 9. Interpretation de la solution

Etape Ressource en facteurs

Etape 1 3 machines

Etape 2 2 machines

Etape 3 8 personnes
Tableau 9.3: Ressources en facteurs
La question que se pose le gestionnaire de lusine est la suivante. Quelles sont
les quantit es ` a fabriquer de chaque produit pour maximiser le prot net ?
9.1.1 Choix des variables de d ecisions
Dans cet exemple, on note simplement par x
i
, la quantit e du produit i fabriqu ee
par semaine.
9.1.2 Denition de la fonction objectif
Dans cet exemple, il sagit de la somme des contributions de chacune des produc-
tions au prot net de lusine. Elle sexprime simplement par :
maxz = 550x
1
+ 600x
2
+ 350x
3
+ 400x
4
+ 200x
5
9.1.3 Expression des contraintes
Dans lexemple, il y a trois contraintes :
La premi` ere concerne la limite dutilisation des machines ` a l etape 1. Il
y a en fait trois machines, utilis ees en deux poses des huit heures et ceci 6
jours au maximumpar semaine, ce qui donne un nombre maximumdheures
dutilisation par semaine
1
:
3 (2 8) 6 = 288 heures
Une unit e de produit 1 demande 12 heures sur machine ` a l etape 1. Si x
1
unit es de produit 1 sont produites par semaine, cela demande 12 x
1
heures
1
Remarquez ici limportance davoir pr ecis e que les quantit es produites
l etaient par semaine.
Section 9.1. Un exemple de planication de production 97
sur la machine 1. Par un raisonnement semblable pour les autres produits,
on obtient nalement la contrainte :
12x
1
+ 20x
2
+ 0x
3
+ 25x
4
+ 15x
5
288
La deuxi` eme contrainte concerne la limite utilisation des machines ` a l etape
2. Le nombre maximum dheures dutilisation vaut :
2 (2 8) 6 = 192 heures,
et la contrainte sexprime comme :
10x
1
+ 8x
2
+ 16x
3
+ 0x
4
+ 0x
5
192.
Enn, la troisi` eme contrainte concerne la limite utilisation du personnel ` a
l etape 3. Le nombre maximum dheures prest ees en une semaine par les 8
personnes est de :
8 (1 8) 6 = 384 heures.
Et donc la contrainte sexprime comme :
20x
1
+ 20x
2
+ 20x
3
+ 20x
4
+ 20x
5
384
Il faut bien s ur egalement imposer la positivit e des variables :
x
1
, x
2
, x
3
, x
4
, x
5
0
Enn, g en eralement on conclut l etape de construction du mod` ele, en regroupant
les contraintes et lobjectif. On obtient le programme math ematique suivant :
maxz = 550x
1
+ 600x
2
+ 350x
3
+ 400x
4
+ 200x
5
s.c.q.
_

_
12x
1
+20x
2
+0x
3
+25x
4
+15x
5
288
10x
1
+8x
2
+16x
3
+0x
4
+0x
5
192
20x
1
+20x
2
+20x
3
+20x
4
+20x
5
384
x
1
, x
2
, x
3
, x
4
, x
5
0
98 Chapitre 9. Interpretation de la solution
9.2 Interpr etation economique
Nous allons illustrer diff erents aspects de linterpr etation economique de la solution
sur lexemple de planication de la production introduit ` a la section pr ec edente.
Sa formulation est reprise ci-dessous :
maxz = 550x
1
+ 600x
2
+ 350x
3
+ 400x
4
+ 200x
5
s.c.q.
_

_
12x
1
+20x
2
+0x
3
+25x
4
+15x
5
288
10x
1
+8x
2
+16x
3
+0x
4
+0x
5
192
20x
1
+20x
2
+20x
3
+20x
4
+20x
5
384
x
1
, x
2
, x
3
, x
4
, x
5
0
La solution optimale de ce probl` eme lin eaire est la suivante :
x

1
= 12; x

2
= 7, 2; x

3
= x

4
= x

5
= 0.
Tandis que la valeur optimale de lobjectif est :
z

= 10 920
Voici quelques exemples de questions economiques que lon peut se poser :
1. Les produits 3, 4 et 5 sont vendus ` a des prix trop faibles par rapport aux deux
autres. De combien augmenter leur prix de vente, ou de combien r eduire
leur co ut de production, pour les rendre attractifs ?
2. Combien rapporterait en suppl ement de prot une heure suppl ementaire pour
l etape 1, pour l etape 2, ou en main duvre ?
Les r eponses ` a ces deux types de questions sont fournies par linterpr etation
economique de la solution optimale.
1. Pour la premi` ere question, loppos e des co uts r eduits fournit laugmentation
de prix n ecessaire. En effet, les co uts r eduits des variables hors base sin-
terpr` etent, en g en eral, comme laugmentation de la fonction objectif lorsque
lon augmente dune unit e la variable. Ici, ` a loptimum, ces co uts r eduits,
not es respectivement d
3
, d
4
et d
5
, sont n egatifs (condition doptimalit e dun
probl` eme de maximisation), traduisant le fait que si la production de ces
biens etait positive, elle diminuerait le prot dautant.
d
3
= 125;
d
4
= 231, 25
d
5
= 368, 75.
Section 9.2. Interpretation economique 99
Pour quil devienne int eressant de les produire, il faut donc augmenter leur
prix dau moins cette quantit e. Ici donc, loppos e des co uts r eduits sin-
terpr` ete comme laugmentation minimale de prix pour que la production
devienne int eressante.
2. Pour la seconde question, la valeur des variables duales, not ees y

i
, i =1,2,3,
fournit leffet marginal dune augmentation de capacit e.
y

1
= 6, 25;
y

2
= 0;
y

3
= 23, 75.
En effet, en g en eral, la variable duale associ ee ` a une contrainte fournit direc-
tement laugmentation de la fonction objectif pour une augmentation unitaire
du membre de droite de la contrainte. Ici justement, le membre de droite est
le nombre dheures de travail disponibles ` a chaque etape de production.
Remarquez que tous les optimiseurs fournissent en plus de la solution optimale
dun probl` eme lin eaire, ces deux informations :
Les co uts r eduits sont donn es par loppos e des coefcients des variables
hors base dans la ligne objectif du tableau Simplexe optimal;
Les variables duales sont donn ees les coefcients des variables d ecart des
contraintes dans la ligne objectif du tableau Simplexe optimal.
9.2.1 Interpr etation des prix duaux
Les prixduauxouvaleurs optimales des variables duales sinterpr` etent comme
laugmentation du prot pour une augmentation unitaire dun des coef-
cients du membre de droite ` a la fois.
Ainsi dans lexemple ci-dessus, laugmentation dune unit e du premier facteur
rapporte 6,25 unit es mon etaires.
9.2.2 Interpr etation des co uts r eduits
Les co uts r eduits des variables hors base sinterpr` etent comme laugmenta-
tion du prot pour une augmentation unitaire de la valeur de la variable
hors base.
Par exemple, pour le produit 3, le co ut r eduit vaut 125. On en d eduit imm ediate-
ment que si lon accrot le prix de vente du produit 3 de 125 unit es mon etaires,
son co ut r eduit devient nul et sa production devient int eressante.
100 Chapitre 9. Interpretation de la solution
9.3 Output de GAMS
9.3.1 Echo du programme GAMS
Reprenons lexemple introductifdu chapitre 7 qui nous a servi ` a introduire l ecriture
en GAMS dun mod` ele. La premi` ere chose que fait GAMS dans son listing r esultat
est de faire un echo de formulation en GAMS en ajoutant simplement des num eros
de ligne. Pour notre exemple, onobtient le d ebut de listing(.LST) repris ci-dessous :
1 $TITLE un probleme de transport
2 $OFFUPPER
3 SETS
4
5 I les usines /SEATTLE,SAN-DIEGO/
6 J les marches /NEW-YORK,CHICAGO,TOPEKA/;
7
8 PARAMETERS
9
10 A(I) capacite de lusine i
11 / SEATTLE 350
12 SAN-DIEGO 600 /
13
14 B(J) demande au marche j
15 / NEW-YORK 325
15 CHICAGO 300
17 TOPEKA 275 / ;
18
19 TABLE D(I,J) distance en milliers de miles
20 NEW-YORK CHICAGO TOPEKA
21 SEATTLE 2.5 1.7 1.8
22 SAN-DIEGO 2.5 1.8 1.4 ;
23
24 SCALAR F cout de transport en dollars par Kmiles /90/;
25
26 PARAMETER C(I,J) cout de transport en Kilo dollars ;
27
28 C(I,J) = F * D(I,J)/1000 ;
29
30 VARIABLES
31 X(I,J) quantites transportees
32 Z cout total de transport en Kilo dollars ;
Section 9.3. Output de GAMS 101
33
34 POSITIVE VARIABLE X ;
35
36 EQUATIONS
37 COST definit la fonction objectif
38 SUPPLY(I) respecter la capacite de lusine i
39 DEMAND(J) satisfaire la demande du marche j;
40
41 COST.. Z =E= SUM((I,J), C(I,J)*X(I,J)) ;
42
43 SUPPLY(I).. SUM(J,X(I,J)) =L= A(I) ;
44
45 DEMAND (J).. SUM(I,X(I,J)) =G= B(J) ;
46
47 MODEL TRANSPORT /ALL/ ;
48
49 SOLVE TRANSPORT USING LP MINIMIZING Z;
50
51 DISPLAY X.L, X.M ;
Nous avons egalement ajout e en d ebut de programme GAMS des instructions
qui vont contr oler loutput de GAMS. On se r ef erera au manuel GAMS pour la liste
compl` ete de ces instructions. Elle doivent toutes commencer en colonne 1 par un
dollar. Linstruction $TITLE va imprimer le texte qui suit en haut de chaque page.
Linstruction $OFFUPPER permet au listing output de contenir des minuscules et
des majuscules.
Sil y a des erreurs de syntaxe, un message commen cant par **** est indiqu e
en dessous de la ligne en cause avec un code derreur commen cant par $ suivi dun
chiffre. En n de listing sont repris la signication des messages derreur utilis es
dans le listing.
Les erreurs les plus classiques sont :
Loubli dun ; pour terminer une ligne dinstruction GAMS. Ce sigle doit
etre pr esent, en particulier, ` a la n de toute formule de calcul dun param` etre
ou de toute d enition dune contrainte.
Lutilisation du m eme nom pour une variable et un param` etre ou du m eme
nom pour une variable et pour une equation. Par exemple, l equation de de-
mande est appel ee DEMAND(I) et il existe d ej` a une variable DEMAND(I).
Une variable ou un param` etre ont et e d enis avec un jeu dindices et sont
utilis es avec un autre jeu dindices ou avec un nombre dindices diff erent de
102 Chapitre 9. Interpretation de la solution
celui de leur d enition.
9.3.2 Liste des contraintes
Sil ny a plus derreur, GAMS permet ` a lutilisateur de v erier si les contraintes
g en er ees correspondent bien ` a ce quil voulait faire en donnant trois contraintes
pour chaque contrainte g en erique. Ainsi, l equation :
DEMAND (J).. SUM(I,X(I,J)) =G= B(J) ;
va donner les lignes suivantes dans le listing des contraintes :
-------- DEMAND satisfaire la demande du marche j
DEMAND(NEW-YOR).. X(SEATTLE,NEW-YORK)
+ X(SAN-DIEGO,NEW-YORK) =G= 325 ;
DEMAND(CHICAGO).. X(SEATTLE,CHICAGO)
+ X(SAN-DIEGO,CHICHAGO) =G= 300 ;
DEMAND(TOPEKA).. X(SEATTLE,TOPEKA)
+ X(SAN-DIEGO,TOPEKA) =G= 275 ;
An que cette section ne soit pas trop longue, GAMS se limite aux trois premi` eres
contraintes g en er ees pour chaque contrainte g en erique. On peut modier ce
nombre par la commande
OPTION LIMROW = r ;
o` u r est le nombre de lignes souhait ees.
9.3.3 Liste des colonnes
Loutput par d efaut contient aussi une section listing des colonnes, qui, sem-
blablement ` a la liste des contraintes, reprend pour trois variables sp eciques de
chaque variable g en erique, ses coefcients dans les diff erentes equations.
---- X quantites transportees
X(SEATTLE,NEW-YORK)
(.LO, .L, .UP = 0, 0, +INF)
Section 9.3. Output de GAMS 103
-225 COUT
1 OFFRE(SEATTLE)
1 DEMANDE(NEW-YORK)
Pour economiser du papier une fois quon est s ur de son mod` ele, une bonne chose
est d eviter cet afchage au moyen de la commande suivante :
OPTION LIMCOL = 0 ;
Dans les mod` eles non lin eaires, le listing des equations donne les coefcients
de lapproximation de Taylor du premier ordre des equations non lin eaires, cette
approximation etant calcul ee au point de d epart.
9.3.4 Statistiques du mod` ele
GAMS donne alors une section statistiques du mod` ele qui, pour notre exemple
de transport, donne :
MODEL STATISTICS
BLOCKS OF EQUATIONS 3 SINGLE EQUATIONS 6
BLOCKS OF VARIABLES 2 SINGLE VARIABLES 7
NON ZERO ELEMENTS 19
Les BLOCKS signie le nombre de variables oud equations g en eriques g en er ees
tandis que les SINGLE signie le nombre de variables ou d equations indivi-
duelles g en er ees.
9.3.5 Status du solveur
GAMS donne alors une tr` es importante section SOLVE SUMMARY qui, pour
notre exemple de transport, donne :
S O L V E S U M M A R Y
MODEL TRANSPORT OBJECTIVE Z
TYPE LP DIRECTION MINIMIZE
SOLVER XMP FROM LINE 49
****SOLVER STATUS 1 NORMAL COMPLETION
****MODEL STATUS 1 OPTIMAL
****OBJECTIVE VALUE 153.6750
104 Chapitre 9. Interpretation de la solution
Les deux lignes les plus importantes sont SOLVER STATUS et MODEL STA-
TUS. La ligne SOLVERSTATUS nous dit si la r esolution sest termin ee norma-
lement ou si le solveur a d u abandonner la r esolution. Tandis que la ligne MODEL
STATUS donnant l etat du mod` ele (1 = OPTIMAL, 3= UNBOUNDED, 4 = IN-
FEASIBLE).
9.3.6 Rapport des solutions
Ensuite, GAMS donne les r esultat de loptimisation sous la forme suivante. Pour
chaque contrainte le limite inf erieure du membre de gauche, la valeur de celui-ci,
la limite sup erieure et la variable duale :
----EQU OFFRE respecter la capacite de lusine i
LOWER LEVEL UPPER MARGINAL
SEATTLE -INF 350.000 350.000 EPS
SAN-DIEGO -INF 550.000 550.000 .
----EQU DEMAND satisfaire la demande du marche j
LOWER LEVEL UPPER MARGINAL
NEW-YORK 325.000 325.000 +INF 0.225
CHICAGO 300.000 300.000 +INF 0.153
TOPEKA 275.000 275.000 +INF 0.126
Le sigle . signie z ero. Le sigle EPS signie epsilon.
Pour les variables, on donne la borne inf erieure, la valeur, la borne sup erieure
et le co ut r eduit :
----VAR X quantites transportees
LOWER LEVEL UPPER MARGINAL
SEATTLE .NEW-YORK . 50.000 +INF .
SEATTLE .CHICAGO . 300.000 +INF .
SEATTLE .TOPEKA . . +INF 0.036
SAN-DIEGO.NEW-YORK . 275.000 +INF .
SAN-DIEGO.CHICAGO . . +INF 0.009
SAN-DIEGO.TOPEKA . 275.000 +INF .
A la n du rapport, GAMS donne le nombre de conditions doptimalit e non
satisfaites, de contraintes non r ealisables et de rayons extr emes de solutions :
****REPORT SUMMARY : 0 NONOPT
0 INFEASIBLE
0 UNBOUNDED
Section 9.4. Exercices 105
9.4 Exercices
9.1. La planication dans une manufacture. Une manufacture, qui fabrique
3 produits, utilise 3 ressources pour cette production : services techniques,
main duvre et services administratifs. Le tableau suivant donne les res-
sources n ecessaires ` a la production dune unit e de chacun des produits, ainsi
que diverses autres donn ees pertinentes.
Ressources utilis ees (h/unit e)
Produit Services Main Services Prot
techniques doeuvre administr.
P1 1 10 2 10
P2 1 4 2 6
P3 1 5 6 4
Capacit e (h) 100 600 300
(a) Formuler le probl` eme lin eaire et r esoudre au moyen de GAMS.
(b) Quel prix maximal lentreprise serait-elle pr ete ` a payer pour obte-
nir une heure suppl ementaire de main duvre ? pour une heure
suppl ementaire de services administratifs ?
(c) De combien devrait-on augmenter le prix de vente unitaire de P3 pour
quil devienne rentable den produire ?
9.2. Planication au point mort. Une usine de fabrication de jouets est sp e-
cialis ee dans trois articles : le tricycle, le camion et la poup ee. Le carnet
de commandes impose la production, le mois prochain dau moins 1 300
tricycles, 1 250 camions et 4 000 poup ees. Le directeur sest x e comme
contrainte economique datteindre le point mort. Il d enit la contribution
au prot dun jouet fabriqu e dans son usine comme la diff erence entre le
prix de vente et le co ut de production (` a lexclusion des frais dexploitation).
Lusine atteint donc le point mort aussit ot que la contribution totale au prot
est egale aux frais dexploitation, lesquels s el` event ` a 41 000 euros par mois.
Voici les co uts de production et la contribution au prot de chaque jouet.
Jouet Co ut de production Contribution au prot
Tricycle 15 euros 4,00 euros
Camion 5 euros 1,50 euros
Poup ee 4 euros 1,00 euros
Le directeur cherche donc ` a d eterminer combien de jouets de chaque sorte
produire le mois prochain de fa con ` a atteindre le point mort tout en minimi-
sant les co uts de production.
106 Chapitre 9. Interpretation de la solution
(a) Formuler le probl` eme et r esoudre au moyen du logiciel GAMS
(b) Si le co ut de production du tricycle augmenter de 4 % et que le prix du
jouet est augment e en cons equence de mani` ere ` a maintenir la m eme
contribution unitaire au prot, que deviendra le plan de production
optimal ?
(c) Si les frais dexploitation chutent de 1 200 euros et que le directeur
maintient sa demande datteindre le point mort tout en minimisant les
co uts, que deviendront les co uts de production ?
9.3. Lancement dun nouveau produit. Une soci et e envisage lajout dun nou-
veau produit ` a sa gamme. Deux mod` eles du nouveau produit on et e analys es.
Le mod` ele standard peut se fabriquer dans lun ou lautre des 3 ateliers (A,
B ou C) dont dispose la soci et e; chaque unit e de mod` ele requiert en main
duvre soit 5 heures dans latelier A, soit 4 heures dans latelier B, soit 5
heures dans C. Quant ` a lautre mod` ele consid er e, dit mod` ele de luxe, late-
lier A ne dispose pas de l equipement n ecessaire et sa fabrication devra etre
con ee aux ateliers B et C; enn, une unit e de ce mod` ele de luxe requiert en
main duvre 5 heures dans latelier B, ou 8 heures dans C.
On peut rendre disponibles pour la fabrication de lun ou lautre des mod` eles
de ce produit 2 000 heures dans latelier A, 8 000 heures dans B et 4 000
heures dans C. Le salaire horaire vers e aux ouvriers est de 11,50 euros dans
latelier A, de 13 euros dans Bet de 12 euros dans C. Le co ut des mat eriaux et
les d epenses (autres que celles engag ees pour la main duvre) directement
li ees ` a la fabrication de cet article sont evalu es ` a 10 euros pour lunit e du
mod` ele standard et ` a 15 euros pour lunit e du mod` ele de luxe. Lentreprise
se propose de vendre le mod` ele standard ` a 135 euros lunit e et le mod` ele de
luxe ` a 145 euros lunit e. Le service marketing estime quon ne peut esp erer
vendre plus de 2 500 unit es du mod` ele standard ni plus de 1 000 unit es du
mod` ele de luxe.
Comment doit-on r epartir le production des 2 mod` eles entre les diff erents
ateliers pour maximiser les prots d ecoulant du lancement de ce produit ?
(a) Formuler le probl` eme et d eterminer le plan optimal de production au
moyen de GAMS.
(b) Quel est latelier o` u une variation dune heure dans le temps disponible
aurait la plus grande r epercussion sur le prot ?
(c) Quel est le produit dont le service marketing devrait essayer de pro-
mouvoir la demande ?
Chapitre 10
R esolution de mod` eles non lin eaires
10.1 Mod` eles en nombres entiers
On appelle programmes en nombres entiers (IP pour Integer Programming),
les mod` eles comportant une fonction objectif et des contraintes lin eaires et des va-
riables astreintes ` a des valeurs enti` eres. Si certaines variables du mod` ele sont
continues et dautres en nombres entiers, on parle de programmation mixte
enti` ere (MIP pour Mixed Integer Programming). Enn, un cas particulier tr` es
fr equent de programme en nombres entiers est celui o` u les variables ne peuvent
prendre que les valeurs 0 ou 1 : on parle alors de programmation z ero/un.
10.2 Utilisation du solveur MIP avec GAMS
Pour r esoudre un probl` eme mixte entier en GAMS, il suft dans la section variables
de d eclarer les variables suivant leur type. Ainsi les commandes suivantes :
INTEGER VARIABLE X ;
BINARY VARIABLE Y ;
ont pour effet de d eclarer respectivement x comme un entier compris entre 0 et
100 et y comme une variable binaire. Il est ` a souligner que la suite de commandes
suivantes :
POSITIVE VARIABLE X ;
INTEGER VARIABLE X ;
conduira ` a une erreur en GAMS. Le type POSITIVE voulant dire r eel positif.
Pour lancer loptimisation, il suft de choisir le bon solveur, cest-` a-dire, le
solveur MIP par linstruction suivante :
107
108 Chapitre 10. Resolution de mod`eles non lineaires
SOLVE monmodele USING MIP MINIMIZING lecout;
Rappelons quil peut etre n ecessaire de pousser loptimisation jusqu` a la n en
mettant le param` etre OPTCR ` a z ero par la commande :
OPTION OPTCR = 0.0 ;
Il sagit du crit` ere relatif doptimalit e qui garantit que la diff erence entre la borne
sup erieure et inf erieure sur la valeur optimum du probl` eme en nombres entiers
est inf erieure ` a OPTCR. Par d efaut, cette borne est mis ` a 0,10 soit 10 % derreur
relative tol er ee. Rappelons que pour un probl` eme de maximisation :
une borne sup erieure est donn ee par la relaxation lin eaire du probl` eme,
une borne inf erieure est donn ee par une solution enti` ere du probl` eme.
Il peut aussi etre n ecessaire daugmenter le nombre maximum dit erations par
la commande :
OPTION ITERLIM = 2000 ;
10.3 Mod` eles non lin eaires
On parle de mod` ele doptimisation non lin eaire lorsque lon doit optimiser une
fonction sous contraintes et que soit la fonction objectif, soit au moins une cont-
rainte est non lin eaire.
10.4 R esolution de probl` emes non lin eaires avec GAMS
Lintroduction de fonctions non lin eaires aussi bien dans la d enition de lobjectif
que dans les contraintes ne pose pas de probl` emes en GAMS. Rappelons que
lop erateur de multiplications est le caract` ere * comme dans lexemple dobjectif
quadratique suivant :
OBJECTIF .. Z =E= SUM(I,0.5*Q(I)*Q(I)) ;
Il suft, pour lancer loptimisation, de choisir le bon optimiseur par la com-
mande suivante :
SOLVE mommodele USING NLP MAXIMIZING Z;
Dans le listing de solution de GAMS, les multiplicateurs de Lagrange sont
donn es, au signe pr` es, dans la colonne MARGINAL de la section EQUATIONS.
Section 10.5. Conditions de Kuhn et Tucker 109
10.5 Conditions de Kuhn et Tucker
Pour ecrire les conditions doptimalit e, on a besoin quune condition de r egularit e
soit satisfaite.
D enition 10.1 D enition de point r egulier des contraintes. Soit x

satisfaisant
les contraintes :
h(x

) = 0, g(x

) 0 (10.1)
Alors x

est dit r egulier pour les contraintes (10.1) si les gradients des contraintes
actives (cest-` a-dire celle qui v eri ees ` a l egalit e) sont lin eairement ind epen-
dants.
On peut alors ecrire les tr` es importantes conditions n ecessaires suivantes :
Th eor` eme 10.1 Conditions n ecessaires de Kuhn-Tucker. Soit x

un minimum
local pour le probl` eme
min f(x)
s.c.q.
_
h(x) = 0,
g(x) 0
(10.2)
et supposons x

r egulier pour les contraintes. Alors il existe des multiplicateurs


R
m
et R
p
tels que
f(x

) +
m

i=1

i
h
i
(x

) +
p

k=1

k
g
k
(x

) = 0 (10.3)

k
g
k
(x

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

k
0, k = 1, . . .p
Les conditions (10.4) sont les conditions de compl ementarit e disant que si
une contrainte nest pas active, son multiplicateur
k
doit etre nul. Pour bien
comprendre la signication pratique des conditions (10.3), nous allons les r ecrire
au moyen de la fonction de Lagrange. La fonction de Lagrange est obtenue
en multipliant le membre de gauche de chaque contrainte d egalit e (h
i
(x) = 0)
par un multiplicateur
i
, le membre de gauche de chaque contrainte din egalit e
(g
k
(x) 0) par son multiplicateur
k
et en additionnant le tout ` a lobjectif :
L(x, , ) = f(x) +
m

i=1

i
h
i
(x) +
p

k=1

k
g
k
(x)
Remarquez que ce faisant, on passe dun probl` eme doptimisation sous contraintes
` a un probl` eme doptimisation sans contrainte. Les conditions doptimalit e pour
110 Chapitre 10. Resolution de mod`eles non lineaires
une fonction d enie sur R
n
sont simplement lannulation de son gradient. On
remarque que pr ecis ement les conditions de Kuhn et Tucker (10.3) ne sont rien
dautre que lannulation du gradient par rapport ` a x du gradient du Lagrangien :

x
L(x

) = 0.
Illustrons ceci sur lexemple suivant :
min 2x
2
1
+ 2x
1
x
2
+ x
2
2
10x
1
10x
2
s.c.q.
_
x
2
1
+ x
2
2
5
3x
1
+ x
2
6
Le lagrangien s ecrit de la mani` ere suivante :
L(x, , ) = 2x
2
1
+ 2x
1
x
2
+ x
2
2
10x
1
10x
2
+
1
(x
2
1
+ x
2
2
5) +
2
(3x
1
+ x
2
6)
Les conditions de Kuhn et Tucker s ecrivent ici simplement :
L/x
1
= 4x
1
+ 2x
2
10 + 2
1
x
1
+ 3
2
= 0
L/x
2
= 2x
1
+ 2x
2
10 + 2
1
x
2
+
2
= 0

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

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

1
,
2
0
Parfois, la r esolution de ces conditions permet de d eterminer le point optimum.
Ainsi, supposons la premi` ere contrainte active, et la seconde inactive (
2
= 0).
Les conditions se r eduisent ` a :
4x
1
+ 2x
2
10 + 2
1
x
1
= 0
2x
1
+ 2x
2
10 + 2
1
x
2
= 0
x
2
1
+ x
2
2
= 5
dont la solution est donn ee par :
x

1
= 1,
x

2
= 2,

1
= 1,

2
= 0.
Comme, de plus,
1
0, cette solution satisfait les conditions n ecessaires de Kuhn
et Tucker.
Terminons par la proposition suivante.
Proposition 10.1 Si le probl` eme est un probl` eme convexe, les conditions n eces-
saires sont aussi sufsantes pour montrer que lon est ` a loptimum.
Section 10.6. Exercices 111
10.6 Exercices
10.1. Appel doffres. Une municipalit e lance un appel doffres concernant 4 pro-
jets de construction. Elle re coit des devis de la part de 3 entreprises. Chaque
entreprise propose des devis concernant un sous-ensemble des projets. La
table 10.1 reprend le montrant du devis propos e pour chacun des projets
par lentreprise uniquement dans le cas o` u elles ont soumissionn e pour le
projet. La municipalit e d esire minimiser le co ut total de ses op erations de
Projet A B C D
Entreprise 1 4 1 - 6
Entreprise 2 - 2 5 -
Entreprise 3 3 - 6 5
Tableau 10.1: Montants des offres.
construction.
(a) Ecrire le programme correspondant sachant que chaque projet doit
etre attribu e ` a une seule entreprise. La municipalit e d esire aussi que
chaque entreprise r ealise au moins un projet. A quelle condition ceci
est possible ? En admettant que cette condition soit remplie, ecrire la
contrainte correspondante.
(b) Ecrire le mod` ele en nombres entiers obtenu en GAMS.
(c) Donner la solution obtenue par GAMS.
10.2. Minimisation des risques. Un epargnant dispose de 100 francs ` a investir
en bourse. Son portefeuille dactions peut comporter trois titres dont on
veut d eterminer les parts optimales x, y et z. Les rendements r
X
, r
Y
et r
Z
de ces trois titres sont des variables al eatoires. On suppose connues leurs
moyennes respectives : 30%, 20% et 8 %. Le risque V (x, y, z) est mesur e
` a partir de la matrice de variance-covariance des rendements des trois titres
de la mani` ere suivante :
V (x, y, z) = (x, y, z)
_
_
_
3 1 0.5
1 2 0.4
0.5 0.4 1
_
_
_
_
_
_
x
y
z
_
_
_
(a) Ecrire le programme lin eaire correspondant ` a la maximisation du ren-
dement esp er e. D eterminer sa solution optimale au moyen de GAMS.
112 Chapitre 10. Resolution de mod`eles non lineaires
(b) On veut maintenant minimiser le risque V (x, y, z) tout en simposant
un rendement esp er e du portefeuille au moins egal ` a 12 %. Ecrire le
programme quadratique correspondant et le r esoudre avec GAMS.
(c) Ecrire les conditions n ecessaires doptimalit e de Kuhn et Tucker pour
ce probl` eme et v erier si la solution satisfait ces conditions.
10.3. Le probl` eme des emplois saisonniers. Le probl` eme est celui dun entre-
preneur qui fabrique un produit pour lequel la demande varie en fonction de
la saison. Le nombre minimum demploy es requis par saison est indiqu e
au tableau 10.2. Tout employ e au dessus de ce niveau est sous-employ e
Saison Printemps Et e Automne Hiver
Emploi 255 220 240 200
Tableau 10.2: Niveau minimum de lemploi requis.
et co ute 2 000 euros par saison. Cependant, changer le niveau de lemploi
dune saison ` a lautre co ute en prime de licenciement ou en co ut dembauche.
On estime ce co ut ` a 200 euros fois le carr e de la diff erence demploi entre
deux saisons. On peut consid erer un nombre fractionnaire demplois vu la
pr esence de temps partiels. Le gestionnaire doit d ecider du niveau demploi
` a chaque saison de mani` ere ` a minimiser le co ut de lemploi.
(a) Formuler le probl` eme comme un probl` eme doptimisation non lin eaire.
On consid erera une cycle complet dune ann ee.
(b) R esoudre au moyen du logiciel GAMS.
Bibliographie
[1] BROOKE Anthony, David KENDRICK et Alexander MEERAUS, GAMS
Users guide Release 2.25, The Scientic Press, San Francisco, 1992.
[2] CHV

ATAL Va sek, Linear Programming, Freeman and Company, 1983.


[3] DE WOLF Daniel, Olivier JANSSENS dE BISTHOVEN et Yves SMEERS,
The Simplex algorithm extended to piecewise linearly constrained problems,
CORE DISCUSSION Paper 9119, Universit e Catholique de Louvain, 1991.
[4] EXCEL, Guide de lutilisateur, Microsoft, 1992.
[5] Jean-Luc HAINAUT, Base de donn ees et mod` eles de calcul, Interedition,
1994.
[6] F.S. HILLIER et G.S. LIEBERMAN, Introduction to Operations Research,
6` eme edition, Mac Graw-Hill International Editions, Singapour, 1995.
[7] F.S. HILLIER, M.S. HILLIER et G.S. LIEBERMAN, Introduction to Mana-
gement Sciences, 1` ere edition, Mac Graw-Hill International Editions, Boston,
2000.
[8] D. G. LUENBERGER, Linear and NonlinearProgramming, Addison-Wesley,
1984.
[9] NEMHAUSER, G.L. et L.A. WOLSEY, Integer and Combinatorial Optimi-
zation, Wiley, New York, 1988.
[10] Y. NORBERT, R. OUELLET et R. PARENT, La recherche op erationnelle,
Ga etan Morin Editeur, Montr eal-Paris, 1995.
[11] M.P. WILLIAMS, Model building in Mathematical Programming, John Wi-
ley, 1990.
[12] M.P. WILLIAMS, Model solving in Mathematical Programming, John Wiley,
1992.
113