Cours
Cours
Cours
com
Abdelouahed Kouibia
1 Formulation 4
1. Introduction 4
2. Formulation d’un problème de maximisation 4
3. Formulation d’un problème de minimisation 8
4. Formulation d’un problème linéaire 10
2 Méthode graphique 11
1. Quelques rappels de géométrie 11
2. Problème de maximisation 13
3. Problème de minimisation 18
1. Introduction
L’objectif que poursuit l’entreprise est de maximiser le profit qu’elle pourra tirer, par
jour, de ces 2 produits en utilisant au mieux ses ressources.
Le tableau suivant résume les données afférentes à ce problème de production :
1 Formulation 5
A B Disponible
m 1h 2h 8h
p 2 kg 2 kg 10 kg
q 9 kg 4 kg 36 kg
Profit unitaire 50 dh 60 dh
Quelles sont les informations dont doit disposer le directeur de l’entreprise pour
considérer que son problème est résolu ? Il suffit de connaître la quantité du
produit A et la quantité du produit B à fabriquer quotidiennement, n’est-ce pas ?
Agissons comme si ces quantités nous étaient connues et dénotons-les par :
(50 x1 + 60 x2 ) dh
z = 50 x1 + 60 x2
Maximiser z où z = 50 x1 + 60 x2
1 Formulation 6
Max z = 50 x1 + 60 x2
Temps d’utilisation de m 6 8.
Or, ce temps utilisé est la somme des heures consacrées à chacun des types de
produits. Pour le produit A, le temps nécessaire à la fabrication de la quantité x1
se calcule ainsi :
x1 + 2x2 6 8 (m)
On emploie le signe « 6 », et non « = », car il n’est pas obligatoire que toutes les
heures disponibles soient utilisées pour la fabrication des produits A et B, bien qu’il
ne soit pas interdit qu’il en soit ainsi.
Contraintes relatives aux matières premières En s’inspirant de la contrainte
relative à la machine, ces contraintes s’écrivent tout naturellement :
x1 , x2 > 0,
1 Formulation 7
Afin de ramener les contraintes à des égalités (qui sont plus faciles à traiter que les
inégalités), on introduit des variables d’écart. Ces variables seront toujours, comme
les variables de décision x1 et x2 , positives ou nulles.
Après l’ajout des variables d’écart x3 , x4 et x5 relatives aux contraintes (m), (p) et
(q), nous obtenons la formulation :
Max z = 50x1 + 60x2
x1 + 2x2 + x3 = 8
(P) 2x1 + 2x2 + x4 = 10
9x1 + 4x2 + x5 = 36
x1 , x 2 , x 3 , x 4 , x 5 > 0
fournira les valeurs optimales des quantités xj à produire de chacun des produits ;
la fonction économiques représente le gain total ; le premier membre de chaque
contrainte (Mi ) représente le temps total d’utilisation de la machine Mi . Les valeurs
des variables d’écart associées à chacune de ces contraintes correspondent au temps
disponible non utilisé de chaque machine.
P Q Besoins minimaux
A 2 1 16
B 1 1 12
C 1 3 18
Coût unitaire 20 dh 40 dh
Chacun des 3 éléments nutritifs à considérer donne lieu à une contrainte, qui vise à
exiger que les aliments, dans leur ensemble, satisfassent les besoins quotidiens du
troupeau. On obtient :
Les contraintes ci-dessus emploie le signe « > » parce qu’il faut respecter les
exigences de consommation minimales, mais que celles-ci peuvent être dépassées.
Enfin, il faut pas oublier qu’on peut pas acheter des quantités négatives de P ou Q :
x1 , x 2 > 0
p lan
mi
De
o
p lan
e mi x
D
Chaque contrainte détermine l’un des deux demi-plans (P1 ) ou (P2 ) que l’on
trouvera en vérifiant si un point particulier (l’origine (0, 0) par exemple) est contenu
2 Méthode graphique 12
D
D
o x o x
(Dp ) a0 x1 + b0 x2 = p
Cette droite est appelé droite d’iso-valeur de fonction z. Elle représente les points
du plan qui donnent à z la valeur p.
On s’intéresse à la famille des droites (Dp ) (p paramètre). Ce sont toutes des droites
a
parallèles de pente : − , que l’on peut écrire :
b
a0 p
x2 = − x1 + (si b0 6= 0).
b0 b0
p
Ici yp = est l’ordonnée à l’origine de la droite (Dp ). Ainsi, on a :
b0
D
B
D D
A
C
o x o x
D
B
D D
A
C
o x o x
Tous les points sur une même droite assurent la même valeur pour z. Quand on
passe d’une droite à une autre, les valeur de z varient : ils augmentent si on se
déplace dans le sens du vecteur normal − →n (a0 , b0 ) au droites iso-valeurs : d’où la
signification de la flèche indiquant le « sens des z croissants ».
2. Problème de maximisation
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 profits unitaires, les
temps de fabrication de chacun des produits dans chacun des ateliers ainsi que les
capacités hebdomadaires de ces ateliers sont donnés au tableau suivant :
Quelles sont les quantités de chassis que l’entreprise devrait produire par semaine,
si elle veut maximiser son profit ? Les variables de décision seront :
Les contraintes x1 > 0 et x2 > 0 signifient que tous les points (x1 , x2 ) représentant
des solutions acceptables doivent être dans le premier quadrant, soit à droite de
2 Méthode graphique 15
ax1 + bx2 6 c
x1 = 4 (1)
8 8
Droite D1 Droite D1
6 6
4 4
2 2
0 2 4 6 8 x1 0 2 4 6 8 x1
droite associée à la 1ère contrainte prise en compte de la 1ère contrainte
Puisque toutes les contraintes du modèle linéaire sont de la même forme, il suffit
de les prendre en considération tour à tour, en procédant, pour chaque contrainte,
comme suit :
— choisir 2 points de la droite associée. Afin de faciliter les calculs, on peut choisir
les deux points ayant chacun une coordonnée nulle. Puis tracer cette droite ;
— déterminer de quel côté de la droite associée la contrainte est satisfaite. Pour
repérer rapidement le bon côte, il suffit de regarder si le point (0, 0) est du bon
côte ;
— tracer une flèche pointant vers ce côté.
x2 = 6 (2)
2 Méthode graphique 16
x2 (1) x2 (1)
8
<Points où (A1)
8 8
:est respectée mais
(A2) ne l’est pas
6 6
(2) (2)
4 4
2 2
0 2 4 6 8 x1 0 2 4 6 8 x1
effet de la 2ème contrainte prise en compte des contraintes (A1) et (A2)
x2 (1) x2 (1)
8 8
6 6
(2) (2)
4 4
2 (3) 2 (3)
0 2 4 6 8 x1 0 2 4 6 8 x1
effet de la 3ème contrainte prise en compte de toutes les contraintes
L’ensemble des points qui n’ont pas été éliminés après la prise en considération de
toutes les contraintes constitue la région réalisable. En économie, cet ensemble est
aussi appelé l’ensemble de production.
2 Méthode graphique 17
La région réalisable que nous venons de construire ne détermine pas une solution,
mais tout un domaine contenant un nombre infini de points. Il va falloir repérer
un plan de production optimal, c’est-à-dire un point (x∗1 , x∗2 ) vérifiant toutes les
contraintes et permettant à z de prendre sa plus grande valeur sur la région
réalisable.
Pour cela, on va considérer des valeurs successives de la fonction économique :
z = p.
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 droites d’isoprofits).
Tracer une première droite d’isoprofit permet d’obtenir une illustration de la pente
de z. En tracer une deuxième permet de déterminer la direction selon laquelle
la valeur de z augmente. Ainsi, en augmentant petit à petit la valeur de p dans
l’équation (4), on obtient des droites parallèles, chacune plus loin de l’origine que
les précédentes.
x2 (1)
6
(2)
4 z=
200
0
2 z= (3)
100
0
0 2 4 6 8 x1
droites d’isoprofits z = 0, z = 1000 et z = 2000
x2 (1) x2
8 8
(x∗1 , x∗2 ) = (2, 6)
6 6
(2)
4 z= 4 z=
200 200
0 0
2 z= (3) 2 z=
100 100
0 0
0 2 4 6 8 x1 0 2 4 6 8 x1
droite d’isoprofit la plus élevée repérage de la solution graphique
Ce point se trouve à l’intersection des droites (2) et (3). On utilise donc à plein les
capacités disponibles des ateliers 1 et 2. Par contre, pour cette solution optimale, les
capacités disponibles de l’atelier 1 seront plus que suffisantes. Au point optimal, la
fonction économique prend la valeur 3600 :
3. Problème de minimisation
Les contraintes (A), (B) et (C) s’écrivent « > » parce qu’il faut respecter les besoins
minimaux en matières premières, mais ceux-ci peuvent être dépassées.
Ce programme diffère du programme précédent sous 2 aspects : la fonction
économique s’est à minimiser ; certaines contraintes sont de signe « > » et l’origine
O = (0, 0) du plan n’est pas une solution réalisable.
La technique de résolution graphique reste la même, mais, puisqu’il s’agit de la
recherche d’un minimum, la droite iso-valeur le plus proche de l’origine et qui reste
en contact avec la région réalisable, fournit le minimum.
En premier temps, nous construisons la région réalisable. La zone hachurée dans le
graphe ci-dessous est l’ensemble des points satisfaisant à toutes les contraintes.
x2 x2
16 16
14 (K) 14
12 (A) (L) 12
10 10 D
8 8
6 (B) 6
(C)
4 4
2 2
0 2 4 6 8 10 12 14 16 x1 0 2 4 6 8 10 12 14 16 x1
repérage des bons côtés région réalisable
x2 x2
E F E F
D D
12 12
10 D 10 D
C C
8 8
6 6
4 4
2 B 2 B
A A
0 2 4 6 8 10 12 14 16 x1 0 2 4 6 8 10 12 14 16 x1
isocoûts z = 0, z = 200 et z = 440. le sommet B correspond à la solution optimale
E F E F
D D
12 12
10 D 10 D
C C
8 8
6 6
4 4
2 B 2 B
A A
0 2 4 6 8 10 12 14 16 x1 0 2 4 6 8 10 12 14 16 x1
isocoûts parallèles à une contrainte solutions optimales multiples
2 Méthode graphique 21
Comme la droite d’isocoût la plus basse possible est tangente à la contrainte (B), la
valeur minimale serait attente aux sommets B(9, 3) et C(2, 10). De plus, tout point
du segment [B, C] minimisera la fonction économique sous les contraintes posées.
Cette multiplicité des solutions optimales provient du fait que les droites d’isocoûts
sont parallèles à la droite associée à la contrainte (B).
Algorithme du simplexe
3 Méthode algébrique
Nous avons résolu des cas de programmes linéaires simples : deux variables et trois
ou cinq contraintes. Au fur et à mesure que le nombre des contraintes s’accroît, la
méthode graphique s’avère de plus en plus difficile à mettre en œuvre. En présence
de trois variables, nous devons faire appel à une représentation graphique dans
l’espace, exercice très délicat . . . Or, dans la pratique, les programmes linéaires
comportent plusieurs dizaines de variables et de contraintes. Ainsi, le recours à
une méthode générale devient indispensable.
L’algorithme du simplexe est la plus utilisée des méthodes de résolution des
programmes linéaires. Il a été mis au point en 1948 par B. Dantzig. Depuis, cet
algorithme a fait l’objet de certaines d’articles scientifiques et a servi à la résolution
de nombreux modèles linéaires
1. Principe de l’algorithme
Ax = b
x>0
avec A de type (m, n) et de rang m, x de type (1, n) et b de type (m, 1).
Nous décrirons le déroulement de la méthode du simplexe en l’appliquant au
modèle de fabrication des chassis (FC) introduit au chapitre 2. Rappelons qu’après
l’ajout d’une variable d’écart dans chaque contrainte réelles, le programme (FC) se
réécrit sous la forme
Max z = 300x1 + 500x2
x1 + x3 = 4
(FC) 2x2 + x4 = 12
3x1 + 2x2 + x5 = 18
x1 , x2 , x 2 , x 4 , x 5 > 0
Les sommets ont été définis géométriquement. Il faut transcrire cette définition en
termes algébriques pour décrire notre procédure. Pour effectuer cette description, il
faut que le programme linéaire soit sous la forme standard.
Soit B une sous matrice de A qui est carrée inversible d’ordre m. Nous dirons que
B est une base.
Soit B une base. Alors en permutant les colonnes de A, on peut toujours mettre A
sous la forme :
¡ ¢
A= B H
3 Algorithme du simplexe : Méthode algébrique 24
où H est la sous-matrice formée par les colonnes de A qui ne sont pas dans la base.
De même on peut partitionner x en (xB xH )t et c en (cB cH )t , on peut écrire
Max z = cB xB + cH xH
BxB + HxH = b (∗)
x>0
xB = B−1 b
xH = 0
Lorsque les variables de base sont positifs (xB > 0), la solution de base est réalisable
et appartient à D. Par extension, la base B sera dite base réalisable. Une solution de
base est dite dégénérée si au moins une variable de base est nulle.
Propriété fondamentale
On peut vérifier cette propriété sur l’exemple de fabrication des chassis (FC) dont la
représentation graphique est donnée à la figure suivante. A la figure, les sommets
(0, 0), (0, 6), (2, 6), (4, 3), (4, 0) correspondent à des solutions de base réalisables
tandis que les points (0, 9), (4, 6) et (6, 0) correspondent à des solutions de base non
réalisables ; comme le montre le tableau suivant
(1)
x2
(0, 9)
var. de base (x1 , x2 ) sol. de base
8 x3 , x 4 , x 5 (0, 0) (4, 12, 18)
(2, 6) (4, 6) x2 , x 3 , x 5 (0, 6) (6, 4, 6)
(0, 6) x2 , x 3 , x 4 (0, 9) (9, 4, −6)
(2)
x1 , x 2 , x 3 (2, 6) (2, 6, 2)
4
(4, 3) x1 , x 2 , x 5 (4, 6) (4, 6, −6)
2 (3) x1 , x 2 , x 4 (4, 3) (4, 3, 6)
x1 , x 4 , x 5 (4, 0) (4, 6, 6)
(0, 0)
2 (4, 0) (6, 0) 8 x1 x1 , x 3 , x 4 (6, 0) (6, −2, 12)
Correspondance entre solution de base réalisable et sommet
3 Algorithme du simplexe : Méthode algébrique 25
On appelle solutions de base adjacentes deux solutions de base dont les variables
de base sont les mêmes sauf une qui est de base dans la première base et hors base
dans la seconde.
Dans l’exemple (FC), les deux solutions de base suivantes sont adjacentes :
car elles ne diffèrent que par une seule variable hors base. Par contre les solutions
suivantes :
ne sont pas adjacentes puisqu’elles diffèrent pas plus d’une variable hors base.
3. Illustration de l’algorithme
(x1 , x2 ) = (0, 0)
En termes algébriques, toutes les variables de décision (originales) sont mises hors
base. Automatiquement, dans le systèmes d’égalités :
x1 + x3 = 4
2x2 + x4 = 12
3x1 + 2x2 + x5 = 18
x3 = 4, x4 = 12, x5 = 18.
Notons que si une composante du second membre b avait été négatif ou si une
contrainte avait été sous forme d’égalité, on aurait pas pu démarrer ainsi. Ces
3 Algorithme du simplexe : Méthode algébrique 26
embûches peuvent être levées en passant par une phase préliminaire appelée phase I
de l’algorithme du simplexe.
Que vaut la fonction objectif pour cette première solution de base ?
c’est-à-dire un bénéfice nulle, ce qui n’est pas étonnant. Cette solution correspond
au plan de production : on ne produit rien, on n’utilise aucune ressource et on ne
gagne rien.
La formulation de l’exemple (FC), sous la forme standard, permet d’exprimer
facilement chaque variable d’écart (ici variable de base) ainsi que la fonction objectif
z comme fonctions affines des variables de décision seulement (ici variables hors
base) :
x3 = 4 − x1
x4 = 12 − 2x2
(Dic 1)
x5 = 18 − 3x1 − 2x2
z = 300x1 + 500x2
Le tableau ci-dessus est appelé un dictionnaire. La solution de base de départ peut
être résumée ainsi :
— variables hors-base : x1 = 0, x2 = 0 ;
— variables de base : x3 = 4, x4 = 12, x5 = 18 ;
— la valeur de la fonction objectif : z = 0.
La question qui se pose est alors : commet choisir une arête le long de laquelle la
valeur de z va augmenter ? Algèbriquement, cette question se formule de manière
équivalente par : qu’elle variable hors base va entrer en base ?
On a :
z = 300x1 + 500x2
3 Algorithme du simplexe : Méthode algébrique 27
Pour obtenir une meilleure solution, il suffit de faire passer l’une des deux variables
x1 ou x2 de la valeur zéro à une valeur positive. Il est donc préférable de choisir
x2 qui vaut 500 par unité alors que x1 ne vaut que 300. On peut ainsi espérer
aller "plus vite" vers la solution optimale. Par contre la valeur de x1 restera nulle.
Économiquement, on va donc produire des chassis de type 2 et toujours pas des
chassis de type 1.
Notons que pour pouvoir appliquer ce critère simple (le choix de la variable
entrante), la fonction objectif z doit être exprimée en fonction des seules variables
hors base.
x3 = 4 (C1)
x4 = 12 − 2x2 (C2)
x5 = 18 − 2x2 (C3)
Mais pour conserver une solution réalisable et ne pas quitter la région réalisable, il
faut aussi que les composantes restent positifs. Nous devons avoir x3 > 0, x4 > 0 et
x5 > 0. En fait :
x3 = 4 >0 12
x2 6 =6
ou encore 2
x4 = 12 − 2x2 > 0
18
x5 = 18 − 2x2 > 0 x2 6 =9
2
La contrainte (C1) ne place aucune restriction sur l’augmentation de x2 car elle ne
contient pas x2 . Au total, la contrainte la plus restrictive pour x2 est (C2). Il faut
donc s’arrêter à la valeur x2 = 6 (c’est une réponse à la question a) pour la quelle
la variable x4 dévient nulle et aller au delà conduirait à la rendre négative. Donc,
3 Algorithme du simplexe : Méthode algébrique 28
on peut supposer que x4 est à présent hors base (c’est une réponse à la question b).
On en conclut que la variable sortante est x4 , c’est-à-dire la première qui s’annule
lorsque x2 s’accroît à partir de 0.
(4, 3)
(0, 0)
(4, 0) x1
La première itération est terminée. La deuxième solution de base peut être résumée
ainsi :
— variables hors-base : x1 = 0, x4 = 0 ;
— variables de base : x2 = 6, x3 = 4, x5 = 6 ;
— la valeur de la fonction objectif : z = 3000.
Elle correspond au sommet (0, 6) de la région réalisable. Économiquement, cette
solution définit un plan de production beaucoup plus intéressant : on fabrique 6
chassis du type 2 (x2 = 2) en consommant entièrement la capacité de production de
l’atelier 2 et x5 = 6 unités de la capacité de production de l’atelier 3. La capacité de
fabrication de l’atelier 1 n’est pas encore utilisé (x3 = 4). Le profit est z = 3000.
Test d’arrêt
La question qui se pose maintenant est : commet savoir le fait que la solution
optimale est trouvée ?
Un sommet est optimal si tous les sommets adjacents donnent des valeurs
inférieures ou égales à la fonction objectif. Comment peut-on savoir s’il existe encore
un sommet adjacent profitable ?
Pour répondre à cette question, nous allons examiner la nouvelle expression de la
fonction z. La dernière équation du dictionnaire (Dic 2) :
Deuxième itération
Au vu de
z = 3000 + 300x1 − 250x2
on sélectionne donc pour la variable entrante x1 . En effet, c’est la variable ayant le
plus grand coefficient positif, et d’ailleurs la seule possible.
Pour déterminer la variable sortante, étudions la variation des variables de base en
3 Algorithme du simplexe : Méthode algébrique 30
x3 = 4 − x1 > 0 x1 6 6
x2 = 6 >0 ou encore
x5 = 6 − 3x1 > 0 x1 6 2
La variable sortante est x5 , c’est elle qui est la première à s’annuler (pour x1 = 2).
Pour calculer le nouveau sommet, on utilise la troisième équation du (Dic 2) pour
exprimer x2 en fonction des nouvelles variables hors base, x5 et x4 :
1 1
x1 = 2 − x5 + x4
3 3
On remplace ensuite x1 par cette expression dans les autres équations du
dictionnaire :
1 1
x3 = 2 − x5 + x4
3 3
1
x2 = 6 − x4
2 (Dic 3)
1 1
x1 = 2 − x5 + x4
3 3
z = 3600 − 100x5 − 150x4
La deuxième itération est terminée. La troisième solution de base peut être résumée
ainsi :
— variables hors-base : x4 = 0, x5 = 0 ;
— variables de base : x1 = 2, x2 = 6, x3 = 2 ;
— la valeur de la fonction objectif : z = 3600.
Elle correspond au sommet (2, 6) de la région réalisable. Économiquement, cette
solution définit le plan de production suivant : on fabrique 2 chassis du type 1 et
6 chassis du type 2 en consommant entièrement les capacités de production des
ateliers 2 et 3. Le profit est z = 3600.
x2
(2, 6)
(0, 6)
(4, 3)
(0, 0)
(4, 0) x1
Tous les coefficients de la dernière ligne, dans (Dic 3), sont négatifs :
4. Algorithme du simplexe
Étape 0. Initialisation
• Définir une solution de base de départ ; préciser les variables de base et les
variables hors base de cette solution. Généralement, les variables d’écart sont
pris comme variables de base et les variables de décision comme variables hors
base.
• Exprimer la fonction objectif z en fonction des seules variables hors base. Puis
choisir comme variable entrante la variable hors base affectée du coefficient
positif le plus élevé.
• Si tous les asr sont inférieurs à 0, alors la solution est non borné.
3 Algorithme du simplexe : Méthode algébrique 32
• Retour à l’Étape 1.
5. Application
— La variable x3 entre en base car elle a le plus grand coefficient positif dans la
dernière ligne du dictionnaire (Dic 1), qui est 18.
— La variable x7 sort de la base car elle correspond au plus petit rapport parmi les
rapports suivants :
42 17 24
= 8.4, = 8.5, = 8.
5 3 3
Nous allons faire un changement de dictionnaire en échangeant les rôles de x3 et x7 .
On utilise la troisième équation du (Dic 1) pour exprimer x3 en fonction de x1 , x2 , x4
et x7 :
1 2 1
x3 = 8 − x1 + x2 − x7 − x4
3 3 3
3 Algorithme du simplexe : Méthode algébrique 34
1 2 5
x5 = 2 x1
− − x2 + x7 − 2x4
3 3 3
1 1 2
x6 = 1 − x1 + x2 + x7
3 3 3 (Dic 2)
1 2 1
x3 = 8 − x1 − x2 − x7 − x4
3 3 3
z = 144 + x1 − 3x2 − 6x7 − x4
x5 = 1 + x6 − x2 + x7 − 2x4
x1 = 3 − 3x6 + x2 + 2x7
(Dic 3)
x3 = 7 + x6 − x2 − x7 − x4
z = 147 − 3x6 − 2x2 − 4x7 − x4
Puisque tous les coefficients de la fonction objectif z sont négatifs, il n’est plus
possible d’améliorer z. La solution obtenue
x1 = 3, x2 = 0, x3 = 7, x4 = 0, x5 = 1, x 6 = x7 = 0
2. Illustration de l’algorithme
B b x1 x2 x3 x4 x5
vecteur b
x3 4 1 0 1 0 0
variables x4 12 0 2 0 1 0 matrice A
de base B
x5 18 3 2 0 0 1
z 0 300 500 0 0 0
valeur de z vecteur c
On a ajouté au-dessus du tableau le nom des variables pour voir à quelle variable
correspond chaque colonne du tableau.
Plusieurs caractéristiques d’un tableau simplex sont à remarquer
— Tout d’abord, on peut lire directement sur le tableau les valeurs des variables
de base. Si x1 = x2 = 0, on obtient x3 = 4, x4 = 12 et x5 = 18. Soit xB = b.
— Dans la dernière ligne, on trouve un coefficient égal à 0 pour chaque variable
de base (la fonction z est exprimée en fonction des seuls variables hors base).
— La matrice carrée correspondant aux variables de base est la matrice identité.
— Enfin, le premier coefficient de la dernière ligne donne l’opposé de la valeur
de z
4 Algorithme du simplexe : Méthode des tableaux 37
B b x1 x2 x3 x4 x5
x3 4 1 0 1 0 0
x4 12 0 2 0 1 0
x5 18 3 2 0 0 1
z 0 300 500 0 0 0
colonne pivot
x1 = 4 + x2
La variable sortante est alors la variable de base dont la valeur se lit dans la ligne
où le minimum se produit : ici, il s’agit de la deuxième ligne et donc de la variable
x4 . On encadre alors la ligne où le minimum se produit. Cette ligne reçoit le nom de
ligne pivot :
variable entrante
z 0 300 500 0 0 0
B b x1 x2 x3 x4 x5 B b x1 x2 x3 x4 x5
x3 4 1 0 1 0 0 x3 4 1 0 1 0 0
1 1
x4 6 0 1 0 2 0 x2 6 0 1 0 2 0
x5 18 3 2 0 0 1 x5 18 3 0 0 0 1
b×c
a0 = a −
2
• a0 est la valeur modifiée du coefficient a qui est considéré
• b est l’élément situé sur la même ligne que a, mais dans la colonne du pivot
• c est l’élément situé dans la même colonne que a, mais sur la ligne du pivot
Dans le tableau à modifier, le pivot et les coefficient a, b et c forment les coins d’un
rectangle. D’où le nom de la méthode.
B b x2 xj
b a
x4 2 c
B b x1 x2 x3 x4 x5
x3 4 1 0 1 0 0
1
x2 6 0 1 0 2 0
x5 6 3 0 0 −1 1
B b x1 x2 x3 x4 x5
x3 4 0 0 1 0 0
1
x2 6 0 1 0 2 0
1 1
x1 2 1 0 0 −
3 3
z −3000 0 0 0 −250 0
B b x1 x2 x3 x4 x5
1 1
x3 2 0 0 1 3
−
3
1
x2 6 0 1 0 2 0
1 1
x1 2 1 0 0 −
3 3
z −3600 0 0 0 −150 −100
Comme il n’y a plus de coefficients positifs sur la dernière ligne, la solution courante
est optimale. Ainsi :
(x∗1 , x∗2 ) = (2, 6) et z ∗ = 3600
Le chemin suivi par la méthode des tableaux est illustré par la figure suivante.
4 Algorithme du simplexe : Méthode des tableaux 42
x2 deuxième itération
(2, 6)
(0, 6)
première itération
(4, 3)
(0, 0)
(4, 0) x1
C’est le même chemin suivi par la méthode algébrique. Ce qui n’est pas étonnant.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
. 0
z −z B c1 c2 ... cn 0 0 ... 0
Étape 1 :
Dans le cas où toutes les contraintes initiales d’un programme linéaire se présentent
sous forme de contraintes d’inégalités du type "inférieur ou égal" avec un membre
de droite positif, on réécrit d’abord le programme sous forme standard en ajoutant
des variables d’écart. Puis on met les variables de décisions (variables originales)
hors base et les variables d’écart en base. On indique en section 5 comment
construire le tableau initial dans le cas d’un programme linéaire quelconque.
4 Algorithme du simplexe : Méthode des tableaux 43
Étape 2 :
Si les coefficients cj sont tous 6 0, alors STOP : la solution de la base actuelle est
optimale. Sinon, choisir la variable hors base dont le coefficient dans la dernière
ligne est positif et le plus grand possible. Soit xr la variable entrante.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
.
..
. 0
z −z B c1 . . . cr . . . cn 0 0 ... 0
Étape 3 :
Choisir comme variable sortante la première variable de base à s’annuler. Pour cela,
on calcule le minimum du rapport du second membre bi sur le coefficient air de la
variable entrante dans la même ligne lorsque air > 0. Soit ` la ligne où le minimum
se produit : ½ ¾
b` bi
= min : air > 0
a` r air
La variable sortante est celle qui correspond à la ligne où le minimum se produit.
Soit xs la variable sortante. On colore la ligne correspondante qui est appelée ligne
pivot. Il en résulte le tableau suivant :
4 Algorithme du simplexe : Méthode des tableaux 44
z −z B c1 . . . cr . . . cn 0 0 ... 0
Étape 4 :
b a
asr c
Remarquons que toute ligne possédant un zéro dans la colonne du pivot reste
inchangée ; de même, toute colonne possédant un zéro dans la ligne du pivot reste
inchangée.
4. Application
Tableau initial :
x1 = x2 = x3 = x4 = 0, x5 = 42, x6 = 17, x7 = 24
B b x1 x2 x3 x4 x5 x6 x7
x5 42 2 4 5 7 1 0 0
x6 17 1 1 2 2 0 1 0
x7 24 1 2 3 3 0 0 1
z 0 7 9 18 17 0 0 0
Comme, dans la dernière ligne, il y a des coefficients des variables hors base qui sont
positifs (valeurs 7, 9, 17 et 18), cette solution de base réalisable n’est pas optimale.
4 Algorithme du simplexe : Méthode des tableaux 46
Deuxième tableau :
— x3 hors base entre en base. Car elle possède le plus grand coefficient positif,
dans la dernière ligne, qui est 18.
— x7 en base sort de base, puisque c’est elle qui correspond à la ligne pour laquelle
le rapport de bi sur air est le plus petit avec air > 0, i = 1, 2, 3; r = 3. En
effet, a13 , a23 , a23 sont positifs et
b1 42 b2 17 b3 24
= = 8.4, = = 8.5, = = 8,
a13 5 a23 2 a33 3
24
le plus faible ration est correspond à la ligne d’indice 3.
3
ce que nous indiquons dans le tableau initial en colorant la colonne pivot et la ligne
pivot ; nous y entourons aussi le pivot, qui est égal à 3.
Construisons le nouveau tableau simplexe en appliquant les règles du pivotage :
B b x1 x2 x3 x4 x5 x6 x7
1 2 5
x5 2 3 3 0 2 1 0 3
1 1 2
x6 1 3 3 0 0 0 1 3
1 2 1
x3 8 3 3 1 1 0 0 3
z 144 1 3 0 1 0 0 6
Puisqu’il y a encore, dans la dernière ligne, un coefficient positif (valant 1), nous
ne sommes pas à la solution optimale et nous devons donc rechercher une nouvelle
meilleure solution de base réalisable.
Troisième tableau :
B b x1 x2 x3 x4 x5 x6 x7
x5 1 0 1 0 2 1 1 1
x1 3 1 1 0 0 0 3 2
x3 7 0 1 1 1 0 1 1
z 147 0 2 0 1 0 3 4
Puisque tous les coefficients de la dernière ligne sont négatifs, le tableau trouvé
correspond à une solution optimale. Celle-ci est définie par :
x1 = 3, x3 = 7, x5 = 1, x2 = x4 = x6 = x7 = 0.
Avant de donner la definition formelle d’un problème dual, nous allons expliquer
comment il s’explique en terme de problème de production.
1.1. Exemple 1
2 u1 + 1 u2 + 1 u3 > 7 (Produit 1)
Une démarche simillaire à propos des autres produits l’amène à écrire que
4 u1 + 1 u2 + 2 u3 > 9 (Produit 2)
5 u1 + 2 u2 + 3 u3 > 18 (Produit 3)
7 u1 + 1 u2 + 3 u3 > 17 (Produit 4)
u1 , u 2 , u 3 > 0
Finalement, pour déterminer les prix unitaires minimaux qu’il proposera à Ahmed,
Brahim devrait résoudre le programme linéaire suivant :
Min w = 42u1 + 17u2 + 24u3
2u1 + u2 + u3 > 7
4u1 + u2 + 2u3 > 9
(D)
5u1 + 2u2 + 3u3 > 18
7u1 + 2u2 + 3u3 > 17
u1 , u 2 , u 3 > 0
5 Dualité en programmation linéaire 50
Les problèmes (P) et (D) utilisent en fait exactement les mêmes données
numériques. On peut les lire directement à partir du tableau ci-dessous ; (P)
correspond à une lecture ligne par ligne, (D) à une lecture colonne par colonne.
Primal (Max)
Coeff. des xi S.M
x1 x2 x3 x4 b
u1 2 4 5 7 6 42
Coeff. dans w
Coeff. des uj
u2 1 1 2 2 6 17
Dual (Min)
u3 1 2 3 3 6 24
6
6
S.M.
18
17
c
Coeff. dans z
1.2. Exemple 2
Le laboratoire doit fixer les prix offerts pour les vitamines de façon à ce que :
u1 , u 2 > 0
Finalement, pour déterminer les prix unitaires maximaux qu’il ne doit pas dépasser
pour rester compétitif, le laboratoire devrait résoudre le programme linéaire
suivant :
Max w = 20u1 + 60u2 + 15u3
20u1 + 30u2 + 5u3 6 60
(D)
5u1 + 20u2 + 10u3 6 90
u1 , u 2 , u 3 > 0
La dualité associe à tout problème linéaire un autre problème linéaire qui est appelé
problème dual du problème initial ; par opposition le problème initial est appelé
problème primal. Considérons un problème de maximisation sous canonique :
n
X
Max z = cj xj
j=1
X n
(D) aij xj 6 bi i = 1, . . . , m
j=1
xj > 0 j = 1, . . . , n
5 Dualité en programmation linéaire 52
Les variables xj sont appelées variables primales et les variables ui sont appelées
variables duales.
Cette définition est caractérisée par les règles suivantes :
Comme le problème dual du dual est le problème primal initial, il convient donc de
parler d’une paire de problèmes de programmation linéaire liés par la dualité.
Souvent le problème primal est considérée soit sous sa forme canonique ou sous sa
forme standard. Dans ces deux, le problème dual devient, en notation vectorielle,
— la forme canonique :
Max z = cx
Min w = ub
le primal : Ax 6 b le dual : uA > c
x>0 u>0
— la forme standard :
(
Max z = cx
Min w = ub
le primal : Ax = b le dual :
uA > c
x>0
Nous pouvons vérifier cette dernière relation, en mettant la forme standard sous
une forme canonique équivalente.
5 Dualité en programmation linéaire 53
Exemple
Max z ⇐⇒ Min w
variable xj > 0 ⇐⇒ contrainte j est une inégalité ">"
variable xj 6 0 ⇐⇒ contrainte j est une inégalité "6"
variable xj sans signe ⇐⇒ contrainte j est une égalité "="
contrainte i est une inégalité "6" ⇐⇒ variable ui > 0
contrainte i est une inégalité ">" ⇐⇒ variable ui 6 0
contrainte i est une égalité "=" ⇐⇒ variable ui sans signe
2. Propriétés de la dualité
Nous allons montrer que la relation entre deux problèmes va beaucoup plus loin que
l’esthétique mathématique de cette symétrie. En fait nous allons étudier certaines
résultats concernant les relations entre le problème primal et son dual.
Considérons un problème linéaire de maximisation (le primal) sous sa forme
5 Dualité en programmation linéaire 54
Ax 6 b uA > c
x>0 u>0
Propriété 1
cx 6 ub
En effet,
) )
Ax 6 b et u>0 uAx 6 ub
=⇒ =⇒ cx 6 uAx 6 ub
uA > c et x>0 uAx > cx
Corollaire 1
Une solution réalisable du dual (resp. primal) fournit une borne supérieur
(resp. inférieur) de z̃ (resp. w̃) :
z̃ 6 ub ∀ u réalisable du dual
w̃ > cx ∀ u réalisable du primal
Corollaire 2
En effet, supposons, par exemple, que x n’est pas une solution optimale. Alors, il
existe une solution réalisable x∗ tel que
c x∗ > c x
Corollaire 3
Si un problème possède une valeur optimale infinie, son dual est impossible.
Propriété 2
Si le problème primal (resp. dual) possède une solution optimale finie, alors
il en est de même pour le problème dual (resp. primal) et de plus z̃ = w̃.
En effet, s’il existe une solution de base optimale finie x̃ du problème primal mis
sous forme standard, cette solution est de la forme
uB A 6 c
et de plus vérifie
uB b = z̃
Cette solution est donc une solution optimale finie du problème dual.
Corollaire 4
L’égalité des fonctions objectifs du primal et du dual est donc une condition
nécessaire et suffisante d’optimalité pour des solutions réalisables des deux
problèmes.
Parmi les neuf situations potentielles pour une paire de problèmes liés par la dualité,
il n’existe que quatre situations possibles
2. a) Le problème primal a une valeur optimale infinie, et son dual est impossible ;
b) Le problème primal est impossible, et son dual a une valeur optimale infinie ;
3. Les deux problèmes sont impossibles.
Illustrations
4 4
0 0
0 4 0 4
le premier cas du théorème fondamentale de la dualité
5 Dualité en programmation linéaire 57
4 4
0 0
0 4 0 4
le deuxième cas du théorème fondamentale de la dualité
4 4
0 0
0 4 0 4
le troisième cas du théorème fondamentale de la dualité
α=β=0
Appelons
(Li x 6 bi , ui > 0) i = 1, . . . , m
ou
(xj > 0, uCj > cj , ) j = 1, . . . , n
des couples de contraintes duales.
Convenons qu’une contrainte d’inégalité (6 ou >) est dite serrée pour une solution,
si elle est vérifiée avec le signe d’égalité (=) et non serrée dans le cas où elle est
vérifiée avec le signe d’inégalité stricte (< ou >).
Le théorème des écarts complémentaires peut alors s’énoncer :
Ax + y = b
uA − v = c
5 Dualité en programmation linéaire 59
xi v i = 0 i = 1, . . . , n
yj uj = 0 j = 1, . . . , m
Exemple :
Appliquons le TEC au problème linéaire suivant :
max 15x1 + 25x2
x1 + 3x2 6 96
(P) x1 + x2 6 40
7x1 + 4x2 6 238
x 1 , x2 = 0
x1 = 12, x2 = 28
u1 + u2 = 15
3u1 + u2 = 25
2u1 = 10 =⇒ u1 = 5 =⇒ u2 = 10