Académique Documents
Professionnel Documents
Culture Documents
Bertrand Le Cun
Universit
e Paris-Ouest-Nanterre-La D
efense
&
Laboratoire PRiSM, Universit
e de Versailles-Saint-Quentin
21 fevrier 2011
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]
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
...
...
...
...
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. . .
Programmation Lin
eaire
21 f
evrier 2011
3 / 64
Resolution Graphique
PL `a 2 variables
Sur un repere.
Un axe par variable. . .
Des Exemples. . .
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. . .
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. . .
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. . .
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. . .
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
Programmation Lin
eaire
21 f
evrier 2011
10 / 64
Methodes de resolution
Programmation Lin
eaire
21 f
evrier 2011
10 / 64
Methodes de resolution
Programmation Lin
eaire
21 f
evrier 2011
10 / 64
Methodes de resolution
Algorithme
Methode du simplex
Methode de point interieur
Programmation Lin
eaire
21 f
evrier 2011
10 / 64
Methodes de resolution
Algorithme
Methode du simplex
Methode de point interieur
Programmation Lin
eaire
21 f
evrier 2011
10 / 64
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
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 :
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
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
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
Programmation Lin
eaire
21 f
evrier 2011
12 / 64
Methode du simplexe
Terminologie :
A chaque iteration :
Un nouveau dictonnaire est construit
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
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
Programmation Lin
eaire
21 f
evrier 2011
13 / 64
Methode du Simplexe
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
Programmation Lin
eaire
21 f
evrier 2011
14 / 64
Methode du simplexe
Presentations :
Deux mani`eres de presenter la methode
1
Programmation Lin
eaire
21 f
evrier 2011
15 / 64
Simplexe
Exemple
max
z=
s.c.
7x1
2x1
x1
x1
x1 ,
+
+
+
+
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
+
+
+
+
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
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
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.
Programmation Lin
eaire
21 f
evrier 2011
19 / 64
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
Programmation Lin
eaire
21 f
evrier 2011
19 / 64
On cherche le pivot
Colonne pivot : Celle correspondant `
a x3 (le max des coefs).
Programmation Lin
eaire
21 f
evrier 2011
20 / 64
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
Programmation Lin
eaire
21 f
evrier 2011
20 / 64
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
Programmation Lin
eaire
21 f
evrier 2011
20 / 64
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
Programmation Lin
eaire
21 f
evrier 2011
20 / 64
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
Programmation Lin
eaire
21 f
evrier 2011
20 / 64
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
Programmation Lin
eaire
21 f
evrier 2011
20 / 64
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
Programmation Lin
eaire
21 f
evrier 2011
20 / 64
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
Programmation Lin
eaire
21 f
evrier 2011
20 / 64
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
Programmation Lin
eaire
21 f
evrier 2011
21 / 64
Programmation Lin
eaire
21 f
evrier 2011
21 / 64
Programmation Lin
eaire
21 f
evrier 2011
21 / 64
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
Programmation Lin
eaire
21 f
evrier 2011
22 / 64
Programmation Lin
eaire
21 f
evrier 2011
23 / 64
Programmation Lin
eaire
21 f
evrier 2011
23 / 64
Programmation Lin
eaire
21 f
evrier 2011
23 / 64
Programmation Lin
eaire
21 f
evrier 2011
23 / 64
Programmation Lin
eaire
21 f
evrier 2011
23 / 64
Programmation Lin
eaire
21 f
evrier 2011
23 / 64
Programmation Lin
eaire
21 f
evrier 2011
23 / 64
Programmation Lin
eaire
21 f
evrier 2011
23 / 64
Programmation Lin
eaire
21 f
evrier 2011
24 / 64
Programmation Lin
eaire
21 f
evrier 2011
24 / 64
On continue ?
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
Programmation Lin
eaire
21 f
evrier 2011
25 / 64
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
x3
0.00
1.00
0.00
3.00
5.00
0.00
Programmation Lin
eaire
21 f
evrier 2011
26 / 64
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
Programmation Lin
eaire
1
21 f
evrier 2011
32 / 64
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
Programmation Lin
eaire
21 f
evrier 2011
33 / 64
Notations
Le programme Lineaire
A = [aij ]ij ,
X = (x1 , . . . , xn )t ,
C = (c1 , . . . , cn )t ,
B = (b1 , . . . , bm )t
max C.X
s.c.
A.X = B
x
0
Programmation Lin
eaire
21 f
evrier 2011
34 / 64
Programmation Lin
eaire
21 f
evrier 2011
35 / 64
Programmation Lin
eaire
21 f
evrier 2011
36 / 64
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 !
Programmation Lin
eaire
21 f
evrier 2011
37 / 64
Difficultes
Methodes du simplexe
1
Complexite
Algorithme non polynomial
Effiace en pratique.
Programmation Lin
eaire
21 f
evrier 2011
38 / 64
BXB + N Xn = b
AX = b secrit alors : BXB = b N XN
XB = B 1 b B 1 N XN
Programmation Lin
eaire
21 f
evrier 2011
39 / 64
Remarque
Un Probl`eme fourni sous sa forme standard, la matrice correspondant
aux variables decart est lidentite.
Base inversible et realisable
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 .
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. . .
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
Programmation Lin
eaire
21 f
evrier 2011
43 / 64
Autres methodes
Programmation Lin
eaire
21 f
evrier 2011
44 / 64
Theorie de la dualite
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.
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
Programmation Lin
eaire
21 f
evrier 2011
46 / 64
Theor`eme de la dualite
Le PL
max
s.c.
1 (1)
55 (2)
3 (3)
0
Demarches
1
Donc z 275
3 et z 3 .
25
3 x1
+ 53 x2 + 5x3 +
40
3 x4
275
3
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
Programmation Lin
eaire
21 f
evrier 2011
48 / 64
1 (1)
55 (2)
3 (3)
0
Programmation Lin
eaire
21 f
evrier 2011
49 / 64
y1 + 55y2 + 3y3
y1 + 5y2 y3
y1 +
y2 + 2y3
y1 + 3y2 + 3y3
3y1 + 8y2 5y3
4
1
5
3
Programmation Lin
eaire
21 f
evrier 2011
50 / 64
Le PL P
max
s.c.
Le PL D dual de P
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.
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
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)
Programmation Lin
eaire
21 f
evrier 2011
53 / 64
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
ci xi
m
X
bj y j
i=1
Programmation Lin
eaire
21 f
evrier 2011
54 / 64
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
Programmation Lin
eaire
21 f
evrier 2011
55 / 64
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.
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).
Theorique
Preuve doptimalite, une solution optimale pour un probl`eme dual
fournit un certificat doptimalite pour le probl`eme primal et
reciproquement.
Verification
Programmation Lin
eaire
21 f
evrier 2011
57 / 64
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
Programmation Lin
eaire
21 f
evrier 2011
60 / 64
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
Co
ut 50 E/Ha
retour 120 E/Ha
Programmation Lin
eaire
21 f
evrier 2011
62 / 64
Exercice : le forestier
Illustration
max
s.c.
40x1
x1
10x1
+70x2
+x2
+50x2
100
4000
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
Programmation Lin
eaire
21 f
evrier 2011
64 / 64