Vous êtes sur la page 1sur 90

Université du Littoral Côte d’Opale

Master 1 GE et Master 1 LT

Méthodes Quantitatives
Appliquées à l’Environnement 1

Daniel DE WOLF

Dunkerque, 9 octobre 2019


Table des matières

1 Introduction 5
1.1 Objectifs du cours . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 La notion de matrice . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Calcul matriciel . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.1 Addition de deux matrices . . . . . . . . . . . . . . . . . 8
1.3.2 Multiplication par un scalaire . . . . . . . . . . . . . . . 8
1.3.3 La transposition d’une matrice . . . . . . . . . . . . . . . 9
1.3.4 Produit scalaire de deux vecteurs . . . . . . . . . . . . . 10
1.3.5 Le produit matriciel . . . . . . . . . . . . . . . . . . . . 11
1.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2 Formulation en modèles d’optimisation. 15


2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Formulation en un problème linéaire . . . . . . . . . . . . . . . 16
2.3 Définition des variables . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.1 Problèmes nécessitant de découper une variable . . . . . 17
2.3.2 Problèmes nécessitant des variables d’état . . . . . . . . 17
2.3.3 Problème avec variables à doubles indices . . . . . . . . . 18
2.4 Définition de l’objectif . . . . . . . . . . . . . . . . . . . . . . . 19
2.4.1 Les problèmes multipériodes . . . . . . . . . . . . . . . . 19
2.4.2 Les problèmes multicritères . . . . . . . . . . . . . . . . 19
2.5 Définition des contraintes . . . . . . . . . . . . . . . . . . . . . . 20
2.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3 Les problèmes en nombres entiers. 25


3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Problèmes avec coûts fixes . . . . . . . . . . . . . . . . . . . . . 27
3.3 Problèmes avec contrainte logique . . . . . . . . . . . . . . . . . 28
3.4 Mélange avec nombre limité d’ingrédients . . . . . . . . . . . . . 29
3.5 Choix parmi un nombre discret de valeurs . . . . . . . . . . . . 30
3.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2
Table des matières 3

4 Les notions de graphe, de flot et de réseau. 33


4.1 Un exemple de transport . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Notion de graphe . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3 Notion de flot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5 Résolution des modèles linéaires 41


5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.2 Représentation de la région réalisable . . . . . . . . . . . . . . . 42
5.3 Représentation de l’objectif . . . . . . . . . . . . . . . . . . . . 43
5.4 Détermination du point optimal . . . . . . . . . . . . . . . . . . 44
5.5 Principe de l’algorithme du Simplexe . . . . . . . . . . . . . . . 45
5.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

6 Résolution des modèles en nombres entiers 49


6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.2 Principe de la méthode de branch and bound . . . . . . . . . . . 50
6.3 Choix de la variable de branchement . . . . . . . . . . . . . . . 50
6.4 Choix du nœud à diviser . . . . . . . . . . . . . . . . . . . . . . 52
6.5 Critère d’arrêt de la méthode . . . . . . . . . . . . . . . . . . . 53
6.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

7 Les modèles non linéaires. 55


7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.2 Conditions de Kuhn et Tucker . . . . . . . . . . . . . . . . . . . 56
7.3 Application au calcul d’équilibre de l’utilisateur . . . . . . . . . 59
7.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

8 Résolution des modèles non linéaires. 63


8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2 La méthode de Frank-Wolfe . . . . . . . . . . . . . . . . . . . . 63
8.3 Interprétation graphique . . . . . . . . . . . . . . . . . . . . . . 67
8.4 Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

9 Le solveur d’EXCEL. 69
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
9.2 Les rapports du solveur . . . . . . . . . . . . . . . . . . . . . . . 72
9.2.1 Le rapport des réponses . . . . . . . . . . . . . . . . . . 73
9.2.2 Le rapport de sensibilité . . . . . . . . . . . . . . . . . . 74
9.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4 Table des matières

10 Interprétation de la solution 77
10.1 Interprétation économique . . . . . . . . . . . . . . . . . . . . . 77
10.1.1 Interprétation des coûts réduits . . . . . . . . . . . . . . 80
10.1.2 Interprétation des prix cachés . . . . . . . . . . . . . . . 80
10.2 Analyse de sensibilité . . . . . . . . . . . . . . . . . . . . . . . . 81
10.2.1 Sensibilité aux coefficients objectifs . . . . . . . . . . . . 81
10.2.2 Sensibilité aux coefficients du membre de droite . . . . . 81
10.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

A Formulaire 87
A.1 Le calcul des dérivées . . . . . . . . . . . . . . . . . . . . . . . . 87
A.2 Les dérivées partielles . . . . . . . . . . . . . . . . . . . . . . . . 87
A.3 Le calcul des intégrales . . . . . . . . . . . . . . . . . . . . . . . 88
A.4 Solution d’une équation du second degré . . . . . . . . . . . . . 88
A.5 Equation d’un cercle . . . . . . . . . . . . . . . . . . . . . . . . 89
A.6 Conditions de Kuhn et Tucker . . . . . . . . . . . . . . . . . . . 89
A.7 Méthode de Franck Wolfe . . . . . . . . . . . . . . . . . . . . . 90
Chapitre 1

Introduction

1.1 Objectifs du cours


L’objectif de ce cours est double. Il s’agit, d’une part, de donner une in-
troduction à la modélisation mathématique, outil couramment utilisé en
gestion de l’eau, en gestion des transports (voir cours de Master 2). Il s’agit,
d’autre part, de voir quelques méthodes de résolution de ces modèles en
ce qui concerne les modèles linéaires, non linéaires et en nombres entiers.
Nous introduirons la notion de modèle mathématique d’optimisation. On
fait face à ce type de modèle lorsqu’il y a des actions à prendre en vue de mini-
miser ou maximiser un objectif en respectant un certain nombre de contraintes.
Prenons un exemple. En traitement des déchets ménagers, on peut vouloir mi-
nimiser le coût de traitement de ces déchets tout en respectant un certain
nombre de contraintes environnementales (normes sur la qualité de l’air rejeté,
proportion maximum de déchets non recyclé, etc...). Les actions à prendre
peuvent être représentée par les quantités de déchets envoyées aux différentes
filières (recyclage, enfouissement, incinération, etc...).
En ce qui concerne les techniques d’optimisations, nous nous limiterons à
exposer quelques techniques qui concernent :

• les problèmes linéaires que l’on rencontre lorsque toutes les relations du
modèle (objectif et contraintes) sont purement linéaires ;

• les modèles non linéaires que l’on rencontre lorsque soit la fonction ob-
jectif, soit au moins une contrainte est non linéaire.

• les modèles en nombres entiers que l’on rencontre lorsque les variables de
décisions doivent être entières (par exemple, pour modéliser des décisions
d’investissement du type tout ou rien).

5
6 Chapitre 1. Introduction

1.2 La notion de matrice


Une matrice est un outil mathématique très pratique sur le plan des calculs.
Une matrice est un tableau de nombres sur lequel des opérations peuvent être
effectuées.

Définition 1.1 Une matrice de genre (m × n) est un tableau rectangulaire de


m lignes et n colonnes de nombres réels.

Elle est notée de la manière suivante :


 
 a11 a12 ... a1n 
 
 a21 a22 ... a2n 




.
 (1.1)

 ... ... ... ... 

 
am1 am2 ... amn

Définition 1.2 Le coefficient aij de la matrice l’élément du tableau en position


(i, j), à l’intersection de la ième ligne et de la jème colonne.

Ainsi, par exemple, la matrice suivante :


   
 a11 a12   2 1 
   

 a21 a22 

= 
 3 6 

   
   
a31 a32 4 5

est une matrice de genre (3, 2), c’est-à-dire qu’elle comporte 3 lignes et 2 co-
lonnes.
Remarquez qu’il y a une autre façon de spécifier une matrice que celle de
la donnée d’un tableau de chiffre illustrée en (1.1). Dans cette autre forme, on
indique d’abord le symbole utilisé pour représenter la matrice dans sa totalité,
celui utilisé pour représenter un élément quelconque, de ligne i et colonne j,
enfin le genre de la matrice, en indiquant les valeurs possibles des indices. Par
exemple, on définit la matrice A suivante :

A = {aij }i=1,2,...,m; j=1,2,...,n . (1.2)

Une formule accompagne cette description pour expliciter l’élément en fonction


de son indice de ligne et de colonne. Un cas remarquable est celui de la matrice
identité. On la désigne par la notation I n . Il s’agit d’une matrice carrée
d’ordre n qui comporte des zéros partout sauf sur sa diagonale principale où
1.2. La notion de matrice 7

les coefficients sont égaux à un :


 
 1 0 ... 0 
 
 0 1 ... 0 


In = 

.


 ... ... ... ... 

 
0 0 ... 1

Une définition sous forme compréhensive la matrice identité est la suivante :

I n = {δij }i=1,...,n; j=1,...,n ,

où δij désigne l’indice de Kronecker qui est défini de la manière suivante :




 1 si i = j,
δij =
0 sinon.

Voyons maintenant quelques cas particuliers importants.


1. Si n = 1, c’est-à-dire si on a une seule colonne, on parle dans ce cas de
vecteur colonne. C’est, par exemple, le cas du vecteur x suivant :
 
x1 
x= .

x2

2. Si m = 1, c’est-à-dire si on n’a qu’une seule ligne, on parle de vecteur


ligne. C’est le cas, par exemple, du vecteur y suivant :
 
y= y1 y2 .

Lorsqu’on ne précise pas qu’un vecteur est un vecteur colonne ou ligne,


on convient de considérer qu’il s’agit d’un vecteur colonne. On parle
du nombre de composantes d’un vecteur plutôt que du nombre de ses
éléments. D’un vecteur qui a n composantes, on dit qu’il est de dimension
n.

3. Dans le cas où m = n, on parle pour une raison évidente de matrice


carrée : le tableau rectangulaire représentant la matrice devient en effet,
dans ce cas, un carré. Plutôt que de dire d’une matrice carrée qu’elle est
de genre (n × n), on dit qu’elle est d’ordre n.

4. Dans le cas où m = n = 1, on a donc une matrice qui se réduit à un


seul coefficient réel : on parle dans ce cas de scalaire.
8 Chapitre 1. Introduction

1.3 Calcul matriciel


1.3.1 Addition de deux matrices
La motivation pour l’étude d’une telle opération sur les matrices est de
pouvoir, dans un modèle d’affectation du trafic, additionner les demandes de
différents groupes d’utilisateurs se déplaçant sur un même réseau. Ainsi, on
additionnera, par exemple, les matrices origines-destinations des voitures par-
ticulières et des camions.

Définition 1.3 Deux matrices sont dites de même genre, si elles ont le même
nombre de lignes et de colonnes.

Définition 1.4 Pour deux matrices de même genre, A (m × n) et B (m × n),


on définit la somme des deux matrices comme une troisième matrice de même
genre (m × n), notée C. Elle est obtenue en additionnant les termes occupant
des places identiques dans les deux matrices A et B. On note

C = A + B,

avec
cij = aij + bij .

Exemple 1.1 Calculer :


   
2 3 −1  −3 5 2 
C= + .
 
4 −2 7 6 1 4

Solution :
   
2−3 3 + 5 −1 + 2  −1 8 1 
C= = .
 

4 + 6 −2 + 1 7+4 10 −1 11

On remarquera qu’une des conséquences de la définition d’addition de ma-


trices est que cette opération est commutative, c’est-à-dire que :

A + B = B + A.

1.3.2 Multiplication par un scalaire


La motivation pour l’étude d’une telle opération sur les matrices est de
pouvoir, dans un modèle d’affectation du trafic, tenir compte d’une augmenta-
tion générale de la demande de déplacements. Cela se traduira, pour la matrice
origines-destinations par la multiplication par un scalaire.
1.3. Calcul matriciel 9

Une autre motivation possible pour l’étude d’une telle opération est la
transformation d’une matrice origines-destinations représentant la demande de
transport de camions en une matrice origines-destinations d’équivalents voi-
tures particulières. Comme un camion représente l’encombrement de plusieurs
voitures sur la voirie, on multiplie chaque élément de la matrice camions par
un scalaire (par exemple, un camion est l’équivalent de 7 voitures).

Définition 1.5 La multiplication d’une matrice A par un scalaire α donne


une matrice B, de même genre dont chaque élément est l’élément correspon-
dant de A multiplié par le scalaire.

Autrement dit :
B = αA,
avec
bij = αaij .
Exemple :    
1 2
7   2 4 14 
2
 = .
−3 8 15 −6 16 30

1.3.3 La transposition d’une matrice


La motivation pour l’étude d’une telle opération sur les matrices est de
pouvoir, dans un modèle d’affectation du trafic, passer de la demande d’heure
de pointe du matin à la demande d’heure de pointe du soir. Comme générale-
ment les gens retournent chez eux le soir, la matrice origines-destinations du
soir est la transposée de celle du matin.

Définition 1.6 La matrice transposée d’une matrice A de genre (m × n) est


une matrice à n lignes et m colonnes, notée AT où l’élément en position (i, j)
est aji

Autrement dit :
AT = {aij T },
avec
aij T = aji .
Exemple :  
3 −2 " #
T 3 4 8
A= 4 5  A = .

−2 5 −1

8 −1
10 Chapitre 1. Introduction

Définition 1.7 Une matrice carrée A d’ordre n est dite symétrique si

∀i, j : aij = aji .

Ce qui peut encore se noter matriciellement par

A = AT .

L’interprétation sur le tableau est que les éléments situés symétriquement par
rapport à la diagonale principale doivent être identiques. Ce cas est illustré
par l’exemple suivant :  
3 2 4
A= 2 5 1 
 

4 1 7

1.3.4 Produit scalaire de deux vecteurs


La motivation pour l’étude d’une telle opération est la suivante. Si cj est
le coût unitaire de transport d’une tonne de produit j et xj est le nombre de
tonnes de produit j transportées, le coût total de transport z se calcule comme
suit :
n
cj xj = cT x.
X
z=
j=1

Définition 1.8 Soient x et y, deux vecteurs colonnes de dimension n. Le


produit scalaire de x par y est défini comme la somme des produits des éléments
occupant des places identiques dans les deux vecteurs :
n
xT y =
X
xi y i . (1.3)
i=1

En notation matricielle, on peut écrire le produit scalaire de la manière


suivante :
 
y1
 
h i y2 
x1 x2 ... xn 


 = x1 y1 + x2 y2 + ... + xn yn .

 ... 

yn

On vérifie bien, dans la notation reprise ci-dessus, que le ième élément du


vecteur ligne xT est multiplié par le ième du vecteur colonne y et qu’ensuite
on effectue la somme de ces produits. Il est à noter que cette opération peut être
effectuée grâce à la fonction =SOMMEPROD(vecteur1;vecteur2) d’EXCEL.
1.3. Calcul matriciel 11

Exemple 1.2 Calculer de produit scalaire de :


   
3 1
   
 2   2 
x= 
 ,

y= 
 .


 1 


 4 

1 1

Solution : on a alors le produit scalaire suivant :

xT y = 3 · 1 + 2 · 2 + 1 · 4 + 1 · 1 = 12.

Remarquons que le produit scalaire est une opération commutative. En


effet : n n
xT y = yi xi = y T x.
X X
xi yi =
i=1 i=1

1.3.5 Le produit matriciel


La motivation pour l’étude d’une telle opération sur les matrices est de
pouvoir, dans un modèle d’affectation du trafic, faire des changements non uni-
formes de la matrice origines-destinations. Par exemple, une augmentation du
nombre de véhicules quittant une zone ou arrivant dans une zone se traduit par
la prémultiplication ou la postmultiplication de la matrice origines-destinations
par une matrice différente de la matrice identité par un seul élément diagonal.

Définition 1.9 Considérons deux matrices A et B de genre (m×n) et (n×p)


avec
   
 a11 a12 ... a1n   b11 b12 ... b1p 
   
 a21 a22 ... a2n   b21 b22 ... b2p
  
et B = 
 
A=


 
.


 ... ... ... ... 


 ... ... ... ... 

   
am1 am2 ... amn bn1 bn2 ... bnp

Le produit matriciel
C = AB
est une matrice C de genre (m × p) qui se calcule comme suit :
 
 c11 c12 ... c1p 
 
 c21 c22 ... c2p 


C=

,


 ... ... ... ... 

 
cm1 cm2 ... cmp
12 Chapitre 1. Introduction

avec l’élément cij qui est le produit scalaire de la ligne i de A par la colonne j
de B : n X
cij = aik bkj .
k=1

On a visualisé, à titre d’exemple, dans les matrices A et B, les coefficients


concernés par le calcul du coefficient c21 . Il est obtenu en faisant le produit
scalaire de la deuxième ligne de A (i = 2) par la première colonne de B
(j = 1).

Exemple 1.3 Calculez C = AB, où les matrices A et B sont données par :


 
2 1 " #
2 1
 3 6 
A= B=

1 3
4 5

Solution : la matrice C est calculée comme suit :


 
2 1 " #
 2 1
AB =  3 6 

1 3
4 5
   
2·2+1·1 2·1+1·3 5 5
=  3 · 2 + 6 · 1 3 · 1 + 6 · 3  =  12 21  .
   

4·2+5·1 4·1+5·3 13 19

Voyons maintenant un cas particulier important. Il s’agit du cas où


p = 1. C’est le cas où l’on multiplie une matrice (m × n) par un vecteur.
Le membre de gauche d’un système d’équations linéaires rentre dans cette
catégorie. En effet, le système




 a11 x1 +a12 x2 ... +a1n xn = b1




 a21 x1 +a22 x2 ... +a2n xn = b2
... ... ... ... ... ...







am1 x1 +am2 x2 ... +amn xn = bm

peut se noter matriciellement de la manière suivante :


    
 a11 a12 ... a1n   x1   b1 
    
 a21 a22 ... a2n 
  x2   b2 
    





 =

,


 ... ... ... ... 
 ... 


 ... 

    
am1 am2 ... amn xn bm
1.3. Calcul matriciel 13

ou encore
Ax = b.
Enfin signalons que, contrairement au produit de réels, le produit de ma-
trices est une opération non commutative. En général, AB 6= BA.
Une autre motivation possible pour l’étude du produit matriciel est la
suivante. Notons A la matrice donnant le nombre de routes directes entre les
villes a1 , a2 , a3 , d’une part, et les villes b1 , b2 , d’autre part (voir figure 1.1).
Notons B la matrice donnant le nombre de routes directes entre les villes b1 ,
b2 , d’une part, et les villes c1 , c2 , , c3 d’autre part.

a c
b
a c
b
a c

Figure 1.1 – Illustration du produit matriciel.

On a donc que :
 
 1 0   
 1 1 0 
 
A= 1 1 B= .
 
 
0 1 1
 
 
0 1

Calculons le produit matriciel :


 
1 0 " #
 1 1 0
AB =  1 1 

0 1 1
0 1
 
1 1 0
 1 2 1 .
=  

0 1 1

On constate que cik donne le nombre de routes liant ai à ck en passant par une
des deux villes intermédiaires b1 ou b2 .
14 Chapitre 1. Introduction

1.4 Exercices
1.1. Transposition d’une matrice. Calculez la transposée des matrices
suivantes :
   
 2 5   1 3 1   
   
A= 
 1 −1 ;B

= 
 2 6 7 ;C

= 1 5 6 2 .
   
   
3 2 4 1 5

1.2. Le produit matriciel est non commutatif. Calculez les produits AB


et BA pour les matrices suivantes :
 
 
 5 1 
1 2 3   
A= et B = 6 −2 .
  
  
3 2 1
 
 
−3 1

Quelle conclusion en tirez-vous ?

1.3. Multiplication par un scalaire. Calculez D = AB T + αC T avec


   
 −2  1 0 2 
 
2 

    
 0  1 4 7 0 
    
 
A= −1  , B= , α= et C = .
  






 1

 2 
 3 −2 6


   
3    
43 −1 5 1

1.4. Écriture en forme extensive. Écrire sous sa forme extensive la matrice


X = {xij }i=1,...3;j=1,...3 , où

1


i+j
si i < j,
xij =
δij si i ≥ j.

Dans cette dernière expression, δij est l’indice de Kronecker (utilisé dans
la définition de la matrice identité) :


 1 si i = j,
δij =
0 sinon.


Chapitre 2

Formulation en modèles
d’optimisation.

2.1 Introduction
On parle de problèmes linéaires lorsque l’on veut minimiser une fonction
linéaire sous des contraintes linéaires. Nous prenons un exemple tiré de Hillier
et Lieberman [8] de fabrication de deux nouveaux modèles de chassis au moyen
des capacités résiduelles de trois ateliers. Le chassis en aluminium nécessite le
passage dans le premier atelier pour fabriquer le cadre en aluminium et dans
le troisième atelier où le verre est monté sur le chassis. Tandis que le chassis
en bois nécessite le passage dans le deuxième atelier pour fabriquer le cadre
en bois et dans le troisième atelier où le verre est monté sur le chassis. Les
marges unitaires, les temps de fabrication de chacun des produits dans chacun
des ateliers ainsi que les capacités hebdomadaires résiduelles de ces ateliers
sont donnés au tableau 2.1.

Produit 1 Produit 2 Capacité 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$

Table 2.1 – Marges, temps d’usinage et capacités.

La question qui se pose est la suivante : “Combien faut-il produire de


chassis de chaque type par semaine pour maximiser le profit net ?”

15
16 Chapitre 2. Formulation en modèles d’optimisation.

2.2 Formulation en un problème linéaire


La formulation d’un problème d’optimisation comporte toujours les trois
étapes suivantes : le choix des variables du modèle, la formulation de l’objectif
et la formulation des contraintes.
La première étape consiste à choisir les variables du problème.

Définition 2.1 On appelle variable toute quantité utile à la résolution du pro-


blème dont le modèle doit déterminer la valeur.

Ici les quantités que le modèle doit déterminer sont les productions de chassis
par semaine. Notons donc :

x1 = nombre de chassis de type 1 produits par semaine,


x2 = nombre de chassis de type 2 produits par semaine.

La deuxième étape consiste à formuler mathématiquement l’objectif.

Définition 2.2 On appelle fonction objectif d’un problème d’optimisation le


critère de choix entre les diverses solutions possibles.

Ici, on désire maximiser son profit net. La marge unitaire étant de 3 pour le
premier type de chassis et de 5 pour le second, l’objectif s’exprime comme :

max z = 3x1 + 5x2

La troisième étape est la formulation les contraintes du problème.

Définition 2.3 On appelle contraintes du problème toutes les relations limi-


tant le choix des valeurs possibles des variables.

Ces relations peuvent être de simples bornes sur les variables. Par exemple, les
quantité produites ne peuvent être négatives. Mathématiquement :

x1 , x2 ≥ 0.

Elles peuvent être plus complexes comme les contraintes de capacité de


production reprises ci-dessous :

x1 ≤ 4
2x2 ≤ 12
3x1 + 2x2 ≤ 18
2.3. Définition des variables 17

2.3 Définition des variables


2.3.1 Problèmes nécessitant de découper une variable
Le principe général est que si le coefficient d’une variable change à partir
d’un certain niveau, il faut découper celle-ci. Illustrons ceci sur un exemple. Si
le coût de transport est de 2 jusqu’à 2.000 kg transporté et qu’il est de 3 au
delà, il faut couper la variable x, désignant la quantité transportée, en deux
variables :

x1 = quantité transportée en dessous de 2.000 kg


x2 = quantité transportée au dessus de 2.000 kg

On aura donc les contraintes suivantes :

x = x1 + x2

avec la variable x1 limitée à 2.000 :

x1 ≤ 2.000

et l’objectif s’écrira :
min z = 2x1 + 3x2
Comme le coefficient de x2 est supérieur à celui de x1 , on va d’abord utiliser
x1 puis x2 . Comme applications de ceci, on peut citer :

• Le problème de transport avec coût unitaire de transport différent si on


travaille en interne ou en externe ;

• Le problème de planification de production avec coût unitaire de produc-


tion différent si on travaille en heures normales ou en heures supplémen-
taires.

2.3.2 Problèmes nécessitant des variables d’état


Un exemple de problème nécessitant des variables d’état est le problème de
planification de la production. Si Dt note la demande de la période t, on peut
choisir comme variable xt la production à la période t. Si x1 > D1 , il y aura
un stock de fin de période 1 que nous noterons s1 . Ce stock de fin de période
est une variable d’état initial pour la période 2. Il se calcule de la manière
suivante :
s1 = x1 − D1
Pour le calcul de s2 , le stock de fin de période 2, il faut remarquer que le
disponible est la somme du stock de fin de période 1, soit s1 et de la production
18 Chapitre 2. Formulation en modèles d’optimisation.

de période 2, soit x2 . Tandis que le nécessaire est D2 . On peut donc calculer


s2 de la manière suivante :

s2 = s1 + x2 − D2

En général :
st+1 = st + xt+1 − Dt+1

2.3.3 Problème avec variables à doubles indices


Un exemple typique de problèmes nécessitant des variables à double indice
est le problème de transport où xij note la quantité transportée de l’origine i
à la destination j.
Généralement, dans ces problèmes, il y a une capacité Oi associée au lieu
d’origine i (par exemple la capacité de l’usine i) et une demande Dj associée
au nœud d’arrivée j. On aura les contraintes linéaires suivantes. A l’origine i,
ce qui sorte de l’usine est inférieur à sa capacité :
n
X
xij ≤ Oi
j=1

Ce qui arrive à la destination j doit au moins assurer sa demande :


m
X
xij ≥ Dj
i=1

L’objectif s’écrivant au moyen d’une double sommation :


m X
X n
min z = cij xij
i=1 j=1

où cij est le coût unitaire de transport de l’origine i à la destination j.


On peut citer trois autres exemples nécessitant des variables à doubles
indices :
• Le problème de planification de production : on peut formuler un pro-
blème de planification en utilisant la variable xij donnant la quantité
produite en i pour satisfaire une demande de période j avec i < j.

• Le problème de la détermination de la longueur d’un bail : on peut for-


muler le problème en utilisant la variable Sij indiquant la surface louée
du mois i au mois j avec i < j.

• Le problème de la longueur d’un contrat d’intérim : on peut formuler le


problème en utilisant la variable Nij indiquant le nombre de personnes
engagées de la semaine i à la semaine j avec i ≤ j.
2.4. Définition de l’objectif 19

2.4 Définition de l’objectif


Dans cette section, nous voyons plus en détails les différents types de pro-
blèmes où la programmation linéaire est d’application.
Les objectifs possibles sont aussi variés que les problèmes. Ils peuvent
représenter une maximisation du profit, une minimisation des coûts, une maxi-
misation de l’utilité, du rendement d’un investissement, de la valeur présente,...
Remarquez que les coefficients objectif dans une fonction de coût telle que
n
X
min z = cj x j
j=1

sont des coûts marginaux. Ils s’interprètent ainsi : une unité supplémentaire
de la quantité xj coûte cj unités monétaires supplémentaires. En présence de
coûts fixes, on introduira des variables binaires.
Remarquez également que lorsque le coût change, il faut introduire une
nouvelle variable. Prenons un exemple. Supposons que les unités produites en
heures normales aient un coût unitaire de production de 10 euros tandis que
les unités produites au delà auront un coût unitaire de 15 euros. Dans ce cas,
il faut définir deux variables :
x = quantité produite en heures normales ;
y = quantité produite en heures supplémentaires.
Ce qui permettra d’écrire l’objectif simplement comme :
min z = 1x + 1, 5y

2.4.1 Les problèmes multipériodes


Dans les problèmes de planification, il faut souvent tenir compte de plu-
sieurs périodes successives, c’est-à-dire que l’on peut avoir un objectif mul-
tipériodes. On utilisera, dans ce cas, un facteur d’actualisation des profits
futurs.
Prenons l’exemple d’un investissement initial de I0 qui rapporte à l’année
t xt euros, et ceci durant n années. On suppose un facteur d’actualisation de 5
% par an. La valeur actualisée nette de l’investissement initial I0 s’écrit comme
suit : n
X xt
V AN = t
− I0
t=1 1, 05

2.4.2 Les problèmes multicritères


Remarquez qu’un seul objectif est envisageable en programmation li-
néaire. En présence d’objectifs multiples, plusieurs approches sont possibles
pour se ramener à un problème monocritère :
20 Chapitre 2. Formulation en modèles d’optimisation.

1. On peut résoudre un problème par objectif et comparer les solutions. Une


technique d’aide à la décision multicritère permettra alors de classer ces
solutions (voir Vincke [18] Roy et al [15]).

2. On peut résoudre avec un objectif et un seuil minimum pour les autres.


Illustrons ceci sur un exemple pratique : celui du traitement des déchets.
On peut avoir les deux objectifs suivants :

• minimiser le coût de traitement des déchets, noté z1 ;


• minimiser la quantité de déchets mise en décharge, notée z2 .

Il y a peu de chance que la solution qui minimiser le coût de traitement


des déchets (probablement tout mettre en décharge) soit aussi celle qui
minimise la quantité mise en décharge. On peut alors minimiser le coût
de traitement des déchets en imposant un maximum de quantité mise en
décharge.

3. On peut utiliser une combinaison linéaire des objectifs en attribuant des


poids aux différents objectifs.

2.5 Définition des contraintes


Nous allons maintenant voir la formulation des contraintes, c’est-à-dire de
toutes les relations qui limitent les valeurs possibles que peuvent prendre les
variables de décisions.
L’origine des contraintes peut aussi être diverse. Citons :
• Les contraintes de capacité de production :
Dans l’exemple introductif du problème de planification de la production,
les contraintes provenaient de la limite en facteurs disponibles :

x1 ≤ 4







 2x2 ≤ 12



3x1 + 2x2 ≤ 18


• Disponibilité des matières premières :


Par exemple, dans les contrats de fourniture de gaz, le producteur et
l’acheteur se fixent une quantité maximale d’enlèvement de gaz par jour.
Souvent une clause de flexibilité permet que la quantité prélevée nœud
d’offre i, notée si , soit comprise entre une borne inférieure si et une borne
supérieure si . Ces grandeurs correspondent aux quantités minimum et
2.5. Définition des contraintes 21

maximum d’enlèvement de gaz prévues dans les contrats de livraison.


Mathématiquement, la contrainte s’exprime par :
si ≤ si ≤ si

• Satisfaction de la demande :
Ce sont des contraintes très souvent présentes. Elles s’expriment le fait
que la demande doit être satisfaite. Pour le même exemple d’exploitation
d’un réseau de transport de gaz, nous verrons au chapitre 4 que la quan-
tité fournie au nœud de demande j, notée dj , doit être au moins égale à
la demande au nœud j, notée dj . Ce qui s’exprime par :
dj ≥ dj

• Contraintes de conservation :
Ces contraintes sont présentes dans la plupart des problèmes sur réseaux.
Elles seront illustrées à la section 4.1 du chapitre 4 illustrant l’exemple

O

1 f13 f34 4

f23 3 f35
2 5

D

Figure 2.1 – Conservation au nœud 3

de transport de gaz. Si on définit en chaque nœud du réseau les variables


suivantes :
fij , le flux de matière allant de i à j, ∀(i, j)
Oi , l’injection de matière au nœud i, ∀i
Dj , le prélèvement de matière au nœud j, ∀j.
On peut écrire en chaque nœud i du réseau le bilan matière suivant : la
somme de ce qui rentre au nœud i est égale à la somme de ce qui sort du
nœud i. A titre d’exemple, on peut écrire l’équation de conservation au
nœud 3 de la manière suivante (voir figure 2.1) :

f13 + f23 + O3 = f34 + f35 + D3


22 Chapitre 2. Formulation en modèles d’optimisation.

On distingue parfois deux types de contraintes : les contraintes “hard”


et les contraintes “soft”. Les contraintes “hard” sont le plus souvent les
contraintes technologiques non violables. Par exemple, la contrainte de ca-
pacité d’un gazoduc doit être absolument respectée, sans quoi on encoure de
graves problèmes de sécurité du réseau.
Les contraintes “soft” sont les contraintes violables moyennant un
surcoût. Par exemple, cela peut être la contrainte de disponibilité de matières
premières. Supposons que la contrainte s’exprime sous la forme suivante :
X
aj xj ≤ b.
j

Si la quantité de matière première (b) est insuffisante, on peut parfois s’appro-


visionner chez un autre producteur d’une quantité supplémentaire (notée u)
moyennant un surcoût (la différence de prix entre les deux fournisseurs). La
contrainte originale est remplacée par :
X
aj xj − u ≤ b,
j

où u ≥ 0 représente la violation de la contrainte qui sera pénalisée dans l’ob-


jectif par un coefficient de surcoût.
Illustrons ceci sur un exemple. Si x note la quantité transportée et que
celle-ci est transportée sans frais supplémentaire jusqu’à 2000 kg par les moyens
propres de l’entreprise. Au delà, on utilise un transporteur indépendant moyen-
nant un surcoût de 5 euros par kilogramme transporté. On peut écrire la
contrainte de capacité comme suit :

x ≤ 2000 + y

où y note le supplément de capacité nécessaire. Ce supplément sera pénalisé


d’un coefficient 5 dans l’objectif de minimisation des coûts :

min z = 5y
2.6. Exercices 23

2.6 Exercices
2.1. Optimisation d’une fonderie. Une petite fonderie au Québec est spé-
cialisée dans la fonte de matériaux de récupération afin de produire deux
types de produits : des tuyaux agricoles d’adduction et d’évacuation
d’eau ainsi que des contrepoids pour tracteurs. La fonderie est en pleine
planification des opérations de la semaine prochaine. Les commandes
enregistrées s’élève à 34 tonnes pour les tuyaux et 14 tonnes pour les
contrepoids. Cependant la fonderie ne s’est pas engagée à livrer l’en-
semble de ces commandes la semaine prochaine. On livrera ce que les
capacités de production permettent. Il n’y a pas de pénalité à ne pas li-
vrer les commandes la semaine prochaine. La semaine prochaine, la main
d’œuvre disponible sera de 160 heures dans l’atelier de polissage et de
120 heures dans l’atelier peinture. Il faut compter 8 heures la tonne pour
polir les tuyauteries et 4 heures la tonne pour les contrepoids. La peinture
requiert 4 heures pour une tonne de tuyaux, 6 heures pour une tonne de
contrepoids. La marge sur une tonne de tuyaux est de 1 000 $, sur une
tonne de contrepoids de 1 200 $. Quelles sont les commandes à honorer
la semaine prochaine pour maximiser le profit ?
Formuler le problème linéaire de la maximisation du profit.

(a) Choix des variables.


(b) Epression des contraintes.
(c) Expression de l’objectif.

2.2. Recyclage du papier. Une société privée de tri de déchets et recy-


clage de papier peut se fournir en déchets auprès de deux villes. Son rôle
consiste à séparer les listes d’ordinateur et les journaux. La répartition
entre ménages et sociétés est différente d’une ville à l’autre expliquant
un pourcentage différent de listes d’ordinateur et de journaux dans les
déchets. Ces pourcentages ainsi que la quantité maximum de déchets que
peuvent fournir par an les villes sont reprises au tableau suivant :

Ville Listes (%) Journaux (%) Offre


Ville 1 5 20 10.000
Ville 2 15 30 20.000

La société offre aux villes un prix de 35 euro par tonne de déchets. Elle
doit décider du montant optimal de déchets à acheter à chaque ville pour
minimiser son coût d’achat. Pour couvrir ses frais fixes, la société doit au
moins collecter 1.500 tonnes de listing d’ordinateur par an. Au delà de
6.000 tonnes de journaux mis sur le marché par an, le prix que la société
24 Chapitre 2. Formulation en modèles d’optimisation.

reçoit pour la vente de journaux chute et donc la compagnie ne désire


pas vendre plus que cette quantité. Combien la société doit-elle acheter
de déchets par an à chacune des deux villes ?
Formuler le problème comme un problème linéaire à deux variables.

2.3. Fabrication de produits frais. La production d’une compagnie se ré-


duit à 2 produits frais, P et Q qu’un grossiste lui achète au prix respectifs
de 42 euros et 48 euros l’unité. Chaque soir, les produits sont acheminés
chez le grossiste par un transporteur qui demande à la compagnie 2 euros
par kg transporté, moyennant un minimum quotidien garanti de 4 000
euros. C’est-à-dire que s’il y a moins de 2 000 kg à transporter, on facture
tout de même 4 000 euros. Les produits P et Q s’élaborent à partir de 2
matériaux M et N selon les recettes présentées au tableau ci-dessous :

Produit Poids (en kg) Poids (en kg) Poids total


du composant M du composant N (en kg)
P 4 3 7
Q 2 1 3

Considérons une journée où la compagnie dispose de 3 200 kg de M


et de 2 400 kg de N. On se demande combien produire de chacun des
produits de manière à maximiser le revenu net de la compagnie. Formuler
le modèle linéaire.
Chapitre 3

Les problèmes en nombres


entiers.

3.1 Introduction
On parle de programmes en nombres entiers lorsque l’on minimise
une fonction linéaire sous contraintes linéaires et que chaque variable doit être
entière. On appelle problèmes mixtes entiers les problèmes comportant un
certain nombre de variables réelles et un certain nombre de variables entières.
Il est à remarquer que la résolution des problèmes en nombres entiers
est beaucoup plus difficile que celle des problèmes linéaires. Nous allons
illustrer sur un exemple tiré de Williams [20] le fait qu’il est nécessaire de
résoudre le problème en nombres entiers. En effet, la méthode simpliste qui
consisterait à résoudre le problème linéaire et d’ensuite arrondir sa solution
optimale peut conduire à des solutions sous-optimales. Soit le problème :

Max z = x1 + x2

 −2x1
 +2x2 ≥ 1
Scq −8x1 +10x2 ≤ 13
x2 ≥ 0 et entiers.


x1 ,
En résolvant le modèle linéaire obtenu en relâchant le caractère entier
des variables, c’est-à-dire en résolvant la relaxation linéaire suivante :

Max z = x1 + x2


 −2x1 +2x2 ≥ 1
Scq −8x1 +10x2 ≤ 13
x2 ≥ 0,


x1 ,
on obtient la solution optimale du problème linéaire suivante :

(x1 , x2 ) = (4; 4, 5).

25
26 Chapitre 3. Les problèmes en nombres entiers.

A la figure 3.1, on a illustré en grisé la région réalisable correspondant


au problème linéaire. On voit que la solution optimale du problème linéaire
est obtenue pour le point extrême (x1 ; x2 ) = (4; 4, 5) alors que le problème
en nombres entiers n’admet que les valeurs entières situées dans cette région
réalisable. Ces valeurs entières sont indiquées par des croix à la figure 3.1.

x2
(3)

4,5 (4;4,5)
4

3
z =2
(1;2)
2
z =1

1
(1) (4)

(2) -1 1 2 3 4 x1

Figure 3.1 – Exemple de programme en nombres entiers

La solution du problème en nombres entiers est, comme on peut le voir à


la figure 3.1, le point :
(x∗1 , x∗2 ) = (1, 2).
On en conclut que arrondir la solution de la relaxation linéaire ne
fournit pas la solution optimale ! Qui plus est, dans ce cas, cela donne
la solution (x1 , x2 ) = (4, 4) ou la solution (x1 , x2 ) = (4, 5), toutes deux non
réalisables !
Soulignons aussi que l’utilité de la programmation en nombres en-
tiers ne se résume pas à modéliser des problèmes à quantités indivisibles. En
effet, on utilise la programmation en nombres entiers dans les cas suivants :

• modélisation de coûts fixes,


3.2. Problèmes avec coûts fixes 27

• modélisation de décisions logiques,

• choix parmi un nombre discret de valeurs possibles,

• problème de mélange avec nombre limité d’ingrédients,. . .

3.2 Problèmes avec coûts fixes


Exemple 3.1 Problèmes avec coût fixe de mise en route de la pro-
duction. Le coût de production est nul en l’absence de production et , dans le
cas contraire, vaut la somme d’un coût fixe, K, et d’un coût marginal mx.

On veut donc pouvoir exprimer la fonction suivante :


(
K + mx si x > 0
c(x) = (3.1)
0 si x = 0

où x dénote le niveau de production (voir figure 3.2). La représentation mathéma-

c(x)

Figure 3.2 – Représentation d’un coût fixe

tique de ce coût fixe nécessite :

1. l’ajout d’une variable indicatrice d’une production positive :


(
1 si x > 0
y=
0 si x = 0

2. la modification de la fonction objectif en :

c(x, y) = Ky + mx

qui devient donc purement linéaire ;


28 Chapitre 3. Les problèmes en nombres entiers.

3. l’ajout des contraintes suivantes :


x ≤ M y, et y ∈ {0, 1} (3.2)
avec M une borne supérieure sur la quantité produite x.
Remarquons que si x > 0, par les relations (3.2), on a que y = 1 et on tient
compte du coût fixe de mise en route de production. Par contre, lorsque x = 0,
(3.2) permet les choix y = 0 ou y = 1. Cependant, comme on minimise c(x, y),
l’optimiseur va automatiquement choisir y ∗ = 0, la solution qui évite le coût
fixe !

3.3 Problèmes avec contrainte logique


Un exemple typique est celui des problèmes de gestion de projets où l’on
doit déterminer l’enchaînement des tâches du projet de manière à le réaliser
dans le meilleur délai. Si deux tâches doivent être effectuées par la même
équipe d’ouvriers, soit mettent en œuvre la même machine, les deux tâches ne
peuvent donc avoir lieu simultanément, sans que l’on puisse dire laquelle doit
être effectuée en premier lieu. Mathématiquement, on peut écrire :
(
ti + di ≤ tj si i est réalisée avant j
soit (3.3)
tj + dj ≤ ti si j est réalisée avant i
où ti est la variable indiquant le temps de début au plus tôt de la tâche i et di
est la durée de la tâche.
Cette disjonction peut être résolue par la programmation mixte bi-
naire. En effet, définissons la variable binaire yij , dont la valeur est 1 si la
tache i est réalisée avant la tâche j et 0 si la tâche j est réalisée avant la tâche
i.
On remplace alors la condition de disjonction (3.3) par les contraintes sui-
vantes : 
 ti + di ≤ tj + M (1 − yij )

tj + dj ≤ ti + M yij (3.4)
yij ∈ {0, 1}

où M note une borne supérieure sur la date de fin des travaux.


Démontrons l’équivalence. Deux cas sont possibles pour la variable binaire :
1. Cas où yij = 1. Dans ce cas, le système (3.4) devient :
(
ti + di ≤ tj
tj + dj ≤ ti + M
La première contrainte exprime donc que la tâche i doit être finie avant
que ne commence la tâche j. La seconde contrainte est automatiquement
satisfaite.
3.4. Mélange avec nombre limité d’ingrédients 29

2. Cas yij = 0. Dans ce cas, le système (3.4) devient :


(
ti + di ≤ tj + M
tj + dj ≤ ti

La première contrainte est automatiquement satisfaite. La seconde contrainte


exprime que la tâche j doit être finie avant que ne commence la tâche i.

3.4 Mélange avec nombre limité d’ingrédients


C’est le cas, par exemple, d’un problème de mélange d’huiles où cinq
huiles sont disponibles mais où des contraintes techniques impliquent que
seulement trois huiles différentes peuvent être présentes dans le mélange.
Ce problème peut être résolu par la programmation mixte zéro/un.
Si xi note la quantité d’ingrédient i dans une tonne de mélange, on peut écrire
la relation suivante :
x1 + x2 + x3 + x 4 + x5 = 1
Définissons la variable binaire yi indiquant la présence de l’ingrédient i dans
le mélange. Autrement dit :
(
1 si xi > 0
yi =
0 si xi = 0

On introduit alors les contraintes suivantes :

m i y i ≤ xi (3.5)
xi ≤ Mi yi (3.6)
yi ∈ {0, 1} (3.7)

où mi est une borne inférieure sur la teneur de xi dans le mélange et Mi est une
borne supérieure sur xi . Par exemple, si la teneur minimum dans le mélange
est de 5 %, ces contraintes s’écrivent :

0, 05yi ≤ xi ≤ 1, 0yi

La condition du nombre maximum d’ingrédients dans le mélange


s’exprime alors simplement par :
n
X
yi ≤ k, (3.8)
i=1

avec k, le nombre maximum d’ingrédients dans le mélange.


Démontrons l’équivalence. Deux cas sont possibles pour la variable xi :
30 Chapitre 3. Les problèmes en nombres entiers.

1. Soit xi > 0. Alors, par les contraintes (3.6) et (3.7), la variable yi doit
valoir 1 et exprime bien que l’ingrédient i est dans le mélange.
2. Soit xi = 0. Alors, par les contraintes (3.5) et (3.7), la variable yi doit
valoir 0.
La contrainte (3.8), exprimera donc bien que au plus k ingrédients seront pris
dans le mélange.

3.5 Choix parmi un nombre discret de valeurs


Dans beaucoup de problèmes industriels, lors du dimensionnement d’un
appareillage, on doit choisir sa capacité parmi les valeurs commerciales dispo-
nibles sur le marché. Par exemple, lors du dimensionnement d’une canalisation
de transport d’eau, on doit choisir parmi les valeurs suivantes pour le diamètre :
12 cm, 17 cm, 24 cm ou 47 cm.
On peut à nouveau modéliser ce choix par l’utilisation de variables binaires.
En effet, définissons la variable x comme étant le diamètre choisi et définissons
yi une indicatrice du fait que le diamètre numéro i a été choisi :
(
1 si x = di
yi =
0 si sinon.
On peut alors écrire la relation suivante pour le choix du diamètre :
x = 12y1 + 17y2 + 24y3 + 47y4
ou encore :
4
X
xi = di yi
i=1
avec la contrainte qu’un seul diamètre doit être choisi :
y1 + y2 + y3 + y4 = 1 (3.9)
et bien sûr en imposant le caractère binaire de chaque indicatrice :
yi ∈ {0, 1}, ∀i = 1, 2...4
La contrainte (3.9) fera en effet qu’une seule indicatrice vaudra un tandis
que toutes les autres seront à zéro. Notez qu’il s’agit d’un cas particulier du
problème précédent de mélange avec un nombre limité d’ingrédients dans le
mélange puisqu’ici on impose exactement un ingrédient dans le mélange par la
condition (3.9).
Nous verrons au chapitre suivante une méthode de résolution de ces pro-
blèmes mixtes-entiers : il s’agit de la méthode de branch and bound connue en
français sous le nom de méthode de séparations et évaluations.
3.6. Exercices 31

3.6 Exercices
3.1. Localisation optimale d’émetteurs de télévision. Etant donné une
région comportant quatre villes (Lille, Dunkerque, Valencienne et Ba-
sieux), on veut savoir où implanter, parmi les 5 emplacements possibles
les émetteurs pour desservir ces différentes villes au moindre coût. La
dernière colonne représente le coût de construction de chaque émetteur.
On demande formuler le problème.

Ville Lille Dunkerque Valencienne Basieux Coût fixe


Émetteur 1 1 1 25
Émetteur 2 1 1 30
Émetteur 3 1 1 15
Émetteur 4 1 1 35
Émetteur 5 1 1 1 90

Table 3.1 – Accessibilité des villes à partir des émetteurs.

3.2. Affectation de lignes aériennes. Une compagnie aérienne régionale


désire affecter sa flotte d’avions aux 4 lignes qu’elle exploite. Le nombre
de passagers désirant effectuer chaque jour un parcours est donné à la
dernière ligne du tableau ci-dessous.

ligne A ligne B ligne C ligne D


Coût d’un petit avion sur la 10 17 15 23
Coût d’un grand avion sur la 90 210 140 250
Demande de la 100 200 150 300

La compagnie dispose de deux types d’avions : 10 petits avions de 40


places et 5 avions moyens de 180 places. Le coût d’exploitation d’un avion
dépend de sa taille et de la ligne à laquelle il est affecté : ils sont également
donnés au tableau ci-dessus. On désire minimiser le coût d’exploitation
en satisfaisant la demande.
Formuler le problème de la meilleure affectation de la flotte. Vos variables
peuvent-elles prendre toutes les valeurs réelles ?

3.3. Mélange de maximum 4 charbons. Pour produire du coke, on mé-


lange des charbons dans un haut fourneau où ensuite, une réaction à
haute température produit le coke. On suppose qu’il y a 8 charbons dis-
ponibles. Ces charbons sont entrés par des bandes porteuses qui sont au
nombre de 4, permettant d’avoir au maximum 4 charbons différents dans
32 Chapitre 3. Les problèmes en nombres entiers.

le mélange. De plus, si un charbon est présent dans le mélange, il doit


l’être à hauteur de minimum 5%. De plus, on exige que la teneur du mé-
lange en Silicium soit d’au plus 1,8 %. Pour obtenir la teneur en Silicium
du mélange, il faut faire la somme pondérée des teneurs en Silicium des
ingrédients du mélange. Le tableau 3.2 reprend les prix et teneur en Si des

Charbon 1 2 3 4 5 6 7 8
Prix 12 14 17 10 13 9 15 11
Teneur Si 2,0 2,5 % 1,0 % 5,0 % 1,0 % 5,0 % 2,0 % 1,5 %

Table 3.2 – Teneurs en Si et prix des différents charbons.

charbons. On veut déterminer le mélange répondant aux spécifications


qui soit de coût minimum. Formuler le problème comme un problème en
nombres entiers.
Chapitre 4

Les notions de graphe, de flot et


de réseau.

4.1 Un exemple de transport


Nous allons introduire la notion de graphe ainsi que la notion de flot sur un
exemple de transport simple. Considérons le problème d’une société de trans-
port de gaz dans une région comme la région du Nord. Les données utilisées ici
sont purement fictives. En effet, seule la société de transport, en l’occurrence,
GRT Gaz 1 , dispose de ces informations que sont, par exemple, la consomma-
tion de ses gros clients.
Supposons donc que la région du Nord soit alimentée en gaz naturel, d’une
part, par des importations de gaz arrivant par bateaux au terminal de Dun-
kerque, et, d’autre part, par des importations qui arrivent par gazoducs ter-
restres vennant de Mons ou de Tertre (voir figure 4.1). Le tableau 4.1 reprend
les quantités injectées dans le réseau en ces différents points d’offre.

Point Offre
Dunkerque 110
Mons 60
Tertre 0

Table 4.1 – Quantités offertes.

Du côté demande, la société de transport doit satisfaire la demande domes-


tique (chauffage, cuisson, ...etc.), ainsi que la demande de grosses industries
(industries chimiques, ...etc). Les 4 grandes agglomérations de la région ainsi

1. La fonction transport est maintenant dissociée de la fonction vente de gaz sur le réseau
français. Le transport est assuré par une société nommée GRT Gaz pour Gestionnaire du
Réseau de Transport de Gaz.

33
34 Chapitre 4. Les notions de graphe, de flot et de réseau.

que leurs demandes journalières cumulées pour les secteurs domestique et in-
dustriel sont reprises au tableau 4.2.

Ville Demande journalière


Lille 60
Valenciennes 50
Lens 40
Denain 20

Table 4.2 – Quantités demandées.

Pour acheminer le gaz depuis les points d’entrée dans le réseau régional
jusqu’aux clients, le GRT Gaz dispose d’un réseau de gazoducs comparables
au réseau d’autoroutes liant les grands centres de la région entre eux. Le réseau
est représenté schématiquement à la figure 4.1.

0
Dunkerque
110 60 Lille |20| Tertre
|70| 0
60
0
50 |50| |20| |20| Valenciennes 60
0 60 Mons
|70|
Lens 10
|20| |40|
10 50
40
Denain

20

Figure 4.1 – Représentation des principaux gazoducs.

Chacun de ces gazoducs a une capacité maximum que l’on a représentée à


la figure 4.1 par la quantité notée |c| le long de l’arc correspondant au gazoduc.
Par exemple, la capacité journalière maximum pour le gazoduc liant Dunkerque
à Lens est de 50. On a également repris le plan actuel d’exploitation du réseau,
c’est-à-dire l’ensemble des prélèvements et des flux de gaz dans le réseau. Par
exemple, on injecte dans le réseau 110 à Dunkerque dont 50 sont envoyés vers
Lens et 60 vers Lille. Supposons maintenant qu’on enregistre une augmentation
de la demande. La société se demande jusqu’à quel niveau de demande globale
elle pourra faire face avec le réseau actuel. Nous allons voir comment formuler
mathématiquement ce problème.
4.2. Notion de graphe 35

4.2 Notion de graphe


Définition 4.1 Un graphe est défini comme la paire G = (N, A) ou N note
un ensemble de nœuds et A un ensemble de couples (i, j), appelés arcs, avec
i ∈ N et j ∈ N .

Dans l’exemple, chaque ville représente un nœud du réseau. Le tableau 4.3


reprend la liste des nœuds du réseau. Ces nombres attribués aux villes sont
également repris à la figure 4.2.

i Ville correspondante
1 Dunkerque
2 Lille
3 Lens
4 Tertre
5 Mons
6 Valenciennes
7 Denain

Table 4.3 – Nœuds du réseau.

On a donc que :
N = {1, 2, 3, 4, 5, 6, 7}
Les arcs sont les gazoducs liant deux nœuds. En fonction des numéros indiqués
à la figure 4.2, on peut décrire les arcs directement comme au tableau 4.4.

Arc De A (i, j)
1 Dunkerque Lille (1, 2)
2 Dunkerque Lens (1, 3)
3 Lille Lens (2, 3)
4 Lille Valenciennes (2, 6)
5 Lens Denain (3, 7)
6 Tertre Lille (4, 2)
7 Mons Valenciennes (5, 6)
8 Valenciennes Denain (6, 7)

Table 4.4 – Arcs du réseau.

On a donc que :

A = {(1, 2), (1, 3), (2, 3), (2, 6), (3, 7), (4, 2), (5, 6), (6, 7)}
36 Chapitre 4. Les notions de graphe, de flot et de réseau.

O4

Dunkerque 4 Tertre
arc 6
O1 Lille f42
1 arc 1 f12
|20|
|70| 2
arc 2 arc 4 O5
f13 arc 3
f26 Valenciennes
|20| f23 |20| arc 7
|50| D2 5 Mons
6
f56 |70|
Lens 3
arc 5 arc 8 f67
f37 |40| D6
|20| 7
D3 Denain

D7

Figure 4.2 – Représentation du réseau via un graphe

4.3 Notion de flot


Nous allons maintenant introduire la notion de flot. Dans chaque arc, on
va faire circuler un flux, c’est-à-dire une quantité par unité de temps. On note
par fij la quantité de gaz circulant par jour du nœud i au nœud j.

fij
i j

Figure 4.3 – Notion de flux dans un arc


N’importe quel ensemble de quantités fij n’est pas acceptable. Il faut que
ces flux respectent :
• la conservation du flux en chaque nœud de N ,
• la capacité de l’arc en chaque arc de A.
Appliquons ceci à l’exemple que nous allons formuler comme un modèle
d’optimisation. Comme variables de décision, désignons par :
fij , le flux journalier de gaz de i à j, ∀(i, j) ∈ A,
Oi , le prélèvement de gaz au nœud i, ∀i ∈ N,
Dj , la demande de gaz au nœud j, ∀j ∈ N.
4.3. Notion de flot 37

Les contraintes du problèmes sont de deux types :


• Les contraintes de conservation aux nœuds expriment que "tout ce qui
entre au nœud" est égal à "tout ce qui sort". On peut écrire, pour l’exemple,
que :

O1 = f12 + f13
f12 + f42 = f23 + f26 + D2
f13 + f23 = f37 + D3
O4 = f42
O5 = f56
f26 + f56 = D6 + f67
f37 + f67 = +D7

En général, on peut écrire la relation suivante au nœud i :


X X
fki + Oi = fij + Di (4.1)
k|(k,i)∈A j|(i,j)∈A

• Les contraintes de capacité des arcs s’expriment simplement comme :

0 ≤ f12 ≤ 70 0 ≤ f37 ≤ 20
0 ≤ f13 ≤ 50 0 ≤ f42 ≤ 20
0 ≤ f23 ≤ 20 0 ≤ f56 ≤ 70
0 ≤ f26 ≤ 20 0 ≤ f67 ≤ 40

En général, si cij note la capacité de l’arc (i, j), c’est-à-dire le flux maxi-
mum qui peut traverser l’arc et semblablement, et si bij note la borne
inférieure (éventuelle) sur ce flot de sorte que l’on a :

bij ≤ fij ≤ cij (4.2)

Remarquons qu’une façon de ne pas devoir définir les variables d’offre et


de demande est de relier tous les nœuds d’offre à un nœud fictif 0 qui sera
l’entrée dans le réseau et de relier tous les nœuds de demande à un nœud de
sortie n + 1.
Comme la somme des entrées doit être égale à la somme des sorties, on
peut relier le nœud de sortie n + 1 au nœud d’entrée 0 par un arc de retour
(n + 1, 0).

Définition 4.2 On appelle flot l’ensemble des flux d’arcs s’ils respectent :
• en chaque nœud i ∈ N , l’équation de conservation (4.1)
38 Chapitre 4. Les notions de graphe, de flot et de réseau.

0
f01
f04 f05

1 f12 f42
4
2
f26
f80 f13 f23 f56
f28 5
6
Lens 3 f37 f67

f38 7
f78 f68

!!8

Figure 4.4 – Représentation du réseau avec arc de retour.

• en chaque arc (i, j) ∈ A, les contraintes de capacité (4.2).

Le flux traversant l’arc de retour est appelé le flot total traversant le réseau.

Dans l’exemple, le but était de déterminer le flux maximum qui pouvait


traverser le réseau. Aussi peut-on écrire l’objectif suivant :

max z = f80

Dans le cas d’un problème de flux à coût minimum, on peut écrire l’objectif
suivant : X
min z = cij fij
(i,j)∈A

où cij est le coût unitaire de fourniture d’une unité de i à j.


4.4. Exercices 39

4.4 Exercices
4.1. Amélioration d’un réseau routier. On prévoit une augmentation du
trafic entre les villes A et F. On veut déterminer le flot maximum que le
réseau routier (voir tableau 4.5) peut supporter entre les deux villes.

Arc Origine Destination Capacité


1 A B 3
2 A C 7
3 C B 2
4 C D 2
5 B D 4
6 C E 4
7 E D 2
8 D F 6
9 E F 5

Table 4.5 – Coûts unitaires de transport.

(a) Représenter le réseau sous forme d’un graphe avec le flot total.
(b) Formuler le problème de la détermination du flot maximum.

4.2. Problème de livraison de marchandises. Une firme possède trois


usines à Anvers, Liège et Mons de capacités de production connues. Le
directeur des ventes de cette firme connait les commandes le mois pro-
chain de ses quatre clients. Les coûts de transport unitaires entre les
usines et les villes sont donnés au tableau 4.6. Le directeur se demande
comment organiser le transport à coût minimum.

Coût de transport Anvers Liège Mons Demande


Bruxelles 100 120 70 20
Charleroi 150 170 30 12
Namur 180 80 90 9
Ostende 90 210 140 14
Capacité 25 15 15

Table 4.6 – Coûts unitaires de transport.

(a) Représenter graphiquement le problème de transport.


(b) Formuler mathématiquement le problème.
40 Chapitre 4. Les notions de graphe, de flot et de réseau.

4.3. Gestion de la chaîne d’approvisionnement. Le responsable logis-


tique d’un producteur de voitures allemandes doit répondre à une aug-
mentation des exportations en direction des États-Unis. Les voitures sont
produites à Stuttgart et de là sont transférées par train vers un des
trois ports de départ. Le tableau 4.7 reprend les capacités exprimées en
moyenne par jour. Par exemple, pour Rotterdam, un train de 150 voitures
maximum arrive tous les trois jours. Ce qui correspond à une capacité
journalière de transport de 50 voitures. De ces trois ports, les véhicules

Départ arrivée capacité journalière


Stuttgart Rotterdam 50
Bordeaux 70
Lisbonne 40

Table 4.7 – Capacités de transport par train

sont transportés par bateau vers les ports d’arrivée aux États-Unis. Les
capacités journalières de transport par bateau sont données au tableau
4.8. Une barre dans ce tableau indique que le transport est impossible.
Enfin, depuis les ports d’arrivés, les voitures sont transportées vers Los

Départ vers New-York vers New-Orléans


Rotterdam 60 -
Bordeaux 40 50
Lisbonne - 30

Table 4.8 – Capacités de transport par bateau

Angeles, le centre de distribution local par camions. Les contrats journa-


liers de transport prévoient des quantités maximum données au tableau
4.9. Quel est le flot maximum de voitures qui peuvent en flux journalier

Départ contrat vers Los Angeles


New-York 80
New-Orléans 70

Table 4.9 – Capacités de transport par camion

arriver à Los Angeles en partant de Stuttgart.

(a) Représenter le problème sur un graphique de réseau.


(b) Formuler le problème.
Chapitre 5

Résolution des modèles linéaires

5.1 Introduction
Lorsqu’il n’y a que deux variables de décision, un problème linéaire peut
être résolu de manière purement graphique. Nous présentons à la section 5.1
cette méthode de résolution graphique.
Lorsqu’il y a un plus grand nombre de variables, un algorithme mis en
œuvre sous la forme d’un programme informatique s’avère nécessaire. Il s’agit
de l’algorithme du Simplexe dont nous présentons le principe à la section 5.5.
Cet algorithme est mis en œuvre dans de nombreux logiciels d’optimisation
tels que GAMS [2] ou OMP. Le solveur d’Excel que nous présenterons dans la
troisième partie du cours possède également une mise en œuvre de l’algorithme
du Simplexe.
Reprenons la formulation de l’exemple introductif de production de chassis :

max z = 3 x1 + 5 x2

 x1

 ≤ 4

2x2 ≤ 12



(5.1)


s.c.q.

3x1 + 2x2 ≤ 18




 x1 ≥ 0

≥ 0


x2

Comme annoncé ci-dessus, dans le cas de deux variables de décision, un


problème linéaire peut être résolu de manière purement graphique en suivant
le processus en trois étapes suivant :

1. représentation graphique de la région réalisable,

2. représentation graphique des contraintes,

3. détermination de la solution optimale.

41
42 Chapitre 5. Résolution des modèles linéaires

5.2 Représentation de la région réalisable


La première étape de la résolution consiste donc à représenter graphi-
quement la région réalisable.

Définition 5.1 On appelle région réalisable, l’ensemble des valeurs de va-


riables de décision qui satisfont toutes les contraintes.

Dans le cas de l’exemple, c’est l’ensemble des points (x1 , x2 ) satisfaisant les
inégalités de (5.1).

x2
(4)

9 (1)

6
(2)
4

2 (3)
(5)

0 2 4 6 x1

Figure 5.1 – Ensemble de production.

Graphiquement, une inégalité telle que 3x1 + 2x2 ≤ 18 correspond à un


demi-plan limité par la droite obtenue en prenant l’inéquation à l’égalité (3x1 +
2x2 = 18). Lorsque l’on fait l’intersection des cinq demi-plans correspondant
aux cinq inégalités :



 x1 ≤ 4 (1)

2x2 ≤ 12 (2)






3x1 + 2x2 ≤ 18 (3)




 x1 ≥ 0 (4)

≥ 0 (5)


x2

on obtient le polygone hachuré à la figure 5.1.


On voit ici clairement que le système est sous-déterminé. On va devoir
choisir entre ces différents plans de production.
5.3. Représentation de l’objectif 43

5.3 Représentation de l’objectif


Pour choisir entre ces différents plans de prodution, et c’est la deuxième
étape de la résolution, on va représenter graphiquement des droites d’iso-
valeur de la fonction objectif :

z = 3x1 + 5x2 .

En effet, on remarquera que l’expression de la fonction objectif fait intervenir


trois variables et ne peut donc être représentée que dans l’espace. Pour se
ramener dans le plan, on va considérer des valeurs successives de l’objectif :

z = k.

Ce qui correspond graphiquement à des droites parallèles :

3x1 + 5x2 = k.

Les points d’une de ces droites sont donc le lieu de tous les points donnant
la même valeur du profit (d’où le nom de droite d’isovaleur de la fonction
objectif). Ceci est fait à la figure 5.2 où l’on a représenté

z = 15,
z = 30,
z = 36.

x2
(4)

9
z = 36
z = 30
6
(2)
z = 15 4

0 2 4 6 x1

Figure 5.2 – Droites d’isoprofit.


44 Chapitre 5. Résolution des modèles linéaires

La droite d’isovaleur z = 15, c’est-à-dire :


z = 3x1 + 5x2 = 15
passe par les points (5,0) et (0,3) tandis que la droite d’isovaleur z = 30 passe
par les points (10,0) et (0,6) . On obtient donc des droites parallèles qui se
déplacent vers le haut lorsque z s’accroît.

5.4 Détermination du point optimal


Enfin, et c’est la troisième étape de la résolution, l’optimum sera déter-
miné graphiquement comme le plan de production situé sur la droite d’isoprofit
la plus élevée, c’est-à-dire celle qui donne le profit le plus élevé. On voit à la
figure 5.2 qu’il s’agit du point
x∗ = (2, 6).
Justifions ce choix. Comme on maximise, le profit on a intérêt à prendre la
droite d’isovaleur la plus élevée possible. Bien sûr, il faut que le plan de pro-
duction soit encore réalisable : autrement dit, il faut se restreindre à la région
réalisable. On a alors la très important remarque suivante :
Observation 5.1 Pour maximiser l’objectif, il faut prendre la droite d’iso-
valeur de l’objectif qui touche encore la région réalisable et qui donne la plus
grande valeur à l’objectif. Le point de contact est un point optimum.
Sur base de cet exemple, on déduit une deuxième observation.
Observation 5.2 On constate que la solution optimale est à un sommet de
la région réalisable.
On peut alors se poser la question suivante : La solution optimale d’un
problème d’optimisation linéaire sera-t-elle toujours trouvée en un sommet de
la région réalisable ?
En fait, le seul cas où se présentent des solutions qui ne sont pas en des
sommets de la région réalisable est la situation où tout un côté est optimal.
Illustrons ce cas en changeant l’objectif (voir figure 5.3). Supposons que l’ob-
jectif soit de la forme :
max z 0 = 3x1 + 2x2
Dans ce cas, il est facile de voir que les droites d’isovaleur de l’objectif sont
toutes parallèles au côté :
3x1 + 2x2 = 18
On en déduit que tout le côté joignant le sommet (2,6) au sommet (4,3)
est optimal. Mais, même dans ce cas, on peut trouver une solution (même
deux) en un sommet de la région réalisable. Il suffit de choisir le point (2,6) ou
le point (4,3). Sur base de cet exemple, on tire une troisième observation :
5.5. Principe de l’algorithme du Simplexe 45

x2
!
z = 18
9
! z ! = 3x1 + 2x 2 = 18
z = 12
(2,6)
6
z! = 6
(4,3)

0 2 4 6 x1

Figure 5.3 – Solutions optimales multiples

Observation 5.3 Même si tout un côté du polygone est optimal, on peut tou-
jours choisir une solution optimale correspondant à un sommet.

5.5 Principe de l’algorithme du Simplexe


En conclusions, on voit qu’il suffit de limiter la recherche de l’optimum
d’un problème linéaire aux seuls sommets de la région réalisable. On peut faire
mieux que d’évaluer l’objectif en chaque sommet.
Ainsi, le principe de l’algorithme du Simplexe est, partant d’un sommet de la
région réalisable, d’aller de sommet en sommet adjacent jusqu’à détermination
de l’optimum.

Définition 5.2 On appelle sommets adjacents d’un polygone, deux sommets


joints par un côté du polygone.

Par exemple, à la figure 5.4, les points (0,0) et (0,6) sont des sommets
adjacents car situés aux deux extrémités d’un côté du polygone. Alors que les
points (0,0) et (2,6) ne sont pas adjacents car il faut parcourir deux côtés du
polygone pour aller de l’un à l’autre.
Le sommet de départ est ici évident : il suffit de prendre le point (0,0). Notez
que l’origine peut ne pas être un sommet de la région réalisable. Il faudra, dans
ce cas, recourir à un problème auxiliaire, connu sous le problème de phase I,
pour déterminer ce point de départ.
On peut donc suggérer l’algorithme suivant :

i) Choisir comme point de départ un sommet x de la région réalisable.


46 Chapitre 5. Résolution des modèles linéaires

x1 = 0

(0, 9)
x1 = 4

(2, 6) (4 , 6)
(0, 6) 2x2 = 12

4 (4, 3)
2 3x1 + 2x2 = 18

(0 , 0) 2 (4, 0) (6 , 0) x2 = 0

Figure 5.4 – Notion de sommets adjacents

ii) Déterminer les côtés passant par ce sommet x. Trouver un côté le long
duquel z croît. S’il n’y en n’a pas, STOP : le x courant est optimal.

iii) Déterminer le sommet y à l’autre bout du côté et poser x = y. Retour


en ii).

Pour le choix du sommet adjacent à l’étape ii), l’algorithme du Simplexe


utilise le critère de choix de la direction suivant : prendre la direction qui
assure le plus grand accroissement de la fonction objectif pour un pas de un
dans la direction. Au départ, du point (0,0), deux directions sont possibles : la
direction (x1 , 0) avec x1 > 0, c’est-à-dire aller vers le point (4,0) et la direction
(0, x2 ) avec x2 > 0, c’est-à-dire aller vers le point (0,6). Au vu de la fonction
objectif :
max z = 3x1 + 5x2
il vaut mieux prendre la direction de x2 .
Le fonctionnement de l’algorithme, dans le cas de l’exemple, peut être illus-
tré sur la figure 5.4.
A la première itération, partant du sommet initial P0 = (0, 0), on dé-
termine la direction de l’axe vertical qui permet d’accroître plus rapidement
l’objectif. On va jusqu’au bout du côté et on obtient le point P1 = (0, 6) en fin
d’itération 1.
A la deuxième itération, on se dirige vers le point P2 = (2, 6).
A la troisième itération, on constate qu’il n’y a plus de direction d’ac-
croissement de l’objectif. On est donc à l’optimum.
5.6. Exercices 47

5.6 Exercices
5.1. Planification de production sur coûts variables. Une entreprise
fabrique deux produits P1 et P2 dans deux ateliers (usinage et finition).
Le mois dernier, 500 unités de P1 ont été produites grâce à 750 heures
d’usinage et 250 heures de finition. De même, 700 unités de P2 ont été
produites, nécessitant 700 heures d’usinage et 350 heures de finition.
On suppose que le coût de production est directement proportionnel au
nombre d’heures passées à la production. Le mois passé, on a observé la
répartition des frais variables reprise au tableau 5.1. Il y a également un

Section Usinage Finition


frais variables 11.600=C 6.000=C

Table 5.1 – Planification sur coût variable

coût de conditionnement du produit qui est de 8 =C par unité du produit


P1 et de 6 =C par unité du produit P2 . Les prix de vente unitaires sont
de 55 =C et 43 =C respectivement.

(a) Calculer les marges sur coûts variables pour chacun des deux pro-
duits en calculant d’abord le prix de l’heure dans chacun des ateliers
et le temps nécessaire dans chacun des ateliers par produit.
(b) Les capacités de production mensuelles sont de 1.200 heures pour
l’usinage et de 500 heures pour la finition. Formuler le problème de
la maximisation de la marge sur coûts variables.
(c) Déterminer graphiquement les productions optimales.

5.2. Fabrication et transport de produits frais. La production d’une


compagnie se réduit à 2 produits frais, P et Q qu’un grossiste lui achète.
La marge unitaire de la compagnie, hors frais de transport, est de 42 =C
pour P et 48 =C pour Q. Chaque soir, les produits frais sont acheminés
chez le grossiste par un transporteur qui facture à la compagnie 2 =C
par kg transporté. Ce coût de transport vient en déduction de la marge.
La capacité de transport est de 2.100 kg par jour. Les produits P et Q
s’élaborent à partir de 2 matériaux M et N selon les recettes présentées au
tableau 5.2. Considérons une journée où la compagnie dispose de 1.600
kg de M et de 1.200 kg de N.

(a) Calculer la marge nette de frais de transport pour les 2 produits.


(b) Formuler le problème de la maximisation du revenu net.
(c) Déterminer graphiquement la solution optimale.
48 Chapitre 5. Résolution des modèles linéaires

Produit Poids (en kg) Poids (en kg) Poids total


du composant M du composant N (en kg)
P 4 3 7
Q 2 1 3

Table 5.2 – Fabrication et transport de produits frais.

5.3. Production de détergents. Une entreprise de fabrication de déter-


gents commercialise deux produits : le détergent destiné aux ménages
et celui destiné au marché industriel, tous deux fabriqués à partir de
deux ingrédients, notés A et B. Si la contenance est de 5 litres dans les
deux cas, la composition du produit varie d’un marché à l’autre comme
indiqué au tableau ci-dessous

Produit détergent ménager détergent industriel


Ingrédient A 4 litres 2 litres
Ingrédient B 1 litre 3 litres

Table 5.3 – Production de détergents

Autrement dit, chaque bidon de 5 litres de détergent ménager requière


4 litres d’ingrédient A et 1 litre d’ingrédient B tandis que chaque bidon
de 5 litres de détergent industriel requière 2 litres de A et 3 litres de B.
Chaque semaine, l’entreprise peut se fournir au maximum 20.000 litres
de A et 15.000 litres de B.
De plus, l’emballage est acheté auprès d’un fournisseur qui ne peut four-
nir plus de 4.000 emballages par semaine pour le produit ménager et
4.500 emballages pour le produit industriel.
La marge unitaire est de 30 eurocents pour le produit destinés aux mé-
nages et de 25 eurocents pour le produit industriel. L’entreprise désire
déterminer son plan de production hebdomadaire optimal.

(a) Formuler le problème linéaire correspondant (choix des variables,


expression de l’objectif, expression des contraintes).
(b) Résoudre graphiquement
(c) Donner la solution optimale.
Chapitre 6

Résolution des modèles en


nombres entiers

6.1 Introduction
Les problèmes en nombres entiers sont beaucoup plus difficile à résoudre
que les problèmes linéaire. En effet, il existe une méthode de résolution : la
méthode de branch and bound, que nous illustrons la méthode sur l’exemple
suivant tiré de Norbert et al [13] :
zP∗ N E = max z = 15x1 + 50x2
−x1 + 2x2 ≤ 5,


 (1)
 x + 2x ≤ 14, (2) (6.1)

1 2
s.c.q.


 x 1 ≤ 8, (3)
x1 , x2 ≥ 0 et entiers

La région réalisable est représentée à la figure 6.1.

x2 (3)
(2)
P0 (1)
5

4
z = 150
3 1

0
0 1 2 3 4 5 6 7 8 9 10 x1

Figure 6.1 – Représentation de la région réalisable.

49
50 Chapitre 6. Résolution des modèles en nombres entiers

6.2 Principe de la méthode de branch and bound


Remarquons qu’une façon de résoudre le problème serait de construire une
borne inférieure sur zP∗ N E et une borne supérieure sur zP∗ N E et ensuite de
raffiner ces bornes jusqu’à les égaliser.
Question 1 : comment construire une borne inférieure sur zP∗ N E ?
La réponse à cette question est à la fois simple et difficile. En effet, pour
trouver une borne inférieure, il suffit de trouver une solution réalisable pour
(6.1). Comme l’objectif est de maximiser, l’optimum du problème ne pourra
qu’être supérieur à la valeur de z en ce point. Par exemple, le point (4,4)
appartient à la région réalisable :

z(4, 4) = 15 × 4 + 50 × 4 = 260 ≤ zP∗ N E

Question 2 : comment construire une borne supérieure sur zP∗ N E ?


Une façon de répondre à cette question est de résoudre le problème linéaire
que l’on obtient à partir de (6.1) en laissant tomber les contraintes d’intégra-
lité des variables. Comme on maximise sur un ensemble réalisable plus large,
l’optimum ainsi obtenu ne pourra qu’être supérieur à l’optimum du problème
en nombres entiers. C’est aussi le premier pas de la méthode de branch and
bound que nous allons maintenant décrire sur l’exemple.
Appliquons la méthode à l’exemple.
Pas 0. Résoudre la relaxation linéaire.
Pour cet exemple, on obtient comme solution de la relaxation linéaire le point
noté P0 à la figure 6.1 :

x1 = 4, 5 x2 = 4, 75 z0 = 305.

Cette solution est inacceptable car les variables ne sont pas entières. Cepen-
dant, elle fournit une première borne supérieure sur zP∗ N E :

zP∗ N E ≤ 305 = zP∗ L .

6.3 Choix de la variable de branchement


Pas 1. Brancher sur une variable non entière.
La seconde idée de la méthode de branch and bound est (comme le nom l’in-
dique) d’opérer une séparation : la région réalisable va être séparée en deux
sous-régions dont aucune ne peut contenir la solution optimale non entière P0 .
Cette séparation nécessite le choix d’une variable de séparation. Le choix
de cette variable est heuristique. Différents choix sont possibles et de ce choix
peut dépendre la rapidité de la méthode de résolution. Une façon simple de
choisir cette variable est de prendre la variable la plus distante d’un entier.
6.3. Choix de la variable de branchement 51

Une alternative, parfois utilisée, est de prendre la variable la plus proche d’un
entier.
Le “critère de choix de la variable de branchement” adopté ici est
de prendre la variable la plus distante d’un entier.
Dans notre exemple, il s’agit de la variable x1 . On va effectuer un branche-
ment sur cette variable. Comme x1 ne peut prendre que des valeurs entières,
il n’y a aucune perte de généralité d’imposer que
soit x1 ≤ 4 soit x1 ≥ 5
Imposer ces deux conditions va éliminer la solution courante P0 de la relaxation
linéaire.
En imposant séparément l’une et l’autre conditions, on obtient deux sous-
problèmes, un problème fils et un problème fille. Ce que l’on représente par
une diagramme du type de celui de la figure 6.4. Chaque nœud de cette figure
correspond à un problème linéaire. Le nœud 0 au problème original. Le nœud
1 est le problème original avec en plus la restriction x1 ≤ 4, tandis que le nœud
2 correspond au problème original avec en plus la restriction x1 ≥ 5. On a ici
numéroté les nœuds dans l’ordre où ils ont été générés.
On peut maintenant résoudre les relaxations linéaires correspondant aux
problèmes fils et fille (voir figure 6.2). Dans notre exemple, on obtient les deux
x2
(2)
(1) (3)
5 P1 P2

1 2
3

0
0 1 2 3 4 5 6 7 8 9 10 x1

Figure 6.2 – Résolution des relaxations des nœuds 1 et 2.


solutions suivantes :
Noeud 1 : x1 = 4, x2 = 4, 5, z1 = 285.
Noeud 2 : x1 = 5, x2 = 4, 5 z2 = 300.
Remarquez que les valeurs atteintes par la fonction objectif sont moins élevées
que dans la relaxation linéaire précédente : on a, en effet, ajouté des contraintes.
52 Chapitre 6. Résolution des modèles en nombres entiers

6.4 Choix du nœud à diviser


Pas 2. Diviser à nouveau un nœud fils ou fille en deux.
Ici, aucune des deux solutions n’est acceptable car toutes les deux comportent
des parties fractionnaires. On va donc continuer en choisissant un des deux
nœuds pour le diviser à nouveau. Le choix du nœud à diviser est à nouveau
heuristique et peut à nouveau avoir une grande influence sur le temps total mis
pour résoudre le problème. Pour l’illustration de la méthode, nous adoptons la
règle de choix heuristique suivante :
Le “critère de choix du nœud à diviser” adopté ici est de prendre la
relaxation linéaire qui fournit la meilleure valeur de la fonction objectif.
C’est-à-dire la plus grande en cas de maximisation.
Pour cet exemple, on choisit donc le nœud 2 et on répète le Pas 1.
Pas 1. Choisir une variable pour brancher.
Ici seule la variable x2 est non entière. On la choisit donc pour opérer le bran-
chement suivant :
soit x2 ≤ 4 soit x2 ≥ 5
On ajoute séparément chacune de ces contraintes au problème 2 et on génère
ainsi les nœuds 3 et 4. Ceci est illustré à la figure 6.4. On résout graphiquement
les relaxations linéaires (voir figure 6.3) et on obtient les solutions suivantes :

x2 (3)
(2) 4
P0 (1)
5
P1 P2
P3
4

3
3

0
0 1 2 3 4 5 6 7 8 9 10 x1

Figure 6.3 – Résolution des relaxations des nœuds 3 et 4.

Noeud 3 : x1 = 6, x2 = 4, z3 = 290.
Noeud 4 : non réalisable
6.5. Critère d’arrêt de la méthode 53

Noter que, au nœud 3, on a obtenu une solution entière dont la valeur corres-
pondante de la fonction objectif est 290. On a une première borne inférieure
sur la valeur optimale de la fonction objectif et on a donc que :
290 ≤ zP∗ N E
Il n’y a aucune raison de continuer à diviser le nœud 3 pour lequel une solution
entière a été obtenue. On dit que le nœud 3 est coupé.
z 0 = 305
x1 = 4,50
x2 = 4,75
x1 4 x1 5
z3 meilleur
z1 = 285 z2 = 300
x1 = 4 x1 = 5
x 2 = 4,5 x 2 = 4,5
x2 4 x2 5
entiers impossible

z3 = 290
x1 = 6 Impossible
x2 = 4

Figure 6.4 – Arbre de branch and bound.


Remarquons aussi que le nœud 4 a conduit à un problème non réalisable.
Ce n’est pas étonnant vu que l’on rajoute de plus en plus de contraintes. A
nouveau, dans ce cas, il ne sert à rien de continuer à diviser ce nœud. On peut
donc couper le nœud 4.
Remarquons, pour terminer, que l’on peut également couper la branche du
nœud 1. En effet, la valeur de z1 = 285 est inférieure à la borne inférieure de 290
qui vient d’être trouvée. On n’a donc aucun espoir de trouver en poursuivant
les calculs à la branche 1 de trouver une solution entière meilleure que 290.

6.5 Critère d’arrêt de la méthode


La méthode est terminée puisqu’il n’existe plus de nœud à diviser. On
détermine la solution optimale comme étant la meilleure solution entière
trouvée. Il s’agit du point P3 suivant :
x∗1 = 6, x∗2 = 4, zP∗ N E = 290
On a ainsi, pour notre exemple, trouvé et aussi prouvé que la solution du
nœud 3 était la solution optimale du problème en nombres entiers.
54 Chapitre 6. Résolution des modèles en nombres entiers

6.6 Exercices
6.1. Problème d’affectation de lignes aériennes. Une petite compagnie
aérienne dispose de six avions de 150 places. Elle désire affecter sa flotte
d’avions aux 2 lignes ouvertes à la concurrence (OM et OT). Le nombre
de passagers désirant effectuer chaque jour un parcours sur la ligne OM
par cette nouvelle compagnie est 500, et de 200 sur la ligne OT. Le coût
marginal (frais variables tels que le carburant, les taxes d’atterrissage,
etc...) d’un voyage sur la ligne OM est de 4 et de 3 sur la ligne OT. On
désire minimiser le coût d’exploitation en satisfaisant la demande.
(a) Formuler le problème de la meilleure affectation de la flotte.
(b) Résoudre par la méthode de branch and bound.
(c) Illustrer les calculs par un arbre de branch and bound.
6.2. Méthode de branch and bound. Considérons le problème en nombres
entiers suivant :
zP∗ N E = max z = 5x1 + 4x2



 x1 +x2 ≤ 5, (1)

s.c.q. 10x1 +6x2 ≤ 45, (2)


x1 , x2 ≥ 0 et entiers

On demande de le résoudre par la méthode de branch and bound.


(a) Résoudre la relaxation initiale de manière graphique.
(b) Appliquer la méthode la méthode de branch and bound.
(c) Illustrer les calculs par un arbre de branch and bound.
6.3. Méthode de branch and bound. Considérons le problème en nombres
entiers suivant :
min z = x1 + 2x2



 −2x1 + 2x2 ≥ 1 (1)


x1 + x2 ≥ 6, 5 (2)


scq 


 x2 ≤ 6 (3)

x1 , x2 ≥ 0


et entiers.

(a) Résoudre graphiquement la relaxation linéaire initiale.


(b) Expliquer les itérations de la méthode de Branch and Bound.
(c) Tracez l’arbre de la méthode de Branch and Bound.
Chapitre 7

Les modèles non linéaires.

7.1 Introduction

Un problème d’optimisation est dit linéaire s’il s’agit de la maximisa-


tion (ou de la minimisation) d’une fonction linéaire sous des contraintes pure-
ment linéaires. Un modèle est dit non linéaire si l’objectif ou au moins une
contrainte est non linéaire.
Nous présentons à la section 7.2 les conditions qui sont vérifiées à l’opti-
mum d’un problème non linéaire. Ces conditions sont particulièrement utiles
pour calculer un équilibre de l’utilisateur pour réseau de transport (voir section
7.3). Mais avant cela, illustrons sur un exemple le fait que la propriété fonda-
mentale de la programmation linéaire, à savoir que la solution optimale d’un
problème linéaire peut toujours être trouvée en un sommet, n’est plus vérifiée
en programmation non linéaire. En effet, considérons le problème suivant :

min f (x) = (x1 − 4)2 + (x2 − 4)2


(
x1 + x2 ≤ 4
s.c.q.
x1 , x 2 ≥ 0

Comme le problème ne comporte que deux variables, on peut le résoudre de


manière graphique (voir figure 7.1). On trace d’abord la région réalisable. En-
suite, on trace les courbes d’isovaleurs de la fonction objectif. On peut montrer
ici qu’il s’agit de cercles concentriques autour du point (4, 4). Pour minimiser
la fonction objectif, il faut se situer sur le cercle de rayon minimum. Ce cercle
touche tout juste la région réalisable au point (x∗1 , x∗2 ) = (2; 2), qui n’est pas
un sommet de la région réalisable. Il faudra donc un algorithme basé sur un
autre principe que celui du Simplexe.

55
56 Chapitre 7. Les modèles non linéaires.

x2

0
1 2 3 4 5 6
x1

Figure 7.1 – Problème non linéaire

7.2 Conditions de Kuhn et Tucker


Nous considérons le problème de minimisation sous contraintes suivant :
min f (x)

 gk (x) ≤ 0, k = 1, 2, ...p (7.1)
s.c.q.
 hi (x) = 0, i = 1, 2, ...m
où f (x), hi (x), i = 1, 2, ...m et gk (x), k = 1, 2, ...p sont des fonctions d’une
seule variable à valeur réelle.
A titre d’illustration, considérons l’exemple suivant :
max e(x) = −2x21 − 2x1 x2 − x22 + 10x1 + 10x2
2 2

 x1 + x2
 ≤ 5
s.c.q. 3x1 + x2 ≤ 6


x1 + x2 = 5
Il se récrit sous la forme (7.1) de la manière suivante :
min f (x) = 2x21 + 2x1 x2 + x22 − 10x1 − 10x2
2 2

 g1 (x) = x1 + x2 − 5
 ≤ 0
s.c.q. g2 (x) = 3x1 + x2 − 6 ≤ 0
h1 (x) = x1 + x2 − 5 = 0


7.2. Conditions de Kuhn et Tucker 57

Pour écrire les conditions d’optimalité, on a besoin de la notion de dérivées


partielles.
Définition 7.1 La dérivée partielle d’une fonction par rapport à une va-
riable est obtenue en dérivant la fonction en considérant que toutes les autres
variables sont des constantes.
Illustrons ceci sur l’exemple de la fonction objectif :

f (x) = 2x21 + 2x1 x2 + x22 − 10x1 − 10x2

Les dérivées partielles se calculent comme suit :


∂f
= 4x1 + 2x2 − 10
∂x1
∂f
= 2x1 + 2x2 − 10
∂x2
Pour écrire les conditions d’optimalité, on a encore besoin du Lagrangien.
Définition 7.2 Le Lagrangien est obtenu en multipliant le membre de gau-
che de chaque contrainte d’égalité par un multiplicateur λi , le membre de
gauche de chaque contrainte d’inégalité par son multiplicateur µk et en ad-
ditionnant le tout à la fonction objectif :
p
X m
X
L(x) = f (x) + µk gk (x) + λi hi (x)
k=1 i=1

Écrivons le Lagrangien pour l’exemple :

L(x) = 2x21 + 2x1 x2 + x22 − 10x1 − 10x2


+µ1 (x21 + x22 − 5) + µ2 (3x1 + x2 − 6) + λ1 (x1 + x2 − 5)

Théorème 7.1 Conditions de Kuhn-Tucker. Soit x∗ un minimum local


pour
min f (x)

 gk (x) ≤ 0, k = 1, 2, ...p
s.c.q.
 hi (x) = 0, i = 1, 2, ...m
et supposons x∗ régulier pour les contraintes. Alors il existe des multiplicateurs
λ ∈ Rm et µ ∈ Rp tels que
∂L(x∗ )
= 0, ∀j = 1, ...n (7.2)
∂xj
µk gk (x∗ ) = 0, ∀k = 1, ...p (7.3)
µk ≥ 0, ∀k = 1, ...p (7.4)
58 Chapitre 7. Les modèles non linéaires.

En écrivant le Lagrangien, on passe d’un problème d’optimisation sous


contraintes à un problème sans contrainte. Les conditions d’optimalité pour
une fonction de plusieurs variables sans contrainte sont l’annulation de ses
dérivées partielles. Les conditions (7.2) ne sont rien d’autre que l’annulation
des dérivées partielles du Lagrangien.
Les conditions (7.3) sont les conditions de complémentarité disant que si
une contrainte n’est pas active, son multiplicateur µk doit être nul. Remarquez
aussi que les contraintes (7.3) peuvent s’interpréter en disant que L(x∗ ) =
f (x∗ ).
Illustrons ceci sur l’exemple suivant :

min f (x) = 2x21 + 2x1 x2 + x22 − 10x1 − 10x2


x21 + x22 − 5 ≤ 0

 g1 (x) =

s.c.q. g2 (x) = 3x1 + x2 − 6 ≤ 0
h1 (x) = x1 + x2 − 5 = 0

Pour rappel, le Lagrangien s’écrit de la manière suivante :

L(x) = f (x) + µ1 g1 (x) + µ2 g2 (x) + λ1 h1 (x)

= 2x21 + 2x1 x2 + x22 − 10x1 − 10x2


+µ1 (x21 + x22 − 5) + µ2 (3x1 + x2 − 6)
+λ1 (x1 + x2 − 5)

Les conditions de Kuhn et Tucker s’écrivent ici simplement :

∂L
= 4x1 + 2x2 − 10 + 2µ1 x1 + 3µ2 + λ1 = 0
∂x1
∂L
= 2x1 + 2x2 − 10 + 2µ1 x2 + µ2 + λ1 = 0
∂x2

µ1 g1 = µ1 (x21 + x22 − 5) = 0
µ2 g2 = µ2 (3x1 + x2 − 6) = 0

µ1 ≥ 0
µ2 ≥ 0

Pour illustrer l’utilité des conditions de Kuhn et Tucker, nous allons les
appliquer à un exemple de calcul d’équilibre de l’utilisateur, notion que nous
verrons au cours de Transport et environnement en Master 2.
7.3. Application au calcul d’équilibre de l’utilisateur 59

7.3 Application au calcul d’équilibre de l’uti-


lisateur
Considérons l’exemple de réseau simple illustré à la figure 7.2 où deux
chemins parallèles joignent le point d’entrée du réseau O au point de sortie D.

qOD = 5 x1
O D

x2

Figure 7.2 – Exemple d’équilibre des utilisateurs.

Notons x1 le flux de véhicules sur l’arc 1 et x2 , le flux sur le second axe.


Considérons les fonctions linéaires suivantes qui donnent les temps de traversée
des arcs en fonction du flux sur ceux-ci :

t1 (x1 ) = 2 + x1
t2 (x2 ) = 1 + 2x2

Le flot total entre O et D est qOD = 5 unités. De sorte que l’on peut écrire la
relation suivante :
x1 + x2 = 5
En effet, les cinq utilisateurs se répartissent entre les deux chemins possibles
entre l’origine O et la destination D.

Définition 7.3 On a atteint une solution d’équilibre de l’utilisateur si

• tous les chemins utilisés entre une même origine et une même destination
ont un temps de parcours identique ;

• tous les chemins non utilisés entre ces deux points ont un temps supérieur
ou égal à ce minimum.

Nous verrons au cours de “Transport et Environnement” que l’équilibre de


l’utilisateur peut être déterminé en résolvant le problème non linéaire suivant :
Z x1 Z x2
min z(x1 , x2 ) = t1 (x1 )dx1 + t2 (x2 )dx2
0 0
(
x1 + x2 = 5
scq
x1 , x2 ≥ 0
60 Chapitre 7. Les modèles non linéaires.

Nous allons calculer l’équilibre pour cet exemple en écrivant et en résolvant les
conditions de Kuhn et Tucker. Le problème est équivalent à :

x21
min f (x1 , x2 ) = 2x1 + + x2 + x22
 2
h(x) = x1 + x 2 − 5 = 0 ← λ






s.c.q. g1 (x) = −x1 ≤ 0 ← µ1



−x2 ≤ 0 ← µ2


 g2 (x) =

Ecrivons le Lagrangien :

L(x1 , x2 ) = f (x1 , x2 ) + λh(x) + µ1 g1 (x) + µ2 g2 (x)


x2
= 2x1 + 1 + x2 + x22
2
+λ(x1 + x2 − 5)
+µ1 (−x1 ) + µ2 (−x2 )

Écrivons les conditions de Kuhn et Tucker :


∂L(x)
= 2 + x∗1 + λ − µ1 = 0 (7.5)
∂x1
∂L(x)
= 1 + 2x∗2 + λ − µ2 = 0
∂x2

µ1 g1 (x) = µ1 (−x∗1 ) = 0 (7.6)


µ2 g2 (x) = µ2 (−x∗2 ) = 0

µ1 , µ2 ≥ 0 (7.7)

Supposons d’abord que x∗1 , x∗2 > 0. Donc, par les conditions de complémenta-
rité (7.6), µ1 = µ2 = 0. Les deux premières conditions (7.5) se récrivent :

(2 + x∗1 ) + λ = t1 (x∗1 ) + λ = 0
(1 + 2x∗2 ) + λ = t2 (x∗2 ) + λ = 0

On en déduit les temps de traversée des arcs sont identiques :

t1 (x∗1 ) = t2 (x∗2 )

Ce qui, dans le cas de l’exemple s’écrit : 2 + x∗1 = 1 + 2x∗2 . On peut utiliser la


relation liant x1 et x2 :
x 1 + x2 = 5
7.3. Application au calcul d’équilibre de l’utilisateur 61

pour en déduire les valeurs de x∗1 et x∗2 suivantes :

x∗1 = 3 ⇒ t1 (x∗1 ) = 2 + 3 = 5
x∗2 = 2 ⇒ t2 (x∗2 ) = 1 + 2 · 2 = 5

On a donc bien une solution d’équilibre de l’utilisateur car tous les chemins
utilisés entre l’origine et la destination ont des temps de parcours identiques.
Aucun usager ne peut arriver plus rapidement à destination en changeant de
chemin.
Si on avait supposé au départ que x∗1 > 0 et x∗2 = 0, les conditions de
complémentarité (7.6) auraient donné µ1 = 0. Les deux premières conditions
(7.5) se récrivent dans ce cas :

(2 + x∗1 ) + λ = t1 (x∗1 ) + λ =0
∗ ∗
(1 + 2x2 ) + λ − µ2 = t2 (x2 ) + λ − µ2 = 0

Ou encore :

t1 (x∗1 ) = −λ
t2 (x∗2 ) = −λ + µ2

On en déduit que :
t2 (x∗2 ) = t1 (x∗1 ) + µ2 ≥ t1 (x∗1 )
On en déduit le temps de traversée de l’arc 2, chemin qui n’est pas utilisé, est
supérieur au temps du chemin 1, qui est utilisé :

t2 (x∗2 ) ≥ t1 (x∗1 )

C’est précisément la seconde condition pour être à l’équilibre de l’utilisateur.


62 Chapitre 7. Les modèles non linéaires.

7.4 Exercices
7.1. Conditions de Kuhn et Tucker. On considère le problème non linéaire
suivant (on n’impose pas aux variables d’être non négatives) :

max f (x) = −x2 + 14x − 49 − y 2 + 6y − 9


(
x + y ≤ 2
s.c.q.
x + 2y ≤ 3

(a) Écrire le problème sous la forme du théorème de Kuhn et Tucker.


(b) Ecrire le Lagrangien.
(c) Ecrire les conditions de Kuhn et Tucker pour ce problème.
(d) Résoudre graphiquement en traçant les courbes d’iso-valeurs de la
fonction objectif et la région réalisable. Pour cela, compléter les
carrés pour la fonction objectif. Pour rappel, l’équation du cercle
centré en (a, b) et de rayon r est la suivante :

(x − a)2 + (y − b)2 = r2

(e) Vérifier si la solution déterminée graphiquement satisfait les condi-


tions de Kuhn et Tucker.

7.2. Kuhn et Tucker. Considérons le problème d’optimisation non linéaire


suivant :
min f (x1 , x2 ) = (x1 − 4)2 + (x2 − 4)2




2x1 + x2 ≤6 (1)
x1 + 2x2 ≤6 (2)


s.c.q.


 x1 ≥0 (3)

x2 ≥0 (4)

(a) Mettre le problème sous la forme du théorème de Kuhn et Tucker.


(b) Ecrire le Lagrangien.
(c) Ecrire les conditions de Kuhn et Tucker.
(d) Résoudre graphiquement. Pour rappel, l’équation du cercle centré
en (a, b) et de rayon r est la suivante : (x1 − a)2 + (x2 − b)2 = r2
(e) Cette solution vérifie-t-elle les conditions de Kuhn et Tucker ?
Chapitre 8

Résolution des modèles non


linéaires.

8.1 Introduction
L’idée de la méthode est la suivante. Il s’agit d’un algorithme d’ap-
proximations linéaires successives. Appliquons cette idée au problème
suivant dont les contraintes sont purement linéaires :

max f (x) = 5x1 − x21 + 8x2 − 2x22


(
3x1 + 2x2 ≤ 6
s.c.q.
x1 , x2 ≥ 0

En effet, c’est le type de problème que nous allons rencontrer pour la résolution
du problème d’affectation du trafic (voir cours de Transport et Environnement
en Master 2). L’objectif de ce problème est en effet, comme vu à la section 7.3,
non linéaire alors que ses contraintes sont purement linéaires.
Une itération de la méthode comporte les étapes suivantes :
a) Calcul de la direction. On calcule la direction de recherche en résolvant
un problème linéaire obtenu en remplaçant la fonction objectif par son
approximation linéaire (points 1 et 2 ci-dessous).

b) Calcul du pas. On calcule le pas à faire dans la direction en maximisant


la fonction f (x) le long de la direction déterminée en a) (points 3 et 4
ci-dessous).

8.2 La méthode de Frank-Wolfe


Nous partons du point initial x0 = (0, 0).
Itération 1 :

63
64 Chapitre 8. Résolution des modèles non linéaires.

1. Comme seul l’objectif est non linéaire, on va remplacer f (x) par son
approximation de Taylor limitée à l’ordre 1 :

∂f ∂f
f (x) ∼ f (0, 0) + (0, 0)(x1 − 0) + (0, 0)(x2 − 0)
∂x1 ∂x2

Calculons les dérivées partielles de f (x) :

∂f
= 5 − 2x1
∂x1
∂f
= 8 − 4x2
∂x2

Évaluons les dérivées partielles en x0 = (0, 0) :

∂f ∂f
= 5 − 2(0) = 5 = 8 − 4(0) = 8
∂x1 ∂x2

D’où l’approximation linéaire de la fonction en (0,0) :

g(x) = 5x1 + 8x2

2. On peut donc résoudre le problème linéaire :

max g(x) = 5 x1 + 8 x2
(
3x1 + 2x2 ≤ 6
s.c.q.
x1 , x2 ≥ 0

par l’algorithme du Simplexe en général. Comme, dans notre cas, il n’y


a que deux variables, ceci est fait graphiquement à la figure 8.1. La
solution optimale est le point que nous noterons :

x1LP = (0, 3).

3. Comme, plus on s’éloigne du point de départ x0 , plus l’approximation


linéaire g(x) s’éloigne de la fonction f (x), on a probablement été trop loin
en allant jusqu’au point x1LP . Cependant, en se dirigeant dans la direction
de x1LP , au début du mois, on pourra réduire f (x). On va déterminer le
pas optimal dans la direction :

x(α) = x0 + α(x1LP − x0 )
! ! ! !
x1 (α) 0 0−0 0
= +α =
x2 (α) 0 3−0 3α
8.2. La méthode de Frank-Wolfe 65

x2
P1
3
z = 5x 1 + 8x 2 = 24

1 z = 20

P2
P0
1 2 3 4 x1

Figure 8.1 – Méthode de Franck-Wolfe : itération 1

avec α ∈ [0, 1] qui maximise cette fois la vraie fonction :


h(α) = f (x0 + α(x1LP − x0 )).
On obtient donc le problème de maximisation unidimensionnelle en α :
max h(α) = 5x1 (α) − x21 (α) + 8x2 (α) − 2x22 (α)
= 24α − 18α2
dont le maximum est obtenu en annulant la dérivée :
h0 (α1∗ ) = 24 − 36α1∗ = 0
Ce qui donne : α1∗ = 2/3.
4. Mise à jour de x :
x1 = (0, 0) + 2/3 [(0, 3) − (0, 0)] = (0, 2)

Itération 2 :
1. Évaluation des dérivées partielles en x1 = (0, 2) :
∂f ∂f
= 5 − 2(0) = 5; = 8 − 4(2) = 0
∂x1 ∂x2
2. Résoudre le problème linéaire :
max z = 5 x1 + 0 x2
(
3x1 + 2x2 ≤ 6
s.c.q.
x1 , x2 ≥ 0
Ceci est fait à la figure 8.2. La solution optimale est x2LP = (2, 0).
66 Chapitre 8. Résolution des modèles non linéaires.

x2
P1
3

z=5 z = 5x 1 = 10
2

P2
P0
1 2 x1

Figure 8.2 – Méthode de Franck-Wolfe : itération 2.

3. Recherche unidimensionnelle :

x(α) = x1 + α(xLP − x1 )
! ! ! !
x1 (α) 0 2−0 2α
= +α =
x2 (α) 2 0−2 2 − 2α

On obtient donc le problème de maximisation unidimensionnelle :

max h(α) = 5x1 (α) − x21 (α) + 8x2 (α) − 2x22 (α)
= 10α − 4α2 + 16 − 16α − 2(4 − 8α + 4α2 )
= 8 + 10α − 12α2

Annulons la dérivée première :

h0 (α) = 10 − 24α = 0

5
La fonction est donc maximum pour α2∗ = .
12

4. Mise à jour de x :
! !
2 2α 5/6
x = =
2 − 2α 7/6
8.3. Interprétation graphique 67

8.3 Interprétation graphique


A la figure 8.3, on a illustré les deux premières itérations de la méthode de
Franck-Wolfe.
A la première itération, le point de départ est le point x1 = (0, 0). En
ce point, le gradient (c’est-à-dire le vecteur composé des dérivées partielles) de
la fonction objectif vaut :
!
∂f ∂f
, = (5, 8)
∂x1 ∂x2

On peut interpréter ce gradient comme étant la direction de plus grand ac-


croissement de la fonction objectif. On voit sur le graphique que ce vecteur est
perpendiculaire aux courbes d’iso-valeurs de l’objectif.

x2

(0,2)

7/6

(0,0) 5/6 (2,0) 3 4 5 6


x1

Figure 8.3 – Méthode de Franck-Wolfe : interprétation graphique.

La résolution du problème linéaire ayant donné le point (0,3), la direction


de recherche lors de la première itération est le segment de droite de (0,0)
vers (0,3). On voit que le pas optimal dans cette direction vaut : α1∗ = 2/3.
En effet, au delà du point (0,2), l’objectif décroît car on passe sur des ellipses
plus grandes. Lors de la deuxième itération 2, le point de départ : est le
point x1 = (0, 2). En ce point, le gradient de la fonction objectif vaut : (5,0).
Il est perpendiculaire aux courbes d’iso-valeurs de l’objectif. La direction de
recherche est le segment de (0,2) vers (2,0). La détermination du pas optimal
dans la direction donne : α2 = 5/12. En effet, au delà de (5/6,7/6), on redescend
pour l’objectif.
68 Chapitre 8. Résolution des modèles non linéaires.

8.4 Exercice
8.1. Résolution d’un problème non linéaire. Considérons le problème
suivant :
min f (x1 , x2 ) = x21 − 4x1 + x22 − 4x2 + 8




2x1 + x2 ≤6 (1)
x1 + 2x2 ≤6 (2)


s.c.q.


 x1 ≥0 (3)

x2 ≥0 (4)

Résoudre par la méthode de Franck-Wolfe en partant du point (0,0).

(a) Pour cela, calculez les dérivées partielles de la fonction objectif au


point de départ (0,0).
(b) Résoudre graphiquement le problème linéaire obtenu en remplaçant
la fontion objectif par son approximation linéaire :
(c) Ecrire les équations paramétriques du segment liant le point (0,0)
au point obtenu ci-dessus.
(d) Minimiser la fonction f (x1 , x2 ) le long de ce segment. Quel est le
point trouvé à la fin de l’itération 1 ?
Chapitre 9

Le solveur d’EXCEL.

9.1 Introduction
Nous illustrons son fonctionnement sur l’exemple tiré de Hillier et Lieber-
man [8] déjà utilisé au chapitre 2 pour illustrer le processus de formulation
d’un problème linéaire. En posant x1 , le nombre de chassis en aluminium fa-
briqués par semaine et x2 , le nombre de chassis en bois fabriqués par semaine,
on obtient la formulation suivante :
max z =
3x1 + 5x2
 x1

 ≤ 4
≤ 12




 2x2
s.c.q.

3x1 + 2x2 ≤ 18
x1 ≥ 0





≥ 0


x2

Nous allons maintenant résoudre le problème au moyen du solveur d’Excel.


La première chose à faire est de rentrer les données numériques du problème
et les formules de calcul de la fonction objectif ainsi que du membre de gauche
des contraintes. Pour la clarté du modèle, il est indispensable de mettre éga-
lement des commentaires. Comme le problème est linéaire, on peut rentrer les
coefficients numériques sous forme d’une matrice. On remarquera à la figure
9.1 que les coefficients d’une même équation ainsi que sa formule de calcul ont
été rangés dans une même ligne qui contient comme commentaire le nom de
l’équation (Capacité de l’atelier 1, Capacité de l’atelier 2, ...).
Remarquez ici, pour comprendre les formules, que l’on a choisi de placer la
valeur de x1 en cellule $B$2$, tandis que celle de x2 est placée en cellule $C$2.
La fonction objectif est calculée en cellule $D$3. Les membres de gauche des
contraintes sont calculés en cellules $D$4 à $D$6.
Il reste maintenant à indiquer à Excel, où se trouvent les variables, la
fonction objectif, le membre de gauche, de droite et le sens des contraintes.

69
70 Chapitre 9. Le solveur d’EXCEL.

Figure 9.1 – Feuille de calcul Excel.

Ceci peut être mis en œuvre en Excel (voir la copie d’écran 9.2) de la
manière suivante :

1. Dans le menu “Outils”, choisir le sous-menu “Solveur”.

2. Dans la zone “Cellule à définir”, mettre la référence de la cellule de calcul


de l’objectif (ici $D$3).

3. Dans la zone “Égale à”, choisir Max ou Min (ici Max).

4. Dans la zone “Cellules variables”, mettre les références des cellules conte-
nant les variables (ici $B$2:$C$2) .

5. Dans la zone “Contraintes”, choisir “ajouter une contrainte”. Le menu


suivant apparaît :

Cellule : Relation : Contrainte :

Pour chaque groupe de contraintes :

• Dans la zone “Cellule”, mettre les références des cellules contenant


les formules de calcul des membres de gauche (ici : $D$4 à $D$6). Il
faut donc avoir calculé ces membres de gauche au préalable.
• Dans la zone “Relation”, mettre le sens des contraintes (ici : <=).
• Dans la zone “Contrainte”, mettre les références des cellules conte-
nant les membres de droite (ici : $E$4 à $E$6). On peut également
directement entrer une valeur. Mais cela n’est pas à conseiller sauf
s’il s’agit de la valeur "0" qui n’est pas susceptible de varier.

6. Dans "Sélectionner une résolution" choisir "Simplex PL".


9.1. Introduction 71

Figure 9.2 – Paramètres du solveur.

7. Cliquer l’option "Rendre les variables sans contrainte non négatives" qui
correspond aux contraintes de positivité des variables.
8. Lancer la commande “Résoudre”.
La figure 9.3 présente la solution du solveur. Il est à remarquer qu’il
indique directement dans les cases des variables la valeur des variables. On
obtient bien la solution déterminée graphiquement (2,6) à laquelle correspond
une valeur maximum de l’objectif de 36.

Figure 9.3 – Solution du solveur.

de la manière suivante :
72 Chapitre 9. Le solveur d’EXCEL.

Plusieurs remarques sur les particularités du solveur d’Excel s’im-


posent ici :
1. On a rentré les trois contraintes en un bloc. On peut rentrer par groupe
les contraintes ayant même sens. Ainsi, dans l’exemple, on a rentré les
trois contraintes de capacités en bloc.

2. Excel détermine le nom d’une variable ou le nom d’une contrainte en


prenant le premier commentaire situé à gauche de la cellule et le premier
commentaire situé au dessus de la cellule de calcul de la variable ou de
la contrainte. Ainsi les noms des variables x1 et x2 seront respectivement
“Production de chassis en alu” et “Production de chassis en bois”.

3. Les contraintes de positivité des variables doivent être entrées en sélec-


tionnant l’option "rendre les variables sans contrainte non négatives".

4. Seules les variables non calculées (les variables indépendantes du modèle)


doivent être rentrées dans la section variables. Ainsi z n’est pas rentrée
dans les cellules variables pour Excel, sans quoi Excel considérerait qu’il
s’agit d’une variable indépendante et effacerait sa formule de calcul.

5. Si le modèle est linéaire, on a tout intérêt à sélectionner l’option “Modèle


supposé linéaire”, ce qui déclenchera l’algorithme du Simplexe plutôt
qu’un algorithme général de programmation non linéaire.

9.2 Les rapports du solveur


Lorsque le solveur a terminé, soit qu’il ait trouvé la solution optimale, soit
qu’il ne parvienne pas à en trouver (problème non réalisable ou non convergence
de l’algorithme de résolution), la boîte de dialogue illustrée à la figure 9.4
apparaît (ici le message annonce l’optimalité de solution).

Figure 9.4 – Rapports possibles du solveur.

Elle laisse le choix entre garder dans les cellules variables la solution obtenue
par le solveur soit rétablir la solution initiale (généralement zéro partout).
9.2. Les rapports du solveur 73

Cette boîte permet également de générer à la demande trois types de


rapport : le rapport des réponses, de sensibilité et des limites.

9.2.1 Le rapport des réponses


Le rapport des réponses (voir figure 9.5) fournit :

• les informations sur l’objectif : la référence de la cellule, le nom, la valeur


originale et finale de la “cellule cible (à Maximiser)” ;

• les informations sur les variables : la référence de la cellule, le nom, la


valeur originale et finale des “cellules variables” ;

• les informations sur les contraintes : la référence de la cellule, le nom, la


valeur finale du membre de gauche, la formule, son status (active ou non
à la solution finale), ainsi que la marge (valeur de l’écart entre les deux
membres de l’inégalité).

Figure 9.5 – Rapports des réponses.

Rappelons que pour déterminer le nom, Excel fait la concaténation du


premier commentaire rencontré dans la même ligne et du premier commentaire
rencontré dans la même colonne. Ceci est particulièrement utile si l’on a des
variables à deux indices comme dans un problème de transport. En effet, les
variables seront stockées dans un tableau où les lignes correspondront aux
origines et les colonnes aux destinations. Il suffira de mettre “de i” à gauche
74 Chapitre 9. Le solveur d’EXCEL.

de la ligne et “vers j” en haut de la colonne pour que le nom de la variable soit


“de i vers j” .

9.2.2 Le rapport de sensibilité


Le rapport de sensibilité (voir figure 9.6) fournit :

Figure 9.6 – Rapport de sensibilité.

• les informations sur les variables : la référence de la cellule, le nom et la


valeur finale de la variable, le coût réduit, le coefficient objectif, l’accrois-
sement et la diminution maximale de ce coefficient avant qu’une variable
ne change de valeur.
Le coût réduit mesure l’effet sur l’objectif de forcer à un la valeur
d’une variable nulle. Pour un produit non fabriqué, le coût réduit
s’interprète donc comme la perte de profit si on en fabrique une unité.

• les informations sur les contraintes : la référence de la cellule, le nom et


la valeur finale du membre de gauche de la contrainte, le prix caché, la
valeur du membre de droite, l’augmentation et la diminution maximum
de ce membre de droite telle que le prix caché reste le même.
Le prix caché mesure l’accroissement de l’objectif par unité d’ac-
croissement du membre de droite de la contrainte. Ce prix caché
s’interprète donc comme l’augmentation de profit si on dispose d’une
heure supplémentaire dans l’atelier. C’est donc le prix maximum que
l’on est prêt à payer pour cette heure.

Le rapport des limites est sans objet dans le cadre de ce cours.


9.3. Exercices 75

9.3 Exercices
9.1. Organisation de la distribution d’eau. Une agence pour l’eau est
chargée de la fourniture des agglomérations situées dans son district. Le
captage est possible auprès de 3 sources d’offre maximum donnée. Il y a
quatre villes à servir dans ce district. Chaque ville, a des besoins vitaux
en eau repris en avant dernière ligne du tableau 9.1. La compagnie de
transport d’eau est obligée de fournir ces quantités au minimum. Chaque
ville, a une demande maximum donnée en dernière ligne du tableau 9.1).
Le coût unitaire de fourniture dépend à la fois du lieu de production et
du lieu de consommation de l’eau. On se demande comment organiser

Coût de Destination Offre


fourniture Ville Ville Ville Ville de la
venant de 1 2 3 4 source
Source 1 16 13 22 17 50
Source 2 14 13 19 15 60
Source 3 19 20 23 - 50
Besoin 30 70 0 10
Demande 50 70 30 60

Table 9.1 – Coût de fourniture


le transport de toute l’eau disponible de sorte à assurer à toutes les
villes, leurs besoins minimaux tout en minimisant les coûts de transport
totaux pour le district
(a) Représenter par un graphique de réseau.
(b) Formuler le problème de transport de l’eau.
(c) Résoudre au moyen du Solveur d’Excel.
9.2. Interprétation de la solution d’Excel. Pour l’exercice 4.2 du chapitre
4 dont les données sont rappelées au tableau 9.2
on a procède à la résolution au moyen du solveur d’Excel qui fournit le
rapport de sensibilité donné à la figure 9.7.

(a) Donner la solution optimale obtenue par le solveur d’Excel.


(b) On constate que l’usine d’Anvers n’alimente pas le client à Namur.
De quel montant le coût unitaire de transport entre Anvers et Na-
mur devrait-il être réduit pour que ce transport soit rentable ?
(c) L’augmentation de la capacité de l’usine d’Anvers serait-elle béné-
fique pour l’entreprise ? Justifiez brièvement votre réponse.
76 Chapitre 9. Le solveur d’EXCEL.

Coût de Destination Offre de


de transport Bruxelles Charleroi Namur Ostende l’usine
d’Anvers 100 150 180 90 25
de Liège 120 170 80 210 15
de Mons 70 30 90 140 15
Demande 20 12 9 14

Table 9.2 – Problème de livraisons de marchandises

Figure 9.7 – Rapport de sensibiltié


Chapitre 10

Interprétation de la solution

10.1 Interprétation économique


Nous allons illustrer différents aspects de l’interprétation économique de la
solution sur l’exemple suivant de planification de la production tiré de Williams
[19]. Une usine peut produire cinq produits (notés PROD1 à PROD5). La
marge bénéficiaire unitaire, c’est-à-dire la différence entre le prix de vente et
le coût de production d’un produit, est donnée pour chacun des produits au
tableau 10.1. Chaque produit nécessite le passage par trois étapes de fabrica-

Produit PROD1 PROD2 PROD3 PROD4 PROD5


Marge 550 600 350 400 200

Table 10.1 – Marge unitaire par produit.

tion. Les temps requis à chaque étape sont donnés pour chaque produit au
tableau 10.2. Enfin, il faut tenir compte des ressources en facteurs disponibles

Produit PROD1 PROD2 PROD3 PROD4 PROD5


Étape 1 12 20 0 25 15
Étape 2 10 8 16 0 0
Étape 3 20 20 20 20 20

Table 10.2 – Temps de fabrication (en heures par produit).

données au tableau 10.3. Les deux premières étapes sont effectuées sur machine
tandis que la troisième ne nécessite que l’intervention de main d’œuvre. En ce
qui concerne les deux premières étapes, l’usine travaille en deux pauses de huit
heures par jour, et ceci, au maximum six jours par semaine. En ce qui concerne
la troisième, chaque personne travaille une pause de 8 heures par jour et ceci
au maximum 6 jours par semaine.

77
78 Chapitre 10. Interprétation de la solution

Étape Ressources heures par jour jours par semaine


Étape 1 3 machines 16 6
Étape 2 2 machines 16 6
Étape 3 8 personnes 8 6

Table 10.3 – Ressources en facteurs

La question que se pose le gestionnaire de l’usine est la suivante. Quelles


sont les quantités à fabriquer de chaque produit pour maximiser le profit net ?
En notant x1 à x5 , les productions hebdomadaires des cinq produits, le pro-
blème se formule comme suit :

maxz = 550x1 + 600x2 + 350x3 + 400x4 + 200x5






 12x1 +20x2 +0x3 +25x4 +15x5 ≤ 288


+0x5 ≤ 192


 10x1 +8x2 +16x3 +0x4
s.c.q.
20x1 +20x2 +20x3 +20x4 +20x5 ≤ 384







x1 , x2 , x3 , x4 , x5 ≥ 0

La solution optimale de ce problème linéaire fournie par Excel (voir le rap-


port des réponses d’Excel présenté à la figure 10.1) est la suivante :

Figure 10.1 – Rapport des réponses d’Excel


10.1. Interprétation économique 79

x∗1 = 12; x∗2 = 7, 2; x∗3 = x∗4 = x∗5 = 0.

Tandis que la valeur optimale de l’objectif est :

z ∗ = 10 920

Les contraintes actives à l’optimum sont la première (capacité de pro-


duction à l’étape 1 épuisée) et la troisième (capacité également épuisée). Ceci
est confirmé par les valeurs des variables d’écart à l’optimum fournies par le
rapport des contraintes d’Excel présenté à la figure 10.1. En notant si la valeur
de la variable d’écart de la ième contrainte, on a que :

s∗1 = 0
s∗2 = 14, 4
s∗3 = 0

Voici deux exemples de questions économiques que l’on peut se poser :

1. Les produits 3, 4 et 5 sont vendus à des prix trop faibles par rapport aux
deux autres. De combien augmenter leur prix de vente, ou de combien
réduire leur coût de production, pour les rendre attractifs ?

2. Combien rapporterait en supplément de profit une heure supplémentaire


pour l’étape 1, pour l’étape 2, ou en main d’œuvre ?

Figure 10.2 – Rapport de sensibilité d’Excel

Les réponses à ces deux types de questions sont fournies par l’interpréta-
tion économique de la solution optimale. La figure 10.2 reprend le rapport de
sensibilité d’Excel.
80 Chapitre 10. Interprétation de la solution

10.1.1 Interprétation des coûts réduits


Pour la première question, l’opposé des coûts réduits fournit l’augmen-
tation de prix nécessaire. En effet, les coûts réduits des variables à zéro s’in-
terprètent, en général, comme indiqué ci-dessous.
Les coûts réduits des variables à zéro s’interprètent comme l’aug-
mentation de l’objectif pour une augmentation unitaire de la
valeur de la variable à zéro.
Ici, à l’optimum, ces coûts réduits, notés respectivement d3 , d4 et d5 , sont
négatifs, traduisant le fait que si la production de ces biens était positive, elle
diminuerait le profit d’autant. Le rapport de sensibilité (voir figure 10.2) donne
les valeurs suivantes :
d3 = −125, 00
d4 = −231, 25
d5 = −368, 75.
Pour qu’il devienne intéressant de les produire, il faut donc augmenter leur
prix d’au moins l’opposé de cette quantité. Ici donc, l’opposé des coûts ré-
duits s’interprète comme l’augmentation minimale de prix pour que la
production devienne intéressante.
Remarquez qu’il y a une limite de validité de l’interprétation des
coûts réduits : cette interprétation reste valable tant que la solution optimale
ne change pas. Le rapport de sensibilité d’Excel fournit ces limites sous les
colonnes "augmentation admissible" et "diminution admissible".

10.1.2 Interprétation des prix cachés


Le rapport de sensibilité d’Excel fournit également les prix cachés sous la
colonne "ombre coût". Ceux-ci s’interprêtent de la manière suivante.
Le prix caché d’une contrainte s’interprète comme l’augmentation de
l’objectif pour une augmentation unitaire du membre de droite
de la contrainte.
Ainsi dans l’exemple ci-dessus, la valeur des prix cachés, notées yi∗ , i
=1,2,3, donnés dans le rapport de sensibilité d’Excel (voir figure 10.2), valent :
y1∗ = 6, 25;
y2∗ = 0;
y3∗ = 23, 75.
Ils fournissent l’effet marginal d’une augmentation de capacité des trois ate-
liers. En effet, en général, le prix caché associé à une contrainte fournit direc-
tement l’augmentation de la fonction objectif pour une augmentation unitaire
du membre de droite de la contrainte. Ici justement, le membre de droite est
le nombre d’heures de travail disponibles à chaque étape de production.
10.2. Analyse de sensibilité 81

10.2 Analyse de sensibilité


Dans cette section, nous allons voir comment déterminer les intervalles de
variation maximum d’un coefficient (du membre de droite ou de l’objectif) tels
que l’interprétation des coûts réduits ou des prix cachés restent valables. C’est
l’objet de ce que l’on appelle l’analyse de sensibilité.

10.2.1 Sensibilité aux coefficients objectifs


La question qui se pose ici est la suivante : Dans quelles limites peut varier
un coefficient objectif sans que la solution optimale ne change ?
Le rapport de sensibilité dans sa partie "Cellules variables" (voir figure
10.2), fournit l’augmentation et la diminution admissible du coefficient
objectif telles que la solution optimale du problème reste la même.
Ainsi, si on note ci , le coefficient objectif de la variable xi , on peut lire les
intervalles de variations maximum des marges unitaires des produits :

c1 ∈ [550 − 50; 550 + 50]


c2 ∈ [600 − 50; 600 + 833]
c3 ∈ [350 − ∞; 350 + 125]
c4 ∈ [400 − ∞; 400 + 231, 25]
c5 ∈ [200 − ∞; 200 + 368, 75]

La solution optimale du problème reste constante tant que l’aug-


mentation ou la diminution du coefficient objectif de la variable
reste dans le domaine admissible.
Seul le profit changera.

10.2.2 Sensibilité aux coefficients du membre de droite


Pour rappel, l’effet sur l’objectif d’une variation unitaire du membre de
droite d’une contrainte est donné par le prix caché yi de la contrainte.
Le prix caché d’une contrainte reste constant tant que l’augmentation
ou la diminution du membre de droite de la contrainte reste
dans le domaine admissible.
On observe dans le rapport de sensibilité que les variations maximum
des membres de droites telles que les prix cachés restent les mêmes
sont les suivantes :

b1 ∈ [288 − 57, 6; 288 + 96]


b2 ∈ [192 − 14, 4; 192 + ∞]
b3 ∈ [384 − 96; 384 + 221, 358]
82 Chapitre 10. Interprétation de la solution

10.3 Exercices
10.1. Analyse de sensibilité. Une petite entreprise spécialisée en poterie a
concentré sa production sur deux produits : le bol et la chope. Les deux
ressources de base utilisées pour produire ces deux articles sont la main
d’œuvre et l’argile. Disposant de ces deux ressources en quantité limitées,
l’entreprise désire savoir combien de bols et de chopes elle doit produire
pour maximiser son bénéfice net. L’argile est disponible à raison de 120
livres par jour tandis que 40 heures de travail sont disponibles chaque
jour. Les quantités de ressource par produit ainsi que les marges unitaires
sont données dans le tableau ci-dessous.
Ressources nécessaires Marge
Produit Travail Argile Profit
(heures/unité) (livres/unité) ($/unité)
Bol 1 4 40
Chope 2 3 50

On veut déterminer le plan de production optimal.

(a) Formulez d’abord le problème.


(b) La résolution avec le solveur d’Excel conduit au rapport de sensibi-
lité de la figure 10.3. Donnez la solution optimale d’Excel.

Figure 10.3 – Production de poteries

(c) Analyse de sensibilité au coefficient objectif. En notant c1 le coeffi-


cient objectif de la variable x1 , déterminez les valeurs minimum et
maximum de c1 telles que la solution optimale reste la même.
(d) Analyse de sensibilité au coefficient du membre de droite. En notant
b2 la quantité d’argile, déterminez les valeurs minimum et maximum
de b2 telles que le prix caché de la contrainte reste le même.
(e) Quel profit obtiendrait-on d’une heure de plus par jour ?
10.3. Exercices 83

10.2. Production et stockage de produits alimentaires. Un manufactu-


rier produit 4 produits alimentaires : P1, P2, P3 et P4. Ces produits
requièrent l’intervention de 3 ateliers distincts : A1, A2, A3. Le tableau
ci-dessous présente les données relatives aux durées de production et aux
disponiblilités de ces ateliers au cours du prochain mois.
Atelier Temps requis (h/caisse) Heures
P1 P2 P3 P4 disponibles
A1 0,12 0,15 0,10 0,09 2760
A2 0,10 0,09 0,15 0,10 2500
A3 0,05 0,04 0,04 0,05 2760
Ce qui est fabriqué au cours du mois n’est livré qu’à la fin du mois
suivant. En effet, une période d’un mois de mûrissement et d’affinage
est requise pour que les produits atteignent leur pleine saveur. L’espace
d’entreposage requis pour une caisse de chaque produit ainsi que le profit
net par caisse sont donnés dans le tableau ci-dessous.
P1 P2 P3 P4
3
Espace (m /caisse) 0,27 0,28 0,29 0,24
Profit ($/caisse) 2,20 1,90 2,25 1,71
Le manufacturier dispose de 12.000 m3 d’espace d’entreposage. On de-
mande de modéliser ce problème sous la forme d’un problème linéaire
sachant que le manufacturier cherche à maximiser son profit net.
(a) Formulez le problème
(b) Le problème formulé ci-dessus est résolu au moyen du solveur d’Ex-
cel. On obtient le rapport de sensibilité suivant.
84 Chapitre 10. Interprétation de la solution

Donnez la solution optimale obtenue par Excel.


(c) De combien faut-il réduire le coût de production du deuxième pro-
duit pour qu’il devienne rentable ? Donnez une réponse numérique
et expliquez votre raisonnement.
(d) Analyse de sensibilité au coefficient objectif. On envisage une aug-
mentation du prix de vente du produit 1 de 30 centimes. Est-ce que
cela va modifier la solution optimale ?
(e) Combien rapporterait en supplément de profit une heure supplémen-
taire dans l’Atelier 1 ?
(f) Analyse de sensibilité au coefficient du membre de droite. Ce béné-
fice de l’heure supplémentaire est-il valable quelle que soit l’augmen-
tation du membre de droit de la contrainte de capacité de l’atelier
1?
Bibliographie

[1] BAGLIN Gérard, Olivier BRUEL, Laoucine KERBACHE, Joseph


NEHME et Christian VAN DELFT, Management Industriel et Logistique,
6ème Edition, Economica, Paris, 2013.

[2] BROOKE Anthony, David KENDRICK et Alexander MEERAUS, GAMS


User’s guide Release 2.25, The Scientific Press, San Francisco, 1992.

[3] EXCEL, Guide de l’utilisateur, Microsoft, 1992.

[4] FORD L.K. et D.K. FULKERSON, Flows in networks, Princeton Univer-


sity Press, Princeton, New Jersey, 1962.

[5] GIARD Vincent, Gestion de la production et des flux, 3ème Édition, Eco-
nomica, Paris, 2003.

[6] GUERET Christelle, Christian PRINS et Marc SEVAUX, Applications of


optimization with XPRESS-MP, Eyrolles, Paris, 2000.

[7] HEIZEZ Jay, Barry RENDER, Operations Management, 8ème édition,


Pearson Education, Upper Saddle River, 2006.

[8] F.S. HILLIER et G.S. LIEBERMAN, Introduction to Operations Re-


search, 10ème édition, Mac Graw-Hill Education, New-York, 2015.

[9] F.S. HILLIER et M.S. HILLIER et G.S. LIEBERMAN, Introduction to


Management Sciences, 6ème édition, Mac Graw-Hill Education, New-
York, 2019.

[10] Lee KRAJEWSKI, Manoj MALHOTRA et Larry RITZMAN, Operations


Management, 8ème édition, Pearson Education, Upper Saddle River, 2007.

[11] LACAZE Dominique, Optimisation appliquée à la gestion et à l’économie,


Economica, 1990.

[12] D. G. LUENBERGER and Y. YE, Linear and Nonlinear Programming,


Third Edition, Springer, New-York, 2008.

85
86 Bibliographie

[13] Y. NORBERT, R. OUELLET et R. PARENT, La recherche opération-


nelle, 3ème édition,Gaëtan Morin Éditeur, Montréal-Paris, 2002.

[14] Patrick ROGER, Mathématiqes pour l’Economie et la Gestion, Pearson


Education, Paris, 2006.

[15] Bernard ROY et Denis BOUYSSOU, Aide multicritère à la décision :


Méthodes et cas, Economica, 1993.

[16] SHEFFI Yosef, Urban Transportation Networks : Equilibrium Analy-


sis with Mathematical Programming Methods, Prentice-Hall, New Jersey,
1985.

[17] Hamdy TAHA, Operations Resaerch : an Introduction, 8ème édition, Pear-


son Education, Upper Saddle River, 2007.

[18] Ph. VINCKE, L’aide multicritère à la décision, Editions Ellipses, 1989.

[19] H.P. WILLIAMS, Model building in Mathematical Programming, John


Wiley, 2013.

[20] M.P. WILLIAMS, Model solving in Mathematical Programming, John Wi-


ley, 1992.

[21] XPRESS-MP, User Guide and Reference Manual, Release 10, Dash Asso-
ciate, 1997.
Annexe A

Formulaire

A.1 Le calcul des dérivées


Ladérivée d’une fonction f (x) à valeurs réelles est notée f 0 (x). Voici quelques
exemples de dérivées :

f (x) = 3 f 0 (x) = 0;
f (x) = 4x f 0 (x) = 4;
f (x) = 5x2 f 0 (x) = 5 · 2x;
f (x) = 6x3 f 0 (x) = 6 · 3x2 .

En général, on peut montrer la formule suivante :

f (x) = xn , f 0 (x) = nxn−1 (A.1)

A.2 Les dérivées partielles


La dérivée partielle d’une fonction f (x1 , x2 , ..., xn ) par rapport à une va-
∂f (x)
riable xi est notée . Elle est obtenue en considérant que les autres va-
∂xi
riables sont des constantes. Par exemple,

f (x1 , x2 ) = 3x1 + 4x1 x2 + 5x21 x22


∂f (x)
= 3 + 4x2 + 10x1 x22
∂x1
∂f (x)
= 4x1 + 10x21 x2
∂x2

87
88 Annexe A. Formulaire

A.3 Le calcul des intégrales


On note l’intégrale de a à b de la fonction f (x), de la manière suivante :
Z b
f (x)dx
a

Pour calculer cette intégrale, il convient d’abord de calculer l’intégrale de f (x)


qui est la fonction F (x) telle qu’en la dérivant, on obtienne f (x). Ensuite, on
évalue F (x) en b moins F (x) en a. On note de la manière suivante :
Z b
f (x)dx = [F (x)]ba = F (b) − F (a) avec F 0 (x) = f (x)
a

Par exemple :
f (x) = 3 F (x) = 3x;
2
f (x) = 4x F (x) = 4 x2 ;
x3
f (x) = 5x2 F (x) = 5 · 3
;
x4
f (x) = 6x3 F (x) = 6 · 4
.
En général, on peut montrer la formule suivante :
xn+1
f (x) = xn , F (x) = (A.2)
n+1
Par exemple :
Z 2 h i2
(3 + 2x)dx = 3x + x2 = 10 − 4 = 6.
1 1

A.4 Solution d’une équation du second degré


Considérons l’équation du second degré suivante :

ax2 + bx + c = 0

On calcule d’abord le déterminant de l’équation :

b2 − 4ac

Si ce déterminant est négatif, il n’y a pas de racine réelle. Dans le cas contraire,
on peut calculer les deux racines suivantes :
√ √
−b − b2 − 4ac −b + b2 − 4ac
x1 = et x1 =
2a 2a
Il est clair qu’il n’y a qu’une seule racine si le déterminant est nul.
A.5. Equation d’un cercle 89

A.5 Equation d’un cercle


L’équation du cercle centré en (a, b) et de rayon r est la suivante :

(x1 − a)2 + (x2 − b)2 = r2

A.6 Conditions de Kuhn et Tucker


Considérons le problème de minimisation sous contraintes suivant :

min f (x)


 gk (x) ≤ 0, k = 1, 2, ...p
s.c.q.


hi (x) = 0, i = 1, 2, ...m

où f (x), hi (x), i = 1, 2, ...m et gk (x), k = 1, 2, ...p sont des fonctions de plu-


sieurs variables à valeur réelle.

Définition A.1 Le Lagrangien est obtenu en multipliant le membre de gau-


che de chaque contrainte d’égalité par un multiplicateur λi , le membre de
gauche de chaque contrainte d’inégalité par son multiplicateur µk et en ad-
ditionnant le tout à la fonction objectif :
p
X m
X
L(x) = f (x) + µk gk (x) + λi hi (x)
k=1 i=1

Théorème A.1 Conditions de Kuhn-Tucker. Soit x∗ un minimum local


pour le problème

min f (x)

 gk (x) ≤ 0, k = 1, 2, ...p
s.c.q.
 hi (x) = 0, i = 1, 2, ...m

et supposons x∗ régulier pour les contraintes.


Alors il existe des multiplicateurs λ ∈ Rm et µ ∈ Rp tels que

∂L(x∗ )
(1) = 0, ∀j = 1, ...n
∂xj

(2) µk gk (x∗ ) = 0, ∀k = 1, ...p

(3) µk ≥ 0, ∀k = 1, ...p
90 Annexe A. Formulaire

A.7 Méthode de Franck Wolfe


1. Comme seul l’objectif est non linéaire, on va remplacer f (x) par son
approximation de Taylor limitée à l’ordre 1 :
∂f ∂f
f (x) ∼ f (0, 0) + (0, 0)(x1 − 0) + (0, 0)(x2 − 0)
∂x1 ∂x2

2. On résout le problème linéaire où l’objectif est remplacé par :


∂f ∂f
z= x1 + x2
∂x1 ∂x2

On obtient comme solution de ce problème linéaire : x1LP ,

3. On détermine les équations du segment joignant (0,0) à x1LP :

x(α) = x0 + α(x1LP − x0 )

4. On détermine le pas optimal dans la direction en optimisant la vraie


fonction :
h(α) = f (x1 (α), x2 (α))
avec α ∈ [0, 1] qui