Académique Documents
Professionnel Documents
Culture Documents
Polycope Ro I
Polycope Ro I
0. Introduction.
Ce cours a ete enseigne jusquen 2002, en annee de licence, `a la MIAGE de NANCY.
Lobjectif principal de ce cours est dacquerir une connaissance approfondie de certaines techniques considerees `a lheure acutelle comme des methodes de base en
Recherche Op
erationnelle. Celles-ci se retrouvent en eet, sous des formes plus
complexes, dans les analyses professionnelles de faisabilite ou doptimisation.
Les exercices qui accompagnent ce cours permettent aux etudiants de modeliser des
probl`emes simples en utilisant les techniques de la Recherche Operationnelle. Ces
exercies ne tiennent evidemment pas compte de tous les param`etres dune veritable
analyse professionnelle. Ils sont simplies volontairement et sont choisis suivant
lorientation des etudiants, en majorite dans le domaine de la gestion; mais les
techniques utilisees sappliquent egalement `a la modelisation en ingenierie et en
sciences.
Certaines methodes de la Recherche Operationnelle se demontrent - au niveau
mathematique - assez facilement. Lalgorithme du simplexe, par exemple, repose
sur des arguments elementaires de lalg`ebre lineaire.
Dautres methodes presentees dans ce cours, par exemple celles de la programmation
dynamique, sont des cas particuliers de developpements analytiques et stochastiques
plus avances, qui, a` un niveau general, ne sont plus a` la portee dun etudiant en
licence (meme en mathematiques). Une justication elementaire de certains cas particuliers est cependant faisable et donne lieu a` quelques applications interessantes.
Dautres methodes encore sont purement heuristiques, comme la methode par separation et evaluation (branch and bound) en programmation lineaire `a valeurs enti`eres.
Il est peut-etre surprenant de constater que la presque totalite des probl`emes doptimisations enonces dans ce cours (hormis ceux relevant de la programmation dynamique)
peuvent etre resolus `a laide dun algorithme de programmation lineaire. Cependant,
des solutions speciques, par exemple au probl`eme du ot maximal ou du ot de
co
ut total minimal dans un reseau, sont proposees. Elles sont souvent developpees
`a partir dun programme lineaire adapte au probl`eme specique et font partie des
methodes standards dans la litterature recente. Ainsi la question du ot de co
ut
total minimal permet de presenter quelques elements du simplexe des reseaux.
Le cours est divise en cinq chapitres.
Les deux premiers traitent de la programmation lineaire. Ils contiennent :
- une introduction a` la technique du simplexe, une methode standard pour la
resolution dun programme lineaire;
- la dualite;
Bibliographie :
C. Gu
eret, C. Prins, M. Sevaux, Programmation lineaire, Eyrolles, 2000.
R. Favre, B. Lemaire, C. Picouleau, Precis de recherche operationnelle, 5`eme
ed., Dunod, 2000.
Y. Nobert, R. Ouellet, R. Parent, La recherche operationnelle, Gaetan Morin,
1995.
J. F. Ph
elizon, Methodes et mod`eles de la recherche operationnelle, Economica,
1998.
J. F. Maurras, Programmation lineaire, complexite, Springer, 2002.
D. Alevra, M. Padberg, Linear optimization and extensions : problems and
solutions, Springer, 2001.
V.K. Balakrishnan, Network optimization, Chapman and Hall, 1995.
G.B. Dantzig, M.N. Thapa, Linear programming, Springer, 1997.
H.A. Eiselt, C.L. Sandblom, Integer programming and network models, Springer
2000.
B. Korte, J. Vygen, Combinatorial optimization, 2nd ed., Springer, 2002.
I. Programmation lin
eaire : Algorithme du simplexe
Nous commencons par quelques exemples qui peuvent etre resolus en termes de
programmes lineaires.
I.1 Exemples.
a) Probl`
eme du m
elange
La table ci-dessous donne la composition et le co
ut de 9 alliages standards de plomb,
zinc et etain.
Alliage
plomb (%)
20
50
30
30
30
60
40
10
10
zinc
(%)
30
40
20
40
30
30
50
30
10
etain
(%)
50
10
50
30
40
10
10
60
80
7.3
6.9
7.3
7.5
7.6
6.0
5.8
4.3
4.1
co
ut unitaire
Le co
ut unitaire du melange recherche est le minimum de la fonction z, denie par
z(x1 , x2 , . . ., x9 ) = 7.3 x1 + 6.9 x2 + . . . + 4.1 x9
(1)
depot D1
3.4
2.2
2.9
depot D2
3.4
2.4
2.5
(2)
(3)
(4)
q magasins M1 , M2 , . . ., Mq
ai quantite disponible au depot Di i = 1, . . ., p
bj quantite demandee par le magasin Mj j = 1, . . ., q
ut unitaire de transport de Di vers Mj
fij co
xij quantite transportee de Di vers Mj
programme lineaire :
minimiser z(xij , i = 1, . . ., p, j = 1, . . ., q) =
p
q
fij xij
i=1 j=1
()
xij = ai
()
xij = bj
i = 1, . . ., p
(depots)
j = 1, . . ., q
(magasins)
i=1
j=1
solution graphique :
X2
7
6
7X1+2X2 =14
4
3
,21
(16
11 11)
(-1,43)
3X1+4X2 =12
X1
0
1
16 21
(ligne coupee ). On obtient la solution optimale x =
,
en eectuant
11 11
une translation parall`ele de cette direction du haut vers le bas jusqu`
a ce que le
domaine hachure est atteint. Le point x est un point extremal de ce domaine.
La solution graphique nest evidemment applicable quaux programmes avec trois
variables au plus.
I.3. La m
ethode du simplexe.
I.3.1.Forme g
en
erale dun programme lin
eaire.
En forme generale un programme lineaire se lit de facon suivante :
maximiser
(P )
n
z(x1 , x2 , . . ., xn ) = j=1 cj xj
a11 x1 + a12 x2 + . . . + a1n xn
a21 x1 + a22 x2 + . . . + a2n xn
..
.
am1 x1 + am2 x2 + . . . + amn xn
x1 , x2 , . . ., xn 0.
b1
b2
..
.
bm
maximiser z(x) = cx
sous les contraintes Ax b, x 0,
o`
u on a pose :
x1
x2
, c = (c1 , c2 , . . ., cn ), b =
x=
.
..
xn
b1
b2
..
.
bm
A = (aij , i = 1, . . ., m, j = 1, . . ., m) =
..
.
am1 am2 . . . amn
On dit que (P ) est sous forme canonique.
Autre forme :
(P =) maximiser z(x) = cx
sous les contraintes Ax = b, x 0.
On dit que (P =) est sous forme standard.
Proposition 3.1. Chaque programme lineaire en forme standard secrit en forme
canonique et inversement.
Preuve.
a) Ax b, x 0 (forme canonique)
n
aij xj bi i = 1, . . ., m
j=1
n
aij xj + ei = bi
o`
u ei = bi
j=1
n
aij xj 0
j=1
ecart.
ei : variable d
1
0
..
la matrice didentite dordre m,
Soit Im =
.
0
1
e1
.
e = .. le vecteur decart.
em
x
x
= b,
0 (forme standard).
Alors Ax b, x 0 (A, Im )
e
e
x
, o`
u c = (c, 0) = (c1 , . . ., cn , 0, . . ., 0).
Posons z (x, e) = c
e
mfois
b) Ax = b
(forme standard)
9
Axb
Axb
Axb
(A)xb
A
A
x
b
b
(forme canonique).
variables de base
x1
x2
x3
x4
xJ1 = x3
12
xJ2 = x4
14
z(x)
-4
-3
10
A.
En fait,
si Rang A < m il y a des contraintes redondantes qui
peuvent
etre sup5 5
=1 .
primees exemple : 5x1 + 5x2 10, 10x1 + 10x2 20, Rang
10 10
Si m = n, la solution de Ax = b est unique et donnee par x = A1 b. Il ny a donc
rien a` maximiser.
D
enition. Posons A = (a1 , a2 , . . ., an ) (aj est la j`eme colonne de A), et, pour
J {1, 2, . . ., n}, posons AJ = {aj , j J}.
. J {1, 2, . . ., n} est une base de (P =), si |J| = m et si Rang AJ = Rang
(aj , j J) = m
x1
.
. Soit x = .. Rn+ . xj est variabe de base (variable hors base), si j
xn
J (j
/ J). On note xJ = (xj , j J).
x1
..
3410
7201
Alors Rang A = 2 = m, n = 4
0
10
12
12
0
J J
=
=
. solution de base realisable : x = A x =
01
14
14
12
14
b.
Remarque : Lavantage de passer de la forme canonique a` la forme standard est
quon obtient immediatement une solution de base realisable qui sert de solution
de depart pour lalgorithme du simplexe. Les variables de base sont les variables
decart.
I.3.3. Changement de base r
ealisable.
Soit x une solution de base realisable de (P =). On a alors
z(x) = cx = cJ xJ
o`
u cJ = (cj , j J).
Le but est de trouver une autre base realisable, notee J, et une solution de base
realisable associee, notee x, tel que z(x) > z(x) (x est meilleur que x).
11
b =
0
1
1
iJ
aik bi =
aik bi + ark br
iJ{r}
1 k
br =
a
ark
aik bi
(1)
iJ{r}
Remarquons que, gr
ace `a la forme particuli`ere des b1 et b2 dans lexemple, les coefcients aik ci-dessus (i = 1, 2 ; k {1, 2, 3, 4}) sont des elements de A.
bi xJi =
bi xJi + br xJr
AJ xJ =
iJ
iJ{r}
iJ{r}
bi xJi +
1 k
a
ark
aik bi xJr
iJ{r}
J
k xr
aik J
=
bi xJi
xr +a
a
ark
iJ{r}
rk
def
= xJi
(2)
bi xJi = AJ xJ
iJ
def
= xJk
12
aik J
xJ
xJ
xr i r
ark
aik
ark
aik > 0
(3)
2) Choix de k.
Soit x une solution de base realisable par rapport a` la base J. Alors
z(x) = cx =
iJ{r}
iJ
ci xJi =
xJ
aik J
ci xJi
xr + ck r
ark
ark
ci xJi cr xJr
iJ
ci
iJ{r}
aik J
xJ
xr + ck r
ark
ark
aik J
xJ
xr + ck r
ark
ark
iJ
xJr
= z(x) +
ci aik
ck
ark
iJ
ci aik > 0.
z(x) > z(x) ck
= z(x)
ci
iJ
Notons zk =
iJ
zk ck < 0
ou encore
zk ck = min
j=1,...,n
zj cj , zj < cj et il existe i J tel que aij > 0 .
(4)
13
a11 J
3
xJ2
J
= x3 =
x = 12 14 = 6, x2 = x1 =
= 2. Donc
(2) on a
a21 2
7
a21
x = (2, 0, 6, 0). z(x) = cJ1 xJ1 + cJ2 xJ2 = c3 x3 + c1 x1 = 4 2 = 8. Le passage de
J = {3, 4} `a J = {3, 1} a donc permis daugmenter la valeur de z `a 8, mais ce nest
pas encore la valeur maximale.
xJ1
xJ1
a1j
a1j
aik arj
arj
(si i = r) et arj =
u aij = aij
aj = ... aj = ... , o`
ark
ark
amj
amj
On aura alors
n
aij xj = bi
j=1
n
aij xj = bi ,
(5)
(6)
j=1
o`
u bi , i = 1, ..., m, sont les nouvelles variables de base xJi .
La derni`ere ligne du nouveau tableau se calcule de la meme facon :
zj cj = zj cj
On a en fait zj cj =
iJ
ci aij cj =
iJ
ci aij cr arj
iJ{r}
iJ
arj
(zk ck ).
ark
arj
ark
iJ{r}
arj
aik arj
ci aij
cj
+ ck
ark
ark
arj
arj
ci aik + ck
cj = zj cj
(zk ck ).
ark
ark
(7)
14
Deuxi`eme tableau du simplexe J = {3, 1}
c
cj
variables de base
x1
x2
x3
x4
xJ1 = x3
22/7
-3/7
xJ2 = x1
2/7
1/7
z(x)
-13/7
4/7
Remarquons que, dapr`es (6), le deuxi`eme tableau sinterpr`ete de meme facon que
le premier :
x1
J
3
x3
x1
1
6
0 22
x2
7
7
=
=
=
1
x1
xJ2
1 72 0
2
x3
7
x4
x1
2
=
et x2 = x4 = 0.
avec solution de base realisable x =
x3
6
Notons aussi que la structure des colonnes qu correspondent aux variables de base
(x1 et x3 ) est la meme que celle des colonnes qui correspondent aux variables de
base du tableau de depart. Ceci permet de proceder de meme facon pour passer au
troisi`eme tableau, en appliquant les formules (2) a` (7). La valeur de z passe alors de
8 a` 127/11, et cette valeur est maximale parce que toutes les valeurs de la derni`ere
16 , 21 ,
2 ) = 11
ligne sont non negatives. La solution optimale est donc x
= (
x1 , x
11
ce qui conrme le resultat obtenu en I.2.
J
Elle est unique parce quaucun changement de base nest plus possible.
15
Troisi`eme tableau du simplexe J = {2, 1}
c
cj
3
4
variables de base
x
J1 = x2
21/11
x
J = x
16/11
2
z(
x)
127/11
x1
x2
x3
x4
7/22
-3/22
-1/11
2/11
13/22
7/22
16
optimales. Les autres solutions realisables optimales sont les combinaisons convexes
de ces solutions de base optimales. Il est toujours vrai que les solutions de base
optimales sont des points extremaux de lensemble convexe des solutions optimales
(voir Theor`eme 5.2).
2) maximiser z(x1 , x2 , x3 ) = x1 2x2 + x3 ,
sous les contraintes x1 2x2 + x3 10, 2x1 3x2 x3 6, x1 , x2 , x3 0.
Premier tableau
c
c
variables de base
-2
x1
x2
x3
x4
x5
xJ1 = x4
10
-2
xJ2 = x5
-3
-1
z(x)
-1
-1
-2
x1
x2
x3
x4
x5
Deuxi`eme tableau
variables de base
xJ1 = x4
-1/2
3/2
-1/2
xJ2 = x1
-3/2
-1/2
1/2
z(x)
1/2
-3/2
1/2
-2
x1
x2
x3
x4
x5
Troisi`eme tableau
variables de base
xJ1 = x3
14/3
-1/3
2/3
-1/3
xJ2 = x1
16/3
-5/3
1/3
1/3
z(x)
10
0
16
14
Le troisi`eme tableau nous fournit la solution de base optimale. x =
, 0,
3
3
En eectuant une etape supplementaire du simplexe (k = 5, r = 2) on arrive a` une
autre solution de base optimale x = t (0, 0, 10) :
t
17
Quatri`eme tableau
c
c
variables de base
-2
x1
x2
x3
x4
x5
xJ1 = x3
10
-2
xJ2 = x5
16
-5
z(x)
10
Toutes les combinaisons convexes de ces deux solutions optimales sont donc des
solutions optimales aussi. Independant du simplexe on peut verier directement
que les vecteurs suivants sont des solutions optimales eux aussi :
5
14 1
t 16
+ , ,
+ pour tous > 0
x =
3
3
3
3
On a evidemment z(x) = z(x) = z(x ) = 10 pour tous > 0.
Terminons ce paragraphe par des preuves mathematiques de quelques enonces concernant le simplexe. Retournons a` la forme standard :
(P =) maximiser z(x) = cx sous les contraintes Ax = b, x 0
Th
eor`
eme 4.1. Soit x Rn+ une solution de base realisable de (P =) par rapport
ci aij . Si zj cj 0 pour tous
a une base J |J| = m = rang A . Soit zj =
`
iJ
j=1
Ax = b AJ xJ = b
m
i=1
i=1
j=1
xJi bi = b
i=1
Donc xJi =
n
aij x0j
i = 1, . . ., m
j=1
z(x) =
m
i=1
n
j=1
ci xJi
m
n
n
m
0
0
=
ci
aij xj =
xj
ci aij
x0j zj
i=1
n
j=1
j=1
x0j cj = z(x0 )
j=1
i=1
18
Th
eor`
eme 4.2. Soit x Rn+ une solution de base realisable de (P =) par rapport
a une base J. |J| = m = rang A . Soit zj =
`
ci aij . Supposons que aij 0 pour
iJ
c
<
0.
Alors
lensemble
z(x), x
tous i J et pour tous
j
{1,
.
.
.,
n}
tel
que
z
j
j
est solution realisable est un ensemble non borne.
Preuve. On reprend les notations du Theor`eme 4.1.
J J
A x =
m
bi xJi
i=1
m
bi xJi ak + ak = b
k
/ J, zk < ck , > 0
i=1
bi xJi
i=1
m
m
m
aik bi + ak = b
i=1
bi (xJi aik ) + ak = b.
i=1
def
def
J
J
Comme aik 0 par hypoth`ese, x
i = xi aik xi . On pose xk = > 0.
z(x ) =
m
ci x
i + ck xk =
i=1
= z(x)
m
m
ci (xJi aik ) + ck
i=1
ci aik ck = z(x) (zk ck ) > z(x)
i=1
I.5. Structure g
eom
etrique des solutions r
ealisables.
Pour les exemples quon a resolu graphiquement, la ou les solutions optimales se
trouvent toujours sur le bord de lensemble convexe des solutions realisables. Si la
solution optimale etait unique il sagissait dun point extremal. Ceci nest pas un
hasard ; cest en fait toujours le cas, comme le montrent les enonces qui suivent.
Commencons par quelques denitions :
. Un ensemble E Rn est convexe si
x1 , x2 E, 0 < < 1 = x1 + (1 )x2 E.
. x est point extr
emal de lensemble convexe E si lenonce suivant vaut
il existe x1 , x2 E et [0, 1] tel que x = x1 + (1 )x2 = x1 = x2 = x
19
maximiser z(x) = cx
sous les contraintes Ax b, x 0,
o`
u on suppose que la matrice A est une matrice m n de rang egal `a m(< n). La
forme standard est alors donnee par
maximiser z(x) = cx
(P =)
x
= b, x Rn+ , e Rm
sous les contraintes (A, Im )
+
e
Lemme 5.1. Soit (resp. ) lensemble des solutions realisables de (P ) resp. de
(P =)) :
= {x Rn , ; Ax b, x 0}
x
x
m+n
n
m
, (A, Im )
= 0, x R+ , e R+
=
R
e
e
et sont des ensembles convexes et fermes.
Esquisse de la preuve. A demontrer
def
a) x1 , x2 , 0 < < 1 = x = x1 + (1 )x2 0 et Ax b
b) {xn }nN , xn x = x
n
et pareil pour .
x0
e0
20
Mais z(
v ) = c
v = cu + |c| > z(u), ce qui est une contradiction a` lhypoth`ese que u
2
est un point maximal de z.
Est-ce possible quil existe des solutions optimales, mais quil nexiste pas de solution
de base r
ealisable optimale ? Le simplexe, ne traitant que de solutions de base
ne permettrait alors pas de trouver une solution optimale. Le theor`eme suivant dit
que ceci nest pas le cas.
Th
eor`
eme 5.4. Si (P =) poss`ede une solution optimale, alors (P =) poss`ede une
solution de base realisable optimale.
Conclusion. Sil existe des solutions optimales, elles se trouvent sur le bord de
par le theor`eme 5.3., et il existe toujours une solution de base r
ealisable optimale,
qui est un point extremal de dapr`es le Theor`eme 5.2. et quon trouve a` laide du
simplexe.
I.6. Initialisation de la m
ethode du simplexe.
Jusqu`
a present on a suppose que le programme lineaire de depart est en forme
canonique. Dans ce cas une solution realisable initiale est facile a` obtenir, et
lalgorithme du simplexe sapplique directement a` la forme standard associee.
Si le programme de depart est dej`a en forme standard, une solution de base realisable
qui sert de solution initiale nest pas toujours immediate comme le montre lexemple
suivant :
Maximiser z(x) = x1 + 2x2 2x3
sous les contraintes x1 + x2 x3 = 3, x1 + 3x2 = 4 et x1 , x2 , x3 0.
Nous presentons dans cette section deux techniques qui permettent de trouver une
solution de base realisable qui sert de solution initiale pour le simplexe.
I.6.1. La M
ethode M .
Supposons que le programme lineaire `a resoudre est donne par
(P =)
21
pas evident de trouver une solution de base realisable qui peut servir de solution
initiale pour le simplexe, on ajoute aux contraintes des variables articielles yi 0 :
y = t (y1 , y2 , . . ., ym ) Rm
+.
Les nouvelles contraintes ne sont bien sur pas equivalentes aux contraintes initiales.
On penalise les yi > 0 en remplacant la fonction-objectif z(x) par z (x, y) = cx
m
M
yi , o`
u M est une valeur positive tr`es elevee. On choisira les yi = bi , i =
i=1
m
sous les contraintes Ax + y = b, x Rn+ , y Rm
+ , b R+ .
Sil y a des composantes de
b qui sont negatives, on multiplie par (1) les contraintes initiales concernees .
aij xj + yi = bi yi = bi
j=1
n
aij xj
j=1
z (x, y) = cx M
=
n
j=1
m
bi
i=1
cj + M
n
aij xj
j=1
m
i=1
aij xj M
m
bi
i=1
22
variables de base
-1+2M
2-2M
-2-M
x1
x2
x3
y1
y2
y1
-1
y2
-3
-7M
z (x)
-7M
1-2M
-2+2M
2+M
Deuxi`eme tableau
c
cj
variables de base
-1+2M
2-2M
-2-M
x1
x2
x3
y1
y2
-1+2M
x1
-1
y2
-4
-1
-7M
z (x)
-3-M
-3+4M
3-M
-1+2M
-1+2M
2-2M
-2-M
x1
x2
x3
y1
y2
Troisi`eme tableau
variables de base
-1+2M
x1
-3
-2-M
x3
-4
-1
-7M
z (x)
-6
2+M
-3+M
23
z(x, y) =
m
1
c
yi .
z (x, y) =
x
M
M
i=1
m
i=1
(PA )
maximiser z(y) =
m
yi
i=1
m
sous les contraintes Ax + y = b, x Rn+ , y Rm
+ , b R+ .
variables de base
x1
x2
x3
x4
y1
y2
xJ1 = y1
xJ2 = y2
12
xJ3 = x4
13
-14
z(x)
-14
-3
-6
24
Deuxi`eme tableau
c
variables de base
x1
x2
x3
x4
y1
y2
xJ1 = x3
xJ2 = y2
-4
-9
-5
xJ3 = x4
-5
-10
-6
-14
z(x)
-2
(PA )
maximiser
sous
z(x1 , x2 , x3 , x4 ) = x1 + x2 + x3 + x4
2x2 + x3 = 2
x1 + x2 + 5x3 = 12
x1 + 2x2 + 6x3 + x4 = 13, x1 , x2 , x3 , x4 0.
maximiser
sous
2x2 + x3 + y1 = 2
x1 + x2 + 5x2 + y2 = 12
x1 + 2x2 + 6x3 + x4 = 13,
x1 , x2 , x3 , x4 , y1 , y2 0
variables de base
x1
x2
x3
x4
y1
y2
xJ1 = y1
xJ2 = y2
12
xJ3 = x4
13
-14
z(x)
-14
-1
-3
-6
25
Deuxi`eme tableau
c
variables de base
x1
x2
x3
x4
y1
y2
xJ1 = x3
xJ2 = y2
-9
-5
xJ3 = x4
-10
-6
-14
z(x)
-2
-1
Troisi`eme tableau
variables de base
x1
x2
x3
x4
y1
y2
xJ1 = x3
xJ2 = y1
-1
xJ3 = x1
-10
-6
-14
z(x)
-1
-1
Quatri`eme tableau
variables de base
x1
x2
x3
x4
y1
y2
xJ1 = x3
-1
-2
xJ2 = x2
-1
xJ3 = x1
11
-9
10
-14
z(x)
26
variables de base
x1
x2
x3
x4
xJ1 = x3
xJ2 = x2
-1
xJ3 = x1
11
-9
12
z(x)
-9
Sixi`eme tableau
variables de base
x1
x2
x3
x4
xJ1 = x4
0.5
xJ2 = x2
0.5
xJ3 = x1
11
4.5
12
z(x)
4.5
27
z(x) = cx
(j = 1, 2, . . ., n).
j=1
En forme matricielle yA c, y 0 o`
u y = (y1 , y2 , . . ., ym ). Lentreprise II essaiera
de minimiser le co
ut dachat des mati`eres premi`eres : elle essaiera de minimiser
m
y i bi .
i=1
def
Programme primal
maximiser z(x) = cx
(P )
sous Ax b, x Rn+
Programme dual
minimiser w(y) = yb
(D)
sous yA c, y Rm
+
28
sous
z(x) = cx
Ax = b, x 0
A
A
x
b
b
, x 0.
minimiser
w(u, v) = (u, v)
sous
(u,v)
A
A
b
b
= (u v)b
= (u v) A c, u, v Rm
+.
En posant y = u v, on obtient
(D) minimiser w(y) = yb sous yA c, y sans restriction de signe note (y) .
Dual
minimisation
second membre des contraintes
coecient de w
=
contrainte
=
contrainte
29
Preuve. On se donne
(P ) maximiser z(x, y) = cx + dy sous Ax + By a, Cx + Dy = b, x 0, (y)
(c, x) Rs , d, y Rns , A matrice r s, B matrice r (n s)
matrice (m r) s, D matrice (m r) (n s) .
On demontre que le dual de (P ) est donne par :
(D) minimiser w(u, v) = ua + vb sous uA + vC c, uB + vD = d, u 0, (v)
!
!
!
!
! max z(x) = cx + dy !
! max z(x) = cx + dy1 dy2 !
!
!
!
!
! sous Ax + By a !
! sous Ax + By1 By2 a !
!
!
!
!
Cx + Dy1 Dy2 b !
Cx + Dy b ! !
!
!
!
!
!
Cx + Dy b !
!
! Cx Dy1 + Dy2 b !
!
!
!
!
x 0, y1 0, y2 0
x 0, (y)
!
!
x !
!
!
y2 !!
!
!
!
a
A
B B
x
!
!
! sous
!
b
C
D D
y1
!
!
y2
b
C D
D
!
!
!
!
a
!
!
! min w(y ) = y b
!
!
!
!
!
b
!
!
!
Passons au dual : !!
A
B B
!
! sous y C
!
D
D
(c,
d,
d)
!
!
!
!
C D
D
!
!
!
!
y 0
!
!
! min w(u, v1 , v2 ) = ua + v1 b v2 b = ua + (v1 v2 )b !
!
!
!
! sous uA + v1 C v2 C = uA + (v1 v2 )C c
!
!
(avec y = (u, v1 , v2 )) !
uB + v1 D v2 D = uB + (v1 v2 )D d
!
!
!
uB v1 D + v2 D = uB (v1 v2 )D d !
!
!
!
u 0, v1 0, v2 0
!
!
! min w(u, v) = ua + vb !
!
!
!
!
! min w(u, v) = ua + vb !
! sous uA + vC c
!
!
!
uA + vC c !
!
!
! sous
uB + vD d
(avec v = v1 v2 ) !
! !
!
uB + vD = d !
!
!
!
uB vD d !
!
!
!
u 0, (v)
!
!
u 0, (v)
!
!
! maximiser z(x) = cx + dy !
!
!
sous Ax + By a !
!
!
!
Cx + Dy = b !
!
!
!
x 0, (y)
30
y est sans contrainte de signe dans (P ). Elle est facteur de B et D qui forment la
contrainte egalite dans (D).
Th
eor`
eme 1.2. Le dual du dual est le primal.
Preuve. Pour le dual de la denition ci-dessus on a
!
!
!
!
! max w(y) = t (b)t y !
! min w(y) = yb !
!
!
!
!
! sous yA c ! ! sous (t A)t y c ! .
!
!
!
!
!
!
!
!
y0
y0
!
!
!
!
!
! min z(x) = cx
! max z(x) = cx !
!
!
!
!
!.
Le dual est donc donne par !! sous t x(t A) t (b) !! !! sous Ax b
!
!
!
!
!
x0
x0
La demonstration dans le cas plus general du Theor`eme 1.2 est analogue.
II.2. Le th
eor`
eme de dualit
e.
Apr`es avoir deni le dual dun programme lineaire, nous etudions dans cette section
les liens entre les solutions de programmes en dualite.
Proposition 2.1. Soit (x, y) une solution realisable de (P ) et (u, v) une solution
realisable de (D). Alors :
1) z(x, y) w(u, v)
2) z(x, y) = w(u, v) = (x, y) et (u, v) sont des solutions optimales de (P ) et (D).
Preuve. 1) z(x, y) = cx + dy (uA + vC)x + (uB + vD)y
(D)
= u(Ax + By) + v(Cx + Dy) ua + vb = w(u, v)
(P )
Dans cette chaine dinegalites il est important de noter que x 0 et u 0.
2) ua + vb etant une borne superieure pour z(x, y), legalite z(x, y) = ua + vb signie
que (x, y) est un point maximal de z. Raisonnement analogue pour w(u, v).
Rappelons les trois cas qui peuvent se produire en appliquant le simplexe a` (P ) :
(i) il existe une (ou plusieurs) solutions optimales nies
(ii) lensemble des solutions realisables est non borne et max z(x, y) = +
(iii) (P ) ne poss`ede pas de solutions realisables.
Le meme raisonnement sapplique a` (D). Le theor`eme suivant dit que trois cas
seulement se produisent parmi les 9 cas possibles (voir tableau ci-dessous).
31
(D)
(P )
(i)
(ii)
(iii)
(i)
a)
(ii)
b)
(iii)
b)
c)
Th
eor`
eme 2.2. (Theor`eme de dualite). Seuls les trois cas suivants peuvent se
produire :
a) (P ) et (D) poss`edent des solutions optimales et max z(x, y) = min w(u, v).
b) (P ) ou (D poss`ede une solution realisable, mais pas les deux.
c) Ni (P ) ni (D) poss`edent des solutions realisables.
Preuve. Essentiellement `a laide de la proposition 2.1.
Pour la partie c) il sut de donner un exemple o`
u ni (P ) ni (D) ont des solutions
realisables :
(P ) maximiser z(x1 , x2 ) = x1 + x2 sous x1 x2 = 1, x1 x2 = 1, x1 x2 0
(D) minimiser w(y1 , y2 ) = y1 y2 sous y1 + y2 1, y1 + y2 1, (y1 ), (y2 )
Supposons maintenant que le cas a) du theor`eme precedent sest realise. Quelles
sont les liens entre les solutions optimales de (P ) et de (D) ? Comment calculer
lune a` partir de lautre ? La reponse se deduit facilement du theor`eme suivant.
Th
eor`
eme 2.3. Soient (x, y) resp. (u, v) des solutions realisables de (P ) resp.
de (D). (x, y) et (u, v) sont alors des solutions optimales de (P ) et de (D) si et
seulement si les enonces suivants valent :
. Si une contrainte est satisfaite en tant quinegalite dans (P ) resp. (D), alors
la variable correspondante de (D) resp. de (P ) est nulle.
. Si la valeur dune variable restreinte (cest-`
a-dire une variable 0 ou une
variable 0) dans lun des programmes (P ) ou (D) est = 0, alors la contrainte
correspondante de lautre programme est une egalite.
Preuve. Soit 0 tel que Ax + By + = a, et soit 0 tel que uA + vC = c
(, sont des variables decart). Alors
z(x, y) = cx + dy = (uA + vC )x + (uB + vD)y = u(Ax + By) + v(Cx + Dy) x
w(u, v) = ua + vb = u(Ax + By + ) + v(Cx + Dy) = u(Ax + By) + v(Cx + Dy) + u
Donc z(x, y) w(u, v) = x u 0 par construction. Dapr`es le theor`eme 2.2
(x, y) et (u, v) sont optimales si et seulement si x + u = 0. Donc si et seulement
32
x1
x2
solution
(D)
y1
y2
optimale de (D)
y1
-4/11 -1/11
y2
-1/11 3/11
x1
x2
solution
3/11 2/11
optimale de (P )
Les colonnes de x1 et x2 et la derni`ere colonne representent le tableau nal du simplexe applique au primal. La solution optimale du primal apparat en derni`ere ligne :
x1 = 3/11, x2 = 2/11 (le tableau est transpose par rapport a` la representation
habituelle : les lignes du tableau habituel sont les colonnes ici).
33
(i = 1, 2)
34
X1
X2
3
1
13
3
17.67
1.55
4.03
X1
15.67
17
3.67
3.75
X2
4
Pas de solutions
ralisables
X2
15.2
3.2
X1
X2
3
3
9
Pas de solutions
ralisables
X1
15
14
35
Etapes :
1) Resoudre (P ) a` laide du simplexe sans tenir compte de la contrainte x1 , x2 `a
valeurs enti`eres. Solution optimale : x = (x1 , x2 ) = (1.55, 4.03).z(x) = 17, 67.
Brancher par rapport a` x1 : x1 1 ou x1 2.
2) Ajouter la contrainte x1 1 `a (P ) et resoudre ce programme `a laide du simplexe,
sans tenir compte de la contrainte x1 , x2 `a valeurs enti`eres. Solution optimale x =
(1, 3.67), z(x) = 15.67.
Brancher par rapport a` x2 : x2 3 ou x2 4.
3) Ajouter a` (P ) les contraintes x1 1 et x2 3. La solution optimale de ce
programme est `a valeurs enti`eres : x = (1, 3), z(x) = 13.
Borner a` 13 (cest-`a-dire ne pas poursuivre le branchement si on obtient des solutions
optimales < 13).
4) Ajouter a` (P ) les contraintes x1 1 et x2 4. Ce programme na pas de
solutions realisables.
5) Ajouter a` (P ) la contrainte x1 2. La solution optimale x = (2, 3.75), z(x) = 17.
Brancher par rapport a` x2 : x2 3 ou x2 4.
6) Ajouter a` (P ) les contraintes x1 2 et x2 3. Solution optimale x = (3.2, 3), z(x)
= 15.2.
Brancher par rapport a` x1 : x1 3 ou x1 4.
7) Ajouter a` (P ) les contraintes 2 x1 3 et x2 3. Solution optimale x =
(3, 3), z(x) = 15.
Borner a` 15.
8) Ajouter a` (P ) les contraintes x1 4 et x2 3. Cas sans interet parce que
z(x) = 14 < 15 pour la solution optimale x.
9) Ajouter a` (P ) les contraintes x1 2 et x2 4. Pas de solutions realisables.
La solution optimale a` valeurs enti`eres est donc celle trouvee en 7) : x1 = x2 =
3, z(x) = 15.
Remarque : La methode par separation et evaluation nintervient pas seulement en
programmation lineaire, mais dans tous les probl`emes doptimisation, o`
u on travaille
avec des arbres de decision.
II.3.2. La m
ethode des coupes.
Exemple : maximiser z(x1 , x2 ) = 2x1 + x2
sous les contraintes x1 4x2 0, 3x1 + 4x2 15, x1 , x2 0 `a valeurs enti`eres.
36
X2
3 X 1 + 4 X 2 = 15
3
solution optimale
(a valeurs non entires)
X 1= 3
solutions ralisables
a valeurs entires
X 1= 4 X 2
X1
ajouter des contraintes supplementaires qui perrealisables `a valeurs enti`eres sans les ecarter du
Dans lexemple ci-dessus une telle contrainte est
= 3).
def
et b = (AJ )1 b. On a donc
C
u xJi +
xJ + AxJ = b, o`
a
ij xJj = bi
(i J), et A = (
aij , i, j = 1, . . ., n).
j J
/
Soit [
aij ] la partie enti`ere de a
ij ,
aij la partie fractionnaire de a
ij = [
aij ] +
aij
[ 3.5] = 3,
3.5 = 0.5
Exemples :
[3.5] = 4,
3.5 = 0.5
Il sensuit :
C
xJi +
[
aij ] +
aij xJj = [bi ] + bi
j J
/
xJi +
j J
/
[
aij ]xJj [bi ] = bi
j J
/
aij xJj
(1)
37
Soit x une solution realisable de (P =) a` valeurs enti`eres. Legalite (1) vaut pour x,
le cote gauche etant a` valeurs enti`eres. En plus,
C
C
[
aij ]xJj xJi +
a
ij xJj = bi
xJi +
j J
/
j J
/
Comme (1) est valable pour toute solution realisable, il sensuit que :
C
aij xJj 0
b
j J
/
cJ
variables de base
x1
x2
x3
x4
xJ1 = x3
-1
xJ2 = x4
18
z(x)
-2
-1
(2)
38
Tableau nal
c
cJ
variables de base
xJ1 = x2
xJ2 = x1
18
7
18
7
54
7
z(x)
x1
x2
5
7
2
7
1
7
1
7
1
7
3
7
5
7
1
7
-1
x1
x2
x3
x4
x5
-1
1
7
1
7
1
7
17
5
7
27
5
7
57
c
cJ
variables de base
xJ1 = x2
xJ2 = x1
xJ3 = y
47
18
7
18
7
4
7
47
5
7
1
7
-1
cJ
variables de base
x1
x2
x3
x4
x5
xJ1 = x2
xJ2 = x1
xJ3 = x3
1
5
1
5
25
5
7
47
14
5
4
5
75
39
25
15
cJ
variables de base
x1
x2
x3
x4
x5
xJ1 = x2
xJ2 = x1
xJ3 = x3
38
5
1
5
1
5
2
5
25
14
5
4
5
38
5
75
1
5
La fonction-objectif, exprimee en terme des variables hors base, est donnee par
38 2
1
z(x1 , x2 ) = 2x1 + x2 =
x4 x5
5
5
5
14
4
La solution optimale est egale `a x = t
, 2, , 0, 0 . Nouvelle contrainte selon la
5
5
Propositon 3.1 :
3
4
1
x4 + x5
5
5
5
(S2)
14
1
2
= x1 + x4 x5 24
1
3
4
5
5
5
= x1 + x2 + x4 + x5 x1 + x2 +
5
5
5
5
2 = x2 + x5
Donc x1 + x2 4 (voir graphique plus bas).
3) Resolution de (P ), (S1) et (S2) inclus, exige a` nouveau le passage par un programme auxiliaire.
Seconde phase du simplexe, tableau nal
c
cJ
variables de base
xJ1 = x2
xJ2 = x1
xJ3 = x3
xJ4 = x5
22
3
z(x)
2
3
10
3
8
3
4
3
22
3
13
13
x1
x2
x3
x4
x5
x6
13
1
3
2
3
1
3
1
3
5
3
23
73
53
1
3
0
1
0
40
10 2 8
4
, , , 0, , 0 . Nouvelle contrainte selon
La solution optimale est egale `a x =
3 3 3
4
la Proposition 3.1 :
t
x4 + x6 1
(S3)
12
cJ
variables de base
x1
x2
x3
x4
x5
x6
x7
xJ1 = x2
12
xJ2 = x1
-1
1
2
xJ3 = x3
-3
xJ4 = x5
-2
xJ5 = x6
z(x)
1
2
32
1
2
41
3eme nouvelle
contrainte
X2
2 X1+X2 = 7
contrainte
initiale
5 X 1 + 2 X 2 = 18
contrainte
initiale
X2= X1
2eme nouvelle
contrainte
X1+X2 = 4
premiere solution
optimale (18/7,18/7)
deuxieme solution
optimale (14/5,2)
2
1ere nouvelle
contrainte
X2
troisieme solution
optimale (10/3,2/3)
solution optimale
a valeurs
entieres (3,1)
X1