Vous êtes sur la page 1sur 42

Optimisation linaire

Recherche oprationnelle
GC-SIE

La dualit

Introduction
Un original offre un alpiniste un prix li laltitude quil peut atteindre : 1F / mtre. Cependant, il lui impose de rester en France. La solution optimale pour lalpiniste est de grimper sur le Mont Blanc : 4807m.

Dualit

Michel Bierlaire

Introduction
Cependant, lalpiniste aime la libert, et naccepte pas dtre contraint rester en France. Loriginal accepte de retirer la contrainte, mais condition que lalpiniste lui paie une amende pour quitter la France. Si le montant de lamende est trop peu lev, lalpiniste intrt grimper sur le Mont Everest : 8848 m.

Dualit

Michel Bierlaire

Introduction
Si lamende est de 4041 F Grimper sur le Mont Blanc lui rapporte 4807 F Grimper sur le Mont Everest lui rapporte 8848 F 4041 F = 4807 F Lalpiniste na donc plus intrt violer la contrainte du problme de dpart.

Dualit

Michel Bierlaire

Introduction
Modlisation : x = position f(x) = altitude a(x) = amende si on est en x. Premier problme :
max f(x) sous contrainte x France

Second problme :
max f(x) a(x) sans contrainte
Dualit Michel Bierlaire 8

Introduction
Soit le programme linaire min2x + y s.c. x + y = 1 x, y 0 Solution : x = 0, y = 1 Cot optimum : 1 On introduit un prix p associ la contrainte x + y = 1.

Dualit

Michel Bierlaire

Introduction
min 2x + y + p (1 x y) s.c. x,y 0 Notes : Violer la contrainte nest pas ncessairement pnalisant. La solution de ce problme ne peut pas tre moins bonne que celle du problme initial.

Dualit

Michel Bierlaire

10

Introduction
min 2x + y + p (1 x y) s.c. x,y 0 p=0 min 2 x + y s.c. x, y 0 Solution : x = y = 0. Cot optimum : 0
Dualit Michel Bierlaire 11

Introduction
Dans ce cas, on a intrt violer la contrainte du problme initial pour obtenir un meilleur cot.

Dualit

Michel Bierlaire

12

Introduction
min 2x + y + p (1 x y) s.c. x,y 0 p=2 min 2 x + y + 2 2x 2y = y+2 s.c. x, y 0 Solution : y = +, x quelconque. Cot optimum : .
Dualit Michel Bierlaire 13

Introduction
Dans ce cas, le problme devient non born. Le prix est certainement non adapt. Situation viter. Comment ? En mettant des contraintes sur les prix.

Dualit

Michel Bierlaire

14

Introduction
min 2x + y + p (1 x y) s.c. x,y 0 p=1 min 2 x + y + 1 x y = x+1 s.c. x, y 0 Solution : x = 0, y quelconque. Cot optimum : 1.
Dualit Michel Bierlaire 15

Introduction
Dans ce cas, quelque soit la valeur de y, pas moyen dobtenir un cot meilleur que le cot optimal du problme initial. La contrainte nest plus contraignante . Il ny a aucun avantage la violer.

Dualit

Michel Bierlaire

16

Introduction
Ide : Supprimer des contraintes pour simplifier le problme. Affecter des prix la violation de ces contraintes. Interdire les prix qui rendent le problme non born.

Dualit

Michel Bierlaire

17

Introduction
Si c* est le cot optimum du problme de dpart. Si g(p) est le cot optimum du problme relax avec le prix p. On a toujours g(p) c*. La situation est donc plus avantageuse. On dsire trouver les prix pour que lavantage li la relaxation des contraintes soit minimal. On doit donc trouver p qui maximise g(p).

Dualit

Michel Bierlaire

18

Le problme dual
Soit le programme linaire

Il est appel le problme primal. Le problme relax est

Dualit

Michel Bierlaire

19

Le problme dual
Soit g(p) le cot optimal du problme relax. Soit x* solution optimale du problme primal.

Dualit

Michel Bierlaire

20

10

Le problme dual
g(p) cTx* p La solution du problme relax ne peut pas tre moins bonne que la solution du problme primal. On veut maintenant calculer le prix tel que g(p) soit maximal. En programmation linaire, on arrive trouver p* pour que g(p*) = cTx*

Dualit

Michel Bierlaire

21

Le problme dual
Si on choisit p* comme prix pour le problme relax, il ny a plus aucun intrt violer les contraintes. Rsoudre le problme relax est donc quivalent rsoudre le problme primal. Question : comment dterminer p* ?

Dualit

Michel Bierlaire

22

11

Le problme dual

Le problme min (cT-pTA) x est trivial rsoudre : Si (cT-pTA) 0, alors min (cT-pTA) x = 0 Sinon, min (cT-pTA) x = cas viter
Dualit Michel Bierlaire 23

Le problme dual
Pour viter le cas trivial o le problme est non born, on impose (cT-pTA) 0 cest--dire pTA cT ou encore ATp c
Dualit Michel Bierlaire 24

12

Le problme dual
Le problme devient donc max pTb s.c. ATp c Il sagit dun programme linaire. Il est appel le problme dual.

Dualit

Michel Bierlaire

25

Le problme dual
Primal min cTx s.c. Ax = b x0 Dual max pTb s.c. ATp c

Note : Le rle des vecteurs c et b est chang Dfinition : Les variables p reprsentant le prix sont appeles les variables duales.
Dualit Michel Bierlaire 26

13

Le problme dual
Considrons maintenant le problme primal min cTx s.c. Ax b x0 Introduisons les variables dcart min cTx s.c. Ax + y = b x, y 0

Dualit

Michel Bierlaire

27

Le problme dual
Sous forme matricielle, on peut crire

Dualit

Michel Bierlaire

28

14

Le problme dual
On obtient le problme min dTz s.c. Fz = b z0 avec zT = (xT yT) dT = (cT 0) F = (A I)
Dualit Michel Bierlaire 29

Le problme dual
Problme dual max pTb s.c. FTp d avec d = (c 0)T F = (A I)

Dualit

Michel Bierlaire

30

15

Le problme dual
Primal min cTx s.c. Ax b x0 Dual max pTb s.c. ATp c p0

Note : En prsence de contraintes dingalit, il faut imposer une contrainte de signe sur les prix.

Dualit

Michel Bierlaire

31

Le problme dual
Considrons maintenant le problme primal min cTx s.c.Ax = b x IRn et calculons son dual.

Dualit

Michel Bierlaire

32

16

Le problme dual

Le problme min (cT-pTA) x est trivial rsoudre : Si (cT-pTA) = 0, alors min (cT-pTA) x = 0 Sinon, min (cT-pTA) x =
Dualit Michel Bierlaire 33

Le problme dual
Pour viter le cas trivial o le problme est non born, on impose (cT-pTA) = 0 cest--dire pTA = cT ou encore ATp = c
Dualit Michel Bierlaire 34

17

Le problme dual
Le problme devient donc max pTb s.c. ATp = c
Primal min cTx s.c. Ax = b x IRn
Dualit Michel Bierlaire

Dual max pTb s.c. ATp = c

35

Le problme dual
Rsum : On dispose dun vecteur de prix p (les variables duales). Pour chaque p, on peut obtenir une borne infrieure sur le cot optimal du primal. Le problme dual consiste trouver la meilleure borne. Pour certains p, la borne est , et napporte donc aucune information pertinente.

Dualit

Michel Bierlaire

36

18

Le problme dual
Rsum (suite) : On maximise uniquement sur les p qui produisent une borne finie. Cest ce qui gnre les contraintes du problme dual. A chaque contrainte du primal (autres que les contraintes de signe) est associe une variable duale.

Dualit

Michel Bierlaire

37

Le problme dual
Soit A une matrice Notons ai les lignes de la matrice Notons Ai les colonnes de la matrice

Dualit

Michel Bierlaire

38

19

Le problme dual PRIMAL DUAL

Dualit

Michel Bierlaire

39

Le problme dual
PRIMAL min bi contraintes bi = bi 0 variables 0 libre
Dualit Michel Bierlaire

max 0 0 libre cj cj = cj

DUAL

variables

contraintes

40

20

Exemple
Passer du primal au dual

Dualit

Michel Bierlaire

41

Exemple
Transformer le problme obtenu. Cest un programme linaire

Dualit

Michel Bierlaire

42

21

Exemple
Calculer le dual du dual

Dualit

Michel Bierlaire

43

Exemple
Transformer le problme

Cest le problme de dpart.


Dualit Michel Bierlaire 44

22

Le problme dual
Soit un programme linaire P. Soit D son dual. Le dual de D est le programme P. Le dual du dual est le primal.

Dualit

Michel Bierlaire

45

Le problme dual
Considrons le problme suivant
Primal min cTx s.c. Ax b x IR Dual max pTb s.c. p 0 ATp = c

M1 N3

Introduisons les variables dcart dans le primal, et dterminons le dual


Dualit Michel Bierlaire 46

23

Le problme dual
Primal min cTx + 0Ty s.c. Ax-y = b M3 N3 x IR N1 y0 Dual max pTb s.c. p IR ATp = c -p 0

Remplaons maintenant les variables du problme original par des variables positives : x=x+xDualit Michel Bierlaire 47

Le problme dual
Primal min cTx+ cTxs.c. Ax+-Ax- b x+ 0 x- 0 Dual max pTb s.c. p 0 ATp c -ATp -c

M1 N1 N1

Les trois problmes primaux sont quivalents Les trois problmes duaux sont quivalents
Dualit Michel Bierlaire 48

24

Le problme dual
Si lon transforme un programme linaire P1 en un programme linaire P2 en appliquant une suite de transformations des types suivant : 1. Remplacer une variable libre par la diffrence de deux variables non ngatives.

Dualit

Michel Bierlaire

49

Le problme dual
2. Remplacer une contrainte dingalit par une contrainte dgalit impliquant des variables dcart non ngatives. 3. Si une ligne de la matrice A dun problme en forme standard est une combinaison linaire des autres lignes, liminer la contrainte dgalit correspondante. Alors, le dual de P1 et le dual de P2 sont quivalents.

Dualit

Michel Bierlaire

50

25

Thormes de dualit
Thorme de dualit faible Si x est une solution admissible du problme primal. Si p est une solution admissible du problme dual. Alors pTb cTx

Dualit

Michel Bierlaire

51

Thormes de dualit
Soit ui = pi(aiTx-bi) Si iM1, aiTx-bi 0 et pi 0 Si iM2, aiTx-bi 0 et pi 0 Si iM3, aiTx-bi = 0 et pi quelconque Donc ui 0, i
Michel Bierlaire 52

Dualit

26

Thormes de dualit
Soit vj = (cj-pTAj)xj Si jN1, cj-pTAj 0 et xj 0 Si jN2, cj-pTAj 0 et xj 0 Si jN3, cj-pTAj = 0 et xj quelconque Donc vj 0, j
Michel Bierlaire 53

Dualit

Thormes de dualit
ui = pi(aiTx-bi) vj = (cj-pTAj)xj i ui = pTAx pTb j vj=cTx pTAx 0 i ui+ j vj= pTAxpTb+cTxpTAx 0 cTx pTb pTb cTx
Dualit Michel Bierlaire 54

27

Thormes de dualit
Corollaires Si le cot optimal du primal est , aucun p ne peut vrifier pTb cTx. Le problme dual est donc non admissible. Si le cot optimal du dual est +, aucun x ne peut vrifier pTb cTx. Le problme primal est donc non admissible.
Dualit Michel Bierlaire 55

Thormes de dualit
Corollaire Soit x solution admissible du primal, et p solution admissible du dual. Supposons que cTx = pTb. Alors x est solution optimale du primal et p est solution optimale du dual.

Dualit

Michel Bierlaire

56

28

Thormes de dualit
Pour tout y primal admissible, on a pTb cTy. Or, pTb = cTx. Donc, cTx cTy, et x est optimal. Pour tout q dual admissible, on a qTb cTx. Or, pTb = cTx. Donc, qTb pTb, et p est optimal.
Dualit Michel Bierlaire 57

Thormes de dualit
Thorme de dualit forte Si un programme linaire possde une solution optimale, Alors
son dual galement et les cots optimaux respectifs sont gaux.

Dualit

Michel Bierlaire

58

29

Thormes de dualit
Considrons le problme en forme standard

Supposons que A soit de rang plein. Appliquons la mthode du simplexe avec la rgle de Bland.
Dualit Michel Bierlaire 59

Thormes de dualit
La mthode du simplexe se termine avec une solution optimale x et une matrice de base associe B. xB = B-1b Les cots rduits sont non ngatifs cT-cBTB-1A 0T. Soit p tel que pT = cBTB-1
Dualit Michel Bierlaire 60

30

Thormes de dualit
cT-cBTB-1A 0T cT-pTA 0T pTA cT ATp c p est admissible pour le problme dual max pTb s.c. ATp c
Dualit Michel Bierlaire 61

Thormes de dualit
De plus, pTb = cBTB-1b = cBTxB = cTx. Par le corollaire prcdent, p est solution optimale du problme dual. Ainsi, le rsultat est vrai pour
les problmes en forme standard dont la matrice A est de rang plein.

Dualit

Michel Bierlaire

62

31

Thormes de dualit
Pour les autres problmes, on peut toujours :
supprimer les lignes de A correspondant aux contraintes redondantes, transformer le problme en forme standard.

On a vu que le dual du problme ainsi transform est quivalent au dual du problme initial. Le rsultat reste donc valable.

Dualit

Michel Bierlaire

63

Thormes de dualit
Note : En prenant pT = cBTB-1, la condition doptimalit du primal cT-cBTB-1A 0T devient cT-pTA 0T ou ATp c, la condition dadmissibilit du dual.
Dualit Michel Bierlaire 64

32

Thormes de dualit
Pour un problme de programmation linaire, exactement une des possibilits suivantes peut exister :
Il y a une solution optimale. Le problme est non born. Le problme est non admissible.

Cela donne 9 combinaisons pour le primal et le dual. Par les thormes de dualit, certaines dentre elles sont impossibles.
Dualit Michel Bierlaire 65

Thormes de dualit
Primal Optimum fini Non born Non admissible Optimum fini Dual Non born Non admissible
Possible Impossible Impossible Impossible Impossible Possible Impossible Possible

Possible

33

Exemple
Considrons une balle contrainte rester dans un polydre dfini par les contraintes aiTx bi. a3 a1 c a2

Dualit

Michel Bierlaire

67

Exemple
A loptimum, les forces appliques par les parois quilibrent la gravit.
a3 a1 p2a2 p1a1 a2

Dualit

Michel Bierlaire

68

34

Exemple
A loptimum, on a donc c = i piai, pi 0 Comme les forces ne sappliquent quaux parois en contact avec la balle, on a
soit pi=0 soit bi-aiTx = 0

Donc pi(bi-aiTx)=0 ou pibi=piaiTx.

Dualit

Michel Bierlaire

69

Exemple
On obtient pTb= i pibi = i piaiTx = cTx p est donc une solution optimale du problme dual.

Dualit

Michel Bierlaire

70

35

Ecarts complmentaires
Thorme des carts complmentaires Soit x et p des solutions admissibles du primal et du dual (resp.) Les vecteurs x et p sont des solutions optimales des deux problmes respectifs si et seulement si pi(aiTx-bi) = 0 i (cj-pTAj)xj = 0 j
Dualit Michel Bierlaire 71

Ecarts complmentaires
Pour le thorme de dualit faible, on avait ui = pi(aiTx-bi), ui0 vj = (cj-pTAj)xj, vj0 cTx -pTb = i ui+ j vj Si x et p sont optimales, alors i ui+ j vj=0 et donc ui=0, i et vj=0, j

Dualit

Michel Bierlaire

72

36

Ecarts complmentaires
Si ui=0, i et vj=0, j, alors cTx = pTb. Par le thorme de dualit forte, x et p sont donc optimales.

Dualit

Michel Bierlaire

73

Exemple
Primal :

Dual :

Dualit

Michel Bierlaire

74

37

Exemple
x*=(1,0,1) solution optimale du primal. Construisons la solution optimale duale partir des conditions des carts complmentaires. La condition pi(aiTx*-bi)=0 est vrifie car x* est primal admissible. La condition (cj-pTAj)xj = 0 est vrifie pour j=2.
Dualit Michel Bierlaire 75

Exemple
Pour j=1, cette condition devient 5p1+3p2=13. Pour j=3, elle devient 3p1=6. Ces deux conditions donnent p1=2 et p2=1. Cette solution est dual admissible. Le cot dual est 19, comme le cot primal.

Dualit

Michel Bierlaire

76

38

Variables duales et cots marginaux


Considrons un problme en forme standard

A est de rang plein x* est solution de base optimale non dgnre B est la matrice de base correspondante
Dualit Michel Bierlaire 77

Variables duales et cots marginaux


On a xB=B-1b > 0. Remplaons b par (b+d), o d est une petite perturbation. Si d est suffisamment petit, on a B-1(b+d) > 0. La mme base B donne donc une solution de base admissible pour le problme perturb.

Dualit

Michel Bierlaire

78

39

Variables duales et cots marginaux


De plus, les cots rduits cT-cBTB-1A ne sont pas affects par la perturbation. B est donc aussi une base optimale pour le problme perturb. Si p est solution optimale du dual, le cot optimal du problme perturb est cBTB-1(b+d)= pT(b+d)=pTb+pTd= cTx*+pTd

Dualit

Michel Bierlaire

79

Variables duales et cots marginaux


Les valeurs optimales des variables duales peuvent donc tre interprtes comme les cots marginaux dune petite perturbation du membre de droite b.

Dualit

Michel Bierlaire

80

40

Variables duales et cots marginaux


x2

s.c.

1.5 z=-2

1.5 c=(-1,-1)T
Dualit Michel Bierlaire

x1

81

Variables duales et cots marginaux


x2 3 x2

1.5 z=-2

1.5 z=-2

1.5
Dualit

x1 1.5

x1

Michel Bierlaire

82

41

Variables duales et cots marginaux


Notes : On perturbe la contrainte 2x1+x2 3 Lorsque d est petit, les deux contraintes actives la solution sont 2x1+x2 = 3-d x1+2x2 = 3 comme dans le problme original. La base optimale est donc la mme.
Dualit Michel Bierlaire 83

Variables duales et cots marginaux


Lorsque d est grand, les deux contraintes actives la solution sont 2x1+x2 = 3-d x1= 0. La base optimale a chang. On ne peut plus utiliser les variables duales pour calculer la diffrence de cot.
Dualit Michel Bierlaire 84

42

Vous aimerez peut-être aussi