Une preuve du passage Primal ↔ Dual
Transcription
Une preuve du passage Primal ↔ Dual
Une preuve du passage Primal ↔ Dual Les liens entre le programme primal P et son dual D sont les suivants : P[D] Maximisation s variables r contraintes A c b contraintes ≤ variables ≥ contraintes = variables libres D[P] Minimisation s contraintes r variables AT b c variables ≥ contraintes ≥ variables libres contraintes = de sorte que pour un programme linéaire mis sous sa forme standard : M ax z = cT x s.c. (P) Ax ≤ b x ≥ 0 le dual s’écrit M in w = bT y s.c. (D) Ty A ≥ c y ≥ 0 Plus généralement, soit le programme linéaire suivant : M ax z = cT x + dT y s.c. Ax + By ≤ a (P) Cx + Dy = b x ≥ 0 y ∈ Rn−s Fixons les dimensions : 1 – c, x ∈ Rs , d, y ∈ Rn−s ,a ∈ Rr ,b ∈ Rm−r – A ∈ Mr,s (R),B ∈ Mr,n−s (R),C ∈ Mm−r,s (R),D ∈ Mm−r,n−s (R) On démontre alors que D est donné par : M in w = aT u + bT v s.c. T A u + CT v ≥ c (D) T u + DT v = B d u ≥ 0 v ∈ Rm−r En effet : M ax z s.c. Ax + By Cx + Dy x y = ≤ = ≥ ∈ cT x + dT y a b 0 Rn−s M ax z s.c. Ax + By 1 − By2 Cx + Dy1 − Dy2 ⇔ −Cx − Dy1 + Dy2 x y1 , y 2 M ax z s.c. Ax + By Cx + Dy ⇔ Cx + Dy x y = cT x + dT y ≤ ≤ ≥ ≥ ∈ a b b 0 Rn−s = cT x + dT y1 − dT y2 ≤ ≤ ≤ ≥ ≥ a b −b 0 0 M ax z s.c. A B −B x ⇔ C y 1 D −D −C −D D y2 x y1 , y 2 En passant au dual M in w = s.c. T A CT −C T BT DT −DT y 0 ≥ −B T −DT DT y0 ≥ 0 2 x = (cT , dT , −dT ) y1 y2 a b −b 0 0 ≤ ≥ ≥ aT bT −bT y 0 c d −d Si y 0 = (u, v1 , v2 ) : M in w s.c. T A u + C T v1 − C T v2 ⇔ B T u + DT v1 − DT v2 −B T u − DT v1 + DT v2 u, v1 , v2 ≥ et si v = v1 − v2 : M in w s.c. T u + CT v A B T u + DT v ⇔ −B T u − DT v u≥ v ∈ Rm−r = aT u + bT v1 − bT v2 ≥ ≥ ≥ 0 c d −d = aT u + bT v ≥ ≥ ≥ 0 c d −d d’où M in w = aT u + bT v s.c. AT u + C T v ≥ c B T u + DT v = d u≥ 0 v ∈ Rm−r L’interprétation est alors la suivante : la contrainte égalité de P est Cx + Dy = b, et b est lié à v dans D, qui est une variable sans contrainte de signe. La variable y sans contrainte de signe dans P est facteur de B et D qui forment la contrainte égalité dans D. 3