Vous êtes sur la page 1sur 9

Cours

Recherche opérationnelle
Pr. Abdelhamid SKOURI.

Parcours : Economie & Gestion.


Niveau : S6 [A. U. 2019/2020].

CHAPITRE 2

LA PROGRAMMATION LINEAIRE

Section 1- La PL : Caractéristiques et domaines d’application. (Déjà traitée en


amphi)

Section 2- Modélisation des problèmes à l’aide de la PL. (Déjà traitée en amphi


avec les TD)

Section 3- Résolution des problèmes de PL(Envoyé le 17 mars)

Section 4- la dualité en PL

Page 1 sur 9
SECTION 4- LA DUALITE EN PROGRAMMATION LINEAIRE

Les problèmes que nous avons traités jusque là donnent un résultat en terme
physique : des niveaux d’activités donc des programmes qui permettent d’optimiser
la fonction économique. Or, l’optimisation en termes physiques ne constitue qu’un
aspect de l’optimisation. L’autre aspect étant l’optimisation en valeur ou en termes
monétaires.

Les deux aspects étant équivalents puisque l’optimum est le même qu’il soit
approché (et exprimé) en termes physiques (problème primal) ou en termes
monétaires (programme dual).

La méthode qui permet de passer d’une approche à une autre et d’établir


l’équivalence des deux approches est celle de la dualité. Elle permet en outre
d’interpréter de manière opérationnelle les résultats obtenus.

1- PASSAGE DU PRIMAL AU DUAL : LES REGLES


 introduire de nouvelles variables non- négatives « p » (indiquant les prix) , une
variable par contrainte : c’est le prix de la ressource.
 Prendre comme vecteur des coefficients économiques du dual la transposée
du vecteur des ressources du primal.
 Prendre comme vecteur des ressources du dual la transposée du vecteur des
coefficients économiques du primal.
 transposer la matrice des coefficients techniques.
 changer le signe des contraintes techniques.
 changer le sens de l’optimisation.

Page 2 sur 9
On peut également écrire les deux programmes de la manière suivante :
DUAL

Z’min

Zmax =
c1 c2 cn

≥ ≥
 a11
PRIMAL a12 a1n ≤ b1

am1 am2 amn ≤ bm

Solution :
L’application des règles de passage du primal au dual est synthétisée dans le tableau
suivant :

Page 3 sur 9
PRIMAL DUAL

Z max = 100x1 + 300x2 Z’ min = 12p1 + 16p2

4x1 + 6x2  12 4 p 1 + 8 p 2  100

8x1 + 4x2  16 6 p 1 + 4 p 2  300

x1  0 ; x2  0 p1  0 ; p2  0

Z min = 40 x1 + 60 x2 + 50 x3 Z’ max = 400 p1+ 500 p2 + 700 p3

2x1 + x2 + 3x3 ≥ 400 2p1 + p2 + 3p3  40

x1 + 2x2 + 1,5x3 ≥ 500 p1 + 2p2 + 4p3  60

3x1 + 4x2 + 2x3 ≥ 700 3p1 + 1,5 p2 + 2p3  50

x1  0 ; x2  0 ; x3  0 p1  0 ; p2  0 ; p3  0

2- ILLUSTRATION ECONOMIQUE DU PROGRAMME DUAL

Dans le primal, nous avons cherché à déterminer, sous deux contraintes ∑aij xj bi
(facteurs de production i), les niveaux d’activité x1 et x2 de façon que le profit total
c1.x1 + c2.x2 soit maximal.
On suppose que le producteur de biens M1 et M2 ait le choix entre deux solutions ou
bien continuer à produire ces meubles ou au contraire ne plus les produire quitte à
revendre son stock de facteurs de production en quantité b 1 et b2 à un éventuel
acheteur qui accepte (après négociation) de payer les prix unitaires d’achat p 1 et p2
de ces facteurs de production.
Le raisonnement tenu par les deux parties et qui traduit leurs exigences respectives,
se présente ainsi :
– L’acheteur achète l’ensemble du stock et dépense à cet effet, b 1p1 + b2p2. Il
fixe les prix qu’il accepte de payer, p1 et p2, de telle sorte que sa dépense soit
la plus faible possible.
– Le producteur vendait les meubles avec un bénéfice unitaire c 1 et c2. La
production d’une unité de meuble demandait la quantité a iJ en facteur de
production « i ». Pour ne pas perdre son bénéfice, il va s’efforcer d’affecter
aux produits une part de la vente égale à :
a11 p1 + a21 p2
a12 p1 + a22 p2
Page 4 sur 9
Si le producteur et l’acheteur se fondent sur ces deux exigences, les prix p 1 et p2
seront déterminés par le programme dual suivant :

Ainsi par rapport à ce problème, les variables duales peuvent être interprétées
comme des prix de facteurs de production.

3- THÉORÈMES DE LA DUALITÉ
Nous allons présenter, sans démonstration, un certain nombre de théorèmes
importants mettant en évidence les relations qui lient un programme linéaire primal
à son dual.
Théorème 1-
Si un programme linéaire et son dual admettent tous deux une solution possible,
chacun d’eux a un optimum fini.
Théorème 2-
Les valeurs optimales des fonctions économiques d’un programme et de son dual
sont égales.
Les relations d’exclusion
S’il existe une solution optimale d’un programme (le primal ou le dual) :
1. A toute variable non nulle à l’optimum pour ce programme correspond une
contrainte saturée à l’optimum de l’autre (donc la variable d’écart est nulle).
2. A toute contrainte non saturée à l’optimum pour ce programme correspond
une variable nulle à l’optimum pour l’autre.

Ainsi, connaissant la solution du primal, on cherche à déterminer celle du dual :

Page 5 sur 9
Les relations d’exclusion permettent :
 le passage de la solution optimale d’un programme à la solution optimale de
l’autre ce qui facilite la résolution des programmes linéaires connaissant l’une
des solutions,
 L’interprétation économique, donc l’analyse opérationnelle des résultats
obtenus (analyse post-optimale).

EXEMPLE RESOLU-
Une usine fabrique 2 pièces P1 et P2 dans 2 ateliers A1 et A2. Les temps d'usinage
sont :
 pour P1: de 3 heures dans l'atelier A1 et de 6 heures dans l'atelier A2
 pour P2: de 4 heures dans l'atelier A1 et de 3 heures dans l'atelier A2.
Le temps de disponibilité hebdomadaire de l'atelier A1 est de 160 heures et celui de
l'atelier A2 de 180 heures. La marge bénéficiaire est de 1200 u.m. pour une pièce P 1 et
1000 u.m. pour une pièce P2
1. Formuler ce problème en termes de programmation linéaire,
2. Déterminer, en utilisant l’algorithme du simplexe, le programme de fabrication
optimal,
3. Indiquer, pour ce programme de fabrication, l’atelier pour lequel il y aura plein
emploi
4. Ecrire le dual et le résoudre en utilisant les relations d’exclusion. Interpréter la
solution.

Solution -
1. Formulation du problème
- Nature du problème : Gestion de production (technique)
- Sens d’optimisation : Maximiser la marge bénéficiaire totale
- Variables d’action : 2 activités de production : production du produit P1 et P2.
Soit x1 niveau d’activité 1 et x2 niveau d’activité 2
Activités production du produit production du produit
P1 P2
Niveaux d’activité x1 x2
- Coefficients économiques : les marges bénéficiaires unitaires pour les 2
activités, soit respectivement c1 = 1200 et c2 = 1000
- Les ressources ou facteurs limitants du calcul économique du responsable de
l’usine. Il s’agit ici du temps disponible hebdomadaire des 2 ateliers, soit b 1 =
160 h. et b2 = 180 h.

Les coefficients techniques représentent le degré de consommation des ressources


par les activités, soit :

Page 6 sur 9
Produit Produit 2 Disponibilités
1
Atelier 1 3 4 160
Atelier 2 6 3 180
Le modèle de PL associé au problème s’écrit alors (forme algébrique classique) :
Max Z = 1200 x1 + 1000 x2
3x1 + 4 x2 ≤160
6 x1+ 3 x2 ≤ 180
Xi ≥ 0 (i = 1, 2)
2. Détermination du programme optimal (Méthode du simplexe)
Ecriture de la forme standard :
Soit les variables d’écart e1 et e2, non négatives
Max Z = 1200 x1 + 1000 x2+ 0 e1 + 0e2
3x1 + 4 x2+ e1 = 160
6 x1+ 3 x2+ e2 = 180
Xi ≥ 0 (i = 1, 2) ;ei≥ 0 (i = 1, 2)

Première itération : La solution de base de départ est composée de la base naturelle


x1 x2 e1 e2
1200 1000 0 0
e1 0 3 4 1 0 160 160 / 3 =
53,33
e2 0 6 3 0 1 180 180 / 6 = 30
0 0 0 0 Z = 0.160 + 0.180 = 0
1200 1000 0 0

Variables de base:
- e1= 160
- e2= non
Solution 180 optimale puisque les critères de sélection de Dantzig c 1 – z1 = 1200 et c2-

z2 = 1000 sont positifs ce qui indique des possibilités d’amélioration de la solution par
introduction dans la base de variables hors base x1 ou x2.

Changement de base :
- Variable entrante : x1variable ayant le critère de sélection de Dantzig le plus
positif
- Variable sortante : e2variable ayant le plus petit quotient positif.
- A l’intersection de la colonne de la variable entrante et de la ligne de la
variable sortante, on a le pivot de la transformation : 6

Page 7 sur 9
Transformations :
- On divise la ligne du pivot par le pivot,
- On remplace la colonne du pivot par le vecteur unitaire,
- On applique, partout ailleurs, la règle du rectangle.
Deuxième iteration:
x1 x2 e1 e2
1200 1000 0 0
e1 0 0 5/2 1 -1/2 70 140 / 5 = 28
x1 1200 1 1/2 0 1/6 30 30 / 0,5 = 60
1200 600 0 200 Z2 = 0.70 +1200.30 =
0 400 0 -200 36000
Solution améliorée par rapport à la première itération, mais est- elle optimale ?
Réponse : non puisque c2-z2 = 400 ≥ 0 indique une possibilité d’amélioration de la
solution par introduction dans la base de variables hors base x2.
Changement de base :
- Variable entrante : x2 variable ayant le critère de sélection de Dantzig le plus
positif : 400
- Variable sortante : e1 variable ayant le plus petit quotient positif : 28.
- Pivot de la transformation : 5/2.
Troisième iteration:
x1 x2 e1 e2
1200 1000 0 0
x2 1000 0 1 2/5 -1/5 28
x1 1200 1 0 -1/5 4/15 16
1200 1000 160 120 Z3 = 1000.28 +1200.16 =
0 0 -160 -120 47200

- Solution améliorée par rapport à la première itération, mais est- elle


optimale ?
- Solution améliorée par rapport à la première itération, mais est- elle
optimale ?

Solution améliorée par rapport à la deuxième itération et optimale puisque tous les
critères de sélection de Dantzig sont négatifs ou nuls. Donc le programme optimal
de production de l’usine est :
- x1= 16 unités P1.
- x2= 28 unités P2.

Page 8 sur 9
3. Utilisation des ressources (heures de travail) des ateliers :
On substitue dans les contraintes techniques, ce qui donne :

- Contrainte A1 : 3.16 + 4.28 = 160, contrainte saturée indiquant une pleine


utilisation des disponibilités
- Contrainte A2 : 6.16 + 3.28 = 180, contrainte saturée indiquant une pleine
utilisation des disponibilités.

4. Ecriture du programme Dual:

PRIMAL DUAL

Max Z = 1200 x1 + 1000 x2 Min Z = 160 p1 + 180 p2


3x1 + 4x2 = 160 3p1 + 6p2 = 1200
6x1+ 3x2 = 180 4p1+ 3 p2 = 1000
xi≥ 0 (i = 1, 2) pi≥ 0 (i = 1, 2)

Résolution du Dual : les relations d’exclusion

SOLUTION DU PRIMAL DUAL

 x1 = 16  u1 = 0 =>3p1 + 6p2 = 1200


 x2 = 28  u2 = 0 =>4p1+ 3p2 = 1000
 e1 = 0  P 1> 0
 e2 = 0  P 2> 0

La résolution du système donne :


- p1 = 160, prix d’une heure de travail dans l’atelier A1
- p2 = 120, prix d’une heure de travail dans l’atelier A2
- Z’ = 160.160 + 180.120 = 47 200 = Z (Théorème 1 de la dualité).

Page 9 sur 9