Académique Documents
Professionnel Documents
Culture Documents
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
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
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
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
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
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
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
A est de rang plein x* est solution de base optimale non dgnre B est la matrice de base correspondante
Dualit Michel Bierlaire 77
Dualit
Michel Bierlaire
78
39
Dualit
Michel Bierlaire
79
Dualit
Michel Bierlaire
80
40
s.c.
1.5 z=-2
1.5 c=(-1,-1)T
Dualit Michel Bierlaire
x1
81
1.5 z=-2
1.5 z=-2
1.5
Dualit
x1 1.5
x1
Michel Bierlaire
82
41
42