Introduction à la Programmation Linéaire
Introduction à la Programmation Linéaire
PROGRAMMATION LINÉAIRE
1 Introduction
Un problème de programmation linéaire (PL) ou programme linéaire, traite de la
maximisation ou de la minimisation d’une fonction linéaire en présence de contraintes
linéaires.
Exemple : Max Z = 2.x1 + 6.x2
s.a x1 + x2 ≤ 80
x1 - x2 ≤ 30
-x1 + 4.x2 ≤ 160
x1 ≥ 0 ; x2 ≥ 0
Hypothèses :
• Proportionnalité,
• Additivité,
• Divisibilité.
2 Forme matricielle:
x1 2
X = ,C =
6
x2
1 1 80
A = 1 −1 , b = 30 ,
−1 160
4
b est appelé Second membre (Right Hand Side (RHS))
x1
Maximiser Z =(2 6)
x
Max Z = CT.X 2
s.a A.X ≤b 1 1 80
Ou x1
X≥0 ; s.à 1 -1* ≤ 30
x2
-1
4 160
x1 ≥ 0
avec
x2
(
A= a1 a2 ) avec a1 vecteur colonne 1 a1
1 1 A = a2 avec a1 vecteur ligne 1
a1 = 1 ; a2 = -1
a3
-1 4 a1 = (1 1) ; a2 = (1 −1) ; a3 = (−1 4)
N.B :
• forme canonique d’un programme linéaire (contraintes d’inégalité).
• Pour passer d’une forme canonique à une forme standard, on introduit des variables
d’écart.
Exemple : Soit le programme linéaire (P1)
Forme canonique du problème (P1) :
Max Z = 2.x1 + 6.x2
s.a x1 + x2 ≤ 80
x1 - x2 ≤ 30 (P1)
-x1 + 4.x2 ≤ 160
x1 ≥ 0 ; x2 ≥ 0
• Si une variable xj est libre, pour ramener le problème à sa forme standard, on effectue
la transformation suivante :
xj = x+j – x -j avec x+j ≥ 0; x -j ≥0.
N.B :
x1 x2+ x2− x3 x4 x5
1 1 −1 1 0 0
1 −1 1 0 1 0
−1 4 −4 0 0 1
Non inversible
Les variables x+2 et x–2 ne peuvent jamais être toutes les deux >0 ⇒ elles ne
peuvent jamais être toutes les deux des variables de base.
4 Résolution graphique :
x2
x1 = 0
x2=80
(32,48,0,46,0)
x1 -x2= 30
(0,40,40,70,0)
Domaine (55,25,0,0,16)
réalisable
x1 +x2= 80
x1
(0,0,80, 30,160) (30,0,50,0,190)
Droite de l’objectif
x1 = 0 Z =2.x1 +6.x2
x2=-30
5 Résolution analytique :
• On remplace dans l’objectif (O) les variables de base par leurs expressions en
fonction des variables hors base, on obtient :
Z = 2.x1 + 6.x2
N.B : l’objectif est actuellement à zéro (en effet, x1 = 0; x2 = 0)
• Test d’optimalité :
Peut-on augmenter Z en augmentant x1 ou x2 ?
Réponse : Oui.
Quelle variable augmenter x1 ou x2 ?
Réponse : on peut choisir x1 ou x2 . Sans perte de généralité, on
choisit la variable affectée du coefficient le plus élevé.
On décide donc d’augmenter x2 .
• Les variables hors base demeurent x1 et x5. Les variables de base deviennent x2, x3
et x4 .
• On exprime les variables de base en fonction des variables hors base :
De la relation (3)’, on exprime x2 en fonction de x1 et de x5 et on
la remplace dans les expressions de x3 et x4.
(3)’ = 40 + x1/4 - x5/4
x2 d’après (1)’ x3 = 80 - x1 - x2
⇒ x3 = 40 - 5/4 x1 + x5/4
d’après (2)’ x4 = 30 - x1 + x2
⇒ x4 = 70 - 3/4 x1 - x5/4
6 Tableau du Simplex
On réécrit le problème P (forme standard) sous la forme suivante :
S.M
1Z - 2.x1 - 6.x2 =0
0Z + x1 + x2 + x3 = 80
0Z + x1 - x2 + x4 = 30
0Z - x1 + 4.x2 + x5 = 160
V.B V.N
x3 = 80 x1 =0
x4 = 30 x2 =0
x5 = 160
variables Z x1 x2 x3 x4 x5 Second
de base membre
Fonction
objectif Z 1 -2 -6 0 0 0 0
x3 0 1 1 1 0 0 80
Variables
de base x4 0 1 -1 0 1 0 30
x5 0 -1 4 0 0 1 160
Ainsi, l’optimalité sera atteinte lorsque tous les coefficients apparaissant à la ligne
Z du tableau sont tous ≥ 0 (Pour un problème de maximisation).
Il en résulte que le tableau actuel n’est pas optimal.
La valeur de la fonction objectif : Z = 0.
3. On lit directement les valeurs des variables de base (colonne correspondant au
second membre).
variables Z x1 x2 x3 x4 x5 Second θi
de base membre
Z 1 -2 -6 0 0 0 0
x3 0 1 1 1 0 0 80 80 = 80
1
x4 0 1 -1 0 1 0 30 ---
x5 0 -1 4 0 0 1 160 160 = 40
4
N.B : Si dans la colonne de la variable d’entrée, les valeurs correspondant aux variables
de base sont toutes négatives, on peut augmenter x2 autant qu’on veut. On dira que le
problème est non borné.
−6 0
à
1 0
−1 0
Opérations sur
4 les lignes 1
Ceci est obtenu en ajoutant ou en retranchant à chaque ligne du tableau un multiple de la
ligne du Pivot.
+ 6LP
x2 0 -3/2 6 0 0 3/2 240
⇓
Z 1 -7/2 0 0 0 3/2 240
variables Z x1 x2 x3 x4 x5 Second θi
de base membre
Z 1 -7/2 0 0 3/2 0 240
x3 0 5/4 0 1 0 -1/4 40 40 = 32
5/ 4
x4 0 3/4 0 0 1 1/4 70 70 = 93.3
3/ 4
x2 0 -1/4 1 0 0 1/4 40 ---
variables Z x1 x2 x3 x4 x5 Second θi
de base membre
Z 1 0 0 14/5 0 4/5 352
x1 0 0 0 4/5 0 -1/5 32
x4 0 0 0 -3/5 1 2/5 46
x2 0 0 1 1/5 0 1/5 48
3. Si, à une itération donnée, un élément du second membre devient nul, on parlera
de solution dégénérée.
Forme canonique
Forme standard
Solution initiale
Partitionnement des
variables en
Test d’optimalité
Répondre à la question : peut-on améliorer l’objectif en
augmentant une des variables hors base ?
De combien peut-on
augmenter la variable hors Oui Non
base retenue ?
(on utilise les contraintes)
La solution actuelle est
optimale
7 Algorithme du Simplex
L’algorithme du simplex traite les problèmes de PL mis sous la forme standard : [
contraintes d’égalité – variables positives ou nulles – second membre ≥ 0 ]
Minimiser Z = CT.X
s.a A.X = b
X≥0 ;
Ou encore
n
Min Z = ∑C j x j
j =1
n
s .à ∑a x
j =1
ij j = bi ; i =1,2,....m
x j ≥0 ; j =1,2,....n
Ou encore
n
Min Z = ∑C j x j
j =1
n
s .à ∑x a
j =1
j j =b ; j =1,2,....n
x j ≥0 ; j =1,2,....n
a j : vecteur colonne de A correspondant à la variable xj.
Désignons par XB les variables de base et par XN les variables hors base.
XB
Le vecteur X est donc partitionné en X = .
XN
On procède au partionnement correspondant de A et de C :
CB
A= [B, N] et C =
CN
Le problème original peut alors s’écrire :
XB
Minimiser Z = (CB , CN).
XN
XB
Sujet à : [B, N] . =b
XN
XB ≥ 0; XN ≥ 0;
Soit :
Minimiser Z = CB XB + CN XN
Sujet à : B XB + N XN = b
XB ≥ 0; XN ≥ 0;
B étant une matrice régulière [Bmxm], il existe une matrice B-1 (inverse de B) [B-1B = B B-
1
= I].
En multipliant l’ensemble des contraintes par B-1, on obtient :
XB + B-1NXN = B-1b. (1)
d’où XB = B-1b - B-1NXN
XB = B-1b
XN = 0 Est une solution de base
Remarque :
Pour le système AX = b , (Amn), X≥ 0, il existe au plus :
Cmn = n! solutions de base possibles
m! (n-m)!
Ce nombre étant fini, l’algorithme du simplex s’exécuterait alors en un nombre fini
d’itérations.
L’objectif s’écrit :
Minimiser Z = CB XB + CN XN (2)
De la solution (1), on obtient :
XB = B-1b - B-1NXN
En effectuant la substitution dans (2), on obtient :
Z = CB (B-1b - B-1NXN) + CN XN
-1 -1
= CB B b - CB B NXN + CN XN (3)
Or NXN = ∑a X
j∈R
j j R={indice des variables hors base}
Et CN XN = ∑C X
j∈R
j j
= CB B-1b - ∑[C B
j∈R
B
−1 aj - Cj] X j (4)
Désignons par :
Z0 = CB B-1b
Zj = CB B-1 a j
La relation (4) devient :
Z = Z0 - ∑(Z
j∈R
j - Cj ) X j (5)
b1'
Soit b’ = B-1b b’= b2'
bm'
y1k
-1
Et yk= B ak = y2k
ymk
Soit
XB1 = b’1 - y1kXk
XB2 = b’2 - y2kXk
.
.
.
XBr = b’r - yrkXk (6)
.
.
.
XBm = b’m - ymkXk
X k = br >0
I
[Pas de dégénérescence]
yrk
bI
X k = br = Min i
I
; yik >0
yrk yik
La nouvelle solution devient :
yik br
I
XBi = b’i -
yrk
Tableau du Simplex :
Avec :
Z0 = CB B-1b
Zj = CB B-1 a j
yj = B-1 a j
Non
bI
X k = br = Min i
I
; yik >0
yrk yik
Effectuer le pivotage
Forme standard :
Min Z = x1 - 2.x2
s.a x1 + x2 - x3 =2
-x1 + x2 - x4 =1 (P)
x2 + x5 =3
x1 ≥ 0; x2 ≥ 0; x3≥ 0; x4≥ 0; x5≥ 0;
Min Z = x1 - 2.x2
s.a x1 + x2 - x3 +xa1 =2
-x1 + x2 - x4 + xa2 =1
x2 + x5 =3
a
x1 ≥ 0; x2 ≥ 0; x3≥ 0; x4≥ 0; x5≥ 0; x 1≥ 0; xa2≥ 0;
• Solution initiale :
x1 = 0; x2 = 0; x3 =200; x4 = 0; xa2= 180; xa3 =160;
• Exprimons les variables de base en fonction des variables hors base. Il vient :
x3 = 200 - 5.x1 - 4.x2 (1)
xa2 =180 - 3.x1 - 6.x2 (2)
xa3 =160 - 8.x1 - 5.x2 + x4 (3)
• On remplace dans Z , xa2 et xa3 par leurs expression (2) et (3)
Z =4.x1 +5.x2 - M[180 - 3.x1 - 6.x2] - M [160 - 8.x1 - 5.x2 + x4]
Z =-340 M + (4+11M)x1 +(5+11M).x2 - M .x4
Ou encore :
Z - (4+11M)x1 - (5+11M).x2 + M .x4 = -340 M
variables Z x1 x2 x3 x4 xa 2 x a3 Second θi
de base membre
Z 1 -(4+11M) -(5+11M) 0 M 0 0 -340 M
variables Z x1 x2 x3 x4 xa 2 x a3 Second θi
de base membre
1 0 0 M 0 150-10 M
Z − 1 (3+11M) 1 (5+11M)
2 6
x3 0 3 0 1 0 -2/3 0 80 80
3
x2 0 ½ 1 0 0 1/6 0 30 30 =60
1/ 2
xa 3 0 11/2 0 0 -1 -5/6 1 10 10 = 20
11/ 2 11
variables Z x1 x2 x3 x4 xa 2 x a3 Second θi
de base membre
Z 1 0 0 0 -3/11 20 + M 3 +M 1680/M
33 11
x3 0 0 0 1 6/11 -7/33 -6/11 820/11 410/3
x2 0 0 1 0 1/11 8/33 -1/11 320/11 320
x1 0 1 0 0 -2/11 -5/33 2/11 20/11 ---
variables Z x1 x2 x3 x4 xa 2 x a3 Second θi
de base membre
Z 1 0 0 1/2 0 M + 1/2 M 190
Solution initiale :
VN ( x1 = 0, x2 = 0, x3= 0 et x4= 0), et VB ( xa1=2; xa2 =1 et x5=3.)
8.2.1 Phase I :
On cherche à se débarrasser des variables artificielles, pour ce faire, on résout le
programme linéaire suivant :
Min W = xa1 + xa2
(C)
Phase II
W = xa1 + xa2
=3 - 2.x2, + x3 + x4
la fonction objectif s’écrit alors comme suit :
W + 2.x2, - x3 - x4 =3
variables W x1 x2 x3 x4 x5 xa 1 x a2 Second θi
de base membre
W 1 0 2 -1 -1 0 0 0 3
xa 1 0 1 1 -1 0 0 1 0 2 2
x a2 0 -1 1 0 -1 0 0 1 1 1
x5 0 0 1 0 0 1 0 0 3 3
variables W x1 x2 x3 x4 x5 xa 1 x a2 Second θi
de base membre
W 1 2 0 -1 1 0 0 -2 1
a
x1 0 2 0 -1 1 0 1 -1 1 ½
x2 0 -1 1 0 -1 0 0 1 1 ---
x5 0 1 0 0 1 1 0 -1 2 2
variables W x1 x2 x3 x4 x5 xa 1 x a2 Second θi
de base membre
W 1 0 0 0 1 0 -2 0 0
x1 0 1 0 -½ ½ 0 1 -1 ½
x2 0 0 1 -½ -½ 0 1 0 3/2
x5 0 0 0 ½ ½ 1 -1 0 3/2
8.2.2 Phase II :
• Elle consiste à résoudre le programme linéaire suivant :
Min Z = x1 - 2.x2
s.a x1 - ½ x3 + ½ x4 = 1/2
x2 - ½ x3 - ½ x4 = 3/2
(C’)
½ x3 + ½ x4 + x5 = 3/2
x1 ≥ 0; x2 ≥ 0; x3≥ 0; x4≥ 0; x5≥ 0;
Ce nouveau système de contraintes (C’) est obtenu à partir du dernier tableau Simplex de
la phase I.
N.B : On remarque la disparition de xa1 et xa2 : ceci est dû au fait qu’elles sont des
variables hors base dans le dernier tableau Simplex de la phase I
• On exprime les variables de Base (VB) en fonction des variables hors base (VN)
x1 =½ x3 =0
x2 = 3/2 x4 =0
x5 = 3/2
x1 =½ + ½ x3 - ½ x4
x2 = 3/2 + ½ x3 + ½ x4
x5 = 3/2 - ½ x3 - ½ x4
⇒ Z = -5/2 - ½ x3 - 3/2 x4
variables Z x1 x2 x3 x4 x5 Second θi
de base membre
Z 1 0 0 ½ 3/2 0 -5/2
x1 0 1 0 -½ ½ 0 ½ 1
x2 0 0 1 -½ -½ 0 3/2 ---
x5 0 0 0 ½ ½ 1 3/2 3
variables Z x1 x2 x3 x4 x5 Second θi
de base membre
Z 1 -3 0 2 0 0 -4
x4 0 2 0 -1 1 0 1 ---
x2 0 1 1 1 0 0 2 ---
x5 0 -1 0 1 0 1 1 1
variables Z x1 x2 x3 x4 x5 Second θi
de base membre
Z 1 -1 0 0 0 -2 -6
x4 0 1 0 0 1 1 2
x2 0 0 1 0 0 1 3
x3 0 -1 0 1 0 1 1
8.3 Théorème:
Si à l’optimum (tableau final du Simplex), une ou plusieurs variables artificielles
demeurent dans la base avec des valeurs positives alors le programme original est non
réalisable.
Dans la méthode des 2 phases, si à l’optimum, W>0, le problème original est non
réalisable.
9 Théorie de la dualité :
9.1 Introduction
A chaque programme linéaire dit primal (P), on associe un autre programme linéaire dit
dual (D).
Les relations entre le primal et le dual se sont révélées extrêmement utiles pour plusieurs
applications particulièrement dans l’analyse de sensibilité.
Cette analyse de sensibilité est très importante étant donné que les valeurs des paramètres
utilisés dans le modèle sont des estimations et leur impact sur la solution optimale doit
être examiné.
Primal
• Soit:
x1: nombre de tables à fabriquer.
x2: nombre de chaises à fabriquer.
• Modèle mathématique :
Maximiser Z = 12.x1 + 8.x2
s.a 5.x1 + 2.x2 ≤ 150 (Bois B1)
2.x1 + 3.x2 ≤ 100 (Bois B2)
4.x1 + 2.x2 ≤ 80 (heures ouvrables)
x1 ≥ 0 ; x2 ≥ 0 (non négativité des variables)
Dual
Supposons qu’un acheteur soit intéressé par les ressources dont dispose l’entreprise qui
fabrique les tables et les chaises.
L’objectif de l’acheteur est de déterminer les prix unitaires y1 ,y2,et y3 qui minimise le
coût total d’acquisition des ressources disponibles.
Min W = y1*150 + ,y2*100 + y3 *80
Par ailleurs, l’acheteur est parfaitement conscient que l’entreprise ne peut lui céder les
ressources qu’à condition que le prix offert soit supérieur ou égal au profit unitaire que
l’entreprise réaliserait en transformant ses ressources en produits finis. D’où les
contraintes suivantes :
5.y1 + 2y2 + 4.y3 ≥ 12
2.y1 + 3y2 + 2.y3 ≥ 8
y1 ≥ 0 ; y2 ≥ 0; y3 ≥ 0;
Primal Dual
x1 150
Max Z = (12 8)
Min W = ( y1 y2 y3 ) 100
x2
80
5 2 150
x1
s.à : 2 3 ≤ 100 y1
x2 5 2 4 12
4
2 80 s.à : y ≥
2 2 8
2
3
x1 ≥ 0 ; x2 ≥ 0 y3
y1 ≥ 0 ; y2 ≥ 0; y3 ≥ 0;
Variable Contrainte
Max Min
Min Max
Exemple :
Minimiser Z = 6.x1 + 8.x2
s.a 3.x1 + x2 ≥4 (1)
5.x1 + 2.x2 ≤ 10 (2)
x1 + 2.x2 =3 (3)
x1 ≥ 0 ; x2 ≥ 0
Question : Écrire ce problème sous forme duale !!!!
Solution :
On écrit le problème sous sa forme primale (classique –
systématique).
Pour ce faire, on transforme la contrainte (3) de la manière suivante :
x1 + 2x2 ≥ 3
x1 + 2.x2 =3⇔
− x1 − 2x2 ≥ -3
Le primal s’écrit alors :
Minimiser Z = 6.x1 + 8.x2
s.a 3.x1 + x2 ≥4 (1)’
5.x1 + 2.x2 ≤ 10 (2)’
x1 + 2.x2 ≥3 (3)’
- x1 - 2.x2 ≥-3 (3)’’
x1 ≥ 0 ; x2 ≥ 0
A l’optimum
Primal CTX CTX = YTb
Dual YTb
Corollaire :
Si X est réalisable pour (P),
Si Y est réalisable pour (D),
Si CTX = YTb alors :
X est optimal pour (P)
Et Y est optimal pour (D)
Étape 3 :
• Si b’rj ≥ 0 ∀ j∈R ⇒ Stop : le dual est non borné et le primal est non
réalisable.
Z k - Ck Z - Cj
• Sinon choisir k tel que : = Min j , yrj <0 et aller à l’étape 4.
yrk j∈R
yrj
Étape 4 :
• Effectuer le pivotage autour de yrk et aller à l’étape 2.
Exemple :
Minimiser Z = 2.x1 + 3.x2 + 4.x3
s.a x1 + 2.x2 + x3 ≥3
2.x1 - x2 + 3x3 ≥4
x1 ≥ 0 ; x2 ≥ 0 ; x3 ≥ 0
Forme standard :
Minimiser Z
s.a : Z - 2.x1 - 3.x2 - 4.x3 =0
- x1 - 2.x2 - x3 + x4 =-3
-2.x1 + x2 - 3x3 + x5 =-4
x1 ≥ 0 ; x2 ≥ 0 ; x3 ≥ 0 ; x4 ≥ 0 ; x5 ≥ 0
variables Z x1 x2 x3 x4 x5 Second
de base membre
Z 1 -2 -3 -4 0 0 0
x4 0 -1 -2 -1 1 0 -3
x5 0 -2 1 -3 0 1 -4
Min { -2/-2 ; -4/-3} = 1 ⇒ la variable d’entrée est x1
variables Z x1 x2 x3 x4 x5 Second
de base membre
Z 1 0 -4 -1 0 -1 4
x4 0 0 -5/2 ½ 1 -1/2 -1
x1 0 1 -1/2 3/2 0 -1/2 2
variables Z x1 x2 x3 x4 x5 Second
de base membre
Z 1 0 0 -9/15 -8/5 -1/5 28/5
x2 2/5
x1 11/5
1 Introduction................................................................................................................. 1
2 Forme matricielle:....................................................................................................... 1
3 Forme Standard d’un PL :........................................................................................... 2
4 Résolution graphique : ................................................................................................ 4
5 Résolution analytique : ............................................................................................... 5
6 Tableau du Simplex .................................................................................................... 8
6.1 Variable d’entrée :............................................................................................... 9
6.2 Variable de sortie : .............................................................................................. 9
6.3 Transformation du tableau : .............................................................................. 10
7 Algorithme du Simplex............................................................................................. 15
8 Génération d’une première solution de base réalisable : .......................................... 21
8.1 Méthode du grand M :....................................................................................... 22
8.2 Méthode des deux phases : ............................................................................... 24
8.2.1 Phase I :..................................................................................................... 24
8.2.2 Phase II : ................................................................................................... 26
8.3 Théorème: ......................................................................................................... 27
9 Théorie de la dualité : ............................................................................................... 28
9.1 Introduction....................................................................................................... 28
9.2 Illustration du problème:................................................................................... 28
9.3 Relations entre Primal et Dual : ........................................................................ 31
9.4 Algorithme du Simplex Dual :.......................................................................... 32