Vous êtes sur la page 1sur 93

Avant d’entamer un autre résultat sur la Dualité, ouvrons une parenthèse sur:

*Les couts réduits:

––––––––—

C ’est une notion liée à la fonction objectif dans le problème de programmation linéaire sous sa forme standard. Pour ce faire On commence par écrire la fonction objectif en mettant en évidence les variables de base d’une part et ceux de hors base d’autre part.

()

Programmation linéaire

variables de base d’une part et ceux de hors base d’autre part. () Programmation linéaire March

March 23, 2012

variables de base d’une part et ceux de hors base d’autre part. () Programmation linéaire March

101 / 193

En effet,

b = Ax

= A B x B +A H x H

avec la notation du partage de la matrice A :

A=(A B | A H )

Pour éclaircir ce partage, considérons le programme linéaire suivant:

max z = 5x 1 +4x 2 +3x 3

s/c

2x 1 +3x 2 +x 3 +x 4 4x 1 +x 2 +2x 3 3x 1 +4x 2 +2x 3

+x 5

= 5

= 11

+x 6 = 8

avec x 1 ,x 2 ,x 3 ,x 4 ,x 5 ,x 6 0

()

Programmation linéaire

avec x 1 , x 2 , x 3 , x 4 , x 5 ,

March 23, 2012

avec x 1 , x 2 , x 3 , x 4 , x 5 ,

102 / 193

donc:

A = (A B | A H )=(A Base | A HorsBase )=

1

0

0

0

1

0

0

0

1

|

2

4

3

3

1

4

1

2

2

Notons aussi qu’on se donne une solution de base réalisable

x br = x

br

B

| x

br

H

t

(. t sert à signaler la position horizontale du vecteur). (à meme permutation près des composantes).

()

Programmation linéaire

horizontale du vecteur). (à meme permutation près des composantes). () Programmation linéaire March 23, 2012 103

March 23, 2012

horizontale du vecteur). (à meme permutation près des composantes). () Programmation linéaire March 23, 2012 103

103 / 193

On rappelle (pour faire le lien avec la notion de solution de base réalisable) que la méthode du simplexe consiste à avoir une autre base (qui correspond à un autre dictionnaire( obtenu grace à un mouvement de variables:

une choisie à entrer dans la base actuelle & une autre choisie pour en sortir)) et une autre solution qui lui est associée telle que la valeur de la fonction économique augmente.

()

Programmation linéaire

est associée telle que la valeur de la fonction économique augmente. () Programmation linéaire March 23,

March 23, 2012

est associée telle que la valeur de la fonction économique augmente. () Programmation linéaire March 23,

104 / 193

avec A B inversible donc

x B =A

B

1

(b A H x H )

Ensuite décomposons sur les coefficients de la fonction critère:

()

c t x = c B x B +c H x H avec c = (c B ,c H ) t

t

t

=

=

c

c

t

B

t

A

B A

B

B

1

1

(b A H x H )+c

b+ c

t

H c

t H x H

1

B A A H x H

t

B

Programmation linéaire

)+ c b + c t H − c t H x H 1 B A

March 23, 2012

)+ c b + c t H − c t H x H 1 B A

105 / 193

Utilisons, à ce niveau, la solution de base réalisable qu’on s’est donnée x br . On a bien

et

x br =A b

B

1

c

t

B A

B

1

car

br

H

x

b=c t x br

=0

remplaçons dans l’égalité en c t x, on alors:

Le vecteur c

()

c t x H =c t x br + c

H t c

1

B A A H x H

t

B

t

H c

t

B A

B

1

A H est dit vecteur des couts réduits.

Programmation linéaire

H − c t B A − B 1 A H est dit vecteur des couts

March 23, 2012

H − c t B A − B 1 A H est dit vecteur des couts

106 / 193

Donnons sur exemple un calcul des couts réduits. Considérons le programme linéaire suivant:

min z = 2x 1 +3x 2 + 100 x 5 + 100 x 6

s/c

1 1

2 x 1 + 4 x 2 +x 3

x 1 +3x 2

x 1 +x 2 +

x 4 +x 5

avec x 1 ,x 2 ,x 3 ,x 4 ,x 5 ,x 6 0

()

Programmation linéaire

= 4

= 20

+x 6 = 10

3 , x 4 , x 5 , x 6 ≥ 0 () Programmation linéaire =

March 23, 2012

3 , x 4 , x 5 , x 6 ≥ 0 () Programmation linéaire =

107 / 193

Les variables de base sont x 3 ,x 5 ,x 6 Les variables de Hors base sont x 1 ,x 2 ,x 4 . En écrivant les composantes colonnes pour chaque variable dans la matrice A et suivant l’ordre:x 3 ,x 5 ,x 6 ,x 1 ,x 2 ,x 4 .(i.e.base,Hors base),on a:

A = (A B | A H )=(A Base | A HorsBase )=

()

1

0

0

0

1

0

0

0

1

|

1

2

1 4

1 3

1 1

Programmation linéaire

0

1

0

)= ()   1 0 0 0 1 0 0 0 1 | 1 2

March 23, 2012

)= ()   1 0 0 0 1 0 0 0 1 | 1 2

108 / 193

Pour calculer Le vecteur des couts réduits c différents élements qui le constituent:

A H = 1

1

1

2

1

4

0

3 1

1

0

t

H c

A B =A

B

1

= Id 3,3

t

c B

t

c H

= (0, 100, 100)

= (2,3,0)

t

B A

B

1

A H précisons les

()

Programmation linéaire

100 , 100 ) = ( 2 , 3 , 0 ) t B A −

March 23, 2012

100 , 100 ) = ( 2 , 3 , 0 ) t B A −

109 / 193

D’ou le vecteur des cout réduits est:

t

c H c

t

1

B A A H

B

= (2, 3, 0) (0 + 100 + 100, 0 + 300 + 100, 100)

= ( 198, 397, 100)

()

Programmation linéaire

0 + 300 + 100 , − 100 ) = ( − 198 , − 397

March 23, 2012

0 + 300 + 100 , − 100 ) = ( − 198 , − 397

110 / 193

Un petit commentaire:

Les coordonnées de c

t

H c

t

B A

B

1

A H , trouvées après developpement des

calculs, sont différents des coefficients du critère: ceci est du au fait que c B est un vecteur non nul. En plus clair, c’est à cause de la prèsence des variables de base dans le critère. Autrement, si on avait c B à coordonées nulles on aurait les couts réduits identifiés exactement aux coefficients du critère.

t

t

()

Programmation linéaire

réduits identifiés exactement aux coefficients du critère. t t () Programmation linéaire March 23, 2012 111

March 23, 2012

réduits identifiés exactement aux coefficients du critère. t t () Programmation linéaire March 23, 2012 111

111 / 193

En effet, vérifions sur exemple:

Soit le programme linéaire: (sous forme standard).

sous les contraintes

max 6x 1 +4x 2

3x 1 +9x 2 +x 3 = 81

4x 1 +5x 2 +x 4 = 55

2x 1 +x 2 +x 5 = 20

avec x 1 0,x 2 0 variables hors base ( variables de décision) & x 3 0,x 4 0,x 5 0 variables de base (variables d’ecart).

()

Programmation linéaire

4 ≥ 0 , x 5 ≥ 0 variables de base (variables d’ecart). () Programmation linéaire

March 23, 2012

4 ≥ 0 , x 5 ≥ 0 variables de base (variables d’ecart). () Programmation linéaire

112 / 193

A = (A B | A H )=(A Base | A HorsBase )=

()

1

0

0

0

1

0

0

0

1

|

3

4

2

9

5

1

Programmation linéaire

| A HorsBase )= ()   1 0 0 0 1 0 0 0 1

March 23, 2012

| A HorsBase )= ()   1 0 0 0 1 0 0 0 1

113 / 193

Pour calculer Le vecteur des couts réduits c différents élements qui le constituent:

A H =

3

4

2

9

5

1

t

H c

A B =A

B

1

= Id 3,3

t

= (0,0,0)

c B

c

H t = (6,4)

t

B A

B

1

A H précisons les

()

Programmation linéaire

, 0 ) c B c H t = ( 6 , 4 ) t B

March 23, 2012

, 0 ) c B c H t = ( 6 , 4 ) t B

114 / 193

D’ou le vecteur des cout réduits est:

t

c H c

t

1

B A A H

B

= (6,4) (0,0,0)

= (6,4)

à l’étape de départ forme standard. Plus loin on va refaire les calculs pour avoir les couts réduits à l’étape de fin du simplexe; c’est à dire à l’étape de l’optimum.

()

Programmation linéaire

de fin du simplexe; c’est à dire à l’étape de l’optimum. () Programmation linéaire March 23,

March 23, 2012

de fin du simplexe; c’est à dire à l’étape de l’optimum. () Programmation linéaire March 23,

115 / 193

Le vecteur des couts réduits est un outil qui sert implicitement de repère dans l’avancement de l’algorithme du simplexe. En effet, On a deux situations "naturelles":

Primo: l’algorithme se termine( on trouve une solution de base réalisable optimale et il n’est plus possible d’augmenter la fonction objectif) lorsque les couts réduits sont tous négatifs. c’est à dire

t

c H c

t

B A

1

B A H 0

dans le sens que ses composants sont négatifs ou nuls. Secondo: c’est l’autre possibilité de signe ou il existe un indice i tel que sa composante dans le vecteur des couts réduits est

()

c

t

H c

t

B A

B

1

A H i >0

Programmation linéaire

réduits est () c t H − c t B A − B 1 A H

March 23, 2012

réduits est () c t H − c t B A − B 1 A H

116 / 193

Dans l’algorithme du simplexe, certaines situations conduisent à l’arret de l’algorithme. Elles sont en relation étroite avec l’unicité de l’optimum.

En effet, si les couts réduits

t

c H c

t

B A

B

1

A H <0,

alors la solution de base réalisable courante est l’unique optimum. Dans le cas

on a deux cas:

()

t

c H c

t

B A

1

B A H 0

Programmation linéaire

cas on a deux cas: () t c H − c t B A 1 B

March 23, 2012

cas on a deux cas: () t c H − c t B A 1 B

117 / 193

Le premier " si c

l’optimum n’est pas unique.

t

H c

t

B A

B

1

A H entre = 0 et x entre > 0" donne que

e = 0 et x e n t r e > 0 " donne que Le

Le deuxième " si c

l’optimum est unique. on a une variable de base nulle: la base est dite

t

H c

t

B A

1

A H entre = 0 et x entre = 0" donne que

B

dégénérée.

()

Programmation linéaire

= 0 et x e n t r e = 0" donne que − B dégénérée.

March 23, 2012

= 0 et x e n t r e = 0" donne que − B dégénérée.

118 / 193

On continue alors le processus du simplexe avec une variable

x entre

à entrer dans la base ayant de préférence un cout réduit le plus grand possible positif. (le plus petit possible pour un problème de minimisation).

**Du coté de la variable qui sort

Une variable qui entre dans la base oblige une autre à sortir (cardinalité

fixe de la base oblige).

de la base:

()

Programmation linéaire

autre à sortir (cardinalité fixe de la base oblige). de la base: () Programmation linéaire March

March 23, 2012

autre à sortir (cardinalité fixe de la base oblige). de la base: () Programmation linéaire March

119 / 193

Mais laquelle? Pour savoir, on augmente la variable choisie à entrer dans la base jusqu’à annuler une des variables de base. Cette variable est alors appelé à sortir de la base. Sur la forme standard, on a:

Ax

=

b

⇐⇒ A B x B +A entre x entre =b

ou A entre est la colonne de la matrice A suivant la variable qui entre.

()

Programmation linéaire

e est la colonne de la matrice A suivant la variable qui entre. () Programmation linéaire

March 23, 2012

e est la colonne de la matrice A suivant la variable qui entre. () Programmation linéaire

120 / 193

c’est encore équivalent à:

B

B

1

1

⇐⇒ x B =A ⇐⇒ x B =A

⇐⇒ x B =x br A

b A entre x entre

b A

B

1

B

1

A entre x entre

A entre x entre

Il reste à traiter ce résultat suivant le vecteur A

B

1

A entre :

()

Programmation linéaire

à traiter ce résultat suivant le vecteur A − B 1 A entre : () Programmation

March 23, 2012

à traiter ce résultat suivant le vecteur A − B 1 A entre : () Programmation

121 / 193

1

Si tous les termes sont négatifs (i.e. A A entre 0). On augmente x entre comme on veut, ça ne sert à rien. La positivité de x B persiste. La fonction objectif n’est pas majorée sur l’ensemble des solutions réalisables: ce qui signifie que le maximum est infini. L’algorithme s’arrete.

B

()

Programmation linéaire

signifie que le maximum est infini. L’algorithme s’arrete. − B () Programmation linéaire March 23, 2012

March 23, 2012

signifie que le maximum est infini. L’algorithme s’arrete. − B () Programmation linéaire March 23, 2012

122 / 193

Sinon (il existe un indice au moins i tel que A pour garantir la positivité de

B

1

A entre i > 0). De plus

x br i A A entre i x entre 0 pour tout i

B

1

on choisit la variable sortante pour laquelle la quantité

x br i

A

B

1

A entre i

pour i = 1,

, cardinal de la base

est la plus petite possible (la plus restrictive). Fin de Parenthèse. Entamons à présent: un résultat important de dualité:

()

Programmation linéaire

Parenthèse. Entamons à présent: un résultat important de dualité: () Programmation linéaire March 23, 2012 123

March 23, 2012

Parenthèse. Entamons à présent: un résultat important de dualité: () Programmation linéaire March 23, 2012 123

123 / 193

Th « eor„eme second de dualit « e : (forte dualit « e):

Si le problème Primal admet une solution réalisable optimale x

o primal alors

o

le problème Dual admet aussi une solution réalisable optimale y dual et on a

primal =y dual b.

o

o

cx

()

Programmation linéaire

optimale y d u a l et on a primal = y dual b . o

March 23, 2012

optimale y d u a l et on a primal = y dual b . o

124 / 193

En effet:

Si le problème Primal (sous sa forme standard) admet une solution réalisable optimale x primal , il admet une solution de base réalisable optimale.

o

(Définition:une solution est de base réalisable optimale si sa partie à variables hors base est nulle, elle est associée à un dictionnaire).

()

Programmation linéaire

variables hors base est nulle, elle est associée à un dictionnaire). () Programmation linéaire March 23,

March 23, 2012

variables hors base est nulle, elle est associée à un dictionnaire). () Programmation linéaire March 23,

125 / 193

Soit B 0 cette base optimale et soit x primal la solution de base réalisable optimale. On peut écrire alors:

o

Considérons ensuite

o primal =A

x

1

B 0

b.

y 1 = A

1

B 0

t c B 0

Puis montrons y 1 est une solution réalisable pour le problème Dual (du problème Primal considéré). Notons A H 0 la partie de la matrice A de la forme standard du problème Primal liée aux variables hors base ( A se décompose en A = (A B | A H )).

()

Programmation linéaire

hors base ( A se décompose en A = ( A B | A H )

March 23, 2012

hors base ( A se décompose en A = ( A B | A H )

126 / 193

On applique sa transposée à l’égalité précédente:

(A H 0) t y 1 = (A H 0) t A

1

B 0

t c B 0

= A .A H 0 t c B 0

1

B 0

c

B 0 A

t

1

B 0

.A H 0 t

=

= (c H 0) t (CO H 0) t t

= c H 0 CO H 0

avec CO H 0 condition d’optimalité définie par la relation:

()

Programmation linéaire

CO H 0 condition d’optimalité définie par la relation: () Programmation linéaire March 23, 2012 127

March 23, 2012

CO H 0 condition d’optimalité définie par la relation: () Programmation linéaire March 23, 2012 127

127 / 193

CO

H t 0 =(c H 0) t c

B 0 A

t

1

B 0

.A H 0

et qui est négatif ( c’est l’influence de la fonction objectif sur le maximum (voir au dessus les couts réduits:cas de l’optimum)). Or, au maximum tous les couts réduits sont négatifs ou nuls:

d’ou

CO H 0 0

A

H t 0 y 1 c H 0

De plus on a par définition

()

Programmation linéaire

0 A H t 0 y 1 ≥ c H 0 De plus on a par

March 23, 2012

0 A H t 0 y 1 ≥ c H 0 De plus on a par

128 / 193

donc

A t y 1 c

A

B t 0 y 1 =c B 0

et y 1 à n’importe quel signe

Ce qui implique que y 1 est une solution réalisable du problème Dual. De plus, il faut signaler que le problème primal étant mis sous forme standard nous epargne la contrainte de positivité sur les variables y du problème Dual.

()

Programmation linéaire

la contrainte de positivité sur les variables y du problème Dual. () Programmation linéaire March 23,

March 23, 2012

la contrainte de positivité sur les variables y du problème Dual. () Programmation linéaire March 23,

129 / 193

Aussi, on a

primal construction

=

cx o

c t x o

primal

= c

t B 0 A

1

B 0

b

car B 0 est la base au niveau optimal

= A

t

= y

1

b

1

B 0

t c B 0 t b

Grace au théorème de forte dualité, on conclut que y 1 est optimale pour le problème Dual.

()

Programmation linéaire

dualité, on conclut que y 1 est optimale pour le problème Dual. () Programmation linéaire March

March 23, 2012

dualité, on conclut que y 1 est optimale pour le problème Dual. () Programmation linéaire March

130 / 193

Pour le problème Primal trois cas sont possibles pour les solutions :

SITUATION 1: il existe (au moins) une solution optimale. SITUATION 2: l’ensemble des solutions réalisables n’est pas borné et le maximum est infini. SITUATION 3: Il n’existe pas de solution réalisables.

()

Programmation linéaire

est infini. SITUATION 3: Il n’existe pas de solution réalisables. () Programmation linéaire March 23, 2012

March 23, 2012

est infini. SITUATION 3: Il n’existe pas de solution réalisables. () Programmation linéaire March 23, 2012

131 / 193

Or le problème Dual est lui meme un programme linéaire, donc il a les memes situations. Pour le lien entre les deux problèmes duaux:

Théorème.

Soient deux problèmes duaux (Primal & son Dual).

Alors l’une des situations suivantes peut se produire sans qu’aucune des deux autres n’ait lieu. * Aucun des deux problèmes ne possède de solution réalisable. ** Un des problèmes possède une solution réalisable avec un optimum infini, l’autre n’a pas de solution. *** les deux problèmes possèdent chacun des solutions optimales (une ou plusieurs)(à l’optimum, les couts sont égaux).

()

Programmation linéaire

optimales (une ou plusieurs)(à l’optimum, les couts sont égaux). () Programmation linéaire March 23, 2012 132

March 23, 2012

optimales (une ou plusieurs)(à l’optimum, les couts sont égaux). () Programmation linéaire March 23, 2012 132

132 / 193

Si on signale ces résultats sur un tableau, on a:

Si on signale ces résultats sur un tableau, on a: () Programmation linéaire March 23, 2012

()

Programmation linéaire

Si on signale ces résultats sur un tableau, on a: () Programmation linéaire March 23, 2012

March 23, 2012

Si on signale ces résultats sur un tableau, on a: () Programmation linéaire March 23, 2012

133 / 193

Théorème Pratique lien Primal Dual:

(Pour calcul des solutions optimales l’une à partir de l’autre):

()

Programmation linéaire

(Pour calcul des solutions optimales l’une à partir de l’autre): () Programmation linéaire March 23, 2012

March 23, 2012

(Pour calcul des solutions optimales l’une à partir de l’autre): () Programmation linéaire March 23, 2012

134 / 193

Soient x et y des solutions réalisables de deux problèmes Duaux respectivement. Alors x et y sont des solutions réalisables optimales si et seulement si les conditions d’optimalité Primal-Dual suivantes sont vérifiées:

-Si une contrainte est validée en inégalité stricte dans le Primal alors la variable correspondante du Dual est nulle. -Si la valeur d’une variable dans dans le Primal ou Dual est strictement positive alors la contrainte correspondante de l’autre programme est une égalité. Ceci permet en pratique de de connaitre l’optimalité d’une solution réalisable du problème Primal à partir d’une solution optimale du problème Dual.

()

Programmation linéaire

Primal à partir d’une solution optimale du problème Dual. () Programmation linéaire March 23, 2012 135

March 23, 2012

Primal à partir d’une solution optimale du problème Dual. () Programmation linéaire March 23, 2012 135

135 / 193

Dans ce qui suit, on traduit le théorème en formules pratiques:

Pour des solutions réalisables optimales x op et y op des problèmes Duaux respectivement, on a:

n

j=1 a ij (x op ) j <b i =(y op ) i =0

m

a ij (y op ) i >c j =(x op ) j =0

()

i=1

(y op ) i >0=

(x op ) j >0=

n

j=1 a ij (x op ) j =b i

m

a ij (y op ) i =c j

i=1

Programmation linéaire

i m ∑ a i j ( y o p ) i = c j i

March 23, 2012

(( ))

i m ∑ a i j ( y o p ) i = c j i

136 / 193

Application sur Exemple:

Considérons un problème de programmation linéaire: c’est notre programme Primal (sous forme standard).

sous les contraintes

max 6x 1 +4x 2

3x 1 +9x 2 +x 3 = 81

4x 1 +5x 2 +x 4 = 55

2x 1 +x 2 +x 5 = 20

avec x 1 0,x 2 0 variables hors base ( variables de décision) & x 3 0,x 4 0,x 5 0 variables de base (variables d’ecart).

()

Programmation linéaire

4 ≥ 0 , x 5 ≥ 0 variables de base (variables d’ecart). () Programmation linéaire

March 23, 2012

4 ≥ 0 , x 5 ≥ 0 variables de base (variables d’ecart). () Programmation linéaire

137 / 193

Son problème Dual est alors:

min 81y 1 + 55y 2 + 20y 3

sous les contraintes

3y 1 +4y 2 +2y 3 6

9y 1 +5y 2 +y 3 4 avec y 1 0,y 2 0 et y 3 0.

()

Programmation linéaire

3 ≥ 4 avec y 1 ≥ 0 , y 2 ≥ 0 et y 3

March 23, 2012

3 ≥ 4 avec y 1 ≥ 0 , y 2 ≥ 0 et y 3

138 / 193

La résolution graphique du problème Primal donne:

La résolution graphique du problème Primal donne: Remarque: Si la pente de la droite qui représente

Remarque: Si la pente de la droite qui représente le critère était strictement entre les pentes des droites correspondantes aux contraintes se coupant au sommet au dessus alors ce sommet serait l’optimum.

()

Programmation linéaire

se coupant au sommet au dessus alors ce sommet serait l’optimum. () Programmation linéaire March 23,

March 23, 2012

se coupant au sommet au dessus alors ce sommet serait l’optimum. () Programmation linéaire March 23,

139 / 193

Le problème Primal admet la solution optimale :

(x 1 ,x 2 ) = (15/2, 5) = (7.5, 5)

avec x 3 = 27/2, x 4 =x 5 =0. Utilisons la quatrième relation ( ) qui suivent le théorème du lien pratique Primal-Dual.

x 1 = 15/2 > 0 =3y 1 +4y 2 +2y 3 =6

Variable colonne x 1 du Primal correspond à ligne 1 du Dual dont écart est alors nul.

x 2 =5>0=9y 1 +5y 2 +y 3 =4

Variable colonne x 2 du Primal correspond à ligne 2 du Dual dont écart est alors nul.

()

Programmation linéaire

du Primal correspond à ligne 2 du Dual dont écart est alors nul. () Programmation linéaire

March 23, 2012

du Primal correspond à ligne 2 du Dual dont écart est alors nul. () Programmation linéaire

140 / 193

Ensuite, de la meme façon:

x 3 = 27/2 > 0 =y 1 =0

variable colonne x 3 du Primal correspond à ligne 3 du Dual

On obtient un système trois inconnues et trois équations:

3y 1 +4y 2 +2y 3 =6

9y 1 +5y 2 +y 3 =4

y 1 =0

On résout. On obtient la solution optimale du problème dual :

y 1 =0,y 2 =1/3,y 3 = 7/3.

()

Programmation linéaire

du problème dual : y 1 = 0 , y 2 = 1 / 3 ,

March 23, 2012

du problème dual : y 1 = 0 , y 2 = 1 / 3 ,

141 / 193

Complément: On met, pour plus de précision, l’accent sur

Solution de Base réalisable.

Pour ceci reprenons le problème de programmation linéaire Primal (sous forme standard). On rappele que c’est une modélisation d’une usine qui fabrique deux produits sous contraintes de disponibilité d’équipement de main d’oeuvre et de matières première:

sous les contraintes

max 6x 1 +4x 2

3x 1 +9x 2 +x 3 = 81

4x 1 +5x 2 +x 4 = 55

2x 1 +x 2 +x 5 = 20

avec x 1 0,x 2 0x 3 0,x 4 0,x 5 0.

()

Programmation linéaire

0 , x 2 ≥ 0 x 3 ≥ 0 , x 4 ≥ 0 ,

March 23, 2012

0 , x 2 ≥ 0 x 3 ≥ 0 , x 4 ≥ 0 ,

142 / 193

Pour avoir la solution de base réalisable initiale: On donne tout simplement zéro aux variables de décision (variables HORS BASE).

x 1 =0,x 2 =0

Ceci nous implique des valeurs pour les variables de Base dues aux valeurs à droite des contraintes ( Variables de BASE).

x 3 = 81, x 4 = 55, x 5 = 20

Valeur du critère z , à ce niveau initial ,est nulle. D’ou la solution de base réalisable est:

x 1 =0,x 2 =0,x 3 = 81, x 4 = 55, x 5 = 20

()

Programmation linéaire

= 0 , x 2 = 0 , x 3 = 81 , x 4 =

March 23, 2012

= 0 , x 2 = 0 , x 3 = 81 , x 4 =

143 / 193

Présentation sous forme de DICTIONNAIRE1:

base

b

 

x

1

x

2

x

3

 

x

4

x

5

 

x

3

.81 .3

.9

.1

0

.0

x

4

.55

.4 .5

.0

1

.0

x

5

.20 .2

.1

.0

0

.1

Z

0

.6

.4 .0

0

.0

()

Programmation linéaire

. 20 . 2 . 1 . 0 0 . 1 Z 0 . 6 .

March 23, 2012

. 20 . 2 . 1 . 0 0 . 1 Z 0 . 6 .

144 / 193

Par un choix du plus grand coefficient dans le critère , la variable x 1 entre

−−−−−−−−−−−−−−−−−−−−−−−→

dans la base de l’étape { x 3 ,x 4 ,x 5 } . En utilisant la positivité des variables d’écart tout en augmentant x 1 et mettant x 2 (autres variable de décision) à zéro:

()

x 3 = 81 3x 1 0=x 1 81

3

x 4 = 55 4x 1 0=x 1 55

4

x 5 = 20 2x 1 0=x 1 20 = 10

2

Programmation linéaire

x 5 = 20 − 2 x 1 ≥ 0 = ⇒ x 1 ≤ 2

March 23, 2012

x 5 = 20 − 2 x 1 ≥ 0 = ⇒ x 1 ≤ 2

145 / 193

Le choix de le plus réstrictif est le dernier: ce qui est équivalent (en algorithme) à prendre le minimum des quantités trouvées au dessus:

min

>0

81 , 55

3

4

, 10

La variable x 5 (choix de ligne pivot) sort de la base { x 3 ,x 4 ,x 5 } ;

()

Programmation linéaire

ligne pivot) sort de la base { x 3 , x 4 , x 5 }

March 23, 2012

ligne pivot) sort de la base { x 3 , x 4 , x 5 }

146 / 193

On a alors une nouvelle solution de base réalisable:

x 1 = 10

(voir au dessus dernier choix de ligne!)

x 2 =0, ceci impose d’après le dictionnaire précédent:

&

avec z = 60.

()

x 3 = 81 3 × 10 = 51

x 4 = 55 4 × 10 = 15

x 5 =0

Programmation linéaire

− 3 × 10 = 51 x 4 = 55 − 4 × 10 = 15

March 23, 2012

− 3 × 10 = 51 x 4 = 55 − 4 × 10 = 15

147 / 193

On exprime la nouvelle variable de base x 1 en fonction de x 5 (une nouvelle variable hors-base). Puis on remplace x 1 dans les autres relations.

()

1

x 1 = 10 2 x 2

1

2 x 5

x 3 = 81 3(10 1 2 x 2 1 2 x 5 ) 9x 2

x 4 = 55 4(10 2 x 2 1 2 x 5 ) 5x 2

1

z=6 (10 2 x 2 1 2 x 5 ) +4x 2

1

Programmation linéaire

1 z = 6 ( 10 − 2 x 2 − 1 2 x 5 )

March 23, 2012

1 z = 6 ( 10 − 2 x 2 − 1 2 x 5 )

148 / 193

Présentation sous forme de DICTIONNAIRE2:

base

b

x x x x x 1 2 3 4 5
x
x
x
x
x
1
2
3
4
5
x 3 .81 .0 . − 15 .1 0 . 3 2 2 x 4
x 3
.81 .0 . − 15
.1
0
. 3
2
2
x
4 .55 .0
. − 3
.0
1
.2
1
x 1 .10 .1
. − 2
.0
0
. − 1
2

Z

.60 .0

1

.0

0

3

()

Programmation linéaire

.1 . − 2 .0 0 . − 1 2 Z . 60 . 0 1

March 23, 2012

.1 . − 2 .0 0 . − 1 2 Z . 60 . 0 1

149 / 193

Par un choix unique, la variable x 2 entre dans la base de l’étape { x 1 ,x 3 ,x 4 } . En utilisant la positivité des variables d’écart tout en augmentant x 2 et mettant x 5 (autres variable de décision) à zéro:

x 1 = 10 1 2 x 2 0=x 2 20

x 3 = 51 15 x 2 0=x 2 102

2

15

x 4 = 15 3x 2 0=x 2 15 3 =5

Le choix de le plus réstrictif est le dernier encore: ce qui est équivalent (en algorithme et implementation du simplexe) à prendre le minimum des quantités trouvées au dessus:

min 20, 102 ,5

>0

15

La variable x 4 (choix de ligne pivot) sort de la base { x 1

,x 3 ,x 4 } ;

de ligne pivot) sort de la base { x 1 , x 3 , x 4

()

Programmation linéaire

March 23, 2012

de ligne pivot) sort de la base { x 1 , x 3 , x 4

150 / 193

la nouvelle solution de base réalisable associée à ce dictionnaire:

x 2 = 5 (voir au dessus dernier choix de ligne!) x 5 = 0,(variable de décision, Hors Base) ceci impose d’après le dictionnaire précédent:

&

x 1 = 10 2 × 5= 15

1

2

x 3 = 51 15 × 5= 27

2

2

avec z = 65 (augmentation du critère).

()

Programmation linéaire

1 5 × 5 = 2 7 2 2 avec z = 65 (augmentation du critère)

March 23, 2012

1 5 × 5 = 2 7 2 2 avec z = 65 (augmentation du critère)

151 / 193

Présentation sous forme de DICTIONNAIRE3:

base

b

x x x x x 1 2 3 4 5
x
x
x
x
x
1
2
3
4
5

x

2

.5

.0

1

 

0

 

1

. 2 3

 

3

x

1

x

3

. 15

2

. 27

2

.1

.0

0

0

0

1

1

6

5

2

. 5

6

. 7

2

Z

.65 .0

 

0

.0

 

1

7

3

3

Tous les coefficients (couts réduits) dans la fonction objective sont 0. On ne peut plus augmenter la fonction économique. Le maximum est atteint et la solution optimale est:

x

optimal

1

= 15

2

,

optimal

2

optimal

= 27

2

,

optimal

4

optimal

=5, x

3

=0, x

5

=0.

x

x

()

Programmation linéaire

optimal = 27 2 , optimal 4 optimal = 5 , x 3 = 0 ,

March 23, 2012

optimal = 27 2 , optimal 4 optimal = 5 , x 3 = 0 ,

152 / 193

Procédons au calcul des couts réduits à ce niveau:

()

Programmation linéaire

Procédons au calcul des couts réduits à ce niveau: () Programmation linéaire March 23, 2012 153

March 23, 2012

Procédons au calcul des couts réduits à ce niveau: () Programmation linéaire March 23, 2012 153

153 / 193

revenons au départ de la méthode du simplexe (au commencement de la méthode: ou il faut avoir une base d’initialisation) Initialisation et variables artificielles

C’est une autre façon de corriger une certaine anomalie de départ qui peut avoir lieu quand il n’est pas possible d’avoir une solution de base réalisable initiale (pour démarrer le simplexe). Présentons, sur exemples, le type de problème qu’on peut avoir au départ de la méthode (pour initialiser la méthode du simplexe).

()

Programmation linéaire

au départ de la méthode (pour initialiser la méthode du simplexe). () Programmation linéaire March 23,

March 23, 2012

au départ de la méthode (pour initialiser la méthode du simplexe). () Programmation linéaire March 23,

154 / 193

Mettons en évidence le besoin aux variables artificielles par des exemples de programmes linéaires sous forme standard:

Exemple1: Problème de programmation linéaire sous forme canonique:

s/c:

max 2x 1 x 2

2x 1 3x 2 ≤ − 19

3x 1 +4x 2 32

avec x 1 ;x 2 0. Ensuite forme standard( entrée des variables d’écart):

s/c:

max 2x 1 x 2

2x 1 3x 2 +x 3

= 19

3x 1 +4x 2

+x 4 = 32

avec x 1 ,x 2 ,x 3 ,x 4 0.

Une base est alors

()

{

x

3

}

,x 4 ?

Programmation linéaire

, x 3 , x 4 ≥ 0 . Une base est alors () { x

March 23, 2012

, x 3 , x 4 ≥ 0 . Une base est alors () { x

155 / 193

Exemple2:

Soit le programme linéaire suivant:

max 3x 1 +2x 2 +4x 3 +x 4 x 5 +x 6

s/c:

x 1 +x 2 +2x 3 +x 4

=4

2x 1

+3x 3 2x 4 +x 5

=5

2x 1 +x 2 +3x 3

x 5 +2x 6 =7

avec x i 0 pour i { 1, 2,

Vu sa forme, on ne peut pas avoir une base réalisable. (pas de solution de base réalisable).

, 6 } .

()

Programmation linéaire

base réalisable. (pas de solution de base réalisable). , 6 } . () Programmation linéaire March

March 23, 2012

base réalisable. (pas de solution de base réalisable). , 6 } . () Programmation linéaire March

156 / 193

Dans la suite, on propose certaines méthodes techniques, basées sur les variables artificielles, pour corriger cette défaillance d’initialisation par une base réalisable dans l’algorithme du simplexe. Ceci constitue une phase préliminaire avant d’entamer la phase réelle de résolution par le simplexe.

()

Programmation linéaire

avant d’entamer la phase réelle de résolution par le simplexe. () Programmation linéaire March 23, 2012

March 23, 2012

avant d’entamer la phase réelle de résolution par le simplexe. () Programmation linéaire March 23, 2012

157 / 193

En général, pour un problème linéaire sous forme standard, dont on cherche à initialiser l’algorithme du simplexe alors que ce n’est pas évident:

s/contraintes:

max c t x

Ax = b

avec conditions de positivité

x 0

On ne suppose pas que la matrice A est de rang plein. On ne suppose pas qu’il existe bien des solutions réalisables. Pour obtenir une solution de base réalisable ou encore savoir que ça n’existe pas, on considère un problème de programmation linéaire auxiliaire pour des variables supplémentaires appelées variables artificielles.

()

Programmation linéaire

des variables supplémentaires appelées variables artificielles. () Programmation linéaire March 23, 2012 158 / 193

March 23, 2012

des variables supplémentaires appelées variables artificielles. () Programmation linéaire March 23, 2012 158 / 193

158 / 193

En effet:

Ce programme linéaire est:

m

min

(x,s)

i=1 s i

Ax + s = b

avec x 0 et s 0 ces variables artificielles.

()

Programmation linéaire

s = b avec x ≥ 0 et s ≥ 0 ces variables artificielles. () Programmation

March 23, 2012

s = b avec x ≥ 0 et s ≥ 0 ces variables artificielles. () Programmation

159 / 193

Proposition. Un problème linéaire admet une solution réalisable si et

seulement si le problème auxiliaire associé admet une solution de base optimale avec s = 0. Pour la TECHNIQUE PRATIQUE, pour avoir une solution de base réalisable du Programme linéaire du

départ, on applique l’algorithme du simplexe au problème linéaire auxiliaire associé.

()

Programmation linéaire

l’algorithme du simplexe au problème linéaire auxiliaire associé. () Programmation linéaire March 23, 2012 160 /

March 23, 2012

l’algorithme du simplexe au problème linéaire auxiliaire associé. () Programmation linéaire March 23, 2012 160 /

160 / 193

A la fin du simplexe sur ce problème auxiliaire (on trouve cout nul), on cherche à éliminer de la base toutes les variables artificielles. S’il en reste dans la base, alors les lignes associées à ces variables sont des contraintes redondantes qu’on élimine.

()

Programmation linéaire

à ces variables sont des contraintes redondantes qu’on élimine. () Programmation linéaire March 23, 2012 161

March 23, 2012

à ces variables sont des contraintes redondantes qu’on élimine. () Programmation linéaire March 23, 2012 161

161 / 193

Revenons aux exemples pour traitement:

Pour Exemple1:

Introduction de variables artificielles (on introduit la ou on a besoin de corriger le problème):

s/c:

max 2x 1 x 2

2x 1 3x 2 +x 3

3x 1 +4x 2

+x 4

-x 5

avec x i 0 pour i { 1, 2,

,

5

}

= 19

= 32

D’ou on a une nouvelle base réalisable { x 4 ,x 5 } . Dans la suite, l’application du simplexe implique que: si x 5 = 0 alors on a un optimum pour le problème linéaire de départ.

()

Programmation linéaire

= 0 alors on a un optimum pour le problème linéaire de départ. () Programmation linéaire

March 23, 2012

= 0 alors on a un optimum pour le problème linéaire de départ. () Programmation linéaire

162 / 193

On doit cibler x 5 =0 :

sur le problème linéaire auxiliaire suivant

s/c:

min x 5

2x 1 3x 2 +x 3

3x 1 +4x 2

+x 4

-x 5

avec x i 0 pour i { 1, 2,

,

5

}

()

Programmation linéaire

= 19

= 32

x i ≥ 0 pour i ∈ { 1 , 2 , , 5 } ()

March 23, 2012

x i ≥ 0 pour i ∈ { 1 , 2 , , 5 } ()

163 / 193

Etape1: résolution du problème auxiliaire

"min x 5 :

il est équivalent au problème linéaire "max x 5 :

s/c:

max x 5

2x 1 3x 2 +x 3

3x 1 +4x 2

+x 4

-x

5

avec x i 0 pour i { 1, 2,

,

5

}

()