Vous êtes sur la page 1sur 18

Recherche operationnelle

Master 2 LT, MPM, MIR


Universit
e du Littoral - C
ote dOpale, P
ole Lamartine
Laurent SMOCH
(smoch@lmpa.univ-littoral.fr)
Septembre 2013

Laboratoire de Mathematiques Pures et Appliquees Joseph Liouville


Universite du Littoral, zone universitaire de la Mi-Voix, batiment H. Poincarre
50, rue F. Buisson, BP 699, F-62228 Calais cedex

Table des mati`


eres
0 Introduction g
en
erale

1 La programmation lin
eaire - M
ethode graphique
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Modelisation dun programme lineaire . . . . . . . . . .
1.2.1 Exemples . . . . . . . . . . . . . . . . . . . . . .
1.2.2 Formule generale dun programme lineaire . . . .
1.3 Methode graphique : probl`eme `a deux inconnues . . . .
1.3.1 Regionnement du plan . . . . . . . . . . . . . . .
1.3.2 Les ensembles convexes . . . . . . . . . . . . . .
1.3.3 Resolution de syst`emes dinequations - Exemples
1.3.4 Resolution de programmes lineaires . . . . . . . .
1.3.5 Cas general . . . . . . . . . . . . . . . . . . . . .
1.3.6 Exercices . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

7
7
7
8
9
11
11
12
12
16
22
22

2 La programmation lin
eaire - M
ethode du simplexe
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 La methode du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Programme lineaire standard . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2 Lalgorithme du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3 Determination dune solution de base admissible . . . . . . . . . . . . . . . . .
2.2.4 Utilisation de la methode du simplexe lorsque la solution optimale nexiste pas
2.2.5 Utilisation de la methode du simplexe dans un probl`eme de minimisation . . .
2.2.6 Exercices recapitulatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

31
31
31
31
33
58
60
61
62

3 La programmation lin
eaire - Ecriture
matricielle
3.1 Rappels . . . . . . . . . . . . . . . . . . . . . . . .
3.2 La methode du simplexe sous forme matricielle . .
3.2.1 Forme generale dun programme lineaire . .
3.2.2 Representation matricielle . . . . . . . . . .
3.2.3 Description generale de lalgorithme . . . .
3.2.4 Exemple avec solution optimale unique . . .
3.2.5 Exemple avec solution optimale multiple . .
3.2.6 Exemple avec solution non bornee . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

67
67
73
73
74
76
77
78
80

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

II

`
TABLE DES MATIERES

Chapitre 3

La programmation lin
eaire - Ecriture
matricielle
3.1

Rappels

D
efinition 3.1.1
On appelle matrice m n (ou dordre m n) `
a coecients dans K tout tableau de m lignes et n
colonnes delements de K. Lensemble des matrices m n `
a coecients dans K est note Mm,n (K).
Si m = n on dit quon a une matrice carr
ee. Lensemble des matrices carrees de taille n `
a coecients
dans K est note Mn (K).
Une matrice m 1 est appelee vecteur-colonne et une matrice 1 n est appelee vecteur-ligne.
On convient de noter aij lelement de la matrice situe sur la i-`eme ligne et j-i`eme colonne (1 i m
et 1 j n).
Une matrice A est representee entre deux parenth`eses ou deux crochets :

a11 . . . a1j . . . a1n


a11 . . . a1j . . . a1n
..
..
..
..
..
..
..
..
..
..
.
.
.
.
.
.
.
.
.
.

A = ai1 . . . aij . . . ain ou A = ai1 . . . aij . . . ain


.
..
..
..
..
..
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
am1 . . . amj . . . amn
am1 . . . amj . . . amn
ou encore
A = (aij ) 1 i m ou A = [aij ] 1 i m .
1j n

1j n

Nous travaillerons avec K = R, Q ou Z.

1 4 2
Exemple 3.1.1 La matrice A = 0 1 3 est carree et dordre 3.
4 1 5
D
efinition 3.1.2 - Addition de matrices
Si A = (aij ) 1 i m et B = (bij ) 1 i m sont deux matrices m n, on denit laddition des matrices par
1j n

1j n

A + B = (aij + bij )
(
3
Exemple 3.1.2 Soient les matrices A =
1
(
3+6
A+B =
1+2

(
6 1
et B =
2 0
) (
4+1 2+9
9
=
3+0 5+3
3

4 2
3 5

1im
1j n

)
9
. On obtient
3
)
5 11
.
3 8

Remarque 3.1.1 La somme de deux matrices de tailles dierentes nest pas denie.

67

CHAPITRE 3. LA PROGRAMMATION LINEAIRE


- ECRITURE
MATRICIELLE

68

D
efinition 3.1.3
La matrice nulle, notee Om,n , est la matrice dont tous les elements sont nuls.
La matrice oppos
ee dune matrice A est notee A. Si A = (aij ) 1 i m alors A = (aij )
1j n

1im
1j n

Propri
et
e 3.1.1 Si A, B et C sont des matrices de meme ordre, alors nous avons
A + B = B + A (commutativite),
A + (B + C) = (A + B) + C (associativite).
(
)
(
)
(
)
1 1
6 5
0 2
Exemple 3.1.3 Soient les matrices A =
,B=
et C =
. On a alors
3 0
2 1
2 4
(
) (
)
(
) (
)
1 + 6 1 5
7 6
6 + 1 5 1
7 6
A+B =
=
et B + A =
=
.
3+2 0+1
5 1
2+3 1+0
5 1
(
)
(
)
7 6
7 4
A+B =
et (A + B) + C =
.
5 1
7 5
(
)
(
)
6 3
7 4
B+C =
et A + (B + C) =
.
4 5
7 5
D
efinition 3.1.4
On appelle matrice diagonale toute matrice carree D = (dij ) 1 i, j n telle que i = j dij = 0.
Si on note di = dii , une matrice diagonale
est de la forme

d1 0 . . .
0
0
0 d2 . . .
0
0

..
.
.
..
.
..
..
..
Dn = .
.

0 0 . . . dn1 0
0 0 ...
0
dn
On la note Diag(d1 , d2 , . . . , dn ).
La matrice identit
e dordre n, notee In , est la matrice diagonale Diag(1, 1, . . . , 1).
D
efinition 3.1.5 On dit quune matrice carree A = (aij )1i,jn 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 superieure et inferieure est une matrice diagonale.
D
efinition 3.1.6 - Produit dune matrice par un scalaire
Si A = (aij ) 1 i m est une matrice m n et si K, on denit le produit dune matrice par un scalaire
1j n
par
A = (aij )
(
)
1
3 4 2
Exemple 3.1.4 Si A =
et = ,
1 3 5
2

1
3

C = A = 2
1
1
2

1im
1j n

on obtient
1
4
2
1
3
2


1
3
2
2
2
= 1
1
5
2
2

2
3
2

.
5
2

Propri
et
e 3.1.2 Soient A et B deux matrices de meme ordre et K un scalaire, on a
(A + B) = A + B (distributivite).
D
efinition 3.1.7 - Produit de matrices
Si A = (aik ) 1 i m est une matrice m p et si B = (bkj )
1kp

produit des matrices par

1kp
1j n

est une matrice p n, on denit le

3.1. RAPPELS

69

(
AB =

)
aik bkj
1im
1j n

k=1

qui est une matrice m n.


On proc`ede de la mani`ere suivante pour multiplier deux matrices :

1 2
0
1 3 0
3 .
Exemple 3.1.5 Soient les deux matrices A =
et B = 0 2
1 1 2
0 1 2
La matrice A est dordre 2 3, la matrice B est dordre 3 3 donc la matrice A B est dordre 2 3.
On a
(
) (
)
11+30+00
1 2 + 3 2 + 0 (1)
1 0 + 3 3 + 0 (2)
1
8
9
AB = (1) 1 + 1 0 + 2 0 (1) 2 + 1 2 + 2 (1) (1) 0 + 1 3 + 2 (2) = 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 (associativite),
A (B + C) = A B + A C (distributivite).
Si A Mn (K) alors A In = In A = A.
Remarque 3.1.3 Attention, A B = B A en general.
Prenons le cas general avec A dordre m p et B dordre p n. Le produit A B est deni, cest une
matrice dordre m n. Quen est-il du produit B A ? Il faut distinguer trois cas :
si m = n le produit B A nest pas deni ;
si m = n mais p = n, le produit A B est deni et cest une matrice dordre m n = n n tandis
que le produit B A est deni mais cest une matrice dordre p p donc A B = B A ;
si m = n = p, A et B sont deux matrices carrees dordre m. Les produits A B et B A sont aussi
carres et dordre m mais l`a encore, en general, A B = B A.
(
)
(
)
(
)
1 1
6 5
4 6
Exemple 3.1.6 Soient les matrices A =
et B =
. On obtient A B =
et
3 0
2 1
18 15
(
)
9 6
BA=
.
5 2

CHAPITRE 3. LA PROGRAMMATION LINEAIRE


- ECRITURE
MATRICIELLE

70

D
efinition 3.1.8 - Matrice transposee
ee de A, notee AT ,
Si A = (aij ) 1 i m est une matrice de format m n, on denit la matrice transpos
1j n

par A = (aji )

1j n
1im

Cest donc une matrice n m obtenue en echangeant lignes et colonnes de la matrice initiale.
(
)
1 1 5
Exemple 3.1.7 Soit la matrice A dordre 2 3 suivante A =
. Sa transposee est la matrice
3 0 7

1 3
AT dordre 3 2 suivante AT = 1 0.
5 7
Propri
et
e 3.1.4
T
(A )T = A si A Mm,n (K),
(A)T = AT si K et A Mm,n (K),
(A + B)T = AT + B T si A, B Mm,n (K),
(A B)T = B T AT si A Mm,n (K) et B Mn,p (K).
D
efinition 3.1.9 - Matrice symetrique, matrice antisymetrique
Une matrice A est dite sym
etrique si AT = A.
Une matrice A est dite antisym
etrique si AT = A.
Exemple
3.1.8
1

5
A=
9

0
B = 5
9

5 9
4 0 est une matrice symetrique.
0 7

5 9
0
7 est une matrice antisymetrique.
7 0

D
efinition 3.1.10 - Matrice inversible, matrice singuli`ere
Une matrice carree A Mn (K) est dite inversible ou r
eguli`
ere si elle est symetrisable pour le
produit matriciel, autrement dit sil existe une matrice B Mn (K) telle que
A B = B A = In .
Linverse, sil existe, dune matrice A est note A1 .
Une matrice non reguli`ere est dite singuli`
ere.
Proposition 3.1.1 Soient A et B deux matrices inversibles, alors
A1 lest aussi et (A1 )1 = A,
AT lest aussi et (AT )1 ,
A B lest aussi et (A B)1 = B 1 A1 .
D
efinition 3.1.11 - Determinant dune matrice dordre n

Soit A = (aij ) 1 i m une matrice carree dordre n. Etant


donne un couple (i, j) dentiers, 1 i, j n,
1j n

on note Aij la matrice carree dordre n 1 obtenue en supprimant la i-i`eme ligne et la j-i`eme colonne de
A. On denit le d
eterminant de A, et on le note det(A), par recurrence sur lordre de la matrice A :
si n = 1 : le determinant de A est le nombre det(A) = a11 ,
si n > 1 : le determinant de A est le nombre
n

det(A) =
(1)i+j aij det(Aij ) quelle que soit la ligne i, 1 i n,
j=1

ou, de mani`ere equivalente, le nombre


n

det(A) =
(1)i+j aij det(Aij ) quelle que soit la colonne j, 1 j n.
i=1

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 donnee par :


+ + . . .


+ + . . .


+ + . . .


. . . . .
. .
.. .. .. ..
)
(
a11 a12
alors
Exemple 3.1.9 Soit la matrice A =
a21 a22
det(A11 ) = a22 , det(A12 ) = a21 , det(A21 ) = a12 , det(A22 ) = a11
et on peut calculer det(A) par lune des formules suivantes :
a11 det(A11 ) a12 det(A12 ) = a11 a22 a12 a21 (developpement suivant la ligne i = 1),
a21 det(A21 ) + a22 det(A22 ) = a21 a12 + a22 a11 (developpement suivant la ligne i = 2),
a11 det(A11 ) a21 det(A21 ) = a11 a22 a21 a12 (developpement suivant la colonne j = 1),
a12 det(A12 ) + a22 det(A22 ) = a12 a21 + a22 a11 (developpement suivant la colonne j = 2).
Ces formules donnent bien le meme resultat.
Remarque 3.1.5 Il convient dutiliser cette denition apr`es avoir fait apparatre sur une meme rangee le
plus possible de zeros 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 determinant est change en son oppose,
on ne change pas un determinant si on ajoute `a une colonne (resp. une ligne) une combinaison lineaire
des autres colonnes (resp. lignes).

1 0 1
Exemple 3.1.10 Soit la matrice A = 0 2 0 alors
0 3 5
(
)
(
)
(
)
2 0
0 0
0 2
det(A11 ) = det
= 10, det(A12 ) = det
= 0, det(A13 ) = det
= 0,
3 5
0 5
0 3
(
)
(
)
(
)
0 1
1 1
1 0
det(A21 ) = det
= 3, det(A22 ) = det
= 5, det(A23 ) = det
= 3,
3 5
0 5
0 3
(
)
(
)
(
)
0 1
1 1
1 0
det(A31 ) = det
= 2, det(A32 ) = det
= 0, det(A33 ) = det
= 2,
2 0
0 0
0 2
et on peut calculer det(A) par lune 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 ny a quun
determinant `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 ny a quun
determinant `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 - Determinant dune matrice dordre 2
Soit A une matrice carree dordre n = 2. Le determinant de A peut se calculer `
a laide de la technique
suivante :

72

CHAPITRE 3. LA PROGRAMMATION LINEAIRE


- ECRITURE
MATRICIELLE

(
)
5 7
Exemple 3.1.11 Soit la matrice A =
alors
4 3
det(A) = 5 3 7 4 = 15 28 = 13.
Proposition 3.1.3 - Determinant dune matrice dordre 3 : R`egle de Sarrus
Soit A une matrice carree dordre n = 3. Le determinant de A peut se calculer `
a laide de la technique
suivante :

1 0 1
Exemple 3.1.12 Soit la matrice A = 0 2 0. On a alors
0 3 5
det(A) = (1 2 5 + 0 3 1 + 0 0 0) (1 2 0 + 0 3 1 + 5 0 0) = 10.

5 7 1
Exemple 3.1.13 Soit la matrice A = 4 3 2, alors
2 1 6
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 determinant dune matrice triangulaire est egal au produit des elements 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),
1
,
det(A1 ) =
det(A)
det(A B) = det(A) det(B).
D
efinition 3.1.12 Rang
Le rang dune matrice quelconque A est egal au plus grand entier s tel que lon puisse extraire de A une
matrice carree dordre s inversible, cest-`
a-dire de determinant non nul. Les operations elementaires sur les
lignes ou les colonnes (ajout `
a une colonne - resp. une ligne - une combinaison lineaire des autres colonnes
- resp. lignes) dune matrice ne modient pas le rang.
(
)
1 3 2
Exemple 3.1.14 Soit la matrice suivante A =
. Le rang de A est 2 :
1 3 1
A est dordre 2 3 donc s min{2, 3} soit s = 0, 1 ou 2 ;
comme le determinant de la sous-matrice composee de la premi`ere et de la deuxi`eme colonne est nul,
on ne peut pas conclure ;


3.2. LA METHODE
DU SIMPLEXE SOUS FORME MATRICIELLE

73

comme le determinant de la sous-matrice composee de la premi`ere et de la troisi`eme colonne est non


nul, alors s = 2.

1 0 1
Exemple 3.1.15 Soit la matrice suivante A = 0 5 1
1 0 1
A est dordre 3 3 donc s 3,
le determinant de A est 0 donc s =(3, )
1 0
le determinant de la sous-matrice
est 5, donc s = 2.
0 5

3.2
3.2.1

La m
ethode du simplexe sous forme matricielle
Forme g
en
erale dun programme lin
eaire

Le programme lineaire (1.1)-(1.2) secrit sous forme canonique matricielle :


{
Ax b, x 0
maximiser Z(x) = cT x
avec

a11
x1
c1
b1
x2
c2
b2
a21


x = . Rn+ , c = . Rn , b = . Rm et A = .
..
..
..
..
xn

cn

bm

a12
a22
..
.

(3.1)

...
...
..
.

a1n
a2n

mn .
.. R
.

am1 am2 . . . amn

Remarque 3.2.1 Les coecients de la matrice A denis precedemment ne sont pas necessairement ceux du
programme lineaire (1.1)-(1.2). En eet, (1.1) implique des inegalites quelconques
{ ( ou ) tandis que (3.1)
x + 2y 2
implique uniquement linegalite . Considerons par exemple les contraintes
Elles pourront
2x y 3
(
)( ) ( )
(
)( ) ( )
1 2
x
2
1 2
x
2
alors secrire, matriciellement, sous la forme

ou

.
2 1
y
3
2 1
y
3
Proposition 3.2.1 Chaque programme lineaire sous forme canonique peut secrire sous forme standard et
inversement.
Preuve :
() Considerons le programme lineaire (3.1) ecrit sous sa forme canonique. On a
Ax b, x 0

aij xj bi , i = 1, . . . , m, x 0

j=1

aij xj + ei = bi o`
u ei = bi

( )
x
0
(A Im )
= b, x
| {z } e
| {z }

A
j=1

aij xj , i = 1, . . . , m, x 0

j=1

( )
( )
x
c
T
=
On pose alors Z(x) = c
o`
uc
= (c1 , . . . , cn , 0, . . . , 0) et le programme lineaire (ecrit sous sa
| {z }
e
0
m fois
forme canonique) est strictement equivalent au programme lineaire suivant (ecrit sous sa forme standard) :
{
x = b, x
0,
A

T x
maximiser Z(
x) = c
() Soit Ax = b un programme lineaire donne sous sa forme standard. On a

CHAPITRE 3. LA PROGRAMMATION LINEAIRE


- ECRITURE
MATRICIELLE

74

{
(
) ( )
Ax b
Ax b
A
b
Ax = b

Ax b
(A)x b
A
b
)
( )
(
A
= b , linegalite precedente implique Ax
qui est bien un programme
b
Si on pose A =
et b
A
b
lineaire sous forme canonique.
Exemple 3.2.1 On consid`ere le programme lineaire de lexercice 10 du chapitre 2. On rappelle sa forme
canonique et sa forme standard :

x,
y,
z

0
x, y, z, e1 , e2 , e3 0

x + 2y + 4z 70
x + 2y + 4z + e1 = 70
2x + y + z 80
2x + y + z + e2 = 80

3x + 2y + 2z 60
3x + 2y + 2z + e3 = 60

maximiser Z(x, y, z) = 3x + 5y + 6z
maximiser Z(x, y, z, e1 , e2 , e3 ) = 3x + 5y + 6z
Si on pose


x
3
y
5



1 2 4
x
70
3
1 2 4 1 0 0
z
6

= et c
=
A = 2 1 1 , x = y , b = 80 , c = 5 , A = 2 1 1 0 1 0 , x
0,
e
1


3 2 2
z
60
6
3 2 2 0 0 1
e2
0
e3
0
le programme secrit sous les formes canonique et standard matricielles suivantes :
{
{
x = b, x
Ax b, x 0
0
A

T
maximiser Z(x) = c x
T x

maximiser Z(
x) = c
x=x
et c = c
.
On utilisera dorenavant la forme standard matricielle et on posera A = A,

3.2.2

Repr
esentation matricielle

D
efinition 3.2.1
On appelle base une sous-matrice reguli`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 resolvant 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 dierents de VHB donnent
lieu `
a dierentes solutions de base.
Les colonnes de A permettant `a une sous-matrice B de A detre reguli`ere et qui representent des variables
particuli`eres peuvent commuter si on ordonne correctement x et cT . On peut alors ecrire
( )
)
(
xb
A = (BE), x =
, cT = cTb cTe
xe
et ainsi
{

Ax = b, x 0

maximiser ou minimiser Z(x) = cT x

Bxb + Exe = b, x 0
maximiser ou minimiser Z(x) = cTb xb + cTe xe

Une solution de base est donc telle que


{

xe = 0
Bxb = b xb = B 1 b

Certains choix de variables peuvent ne pas generer de solution de base.


D
efinition 3.2.2 Une solution de base est dite r
ealisable (SBR) si

(3.2)


3.2. LA METHODE
DU SIMPLEXE SOUS FORME MATRICIELLE

75

xb = B 1 b 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 coecients bi sont positifs ou nuls, on obtient systematiquement une solution
de base realisable en mettant les variables du probl`eme initial hors base (donc nulles) et les variables decart
dans la base et egales aux bi .
Exemple 3.2.2 Illustrons ces denitions `a laide du programme lineaire (dej`a exprime sous forme standard)
de lexercice 10 du chapitre precedent :

x, y, z, e1 , e2 , e3 0

x + 2y + 4z + e1 = 70
2x + y + z + e2
= 80

3x
+
2y
+
2z
+
e
=
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

Realisabilite

x, y, z

e1 , e 2 , e 3

(100 ;-225 ;105)

>0

x, y, e1

z, e2 , e3

(100 ;-120 ;210)

>0

x, y, e2

z, e1 , e3

(-5 ;37,5 ;52,5)

>0

x, y, e3

z, e1 , e2

(30 ;20 ;-70)

>0

x, z, e1

y, e2 , e3

(100 ;-120 ;450)

>0

x, z, e2

y, e1 , e3

(10 ;15 ;45)

realisable

x, z, e3

y, e1 , e2

(35,7143 ;8,5714 ;-64,2857)

>0

y, z, e1

x, e2 , e3

Pas de solution

y, z, e2

x, e1 , e3

(25 ;5 ;50)

realisable

10

y, z, e3

x, e1 , e2

(125 ;-45 ;-100)

>0

11

e1 , e2 , e3

x, y, z

(70 ;80 ;60)

realisable

12

x, e1 , e2

y, z, e3

(20 ;50 ;40)

realisable

13

x, e1 , e3

y, z, e2

(40 ;30 ;-60)

>0

14

x, e2 , e3

y, z, e1

(70 ;-60 ;-150)

>0

15

y, e1 , e2

x, z, e3

(30 ;10 ;50)

realisable

16

y, e1 , e3

x, z, e2

(80 ;-90 ;-100)

>0

17

y, e2 , e3

x, z, e1

(35 ;45 ;-10)

>0

18

z, e1 , e2

x, y, e3

(30 ;-50 ;50)

>0

19

z, e2 , e3

x, y, e1

(17,5 ;62,5 ;25)

realisable

20

z, e1 , e3

x, y, e2

(80 ;-250 ;-100)

>0

Table 3.1 Bases et realisabilite de la SBR associee

Interessons-nous au nombre de solutions possibles en general :


le nombre de bases candidates est

CHAPITRE 3. LA PROGRAMMATION LINEAIRE


- ECRITURE
MATRICIELLE

76

Cnm =

n!
(n m)!m!

6!
654
(on a bien teste C63 = 3!(63)!
= 321
= 20 bases dans lexemple precedent).
Toutes les bases candidates ne sont pas inversibles, donc on peut seulement dire que le nombre
precedent est une borne superieure (dans notre exemple, on trouve 19 bases inversibles).
Une methode basee sur lexploration des points extremes est cependant non-polynomiale (on comprend
bien quon ne peut appliquer pour m grand la technique qui nous a permis, pour lexemple precedent,
de recuperer le tableau 3.1, `a savoir la resolution de 21 syst`emes de taille 3 3)
Lexperience montre que pour un probl`eme de n variables `a m contraintes, la solution optimale est
trouvee en moyenne en moins de 3m operations (ce qui signie pour notre exemple, quon doit pouvoir
trouver la solution du PL en moins de 9 iterations).

D
efinition 3.2.3 Pour tout probl`eme de PL, deux SBR sont adjacentes si leurs ensembles de variables de
base ont m 1 variables de base en commun.
Linterpretation geometrique est que les 2 SBR sont situees le long dune meme arete sur le polytope
realisable.

3.2.3

Description g
en
erale de lalgorithme

On rappelle que lalgorithme du simplexe (pour une maximisation) suit les etapes suivantes :
1. Trouver une SBR pour le PL, appelee la SBR initiale.
2. Determiner si la SBR courante est optimale. Sinon, trouver une SBR adjacente qui poss`ede une valeur
Z plus elevee.
3. Retourner au point 2. avec la nouvelle SBR comme SBR courante.
Les deux questions suivantes sont donc :
comment detecter loptimalite ? et
comment se deplacer ?
Pour repondre `a ces questions, on ecrit :
Z = cTb xb + cTe xe
et
Bxb + Exe = b.
Donc, puisque B Rmm est de rang m, B est inversible et
xb = B 1 (b Exe ).
Par substitution, on obtient
Z = cTb B 1 b + (cTe cTb B 1 E)xe = cTb B 1 b + cTe xe
en posant
cTe = cTe cTb B 1 E.
Le terme cTe correspond `a laugmentation du co
ut pour une augmentation des variables dans xe . Pour une
SBR, on a xe = 0 et donc, ce terme na pas dincidence. Si tous les co
uts ce sont negatifs (pour une maximisation), toute augmentation des variables de xe diminuera la valeur de Z, et donc la solution obtenue
est optimale. Reciproquement, pour une minimisation, si tous les co
uts sont positifs, toute augmentation
des variables de xe augmentera la valeur de Z. On a donc repondu `a la premi`ere question, relative au test
doptimalite.
Pour une maximisation, si notre base est telle que cTe ne soit pas strictement negative ou nulle, alors il
existe une variable (xe )k = xk de xe telle que (ce )k = ck > 0. Une augmentation de xk est donc susceptible
dameliorer Z. Cest bien-s
ur le crit`ere de Dantzig qui va designer cette variable. La solution va alors secrire :


3.2. LA METHODE
DU SIMPLEXE SOUS FORME MATRICIELLE

77

xb = B 1 (b xk Ak E xe )
o`
u Ak designe la k-i`eme colonne de A En xant xe = 0, et en faisant varier xk seulement, on obtient :
xb = B 1 (b Ak xk ) = B 1 b B 1 Ak xk
= b P xk
Comme originellement xk est nulle, on ne peut que laugmenter. Il y a deux cas :
cas 1 : i, Pi 0. En ce cas la solution est non bornee. xk tend vers + et Z vers .
cas 2 : il y a 2 possibilites : 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
maximale de xk =

bi
Pi ,

bi
Pi .

Ainsi, pour tout Pi > 0, il existe une valeur

permettant xb 0. On choisit donc la variable k telle que :


k = argmin
i/Pi >0

3.2.4

bi
Pi

Exemple avec solution optimale unique

Reprenons lexercice 10 du chapitre precedent :


1`ere iteration :
On choisit comme base initiale
VB=(e1 , e2 , e3 ). On
adans ce cas

1 0 0
70
1 2 4
B = 0 1 0 = I3 , b = 80 = b, E = 2 1 1
0 0 1
60
3 2 2
T
T
T
1
Les co
uts reduits denis par ce = ce cb B E sont egaux `a
x y z
cTe = (3 5 6)
Le crit`ere de Dantzig implique que la variable z entre en base.
On a P = B 1 A3 = (4, 1, 2) et on calcule ensuite les ratios bPii :
e1
e2
e3
bi
Pi

70
4

60
= 17, 5 80
1 = 80
2 = 30
On en deduit que la variable sortante est e1 .
2`eme iteration :
On a maintenant la base VB=(z, e2 , e3 ).
On a alors

4 0 0
17, 5
1 2 1
B = 1 1 0, b = 62, 5, E = 2 1 0
2 0 1
25
3 2 0
On remarque que b est deni dans la ligne 19 du tableau 3.1.
Les co
uts reduits sont egaux `a
x y e1

cTe = ( 32 2 32 )
Le crit`ere de Dantzig implique que la variable y entre en base.
On a P = B 1 A2 = (2, 1, 2) et on calcule ensuite les ratios bPii :
z
e2 e3
bi
Pi
est e3 .

35 125 25

On en deduit que la variable sortante


3`eme iteration :
On a maintenant la base VB=
(z, e2 , y).
On a alors


1 0 1
4 0 2
5
B = 1 1 1, b = 50, E = 2 0 0
3 1 0
2 0 2
25

CHAPITRE 3. LA PROGRAMMATION LINEAIRE


- ECRITURE
MATRICIELLE

78

On remarque que b est deni dans la ligne 9 du tableau 3.1.


Les co
uts reduits sont egaux `a
x
e1
e3
cTe = ( 72 12 2)
Lalgorithme sarrete car tous les poids sont negatifs. On a donc trouve loptimum.
Conclusion :
La solution est constituee des variables de base
y, z, e2 .
Les valeurs de ces variables sont donnees 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 ebenisterie produit des bureaux, des tables et des chaises. Chaque type de produit reclame du bois
et deux types de travaux : mise en forme et nition, suivant le tableau :
Ressource

bureau

table

chaise

planches

8m

6m

1m

mise en forme

4h

2h

3
2h

nition

2h

3
2h

1
2h

On dispose de 48m de planches, 20h de mise en forme et 8h de nition.


On vend un bureau pour 60e, une table pour 35e et une chaise pour 20e. La demande pour les chaises et
les bureaux est illimitee, mais on ne pense vendre que 5 tables au plus. On veut maximiser le prot.
Formalisons le probl`eme : soient x1 , x2 , x3 les variables decrivant respectivement les nombres de bureaux, de
tables et de chaises. On cherche `a resoudre le PL

x1 , x2 , x3 0

8x1 + 6x2 + x3
48

3
4x1 + 2x2 + 2 x3 20

2x1 + 23 x2 + 12 x3 8

5
x2

maximiser Z(x1 , x2 , x3 ) = 60x1 + 35x2 + 20x3


Premi`ere iteration :
On a initialement VB= {x4 , x5 , x6 , x7 }.

1 0 0
0 1 0
B=
0 0 1
0 0 0
Les co
uts reduits sont egaux `a

On a donc


8 6
0
48

0
20
4 6
,b=
8 , E = 2 3
0
2
1
5
0 1
x1

x2

x3

cTe = (60 35 20)


Le crit`ere de Dantzig implique que la variable x1 entre en base.
On a P = B 1 A1 = (8, 4, 4, 0) et on calcule ensuite les ratios bPii :
x4 x5 x6 x7
bi
Pi

6
On en deduit que la variable sortante est x6 .

3
2
1 .
2


3.2. LA METHODE
DU SIMPLEXE SOUS FORME MATRICIELLE

Deuxi`eme iteration :
On a initialement VB= {x4 , x5 , x1 , x7 }.

1 0 8
0 1 4
B=
0 0 2
0 0 0
Les co
uts reduits sont egaux `a

On a donc


6
0
16
2
4
0
, b = , E =
4
3
0
2
1
5
1
x2

x3

79

1 0
3

2 0.
1

2 1
0 0

x6

cTe = (10 5 30)


Le crit`ere de Dantzig implique que la variable x3 entre en base.
On a P = B 1 A3 = (1, 12 , 14 , 0) et on calcule ensuite les ratios bPii :
x4 x5 x1 x7
16 8 16
On en deduit que la variable sortante est x5 .
Troisi`eme iteration :
On a maintenant VB= {x4 , x3 , x1 , x7 }. On a donc

1 1 8 0
6
24
0 3 4 0
8
2
2

B=
0 1 2 0 , b = 2 , E = 3
2
2
5
1
0 0 0 1
Les co
uts reduits sont egaux `a
x2 x5
x6
bi
Pi

1
1
0
0

0
0
.
1
0

cTe = (0 10 10)
On a trouve un optimum mais x2 est `a zero. Ceci indique une solution non unique car on peut
faire entrer x2 dans la base `a co
ut constant. Donc x2 entre dans la base. On poursuit alors le calcul
normalement.
On a P = B 1 A3 = (2, 2, 54 , 1) et on calcule ensuite les ratios bPii :
x4 x3 x1 x7
12 4 1, 6 5
On en deduit que la variable sortante est x1 .
Quatri`eme iteration :
On a maintenant VB= {x4 , x3 , x2 , x7 }. On a donc

1 1 6 0
27, 2
8
0 3 2 0
11, 2
4
2

B=
0 1 3 0, b = 1, 6 , E = 2
2
2
3, 4
0
0 0 1 1
Les co
uts reduits sont egaux `a
x1 x5
x6
bi
Pi

0
1
0
0

0
0
.
1
0

cTe = (0 10 10)
On a trouve un optimum, mais x1 est `a zero. Ceci indique une solution non unique, car on peut
faire entrer x1 dans la base `a co
ut constant. Donc x1 entre dans la base et on poursuit alors le calcul
normalement.
On a P = B 1 A3 = (2, 2, 54 , 1) et on calcule ensuite les ratios bPii :
x4 x3 x2 x7
17 7 2 17
4
On en deduit que la variable sortante est x2 . On a decouvert un cycle.
Conclusion :
La solution est constituee des variables de base realisables possibles. Ici
VB1= {x4 , x3 , x1 , x7 }, VB2= {x4 , x3 , x2 , x7 }
et de toutes leurs combinaisons lineaires intermediaires.
bi
Pi

80

CHAPITRE 3. LA PROGRAMMATION LINEAIRE


- ECRITURE
MATRICIELLE

Les valeurs de ces variables sont donnees 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 extremes sont :
f1 = (x1 , x2 , x3 ) = (2, 0, 8), f2 = (x1 , x2 , x3 ) = (0; 1, 6; 11, 2).
Toutes les solutions intermediaires sont donnees 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 zero dans P , et non plus une
seule. Lensemble des solutions est alors lespace vectoriel convexe induit par les solutions extremes.
Pour les trouver il faut realiser toute les substitutions possibles autorisees.

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 necessite 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 prot de la boulangerie.
Soient x1 , x2 , x3 les nombres respectifs de pains ordinaires produits, de pains campagnards produits, de doses
de levure et x4 la quantite de farine consommee par quantite de 10g. Les revenus sont egaux `a 36x1 + 30x2 ,
les co
uts sontegaux `a 3x3 + 4x4 . La fonction objectif `a maximiser est Z(x1 , x2 , x3 ) = 36x1 + 30x2 3x3 4x4 .
Les contraintes sont donnees par les inegalites : x1 + x2 5 + x3 et 6x1 + 5x2 10 + x4 . On introduit 2
variables decart pour les contraintes, x5 , x6 qui sont toutes deux positives.
1`ere iteration :
VB= {x5 , x6 } ; VHB= {x1 , x2 , x3 , x4 }.
b = (5 10).
Co
uts reduits : (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 iteration :
VB= {x5 , x1 } ; VHB= {x2 , x3 , x4 , x6 }.
5
b = ( 10
3 3 ).
Co
uts reduits : (0, 3, 2, 6), on va donc faire rentrer x4 en base.
P = ( 16 16 )
Ratios : (20 10) on va donc faire sortir x5 .
3`eme iteration :
VB= {x4 , x1 } ; VHB= {x2 , x3 , x5 , x6 }.
b = (20 5).
Co
uts reduits : (2, 9, 12, 4), on va donc faire rentrer x3 en base.
P = ( 16 16 )
Ratios : (6 1). La solution nest pas bornee.
Solution : Avec la derni`ere solution de base
{ realisable, le syst`eme secrit :
x4 6x3 = 20
x1 x3 = 5
Donc en augmentant x3 de facon arbitraire, on fait aussi crotre x4 et x1 arbitrairement, et donc on
peut reduire Z sans n, tout en obeissant `a toutes les contraintes.