Méthode du Simplexe en Programmation Linéaire
Méthode du Simplexe en Programmation Linéaire
grande taille :
Elle consiste à suivre un certain nombre d'étapes (itérations) avant
d'obtenir la solution d'un problème donné,
Elle permet de trouver la solution exacte en un nombre ni d'étapes.
Explore les sommets de la région admissible en améliorant à chaque
2. Notions générales
2.1 Rappels
Un programme linéaire s'écrit généralement sous la forme :
⎧
⎪ max (ou min) z = c1 x1 + c2 x2 + ... + cn xn
⎪
⎪
⎪
⎪ a11 x1 + a12 x2 + ... + a1n xn {≤, =, ≥} b1
⎪
⎪
⎨ a21 x1 + a22 x2 + ... + a2n xn {≤, =, ≥} b2
⎪ ... ⇐⇒
⎪
⎪
⎪
⎪
⎪
⎪ a x + am2 x2 + ... + amn xn {≤, =, ≥} bm
⎩ m1 1
x1 ≥ 0, . . . , xn ≥ 0
⎧ n
⎪
⎪
⎪
⎪ max / min z = cj xj
⎪
⎪
⎨ j=1
n
⎪
⎪
⎪ aij xj {≤, =, ≥} bi i = 1, m
⎪
⎪
⎪
⎩ j=1
xj ≥ 0 j = 1, n
Forme matricielle
⎧
⎨ max z = c T x
Ax ≤ b
⎩
x ≥0
La méthode du simplexe Notions générales
Exemple :
⎧
⎪
⎪ max 6x1 + 7x2 + 8x3
⎪
⎪ x1 + 2x2 + x3 ≤ 100 ⎧
⎪
⎪
⎨ ⎨ max z = c T x
3x1 + 4x2 + 2x3 ≤ 120
(P1 ) ⇐⇒ Ax ≤ b
⎪ 2x1 + 6x2 + 4x3 ≤ 200 ⎩
⎪
⎪ x ≥0
⎪
⎪ x + x3 ≤ 150
⎪
⎩ 1
x1 , x2 , x3 ≥ 0
avec
⎛ ⎞ ⎛ ⎞
1 2 1 100 ⎛ ⎞ ⎛ ⎞
⎜ ⎟ ⎜ ⎟ 6 x1
A=⎜ ⎟ ; b=⎜ ⎟ ; c=⎝ ⎠ x = ⎝ x2 ⎠
3 4 2 120
⎝ 2 6 4 ⎠ ⎝ 200 ⎠ 7 ;
8 x3
1 0 1 150
A de type (4 , 3),
m=4 (contraintes) et n=3 (variables de décision).
Forme matricielle
⎧
⎨ max z = c T x
Ax = b
⎩
x ≥0
Propriété
Tout programme linéaire peut être mis sous la forme canonique et sous la
forme standard.
Remarques
1 Le passage entre la forme générale, la forme canonique et la forme
standard se fait moyennant les transformations ci-dessus.
2 La forme canonique est utilisée dans la résolution graphique.
Tandis que la forme standard permet une résolution matricielle et sera
utilisée pour la méthode de simplexe.
Notons aussi que la méthode du simplexe requiert des bi ≥ 0.
Exemple :
⎧
⎪
⎪ min 5x1 − 3x2
⎪
⎨ x1 − x2 ≥ 2
⎪
Soit le problème : (P2 )
⎪
2x1 + 3x2 ≤ 4
⎪
⎪
⎪ −x1 + 6x2 = 10
⎩
x1 , x2 ≥ 0
En introduisant les variables d'écart x3 ≥ 0 et x4 ≥ 0 dans la première et la
deuxième contrainte, on met (P2 ) sous la forme équivalente :
⎧
⎪
⎪ max −5x1 + 3x2
⎪
⎨ x1 − x2 − x3 = 2
⎪
(P2 )
⎪
2x1 + 3x2 + x4 = 4
⎪
⎪
⎪ −x1 + 6x2 = 10
⎩
x1 , x2 , x3 , x4 ≥ 0
Exemple :
Soit le système linéaire :
x2 + 2x3 + 2x4 = 1
x1 + x2 + 2x3 + 3x4 = 1
Ce système peut s'écrire Ax =⎛b ⎞
, avec :
x1
⎜ x2 ⎟
A=
0 1 2 2
⎜
x =⎝ ⎟ et b =
1
x3 ⎠
,
1 1 2 3 1
x4
A est de type ( 2 , 4) (2 équations et 4 variables).
1 2
La sous-matrice B= est inversible et rang (A) = 2.
1 3
Remarques
Une base est inversible et donc les variables de base correspondent à
innité de solutions.
x2 + 2x3 + 2x4 = 1
x1 + x2 + 2x3 + 3x4 = 1
admet une innité de solutions.
⎛⎞
x1
⎜ x2 ⎟
A=
0 1 2 2
x =⎝ ⎜ ⎟ et b =
1
x3 ⎠
On a : ,
1 1 2 3 1
x4
1 2 − 1 3 −2
B= est une base et B =
1 3 −1 1
Ax = b ⇐⇒ B −1 A x = B −1 b
3 −2 0 1 2 2 −2 1 2 0
B −1 A = =
−1 1 1 1 2 3 1 0 0 1
3 −2 1
B −1 b = =
−1 1 0
La méthode du simplexe Bases, variables de base et solution de base
Généralisation :
Soit Ax = b un système d'équations linéaires tel que A matrice de type
(m , n), m ≤ n et rang (A) = m. Soit B une base de A.
Après permutation des colonnes de A de manière à ce que celles de B
soient en premier, on obtient :
A=
P
B N et x=
P xB
xN
où
N est la sous-matrice de A correspondant aux variables hors base,
xB vecteur de Rm formé par les variables de base,
xN vecteur de Rn−m formé par les variables hors base.
et on a :
Ax = b ⇐⇒ BxB + NxN = b ⇐⇒ xB = B −1 b − B −1 NxN
Pour déterminer toutes les solutions du système, on choisit donc
arbitrairement les valeurs de xN (paramètres) et on calcule les valeurs
correspondantes de xB .
La méthode du simplexe Bases, variables de base et solution de base
Dénitions
On appelle solution de base (associée à la base B ), la solution
particulière obtenue en prenant xN = 0.
xB est déterminée de façon unique par :
BxB = b ⇐⇒ xB = B −1 b
Exemple 1 :
Une entreprise de fabrication de châssis envisage la production de deux
nouveaux modèles au moyen des capacités résiduelles de ses trois ateliers.
Il s'agit respectivement d'un châssis en aluminium et d'un châssis en bois.
Le premier produit nécessite le passage dans le premier atelier pour
fabriquer le cadre en aluminium et dans le troisième atelier où le verre est
monté sur le châssis. Tandis que le second produit nécessite le passage
dans le deuxième atelier pour fabriquer le cadre en bois et dans le troisième
atelier où le verre est monté sur le châssis.
Les marges unitaires, les temps de fabrication de chacun des produits dans
chacun des ateliers ainsi que les capacités hebdomadaires résiduelles de ces
ateliers sont donnés au tableau suivant :
Produit 1 Produit 2 Capacité
(châssis aluminium) (châssis bois) disponible
(heures/produit) (heures/produit) (heures/semaine)
Atelier 1 1 0 4
Atelier 2 0 2 12
Atelier 3 3 2 18
Marge 3 UM 5 UM
La question qui se pose est la suivante : combien faut-il produire de châssis
de chaque type par semaine pour maximiser le prot net ?
2. Expression de l'objectif
La deuxième étape consiste à formuler l'objectif.
L'entreprise désire maximiser son prot net. La marge étant de 3 pour le
premier type de châssis et de 5 pour le second, l'objectif (ou fonction
économique) s'exprime comme suit :
4.1 Exemple :
Ãx̃ = b̃
x̃ ≥ 0
⎛ ⎞
⎛ ⎞ x1 ⎛ ⎞
⎜ x2 ⎟
1 0 1 0 0
⎜ ⎟ 4
à = ⎝ 0 2 0 1 0 ⎠ ; x̃ = ⎜ ⎟
⎜ e1 ⎟ ; b̃ =
⎝ 12 ⎠
3 2 0 0 1 ⎝ e2 ⎠ 18
e3
z = c̃ T x̃ = 3x1 + 5x2 + 0e1 + 0e2 + 0e3 avec c̃ = (x1 , x2 , 0 , 0 , 0)T
(x1 , x2 , e1 , e2 , e3 ) = (0 , 0 , 4 , 12 , 18)
Cela signie qu'au départ on a :
x1 = 0 ; x2 = 0 ; e1 = 4 ; e2 = 12 ; e3 = 18
Autrement dit : on ne produit rien au départ
Tableau initial :
Base x1 x2 e1 e2 e3 s.m
e1 1 0 1 0 0 4
e2 0 2 0 1 0 12
e3 3 2 0 0 1 18
z 3 5 0 0 0 0
bénéciaire initiale z = 0.
La solution n'est pas optimale. On recherche donc une solution de base
Itération du simplexe :
⎧
⎪ e1 = 4 ⎧
⎪
⎨ ⎨ e2 = 12 − 2x2 ≥ 0
2x2 + e2 = 12
⇐⇒ e3 = 18 − 2x2 ≥ 0
⎪ 2x + e3 = 18 ⎩
⎪
⎩ 2 x2 ≥ 0
x2 ≥ 0 ; e1 ≥ 0 ; e2 ≥ 0 ; e3 ≥ 0
⎧
⎨ x2 ≤ 12/2 = 6
⇐⇒ x2 ≤ 18/2 = 9 =⇒ 0 ≤ x2 ≤ min{12/2 , / } = 12/2 = 6
18 2
⎩
x2 ≥ 0
Ainsi, la valeur limite que x2 peut prendre est x2 = 6. La deuxième
Tableau 1
↓
Base x1 x2 e1 e2 e3 s.m R
e1 1 0 1 0 0 4 4/0 = ∞
← e2 0 2 0 1 0 12 12/2 = 6
e3 3 2 0 0 1 18 18/2 = 9
z 3 5 0 0 0 0
Tableau 2
↓
Base x1 x2 e1 e2 e3 s.m R
e1 1 0 1 0 0 4 4
x2 0 1 0 1/2 0 6 ∞
← e3 3 0 0 −1 1 6 2
z 3 0 0 −5/2 0 −30
Tableau 2
Base
↓
x1 x2 e1 e2 e3 s.m R
e1 1 0 1 0 0 4 4
x2 0 1 0 1/2 0 6 ∞
← e3 3 0 0 −1 1 6 2
z 3 0 0 −5/2 0 −30
Tableau 3
Base x1 x2 e1 e2 e3 s.m
e1 0 0 1 1/3 −1/3 2
x2 0 1 0 1/2 0 6
x1 1 0 0 −1/3 1/3 2
z 0 0 0 −3/2 −1 −36
avec dN = cN − cB B −1 N ; z̄ = cB B −1 b
les composantes de dN s'appellent coûts réduits des variables hors base.
Ils interviennent de façon déterminante dans la méthode du simplexe.
La méthode du simplexe Cas général
et xB ≥ 0 , xN ≥ 0.
La solution de base est donnée par : xN = 0 ; xB = b̄ = B −1 b.
Cette solution de base est réalisable signie que b̄ = B −1 b ≥ 0.
La valeur de la fonction objectif z associée à cette solution est z̄ .
Finalement, le tableau du simplexe associé à la base B est (à une
permutation de colonnes près) de la forme :
Base xB xN s.m
xB Im B 1N
− b̄ = B −1 b
−z 0 dN −z̄
dN = cN − cB B −1 N ; z̄ = cB B −1 b
La méthode du simplexe Cas général
Base xB xN s.m
xB Im B −1 N b̄ = B −1 b
z 0 dN z̄
Remarques :
La forme tableau présente l'avantage de préserver la structure du
programme linéaire. En plus, elle met en évidence les opérations
matricielles (résolution des systèmes linéaires par exemple) mis en
÷uvre durant la résolution.
Les variables de base se distinguent par le fait qu'elles forment une
matrice identité dans le système des contraintes et n'interviennent pas
dans la fonction objectif. les variables hors base sont les variables
restantes et leur coecients dans la fonction objectif sont représentés
par les coûts réduits (vecteur dN ).
Rappelons que, une fois le choix du pivot établi, le passage d'un
tableau simplexe au tableau suivant s'eectue manuellement en
utilisant les règles de calculs :
Les coecients de la ligne du pivot sont divisés par le pivot.
Les coecients de la colonne du pivot (sauf le pivot) sont nuls.
Les autres coecients sont obtenus par la règle du rectangle.
Dénition
1 Une solution de base xB associée à la base B est dite non dégénérée
si :
xB = B −1 b > 0
c-à-d le second membre du système réduit b̄ > 0
autrement dit, si toutes les variables de base sont strictement positives.
Dans le cas contraire, on dit que la solution de base est dégénérée.
2 Un programme linéaire est non dégénéré si toute solution de base
réalisable est non dégénérée.
Preuve du Théorème :
dN xN = di xi ≤ 0
i ∈N
D'où :
dj > 0, j ∈ N .
dj = max{dk ; k ∈ N }
1 ākj ≤ 0, ∀ k = 1, ..., m
(Tous les termes de la colonne j de la variable entrante sont ≤ 0).
Dans ce cas l'ensemble réalisable est non borné et max z = +∞
2 Il existe k ∈ {1, ..., m} tel que ākj > 0
Dans ce cas on va procéder à une itération et
b̄p b̄p
= min{ ; āpj > 0}
āpj āpj
(On fait le rapport des coecients du s.m du tableau simplexe avec les
moins une solution optimale (avec zmax ni). Alors après un nombre ni
optimale.
La méthode du simplexe Problèmes particuliers
suivantes :
Pour déterminer une base initiale réalisable, considérons tout d'abord le cas
forme standard :
⎧
⎪
⎪ max z = c1 x1 + c2 x2 + ... + cn xn + 0e1 + ... + 0en
⎪
⎪
⎪
⎪ a11 x1 + a12 x2 + ... + a1n xn + e1 = b1
⎪
⎨ a21 x1 + a22 x2 + ... + a2n xn + e2 = b2
(PS) .
⎪
⎪ .
⎪
⎪
.
⎪
⎪ a x + am2 x2 + ... + amn xn + em = bm
⎪
⎩ m1 1
x1 ≥ 0, . . . , xn ≥ 0, e1 ≥ 0, . . . , em ≥ 0
En posant
à = A Im ; x̃ = (x1 , ..., xn , e1 , ..., em )T ; c̃ = (c1 , ..., cn , 0, ..., 0)T
où Im est la matrice identité d'ordre m.
(PS) s'écrit alors sous la forme matricielle :
⎧
⎨ max z̃ = c̃ T x̃
Ãx̃ = b
⎩
x̃ ≥ 0
B = Im ; N = A ; xB = B −1 b = b ; xN = x = 0
Si b≥0 alors cette solution est en plus réalisable.
du simplexe.
Problème de dégénérescence :
b̄p b̄p
= min{ ; āpj > 0} = 0
āpj āpj
Alors la fonction objectif z ne varie pas après le changement de base et par
:
Lorsque plusieurs variables sont susceptibles d'entrer ou de sortir de la
base, on choisit toujours la variable xr ayant le plus petit indice r .
Exemples :
T1
Base x1 x2 x3 x4 x5 x6 s.m R
x5 4 7 0 0 1 4 4 4/7
x4 2 8 0 1 0 3 0 0
x3 -2 9 1 0 0 2 0 0
z -5 2 0 0 0 5 -3
Variables candidates à enter dans la base : x2
Variables candidates à sortir de la base : x4 et x3 . On choisit donc x3 .
T2
↓
Base x1 x2 x3 e1 e2 e3 s.m R
← e1 1 2 5 1 0 0 4 2
e2 3 4 3 0 1 0 8 2
e3 2 4 1 0 0 1 12 3
z 2 3 1 0 0 1 0
T3
↓
Base x1 x2 x3 e1 e2 e3 s.m
e1 1 2 5 1 0 0 3
e2 3 1 3 0 1 0 10
e3 2 8 1 0 0 1 8
z 3 3 2 0 0 0 0
T4
↓
Base x1 x2 e1 e2 s.m
e1 0 -2 1 -1 20
x1 1 0 0 2,5 3
z 0 16 0 -3 -32
Exemple :
Soit le problème : ⎧
⎪
⎪ min −x1 − 2x2
⎪
⎪
⎨ −3x1 + 2x2 ≤ 2
(PM) −x1 + 2x2 ≤ 4
⎪
⎪
⎪
⎪ x + x2 ≤ 5
⎩ 1
x1 , x2 ≥ 0
En rajoutant les variables d'écart on obtient la forme standard :
⎧
⎪
⎪ min −x1 − 2x2
⎪
⎪
⎨ −3x1 + 2x2 + e1 = 2
(PMS) −x1 + 2x2 + e2 = 4
⎪
⎪
⎪
⎪ x + x2 + e3 = 5
⎩ 1
x1 , x2 , e1 , e2 , e3 ≥ 0
On remarque que tous les termes du second membre (2, 4 et 5) sont
positifs. Dans notre cas, l'obtention d'une solution de base réalisable
initiale est triviale. Elle correspond aux variables de base e1 , e2 , e3 et
variables hors base x1 , x2 .
La sol tion de base réalisable initiale est
La méthode du simplexe Simplexe avec minimisation
Ãx̃ = b̃
x̃ ≥ 0
⎛ ⎞
⎛ ⎞ x1 ⎛ ⎞
−3 2 1 0 0 ⎜ x2 ⎟ 2
⎜ ⎟
à = ⎝ −1 2 0 1 0 ⎠ ; x̃ = ⎜
⎜ e1 ⎟ ; b̃ = b = ⎝ 4 ⎠
⎟
1 1 0 0 1 ⎝ e2 ⎠ 5
e3
z = c̃ T x̃ = −x1 − 2x2 + 0e1 + 0e2 + 0e3 avec c̃ = (x1 , x2 , 0 , 0 , 0)T
⎛ ⎞
1 0 0
Une base initiale est donnée par la matrice identité : I = ⎝ 0 1 0 ⎠
0 0 1
La solution de base réalisable initiale est :
(x1 , x2 , e1 , e2 , e3 ) = (0 , 0 , 2 , 4 , 5)
Tableau 1
Base x1
↓
x2 e1 e2 e3 s.m R
← e1 -3 2 1 0 0 2 1
e2 -1 2 0 1 0 4 2
e3 1 1 0 0 1 5 5
z -1 -2 0 0 0 0
x2 variable entrante dans la base.
e1 variable sortante de la base.
Tableau 2
Base
↓
x1 x2 e1 e2 e3 s.m R
x2 -3/2 1 1/2 0 0 1 −2/3
← e2 2 0 -1 1 0 2 1
e3 5/2 0 -1/2 0 1 4 8/5
z -4 0 1 0 0 2
Tableau 3
Base x1 x2
↓
e1 e2 e3 s.m R
x2 0 1 -1/4 3/4 0 5/2 10
x1 1 0 -1/2 1/2 0 1 -2
← e3 0 0 3/4 -5/4 1 3/2 2
z 0 0 -1 2 0 6
Tableau 4
Base x1 x2 e1 e2 e3 s.m
x2 0 1 0 1/3 1/3 3
x1 1 0 0 -1/3 2/3 2
e1 0 0 1 -5/3 4/3 2
z 0 0 0 1/3 4/3 8
Tous les coecients de la dernière ligne sont positifs ou nuls : le tableau 4
est optimal et x∗1 = 2 ; x∗2 = 3 ; e∗1 = 2 ; e∗2 = e∗3 = 0 ; z∗ = −8
La méthode du simplexe Initialisation de la méthode du simplexe
Méthode du grand M :
Considérons le PL suivant :
⎧
⎪
⎪ max z = x1 + x2
⎨
2x1 + x2 ≥ 4
(P1 )
⎪
⎪ x + 2x2 = 6
⎩ 1
x1 , x2 ≥ 0
On remarque que les termes du second membre sont tous positifs, mais la
1ère contrainte est de type ≥ et la 2ème contrainte est de type =
On rajoute une variable d'écart e1 à la 1ère contrainte (pour avoir l'égalité).
On rajoute en plus deux variables articielles a1 et a2 aux 2 contraintes.
En plus, on transforme la fonction objectif en pondérant les variables
articielles avec un coecient −M où M est un nombre supposé positif et
assez grand.
La méthode du simplexe Initialisation de la méthode du simplexe
On obtient alors le PL :
⎧
⎪
⎪ max z = x1 + x2 −Ma1 − Ma2
⎨
2x1 + x2 − e1 + a1 = 4
⎪ x1 + 2x2 + a2 = 6
⎪
⎩
x1 , x2 , e1 , a1 , a2 ≥ 0
Tableau 3
Base x1 x2
↓
e1 a1 a2 s.m R
x1 1 0 -2/3 2/3 -1/3 2/3 -1
← x2 0 1 1/3 -1/3 2/3 8/3 8
−z 0 0 1/3 -M-1/3 -M-1/3 -10/3
Tableau 4
Base x1 x2 e1 a1 a2 s.m
x1 1 2 0 0 1 6
e1 0 3 1 -1 2 8
−z 0 -1 0 -M -M-1 -6
Chapitre 3 :
Résolution des programmes linéaires
La dualité
Dualité Exemple introductif
1. Exemple introductif
Une entreprise E1 fabrique les produits P1 et P2. Elle utilise les matières
premières M1, M2 et M3, à raison de :
2 tonnes de M1, 1 tonne de M2 et 3 tonnes de M3
par unité produite de P1,
1 tonne de M1, 3 tonnes de M2 et 4 tonnes de M3
par unité produite de P2.
Elle dispose de :
50 tonnes de M1, 25 tonnes de M2 et 60 tonnes de M3.
Le bénéce net est de 5000 UM par unité de P1 et de 2000 UM par unité
de P2.
Le problème que se pose l'entreprise est le suivant :
Quelle quantité de chacun des deux produits P1 et P2 l'entreprise doit-elle
fabriquer pour que le bénéce soit maximal ?
Le problème primal (P) et son dual (D) sont liés par les relations suivantes :
Formulation matricielle :
⎧ ⎧
⎨ max z = c T x ⎨ min w = bT y
(P) Ax ≤ b (D) AT y ≥ c
⎩ ⎩
x ≥0 y ≥0
Exemples :
⎧
⎪
⎪ max z = x1 + 3x2
⎪
⎪
⎪
⎨ x1 + x2 ≤ 14
(P1 ) −2x1 + 3x2 ≤ 12
⎪
⎪
⎪
⎪ 2x1 − x2 ≤ 12
⎪
⎩
x1 , x2 ≥0
⎧
⎪
⎪ min w = 14y1 + 12y2 + 12y3
⎪
⎨
y1 − 2y2 + 2y3 ≥ 1
(D1 )
⎪
⎪ y1 + 3y2 − y3 ≥ 3
⎪
⎩
y1 , y2 , y3 ≥0
Dualité Formulation générale du problème dual
⎧ ⎧
⎪
⎪ min z = −2x1 + 9x2 ⎪
⎪ min z = −2x1 + 9x2
⎪
⎪ ⎪
⎪
⎪
⎨ 3x1 + x2 ≥ 10 ⎪
⎨ 3x1 + x2 ≥ 10
(P2 ) 4x1 − 3x2 ≤ 8 ⇐⇒ −4x1 + 3x2 ≥ −8
⎪
⎪ ⎪
⎪
⎪
⎪ x1 − x2 ≤ 6 ⎪
⎪ −x1 + x2 ≥ −6
⎪
⎩ ⎪
⎩
x1 , x2 ≥0 x1 , x2 ≥0
Le dual de (P2 ) est :
⎧
⎪
⎪ max w = 10y1 − 8y2 − 6y3
⎨
3y1 − 4y2 − y3 ≤ −2
(D2 )
⎪
⎪ y + 3y2 + y3 ≤ 9
⎩ 1
y1 , y2 , y3 ≥0
Question : Dual de (D2) ?
⎧
⎪
⎪ min z = −2u1 + 9u2
⎪
⎪
⎨ 3 u1 + u2 ≥ 10
(D̄2 ) −4u1 + 3u2 ≥ −8 Le dual du dual de (P2 ) = (P2 ).
⎪
⎪
⎪
⎪ −u1 + u2 ≥ −6
⎩
u1 , u2 ≥0
4. Théorème de dualité
Avec les notations du paragraphe 2, on a les résultats suivants :
Théorème 1 (Dualité forte)
Le problème primal (P) admet une solution optimale x ∗ si et seulement si le
problème dual (D) admet une solution optimale y ∗ , et dans ce cas, on a :
c T x ∗ = b T y ∗ autrement dit z ∗ = w ∗ .
Par exemple :
⎧
⎪
⎪ max z = 5000x1 + 2000x2 ⎧
⎪
⎪
⎪ ⎪
⎪ min w = 50y1 + 25y2 + 60y3
⎪
⎨ 2x1 + x2 ≤ 50 ⎪
⎨
2y1 + y2 + 3y3 ≥ 5000
(P) x1 + 3x2 ≤ 25 (D)
⎪
⎪ ⎪
⎪ y1 + 3y2 + 4y3 ≥ 2000
⎪
⎪
⎪ 3x1 + 4x2 ≤ 60 ⎪
⎩
⎪
⎩ x ≥0; x ≥0 y1 , y2 , y3 ≥ 0
1 2
Le chef d'entreprise voudrait savoir ce que lui rapporterait le fait que son
atelier soit ouvert une heure de plus par jour. Autrement dit, il voudrait
connaître l'augmentation de sa marge bénéciaire si le deuxième coecient
du second membre passait de 11 à 12. On obtient alors un deuxième P.L :
⎧
⎪
⎪ max z = 4x1 + 3x2
⎪
⎨
(P )
2x1 + x2 ≤ 3 (Quantité de m.p)
⎪
⎪
⎪
5 x1 + 6 x2 ≤ 12 (Nombre d'heures de travail/jour)
⎩
x1 ≥ 0 ; x2 ≥ 0
Le problème dual (D) a pour solution optimale : (y1∗ , y2∗ ) = (9/7, 2/7).
Donc y2∗ représente l'augmentation de l'objectif si on augmente le nombre
d'heures de travail/jour de 1 unité. Si on avait augmenté la capacité de
stockage d'une unité (c-à-d de 3 à 4) sans augmenter le nombre d'heures,
on aurait pu constater une augmentation de l'objectif égale à 9/7.
En général on a le résultat suivant :
Si on augmente la i ème composante du second membre du problème
primal (bi ) d'une unité, alors la fonction objectif augmentera d'une
quantité égale à la i ème variable duale optimale (yi∗ ).
Dualité Interprétation économique des variables duales
Remarques
Les valeurs des variables duales yi sont appelées coûts marginaux ou
valeurs marginales.
Si une contrainte d'indice i est non saturée, alors les relations de
complémentarité entraînent que yi∗ = 0, c-à-d le coût marginal
d'indice i est nul. Donc on n'a pas intérêt à augmenter la capacité si
on n'a pas utilisé toutes les ressources.
Si le coût marginal d'indice i est non nul c-à-d yi∗ = 0, alors la
contrainte d'indice i est saturée ; cela signie que toutes les ressources
ont été utilisées, donc une augmentation de la capacité permettra
d'augmenter le bénéce.
Primal Dual
ainsi que les marges unitaires sont rapportées dans le tableau ci-dessous :
Quantité de m.p M1 1 3 96
Quantité de m.p M2 1 1 40
2 Donner le P.L dual (D) et ses valeurs optimales ( y1∗ , y2∗ , y3∗ , w ∗ ).
3 Si la fabrique pouvait augmenter la quantité de matière première M1
Programme linéaire :
⎧
⎪
⎪ max z = 15x1 + 25x2
⎪
⎪
⎪
⎪
⎨ x1 + 3x2 ≤ 96 Contrainte quantité de m.p M1
Tableau 1
↓
Base x1 x2 e1 e2 e3 s.m R
← e1 1 3 1 0 0 96 / = 32
96 3
e2 1 1 0 1 0 40 / = 40
40 1
−z 15 25 0 0 0 0
Variable entrante : x2 .
Variable sortante : e1 .
Pivot : 3
Tableau 2
↓
Base x1 x2 e1 e2 e3 s.m R
x2 /
1 3 1 / 1 3 0 0 32 96
← e2 2/3 0 −1/3 1 0 8 12
e3 /
17 3 0 −4/3 0 1 110 238 4/ = 19, 4
−z 20/3 0 −25/3 0 0 -800
Tableau 3
Base x1 x2 e1 e2 e3 s.m
x2 0 1 /
1 2 −1/2 0 28
x1 1 0 −1/2 3/2 0 12
e3 0 0 3/2 −17/2 1 42
−z 0 0 −5 −10 0 −880
Le tableau 3 est optimal car tous les coecients de la dernière ligne −z
sont négatifs ou nuls.
Dualité Exercice d'application
2) ⎧
⎪
⎪ min w = 96y1 + 40y2 + 238y3
⎪
⎨
y1 + y2 + 7y3 ≥ 15 contrainte produit P1
(D)
⎪
⎪ 3 y1 + y2 + 4y3 ≥ 25 contrainte produit P2
⎪
⎩
y1 ; y2 ; y3 ≥ 0
yi : prix unitaire d'achat de la m.p Mi (i = 1, 2, 3)
D'après la ligne −z du tableau 3, les coûts marginaux de e1 , e2 et e3 sont
respectivement : −5, −10 et 0. Donc
y1∗ = 5 ; y2∗ = 10 ; y3∗ = 0 et w ∗ = z ∗ = 880
(Voir passage du tableau optimal primal au tableau optimal dual).
3)
On a y1∗ = 5 et y2∗ = 10, donc une augmentation de la quantité de la m.p
M1 (resp. M2 ) d'une tonne va entraîner une amélioration du chire
d'aaires de 5 UM (resp. 10 UM). Ainsi l'entreprise a intérêt à investir
dans la quantité de la m.p M2 en premier.
Si une variable est dans la base son correspondant est hors base :
e1 et e2 sont hors base dans le primal donc leurs correspondants y1 et y2
sont dans la base pour le dual.
Dualité Exercice d'application
case (variable1, variable2) = - (case correspondant1, correspondant 2).
Exemples :
case (y1 ,y3 ) = - case (e1 ,e3 )= -3/2 case (y1 ,t1 ) = - case (e1 ,x1 ) = 1/2