Cours Techniques D'optimisation
Cours Techniques D'optimisation
Cours Techniques D'optimisation
Introduction
- 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 :
3
Techniques Avancées d’Optimisation 2016 / 2017
Définition
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.
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.
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
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
5
Techniques Avancées d’Optimisation 2016 / 2017
Solution
Formulation mathématique :
Min 200 x + 400 y
s/c 2x + 3y ≥ 96
4x + 12y ≥ 240
8x + 6y ≥ 240
x ≥ 0, y ≥ 0
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.
6
Techniques Avancées d’Optimisation 2016 / 2017
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.
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
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.
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.
9
Techniques Avancées d’Optimisation 2016 / 2017
x2 : Quantité du produit B
x3 : Quantité du produit C
Contraintes :
Fonction Objectif
PA = 15 – (2 + 3 + α)
10
Techniques Avancées d’Optimisation 2016 / 2017
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
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 :
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
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
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 :
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.
L'algorithme du simplexe dans le cas d’une maximisation peut être écrit comme suit :
14
Techniques Avancées d’Optimisation 2016 / 2017
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.
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.
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.
Cliquer Résoudre.
18
Techniques Avancées d’Optimisation 2016 / 2017
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.
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
La méthode de la dualité
Problème de production
20
Techniques Avancées d’Optimisation 2016 / 2017
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.
21
Techniques Avancées d’Optimisation 2016 / 2017
Exemple
Variables artificielles
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.
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
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.
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