Vous êtes sur la page 1sur 86

La méthode du

simplexe
METHODE ALGEBRIQUE

METHODE ITERATIVE
MÉTHODE du SIMPLEXE
• INTRODUCTION
• Développée initialement par George Dantzig
en 1947

• Seule méthode exacte pour résoudre des


problèmes linéaires de grande taille.

• Méthode itérative algébrique où l’on circule


séquentiellement sur les sommets à l’intérieur
de la zone de solution jusqu’à l’obtention de la
solution optimale.
La méthode du simplexe est une procédure itérative permettant
d'effectuer une exploration dirigée de l'ensemble des solutions
réalisables de base.

L'application de la méthode nécessite la connaissance d'une solution


réalisable de base.

La méthode consiste à calculer à chaque itération un programme


(une solution réalisable) «voisin» de celui qui vient d'être calculé et
«au moins aussi bon» que celui-ci.

Cet algorithme permet de déterminer la solution optimale, si


elle existe, d’un problème de programmation linéaire à n
variables.
MISE en FORME MATHÉMATIQUE
• Définir les variables de décision
• ensemble des variables qui régissent la situation à modéliser
• variables réelles, entières, …
• Préciser la fonction objective
• fonction mathématique composée des variables de décision qui représente
le modèle physique modélisé
• fonction linéaire, non-linéaire

• Préciser les contraintes du problème


• ensemble des paramètres qui limitent le modèle réalisable
• équations ou inéquations composées des variables de décision

• Préciser les paramètres du modèle


• constantes associées aux contraintes et à la fonction objective
FORMULATION MATHÉMATIQUE
• FONCTION OBJECTIF
• Maximiser ou minimiser
• z = c1x1 + c2x2 + c3x3 + … + + cnxn

• Contraintes
• a11x1 + a12x2 + a13x3 + … + a1nxn (, =, ) b1
• a21x1 + a22x2 + a23x3 + … + a2nxn (, =, ) b2
• am1x1 + am2x2 + am3x3 + … + amnxn (, =, ) bm

• Contraintes de non-négativité
• xj  0 ; j = 1, 2, 3, … n
• avec
• Xj variables de décision (inconnues)
• aij, bi, cj paramètres du programme linéaire
TERMINOLOGIE de la SOLUTION
• Solution réalisable
• Solution où toutes les contraintes du modèle sont
satisfaites

• Zone de solution
• Ensemble de toutes les solutions réalisables

• Solution optimale
• Solution réalisable où la fonction objective atteint
la meilleure valeur, maximum ou minimum
• Plusieurs solutions optimales possibles
MÉTHODE du SIMPLEXE : DÉFINITIONS
• Systèmes d’équations équivalents
• Systèmes qui possèdent le même ensemble de solutions
• Variable de base
• Variable qui a un coefficient unitaire positif dans une des équations du
système et un coefficient nul partout ailleurs
• Opérations pivot
• Opération de Gauss-Jordan pour transformer un système d’équations
équivalent dans lequel une variable devient de base.
• Système canonique
• Système d’équations où il y a une variable de base par équation
• Solution de base
• Système d’équations où les variables hors base sont fixées à zéro résolu
pour les variables de base
TABLEAU
INITIAL

SOLUTION OPTIMAL OUI STOP

NON

PIVOTAGE
CHOIX DE LA VARIABLE ENTRANTE

CHOIX DE LA VARIABLE SORTANTE


VARIABLES D’ECART ET
D’EXCEDENT

Avant que l’algorithme du simplexe puisse être utilisé pour


résoudre un programme linéaire, ce programme linéaire doit
être converti en un programme équivalent où
toutes les contraintes technologiques sont des équations et
toutes les variables sont non négatives.
Cas d’une contrainte de type  ou 

• Au départ on a la contrainte :
• a1x1 + a2x2 + …. + anxn  b

• On retranche une variable d’écart e positive, la contrainte


devient :
• a1x1 + a2x2 + …. + anxn - e = b

• Les nouvelles variables sont : x1, x2, … , xn, e


Cas d’une contrainte de type  ou 

• Au départ on a la contrainte :
• A1 x1 + a2 x2 + …. + an xn  b
• On ajoute une variable d’écart e positive, la contrainte
devient :
• A1 x1 + a2 x2 + …. + an xn + e = b

• Les nouvelles variables sont : x1, x2, … , xn, e


VARIABLES D’ECART ET
D’EXCEDENT
Les étapes de la méthode
SIMPLEXE

• Première étape :
La formulation mathématique du problème

• Deuxième étape :
Mise sous forme standard du problème

• Troisième étape :
Application de l’agorithme du simplexe
Les étapes de la méthode
SIMPLEXE

•Deuxieme étape:
FORME STANDARD DU PL

REECRIRE LES INEGALITES ( OU  ) SOUS LA FORME


D’ EGALITES EN AUJOUTANT LES VARIABLES
D’ECARTS ei POUR CHAQUE CONTRAINTE.

.
Les étapes de la méthode
SIMPLEXE
• PROBLÈME de MAXIMISATION
n
Max åcx j j
j=1
n
sujet à åa x ij j + ei =bi i =1, ...,m
j=1

x j ³ 0, ei ³ 0 j =1,...,n
Exemple 1 :
• Forme canonique du programme linéaire :
2x+y ≤ 800
x+2y ≤ 700
y ≤ 300
x 0, y 0

Fonction économique à maximiser :


Z = 30000x + 40000y
Forme standard
• Le problème est mis sous forme standard en ajoutant trois
variables d’écart positives, e1, e2, e3.

2x+y+e1 = 800

x+2y+e2 = 700

y+e3 = 300
x  0, y  0, e1  0, e2  0, e3  0

Max(30000x+40000y)
Tableau du simplexe
V.
H. Ratio
B  2èm
x y e1 e2 e3
membre

V.B
e1 2 1 1 0 0 800

e2 1 2 0 1 0 700

e3 0 1 0 0 1 300

Z 30000 40000 0 0 0 0
Variables de base et hors-base
• On distinguera les variables dites «de base » et les variables
dites «  hors base ». Les variables hors base ont toujours une
valeur nulle, les variables en base sont celles pour lesquelles
ne figurent qu’un seul 1 sur leur colonne, les autres
coefficients sont nuls sur la colonne.

• Au départ Base={ e1, e2, e3}


• HorsBas e={ x,y}

• Les coefficients de la fonction économique sont appelés taux


marginaux de substitution (ou TMS). Ici 30000 et 40000.
Constitution du tableau
• Quand le problème est mis sous forme standard, on
peut appliquer l’algorithme du simplexe. Les
différentes équations linéaires sont placées dans un
tableau. Chaque équation est une ligne du tableau, la
dernière ligne est réservée pour la fonction
économique.

• Les colonnes correspondent aux variables du


problème. A droite du tableau l’avant dernière colonne
contient les seconds membres des équations. La
dernière colonne contient ce que l’on appelle les ratios
qui seront expliqués plus loin.
Tableau du simplexe
V.
H. Ratio
B  2èm
x y e1 e2 e3
membre

V.B
e1 2 1 1 0 0 800

e2 1 2 0 1 0 700

e3 0 1 0 0 1 300

Z 30000 40000 0 0 0 0
Application de l’algorithme du simplexe

• Les calculs qui sont effectués sont des calculs de


combinaisons linéaires sur les lignes du tableau.
• On suppose comme cela est signalé dans la remarque
ci-dessus que toutes les variables d’écart ont un
coefficient 1.
• On recherche un maximum de la fonction économique.
Principe de l’algorithme
• A chaque étape de l’algorithme, on choisit une
variable hors base que l’on appelle variable
entrante et une variable en base que l’on appelle
variable sortante afin d’améliorer la solution
précédente.

• Puis on transforme le tableau pour le remettre


sous sa forme standard.
En effet, les colonnes des variables en base ne
doivent avoir qu ‘un seul 1 et des 0 ailleurs.

• Cette transformation se fait par combinaison


linéaire des lignes.
Choix de la variable entrante
• On choisit celle dont le TMS est
strictement positif et le plus grand
possible.

• Si tous les TMS sont négatifs ou nuls,


l’optimum est atteint. L’algorithme s’arrête.
• La solution est optimale.
Choix de la variable sortante
• Après avoir choisi la variable entrante, on calcule pour
chaque ligne représentant une contrainte, le ratio qui
est le rapport entre le coefficient du deuxième membre
de la contrainte et le coefficient sur la colonne de la
variable entrante.

• Ce ratio peut être infini si le coefficient est nul.

• La variable sortante est celle dont le ratio est le plus


petit strictement positif.
Transformation du tableau
• Après choix de la variable entrante et de la variable
sortante, on transforme le tableau.

• L’intersection de la colonne de la variable entrante et de la


ligne de la variable sortante s’appelle le pivot.

• Il faut transformer le tableau par combinaisons linéaires sur


les lignes pour faire apparaître un 1 sur le pivot et des 0
ailleurs sur la colonne de la nouvelle variable en base.
Fin de l’algorithme
• L’optimum est atteint lorsque tous les TMS sont
négatifs. Les variables hors base sont nulles. Les
valeurs des variables en base se lisent directement sur
le tableau puisque leur coefficient est 1 et que les
autres variables qui ont un coefficient non nuls sur la
même ligne sont hors base.

• La valeur de l’optimum est l’opposé de la valeur qui


figure sur la ligne de la fonction économique à l’avant
dernière colonne. On vérifiera cette valeur en
remplaçant les valeurs des variables dans la fonction
économique.
Méthode appliquée à l’exemple
V.
H. Ratio
B  2ème
x y e1 e2 e3
membre
V.B

e1 2 1 1 0 0 800
e2 1 2 0 1 0 700
e3 0 1 0 0 1 300

Z 30000 40000 0 0 0 0
Méthode appliquée à l’exemple

A ce stade les variables en base sont e1, e2 et e3.


On remarque que pour chaque variable en base on a
un seul 1 sur la colonne et que les autres coefficients
sont nuls.

Base={e1, e2, e3}

Les variables hors base sont x et y.

HorsBase={x, y}
Remarques sur le tableau initial
• On admettra qu’à chaque étape, les variables hors
base sont nulles. Les variables en base se calculent
dans le tableau en tenant compte du fait que les
variables hors base sont nulles.
• Avec ce tableau initial, on a une solution intermédiaire
(au départ) :

• x=0 et y=0 (car ces variables sont hors base)

• e1=800, e2=700, e3=300. En effet, chaque ligne du


tableau correspond à une égalité.
Remarques sur le tableau initial
• La valeur de Z est l’opposé de la case 2ème
membre de la ligne de Z. On peut la recalculer, par
vérification, avec la formule Z=40000x+30000y.
Initialement on a donc :

• Z=0 (puisque x et y sont nuls)

• On n’est pas à l’optimum car les TMS (Taux Marginaux


de Substitution : coefficients de Z) ne sont pas tous
négatifs ou nuls.
Variable entrante

 2ème Ratio
Base x y e1 e2 e3
membre

e1 2 1 1 0 0 800

e2 1 2 0 1 0 700

e3 0 1 0 0 1 300

Z 30000 40000 0 0 0 0

Variable entrante = Celle qui correspond au plus grand TMS


strictement positif (taux marginal de substitution) coefficient >0 de la
fonction objectif. Ici y est la variable entrante.
Calcul des ratios

 2ème Ratio
Base x y e1 e2 e3
membre

e1 2 1 1 0 0 800 800/1

e2 1 2 0 1 0 700 700/2

e3 0 1 0 0 1 300 300/1

Z 30000 40000 0 0 0 0

On calcule les ratios en divisant pour chaque variable de la base


(pour chaque ligne), le coefficient du second membre par le
coefficient de la colonne de la variable entrante.
Variable sortante

 2ème
Base x y e1 e2 e3 Ratio
membre

e1 2 1 1 0 0 800 800/1

e2 1 2 0 1 0 700 700/2

e3 0 1 0 0 1 300 300/1

Z 30000 40000 0 0 0 0

Variable sortante = Celle correspondant au plus petit ratio


strictement positif (coefficient du 2ème membre/coefficient
colonne de la variable entrante).
Ici e3 est la variable sortante.
Transformation du tableau
• Pivot = intersection variable entrante et sortante

• Dans la colonne du pivot : Il faut mettre un 1 à la


place du pivot et un 0 ailleurs. En effet, il s’agit de la
nouvelle variable en base.
Faire apparaître un 1 sur le pivot
• Si le pivot n’est pas égal à 1, il faut diviser toute la ligne
par le pivot.
• Ici le pivot est déjà à 1.

• Si le pivot n’est pas égal à 1, il faut diviser toute la ligne


par le pivot.
• Ici le pivot est déjà à 1
Faire apparaître des 0 sur le reste de la
colonne de la nouvelle variable en base

• Il faut retrancher à
 2ème Ratio
Base x y e1 e2 e3
chaque ligne un certain membre

nombre de fois la ligne e1 2 1 1 0 0 800 800/1

du pivot pour faire e2 1 2 0 1 0 700 700/2

apparaître un 0. e3 0 1 0 0 1 300 300/1

Z 30000 40000 0 0 0 0

Ici le pivot est déjà à 1

pivot Pour la ligne de e1, il faut


lui retrancher la ligne du
pivot. On remplace la ligne
L1 par L1-1* L3
Autres transformations

• Pour la ligne de e2, il faut lui retrancher deux fois la ligne


du pivot..

• On remplace L2 par L2 - 2 L3

• L3 FIXE
• Pour la ligne de Z, il faut lui retrancher 40000 fois la ligne
du pivot..
• On remplace L4 par L4 – 40000 L3
Tableau 2
 Variable
s x y e1 e2 e3  2ème membre Ratio
en base

e1 2 0 1 0 -1 500

e2 1 0 0 1 -2 100

y 0 1 0 0 1 300

3000
Z 0 0 0 -40000  -12000000
0

L’optimum n’est pas atteint (1 TMS est >0)


Variable entrante, ratios et variable
sortante du tableau 2
 Variables Ratio
x y e1 e2 e3  2ème membre
en base

e1 2 0 1 0 -1 500 500/2=25
0

e2 1 0 0 1 -2 100 100/1=10
0

y 0 1 0 0 1 300
300/0= 

Z 30000 0 0 0 -40000  -12000000

Variable entrante x et sortante e2


Transformations sur le tableau 2
• Le pivot est déjà à 1.

• L2 FIXE

• Il faut remplacer L1 par L1 - 2*L2

• L3 ne doit pas être changée (il y a déjà un 0)

• L4 doit être remplacée par L4 – 30000*L2


Tableau 3
 Variables Ratio
x y e1 e2 e3  2ème membre
en base

e1 0 0 1 -2 3 300

x 1 0 0 1 -2 100

y 0 1 0 0 1 300

Z 0 0 0 -30000 20000  -15000000

L’optimum n’est pas atteint (1 TMS est >0)


Variable entrante, ratios et variable
sortante du tableau 3
 Variables Ratio
x y e1 e2 e3  2ème membre
en base

e1 0 0 1 -2 3 300 =300/3=100

x 1 0 0 1 -2 100 =-100/2=-50

y 0 1 0 0 1 300 =300/1=300

Z 0 0 0 -30000 20000  -15000000

Variable entrante e3 et sortante e1


Etape 1:
Division du pivot par 3

 Variables Ratio
x y e1 e2 e3  2ème membre
en base

e1 0 0 1/3 -2/3 1 300/3=100

x 1 0 0 1 -2 100

y 0 1 0 0 1 300

Z 0 0 0 -30000 20000  -15000000


Etape 2:
Apparition des 0 sur le reste
de la colonne
 Variables Ratio
x y e1 e2 e3  2ème membre
en base

e1 0 0 1/3 -2/3 1 300/3=100

x 1 0 0 1 -2 100

y 0 1 0 0 1 300

Z 0 0 0 -30000 20000  -15000000

Il faut remplacer L2 par L2 + 2*L1, L3 par L3-L1 et L4 par L4 -20000*L1


Tableau 4
 Variables Ratio
x y e1 e2 e3  2ème membre
en base

e1 0 0 1/3 -2/3 1 100

x 1 0 2/3 -1/3 0 300

y 0 1 -1/3 2/3 0 200

Z 0 -20000/3 0 -50000/3 0  -17000000

L’optimum est atteint (Tous les TMS sont négatifs)


Résultats
• Optimum : 17 000 000

• X=300
• Y=200

• Vérification :

• Z=30000X + 40000Y=30000*300 + 40000*200=17 000 000


Remarque : Transformation des variables
• Si le type d’optimisation est une recherche de minimum
pour la fonction économique Z, on procède à un
changement de fonction économique en considérant –Z
(qui est toujours une fonction linéaire des variables).

• On a la propriété min(Z) = - Max(-Z).


REMARQUES :

1)Un problème de programmation linéaire est dit sous forme


standard s’il vérifie les conditions suivantes :
Les variables du problème doivent toutes être positives.
Le type d’optimisation doit être une recherche de
maximum.
Les contraintes sont des contraintes d’égalité.

2) Si une variable x est négative, on pose y = -x. La


nouvelle variable y est positive et les contraintes et la
fonction économique restent bien linéaires après avoir
remplacé l’ancienne variable x par –y.
Methode Simplexe en cas de variables artificielles “
Big M method ”
• La M- technique de la méthode du simplexe ( appelée aussi
technique de Penalité ) consiste à :

• 1- Transformer le Programme initial en Programme standard,


• 2- Ajouter une nouvelle variable à chaque contrainte lui
manquant unr variable de base, appelée Variable
ARTIFICIELLE,
• 3- Ajouter a la F.O , chacune des variables artifcielles ainsi
crées, multipliée par – M (Maximisation), ou + M
(Minimisation ) ( M est un nombre tres grand appelé penalité)
• 4- Supprimer les variables de base de la F.O, puis appliquer
l’algorithme du Simplexe.
Methode Simplexe en cas de variables artificielles “
Big M method ”
• Example: if the objective function is :
• Min Z = X1+2X2, then the obj. function should be
• Min Z = X1 + X2+ MA1 + MA2+ …+ MAn
OR
Z – X1 - X2- MA1 - MA2- …- MAn = 0

Example: if the objective function is


Max Z = X1+2X2, then the obj. function should be
Max Z = X1 + X2- MA1 - MA2- …- MAn
OR
Z - X1 - X2+ MA1 + MA2+ …+ MAn = 0
Methode Simplexe en cas de variables artificielles “
Big M method ”
• Solve the following linear programming problem by using the simplex method:
• Min Z =2 X1 + 3 X2
S.t.
½ X1 + ¼ X 2 ≤ 4

X1 + 3X2  20

X1 + X2 = 10

X1 , X 2  0
Methode Simplexe en cas de variables artificielles “
Big M method ”
Solution
Step 1: standard form

Min (Z) = 2 X1 – 3 X2 + M A1 +M A2 ‘

½ X1 + ¼ X 2 + S 1 =4
- X1 - 3X2 + S2 + 20 = A1
X1 + 3X2 - S 2 + A1 = 20

X1 + X 2 + A2 = 10 - X1 - X2 +10 = A2

X1, X2 , S1, S2 ( Ecart ) , A1, A2 ( Artificial.)  0


Nous remplacons A1, A2 par leurs valeurs ainsi trouvées dans la F.O
M, un nombre très grand nombre, est utilisé pour garantir que les valeurs de A1 et
A2,…, et An seront égales à zéro dans le tableau final (optimal)
• Step 2: Initial tableau

Basic X1 X2 S1 S2 A1 A2 2nd RAT


variable mem IO
2 3 0 0 M M
s bre

S1 ½ ¼ 1 0 0 0 4
16
A1 1 3 0 -1 1 0 20
20/3
A2 1 1 0 0 0 1 10
10/1
Z 2- 3- 0 M 0 0 - -
2M 4 30M 30M
M
3- 4M valeur minimale donc X2 entrante, A1 sortant , pivot = 3
• First iteration

Basic X1 X2 S1 S2 A1 A2 RATIO
variables
2 3 0 0 M M

S1 5/12 0 1 1/12 -1/12 0 7/3*12/5=


5.6
X2 1/3 1 0 -1/3 1/3 0 20/3=
6,66
A2 2/3 0 0 1/3 -1/3 1 10/3=
5
Z - 0 0 -1/3M+1 -1 +4/3M 0 -20 -
2/3M+1 10/3M

-2/3M+1 pp valeur , pivot= 2/3, X1entrante, A2 sortante


• 2ND iteration

Basic X1 X2 S1 S2 A1 A2 RATIO
variables
S1 0 0 1 -1/8 1/8 -5/8 1/4

X2 0 1 0 -1/2 1/2 -1/2 15/3=5

X1 1 0 0 1/2 -1/2 3/2 5

Z 0 0 0 +1/2 -½+M - -25


3/2+
M
LA SOLUTION EST OPTIMALE,CAR IL N’Y A PAS DE VALEUR POSITIVE
DANS LA DERNIERE LIGNE,
X1 = 5, X2 = 5, S1 = ¼
A1 = A2 = 0 and Z = 25
REMARQUES:
1. Dans le tableau final, si une ou plusieurs variables
artificielles (A1, A2,…) restent basiques et ont une valeur
non nulle, alors le problème a une solution infaisable.

2. Toutes les autres VARIABLES sont toujours valables


dans la méthode BIG M.
3- Lors de la détermination de la variable sortante d'un
tableau,s'il n'y a pas de rapport positif
toutes les entrées de la colonne pivot sont négatives et zéros),
la solution est alors non liée (the solution is unbounded ) .
Example

Maximize
P = 2x1 + x2
subject to
x1 + x2 < 10
–x1 + x2 > 2
x 1, x 2 > 0
To form an equation out of the first inequality, we introduce
a slack variable s1, as before, and write
x1 + x2 + s1 = 10.
59

Example
• Solve using simplex method

=6 1 +3 2
® max
- 2 1 +3 2
£9
- 1
+3 2
£12
1
, 2
³0
18/03/2009 Linear Programming 60

Maximization with Mixed Constraints


• Consider the following problem:
=2 1
+ 2
® max
1
+ 2
£10
- 1
+ 2
³2
1
, 2
³0
We introduce a slack variable s1

x1  x2  s1  10
61

Example
• We introduce a second variable s2 and substract it from the
left side of second equation. So we can write

 x1  x2  s2  2
• The variable is called surplus variable, because it is amount
2
(surplus) by which the left side of inequality exceeds the right
side
62

Example
• In order to use simplex method with mixed constraints we will use variable
called an artificial variable. An artificial variable is a variable introduced into
each equation that has a surplus variable. Returning to the problem at hand
we introduce an artificial variable into the equation involving
the surplus
a1
s2

 x1  x2  s2  a1  2


63

Example
• To prevent an artificial from becoming part of an optimal
solution to the original problem, a very large “penalty” is
introduced into the objective function. This penalty is created
by choosing a positive constant M so large that the artificial
variable is forced to be 0 in any final optimal solution of the
original problem. We then add the term  Ma1 to the objective
function:

=2 1 + 2
- 1
64

Example: Modified problem


• We now have a new problem, we call the modified problem:

=2 1 + 2
- 1
® max
1
+ 2
+ 1
=10
- 1
+ 2
- 2
+ 1
=2
1
, 2 , 1, 2 , 1
³0
65

Example
X1 X2 S1 S2 a1 2nd M ratio

s1 1 1 1 0 0 10 10/1=10

a1 -1 1 0 -1 1 2 2/1=2

Z 2-M 1+M 0 -M 0 2M

X2 ENTRANTE ,a1 sortante


X1 X2 S1 S2 a1 2nd M ratio

s1 1 1 1 0 0 10 10/1=10

a1 -1 1 0 -1 1 2 2/1=2

Z 2-M 1+M 0 -M 0 2M
X1 X2 S1 S2 a1 2nd M ratio

s1 2 0 1 1 -1 8 8/2=4

x2 -1 1 0 -1 1 2 -2

Z 3 0 0 1 -1-M -2

X1 Pivot= 2
entrante
,s1
sortante

X1 X2 S1 S2 a1 2nd M ratio

x1 2/2=1 0 1/2 1/2 -1/2 8/2=4

x2 0 1 1/2 -1/2 1/2 2

Z 0 0 -3/2 -1/2 ½ -M -2 –
3*4= -14
X1= 4 X2= 2 Z= 14
68

Example (Solution)
• Write the initial system using the slack variables

1
, 2

- 2 x 1 +3x 2 + s 1 =9
- x 1 +3x 2 + s 2 =12
- 6 x 1 - 3x 2 =Z
69

Example
• Find the modified problem for the following linear
programming problem.

Z =2 x 1 +5x 2 + 3x 3 ® max
x 1 + 2 x 2 - x 3 £7
- x 1 + x 2 - 2x 3 £ - 5
x 1 + 4 x 2 +3x 3 ³ 1
2 x 1 - x 2 + 4 x 3 =6
x 1, x 2 , x 3 ³ 0
70

Example

=2 1 +5 2
+3 3 - 1
- 2
- 3
® max
1
+2 2
- 3
+ 1
=7
1
- 2
+2 3
- 2
+ 1
=5
1
+4 2
+3 3 - 3
+ 2
=1
2 1- 2
+4 3
+ 3
=6
1
, 2 , 3 , 1, 2 , 3 , 1, 2 , 3
³0
71

Thank You
Dualité
en
programmation linéaire
Programmes linéaires duals:

À tout programme linéaire (appelé primal), lui correspond un autre


programme linéaire (appelé dual ), intimement lié, impliquant les
mêmes données et dont il y un lien étroit entre les solutions
optimales.

L’exemple suivant illustre bien cette propriété :


Dualité

• À tout problème de PL on peut associer


un autre problème PL, son dual le primal

• Le problème dual permet de donner


une autre interprétation économique au
problème primal
Dualité
Exemple :

régime alimentaire :
• 6 produits alimentaires comme sources
de vitamines A et C
• but : minimiser le coût du régime tout en
satisfaisant la valeur nutritionnelle
minimale de chaque vitamine
Dualité
Exemple :

Valeurs nutritionnelles & coût par produit


Produits demande
1 2 3 4 5 6 (unité)
vitamine
1 0 2 2 1 2 9
A
vitamine
0 1 3 1 3 2 19
C
prix par 35
kg 30 60 50 27 22
79

Problème du consommateur Problème du producteur


Min ctx Max bt

(P) Sujet à Ax  b (D) Sujet à At  c


x0   0.

(D) est le dual de (P) et vice versa.

Nous verrons aussi qu’à l’optimum,

les 2 problèmes ont la même valeur de l’objectif.

De plus, en résolvant l’un, on résout automatiquement l’autre.


Ces programmes sont ainsi caractérisés par : -

la fonction économique d’un des deux problèmes est maximisée et celle de


l’autre est minimisée. -

Dans le problème de maximisation on a des contraintes de type ‘’



’’ et dans le problème de minimisation on a des contraintes de type ‘’

’’. -

La matrice des coefficients de l’un des problèmes est la matrice transposée


de l’autre. -

Le coté droit des contraintes de l’un des problèmes est la fonction


économique de l’autre. -

À chaque contrainte du primal correspond une variable du dual et vice


versa. Pour mieux comprendre la dualité, nous présentons deux types de
problèmes pouvant être rencontrés
min c T x max bT y
Sujet à Ax  b Sujet à AT y  c
x0 y0

min z  8 x  6 y
Sujet à 5 x  3 y  30
2 x  3 y  24
x  3 y  18
x, y  0
min z  8 x  6 y
max  30v1  24v2  18v3
Sujet à  5 x  3 y  30 v1 
Sujet à  5v1  2v2  v3  8  x 
 2 x  3 y  24 v2   
   3v1  3v2  3v3  6  y 
 x  3 y  18 v3 
v1 , v2 , v3  0
x, y  0

 5  3   30 
 2  3   x    24   v1 
   y    5  2  1    8 
 1  3    18   3  3  3   v2    6 
    
 v3 
Problème primal et problème dual

Problème de programmation linéaire avec inégalités


Problème primal Problème dual

min c xT max bT y
Sujet à Ax  b y Sujet à AT y  c x
x0 y0

Problème de programmation linéaire sous forme standard


Problème primal Problème dual

min c T x max bT y
Sujet à Ax  b y Sujet à AT y  c x
x0
min z  8 x  6 y
Sujet à 5 x  3 y  30
2 x  3 y  24
x  3 y  18
x, y  0
min c T x max bT y
Sujet à Ax  b Sujet à AT y  c
x0
min z  8 x  6 y max 30 w1  24 w2  18w3
Sujet à 5x  3 y  u  30  w1  Sujet à 5w1 + 2w2 + x 
w3  8
w   
2x  3y  p  24  2  3w1  3w2  3w3  6  y 
x  3y  h  18  w3  w1  0 u 
 
x, y , u , p , h  0 w2  0  p
w  0  h 
x  5 2 1 
 
8 3
  3 3  w1   6 
5 3 1 0 0   y  30   3
 2 3 0 1 0  u    24 
    
1 0 0   w2    0 
   
1 3 0 0 1   p  18  0 1 0   w3   0 
 h  0 0 1  0 
min z  4 x  6 y
Sujet à 6 x  3 y  10
2 x  2 y  20
x y 6
x, y  0

min z  4 x  6 y
max 10u1  20u2  6u3
Sujet à 6 x  3 y  10 u1 
Sujet à 6u1  2u2  u3  4  x 
2 x  2 y  20 u2   
  3u1  2u2  u3  6  y 
 x  y  6 u3 
u1  0, u3  0
x, y  0

 6 3 10 
 2  x    u1 
 2      20  6 2  1    4 
y
 1  1     6  3 2  1 u2    6 
    
u3 
Théorèmes de dualité

• Corollaire Si x *   x : Ax  b, x  0 et  
y*  y : AT y  c , et si
b T y *  c T x* ,alors x* et y* sont des solutions optimales respectivement
pour le problème primal et pour le problème dual.

Preuve Du théorème de dualité faible, il découle que pour toute solution


réalisable x du problème primal

c T x  bT y* et par hypothèse b T y*  c T x* . Donc c T x  bT y*  c T x* .

Par conséquent x* est solution optimale du problème primal.


Une preuve similaire est utilisée pour démontrer que y* est solution
optimale du problème dual.
Théorèmes de dualité

• Théorème de dualité forte Si un des deux problèmes primal ou dual


possède une solution optimale avec valeur finie, alors la même chose est
vraie pour l’autre problème, et les valeurs optimales des deux problèmes sont
égales. Si un des deux problèmes n’est pas borné, alors le domaine réalisable
de l’autre problème est vide.

Preuve La seconde partie de l’énoncé découle directement du théorème de


dualité faible. En effet, supposons que le problème primal n’est pas bornée
inférieurement; ainsi cTx→ – ∞. Or si le problème dual était réalisable, alors
il existerait un 
y  y : AT et 
y par
c le théorème de dualité faible, nous
aurions que bT y  c T xbTy serait une borne inférieure sur la valeur de
;i.e.,
la fonction économique du primal cTx, une contradiction.

Vous aimerez peut-être aussi