Documente Academic
Documente Profesional
Documente Cultură
0 Introduction générale 1
I
II TABLE DES MATIÈRES
Chapitre 3
3.1 Rappels
Définition 3.1.1
– On appelle matrice m × n (ou d’ordre m × n) à coefficients dans K tout tableau de m lignes et n
colonnes d’éléments de K. L’ensemble des matrices m × n à coefficients dans K est noté Mm,n (K).
– Si m = n on dit qu’on a une matrice carrée. L’ensemble des matrices carrées de taille n à coefficients
dans K est noté Mn (K).
– Une matrice m × 1 est appelée vecteur-colonne et une matrice 1 × n est appelée vecteur-ligne.
– On convient de noter aij l’élément de la matrice situé sur la i-ème ligne et j-ième colonne (1 ≤ i ≤ m
et 1 ≤ j ≤ n).
– Une matrice A est représentée entre deux parenthèses 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 .
1≤j ≤n 1≤j ≤n
( ) ( )
3 4 2 6 1 9
Exemple 3.1.2 Soient les matrices A = et B = . On obtient
1 3 5 2 0 3
( ) ( )
3+6 4+1 2+9 9 5 11
A+B = = .
1+2 3+0 5+3 3 3 8
Remarque 3.1.1 La somme de deux matrices de tailles différentes n’est pas définie.
67
68 CHAPITRE 3. LA PROGRAMMATION LINÉAIRE - ÉCRITURE MATRICIELLE
Définition 3.1.3
– La matrice nulle, notée Om,n , est la matrice dont tous les éléments sont nuls.
– La matrice opposée d’une matrice A est notée −A. Si A = (aij ) 1 ≤ i ≤ m alors −A = (−aij ) 1≤i≤m .
1≤j ≤n 1≤j ≤n
Propriété 3.1.1 Si A, B et C sont des matrices de même ordre, alors nous avons
• A + B = B + A (commutativité),
• A + (B + C) = (A + B) + C (associativité).
( ) ( ) ( )
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éfinition 3.1.4
– On appelle matrice diagonale toute matrice carrée 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 . . . dn−1 0
0 0 ... 0 dn
On la note Diag(d1 , d2 , . . . , dn ).
– La matrice identité d’ordre n, notée In , est la matrice diagonale Diag(1, 1, . . . , 1).
Définition 3.1.5 On dit qu’une matrice carrée A = (aij )1≤i,j≤n est triangulaire supérieure (resp.
inférieure) si i > j ⇒ aij = 0 (resp. si i < j ⇒ aij = 0).
Remarque 3.1.2 Une matrice triangulaire supérieure et inférieure est une matrice diagonale.
αA = (αaij ) 1≤i≤m
1≤j ≤n
( )
3 4 2 1
Exemple 3.1.4 Si A = et α = , on obtient
1 3 5 2
1 1 1 3
×3 ×4 ×2 2 1
2
C = αA = 2 2 2
= 1 5
.
1 1 1 3
×1 ×3 ×5
2 2 2 2 2 2
α(A + B) = αA + αB (distributivité).
( )
∑
p
A×B = aik bkj
k=1 1≤i≤m
1≤j ≤n
Prenons le cas général avec A d’ordre m × p et B d’ordre p × n. Le produit A × B est défini, c’est une
matrice d’ordre m × n. Qu’en est-il du produit B × A ? Il faut distinguer trois cas :
– si m ̸= n le produit B × A n’est pas défini ;
– si m = n mais p ̸= n, le produit A × B est défini et c’est une matrice d’ordre m × n = n × n tandis
que le produit B × A est défini mais c’est une matrice d’ordre p × p donc A × B ̸= B × A ;
– si m = n = p, A et B sont deux matrices carrées d’ordre m. Les produits A × B et B × A sont aussi
carrés et d’ordre m mais là encore, en général, 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
B×A= .
5 −2
70 CHAPITRE 3. LA PROGRAMMATION LINÉAIRE - ÉCRITURE MATRICIELLE
C’est donc une matrice n × m obtenue en échangeant lignes et colonnes de la matrice initiale.
( )
1 −1 5
Exemple 3.1.7 Soit la matrice A d’ordre 2 × 3 suivante A = . Sa transposée est la matrice
3 0 7
1 3
AT d’ordre 3 × 2 suivante AT = −1 0.
5 7
Propriété 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 + B T si A, B ∈ Mm,n (K),
• (A × B)T = B T × AT si A ∈ Mm,n (K) et B ∈ Mn,p (K).
Exemple
3.1.8
1 5 −9
• A= 5 4 0 est une matrice symétrique.
−9 0 7
0 5 −9
• B = −5 0 7 est une matrice antisymétrique.
9 −7 0
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ée par :
+ − + − . . .
− + − + . . .
+ − + − . . .
. . . . .
.. .. .. .. . .
( )
a11 a12
Exemple 3.1.9 Soit la matrice A = alors
a21 a22
det(A11 ) = a22 , det(A12 ) = a21 , det(A21 ) = a12 , det(A22 ) = a11
Remarque 3.1.5 Il convient d’utiliser cette définition après avoir fait apparaı̂tre sur une même rangée le
plus possible de zéros sachant que
– si deux colonnes (resp. deux lignes) sont identiques ou proportionnelles, alors det(A) = 0,
– si on échange deux colonnes (resp. deux lignes), alors le déterminant est changé en son opposé,
– on ne change pas un déterminant si on ajoute à une colonne (resp. une ligne) une combinaison linéaire
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 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éterminant à 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éterminant à 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.
( )
5 7
Exemple 3.1.11 Soit la matrice A = alors
4 3
det(A) = 5 × 3 − 7 × 4 = 15 − 28 = −13.
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été 3.1.5 Le déterminant d’une matrice triangulaire est égal au produit des éléments diagonaux.
Propriété 3.1.6
• det(AT ) = det(A),
1
• det(A−1 ) = ,
det(A)
• det(A × B) = det(A) det(B).
Remarque 3.2.1 Les coefficients de la matrice A définis précédemment ne sont pas nécessairement ceux du
{ (≤ ou ≥) tandis que (3.1)
programme linéaire (1.1)-(1.2). En effet, (1.1) implique des inégalités quelconques
x + 2y ≤ 2
implique uniquement l’inégalité ≤. Considérons par exemple les contraintes Elles pourront
2x − y ≥ 3
( )( ) ( ) ( )( ) ( )
1 2 x 2 −1 −2 x −2
alors s’écrire, matriciellement, sous la forme ≤ ou ≥ .
−2 1 y −3 2 −1 y 3
Proposition 3.2.1 Chaque programme linéaire sous forme canonique peut s’écrire sous forme standard et
inversement.
Preuve :
(⇒) Considérons le programme linéaire (3.1) écrit sous sa forme canonique. On a
∑
n
Ax ≤ b, x ≥ 0 ⇔ aij xj ≤ bi , i = 1, . . . , m, x ≥ 0
j=1
∑
n ∑
n
⇔ aij xj + ei = bi où ei = bi − aij xj , i = 1, . . . , m, x ≥ 0
j=1
( ) j=1
x
⇔ (A Im ) = b, x̃ ≥ 0
| {z } e
Ã
| {z }
x̃
( ) ( )
x c
On pose alors Z(x) = c̃T où c̃ = = (c1 , . . . , cn , 0, . . . , 0) et le programme linéaire (écrit sous sa
e 0 | {z }
m fois
forme canonique) est strictement équivalent au programme linéaire suivant (écrit sous sa forme standard) :
{
Ãx̃ = b, x̃ ≥ 0,
maximiser Z(x̃) = c̃T x̃
{ { ( ) ( )
Ax ≥ b Ax ≤ b A b
Ax = b ⇔ ⇔ ⇔ ≤
Ax ≤ b (−A)x ≤ −b −A −b
( ) ( )
A b
Si on pose à = et b̃ = , l’inégalité précédente implique Ãx ≤ b̃ qui est bien un programme
−A −b
linéaire sous forme canonique.
Les colonnes de A permettant à une sous-matrice B de A d’être régulière et qui représentent des variables
particulières peuvent commuter si on ordonne correctement x et cT . On peut alors écrire
( )
xb ( )
A = (BE), x = , cT = cTb cTe
xe
et ainsi
{ {
Ax = b, x ≥ 0 Bxb + Exe = b, x ≥ 0
⇔
maximiser ou minimiser Z(x) = cT x maximiser ou minimiser Z(x) = cTb xb + cTe xe
Une solution de base est donc telle que
{
xe = 0
(3.2)
Bxb = b ⇔ xb = B −1 b
xb = B −1 b ≥ 0.
Si le vecteur xb contient des termes nuls, on dira que cette solution est une solution de base dégénérée.
Remarque 3.2.2 Lorsque les coefficients bi sont positifs ou nuls, on obtient systématiquement une solution
de base réalisable en mettant les variables du problème initial hors base (donc nulles) et les variables d’écart
dans la base et égales aux bi .
Exemple 3.2.2 Illustrons ces définitions à l’aide du programme linéaire (déjà exprimé sous forme standard)
de l’exercice 10 du chapitre précédent :
x, y, z, e1 , e2 , e3 ≥ 0
x + 2y + 4z + e1 = 70
2x + y + z + e2 = 80
3x + 2y + 2z + e 3 = 60
maximiser Z(x, y, z, e1 , e2 , e3 ) = 3x + 5y + 6z
n!
Cnm =
(n − m)!m!
6! 6×5×4
(on a bien testé C63 = 3!(6−3)! = 3×2×1 = 20 bases dans l’exemple précédent).
Toutes les bases candidates ne sont pas inversibles, donc on peut seulement dire que le nombre
précédent est une borne supérieure (dans notre exemple, on trouve 19 bases inversibles).
– Une méthode basée sur l’exploration des points extrêmes est cependant non-polynomiale (on comprend
bien qu’on ne peut appliquer pour m grand la technique qui nous a permis, pour l’exemple précédent,
de récupérer le tableau 3.1, à savoir la résolution de 21 systèmes de taille 3 × 3)
– L’expérience montre que pour un problème de n variables à m contraintes, la solution optimale est
trouvée en moyenne en moins de 3m opérations (ce qui signifie pour notre exemple, qu’on doit pouvoir
trouver la solution du PL en moins de 9 itérations).
Définition 3.2.3 Pour tout problème de PL, deux SBR sont adjacentes si leurs ensembles de variables de
base ont m − 1 variables de base en commun.
L’interprétation géométrique est que les 2 SBR sont situées le long d’une même arête sur le polytope
réalisable.
Z = cTb xb + cTe xe
et
Bxb + Exe = b.
xb = B −1 (b − Exe ).
en posant
Le terme cTe correspond à l’augmentation du coût pour une augmentation des variables dans xe . Pour une
SBR, on a xe = 0 et donc, ce terme n’a pas d’incidence. Si tous les coûts ce sont négatifs (pour une maxi-
misation), toute augmentation des variables de xe diminuera la valeur de Z, et donc la solution obtenue
est optimale. Réciproquement, pour une minimisation, si tous les coûts sont positifs, toute augmentation
des variables de xe augmentera la valeur de Z. On a donc répondu à la première question, relative au test
d’optimalité.
Pour une maximisation, si notre base est telle que cTe ne soit pas strictement négative 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
d’améliorer Z. C’est bien-sûr le critère de Dantzig qui va désigner cette variable. La solution va alors s’écrire :
3.2. LA MÉTHODE DU SIMPLEXE SOUS FORME MATRICIELLE 77
xb = B −1 (b − xk Ak − E ′ x′e )
où Ak désigne la k-ième colonne de A En fixant x′e = 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
bi
k = argmin
i/Pi >0 Pi
Formalisons le problème : soient x1 , x2 , x3 les variables décrivant respectivement les nombres de bureaux, de
tables et de chaises. On cherche à résoudre le PL
x1 , x2 , x3 ≥ 0
8x1 + 6x2 + x3 ≤ 48
4x1 + 2x2 + 2 x3 ≤ 20
3
2x1 + 23 x2 + 12 x3 ≤ 8
x2 ≤ 5
maximiser Z(x1 , x2 , x3 ) = 60x1 + 35x2 + 20x3
• Première itération :
– On a initialement VB= {x4 , x5 , x6 , x7 }. On a donc
1 0 0 0 48 8 6 1
0 1 0 3
B=
0
,b=
20 4 6 2
0 0 1 0 8 , E = 2 3 1 .
2 2
0 0 0 1 5 0 1 0
– Les coûts réduits sont égaux à
x1 x2 x3
cTe = (60 35 20)
Le critère 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
Pi6 5 4 ∞
On en déduit que la variable sortante est x6 .
3.2. LA MÉTHODE DU SIMPLEXE SOUS FORME MATRICIELLE 79
• Deuxième itération :
– On a initialement VB= {x4 , x5 , x1 , x7 }. On a donc
1 0 8 0 16 6 1 0
0 1 4 0 4 2 3
B= , b = , E = 2 0.
0 0 2 0 4 3 1
2 2 1
0 0 0 1 5 1 0 0
– Les coûts réduits sont égaux à
x2 x3 x6
cTe = (−10 5 −30)
Le critère 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 ∞
bi
Pi
On en déduit que la variable sortante est x5 .
• Troisième itération :
– On a maintenant VB= {x4 , x3 , x1 , x7 }. On a donc
1 1 8 0 24 6 1 0
0 3 4 0 8 2 1 0
B= 2
0 1 2 0 , b = 2 , E = 3
.
2 2 0 1
0 0 0 1 5 1 0 0
– Les coûts réduits sont égaux à
x2 x5 x6
cTe = (0 −10 −10)
On a trouvé un optimum mais x2 est à zéro. Ceci indique une solution non unique car on peut
faire entrer x2 dans la base à coût 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
bi
Pi
On en déduit que la variable sortante est x1 .
• Quatrième itération :
– On a maintenant VB= {x4 , x3 , x2 , x7 }. On a donc
1 1 6 0 27, 2 8 0 0
0 3 2 0 11, 2 4 1 0
B= 2
0 1 3 0, b = 1, 6 , E = 2
.
2 2
0 1
0 0 1 1 3, 4 0 0 0
– Les coûts réduits sont égaux à
x1 x5 x6
cTe = (0 −10 −10)
On a trouvé un optimum, mais x1 est à zéro. Ceci indique une solution non unique, car on peut
faire entrer x1 dans la base à coût 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
bi
Pi17 7 2 − 17 4
On en déduit que la variable sortante est x2 . On a découvert un cycle.
• Conclusion :
– La solution est constituée des variables de base réalisables possibles. Ici
VB1= {x4 , x3 , x1 , x7 }, VB2= {x4 , x3 , x2 , x7 }
et de toutes leurs combinaisons linéaires intermédiaires.
80 CHAPITRE 3. LA PROGRAMMATION LINÉAIRE - ÉCRITURE MATRICIELLE
Soient x1 , x2 , x3 les nombres respectifs de pains ordinaires produits, de pains campagnards produits, de doses
de levure et x4 la quantité de farine consommée par quantité de 10g. Les revenus sont égaux à 36x1 + 30x2 ,
les coûts sontégaux à 3x3 + 4x4 . La fonction objectif à maximiser est Z(x1 , x2 , x3 ) = 36x1 + 30x2 3x3 4x4 .
Les contraintes sont données par les inégalités : x1 + x2 ≤ 5 + x3 et 6x1 + 5x2 ≤ 10 + x4 . On introduit 2
variables d’écart pour les contraintes, x5 , x6 qui sont toutes deux positives.
• 1ère itération :
– VB= {x5 , x6 } ; VHB= {x1 , x2 , x3 , x4 }.
– b = (5 10).
– Coûts réduits : (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ème itération :
– VB= {x5 , x1 } ; VHB= {x2 , x3 , x4 , x6 }.
– b = ( 10 5
3 3 ).
– Coûts réduits : (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ème itération :
– VB= {x4 , x1 } ; VHB= {x2 , x3 , x5 , x6 }.
– b = (20 5).
– Coûts réduits : (−2, 9, −12, −4), on va donc faire rentrer x3 en base.
– P = ( 16 − 16 )
– Ratios : (−6 − 1). La solution n’est pas bornée.
• Solution : Avec la dernière solution de base{ réalisable, le système s’écrit :
x4 − 6x3 = 20
x1 − x3 = 5
Donc en augmentant x3 de façon arbitraire, on fait aussi croı̂tre x4 et x1 arbitrairement, et donc on
peut réduire Z sans fin, tout en obéissant à toutes les contraintes.