Vous êtes sur la page 1sur 6

Dualité En Programmation Linéaire

Dans le cadre de la programmation linéaire, on peut


associer à chaque (PL) un autre (PL), de type opposé,
nommé programme Dual . Leurs propriétés sont
étroitement liées.

Par souci d'optimiser les calculs lors de la résolution


d'un (PL), il est plus avantageux, dans certaines
circonstances, de résoudre le problème dual. Ensuite,
la solution du (PL) initial sera déduite facilement par
l'intermédiaire de la solution du dual.
1.– Définition du Dual à partir du Primal
Prenons l’exemple d’un problème de Maximisation
Maximisation : Problème Primal Canonique
Programme 1
𝑀𝑎𝑥[𝑍]: 𝑍 = 𝑥1 + 2𝑥2
𝑥1 + 3𝑥2 ≤ 21
−𝑥1 + 3𝑥2 ≤ 18
𝑥1 − 𝑥2 ≤ 5
{ 𝑥𝑖 ≥ 0 ; 𝑖 = 1,2
On écrit la fonction objectif Z comme suit :

𝑍 = 𝑐’. 𝑥 = (1 2). (𝑥𝑥1 ) avec les contraintes : A.x ≤ b


2

‘ : est l’opérateur de transposition


1 3 21
1 x
Où : 𝐴 = (−1 1 ) et 𝑏 = (18) et 𝑐 = (2) et 𝑥 = (𝑥12 )
1 −1 5
1
Minimisation : Problème Dual Canonique
Minimiser [W]: W = 21 y1 + 18 y2 + 5 𝑦3
Sous Contraintes :
𝑦1 − 𝑦2 + 𝑦3 ≥ 1
3𝑦 + 𝑦2 − 𝑦3 ≥ 2
{ 1
𝑦1 ≥ 0 ;
𝑦2 ≥ 0 ; 𝑦3 ≥ 0

𝑦 𝑦
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

1) la valeur marginale d’une variable d’écart est égale à la


valeur absolu de son coefficient dans la function économique
exprimée en function des variables nulles de la solution

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 :
𝒙𝟏 + 𝟐𝒙𝟐 ≥ 𝟏𝟐𝟎
𝒙𝟏 + 𝟐𝒙𝟑 ≥ 𝟗𝟎
{
𝒙𝟏 ≥ 𝟎 ; 𝒙𝟐 ≥ 𝟎; 𝒙𝟑 ≥ 𝟎

1) Ecrire le programme dual correspondant.


2) Donner sa solution par la Méthode du Simplexe.
3) En déduire la solution du problème.
Solution :
1) Programme Primal Canonique
𝐌𝐢𝐧𝐢𝐦𝐢𝐬𝐞𝐫 [𝐖]: 𝐖 = 𝟑𝟓 𝐱 𝟏 + 𝟓𝟎 𝐱 𝟐 + 𝟐𝟎 𝒙𝟑
𝒙 𝒙
𝑾 = [ 𝟑𝟓 𝟓𝟎 𝟐𝟎]. ( 𝒙𝟏𝟐) = b′ . ( 𝒙𝟏𝟐 )
𝒙𝟑 𝒙𝟑

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
𝒙𝟑 𝒙𝟑

x1∗ = 90 ; 𝑥2∗ = 15 ; 𝑥3∗ = 0

Vous aimerez peut-être aussi