𝑦 𝑦
Avec 𝑦 = (𝑦12 ) ; 𝑊 = 𝑡𝑏 . 𝑦 = 𝑏’. 𝑦 = (21 18 5). (𝑦12 )
𝑦3 𝑦3
avec les contraintes : A’.y ≥ c
1 3 21
où : A = (−1 1 ) et b = (18)
1 −1 5
Le problème initial à partir duquel on a défini le dual
s'appelle le problème primal . Pour une forme
canonique, le second membre du dual est formé par
les coefficients de la fonction économique du primal ;
de même, les coefficients de la fonction d'objectif du
dual ne sont autres que les composantes du second
membre du primal ; aussi, la matrice régissant les
contraintes du dual est la matrice transposée de la
matrice du primal ; et enfin, les inégalités (mise à
part les inégalités de positivité) du primal et du dual
sont en sens inverse.
2
Exemple
Considérons le programme Primal suivant :
𝑀𝑎𝑥[𝑍]: 𝑍 = 𝑥1 + 3𝑥2
𝑆. 𝐶 ∶
𝑥1 + 𝑥2 ≤ 14
𝑃𝑟𝑖𝑚𝑎𝑙 ∶
−2𝑥1 + 3𝑥2 ≤ 12
2𝑥1 − 𝑥2 ≤ 12
{ 𝑥𝑖 ≥ 0 ; 𝑖 = 1,2
Problème Dual
𝐌𝐢𝐧𝐢𝐦𝐢𝐬𝐞𝐫 [𝐖]: 𝐖 = 𝟏𝟒 𝐲𝟏 + 𝟏𝟐 𝐲𝟐 + 𝟏𝟐 𝒚𝟑
Sous Contraintes :
𝒚𝟏 − 𝟐 𝒚𝟏 + 𝟐𝒚𝟑 ≥ 𝟏
𝒚 + 𝟑𝒚𝟐 − 𝒚𝟑 ≥ 𝟑
{ 𝟏
𝒚𝟏 ≥ 𝟎 ; 𝒚𝟐 ≥ 𝟎;
𝒚𝟑 ≥ 𝟎
2.- Optimalité pour le primal-dual
Le tableau suivant donne un ensemble de règles formelles permettant
de passer d’un problème de programmtion linéaire général à son
problème dual.
Max[Z] Min[W]
Variable xj ≥ 0 Contrainte j est une inégalité “≥ "
Variable xj ≤ 0 Contrainte j est une inégalité “≤ "
Variable xj sans signe Contrainte j est une égalité “= "
Contrainte i est une inégalité “≤ " Variable u𝑖 ≥ 0
Contrainte i est une inégalité “≥ " Variable u𝑖 ≤ 0
Contrainte i est une égalité “= " Variable 𝑢𝑖 sans signe
3
optimale (la 1ère ligne du dernier tableau de la méthode
dusimplexe auquel on a prisvla valeur absolue)
2) A l’optimum , les deux problems Primal et Dual sont liés
par la correspondence :
a)-les deux fonctions objectifs ont respectivement la même
valeur optimale :
Z*=Max[Z]=Zmax=Min[W]=Wmin=W*
b)- la valeur marginale d’une variable d’un programme est égale à la
valeur optimale de la variable associée de l’autre programme.
c) Les variables d’activité d’un programme sont associées aux
variables d’écart de l’autre programme et inversement.
________________________________________
APPLICATION
• Résoudre le programme linéaire suivant :
𝐌𝐢𝐧𝐢𝐦𝐢𝐬𝐞𝐫 [𝐖]: 𝐖 = 𝟑𝟓 𝐱 𝟏 + 𝟓𝟎 𝐱 𝟐 + 𝟐𝟎 𝒙𝟑
Sous Contraintes :
𝒙𝟏 + 𝟐𝒙𝟐 ≥ 𝟏𝟐𝟎
𝒙𝟏 + 𝟐𝒙𝟑 ≥ 𝟗𝟎
{
𝒙𝟏 ≥ 𝟎 ; 𝒙𝟐 ≥ 𝟎; 𝒙𝟑 ≥ 𝟎
4
Sous Contraintes :
x1 + 2x2 ≥ 120
x1 + 2x3 ≥ 90 x1 1 2 0 x1 120
{ A. ( x2 ) = ( ). ( x2 ) ≥ c = ( )
1 0 2 90
x3 x3
x1 ≥ 0; x2 ≥ 0; x3 ≥ 0
Programme Dual Canonique
Maximiser [Z] : 𝑍 = 𝟏𝟐𝟎𝒚𝟏 + 𝟗𝟎𝒚𝟐 = [𝟏𝟐𝟎 𝟗𝟎]. (𝒚𝒚𝟏) = 𝒄′ . (𝒚𝒚𝟏)
𝟐 𝟐
Sous Contraintes :
y1 + y2 ≤ 35
2y1 ≤ 50 y1 1 1 y1 35
{ A′ . ( ) = ( 2 0) . ( ) ≤ b = (50)
2y2 ≤ 20 y2 y2
x1 ≥ 0; x2 ≥ 0; x3 ≥ 0 0 2 20
2) Méthode du Simplexe pour la résolution du programme dual
Programme dual standard
𝐌𝐚𝐱𝐢𝐦𝐢𝐬𝐞𝐫 [𝐙]: 𝐙 = 𝟏𝟐𝟎 𝐲𝟏 + 𝟗𝟎 𝐲𝟐 + 𝟎 𝒚𝟑 + 𝟎 𝒚𝟒 + 𝟎 𝒚𝟓
Sous Contraintes :
y1 + y2 + y3 = 35
y1 + 0y2 + y4 = 25
{
0y1 + 2y2 + y5 = 20 ;
yi ≥ 0; i = 1, . . ,5
y1 y2 y3 y4 y5 R
L0 120 90 0 0 0 0 Z
L1 1 1 1 0 0 35 y3
L2 1 0 0 1 0 25 y4
L3 0 2 0 0 1 20 y5
SDC : y1 = 0 ; y2 = 0; y3 = 35; y4 = 25 ; y5 = 20 ; Z = 0
Première Itération
1) Variable Entrante : y1
2) Variable Sortante : y4 Car :
Min(Colonne(R)/Colonne(y1 ))=Min(35/1,25,+∞) = 25
3) Nouveau tableau :
• Pivot1=1
• Transformations sur les lignes :
5
L2 L2; L0 L0-120. L2 ; L1 L1- L2 ; L3 L3
y1 y2 y3 y4 y5 R
L0 0 90 0 -120 0 -3000 Z
L1 0 1 1 -1 0 10 y3
L2 1 0 0 1 0 25 y1
L3 0 1 0 0 1 10 y5
SDC : y1 = 25 ; y2 = 0; y3 = 10; y4 = 0 ; y5 = 10 ; Z = 3000
Condition d’arrêt : Fausse
Deuxième Itération
1) Variable Entrante : y2
2) Variable Sortante : y3 ou y5 ; prenons y3
Car : Min((Colonne(R)/Colonne(y2 ))=Min(10, 25,10)=10
Nouveau tableau :
• Pivot2=1
• Transformations sur les lignes :
L1 L1 ; L0 L0-(90.L1) ; L2 L2; L3 L3-L2
y1 y2 y3 y4 y5 R
L0 0 0 -90 -30 0 -3900 Z
L1 0 1 1 -1 0 10 y2
L2 1 0 0 1 0 25 y1
L3 0 0 -1 1 1 0 y5
SDC : y1 = 25 ; y2 = 10; y3 = 0; y4 = 0 ; y5 = 0 ; Z ∗ = 3900 ; C.A= Vraie
3) Solution du Problème :
On déduit la solution du dual à partir de celle du primal par les
reletions : 𝑎𝑖′ . 𝑥 ∗ = 𝑐𝑖 pour i=1,2 ; 𝑎𝑖 est la colonne numéro i de A
ainsi que 𝑐𝑖 est la colonne numéro i du vecteur c
𝑎1′ . 𝑥 ∗ = 𝑐1 & 𝑎2′ . 𝑥 ∗ = 𝑐2
𝒙 𝒙
𝑎1′ . 𝑥 ∗ = 𝑐1 = [1 2 0]. ( 𝒙𝟏𝟐 ) = 120 et a′2 . x ∗ = c2 = ; [1 0 2 ]. ( 𝒙𝟏𝟐 ) = 90
𝒙𝟑 𝒙𝟑