Recherche op´erationnelle
Master 2 LT, MPM, MIR
Universit´e du Littoral - Cˆote d’Opale, Pˆole Lamartine Laurent SMOCH
(smoch@lmpa.univ-littoral.fr) Septembre 2013
Laboratoire de Math´ematiques Pures et Appliqu´ees Joseph Liouville Universit´e du Littoral, zone universitaire de la Mi-Voix, bˆatiment H. Poincarr´e
50, rue F. Buisson, BP 699, F-62228 Calais cedex
2
Table des mati` eres
0 Introduction g´en´erale 1
1 La programmation lin´eaire - M´ethode graphique 7
1.1 Introduction . . . 7
1.2 Mod´elisation d’un programme lin´eaire . . . 7
1.2.1 Exemples . . . 8
1.2.2 Formule g´en´erale d’un programme lin´eaire . . . 9
1.3 M´ethode graphique : probl`eme `a deux inconnues . . . 11
1.3.1 R´egionnement du plan . . . 11
1.3.2 Les ensembles convexes . . . 12
1.3.3 R´esolution de syst`emes d’in´equations - Exemples . . . 12
1.3.4 R´esolution de programmes lin´eaires . . . 16
1.3.5 Cas g´en´eral . . . 22
1.3.6 Exercices . . . 22
2 La programmation lin´eaire - M´ethode du simplexe 31 2.1 Introduction . . . 31
2.2 La m´ethode du simplexe . . . 31
2.2.1 Programme lin´eaire standard . . . 31
2.2.2 L’algorithme du simplexe . . . 33
2.2.3 D´etermination d’une solution de base admissible . . . 58
2.2.4 Utilisation de la m´ethode du simplexe lorsque la solution optimale n’existe pas . . . . 60
2.2.5 Utilisation de la m´ethode du simplexe dans un probl`eme de minimisation . . . 61
2.2.6 Exercices r´ecapitulatifs . . . 62
3 La programmation lin´eaire - ´Ecriture matricielle 67 3.1 Rappels . . . 67
3.2 La m´ethode du simplexe sous forme matricielle . . . 73
3.2.1 Forme g´en´erale d’un programme lin´eaire . . . 73
3.2.2 Repr´esentation matricielle . . . 74
3.2.3 Description g´en´erale de l’algorithme . . . 76
3.2.4 Exemple avec solution optimale unique . . . 77
3.2.5 Exemple avec solution optimale multiple . . . 78
3.2.6 Exemple avec solution non born´ee . . . 80
I
II TABLE DES MATI `ERES
Chapitre 3
La programmation lin´ eaire - ´ Ecriture matricielle
3.1 Rappels
D´efinition 3.1.1
– On appelle matrice m×n (ou d’ordre m×n) `a coefficients dans K tout tableau de m lignes et n colonnes d’´el´ements de K. L’ensemble des matrices m×n `a coefficients dans Kest not´eMm,n(K).
– Sim=non dit qu’on a unematrice carr´ee. L’ensemble des matrices carr´ees de taillen`a coefficients dans Kest not´eMn(K).
– Une matricem×1 est appel´ee vecteur-colonne et une matrice 1×nest appel´ee vecteur-ligne.
– On convient de noteraij l’´el´ement de la matrice situ´e sur lai-`eme ligne et j-i`eme colonne (1≤i≤m et 1≤j≤n).
– Une matriceA est repr´esent´ee entre deux parenth`eses ou deux crochets :
A=
a11 . . . a1j . . . a1n
... . .. ... . .. ... ai1 . . . aij . . . ain
... . .. ... . .. ... am1 . . . amj . . . amn
ou A=
a11 . . . a1j . . . a1n
... . .. ... . .. ... ai1 . . . aij . . . ain
... . .. ... . .. ... am1 . . . amj . . . amn
.
ou encore
A= (aij) 1≤i≤m 1≤j≤n
ou A= [aij] 1≤i≤m 1≤j≤n
.
Nous travaillerons avecK=R,QouZ.
Exemple 3.1.1 La matriceA=
−1 4 2 0 1 −3
4 1 5
est carr´ee et d’ordre 3.
D´efinition 3.1.2 - Addition de matrices Si A= (aij) 1≤i≤m
1≤j≤n
etB = (bij) 1≤i≤m 1≤j≤n
sont deux matricesm×n, on d´efinit l’addition des matrices par A+B= (aij+bij) 1≤i≤m
1≤j≤n
.
Exemple 3.1.2 Soient les matricesA=
(3 4 2 1 3 5 )
et B=
(6 1 9 2 0 3 )
. On obtient
A+B =
(3 + 6 4 + 1 2 + 9 1 + 2 3 + 0 5 + 3
)
=
(9 5 11
3 3 8
) .
Remarque 3.1.1 La somme de deux matrices de tailles diff´erentes n’est pas d´efinie.
67
68 CHAPITRE 3. LA PROGRAMMATION LIN ´EAIRE - ´ECRITURE MATRICIELLE
D´efinition 3.1.3
– La matrice nulle, not´ee Om,n, est la matrice dont tous les ´el´ements sont nuls.
– Lamatrice oppos´eed’une matriceAest not´ee−A. SiA= (aij) 1≤i≤m 1≤j≤n
alors−A= (−aij) 1≤i≤m 1≤j≤n
.
Propri´et´e 3.1.1 Si A, B et C sont des matrices de mˆeme ordre, alors nous avons
• A+B=B+A (commutativit´e),
• A+ (B+C) = (A+B) +C (associativit´e).
Exemple 3.1.3 Soient les matricesA=
(1 −1
3 0
) ,B=
(6 −5
2 1
)
etC = (0 2
2 4 )
. On a alors
• A+B=
(1 + 6 −1−5 3 + 2 0 + 1
)
=
(7 −6
5 1
)
et B+A=
(6 + 1 −5−1 2 + 3 1 + 0
)
=
(7 −6
5 1
) .
• A+B=
(7 −6
5 1
)
et (A+B) +C =
(7 −4
7 5
) . B+C =
(6 −3
4 5
)
etA+ (B+C) =
(7 −4
7 5
) . D´efinition 3.1.4
– On appelle matrice diagonale toute matrice carr´ee D = (dij) 1≤i, j≤n telle que i̸= j ⇒ dij = 0.
Si on note di=dii, une matrice diagonale est de la forme
Dn=
d1 0 . . . 0 0 0 d2 . . . 0 0 ... ... . .. ... ... 0 0 . . . dn−1 0 0 0 . . . 0 dn
On la note Diag(d1, d2, . . . , dn).
– La matrice identit´e d’ordren, not´ee In, est la matrice diagonale Diag(1,1, . . . ,1).
D´efinition 3.1.5 On dit qu’une matrice carr´ee A = (aij)1≤i,j≤n est triangulaire sup´erieure (resp.
inf´erieure) si i > j ⇒aij = 0 (resp. si i < j ⇒aij = 0).
Remarque 3.1.2 Une matrice triangulaire sup´erieure et inf´erieure est une matrice diagonale.
D´efinition 3.1.6 - Produit d’une matrice par un scalaire Si A= (aij) 1≤i≤m
1≤j≤n
est une matrice m×n et siα ∈K, on d´efinit le produit d’une matrice par un scalaire par
αA= (αaij) 1≤i≤m 1≤j≤n
Exemple 3.1.4 SiA=
(3 4 2 1 3 5 )
etα= 1
2, on obtient
C =αA=
1
2×3 1
2×4 1 2 ×2 1
2×1 1
2×3 1 2 ×5
=
3
2 2 1
1 2
3 2
5 2
.
Propri´et´e 3.1.2 SoientA et B deux matrices de mˆeme ordre et α∈K un scalaire, on a α(A+B) =αA+αB (distributivit´e).
D´efinition 3.1.7 - Produit de matrices Si A = (aik) 1≤i≤m
1≤k≤p
est une matrice m×p et si B = (bkj) 1≤k≤p 1≤j≤n
est une matrice p×n, on d´efinit le produit des matrices par
3.1. RAPPELS 69
A×B= ( p
∑
k=1
aikbkj )
1≤i≤m 1≤j≤n
qui est une matrice m×n.
On proc`ede de la mani`ere suivante pour multiplier deux matrices :
Exemple 3.1.5 Soient les deux matricesA=
( 1 3 0
−1 1 2 )
etB =
1 2 0
0 2 3
0 −1 −2
.
• La matriceA est d’ordre 2×3, la matriceB est d’ordre 3×3 donc la matriceA×B est d’ordre 2×3.
• On a A×B =
( 1×1 + 3×0 + 0×0 1×2 + 3×2 + 0×(−1) 1×0 + 3×3 + 0×(−2) (−1)×1 + 1×0 + 2×0 (−1)×2 + 1×2 + 2×(−1) (−1)×0 + 1×3 + 2×(−2)
)
=
( 1 8 9
−1 −2 −1
) . Propri´et´e 3.1.3 Si A∈ Mm,n(K), B ∈ Mn,p(K), C∈ Mp,q(K), alors
• A×(B×C) = (A×B)×C (associativit´e),
• A×(B+C) =A×B+A×C (distributivit´e).
• Si A∈ Mn(K) alors A×In=In×A=A.
Remarque 3.1.3 Attention, A×B ̸=B×A en g´en´eral.
Prenons le cas g´en´eral avecA d’ordre m×pet B d’ordrep×n. Le produitA×B est d´efini, c’est une matrice d’ordre m×n. Qu’en est-il du produit B×A? Il faut distinguer trois cas :
– si m̸=nle produit B×A n’est pas d´efini ;
– si m =n maisp ̸=n, le produit A×B est d´efini et c’est une matrice d’ordre m×n=n×n tandis que le produit B×A est d´efini mais c’est une matrice d’ordre p×p doncA×B ̸=B×A;
– si m=n=p,A etB sont deux matrices carr´ees d’ordrem. Les produits A×B etB×A sont aussi carr´es et d’ordrem mais l`a encore, en g´en´eral, A×B ̸=B×A.
Exemple 3.1.6 Soient les matrices A=
(1 −1
3 0
)
et B =
(6 −5
2 1
)
. On obtient A×B =
(4 −6 18 −15
) et B×A=
(−9 −6 5 −2
) .
70 CHAPITRE 3. LA PROGRAMMATION LIN ´EAIRE - ´ECRITURE MATRICIELLE
D´efinition 3.1.8 - Matrice transpos´ee Si A= (aij) 1≤i≤m
1≤j≤n
est une matrice de format m×n, on d´efinit la matrice transpos´ee deA, not´ee AT, par A= (aji) 1≤j≤n
1≤i≤m
.
C’est donc une matrice n×m obtenue en ´echangeant lignes et colonnes de la matrice initiale.
Exemple 3.1.7 Soit la matrice A d’ordre 2×3 suivante A =
(1 −1 5
3 0 7
)
. Sa transpos´ee est la matrice AT d’ordre 3×2 suivanteAT =
1 3
−1 0
5 7
.
Propri´et´e 3.1.4
• (AT)T =A si A∈ Mm,n(K),
• (αA)T =αAT si α∈K et A∈ Mm,n(K),
• (A+B)T =AT +BT siA, B∈ Mm,n(K),
• (A×B)T =BT ×AT siA∈ Mm,n(K) etB ∈ Mn,p(K).
D´efinition 3.1.9 - Matrice sym´etrique, matrice antisym´etrique – Une matriceA est dite sym´etriquesi AT =A.
– Une matriceA est dite antisym´etrique siAT =−A.
Exemple 3.1.8
• A=
1 5 −9
5 4 0
−9 0 7
est une matrice sym´etrique.
• B =
0 5 −9
−5 0 7
9 −7 0
est une matrice antisym´etrique.
D´efinition 3.1.10 - Matrice inversible, matrice singuli`ere
– Une matrice carr´ee A ∈ Mn(K) est dite inversible ou r´eguli`ere si elle est sym´etrisable pour le produit matriciel, autrement dit s’il existe une matrice B ∈ Mn(K) telle que
A×B =B×A=In. – L’inverse, s’il existe, d’une matrice A est not´e A−1.
– Une matrice non r´eguli`ere est dite singuli`ere.
Proposition 3.1.1 Soient A et B deux matrices inversibles, alors
• A−1 l’est aussi et(A−1)−1 =A,
• AT l’est aussi et (AT)−1,
• A×B l’est aussi et (A×B)−1=B−1×A−1.
D´efinition 3.1.11 - D´eterminant d’une matrice d’ordren Soit A= (aij) 1≤i≤m
1≤j≤n
une matrice carr´ee d’ordre n. ´Etant donn´e un couple (i, j) d’entiers, 1 ≤i, j ≤n, on note Aij la matrice carr´ee d’ordre n−1 obtenue en supprimant la i-i`eme ligne et la j-i`eme colonne de A. On d´efinit led´eterminant de A, et on le note det(A), par r´ecurrence sur l’ordre de la matriceA :
– si n= 1 : le d´eterminant de A est le nombre det(A) =a11, – si n >1 : le d´eterminant de A est le nombre
det(A) =
∑n j=1
(−1)i+jaijdet(Aij) quelle que soit la ligne i, 1≤i≤n, ou, de mani`ere ´equivalente, le nombre
det(A) =
∑n i=1
(−1)i+jaijdet(Aij) quelle que soit la colonne j, 1≤j≤n.
3.1. RAPPELS 71
Remarque 3.1.4 Pour retrouver les signes de ces deux formules, on peut remarquer que la distribution des signes + et −avec la formule (−1)i+j est donn´ee par :
+ − + − . . .
− + − + . . . + − + − . . . ... ... ... ... . ..
Exemple 3.1.9 Soit la matriceA=
(a11 a12
a21 a22
) alors
det(A11) =a22, det(A12) =a21, det(A21) =a12, det(A22) =a11 et on peut calculer det(A) par l’une des formules suivantes :
• a11det(A11)−a12det(A12) =a11a22−a12a21 (d´eveloppement suivant la ligne i= 1),
• −a21det(A21) +a22det(A22) =−a21a12+a22a11 (d´eveloppement suivant la lignei= 2),
• a11det(A11)−a21det(A21) =a11a22−a21a12 (d´eveloppement suivant la colonne j= 1),
• −a12det(A12) +a22det(A22) =−a12a21+a22a11 (d´eveloppement suivant la colonnej = 2).
Ces formules donnent bien le mˆeme r´esultat.
Remarque 3.1.5 Il convient d’utiliser cette d´efinition apr`es avoir fait apparaˆıtre sur une mˆeme rang´ee le plus possible de z´eros sachant que
– si deux colonnes (resp. deux lignes) sont identiques ou proportionnelles, alors det(A) = 0, – si on ´echange deux colonnes (resp. deux lignes), alors le d´eterminant est chang´e en son oppos´e, – on ne change pas un d´eterminant si on ajoute `a une colonne (resp. une ligne) une combinaison lin´eaire
des autres colonnes (resp. lignes).
Exemple 3.1.10 Soit la matrice A=
1 0 1 0 2 0 0 3 5
alors
det(A11) = det (2 0
3 5 )
= 10, det(A12) = det (0 0
0 5 )
= 0, det(A13) = det (0 2
0 3 )
= 0, det(A21) = det
(0 1 3 5
)
=−3, det(A22) = det (1 1
0 5 )
= 5, det(A23) = det (1 0
0 3 )
= 3, det(A31) = det
(0 1 2 0
)
=−2, det(A32) = det (1 1
0 0 )
= 0, det(A33) = det (1 0
0 2 )
= 2, et on peut calculer det(A) par l’une des formules suivantes :
• 1×det(A11) + 0×det(A12) + 1×det(A13) = 10 + 0 + 0 = 10,
• 0×det(A21) + 2×det(A22) + 0×det(A23) = 0 + 2×5 + 0 = 10, (formule pratique car il n’y a qu’un d´eterminant `a calculer),
• 0×det(A31) + 3×det(A32) + 5×det(A33) = 0 + 0 + 5×2 = 10,
• 1×det(A11) + 0×det(A21) + 0×det(A31) = 10 + 0 + 0 = 10, (formule pratique car il n’y a qu’un d´eterminant `a calculer),
• 0×det(A12) + 2×det(A22) + 3×det(A32) = 0 + 2×5 + 0 = 10,
• 1×det(A13) + 0×det(A23) + 5×det(A33) = 0 + 0 + 5×2 = 10.
Proposition 3.1.2 - D´eterminant d’une matrice d’ordre 2
Soit A une matrice carr´ee d’ordre n = 2. Le d´eterminant de A peut se calculer `a l’aide de la technique suivante :
72 CHAPITRE 3. LA PROGRAMMATION LIN ´EAIRE - ´ECRITURE MATRICIELLE
Exemple 3.1.11 Soit la matrice A= (5 7
4 3 )
alors
det(A) = 5×3−7×4 = 15−28 =−13.
Proposition 3.1.3 - D´eterminant d’une matrice d’ordre 3 : R`egle de Sarrus
Soit A une matrice carr´ee d’ordre n = 3. Le d´eterminant de A peut se calculer `a l’aide de la technique suivante :
Exemple 3.1.12 Soit la matrice A=
1 0 1 0 2 0 0 3 5
. On a alors
det(A) = (1×2×5 + 0×3×1 + 0×0×0)−(1×2×0 + 0×3×1 + 5×0×0) = 10.
Exemple 3.1.13 Soit la matrice A=
5 7 1 4 3 2 2 1 6
, alors
det(A) = (5×3×6 + 4×1×1 + 2×7×2)−(1×3×2 + 2×1×5 + 7×4×6) =−62.
Propri´et´e 3.1.5 Le d´eterminant d’une matrice triangulaire est ´egal au produit des ´el´ements diagonaux.
Th´eor`eme 3.1.1 A est inversible si et seulement si det(A)̸= 0.
Propri´et´e 3.1.6
• det(AT) = det(A),
• det(A−1) = 1 det(A),
• det(A×B) = det(A) det(B).
D´efinition 3.1.12 Rang
Le rang d’une matrice quelconque A est ´egal au plus grand entier s tel que l’on puisse extraire de A une matrice carr´ee d’ordre sinversible, c’est-`a-dire de d´eterminant non nul. Les op´erations ´el´ementaires sur les lignes ou les colonnes (ajout `a une colonne - resp. une ligne - une combinaison lin´eaire des autres colonnes - resp. lignes) d’une matrice ne modifient pas le rang.
Exemple 3.1.14 Soit la matrice suivante A=
(1 3 2 1 3 1 )
. Le rang deA est 2 : – A est d’ordre 2×3 donc s≤min{2,3} soits= 0,1 ou 2 ;
– comme le d´eterminant de la sous-matrice compos´ee de la premi`ere et de la deuxi`eme colonne est nul, on ne peut pas conclure ;
3.2. LA M ´ETHODE DU SIMPLEXE SOUS FORME MATRICIELLE 73
– comme le d´eterminant de la sous-matrice compos´ee de la premi`ere et de la troisi`eme colonne est non nul, alors s= 2.
Exemple 3.1.15 Soit la matrice suivante A=
1 0 1 0 5 −1
−1 0 −1
• A est d’ordre 3×3 donc s≤3,
• le d´eterminant deAest 0 donc s̸= 3,
• le d´eterminant de la sous-matrice (1 0
0 5 )
est 5, donc s= 2.
3.2 La m´ ethode du simplexe sous forme matricielle
3.2.1 Forme g´en´erale d’un programme lin´eaire
Le programme lin´eaire (1.1)-(1.2) s’´ecrit sous forme canonique matricielle : { Ax≤b, x≥0
maximiserZ(x) =cTx (3.1)
avec
x=
x1
x2
... xn
∈Rn+,c=
c1
c2
... cn
∈Rn,b=
b1
b2
... bm
∈Rm etA=
a11 a12 . . . a1n
a21 a22 . . . a2n
... ... . .. ... am1 am2 . . . amn
∈Rm×n.
Remarque 3.2.1 Les coefficients de la matriceAd´efinis pr´ec´edemment ne sont pas n´ecessairement ceux du programme lin´eaire (1.1)-(1.2). En effet, (1.1) implique des in´egalit´es quelconques (≤ou≥) tandis que (3.1) implique uniquement l’in´egalit´e ≤. Consid´erons par exemple les contraintes
{ x+ 2y≤2
2x−y≥3 Elles pourront alors s’´ecrire, matriciellement, sous la forme
( 1 2
−2 1 ) (x
y )
≤ ( 2
−3 )
ou
(−1 −2 2 −1
) (x y )
≥ (−2
3 )
.
Proposition 3.2.1 Chaque programme lin´eaire sous forme canonique peut s’´ecrire sous forme standard et inversement.
Preuve:
(⇒) Consid´erons le programme lin´eaire (3.1) ´ecrit sous sa forme canonique. On a Ax≤b, x≥0 ⇔
∑n j=1
aijxj ≤bi, i= 1, . . . , m, x≥0
⇔
∑n j=1
aijxj+ei =bi o`uei=bi−
∑n j=1
aijxj, i= 1, . . . , m, x≥0
⇔ (A Im)
| {z }
A˜
(x e )
| {z }
˜ x
=b, x˜≥0
On pose alors Z(x) = ˜cT (x
e )
o`u ˜c = (c
0 )
= (c1, . . . , cn,0, . . . ,0
| {z }
m fois
) et le programme lin´eaire (´ecrit sous sa forme canonique) est strictement ´equivalent au programme lin´eaire suivant (´ecrit sous sa forme standard) :
{ A˜˜x=b, x˜≥0,
maximiserZ(˜x) = ˜cTx˜
(⇐) Soit Ax=b un programme lin´eaire donn´e sous sa forme standard. On a
74 CHAPITRE 3. LA PROGRAMMATION LIN ´EAIRE - ´ECRITURE MATRICIELLE
Ax=b⇔
{ Ax≥b Ax≤b ⇔
{ Ax≤b (−A)x≤ −b ⇔
( A
−A )
≤ ( b
−b )
Si on pose ˜A = ( A
−A )
et ˜b= ( b
−b )
, l’in´egalit´e pr´ec´edente implique ˜Ax ≤b˜ qui est bien un programme lin´eaire sous forme canonique.
Exemple 3.2.1 On consid`ere le programme lin´eaire de l’exercice 10 du chapitre 2. On rappelle sa forme canonique et sa forme standard :
x, y, z≥0 x+ 2y+ 4z≤70 2x+y+z≤80 3x+ 2y+ 2z≤60
maximiser Z(x, y, z) = 3x+ 5y+ 6z
⇔
x, y, z, e1, e2, e3≥0 x+ 2y+ 4z+e1 = 70 2x+y+z+e2 = 80 3x+ 2y+ 2z+e3 = 60
maximiser Z(x, y, z, e1, e2, e3) = 3x+ 5y+ 6z Si on pose
A=
1 2 4 2 1 1 3 2 2
,x=
x y z
,b=
70 80 60
,c=
3 5 6
, ˜A=
1 2 4 1 0 0
2 1 1 0 1 0
3 2 2 0 0 1
, ˜x=
x y z e1 e2
e3
et ˜c=
3 5 6 0 0 0
,
le programme s’´ecrit sous les formes canonique et standard matricielles suivantes : { Ax≤b, x≥0
maximiser Z(x) =cTx ⇔
{ A˜˜x=b,x˜ ≥0
maximiserZ(˜x) = ˜cTx˜
On utilisera dor´enavant la forme standard matricielle et on posera A= ˜A,x= ˜xetc= ˜c.
3.2.2 Repr´esentation matricielle D´efinition 3.2.1
– On appellebase une sous-matrice r´eguli`ere de A. Il faut que la matrice A(m, n) soit de rang m.
– Une solution de base est obtenue en posant n−m variables ´egales `a 0, et en r´esolvant par rapport aux m variables restantes, qui sont les variables de base (VDB).
– Les n−m variables `a 0 sont les variables hors base (VHB). Des choix diff´erents de VHB donnent lieu `a diff´erentes solutions de base.
Les colonnes de A permettant `a une sous-matrice B de A d’ˆetre r´eguli`ere et qui repr´esentent des variables particuli`eres peuvent commuter si on ordonne correctementxetcT. On peut alors ´ecrire
A= (BE),x= (xb
xe
)
,cT =( cTb cTe) et ainsi
{ Ax=b, x≥0
maximiser ou minimiserZ(x) =cTx ⇔
{ Bxb+Exe =b, x≥0
maximiser ou minimiserZ(x) =cTbxb+cTexe
Une solution de base est donc telle que
{ xe = 0
Bxb=b⇔xb=B−1b (3.2)
Certains choix de variables peuvent ne pas g´en´erer de solution de base.
D´efinition 3.2.2 Une solution de base est dite r´ealisable(SBR) si
3.2. LA M ´ETHODE DU SIMPLEXE SOUS FORME MATRICIELLE 75
xb =B−1b≥0.
Si le vecteur xb contient des termes nuls, on dira que cette solution est une solution de base d´eg´en´er´ee.
Remarque 3.2.2 Lorsque les coefficientsbi sont positifs ou nuls, on obtient syst´ematiquement une solution de base r´ealisable en mettant les variables du probl`eme initial hors base (donc nulles) et les variables d’´ecart dans la base et ´egales aux bi.
Exemple 3.2.2 Illustrons ces d´efinitions `a l’aide du programme lin´eaire (d´ej`a exprim´e sous forme standard) de l’exercice 10 du chapitre pr´ec´edent :
x, y, z, e1, e2, e3≥0 x+ 2y+ 4z+e1 = 70 2x+y+z+e2 = 80 3x+ 2y+ 2z+e3 = 60
maximiser Z(x, y, z, e1, e2, e3) = 3x+ 5y+ 6z On peut dresser le tableau suivant avec n= 6, m= 3 :
no VDB VHB Rang(A) Solution de base R´ealisabilit´e 1 x, y, z e1, e2, e3 3 (100 ;-225 ;105) ̸>0 2 x, y, e1 z, e2, e3 3 (100 ;-120 ;210) ̸>0 3 x, y, e2 z, e1, e3 3 (-5 ;37,5 ;52,5) ̸>0 4 x, y, e3 z, e1, e2 3 (30 ;20 ;-70) ̸>0 5 x, z, e1 y, e2, e3 3 (100 ;-120 ;450) ̸>0 6 x, z, e2 y, e1, e3 3 (10 ;15 ;45) r´ealisable 7 x, z, e3 y, e1, e2 3 (35,7143 ;8,5714 ;-64,2857) ̸>0 8 y, z, e1 x, e2, e3 2 Pas de solution
9 y, z, e2 x, e1, e3 3 (25 ;5 ;50) r´ealisable 10 y, z, e3 x, e1, e2 3 (125 ;-45 ;-100) ̸>0 11 e1, e2, e3 x, y, z 3 (70 ;80 ;60) r´ealisable 12 x, e1, e2 y, z, e3 3 (20 ;50 ;40) r´ealisable 13 x, e1, e3 y, z, e2 3 (40 ;30 ;-60) ̸>0 14 x, e2, e3 y, z, e1 3 (70 ;-60 ;-150) ̸>0 15 y, e1, e2 x, z, e3 3 (30 ;10 ;50) r´ealisable 16 y, e1, e3 x, z, e2 3 (80 ;-90 ;-100) ̸>0 17 y, e2, e3 x, z, e1 3 (35 ;45 ;-10) ̸>0 18 z, e1, e2 x, y, e3 3 (30 ;-50 ;50) ̸>0 19 z, e2, e3 x, y, e1 3 (17,5 ;62,5 ;25) r´ealisable 20 z, e1, e3 x, y, e2 3 (80 ;-250 ;-100) ̸>0
Table 3.1 – Bases et r´ealisabilit´e de la SBR associ´ee
Int´eressons-nous au nombre de solutions possibles en g´en´eral : – le nombre de bases candidates est
76 CHAPITRE 3. LA PROGRAMMATION LIN ´EAIRE - ´ECRITURE MATRICIELLE
Cnm= n!
(n−m)!m!
(on a bien test´e C63 = 3!(6−3)!6! = 63××52××41 = 20 bases dans l’exemple pr´ec´edent).
Toutes les bases candidates ne sont pas inversibles, donc on peut seulement dire que le nombre pr´ec´edent est une borne sup´erieure (dans notre exemple, on trouve 19 bases inversibles).
– Une m´ethode bas´ee sur l’exploration des points extrˆemes est cependant non-polynomiale (on comprend bien qu’on ne peut appliquer pour mgrand la technique qui nous a permis, pour l’exemple pr´ec´edent, de r´ecup´erer le tableau 3.1, `a savoir la r´esolution de 21 syst`emes de taille 3×3)
– L’exp´erience montre que pour un probl`eme de n variables `a m contraintes, la solution optimale est trouv´ee en moyenne en moins de 3mop´erations (ce qui signifie pour notre exemple, qu’on doit pouvoir trouver la solution du PL en moins de 9 it´erations).
D´efinition 3.2.3 Pour tout probl`eme de PL, deux SBR sont adjacentessi leurs ensembles de variables de base ont m−1 variables de base en commun.
L’interpr´etation g´eom´etrique est que les 2 SBR sont situ´ees le long d’une mˆeme arˆete sur le polytope r´ealisable.
3.2.3 Description g´en´erale de l’algorithme
On rappelle que l’algorithme du simplexe (pour une maximisation) suit les ´etapes suivantes : 1. Trouver une SBR pour le PL, appel´ee la SBR initiale.
2. D´eterminer si la SBR courante est optimale. Sinon, trouver une SBR adjacente qui poss`ede une valeur Z plus ´elev´ee.
3. Retourner au point 2. avec la nouvelle SBR comme SBR courante.
Les deux questions suivantes sont donc : – comment d´etecter l’optimalit´e ? et – comment se d´eplacer ?
Pour r´epondre `a ces questions, on ´ecrit :
Z =cTbxb+cTexe et
Bxb+Exe=b.
Donc, puisque B ∈Rm×m est de rangm,B est inversible et xb =B−1(b−Exe).
Par substitution, on obtient
Z =cTbB−1b+ (cTe −cTbB−1E)xe=cTbB−1b+cTexe en posant
cTe =cTe −cTbB−1E.
Le terme cTe correspond `a l’augmentation du coˆut pour une augmentation des variables dansxe. Pour une SBR, on a xe = 0 et donc, ce terme n’a pas d’incidence. Si tous les coˆuts ce sont n´egatifs (pour une maxi- misation), toute augmentation des variables de xe diminuera la valeur de Z, et donc la solution obtenue est optimale. R´eciproquement, pour une minimisation, si tous les coˆuts sont positifs, toute augmentation des variables de xe augmentera la valeur deZ. On a donc r´epondu `a la premi`ere question, relative au test d’optimalit´e.
Pour une maximisation, si notre base est telle que cTe ne soit pas strictement n´egative ou nulle, alors il existe une variable (xe)k=xk de xe telle que (ce)k=ck >0. Une augmentation dexk est donc susceptible d’am´eliorerZ. C’est bien-sˆur le crit`ere de Dantzig qui va d´esigner cette variable. La solution va alors s’´ecrire :
3.2. LA M ´ETHODE DU SIMPLEXE SOUS FORME MATRICIELLE 77
xb =B−1(b−xkAk−E′x′e)
o`uAk d´esigne lak-i`eme colonne de AEn fixant x′e = 0, et en faisant varierxk seulement, on obtient : xb=B−1(b−Akxk) = B−1b−B−1Akxk
=b−P xk
Comme originellementxk est nulle, on ne peut que l’augmenter. Il y a deux cas :
– cas 1 :∀i,Pi ≤0. En ce cas la solution est non born´ee. xk tend vers +∞ etZ vers −∞. – cas 2 : il y a 2 possibilit´es : pour chaque i
1. soit Pi≤0, et donc, (xb)i ≥0 pour tout xk ≥0 : on ne peut pas utiliser cette variable.
2. soit Pi >0, et dans ce cas, (xb)i ≥0 pour xk ≤ bPii. Ainsi, pour tout Pi >0, il existe une valeur maximale de xk= bPi
i, permettant xb ≥0. On choisit donc la variable ktelle que : k= argmin
i/Pi>0
bi
Pi
3.2.4 Exemple avec solution optimale unique Reprenons l’exercice 10 du chapitre pr´ec´edent :
• 1`ere it´eration :
– On choisit comme base initiale VB= (e1, e2, e3). On a dans ce cas B =
1 0 0 0 1 0 0 0 1
=I3,b=
70 80 60
=b,E =
1 2 4 2 1 1 3 2 2
– Les coˆuts r´eduits d´efinis parcTe =cTe −cTbB−1E sont ´egaux `a
x y z
cTe = (3 5 6) Le crit`ere de Dantzig implique que la variablez entre en base.
– On a P =B−1A3= (4,1,2) et on calcule ensuite les ratios bPi
i :
e1 e2 e3
bi
Pi
70
4 = 17,5 801 = 80 602 = 30 On en d´eduit que la variable sortante est e1.
• 2`eme it´eration :
– On a maintenant la base VB= (z, e2, e3). On a alors B =
4 0 0 1 1 0 2 0 1
,b=
17,5 62,5 25
,E=
1 2 1 2 1 0 3 2 0
On remarque queb est d´efini dans la ligne 19 du tableau 3.1.
– Les coˆuts r´eduits sont ´egaux `a
x y e1 cTe = (32 2 −32) Le crit`ere de Dantzig implique que la variabley entre en base.
– On a P =B−1A2= (2,1,2) et on calcule ensuite les ratios bPi
i : z e2 e3 bi
Pi 35 125 25 On en d´eduit que la variable sortante est e3.
• 3`eme it´eration :
– On a maintenant la base VB= (z, e2, y). On a alors B=
4 0 2 1 1 1 2 0 2
,b=
5 50 25
,E =
1 0 1 2 0 0 3 1 0
78 CHAPITRE 3. LA PROGRAMMATION LIN ´EAIRE - ´ECRITURE MATRICIELLE
On remarque queb est d´efini dans la ligne 9 du tableau 3.1.
– Les coˆuts r´eduits sont ´egaux `a
x e1 e3 cTe = (−72 −12 −2)
L’algorithme s’arrˆete car tous les poids sont n´egatifs. On a donc trouv´e l’optimum.
• Conclusion :
– La solution est constitu´ee des variables de base y, z, e2.
– Les valeurs de ces variables sont donn´ees respectivement par 25,5,50.
Toutes les autres valeurs sont ´egales `a 0.
– La fonction de coˆut vaut donc :
Z = 3×0 + 5×25 + 6×5 = 155.
3.2.5 Exemple avec solution optimale multiple
Une ´eb´enisterie produit des bureaux, des tables et des chaises. Chaque type de produit r´eclame du bois et deux types de travaux : mise en forme et finition, suivant le tableau :
Ressource bureau table chaise
planches 8m 6m 1m
mise en forme 4h 2h 32h finition 2h 32h 12h On dispose de 48m de planches, 20h de mise en forme et 8h de finition.
On vend un bureau pour 60e, une table pour 35eet une chaise pour 20e. La demande pour les chaises et les bureaux est illimit´ee, mais on ne pense vendre que 5 tables au plus. On veut maximiser le profit.
Formalisons le probl`eme : soientx1, x2, x3 les variables d´ecrivant respectivement les nombres de bureaux, de tables et de chaises. On cherche `a r´esoudre le PL
x1, x2, x3 ≥0
8x1+ 6x2+x3 ≤ 48 4x1+ 2x2+ 32x3 ≤ 20 2x1+32x2+12x3 ≤ 8
x2 ≤ 5
maximiserZ(x1, x2, x3) = 60x1+ 35x2+ 20x3
• Premi`ere it´eration :
– On a initialement VB={x4, x5, x6, x7}. On a donc B =
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
,b=
48 20 8 5
,E=
8 6 1 4 6 32 2 32 12 0 1 0
. – Les coˆuts r´eduits sont ´egaux `a
x1 x2 x3 cTe = (60 35 20) Le crit`ere de Dantzig implique que la variablex1 entre en base.
– On a P =B−1A1= (8,4,4,0) et on calcule ensuite les ratios bPi
i : x4 x5 x6 x7
bi
Pi 6 5 4 ∞
On en d´eduit que la variable sortante est x6.
3.2. LA M ´ETHODE DU SIMPLEXE SOUS FORME MATRICIELLE 79
• Deuxi`eme it´eration :
– On a initialement VB={x4, x5, x1, x7}. On a donc B =
1 0 8 0 0 1 4 0 0 0 2 0 0 0 0 1
,b=
16
4 4 5
,E=
6 1 0 2 32 0
3 2
1
2 1
1 0 0
. – Les coˆuts r´eduits sont ´egaux `a
x2 x3 x6
cTe = (−10 5 −30) Le crit`ere de Dantzig implique que la variablex3 entre en base.
– On a P =B−1A3= (−1,12,14,0) et on calcule ensuite les ratios bPi
i : x4 x5 x1 x7
bi
Pi −16 8 16 ∞
On en d´eduit que la variable sortante est x5.
• Troisi`eme it´eration :
– On a maintenant VB={x4, x3, x1, x7}. On a donc B =
1 1 8 0 0 32 4 0 0 12 2 0 0 0 0 1
,b=
24
8 2 5
,E =
6 1 0 2 1 0
3
2 0 1
1 0 0
. – Les coˆuts r´eduits sont ´egaux `a
x2 x5 x6
cTe = (0 −10 −10)
On a trouv´e un optimum mais x2 est `a z´ero. Ceci indique une solution non unique car on peut faire entrerx2 dans la base `a coˆut constant. Doncx2 entre dans la base. On poursuit alors le calcul normalement.
– On a P =B−1A3= (−2,−2,54,1) et on calcule ensuite les ratios bPi
i : x4 x3 x1 x7
bi
Pi −12 −4 1,6 5 On en d´eduit que la variable sortante est x1.
• Quatri`eme it´eration :
– On a maintenant VB={x4, x3, x2, x7}. On a donc B =
1 1 6 0
0 32 2 0 0 12 32 0
0 0 1 1
,b=
27,2 11,2 1,6 3,4
,E=
8 0 0 4 1 0 2 0 1 0 0 0
. – Les coˆuts r´eduits sont ´egaux `a
x1 x5 x6
cTe = (0 −10 −10)
On a trouv´e un optimum, mais x1 est `a z´ero. Ceci indique une solution non unique, car on peut faire entrerx1 dans la base `a coˆut constant. Doncx1entre dans la base et on poursuit alors le calcul normalement.
– On a P =B−1A3= (−2,−2,54,1) et on calcule ensuite les ratios bPi
i : x4 x3 x2 x7
bi
Pi 17 7 2 −174
On en d´eduit que la variable sortante est x2. On a d´ecouvert un cycle.
• Conclusion :
– La solution est constitu´ee des variables de base r´ealisables possibles. Ici VB1={x4, x3, x1, x7}, VB2={x4, x3, x2, x7} et de toutes leurs combinaisons lin´eaires interm´ediaires.
80 CHAPITRE 3. LA PROGRAMMATION LIN ´EAIRE - ´ECRITURE MATRICIELLE
– Les valeurs de ces variables sont donn´ees par
b1 ={24,8,2,5}, b2 ={27,2; 11,2; 1,6; 3,4} respectivement. Toutes les autres valeurs sont ´egales `a 0.
– En ne comptant que les variables entrant dans le coˆut, les deux points optimaux extrˆemes sont : f1= (x1, x2, x3) = (2,0,8), f2 = (x1, x2, x3) = (0; 1,6; 11,2).
– Toutes les solutions interm´ediaires sont donn´ees par :
(x1, x2, x3) = (2c; 1,6−1,6c; 11,2−3,2c) avec 0≤c≤1.
– La fonction de coˆut vaut donc :
Z(x1, x2, x3) = 60x1+ 30x2+ 20x3 = 280 et elle est constante pour toutes ces solutions.
– Pour des probl`emes plus complexes, on peut avoir plusieurs variables `a z´ero dansP, et non plus une seule. L’ensemble des solutions est alors l’espace vectoriel convexe induit par les solutions extrˆemes.
Pour les trouver il faut r´ealiser toute les substitutions possibles autoris´ees.
3.2.6 Exemple avec solution non born´ee
Soit une boulangerie qui fabrique des petits pains ordinaires et des pains campagnards ; – Les pains ordinaires se vendent pour 36 centimes et les pains campagnards 30 centimes ;
– Un pain ordinaire n´ecessite une dose de levure et 60g de farine, un pain campagnard une dose de levure et 50g de farine.
– La boulangerie poss`ede pour le moment 5 doses de levure et 100g de farine.
– La levure coˆute 3 centimes la dose, et la farine 4 centimes les 10g.
Maximisons le profit de la boulangerie.
Soientx1, x2, x3les nombres respectifs de pains ordinaires produits, de pains campagnards produits, de doses de levure et x4 la quantit´e de farine consomm´ee par quantit´e de 10g. Les revenus sont ´egaux `a 36x1+ 30x2, les coˆuts sont´egaux `a 3x3 + 4x4. La fonction objectif `a maximiser est Z(x1, x2, x3) = 36x1+ 30x23x34x4. Les contraintes sont donn´ees par les in´egalit´es : x1+x2 ≤5 +x3 et 6x1 + 5x2 ≤10 +x4. On introduit 2 variables d’´ecart pour les contraintes, x5,x6 qui sont toutes deux positives.
• 1`ere it´eration :
– VB={x5, x6}; VHB={x1, x2, x3, x4}. – b= (5 10).
– Coˆuts r´eduits : (36,30,−3,−4), on va donc faire rentrer x1 en base.
– P = (1 6)
– Ratios : (5 1,66667) on va donc faire sortir x6.
• 2`eme it´eration :
– VB={x5, x1}; VHB={x2, x3, x4, x6}. – b= (103 53).
– Coˆuts r´eduits : (0,−3,2,−6), on va donc faire rentrer x4 en base.
– P = (16 −16)
– Ratios : (20 −10) on va donc faire sortirx5.
• 3`eme it´eration :
– VB={x4, x1}; VHB={x2, x3, x5, x6}. – b= (20 5).
– Coˆuts r´eduits : (−2,9,−12,−4), on va donc faire rentrer x3 en base.
– P = (16 −16)
– Ratios : (−6 −1). La solution n’est pas born´ee.
• Solution : Avec la derni`ere solution de base r´{ ealisable, le syst`eme s’´ecrit : x4−6x3 = 20
x1−x3 = 5
Donc en augmentant x3 de fa¸con arbitraire, on fait aussi croˆıtre x4 et x1 arbitrairement, et donc on peut r´eduire Z sans fin, tout en ob´eissant `a toutes les contraintes.