• Aucun résultat trouvé

La programmation lin´ eaire - ´ Ecriture matricielle

N/A
N/A
Protected

Academic year: 2022

Partager "La programmation lin´ eaire - ´ Ecriture matricielle"

Copied!
18
0
0

Texte intégral

(1)

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)

2

(3)

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

(4)

II TABLE DES MATI `ERES

(5)

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) 1im 1jn

ou A= [aij] 1im 1jn

.

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) 1im

1jn

etB = (bij) 1im 1jn

sont deux matricesm×n, on d´efinit l’addition des matrices par A+B= (aij+bij) 1im

1jn

.

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

(6)

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) 1im 1jn

alors−A= (−aij) 1im 1jn

.

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) 1i, jn telle que = 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 . . . dn1 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)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 sup´erieure et inf´erieure est une matrice diagonale.

D´efinition 3.1.6 - Produit d’une matrice par un scalaire Si A= (aij) 1im

1jn

est une matrice m×n et siα K, on d´efinit le produit d’une matrice par un scalaire par

αA= (αaij) 1im 1jn

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) 1im

1kp

est une matrice m×p et si B = (bkj) 1kp 1jn

est une matrice p×n, on d´efinit le produit des matrices par

(7)

3.1. RAPPELS 69

A×B= ( p

k=1

aikbkj )

1im 1jn

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

(B×C) = (A×B)×C (associativit´e),

(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 =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

) .

(8)

70 CHAPITRE 3. LA PROGRAMMATION LIN ´EAIRE - ´ECRITURE MATRICIELLE

D´efinition 3.1.8 - Matrice transpos´ee Si A= (aij) 1im

1jn

est une matrice de format m×n, on d´efinit la matrice transpos´ee deA, not´ee AT, par A= (aji) 1jn

1im

.

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 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 A1.

– Une matrice non r´eguli`ere est dite singuli`ere.

Proposition 3.1.1 Soient A et B deux matrices inversibles, alors

A1 l’est aussi et(A1)1 =A,

AT l’est aussi et (AT)1,

A×B l’est aussi et (A×B)1=B1×A1.

D´efinition 3.1.11 - D´eterminant d’une matrice d’ordren Soit A= (aij) 1im

1jn

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 leeterminant 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.

(9)

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 :

(10)

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×37×4 = 1528 =−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(A1) = 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 ;

(11)

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 = 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, x0

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+ 2y2

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, x0

n j=1

aijxj ≤bi, i= 1, . . . , m, x0

n j=1

aijxj+ei =bi o`uei=bi

n j=1

aijxj, i= 1, . . . , m, x0

(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) :

{ ˜x=b, x˜0,

maximiserZx) = ˜cTx˜

() Soit Ax=b un programme lin´eaire donn´e sous sa forme standard. On a

(12)

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+ 4z70 2x+y+z≤80 3x+ 2y+ 2z60

maximiser Z(x, y, z) = 3x+ 5y+ 6z











x, y, z, e1, e2, e30 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, x0

maximiser Z(x) =cTx

{ ˜x=b,x˜ 0

maximiserZx) = ˜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, x0

maximiser ou minimiserZ(x) =cTx

{ Bxb+Exe =b, x0

maximiser ou minimiserZ(x) =cTbxb+cTexe

Une solution de base est donc telle que

{ xe = 0

Bxb=bxb=B1b (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 ealisable(SBR) si

(13)

3.2. LA M ´ETHODE DU SIMPLEXE SOUS FORME MATRICIELLE 75

xb =B1b0.

Si le vecteur xb contient des termes nuls, on dira que cette solution est une solution de base 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, e30 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

(14)

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 =B1(b−Exe).

Par substitution, on obtient

Z =cTbB−1b+ (cTe cTbB−1E)xe=cTbB−1b+cTexe en posant

cTe =cTe cTbB1E.

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 :

(15)

3.2. LA M ´ETHODE DU SIMPLEXE SOUS FORME MATRICIELLE 77

xb =B1(b−xkAk−Exe)

o`uAk d´esigne lak-i`eme colonne de AEn fixant xe = 0, et en faisant varierxk seulement, on obtient : xb=B1(b−Akxk) = B1b−B1Akxk

=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 Pi0, 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 cTbB1E 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 =B1A3= (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 =B1A2= (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

(16)

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 =B1A1= (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.

(17)

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 =B1A3= (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 =B1A3= (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 =B1A3= (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.

(18)

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,61,6c; 11,23,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 : x46x3 = 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.

Références

Documents relatifs

Mˆ eme si les m´ ethodes pr´ esent´ ees ci-dessus permettent de ramener de mani` ere syst´ ematique n’importe quel probl` eme d’optimisation lin´ eaire sous forme g´ en´ erale

Le seul souci pour la direction est de minimiser le coˆ ut total de transport des moteurs entre les deux lieux de fabrication et les trois ateliers d’assemblage. Le tableau

Simplexe Dantzig’47 non-polynomial tr`es rapide Ellipso¨ıde Khachiyan’79 polynomial tr`es lent Point int´erieur Karmarkar’84 polynomial rapide Remarques sur l’algorithme

le cardinal maximum d’un couplage = la valeur optimale du (P) =. la valeur optimale du

en r´ep´etant le jeu, on ne ferait pas toujours la mˆeme chose, sinon, l’autre joueur changerait ´eventuellement sa strat´egie et gagnerait tout le temps. On verra en TD comment

Quel est le nombre minimum de pi`eces d’or de tr´esor que peut esp´erer acqu´erir le cuisinier chinois s’il empoisonne l’´equipage

(a) Mettre sous la forme d’un programme lin´eaire le probl`eme de la maximisation du nombre de dossiers trait´es. Comment

5 Le probl`eme de nature psychologique dans ce jeu est qu’en misant 3 vous aller augmenter la valeur de la paie sans pourtant ˆetre sˆ ur de gagner cette valeur ´elev´ee - vous