Vous êtes sur la page 1sur 145

Programmation Lineaire

Bertrand Le Cun
Universit
e Paris-Ouest-Nanterre-La D
efense
&
Laboratoire PRiSM, Universit
e de Versailles-Saint-Quentin

21 fevrier 2011

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

1 / 64

Programmation Lineaire
Un Programme Lineaire
max C.X
s.c.
A.X = B
x
0

Proprietes
Les variables `a valeurs reelles
xi

i = [1..n]

La fonction economique lineaire


P
M in/M ax( i ci xi )

Les contraintes lineaires


P
Contrainte j i aij xi bj
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

2 / 64

Programmation Lineaire

Un Programme Lineaire
max C.X
s.c.
A.X = B
x
0

n variables m contraintes

La matrice (nxm)

A=

a11
a21
...
am1

a12
a22
...
am2

...
...
...
...

B. Le Cun (pond & uvsq)

a1n
a2n

...
amn

x1
b1
x2
b2

X=
... B = ...
xn
bm

Programmation Lin
eaire

21 f
evrier 2011

2 / 64

Resolution Graphique

PL `a 2 variables
Sur un repere.

Des Exemples. . .

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

3 / 64

Resolution Graphique

PL `a 2 variables
Sur un repere.
Un axe par variable. . .

Des Exemples. . .

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

3 / 64

Resolution Graphique

PL `a 2 variables
Sur un repere.
Un axe par variable. . .
Les contraintes sont des limites : des droites.

Des Exemples. . .

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

3 / 64

Resolution Graphique

PL `a 2 variables
Sur un repere.
Un axe par variable. . .
Les contraintes sont des limites : des droites.
Le domaine realisable
Des Exemples. . .

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

3 / 64

Resolution Graphique

PL `a 2 variables
Sur un repere.
Un axe par variable. . .
Les contraintes sont des limites : des droites.
Le domaine realisable
La fonction objectif : Une droite pouvant bouger !
Des Exemples. . .

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

3 / 64

Resolution Graphique

PL `a 2 variables
Sur un repere.
Un axe par variable. . .
Les contraintes sont des limites : des droites.
Le domaine realisable
La fonction objectif : Une droite pouvant bouger !
Des Exemples. . .

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

3 / 64

Exemple 1
Le PL
max x + y
s.c. x + 2y 2
x
3
y
4
x, y
0

Commentaires

Graphiquement
4
3
2
1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

4 / 64

Exemple 1
Le PL
max x + y
s.c. x + 2y 2
x
3
y
4
x, y
0

Commentaires

Graphiquement
4
3
2
1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

4 / 64

Exemple 1
Le PL
max x + y
s.c. x + 2y 2
x
3
y
4
x, y
0

Commentaires

Graphiquement
4
3
2
1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

4 / 64

Exemple 1
Le PL
max x + y
s.c. x + 2y 2
x
3
y
4
x, y
0

Commentaires

Graphiquement
4
3
2
1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

4 / 64

Exemple 1
Le PL
Graphiquement

max x + y
s.c. x + 2y 2
x
3
y
4
x, y
0

4
3

Commentaires

Le Domaine Realisable
1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

4 / 64

Exemple 1
Le PL
Graphiquement

max x + y
s.c. x + 2y 2
x
3
y
4
x, y
0

4
3

Commentaires

Le Domaine Realisable
Fonc Obj = 1

1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

4 / 64

Exemple 1
Le PL
Graphiquement

max x + y
s.c. x + 2y 2
x
3
y
4
x, y
0

4
3

Commentaires

Le Domaine Realisable
Fonc Obj = 2

1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

4 / 64

Exemple 1
Le PL
Graphiquement

max x + y
s.c. x + 2y 2
x
3
y
4
x, y
0

4
3

Commentaires

Le Domaine Realisable
Fonc Obj = 4

1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

4 / 64

Exemple 1
Le PL
Graphiquement

max x + y
s.c. x + 2y 2
x
3
y
4
x, y
0

4
3

Commentaires

Le Domaine Realisable
Fonc Obj = 7

1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

4 / 64

Exemple 1
Le PL
Graphiquement

max x + y
s.c. x + 2y 2
x
3
y
4
x, y
0

4
3

Commentaires

Le Domaine Realisable
Fonc Obj = 7
On ne peut pas
augmenter plus la
fonction objectif.

B. Le Cun (pond & uvsq)

1
0
0

Programmation Lin
eaire

21 f
evrier 2011

4 / 64

Exemple 1
Le PL
Graphiquement

max x + y
s.c. x + 2y 2
x
3
y
4
x, y
0

4
3

Commentaires

Le Domaine Realisable
1

Fonc Obj = 7
On ne peut pas
augmenter plus la
fonction objectif.

0
0

x = 3 et y = 4 : z = 7.
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

4 / 64

Exemple 2
Le PL
min x y
4
s.c. 31 x + y
2x + 2y 4
x
3
x, y
0

Commentaires

Graphiquement
4
3
2
1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

5 / 64

Exemple 2
Le PL
min x y
4
s.c. 13 x + y
2x + 2y 4
x
3
x, y
0

Commentaires

Graphiquement
4
3
2
1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

5 / 64

Exemple 2
Le PL
min x y
4
s.c. 31 x + y
2x + 2y 4
x
3
x, y
0

Commentaires

Graphiquement
4
3
2
1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

5 / 64

Exemple 2
Le PL
min x y
4
s.c. 31 x + y
2x + 2y 4
x
3
x, y
0

Commentaires

Graphiquement
4
3
2
1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

5 / 64

Exemple 2
Le PL

Graphiquement

min x y
4
s.c. 31 x + y
2x + 2y 4
x
3
x, y
0

4
3
2

Commentaires
Le Domaine Realisable

1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

5 / 64

Exemple 2
Le PL

Graphiquement

min x y
4
s.c. 31 x + y
2x + 2y 4
x
3
x, y
0

4
3
2

Commentaires
Le Domaine Realisable
Fonc Obj = 1

1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

5 / 64

Exemple 2
Le PL

Graphiquement

min x y
4
s.c. 31 x + y
2x + 2y 4
x
3
x, y
0

4
3
2

Commentaires
Le Domaine Realisable
Fonc Obj = 0

1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

5 / 64

Exemple 2
Le PL

Graphiquement

min x y
4
s.c. 31 x + y
2x + 2y 4
x
3
x, y
0

4
3
2

Commentaires
Le Domaine Realisable
Fonc Obj = -1

1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

5 / 64

Exemple 2
Le PL

Graphiquement

min x y
4
s.c. 31 x + y
2x + 2y 4
x
3
x, y
0

4
3
2

Commentaires
Le Domaine Realisable
Fonc Obj = -2

1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

5 / 64

Exemple 2
Le PL

Graphiquement

min x y
4
s.c. 31 x + y
2x + 2y 4
x
3
x, y
0

4
3
2

Commentaires
Le Domaine Realisable
Fonc Obj = -2
-2 Solution optimale.

1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

5 / 64

Exemple 2
Le PL

Graphiquement

min x y
4
s.c. 31 x + y
2x + 2y 4
x
3
x, y
0

4
3
2

Commentaires
Le Domaine Realisable
Fonc Obj = -2
-2 Solution optimale.

1
0
0

Solution optimales
multiples.
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

5 / 64

Programme Lineaire

Proprietes
Le domaine dadmissibilite est toujours convexe
Hyperplan limitant le domaine dadmissibilite
Point extreme : `a la croisee dhyperplan
Loptimum est toujours atteint en un point extreme de ce polyh`edre
convexe

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

6 / 64

Theor`eme

Theor`emes fondamentaux :
Tout probl`eme de programmation lineaire sous-forme standard poss`ede les
proprietes suivantes :
1

Sil ny a pas de solution realisable alors le probl`eme est nest pas


realisable ou non borne

Sil poss`ede 1 solution realisable alors il poss`ede une solution realisable


de base

Sil poss`ede 1 solution optimale alors il poss`ede une solution de base


optimale.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

7 / 64

Exemple de probl`eme
Sans solution realisable
max x1 + x2
x2
x1
x1 + x2

1
1
2.20

Graphique

0
0
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

8 / 64

Exemple de probl`eme
Sans solution realisable
max x1 + x2
x2
x1
x1 + x2

1
1
2.20

Graphique

0
0
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

8 / 64

Exemple de probl`eme
Sans solution realisable
max x1 + x2
x2
x1
x1 + x2

1
1
2.20

Graphique

0
0
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

8 / 64

Exemple de probl`eme
Non Borne
max

x1 +
x2
2x1 +
2x2 1
x1 + 2x2 1

Graphique

0
0
B. Le Cun (pond & uvsq)

1
Programmation Lin
eaire

21 f
evrier 2011

9 / 64

Methodes de resolution

Trouver une solution


En 2D, la resolution est possible graphiquement.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

10 / 64

Methodes de resolution

Trouver une solution


En 2D, la resolution est possible graphiquement.
En 3D, peut-etre. . .

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

10 / 64

Methodes de resolution

Trouver une solution


En 2D, la resolution est possible graphiquement.
En 3D, peut-etre. . .
Avec plus de 3 variables ? ? ?

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

10 / 64

Methodes de resolution

Trouver une solution


En 2D, la resolution est possible graphiquement.
En 3D, peut-etre. . .
Avec plus de 3 variables ? ? ?

Algorithme
Methode du simplex
Methode de point interieur

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

10 / 64

Methodes de resolution

Trouver une solution


En 2D, la resolution est possible graphiquement.
En 3D, peut-etre. . .
Avec plus de 3 variables ? ? ?

Algorithme
Methode du simplex
Methode de point interieur

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

10 / 64

Programme Lineaire : Forme standard

Equivalence de forme de la fonction objectif


max(f (x)) min(f (x))
max(f (x) + K) max(f (x))
avec K constant.

Transformation de contraintes


g(x) + y1 = b
y1 0

g(x) y2 = b
g(x) b
y2 0
y1 et y2 disponibilite, marge/contraint, variables decart.
g(x) b

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

11 / 64

Methode du simplexe

Principes :
Passer de point extr`eme en point extr`eme, en augmentant la valeur de
fonction de co
ut, jusqu`
a atteindre loptimum.

Squelette dalgorithme :

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

12 / 64

Methode du simplexe

Principes :
Passer de point extr`eme en point extr`eme, en augmentant la valeur de
fonction de co
ut, jusqu`
a atteindre loptimum.

Squelette dalgorithme :
1

Commencer avec une solution realisable : un point extr`eme

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

12 / 64

Methode du simplexe

Principes :
Passer de point extr`eme en point extr`eme, en augmentant la valeur de
fonction de co
ut, jusqu`
a atteindre loptimum.

Squelette dalgorithme :
1

Commencer avec une solution realisable : un point extr`eme

Trouver un autre point extr`eme permettant daugmenter la fonction


objectif

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

12 / 64

Methode du simplexe

Principes :
Passer de point extr`eme en point extr`eme, en augmentant la valeur de
fonction de co
ut, jusqu`
a atteindre loptimum.

Squelette dalgorithme :
1

Commencer avec une solution realisable : un point extr`eme

Trouver un autre point extr`eme permettant daugmenter la fonction


objectif

Arret lorsquil nexiste plus de point extr`eme augmentant la fonction


objectif

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

12 / 64

Methode du simplexe

Terminologie :
A chaque iteration :
Un nouveau dictonnaire est construit

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

13 / 64

Methode du simplexe

Terminologie :
A chaque iteration :
Un nouveau dictonnaire est construit
Operation de base appelee : pivotage

Une variable hors base entre en base


Une variable en base sort de la base

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

13 / 64

Methode du simplexe

Terminologie :
A chaque iteration :
Un nouveau dictonnaire est construit
Operation de base appelee : pivotage

Une variable hors base entre en base


Une variable en base sort de la base

Choix des variables :

Variable entrante : max des coefficients dans z.


Variable sortante : celle correspodant `
a la ligne contraignant le plus
la variable entrante.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

13 / 64

Methode du Simplexe

Solutions Realisables de base


m contraintes, n variables.

Definition
Une solution de base realisable Une solution realisable de base comporte nm
variables non nulles (Solution du syst`eme restant `
a n varaibles et n
contraintes).
les n m variables sont appelees variables hors base
les m variables sont appelees variables de base

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

14 / 64

Methode du simplexe

Presentations :
Deux mani`eres de presenter la methode
1

Presentation mathematique : Alg`ebre

Presentation plus informatique : Tableaux

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

15 / 64

Simplexe

Exemple
max

z=
s.c.

7x1
2x1
x1
x1
x1 ,

+
+
+
+

B. Le Cun (pond & uvsq)

9x2
4x2
x2
2x2
x2 ,

+
+
+
+

18x3
5x3
2x3
3x3
x3 ,

+
+
+
+

17x4
7x4
2x4
3x4
x4 ,

Programmation Lin
eaire

42
17
24
0

21 f
evrier 2011

16 / 64

Mise `a la forme standard

Introduction de 3 variables decart.


z = 7x1
s.c. 2x1
x1
x1
x1 ,

+
+
+
+

9x2
4x2
x2
2x2
x2 ,

+
+
+
+

18x3
5x3
2x3
3x3
x3 ,

+
+
+
+

17x4
7x4
2x4
3x4
x4 ,

+
+
+
+

0e1
e1

0e2

0e3

e2
e1 ,

e2 ,

e3
e3 ,

= 42
= 17
= 24
0

Quoi, comment ?
Contrainte degalite.
une variable par contrainte
Coefficient 0 dans la fonction economique

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

17 / 64

Initialisation du simplexe
Introduction de 3 variables decart.
z = 7x1
s.c. 2x1
x1
x1
x1 ,

+
+
+
+

9x2
4x2
x2
2x2
x2 ,

+
+
+
+

18x3
5x3
2x3
3x3
x3 ,

+
+
+
+

17x4
7x4
2x4
3x4
x4 ,

+
+
+
+

0e1
e1

0e2

0e3

e2
e1 ,

e2 ,

e3
e3 ,

= 42
= 17
= 24
0

Solution de base
Le poly`edre (P) des contraintes est limite dans IR4
Une solution de
base est une solution realisable localisee en un point extr`eme de (P).
m = 3 variables en base
n m = 4 variables sont hors base (ie nulles)
Expression des variables en base en fonction des autres.
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

18 / 64

Algo du Simplexe (1)


Reformulation 1
z=
e1 =
e2 =
e3 =

42
17
24

7x1
2x1
x1
x1

9x2
4x2
x2
2x2

18x3
5x3
2x3
3x3

17x4
7x4
2x4
3x4

Initialisation
Solution de base : x1 , x2 , x3 , x4 = 0
Donc : z = 0, e1 = 42, e2 = 17, e3 = 24.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

19 / 64

Algo du Simplexe (1)


Reformulation 1
z=
e1 =
e2 =
e3 =

42
17
24

7x1
2x1
x1
x1

9x2
4x2
x2
2x2

18x3
5x3
2x3
3x3

17x4
7x4
2x4
3x4

Changement de base
On choisit une variable hors-base `
a coefficient dans z strictement positif
pour la faire rentrer en base,
On fait crotre sa valeur `
a partir de 0, les autres variables hors base
restent nulles
Sa valeur doit rester dans le polyh`edre des solutions,
La valeur correspondante dans z augmente

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

19 / 64

It1 Changement de Base Et1


Le dictionnaire
z = 7x1 + 9x2 + 18x3 + 17x4
e1 = 42 2x1 4x2 5x3 7x4
e2 = 17 x1 x2 2x3 2x4
e3 = 24 x1 2x2 3x3 3x4

On cherche le pivot
Colonne pivot : Celle correspondant `
a x3 (le max des coefs).

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

20 / 64

It1 Changement de Base Et1


Le dictionnaire
z = 7x1 + 9x2 + 18x3 + 17x4
e1 = 42 2x1 4x2 5x3 7x4
e2 = 17 x1 x2 2x3 2x4
e3 = 24 x1 2x2 3x3 3x4

On cherche le pivot
Colonne pivot : Celle correspondant `
a x3 (le max des coefs).
Rappel : x1 = x2 = x4 = 0
Or e1 0, donc on a 42 5x3 donc x3 8.4

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

20 / 64

It1 Changement de Base Et1


Le dictionnaire
z = 7x1 + 9x2 + 18x3 + 17x4
e1 = 42 2x1 4x2 5x3 7x4
e2 = 17 x1 x2 2x3 2x4
e3 = 24 x1 2x2 3x3 3x4

On cherche le pivot
Colonne pivot : Celle correspondant `
a x3 (le max des coefs).
Rappel : x1 = x2 = x4 = 0
Or e1 0, donc on a 42 5x3 donc x3 8.4

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

20 / 64

It1 Changement de Base Et1


Le dictionnaire
z = 7x1 + 9x2 + 18x3 + 17x4
e1 = 42 2x1 4x2 5x3 7x4
e2 = 17 x1 x2 2x3 2x4
e3 = 24 x1 2x2 3x3 3x4

On cherche le pivot
Colonne pivot : Celle correspondant `
a x3 (le max des coefs).
Rappel : x1 = x2 = x4 = 0
Or e1 0, donc on a 42 5x3 donc x3 8.4
Or e2 0 donc on a 17 2x3 donc x3 8.5

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

20 / 64

It1 Changement de Base Et1


Le dictionnaire
z = 7x1 + 9x2 + 18x3 + 17x4
e1 = 42 2x1 4x2 5x3 7x4
e2 = 17 x1 x2 2x3 2x4
e3 = 24 x1 2x2 3x3 3x4

On cherche le pivot
Colonne pivot : Celle correspondant `
a x3 (le max des coefs).
Rappel : x1 = x2 = x4 = 0
Or e1 0, donc on a 42 5x3 donc x3 8.4
Or e2 0 donc on a 17 2x3 donc x3 8.5

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

20 / 64

It1 Changement de Base Et1


Le dictionnaire
z = 7x1 + 9x2 + 18x3 + 17x4
e1 = 42 2x1 4x2 5x3 7x4
e2 = 17 x1 x2 2x3 2x4
e3 = 24 x1 2x2 3x3 3x4

On cherche le pivot
Colonne pivot : Celle correspondant `
a x3 (le max des coefs).
Rappel : x1 = x2 = x4 = 0
Or e1 0, donc on a 42 5x3 donc x3 8.4
Or e2 0 donc on a 17 2x3 donc x3 8.5
Or e3 0 donc on a 24 3x3 donc x3 8

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

20 / 64

It1 Changement de Base Et1


Le dictionnaire
z = 7x1 + 9x2 + 18x3 + 17x4
e1 = 42 2x1 4x2 5x3 7x4
e2 = 17 x1 x2 2x3 2x4
e3 = 24 x1 2x2 3x3 3x4

On cherche le pivot
Colonne pivot : Celle correspondant `
a x3 (le max des coefs).
Rappel : x1 = x2 = x4 = 0
Or e1 0, donc on a 42 5x3 donc x3 8.4
Or e2 0 donc on a 17 2x3 donc x3 8.5
Or e3 0 donc on a 24 3x3 donc x3 8

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

20 / 64

It1 Changement de Base Et1


Le dictionnaire
z = 7x1 + 9x2 + 18x3 + 17x4
e1 = 42 2x1 4x2 5x3 7x4
e2 = 17 x1 x2 2x3 2x4
e3 = 24 x1 2x2 3x3 3x4

On cherche le pivot
Colonne pivot : Celle correspondant `
a x3 (le max des coefs).
Rappel : x1 = x2 = x4 = 0
Or e1 0, donc on a 42 5x3 donc x3 8.4
Or e2 0 donc on a 17 2x3 donc x3 8.5
Or e3 0 donc on a 24 3x3 donc x3 8

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

20 / 64

It1 Changement de Base Et1


Le dictionnaire
z = 7x1 + 9x2 + 18x3 + 17x4
e1 = 42 2x1 4x2 5x3 7x4
e2 = 17 x1 x2 2x3 2x4
e3 = 24 x1 2x2 3x3 3x4

On cherche le pivot
Colonne pivot : Celle correspondant `
a x3 (le max des coefs).
Rappel : x1 = x2 = x4 = 0
Or e1 0, donc on a 42 5x3 donc x3 8.4
Or e2 0 donc on a 17 2x3 donc x3 8.5
Or e3 0 donc on a 24 3x3 donc x3 8
La limite de x3 est 8, x3 entre en base et e3 sort
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

20 / 64

It1 Changement de Base Et2

Phase 2 : Mise a` jour du dictionnaire


On exprime x3 en fonction des variables hors base.
x3 = 8 31 x1 32 x2 x4 31 e3

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

21 / 64

It1 Changement de Base Et2

Phase 2 : Mise a` jour du dictionnaire


On exprime x3 en fonction des variables hors base.
x3 = 8 31 x1 32 x2 x4 31 e3
Remplacement de x3 par cette expression dans les autres equations :
x3 = 8 31 x1 23 x2 x4 31 e3
e1 = 2 31 x1 32 x2 2x4 + 53 e3
e2 = 1 13 x1 + 31 x2 + 23 e3
z = 144 + x1 3x2 x4 6e3

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

21 / 64

It1 Changement de Base Et2

Phase 2 : Mise a` jour du dictionnaire


On exprime x3 en fonction des variables hors base.
x3 = 8 31 x1 32 x2 x4 31 e3
Remplacement de x3 par cette expression dans les autres equations :
x3 = 8 31 x1 23 x2 x4 31 e3
e1 = 2 31 x1 32 x2 2x4 + 53 e3
e2 = 1 13 x1 + 31 x2 + 23 e3
z = 144 + x1 3x2 x4 6e3
On continue avec la variable ?

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

21 / 64

Algo du Simplexe (3)

Changement de Base
Choisir une variable `a faire rentrer en base !
La variable de coefficient le plus grand dans la fonction eco
Premier crit`ere de Dantzig
Dans lexemple x3
Choisir une variable `a faire sortir de la base !
Exprimer x3 en fonction des variables en base.
Second crit`ere de Dantzig

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

22 / 64

It2 Changement de Base Et1


Le dictionnaire
z = 144 + x1 3x2 x4 6e3
x3 = 8 31 x1 23 x2 x4 31 e3
e1 = 2 31 x1 32 x2 2x4 + 53 e3
e2 = 1 13 x1 + 31 x2 + 23 e3

Phase 1 : Trouver le pivot


Rappel : x1 = x2 = x4 = 0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

23 / 64

It2 Changement de Base Et1


Le dictionnaire
z = 144 + x1 3x2 x4 6e3
x3 = 8 31 x1 23 x2 x4 31 e3
e1 = 2 31 x1 32 x2 2x4 + 53 e3
e2 = 1 13 x1 + 31 x2 + 23 e3

Phase 1 : Trouver le pivot


Rappel : x1 = x2 = x4 = 0
Or x3 0 donc on a 8 13 x1 donc x1 24

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

23 / 64

It2 Changement de Base Et1


Le dictionnaire
z = 144 + x1 3x2 x4 6e3
x3 = 8 31 x1 23 x2 x4 31 e3
e1 = 2 31 x1 32 x2 2x4 + 53 e3
e2 = 1 13 x1 + 31 x2 + 23 e3

Phase 1 : Trouver le pivot


Rappel : x1 = x2 = x4 = 0
Or x3 0 donc on a 8 13 x1 donc x1 24

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

23 / 64

It2 Changement de Base Et1


Le dictionnaire
z = 144 + x1 3x2 x4 6e3
x3 = 8 31 x1 23 x2 x4 31 e3
e1 = 2 31 x1 32 x2 2x4 + 53 e3
e2 = 1 31 x1 + 31 x2 + 23 e3

Phase 1 : Trouver le pivot


Rappel : x1 = x2 = x4 = 0
Or x3 0 donc on a 8 13 x1 donc x1 24
Or e1 0 donc on a 2 13 x1 donc x1 6

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

23 / 64

It2 Changement de Base Et1


Le dictionnaire
z = 144 + x1 3x2 x4 6e3
x3 = 8 31 x1 23 x2 x4 31 e3
e1 = 2 31 x1 32 x2 2x4 + 53 e3
e2 = 1 31 x1 + 31 x2 + 23 e3

Phase 1 : Trouver le pivot


Rappel : x1 = x2 = x4 = 0
Or x3 0 donc on a 8 13 x1 donc x1 24
Or e1 0 donc on a 2 31 x1 donc x1 6

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

23 / 64

It2 Changement de Base Et1


Le dictionnaire
z = 144 + x1 3x2 x4 6e3
x3 = 8 31 x1 23 x2 x4 31 e3
e1 = 2 31 x1 32 x2 2x4 + 53 e3
e2 = 1 31 x1 + 31 x2 + 23 e3

Phase 1 : Trouver le pivot


Rappel : x1 = x2 = x4 = 0
Or x3 0 donc on a 8 13 x1 donc x1 24
Or e1 0 donc on a 2 31 x1 donc x1 6
Or e2 0 donc on a 1 13 x1 donc x1 3

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

23 / 64

It2 Changement de Base Et1


Le dictionnaire
z = 144 + x1 3x2 x4 6e3
x3 = 8 31 x1 23 x2 x4 31 e3
e1 = 2 31 x1 32 x2 2x4 + 53 e3
e2 = 1 31 x1 + 31 x2 + 23 e3

Phase 1 : Trouver le pivot


Rappel : x1 = x2 = x4 = 0
Or x3 0 donc on a 8 13 x1 donc x1 24
Or e1 0 donc on a 2 31 x1 donc x1 6
Or e2 0 donc on a 1 31 x1 donc x1 3

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

23 / 64

It2 Changement de Base Et1


Le dictionnaire
z = 144 + x1 3x2 x4 6e3
x3 = 8 31 x1 23 x2 x4 31 e3
e1 = 2 31 x1 32 x2 2x4 + 53 e3
e2 = 1 13 x1 + 31 x2 + 23 e3

Phase 1 : Trouver le pivot


Rappel : x1 = x2 = x4 = 0
Or x3 0 donc on a 8 13 x1 donc x1 24
Or e1 0 donc on a 2 31 x1 donc x1 6
Or e2 0 donc on a 1 31 x1 donc x1 3
La limite de x1 est 3, x1 entre en base et e2 sort

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

23 / 64

It2 Changement de Base Et2

Phase 2 : Mise a` jour du dictionnaire


1

On exprime x1 en fonction des variables hors base.


x1 = 3 + x2 3e2 + 2e3

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

24 / 64

It2 Changement de Base Et2

Phase 2 : Mise a` jour du dictionnaire


1

On exprime x1 en fonction des variables hors base.


x1 = 3 + x2 3e2 + 2e3

Remplacement de x1 par cette expression dans les autres equations :


x1 = 3 + x2 3e2 + 2e3
x3 = 7 x2 x4 + e2 e3
e1 = 1 x2 2x4 + e2 + e3
z = 147 2x2 x4 3e2 4e3

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

24 / 64

It2 Changement de Base Et2

Phase 2 : Mise a` jour du dictionnaire


1

On exprime x1 en fonction des variables hors base.


x1 = 3 + x2 3e2 + 2e3

Remplacement de x1 par cette expression dans les autres equations :


x1 = 3 + x2 3e2 + 2e3
x3 = 7 x2 x4 + e2 e3
e1 = 1 x2 2x4 + e2 + e3
z = 147 2x2 x4 3e2 4e3

On continue ?

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

24 / 64

Finalement

Solution :
x1 = 3, x3 = 7, e1 = 1, x2 = x4 = e2 = e4 = 0
z = 147
Tous les coefficients des variables x2 , x4 , e1 , e3 sont negatifs dans z
Solution optimale

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

25 / 64

La methode des tableaux


Representation
On place les coefficients dans un tableau
appele tableau du Simplexe
Operations vu precedemment reviennent `
a des operations vectorielles sur le
tableau.

Programme Lineaire
max

3.00x1 +
2.00x1 +
4.00x1 +

4.00x2 +
3.00x2 +
1.00x2 +

0.00x3 +
1.00x3 +
0.00x3 +

0.00x4
0.00x4
1.00x4

= 3.00
= 5.00

Tableau
c0
c1
max

x0
2.00
4.00
3.00

x1
3.00
1.00
4.00

x2
1.00
0.00
0.00

B. Le Cun (pond & uvsq)

x3
0.00
1.00
0.00

3.00
5.00
0.00
Programmation Lin
eaire

21 f
evrier 2011

26 / 64

La methode des tableaux


Algorithme
1

Examiner les coef de la derni`ere ligne


Si tous les coefs sont 0 alors fin.
Sinon prendre le plus grand positif : colonne pivot
Pour tous les coefs de la colonne pivot positif r calculer sr avec s le
second membre correspondant.
Prendre le plus petit taux : ligne pivot.
Si tous les coefs de la colonne pivot sont 0 alors le probl`eme est
non born
e

Diviser tous les coefs de la ligne pivot par le pivot.

Multiplier et soustraire une valeur adequate toutes les lignes


restantes de facon `
a obtenir des 0 sur la colone pivot en dehors du
pivot.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

27 / 64

Exemple 1

Programme Lineaire
max 3.00x1 + 4.00x2
2.00x1 + 3.00x2 3.00
4.00x1 + 1.00x2 5.00

Mise sous forme canonique


x0
x1
x2
x3
c0
2.00 3.00 1.00 0.00 3.00
c1
4.00 1.00 0.00 1.00 5.00
max 3.00 4.00 0.00 0.00 0.00

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

28 / 64

Exemple 1

Programme Lineaire
max 3.00x1 + 4.00x2 + 0.00x3 + 0.00x4
2.00x1 + 3.00x2 + 1.00x3 + 0.00x4 = 3.00
4.00x1 + 1.00x2 + 0.00x3 + 1.00x4 = 5.00

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

29 / 64

La resolution de Exemple 1

Iteration 1
x0
x1
x2
x3
c0
2.00 3.00 1.00 0.00 3.00
c1
4.00 1.00 0.00 1.00 5.00
max 3.00 4.00 0.00 0.00 0.00

Tableau Initial
3 lignes La derni`ere est la fonction objectif
5 colonnes La derni`ere represente les membres droits
la valeur (2, 4) est la valeur de la fonction objectif

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

30 / 64

La resolution de Exemple 1

Iteration 1
x0
x1
x2
x3
c0
2.00 3.00 1.00 0.00 3.00
c1
4.00 1.00 0.00 1.00 5.00
max 3.00 4.00 0.00 0.00 0.00

3.00
3.00
5.00
1.00

= 1.00
= 5.00

Recherche du Pivot
Pivot
Colonne 1 max des coeffs dans la derni`ere ligne
Ligne 0 min des rapports

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

30 / 64

La resolution de Exemple 1

Iteration 1
x0
x1
x2
x3
c0
0.67 1.00 0.33 0.00 1.00
c1
4.00 1.00 0.00 1.00 5.00
max 3.00 4.00 0.00 0.00 0.00

Normalise la ligne 0 pivot


Divise la ligne pivot 0 par le pivot (0, 1)
But : faire apparatre un 1 sur le pivot

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

30 / 64

La resolution de Exemple 1

Iteration 1
x0
x1
x2
x3
c0
0.67 1.00 0.33 0.00 1.00
c1
3.33 0.00 0.33 1.00 4.00
max 0.33 0.00 1.33 0.00 4.00

Les autres lignes


Pour toutes les autres lignes i, on soustrait la ligne pivot
multipliee par le coefficient (i, 1)
But : faire apparatre des 0 sur la colonne pivot, (sauf pour la
ligne pivot)

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

30 / 64

La resolution de Exemple 1

Iteration 2
x0
x1
x2
x3
c0
0.67 1.00 0.33 0.00 1.00
c1
3.33 0.00 0.33 1.00 4.00
max 0.33 0.00 1.33 0.00 4.00

1.00
0.67
4.00
3.33

= 1.50
= 1.20

Recherche du Pivot
Pivot
Colonne 0 max des coeffs dans la derni`ere ligne
Ligne 1 min des rapports

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

30 / 64

La resolution de Exemple 1

Iteration 2
x0
x1
x2
x3
c0
0.67 1.00 0.33 0.00 1.00
c1
1.00 0.00 0.10 0.30 1.20
max 0.33 0.00 1.33 0.00 4.00

Normalise la ligne 1 pivot


Divise la ligne pivot 1 par le pivot (1, 0)
But : faire apparatre un 1 sur le pivot

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

30 / 64

La resolution de Exemple 1

Iteration 2
x0
x1
x2
x3
c0
0.00 1.00 0.40 0.20 0.20
c1
1.00 0.00 0.10 0.30
1.20
max 0.00 0.00 1.30 0.10 4.40

Les autres lignes


Pour toutes les autres lignes i, on soustrait la ligne pivot
multipliee par le coefficient (i, 0)
But : faire apparatre des 0 sur la colonne pivot, (sauf pour la
ligne pivot)

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

30 / 64

La resolution de Exemple 1

Iteration 3
x0
x1
x2
x3
c0
0.00 1.00 0.40 0.20 0.20
c1
1.00 0.00 0.10 0.30 1.20
max 0.00 0.00 1.30 0.10 4.40

Recherche du Pivot
Plus de coefficient dans la fonction objectif > 0.
On est a loptimum.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

30 / 64

Exemple 1

Programme Lineaire
max 0.00x1 + 0.00x2 + 1.30x3 + 0.10x4 : 4.40
0.00x1 + 1.00x2 + 0.40x3 + 0.20x4 = 0.20
1.00x1 + 0.00x2 + 0.10x3 + 0.30x4 = 1.20

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

31 / 64

Le meme graphiquement
Le PL
max 3.00x0 + 4.00x1
s.c. 2.00x0 + 3.00x1
4.00x0 + 1.00x1

3.00
5.00

Graphiquement
Commentaires
1

0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

32 / 64

Le meme graphiquement
Le PL
max 3.00x0 + 4.00x1
s.c. 2.00x0 + 3.00x1
4.00x0 + 1.00x1

3.00
5.00

Graphiquement
Commentaires
1

0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

32 / 64

Le meme graphiquement
Le PL
max 3.00x0 + 4.00x1
s.c. 2.00x0 + 3.00x1
4.00x0 + 1.00x1

3.00
5.00

Graphiquement
Commentaires
1

0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

32 / 64

Le meme graphiquement
Le PL
max 3.00x0 + 4.00x1
s.c. 2.00x0 + 3.00x1
4.00x0 + 1.00x1

3.00
5.00

Graphiquement
Commentaires
Le Domaine Realisable

0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

32 / 64

Le meme graphiquement
Le PL
max 3.00x0 + 4.00x1
s.c. 2.00x0 + 3.00x1
4.00x0 + 1.00x1

3.00
5.00

Graphiquement
Commentaires
Le Domaine Realisable

Fonc Obj = 1
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

32 / 64

Le meme graphiquement
Le PL
max 3.00x0 + 4.00x1
s.c. 2.00x0 + 3.00x1
4.00x0 + 1.00x1

3.00
5.00

Graphiquement
Commentaires
Le Domaine Realisable

Fonc Obj = 2
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

32 / 64

Le meme graphiquement
Le PL
max 3.00x0 + 4.00x1
s.c. 2.00x0 + 3.00x1
4.00x0 + 1.00x1

3.00
5.00

Graphiquement
Commentaires
Le Domaine Realisable

Fonc Obj = 4
0
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

32 / 64

Le meme graphiquement
Le PL
x0
x1
x2
x3
c0
2.00 3.00 1.00 0.00 3.00
c1
4.00 1.00 0.00 1.00 5.00
max 3.00 4.00 0.00 0.00 0.00

Graphiquement
Commentaires
Le Domaine Realisable

Fonc Obj = 0
0
0
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

1
21 f
evrier 2011

32 / 64

Le meme graphiquement
Le PL
x0
x1
x2
x3
c0
0.67 1.00 0.33 0.00 1.00
c1
3.33 0.00 0.33 1.00 4.00
max 0.33 0.00 1.33 0.00 4.00

Graphiquement
Commentaires
Le Domaine Realisable

Fonc Obj = 4
0
0
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

1
21 f
evrier 2011

32 / 64

Le meme graphiquement
Le PL
x0
x1
x2
x3
c0
0.00 1.00 0.40 0.20 0.20
c1
1.00 0.00 0.10 0.30
1.20
max 0.00 0.00 1.30 0.10 4.40

Graphiquement
Commentaires
Le Domaine Realisable

Fonc Obj = 4.40


0
0
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

1
21 f
evrier 2011

32 / 64

Le meme graphiquement
Le PL
x0
x1
x2
x3
c0
0.00 1.00 0.40 0.20 0.20
c1
1.00 0.00 0.10 0.30
1.20
max 0.00 0.00 1.30 0.10 4.40

Graphiquement
Commentaires
Le Domaine Realisable

Fonc Obj = 4.40


x0 = 1.20 et x1 = 0.20
0
0
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

1
21 f
evrier 2011

32 / 64

Un peu plus formelle

Le programme lineaire
On consid`ere un probl`eme dOC `
a n variables et m contraintes
Pn
maxz =
j=1 Cj xj
s.c.
Pn
j=1 aij xij = bi i
xj
0 j

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

33 / 64

Un peu plus formelle(1)

Notations

Le programme Lineaire

A = [aij ]ij ,
X = (x1 , . . . , xn )t ,
C = (c1 , . . . , cn )t ,
B = (b1 , . . . , bm )t

B. Le Cun (pond & uvsq)

max C.X
s.c.
A.X = B
x
0

Programmation Lin
eaire

21 f
evrier 2011

34 / 64

Un peu plus formelle(2)

Definition dune base


Une base est constituee de m variables qui sexpriment de facon unique
et affine en fonction des n m autres variables, cette expression etant
equivalent aux m contraintes degalite initiales.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

35 / 64

Un peu plus formelle(3)


Notations
Soit xj1 . . . xjm etant m des n variables, et xjm+1 . . . xjn les autres
variables On pose
XB = (xj1 . . . xjm )t
XN = (xjm+1 . . . xjn )t
B matrice formee des m colonnes de A correspondant aux
coefficients des xj1 . . . xjm
N matrice formee des n colonnes de A correspondant aux
coefficients des xjm+1 . . . xjn
cB matrice ligne formee des coeff dans z de xj1 . . . xjm
cN matrice ligne formee des coeff dans z de xjm+1 . . . xjn

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

36 / 64

Un peu plus formelle(3)

Propriete
xj1 . . . xjm est une base si et seulement si la matrice B correspondante
est inversible.

Preuve
AX = b secrit BXB + N XN = b ou encore BXB = b N XN
Si B est inversible AX = b est equivalent `
a
1
1
XB = B b B N XN
Donc B est bien une base.
La reciproque est vrai aussi !

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

37 / 64

Difficultes

Methodes du simplexe
1

Initialisation trouver une base initiale realisable

Iteration Pouvons-nous construire systematiquement une nouvelle


solution realisable ?

Terminaison Optimalite nest pas toujours garantie

Complexite
Algorithme non polynomial
Effiace en pratique.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

38 / 64

Construction dune Base (1)

Base choisie, Solution de base :


Obtenue en mettant toutes les variables
hors base `a zero :Xn = 0.
= B 1 b.
en base :XB

BXB + N Xn = b
AX = b secrit alors : BXB = b N XN
XB = B 1 b B 1 N XN

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

39 / 64

Construction dune Base (2)


Donc !
Trouver une base realisable revient `
a
determiner une matrice carree B de dimension mxm extraite
de A, inversible et telle que B 1 b ait tous ces coefficients
positifs ou nuls.
Base permettant dinitialiser lalgo du simplexe.

Remarque
Un Probl`eme fourni sous sa forme standard, la matrice correspondant
aux variables decart est lidentite.
Base inversible et realisable

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

40 / 64

Iterations (1)

Choix
de la variable hors base entrante : Nous pouvons avoir plusieurs
candidats ou pas de variable candidate.
Pas de candidat Solution Optimale
n candidats Choisir celle de coef max.
de la variable sortante : Nous pouvons avoir plusieurs candidats
ou pas de variable candidate.
Pas de candidat Tous les coeff sont negatif (methode tableau)
Probl`eme non borne.
n candidats celle correspondant `
a la contrainte restraignant le plus
la valeur de la variable entrante (min du rapport abiji .

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

41 / 64

Iterations (2)

Degenerescence
Le presence de plus dune variable candidate pour quitter la base `a
des consequences.
Choix des variables : Solution reste inchangee
Les iterations du simplexe nentrainant pas de modifications de la
solution de base sont dites degenerees
Risque de cyclage

Exemple. . .

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

42 / 64

Terminaison

Theor`eme
Si la methode du simplexe ne se termine pas alors elle cycle.

Methodes
Methode de perturbation
Methode lexicographique
R`egle du plus petit indice

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

43 / 64

Autres methodes

Methode de point interieur


Idee est de passer par des points interne ou polyh`edre et non par les
points extr`emes.

Forme revisee du Simplexe


Autre implementation de lalgorithme
Methode standard : Modification du dictionnaire.
Methode revisee : Construction de chaque solution `a partir de la
solution de depart

Aucune reference aux dictionnaires


Resolution de syst`eme dequations lineaires

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

44 / 64

Theorie de la dualite

un PL et son probl`eme Dual associe


Pb Maximisation
Solution realisable
Solution Optimale
Valeur Optimale

B. Le Cun (pond & uvsq)

Pb de minimisation
Borne
solution Optimale
Valeur Optimale

Programmation Lin
eaire

21 f
evrier 2011

45 / 64

Motivation
Bornes superieures pour la valeur optimale
max
s.c.

4x1 + x2 + 5x3 + 3x4


x1 x2 x3 + 3x4
5x1 + x2 + 3x3 + 8x4
x1 + 2x2 + 3x3 5x4
x1 ,
x2 ,
x3 , x4

1
55
3
0

But
On ne veut pas resoudre le probl`eme, mais estimer rapidement la
valeur optimale z de la fonction objectif
Borne inferieure de z : Solution Realisable du probl`eme

la solution realisable (0, 0, 1, 0) donne une borne z 5


la solution realisable (2, 1, 1, 31 ) donne une borne z 15
la solution realisable (3, 0, 2, 1) donne une borne z 22

Borne inferieure mais pas une borne superieure


Theor`eme de la dualite
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

46 / 64

Theor`eme de la dualite
Le PL
max
s.c.

4x1 + x2 + 5x3 + 3x4


x1 x2 x3 + 3x4
5x1 + x2 + 3x3 + 8x4
x1 + 2x2 + 3x3 5x4
x1 ,
x2 ,
x3 , x4

1 (1)
55 (2)
3 (3)
0

Demarches
1

On multiplie (2) par 35 .

Or 4x1 + x2 + 5x3 + 3x4


275

Donc z 275
3 et z 3 .

25
3 x1

+ 53 x2 + 5x3 +

40
3 x4

275
3

On additionne (2) et (3), on a

4x1 + 3x2 + 6x3 + 3x4 58


Do`
u Z 58.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

47 / 64

Theor`eme de la dualite

Plus formellement
Demarche plus rigoureuse consiste `
a construires des combinaisons
lineaires des contraintes :
On multiplie (1) par y1 , (2) par y2 , (3) par y3
Puis on additionne les inegalites obtenues

Les deux demarches precedentes


y1 = 0, y2 = 53 , y3 = 0.
y1 = 0, y2 = 1, y3 = 1.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

48 / 64

Exemple : Theor`eme de la dualite


Le PL
max
s.c.

4x1 + x2 + 5x3 + 3x4


x1 x2 x3 + 3x4
5x1 + x2 + 3x3 + 8x4
x1 + 2x2 + 3x3 5x4
x1 ,
x2 ,
x3 , x4

1 (1)
55 (2)
3 (3)
0

Demarche plus rigoureuse


On multiplie (1) par y1 , (2) par y2 , (3) par y3
On a : (y1 + 5y2 y3 )x1 + (y1 + y2 + 2y3 )x2 + (y1 + 3y2 +
3y3 )x3 + (3y1 + 8y2 5y3 )x4 y1 + 55y2 + 3y3
y1 + 5y2 y3 4
y1 + y2 + 2y3 1
Or z = 4x1 + x2 + 5x3 + 3x4 donc
y1 + 3y2 + 3y3 5
3y1 + 8y2 5y3 3
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

49 / 64

Exemple : Theor`eme de la dualite


Demarche plus rigoureuse (2)
Donc toute solution realisable satisfait :
4x1 + x2 + 5x3 + 3x4 y1 + 55y2 + 3y3
donc
z y1 + 55y2 + 3y3

Nouveau probl`eme appele probl`eme dual


min

y1 + 55y2 + 3y3
y1 + 5y2 y3
y1 +
y2 + 2y3
y1 + 3y2 + 3y3
3y1 + 8y2 5y3

B. Le Cun (pond & uvsq)

4
1
5
3
Programmation Lin
eaire

21 f
evrier 2011

50 / 64

Exemple : Theor`eme de la dualite

Le PL P
max
s.c.

Le PL D dual de P

4x1 + x2 + 5x3 + 3x4


x1 x2 x3 + 3x4
5x1 + x2 + 3x3 + 8x4
x1 + 2x2 + 3x3 5x4
x1 ,
x2 ,
x3 , x4

min
y1 + 55y2 + 3y3
1s.c.
y1 + 5y2 y3
55
y1 +
y2 + 2y3
3
y1 + 3y2 + 3y3
0
3y1 + 8y2 5y3

4
1
5
3

Correspondances
La valeur optimale pour P est la meme que pour D.
Une solution de D est une borne superieure de P .
Une solution de P est une borne inferieure de D.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

51 / 64

Theor`eme de la dualite
Le dual de P

Un PL P
Pn

max
i=1 ci xi
s.c. P
j (1, , m)
i aij xi bj
i (1, , n)
xi 0

Pm
min
j=1 bj yj
s.c. P
i (1, , n)
j aij yj ci
j (1, , m)
yj 0

Correspondances
Pb Maximisation
P
i aij xi bj
m contraintes primales
xi
n variables primales

B. Le Cun (pond & uvsq)

Pb de minimisation
yi
m variables duales
P
j aij yj ci
n contraintes duales

Programmation Lin
eaire

21 f
evrier 2011

52 / 64

Theor`eme de la dualite

Theor`eme de la dualite
Si le probl`eme primal (P ) poss`ede une solution optimale (x1 , x2 , . . . ,
xn ) alors le probl`eme dual (D) poss`ede une solution optimale (y1 , y2 ,
).
. . . , ym
m
n
X
X

bj y j
ci xi =
j=1

i=1

Preuve. . .
Gale, Kuhn, Tucker (1951)
Dantizig, Von Neumann (1947)

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

53 / 64

Relations entre le primal et le dual (1)

On continue ?
Le Dual du Dual est le primal. . .

Corollaire
Le probl`eme primal (P ) poss`ede une solution optimale (x1 , x2 , . . . , xn )
si et seulement si le probl`eme dual (D) en poss`ede une
n
X
j=1

B. Le Cun (pond & uvsq)

ci xi

m
X

bj y j

i=1

Programmation Lin
eaire

21 f
evrier 2011

54 / 64

Relations entre le primal et le dual (2)

De meme
Si le probl`eme primal est non borne alors le probl`eme dual nest
pas realisable.
Si le probl`eme dual est non borne alors le probl`eme primal nest
pas realisable.
Les probl`emes primal et dual peuvent etre simultanement non
realisables
max 2x1 x2
x1 x2
1
x1 + x2 2
x1 , x2
0

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

55 / 64

Relations entre le primal et le dual

Tableau

Primal

Opt
Non Rea.
Non Bor.

Optimal
Possible
Impossible
Impossible

Dual
Non Realisable
Impossible
Possible
Possible

Non Borne
Impossible
Possible
Impossible

Autre. . .
Si le probl`eme primal poss`ede une solution realisable et le probl`eme
dual poss`ede une solution realisable, alors ils poss`edent une solution
optimale.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

56 / 64

Avantages
Pratique
Il peut etre interessant de resoudre le probl`eme dual dans certains cas
par la methodes du simplexe (m = 99, n = 9) La solution peut etre
deduite `a partir du dictionnaire optimal. (il est a noter que la methode du
simplexe est sensible au nombre de contraintes et peu sensible au nombre de
variables).

Aller plus vite

Theorique
Preuve doptimalite, une solution optimale pour un probl`eme dual
fournit un certificat doptimalite pour le probl`eme primal et
reciproquement.
Verification

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

57 / 64

Theor`eme des Ecarts Complementaires

Theor`eme
Soit (x1 , x2 , . . . , xn ) une solution realisable de (P) et et (y1 , y2 , . . . ,
) une solution r
ym
ealisable de (D)
Les conditions necessaires et suffisantes doptimalite de ces solutions
sont : Pm

e) ou xi = 0 (ou les deux) i (1, , n)


j=1 aij yj = ci (satur
et P
n

e) ou yj = 0 (ou les deux) j (1, , m)


i=1 aij xi = bj (satur
Preuve . . .

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

58 / 64

Interpretation Economique
Un PL P
Pn
max
i=1 ci xi
s.c. P
j (1, , m)
i aij xi bj
i (1, , n)
xi 0

Le probl`eme primal
Supposons que
Le pb est celui de la maximisation dun
profit dans une entreprise manufacturi`
ere
(IM).

Le dual de P

xi quantit
e de produit pour le produit i.
bj quantit
e disponible de la ressource j.
aij quantit
e de ressource j n
ecessaire
pour fabriquer lunit
e du produit i.
cj profit net unitaire associ
e au produit j
en Euro.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

59 / 64

Interpretation Economique
Un PL P

Le probl`eme Dual
Pn

max
i=1 ci xi
s.c. P
j (1, , m)
i aij xi bj
i (1, , n)
xi 0

Supposons que

Le probl`eme primal
Supposons que
Le pb est celui de la maximisation dun
profit dans une entreprise manufacturi`
ere
(IM).

Le dual de P

xi quantit
e de produit pour le produit i.
bj quantit
e disponible de la ressource j.
aij quantit
e de ressource j n
ecessaire
pour fabriquer lunit
e du produit i.
cj profit net unitaire associ
e au produit j
en Euro.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

59 / 64

Interpretation Economique
Le probl`eme Dual

Un PL P
Pn

max
i=1 ci xi
s.c. P
j (1, , m)
i aij xi bj
i (1, , n)
xi 0

Supposons que
Une autre entreprise veut acheter la
totalit
e du stock en ressource de
lindustrie (IM) Elle veut lacheter au
meilleur prix. yj co
ut en euro par unit
e de
ressource j

Le probl`eme primal
Supposons que
Le pb est celui de la maximisation dun
profit dans une entreprise manufacturi`
ere
(IM).

Le dual de P

xi quantit
e de produit pour le produit i.

min

bj quantit
e disponible de la ressource j.
aij quantit
e de ressource j n
ecessaire
pour fabriquer lunit
e du produit i.
cj profit net unitaire associ
e au produit j
en Euro.

B. Le Cun (pond & uvsq)

j (1, , m)

Programmation Lin
eaire

Pm

j=1 bj yj

yj 0

21 f
evrier 2011

59 / 64

Interpretation Economique
Le probl`eme Dual

Un PL P
Pn

max
i=1 ci xi
s.c. P
j (1, , m)
i aij xi bj
i (1, , n)
xi 0

Le probl`eme primal
Supposons que
Le pb est celui de la maximisation dun
profit dans une entreprise manufacturi`
ere
(IM).
xi quantit
e de produit pour le produit i.
bj quantit
e disponible de la ressource j.
aij quantit
e de ressource j n
ecessaire
pour fabriquer lunit
e du produit i.
cj profit net unitaire associ
e au produit j
en Euro.

B. Le Cun (pond & uvsq)

Supposons que
Une autre entreprise veut acheter la
totalit
e du stock en ressource de
lindustrie (IM) Elle veut lacheter au
meilleur prix. yj co
ut en euro par unit
e de
ressource j
Mais lentreprise vendeuse ne veut pas
vendre `
a perte. Donc, le prix par ressource
doit au moins satisfaire ce quelle aurait
gagn
e en construisant
les produit. Pour le
P
produit i :
j aij yj ci .

Le dual de P
min
s.c.
i (1, , n)
j (1, , m)

Programmation Lin
eaire

Pm

j=1 bj yj

aij yj ci
yj 0

21 f
evrier 2011

59 / 64

Exemple

Discussion

Industrie IM
max
s.c.

3x1
x1
3x1
x1

+5x2
2x2
+2x2
, x2

4 (1)
12 (2)
18 (3)
0

le probl`eme
min
s.c.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

60 / 64

Exemple

Discussion

Industrie IM
max
s.c.

3x1
x1
3x1
x1

+5x2
2x2
+2x2
, x2

4 (1)
12 (2)
18 (3)
0

Determiner le prix yj par


ressource j que lIndustrie 2
veut racheter au meilleur
prix

le probl`eme
min
s.c.

4y1 + 12y2 + 18y3

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

60 / 64

Exemple

Discussion

Industrie IM
max
s.c.

3x1
x1
3x1
x1

+5x2
2x2
+2x2
, x2

4 (1)
12 (2)
18 (3)
0

le probl`eme
min
s.c.

4y1 + 12y2 + 18y3

B. Le Cun (pond & uvsq)

Determiner le prix yj par


ressource j que lIndustrie 2
veut racheter au meilleur
prix
Mais le prix doit satisfaire
lindustrie IM, si cette
derni`ere a 1 unite de ress. 1
et 3 unites de ress. 3, elle
peut construire un produit 1
et donc gagne 3 euros . Donc

Programmation Lin
eaire

21 f
evrier 2011

60 / 64

Exemple

Discussion

Industrie IM
max
s.c.

3x1
x1
3x1
x1

+5x2
2x2
+2x2
, x2

4 (1)
12 (2)
18 (3)
0

le probl`eme
min
s.c.

4y1 + 12y2 + 18y3


y1 + 3y3 3

B. Le Cun (pond & uvsq)

Determiner le prix yj par


ressource j que lIndustrie 2
veut racheter au meilleur
prix
Mais le prix doit satisfaire
lindustrie IM, si cette
derni`ere a 1 unite de ress. 1
et 3 unites de ress. 3, elle
peut construire un produit 1
et donc gagne 3 euros . Donc

Programmation Lin
eaire

21 f
evrier 2011

60 / 64

Exemple

Discussion

Industrie IM
max
s.c.

3x1
x1
3x1
x1

+5x2
2x2
+2x2
, x2

4 (1)
12 (2)
18 (3)
0

le probl`eme
min
s.c.

4y1 + 12y2 + 18y3


y1 + 3y3 3
2y2 + 2y3 5

Determiner le prix yj par


ressource j que lIndustrie 2
veut racheter au meilleur
prix
Mais le prix doit satisfaire
lindustrie IM, si cette
derni`ere a 1 unite de ress. 1
et 3 unites de ress. 3, elle
peut construire un produit 1
et donc gagne 3 euros . Donc
Pareil pour le produit 2.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

60 / 64

Autre Interpretation Economique


Soit le PL suivant
Pn
max
i=1 ci xi
s.c. P
j (1, , m)
i aij xi bj + tj
i (1, , n)
xi 0

Analyse en fonction des ti


P
Solution optimale : z + j yj tj avec z solution optimale du
) solution optimale du dual.
probl`eme sans les tj et (y1 , y2 , . . . , ym
Cela montre les effets sur le co
ut de petites variations dans loffre
ou la disponibilite des ressources supplementaires j.
Pour chaque unite supplementaire de ressources j le profit
augmente de yj .
yj est appele valeur marginale de la ressource j ou shadow price.
B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

61 / 64

Exercice : le forestier

Illustration
Un forestier poss`ede 100Ha darbres. Plusieurs possibilites soffrent `a
lui :
1 Abattre les arbres et laisser la zone se r
egenerer

Co
ut 10 E/Ha
retour 50 E/Ha

Abattre les arbres et planter des pins

Co
ut 50 E/Ha
retour 120 E/Ha

Les profits nets sont respectivement de 40 et 70 Euros/Ha. Le forestier


ne poss`ede que 4000Euros donc le probl`eme est :

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

62 / 64

Exercice : le forestier

Illustration
max
s.c.

40x1
x1
10x1

+70x2
+x2
+50x2

100
4000

Solution optimale x1 = 25 et x2 = 75.


Le forestier peut maintenant emprunter un capital, il pourrait
faire fructifier de mani`ere plus importante son capital de depart.
A quel taux peut-il emprunte ?

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

63 / 64

Exercice : le forestier

Le probl`eme Dual
min
s.c.

100y1
y1
y1

+4000y2
+10y2
+50y2

40
70

Solution optimale y1 = 32.5 et y2 = 0.75.


Cela signifie donc que pour toute augmentation de 1E du capital
(contrainte sur 4000 , il y a augmentation de 0.75 Euros du co
ut
de la solution.
Cela signifie donc que pour toute augmentation de 1H de la
surface (contrainte sur 100 , il y a augmentation de 32.5 Euros
du co
ut de la solution.

B. Le Cun (pond & uvsq)

Programmation Lin
eaire

21 f
evrier 2011

64 / 64

Vous aimerez peut-être aussi