Vous êtes sur la page 1sur 10

5

5.1

Dualit
Le problme dual

Problme primal et problme dual


Problme primal
max

cT x

s.c.

Ax = b
x0

n variables, m contraintes, m < n, c, x Rn ,

b Rm ,

A Rmn .

Problme dual
min

bT y

s.c.

AT y c
(y non restreint)

m variables, n contraintes, m < n, c Rn ,

b, y Rm ,

A Rmn .

Exemple 12 (Problme primal et dual - forme standard).


Problme primal :
max
s.c.

z=

x1
2x1
3x1
x1 ,

+x2
+x2
x2
x2

= 5 (y1 )
= 6 (y2 )
0

min w = 5y1
s.c
2y1
y1

+6y2
+3y2
y2

1
1

Problme dual :
(x1 )
(x2 )

Proprits et rgles de construction du dual


Thorme 3. Le problme dual du problme dual est le problme primal.
Rgles de construction
Problme max
Contrainte

=
Variable
0
non restreinte

Problme min
Variable
0
non restreinte
Contrainte

Exemple 13 (Problme primal et dual - forme gnrale).


Problme primal :
max
s.c.

z=

5x1
x1
2x1
x1 ,

+12x2
+2x2
x2
x2 ,

20

+4x3
+x3
+3x3
x3

10
=8
0

(y1 )
(y2 )

Problme dual :
min w =
s.c

5.2

10y1
y1
2y1
y1
y1

+8y2
+2y2
y2
+3y2

5
12
4
0

(x1 )
(x2 )
(x3 )

Relations primal/dual

Thorme 4 (Dualit faible). Considrons la paire primale-duale :


max

cT x

s.c.

Ax = b
x0

bT y

min

s.c. AT y c

Si x est une solution admissible du primal et y une solution admissible du dual, alors
cT x bT y
Sil y a galit, alors x est une solution optimale du primal et y une solution optimale du dual.
Thorme 5 (Dualit forte). Considrons la paire primale-duale :
max

cT x

s.c.

Ax = b
x0

min
bT y
s.c. AT y c

Si le primal et le dual admettent tous les deux une solution admissible, ils ont tous deux une solution optimale
finie et la mme valeur objectif optimale.
Si le primal (dual) est non born, le dual (primal) nadmet pas de solution admissible.
Thorme 6 (Complmentarit). Considrons la paire primale-duale :
max

cT x

s.c.

Ax = b
x0

min

bT y

s.c. AT y c

21

Si x est une solution optimale du primal et y une solution optimale du dual, alors
xi (aTi y ci ) = 0.
o ai est la i-me colonne de A.
En dautres termes :
xi > 0
aTi y > ci

aTi y = ci ,
xi = 0.

Exemple 14 (Rsolution du dual par les rgles de complmentarit).


Primal (P ) :
max z = 5x1 +12x2 +4x3
s.c.
x1
+2x2
+x3 10
2x1
x2
+3x3 = 8
x1 ,
x2 ,
x3
0

(y1 )
(y2 )

Dual (D) :
min w =
s.c

10y1
y1
2y1
y1
y1

+8y2
+2y2
y2
+3y2

5
12
4
0

(x1 )
(x2 )
(x3 )

Solution optimale de (P ) :


26 12
, ,0
(x1 , x2 , x3 ) =
5 5
274
z=
5

x1 > 0

y1 + 2y2 = 5

x2 > 0

2y1 y2 = 12

Solution optimale de (D) :




29 2
,
(y1 , y2 ) =
5
5
274
w=
5

5.3

Interprtation conomique de la dualit

La forme canonique dun programme linaire peut tre interprte comme un problme dallocation de ressources.
Paire primale-duale :
cT x

max

s.c. Ax b
x0

bT y

min
s.c.

A yc
y0

22

Donnes :
cj : profit par unit dactivit j.
bi : disponibilit de la ressource i.
aij : consommation de la ressource i par unit dactivit j.
Variables :
xj : niveau de lactivit j.
yi : valeur dune unit de la ressource i.
Interprtation de la dualit faible
zw:

profit valeur des ressources

Interprtation de la dualit forte


Le profit maximal est atteint si les ressources ont t exploites compltement, i.e. jusqu puisement de leur
valeur.
Exemple 15 (Dualit dans le problme de production de peinture).
max z =
s.c

5x1
6x1
x1

+4x2
+4x2
+2x2
x2
+x2
x2

x1
x1 ,
min w =

24y1
6y1
4y1
y1 ,

+6y2
+y2
+2y2
y2 ,

+2y3
+y3
y3 ,

24
6
2
1
0
+y4
y4
+y4
y4

5
4
0

x1 = 3, x2 = 1.5, z = 21
y1 = 0.75, y2 = 0.5, y3 = y4 = 0, w = 21
Le profit augmente de 0.75 par augmentation dune tonne de M1 et de 0.5 par tonne de M2.
Les "ressources" 3 et 4 sont abondantes, augmenter ces ressources napporte aucun profit supplmentaire.

5.4

Mthode simplexe duale

Relations primal / dual dans le tableau du simplexe


Tableau primal final
Var. en base
z
x1
x2
s3
s4

z
1
0
0
0
0

x1
0
1
0
0
0

x2
0
0
1
0
0

s1
34

t1
3
14

t2

y1
0
1
0

1
4
18
1
8
3
8

s2
12
12
3
4
34
54

s3
0
0
0
1
0

s4
0
0
0
0
1

Solution
21
3
3
2
1
2
5
2

Tableau dual final


Var. en base
w
y1
y2

w
1
0
0

1
2

3
2
1
8
43

23

y2
0
0
1

y3

y4

1
2
18
3
4

5
2
38
5
4

Solution
21
3
4
1
2

Ici, toutes les contraintes dans le primal et dans le dual sont des ingalits correspondance entre variable
originale du primal et variable dcart du dual (et vice-versa).
Primal
Dual

x1
t1

x2
t2

s1
y1

s2
y2

s3
y3

s4
y4

Observation :
Les valeurs des variables duales sont gales loppos des profits marginaux des variables correspondantes
du primal.
Les valeurs des variables primales sont gales aux cots rduits des variables correspondantes du dual.
Consquence de la complmentarit des solutions primale et duale.
Thorme 7. Considrons la paire primale-duale :
max

cT x

s.c.

Ax = b
x0

min

bT y

s.c.

AT y c

1. Pour toute solution de base non dgnre x du primal, il existe une et une seule solution y du dual complmentaire x.
2. x est admissible si et seulement si y satisfait les conditions doptimalit (cots rduits non ngatifs).
3. y est admissible si et seulement si x satisfait les conditions doptimalit (profits marginaux ngatifs ou nuls).
Dmonstration. Le dual peut se rcrire sous forme standard :
bT y

min
s.c.

A yt=c
t0

Considrons un ensemble de variables en base B et un ensemble de variables hors base N , tels que la base
correspondante est non dgnre :
xB = A1
xN = 0
B b>0
Par complmentarit, tB = 0 et ATB y = cB . Ds lors,
y T = cTB A1
B ,

tTB = 0 tTN = (cTN cTB A1


B AN )

(2) et (3) sont des consquences directes.

Simplexe dual : motivation


Il arrive souvent quune solution en base non admissible, mais satisfaisant les contraintes doptimalit soit
identifiable facilement (par exemple, variables dcart de contraintes ).
Cette base correspond une solution admissible du dual.
Ide de la mthode simplexe duale : rsoudre (implicitement) le dual par la mthode du simplexe (mais en
travaillant sur le tableau primal !)
Partir avec une solution de base statisfaisant les conditions doptimalit (= base admissible pour le dual) et
chercher la rendre admissible (= dual optimale).

24

Rgles de pivotage (simplexe dual)


Variable sortante
Choisir la variable l en base avec la valeur minimum (ngative). Si bl 0 pour tout l B, solution admissible,
STOP.
Variable entrante
Choisir la variable k hors base telle que
k = arg

min

iN :ali <0

|ci |
ali

Si ali 0 pour tout k N , problme non admissible, STOP.


Exemple 16 (Simplexe dual).
min z = 3x1
s.c. 3x1
4x1
x1
x1 ,

+2x2
+x2
+3x2
+x2
x2

3
6
3
0

Forme standard avec les variables dcart en base :


min z = 3x1
s.c. 3x1
4x1
x1
x1 ,

+2x2
x2
3x2
+x2
x2 ,

+s1
+s2
s1 ,

Var. en base
z
s1
s2
s3

z
1
0
0
0

x1
3
3
4
1

x2
2
1
3
1

Var. en base
z
s1
x2
s3

z
1
0
0
0

x1
1
3
53
4
3
13

x2
0
0
1
0

Var. en base
z
x1
x2
s3

z
1
0
0
0

x1
0
1
0
0

x2
0
0
1
0

s2 ,
s1
0
1
0
0

+s3
s3

= 3
= 6
=3
0

s2
0
0
1
0

s3
0
0
0
1

Solution
0
3
6
3

s2

s3
0
0
0
1

Solution
4
1
2
1

s3
0
0
0
1

Solution
21
5

s1
0
1
0
0

2
3
23
31
1
3

s1

s2

1
5
35
4
5
15

3
5
1
5
53
52

3
5
6
5
6
5

Solveurs et langages de modlisation

Exemple 17 (Production de jouets).


Une socit de jouets produit des trains, des camions et des voitures, en utilisant 3 machines.
Les disponibilits quotidiennes des 3 machines sont 430, 460 et 420 minutes, et les profits par train, camion et
voiture sont respectivement EUR 3, EUR 2 et EUR 5.
Les temps ncessaires sur chaque machine sont :

25

Machine
1
2
3

Train
1
3
1

Camion
2
0
4

Voiture
1
2
0

Primal
max z =
s.c.

3x1
x1
3x1
x1
x1 ,

+2x2
+2x2
+4x2
x2 ,

+5x3
+x3
+2x3

430
460
420
0

x3

x1 = 0
x2 = 100
x3 = 230
z = 1350

Dual
min w = 430y1
s.c.
y1
2y1
y1
y1 ,

+460y2
+3y2

+420y3
+y3
+4y3

+2y2
y2 ,

y3

3
2
5
0

y1 = 1
y2 = 2
y3 = 0

Var. en base
z
x2
x3
s3

z
1
0
0
0

x1
4
14
3
2

x2
0
1
0
0

x3
0
0
1
0

s1
1
1
2

s2
2
14

0
2

1
2

s3
0
0
0
1

Solution
1350
100
230
20

Base : B = {x2 , x3 , s3 }.
Solveurs
Logiciels pour rsoudre des programmes linaires :
Indpendants :
Commerciaux : CPLEX (IBM), XPRESS-MP (http ://www.fico.com/), Gurobi (http ://www.gurobi.com/), . . .
Gratuits : PCx, lpsolve, glpk, . . .
Tableurs : La plupart des tableurs intgrent un outil de rsolution de programmes linaires (Excel, Gnumeric,
. . .)
Langages de modlisation (ampl, GNU MathProg, mpl, OPL studio, mosel, . . .) : langages de haut niveau
permettant la sparation modle/donnes, se chargeant de linterface avec un solveur.

26

NAME
ROWS
L R0001
L R0002
L R0003
N R0004
COLUMNS
C0001
C0001
C0001
C0001
C0002
C0002
C0002
C0003
C0003
C0003
RHS
B
B
B
ENDATA

toys

R0001
R0002
R0003
R0004
R0001
R0003
R0004
R0001
R0002
R0004

1
3
1
3
2
4
2
1
2
5

R0001
R0002
R0003

430
460
420

F IGURE 1 Exemple de production de jouets au format MPS


Solveurs indpendants
Avantages
Puissance, efficacit
Intgrables dans des applications via des librairies
Dsavantages
Formats de fichiers (MPS)
Pas de sparation modle / donnes
R-utilisation difficile des modles
Solveurs intgrs aux tableurs
Avantages
Disponibles sur (quasi) tous les ordinateurs
Interface facile dutilisation
Prsentation des donnes / rsultats
Dsavantages
Difficult dimplmenter de grands modles
Sparation modle / donnes difficile
Solveurs moins efficaces (en gnral)
Langages de modlisation
Avantages
Sparation modle / donnes
R-utilisabilit des modles
Indpendance modle / solveur

27

#
# Data definition
#
set Toys;
param nMachines;
set Machines := 1..nMachines;
param profit {Toys};
param time {Machines,Toys};
param avail {Machines};
#
# Variables
#
var prod {Toys} >= 0;
#
# Objective
#
maximize total_profit:
sum{t in Toys} profit[t]*prod[t];
#
# Constraints
#
subject to machine_usage {m in Machines}:
sum{t in Toys} time[m,t] * prod[t] <= avail[m];

F IGURE 2 Exemple de production de jouets au format AMPL (modle)


Dsavantages
Apprentissage du langage
Prix des versions commerciales
Limitation en taille des versions dessai gratuites
Moindre efficacit (actuellement) des solveurs gratuits

28

#
# Data
#
data;
set Toys := Trains, Trucks, Cars ;
param nMachines := 3;
param profit :=
Trains 3
Trucks 2
Cars 5 ;
param
1 1 2
2 3 0
3 1 4

time :
1
2
0 ;

Trains Trucks Cars :=

param avail :=
1 430
2 460
3 420 ;
end;
F IGURE 3 Exemple de production de jouets au format AMPL (donnes)

29