Vous êtes sur la page 1sur 24

Académie Internationale Mohammed VI 2ème année Génie Informatique

de l’Aviation Civile 2016/2017

Techniques Avancées d’Optimisation

Introduction

Un problème d’optimisation ou de programmation mathématique est défini comme étant


un problème de maximisation ou de minimisation d’une fonction sous ou sans contraintes
(limites). Les contraintes peuvent être sous forme d’équation ou d’inégalités.

Beaucoup de problèmes réels rentrent dans ce cadre :

- une entreprise ou une usine produisant des produits x1, x2, …, xn est amenée à décider
la quantité optimale de chaque produit, vu les contraintes (limites) de machines
disponibles, matières premières, etc.
- une personne suivant un régime alimentaire, doit décider les quantités à consommer
(de chaque type de nourriture) minimisant le coût et respectant les doses nécessaires à
une bonne santé.
- une entreprise de distribution cherche le chemin le plus court de ses moyens de
transport garantissant la livraison à tous les points de ventes
- etc.

Donc c’est un outil d’aide à la décision, c’est-à-dire permettant à une personne de prendre la
meilleure décision possible dite décision / solution optimale.
Techniques Avancées d’Optimisation 2016 / 2017

Table de matières

Introduction …………………………………………………………………………………...1
Chapitre 1 : Programmation Linéaire …………………………………………………………3
1- Modélisation d’un problème de décision ……………………………………………..3
2- Résolution par la méthode graphique …………………………………………………6
3- Résolution par la méthode du simplexe ……………………………………………….7
4- TP : Application sur Excel Solveur …………………………………………………..15
5- Dualité et variables artificielles ………………………………………………………20
Chapitre 2 : Problèmes d’optimisation A valeurs entières …………………………………...25
Méthode Branch & Bound …………………………………………………………………...26
Chapitre 3 : Programmation non Linéaire ……………………………………………………..
1- Conditions d’optimalité ………………………………………………………………..
2- Optimisation sans contraintes ………………………………………………………….
- Algorithmes de descente de gradient ……………………………………………...
- Régression linéaire ……………………………………………………………….
3- Optimisation avec contraintes…………………………………………………………..
- Algorithme de Lagrange avec les conditions de KKT ……………………………
Séries d’exercices……………………………………………………………………………….

2
Techniques Avancées d’Optimisation 2016 / 2017

Chapitre 1 :

Programmation Linéaire (PL)

3
Techniques Avancées d’Optimisation 2016 / 2017

Définition

On parle de problèmes de programmation/optimisation linéaire, quand la fonction à


optimiser et les contraintes (si elles existent) sont linéaires.

Les quantités / variables à déterminer sont appelées variables de décision (x 1, x2, …, xn). La
fonction à minimiser ou à maximiser - dite la fonction objectif – et les contraintes sont
toujours fonctions de ces variables.

La traduction d’un problème réel en relations mathématiques est appelée Modélisation.

Maximiser c1 x1 + c2 x2 + … + cn xn
s/c a1 x1 + a2 x2 + … + an xn ≤ ℓ 1 avec ai, bi, ci, (1 ≤ i ≤ n), ϵ R.
b1 x1 + b2 x2 + … + bn xn ≤ ℓ 2
….
x1, x2, …, xn ≥ 0. (Contraintes de non négativité)

Cette formulation est appelée forme standard d’un programme linéaire. Une combinaison de
valeurs des variables de décision (x1, x2, …, xn) satisfaisant toutes les contraintes est appelée
solution acceptable ou réalisable. Si une solution satisfait les contraintes et la fonction
objectif, elle est appelée solution optimale1.

1.1 Modélisation d'un problème de décision

La modélisation d’un problème de décision est une tâche délicate. Elle doit garantir une
traduction fiable de la réalité, de résoudre le problème efficacement et de présenter les
solutions réalisables et optimale (s). Elle consiste en quatre étapes :
- Définir les variables de décision (x1, x2, …, xn)
- Formuler la fonction objectif (linéaire)
- Formuler les contraintes (équations ou inéquations linéaires des variables de décision)
- Ecrire le programme linéaire complet

Exemples

1- La direction d'une usine de meubles a constaté qu'il y a des temps morts dans chacun
des départements de l'usine. Pour remédier à cette situation, elle décide d'utiliser ces
temps morts pour fabriquer deux nouveaux modèles de bureaux, M1 et M2. Les temps

1
Unique, multiple, infinie ou impossible.
4
Techniques Avancées d’Optimisation 2016 / 2017

de réalisation pour chacun de ces modèles dans les ateliers de sciage, d'assemblage et
de sablage ainsi que les temps libres dans chacun de ces ateliers sont donnés dans le
tableau ci-dessous. Ces temps représentent le nombre d'heures nécessaires à un
homme pour effectuer le travail. Les profits que la compagnie peut réaliser pour
chacun de ces modèles sont de 300 Dh pour M1 et de 200 Dh pour M2.
La direction désire déterminer combien de bureaux de chaque modèle elle doit fabriquer
pour maximiser son profit.

Solution

Définition des variables :


x1 : le nombre de bureaux de type M1
x2 : le nombre de bureaux de type M2

Formulation mathématique :
En voulant maximiser son profit (P), la fonction objectif s’écrit comme suit :
Max P = 300 x1 + 200 x2
Les contraintes liées au temps libres dans chaque atelier sont :
x1 + 2 x2 ≤ 20
2 x1 + x2 ≤ 22
x1 + x2 ≤ 12

A ces contraintes s’ajoutent les contraintes de non négativité des variables impliquant qu’on
ne peut produire un nombre négatif de bureaux :
x1 ≥ 0
x2 ≥ 0

Le programme linéaire lié à ce problème est :


Max P = 300 x1 + 200 x2
s/c x1 + 2 x2 ≤ 20
2 x1 + x2 ≤ 22
x1 + x2 ≤ 12
x1 ≥ 0, x2 ≥ 0

5
Techniques Avancées d’Optimisation 2016 / 2017

2- Le gérant d’un hôtel souhaite renouveler le linge de toilette de son établissement. Il a


besoin - au moins - de 96 draps de bain, 240 serviettes et 240 gants.
Une première entreprise de vente lui propose un lot A comprenant 2 draps de bain, 4
serviettes et 8 gants pour 200 Dh.
Une deuxième entreprise de vente lui propose un lot B comprenant 3 draps de bain, 12
serviettes et 6 gants pour 400 Dh.
Pour répondre à ses besoins, le gérant achète x lots de A et y lots de B.
Donner la formulation mathématique du problème permettant au gérant de minimiser
ses dépenses.

Solution

Définition des variables :


x : le nombre de lots de type A
y : le nombre de lots de type B

Formulation mathématique :
Min 200 x + 400 y
s/c 2x + 3y ≥ 96
4x + 12y ≥ 240
8x + 6y ≥ 240
x ≥ 0, y ≥ 0

1.2 Résolution par la méthode graphique

Dans le cas où l’on dispose uniquement de deux variables de décision, on peut résoudre le
problème de PL graphiquement.
On représente une variable de décision sur l’axe des abscisses et l’autre sur l’axe des
ordonnées et on trace les droites des contraintes. Chaque droite détermine une région vérifiant
la contrainte. L’intersection de toutes les régions est la zone des solutions admissibles
(réalisables) du programme linéaire. La (les) solution (s) optimale (s) se situe à l’intersection
de deux droites de contraintes dans la zone des solutions admissibles.

- Résoudre graphiquement le premier problème modélisé précédemment

6
Techniques Avancées d’Optimisation 2016 / 2017

Max P = 300 x1 + 200 x2


s/c x1 + 2 x2 ≤ 20
2 x1 + x2 ≤ 22
x1 + x2 ≤ 12
x1 ≥ 0, x2 ≥ 0

Figure 1 : Domaine des solutions acceptables [1]

La région en gris est la région des solutions réalisables. Un des points sommets est la
solution optimale. Pour l’identifier, nous devons calculer le profit réalisé pour chaque
point.
Le point donnant le profit maximal (3400 Dh) est le point de coordonnées (10 ; 2). Il
correspond à la fabrication de 10 bureaux du modèle M1 et 2 du modèle M2.

1.3 Résolution par la méthode du simplexe (Dantzig en 1948)


Quand le nombre de variables est supérieur à deux (voire 3), la méthode graphique n’est plus
utilisable. La méthode du simplexe peut résoudre les problèmes de PL dans ce cas.

Principe
La méthode de simplexe est une méthode itérative consistant à partir d’une des solutions
réalisables et de l’améliorer à chaque fois jusqu’à arriver à la solution optimale (Voir figure
2).

7
Techniques Avancées d’Optimisation 2016 / 2017

Figure 2. Processus de la méthode du simplexe [2]

Elle utilise à cet effet des tableaux dont les valeurs seront calculées à chaque itération.
Dans le cadre de l’algorithme du simplexe, la forme du programme

Maximiser c1 x1 + c2 x2 + … + cn xn
s/c a1 x1 + a2 x2 + … + an xn ≤ ℓ1 avec ai, bi, ci, (1 ≤ i ≤ n), ϵ R.
b1 x1 + b2 x2 + … + bn xn ≤ ℓ 2

….
x1, x2, …, xn ≥ 0.
est appelée forme canonique du PL (toutes les contraintes sont des inégalités de même sens).
Elle est à transformer en forme standard en intégrant les variables d’écart permettant d’obtenir
des contraintes sous forme d’équations au lieu d’inéquations.

Maximiser c1 x1 + c2 x2 + … + cn xn + 0 e1 + 0 e2 …

s/c a1 x1 + a2 x2 + … + an xn + e1 = ℓ1
b1 x1 + b2 x2 + … + bn xn + e2 = ℓ2
….
x1, x2, …, xn, e1, e2, …, ≥ 0.

Le premier tableau du simplexe est de la forme générale suivante :

B \ HB x1 x2 … xn e1 e2 …. enc L L/coef
e1 a1 a2 an 1 0 0 ℓ1

e2 b1 b2 bn 0 1 0 ℓ2


enc
c1 c2 cn 0 0 0

8
Techniques Avancées d’Optimisation 2016 / 2017

Les variables figurant dans la première colonne sont les seules variables qui sont dans la
base, c’est à dire dont la valeur est différente de zéro. Le premier tableau du simplexe
commence par le cas où les variables de décision sont toutes nulles et commence à les intégrer
dans la base au cours des itérations.

Nous illustrons les étapes de la méthode du simplexe à travers l’exemple suivant.

L’entreprise AZT fabrique trois produits A, B et C qui sont en grande demande. Le


responsable de la production veut déterminer un programme de fabrication qui permettrait
d'obtenir l'utilisation optimale de ces ressources. Il a l'information suivante :

Ressources Quantités disponibles


Matières premières :
Matériel AX-200 2000 unités
Matériel AX-225 1800 unités
Temps-machines :
Département montage 60 heures
Département contrôle 60 heures
Département emballage 72 heures
Main d’œuvre 80 heures

Quantités nécessaires pour la fabrication

Ressources Produit A Produit B Produit C


Matériel AX-200 4 5 2
Matériel AX-225 2 5 4
Temps-machines (mn/unité) :
Département montage 10 8 10
Département contrôle 12 10 6
Département emballage 8 6 6
Main d’œuvre (mn/unité) 15 20 15

Informations coût –revenu

Produit A Produit B Produit C


Prix de vente 15 Dh 19.4 Dh 15 Dh
Coûts /unité
Matériel AX-200 2 Dh 3 Dh 2 Dh
Matériel AX-225 3 Dh 5 Dh 4 Dh
Main d’œuvre 4 Dh /heure 4.2 Dh /heure 4 Dh /heure

Déterminer par la méthode du simplexe (méthode des tableaux) le programme optimal de


fabrication à mettre en œuvre pour maximiser le profit.

9
Techniques Avancées d’Optimisation 2016 / 2017

Définition des variables de décision

x1 : Quantité du produit A (à fabriquer)

x2 : Quantité du produit B

x3 : Quantité du produit C

Contraintes :

4x1 + 5x2 + 2x3 ≤ 2000


2x1 + 5x2 + 4x3 ≤ 1800
5x1 + 4x2 + 5x3 ≤ 1800
6x1 + 5x2 + 3x3 ≤ 1800
4x1 + 3x2 + 3x3 ≤ 2160
3x1 + 4x2 + 3x3 ≤ 960

Fonction Objectif

Le profit réalisé par la production d’une unité du produit A est :

PA = 15 – (2 + 3 + α)

avec α le cout de la main d’œuvre.

La fabrication du produit A nécessite 15 min de travail de la main d’œuvre qui coute 4 Dh


l’heure. Par conséquent, le cout de la main d’œuvre pour la fabrication d’une unité du produit
A est α = 1 Dh.
Les profits unitaires réalisés de la vente des produits A, B et C sont :
PA = 9 Dh
PB = 10 Dh
PC = 8 Dh

Par suite, le programme canonique du problème est donné par :


Max 9 x1 + 10 x2 + 8 x3
s/c 4x1 + 5x2 + 2x3 ≤ 2000
2x1 + 5x2 + 4x3 ≤ 1800
5x1 + 4x2 + 5x3 ≤ 1800
6x1 + 5x2 + 3x3 ≤ 1800
4x1 + 3x2 + 3x3 ≤ 2160
3x1 + 4x2 + 3x3 ≤ 960
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0

10
Techniques Avancées d’Optimisation 2016 / 2017

Le programme standard correspondant est :

Max 9 x1 + 10 x2 + 8 x3
s/c 4x1 + 5x2 + 2x3 + e1 = 2000
2x1 + 5x2 + 4x3 + e2 = 1800
5x1 + 4x2 + 5x3 + e3 = 1800
6x1 + 5x2 + 3x3 + e4 = 1800
4x1 + 3x2 + 3x3 + e5 = 2160
3x1 + 4x2 + 3x3 + e6 = 960
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, e1 ≥ 0, e2 ≥ 0, e3 ≥ 0, e4 ≥ 0, e5 ≥ 0, e6 ≥ 0.

Premier tableau :

B \ HB x1 x2 x3 e1 e2 e3 e4 e5 e6 L
e1 4 5 2 1 0 0 0 0 0 2000
e2 2 5 4 0 1 0 0 0 0 1800
e3 5 4 5 0 0 1 0 0 0 1800
e4 6 5 3 0 0 0 1 0 0 1800
e5 4 3 3 0 0 0 0 1 0 2160
e6 3 4 3 0 0 0 0 0 1 960
9 10 8 0 0 0 0 0 0

La solution de base de départ est : x1= x2= x3 = 0 (puisqu’elles sont hors base) ; e1 = 2000, e2 =
1800, e3 = 1800, e4 = 1800, e5 = 2160, e6 = 960.

Première itération :

A chaque itération, on doit déterminer la variable à faire entrer dans la base et la variable à
faire sortir.
Pour un problème de maximisation, la variable entrante est celle associée au plus grand
coefficient de la dernière ligne (pour un problème de minimisation, c’est le contraire). Dans
notre cas, c’est la variable x2.
La variable sortante est celle associée au plus petit rapport positif (L/Coef) : Dans notre cas,
c’est la variable e6.
On appel pivot, le nombre situé à l’intersection de la colonne de la variable entrante et la ligne
de la variable sortante. Pour cet exemple, le pivot = 4.

11
Techniques Avancées d’Optimisation 2016 / 2017

B \ HB x1 x2 x3 e1 e2 e3 e4 e5 e6 L L/Coef
e1 4 5 2 1 0 0 0 0 0 2000 (2000 / 5) = 400
e2 2 5 4 0 1 0 0 0 0 1800 (1800 / 5) = 360
e3 5 4 5 0 0 1 0 0 0 1800 (1800 / 4) = 450
e4 6 5 3 0 0 0 1 0 0 1800 (1800 / 5) = 360
e5 4 3 3 0 0 0 0 1 0 2160 (2160 / 3) = 720
e6 3 41 3 0 0 0 0 0 1 960 (960 / 4) = 240
1
9 1001 8 0 0 0 0 0 0 z 0
0

On divise la ligne du pivot par la valeur du pivot (4), ce qui donne :

B \ HB x1 x2 x3 e1 e2 e3 e4 e5 e6 L
e1 4 5 2 1 0 0 0 0 0 2000
e2 2 5 4 0 1 0 0 0 0 1800
e3 5 4 5 0 0 1 0 0 0 1800
e4 6 5 3 0 0 0 1 0 0 1800
e5 4 3 3 0 0 0 0 1 0 2160
e6 3/4 1 3/4 0 0 0 0 0 1/4 240
9 10 8 0 0 0 0 0 0

Il faut par la suite qu’on élimine les coefficients de la variable x2 figurant dans les lignes 1, 2,
3, 4, 5 et dans la dernière ligne.
Soit Lp la ligne du pivot, on ramène le coefficient de la première ligne à zéro en faisant :

L1 – 5 Lp, soit 5 - 5*1 = 0


En suivant le même raisonnement pour les autres lignes (sauf celle du pivot), nous obtenons le
tableau ci-après :

12
Techniques Avancées d’Optimisation 2016 / 2017

B \ HB x1 . x3 e1 e2 e3 e4 e5 e6 L
e1 1/4 0 -7/4 1 0 0 0 0 -5/4 875
e2 -7/4 0 1/4 0 1 0 0 0 -5/4 600
e3 2 0 2 0 0 1 0 0 -1 840
e4 9/4 0 -3/4 0 0 0 1 0 -5/4 600
e5 7/4 0 3/4 0 0 0 0 1 -3/4 1440
x2 3/4 1 3/4 0 0 0 0 0 1/4 240
3/2 0 1/2 0 0 0 0 0 -5/2 z=2400

La solution obtenue de la première itération est : x1 = x3 = e6 = 0 (puisqu’elles sont hors base) ;


e1 = 875, e2 = 600, e3 = 840, e4 = 600, e5 = 1440, x2 = 240.

N.B : Les valeurs des variables de la base sont lues dans la dernière colonne.

Tant qu’un ou plusieurs coefficients de la dernière ligne sont positifs, on continue à chercher
le point optimal non encore obtenu.

Deuxième itération :

La variable entrante est la variable x1 associée au plus grand coefficient de la dernière ligne.
La variable sortante est la variable e4 associée au plus petit rapport positif L/Coef.
Le pivot : 9/4.
Après avoir divisé la ligne du pivot par le pivot 9/4, puis annuler les autres coefficients de la
première colonne, nous obtenons la solution de base suivante :

B \ HB . . x3 e1 e2 e3 e4 e5 e6 L
e1 0 0 -5/3 1 0 0 -1/9 0 -10/9 2425/3
e2 0 0 -1/3 0 1 0 7/9 0 -20/9 3200/3
e3 0 0 8/3 0 0 1 -8/3 0 1/9 920/3
x1 1 0 -1/3 0 0 0 4/9 0 -5/9 800/3
e5 0 0 19/2 0 0 0 -7/9 1 2/9 2920/3
x2 0 1 1 0 0 0 -1/3 0 2/3 40
0 0 1 0 0 0 -2/3 0 -5/3 z=2800

13
Techniques Avancées d’Optimisation 2016 / 2017

La solution obtenue de la deuxième itération est : x3 = e4 = e6 = 0 (puisqu’elles sont hors


base) ; e1 = 2425/3, e2 = 3200/3, e3 = 920/3, e5 = 2920/3, x1 = 800/3, x2 = 40.

Il reste encore un coefficient, dans la dernière ligne, qui n’est pas négatif ou nul, donc
l’optimum n’est pas encore atteint.

Troisième itération :

La variable entrante est : x3


La variable sortante est : x2
Le pivot : 1.
Le pivot est égal à 1 donc nous n’allons pas diviser par la valeur du pivot.

Après l’annulation des autres valeurs de la colonne de la variable x3, nous obtenons le tableau
ci-après :

B \ HB . x2 . e1 e2 e3 e4 e5 e6 L
e1 0 5/3 0 1 0 0 -2/3 0 0 875
e2 0 1/3 0 0 1 0 2/3 0 -2 1080
e3 0 -8/3 0 0 0 1 -16/9 0 -5/3 200
x1 1/3 0 0 0 0 0 1/3 0 -7/9 280
e5 0 -19/2 0 0 0 0 43/18 1 -55/9 1780/3
x3 0 1 1 0 0 0 -1/3 0 2/3 40
0 -1 0 0 0 0 -1/3 0 -7/3 z=2840

Nous remarquons que tous les coefficients de la dernière ligne sont négatifs ou nuls, cela
implique que l’optimum est atteint.

La solution optimale correspond donc à : x2 = e4 = e6 = 0 (puisqu’elles sont hors base) ; e1 =


875, e2 = 1080, e3 = 200, e5 = 1780/3, x1 = 280 et x3 = 40.

Par conséquent, pour maximiser son profit, l’entreprise à intérêt de fabriquer :

x*1 = 280, x*2 = 0, x*3 = 40.

Ce profit sera de 2840 Dh.

L'algorithme du simplexe dans le cas d’une maximisation peut être écrit comme suit :

14
Techniques Avancées d’Optimisation 2016 / 2017

1. Ecrire le programme linéaire sous forme standard


2. Recherche d'une solution de base réalisable de départ
3. Construire le premier tableau du simplexe
4. Tester si : Δj ≤ 0,
5. si oui ; terminer la solution est optimale
si non ; aller en (6)
6. Soit la variable xr entre en base
Tester si : air ≤ 0,
si oui ; terminer le problème ne possède pas de solution optimale finie.
si non ; aller en (7)
7. On détermine la variable sortante xs par :
ℓs/asr = min {ℓi/air, air > 0} où asr est le pivot.
8. Obtenir le nouveau tableau du simplexe en divisant la ligne-pivot par le pivot. Les autres
éléments du tableau sont obtenus par la règle montrée dans l’exemple. Aller en (4).

Remarque : Δj sont les coefficients de la dernière ligne.


ℓi : les deuxièmes termes des contraintes i (les limites)

1.4 Résolution par les Solveurs

Le solveur d’Excel est un outil très populaire de résolution des problèmes d’optimisation. Il
permet d’avoir la solution optimale très rapidement en respectant les contraintes imposées.
L’utilisation du solveur Excel sera illustrée sur le même exemple résolu par la méthode du
simplexe.
La première étape est de vérifier si le solveur est installé avec la version Excel disposé sur
ordinateur. Pour Vérifier cela, dans le menu données (ou data pour la version en anglais), on
cherche l’icône solveur.

Si le solveur n’est pas installé, on suit les étapes suivantes :


Fichier Options Compléments Gérer : Compléments Excel (Cliquer
Atteindre) Ok.

15
Techniques Avancées d’Optimisation 2016 / 2017

Une fois le solveur installé, on saisit les données relatives aux variables, contraintes et
fonction objectif comme montré dans la figure suivante.

16
Techniques Avancées d’Optimisation 2016 / 2017

Dans les cellules de la colonne Quantités utilisées, on saisit les formules des contraintes
comme illustré dans la figure ci-après.

On saisit aussi la formule de la fonction objectif pour calculer la valeur optimale.

17
Techniques Avancées d’Optimisation 2016 / 2017

L’étape suivante est de calculer les quantités X1, X2 et X3 à fabriquer des produits A, B et C
respectivement et la valeur maximale du profit que l’entreprise peut réaliser.

Menu Données Solveur Choisir la cellule contenant la formule de la


fonction objectif (E15 dans notre cas), cocher Max, sélectionner les cellules des valeurs des
variables, ajouter les contraintes (dont celles de non négativités des variables de décision) et
sélectionner Simplexe PL (puisqu’il s’agit d’un problème de programmation linéaire).

Cliquer Résoudre.

18
Techniques Avancées d’Optimisation 2016 / 2017

Le résultat du solveur sera comme suit :

C’est le même résultat obtenu par le calcul manuel des tableaux de la méthode du simplexe à
savoir : 2840 Dh comme profit maximum et (280 ; 0 ; 40) comme combinaison optimale des
produits A, B et C respectivement.

Remarques : Les contraintes L4 et L6 sont dites saturées vu l’utilisation de toutes les


quantités de ressources disponibles.

19
Techniques Avancées d’Optimisation 2016 / 2017

Travail A Faire

Résoudre le programme suivant par la méthode du simplexe. Vérifier le résultat obtenu par le
solveur Excel.

Min x - 3y
s/c 3x – 2y ≤ 7
-x + 4y ≤ 9
-2x + 3y ≤ 6
x ≥ 0, y ≥ 0

1.5 Dualité et variables artificielles

La méthode de la dualité

Problème de production

Deux produits P1 et P2 fabriqués en quantité x et y, nécessitant trois ressources disponibles en


quantités données. L'entreprise cherche à maximiser le bénéfice total provenant de la vente
des 2 produits.
Max F = 6 x + 4y
s/c 3 x + 9 y ≤ 81
(Primal) 4 x + 5 y ≤ 55
2 x + y ≤ 20
x ≥ 0, y ≥ 0

Un acheteur se présente pour acheter toutes les ressources de l'entreprise. Il propose à


l'entreprise les prix unitaires y1, y2, y3 pour chacune des ressources.
L'entreprise acceptera de lui vendre toutes ses ressources uniquement si elle obtient pour
chaque produit un prix de vente au moins égal au profit qu'elle ferait en vendant ses produits.
De son côté, l'acheteur cherche à minimiser ses dépenses.
Alors, Quels prix unitaires y1, y2, y3 l'acheteur doit-il proposer à l'entreprise en question pour
qu'elle accepte de vendre toutes ses ressources ?
Le problème d’optimisation de l’acheteur est le suivant :
Min G = 81 y1 + 55 y2 + 20 y3
s/c 3 y1 + 4 y2 + 2 y3 ≥ 6
9 y1 + 5 y2 + 1 y3 ≥ 4
y1 ≥ 0, y2 ≥ 0, y3 ≥ 0

20
Techniques Avancées d’Optimisation 2016 / 2017

Cette transformation d’une maximisation à une minimisation (ou l’inverse) s’appelle la


dualité.
- Principe

La résolution directe des problèmes de minimisation par la méthode du simplexe est plus
compliquée que la résolution des problèmes de maximisation. Pour cela, la méthode de la
dualité consiste à transformer « minimiser par maximiser » (ou l’inverse) afin d’utiliser la
méthode simplexe directe. Pour cela :
- Elle change la notation des variables dans le programme primal,
- le nombre de variables du dual est égal au nombre de contraintes du primal et
inversement
- si le primal est une maximisation, le dual est une minimisation (et inversement)
- les contraintes du dual prennent les signes des variables du primal
- les variables du dual prennent l’inverse des signes des contraintes du primal
- Une variable primale non astreinte (appartenant à R) correspond à une contrainte-
égalité dans le dual.
- La matrice des contraintes du dual est la transposée de la matrice du primal.
- Les coefficients de la fonction objective du primal sont le second membre du dual.

La dualité est aussi utilisée en pratique quand le nombre de contraintes est important dans le
programme linéaire, ce qui complique la résolution par la méthode du simplexe. Le passage à
la forme duale réduit la taille des solutions de base.

Ainsi, en utilisant l’écriture matricielle d’un programme linéaire, la transition primal-dual se


fait comme suit :

Comparaison Primal – Dual

21
Techniques Avancées d’Optimisation 2016 / 2017

Exemple

Variables artificielles

Dans le cas d’une contrainte de type ≥, la transformation en égalité pour l’obtention de la


forme standard en introduisant les variables d’écart n’a pas de solution de base réalisable
(x=y=0 dans le cas de deux variables), vu la contrainte de non négativité des variables d’écart
qui ne peut pas être satisfaite.
Exemple
2x + 3y + 5z ≥ 60 2x + 3y + 5z – e1 = 60
Si x = y = z = 0 – e1 = 60 e1 = - 60 < 0 (Solution non acceptable)

La solution est d’intégrer une variable artificielle (a) à chaque contrainte de type ≥. Dans ce
cas, les variables d’écart sont supposées hors base et les variables artificielles dans la base.
On ajoute, dans la fonction objectif, les variables artificielles pondérées par un coefficient
fortement pénalisant : S’il s’agit d’une minimisation : + M a
S’il s’agit d’une maximisation : - M a

Dans le cas d’une minimisation, la variable entrante dans la base, pour la méthode du
simplexe, est celle associée au coefficient le plus négatif. Dans ce cas, L’optimum est atteint
quand tous les coefficients de la dernière ligne sont positifs ou nuls.

22
Techniques Avancées d’Optimisation 2016 / 2017

Application
Min Z = 8000 x + 7200 y + 7000 z
s/c 25 x + 40 y + 50 z ≥ 425
1000 x + 600 y + 500 z ≥ 9500
x ≥ 0, y ≥ 0, z ≥ 0.

Ceci est équivalent à :


Min Z = 100 (80 x + 72 y + 70 z)
s/c 5 x + 8 y + 10 z ≥ 85
10 x + 6 y + 5 z ≥ 95
x ≥ 0, y ≥ 0, z ≥ 0.

Minimisation directe (sans dualité) en intégrant les variables artificielles :

Min Z’ = 80 x + 72 y + 70 z + M a1 + M a2 avec Z = 100 Z’


s/c 5 x + 8 y + 10 z – e1 + a1 = 85
10 x + 6 y + 5 z – e2 + a2 = 95
x ≥ 0, y ≥ 0, z ≥ 0.

Z’ = 80 x + 72 y + 70 z + M (85 - 5 x - 8 y - 10 z + e1) + M (95 - 10 x - 6 y - 5 z + e2)


= (80 – 15 M) x + (72 – 14 M) y + (70 – 15 M) z + M e1 + M e2 + 180 M

Tableau 1

B \ HB x y z e1 e2 . . L Rapport
a1 5 8 10 -1 0 1 0 85 85/10=8.5
a2 10 6 5 0 -1 0 1 95 95/5=19
80 – 15 M 72 – 14 M 70 – 15 M M M 0 0 -180M

z entrante et a1 sortante.

B \ HB x y . e1 e2 . L
L1 z 1/2 4/5 1 -1/10 0 0 17/2

L2 - 5L1 a2 15/2 2 0 1/2 -1 1 105/2


45 – (15/2)M 16 – 2 M 0 7-0.5M M 0 -595-52.5 M
L3-(70–15M) L1

23
Techniques Avancées d’Optimisation 2016 / 2017

x entre et a2 sort.

B \ HB . y . e1 e2 L
z 0 5
x 1 4/15 0 1/15 -2/15 7
Z’ 0 4 0 4 6 -910

Tous les coefficients de la dernière ligne sont positifs ou nulles, donc la solution optimale est atteinte.

x* = 7, y* = 0 et z* = 5.

Z* = 100 × Z’* = 91000 Dh.

Remarques
- Les variables artificielles n’ont aucune interprétation physique. Elles sont utilisées pour
amorcer le processus de résolution en constituant les variables de base de départ et
doivent forcément s’annuler pour atteindre la solution optimale. Autrement, il n’y a pas
de solution réalisable.
- Au cours du processus de résolution, les variables artificielles doivent forcément sortir de
la liste des variables de base pour atteindre une solution de base réalisable de P si elle
existe. On peut donc "laisser tomber" leur colonne dès qu’elles sortent de la liste des
variables de base.

24

Vous aimerez peut-être aussi