Académique Documents
Professionnel Documents
Culture Documents
Green Bee 1
qu’est-ce que Matlab ?
MATLAB (MATrix LABoratory) est un environnement (langage) de programmation interactif pour le
calcule scientifique et la visualisation des données produit par Mathworks.
A l’origine MATLAB était conçu pour faire principalement des calcules sur les vecteurs et les matrices
d’où son nom ‘Matrix Laboratory’’ mais par la suite il a était amélioré et augmenté pour pouvoir traiter
beaucoup plus de domaines.
Pour le calcul numérique, Matlab est beaucoup plus concis que les “vieux” langages (C, Pascal, Fortran,
Basic). Matlab contient également une interface graphique puissante, ainsi qu’une grande variété
d’algorithmes scientifiques,
Green Bee 2
Atouts de MATLAB
C’est un langage interprété qui s’exécute dans une fenêtre dite d’exécution.
L’intérêt de MATLAB tient, d’une part, à sa simplicité d’utilisation :
Pas de compilation,
Déclaration implicite des variables utilisées et, d’autre part,
A sa richesse fonctionnelle : arithmétique matricielle et nombreuses
fonctions de haut niveau dans divers domaines (analyse numérique, statistique, commande
optimale, représentation graphique, ...).
Ordinateur = super calculatrice
Apprentissage facile, commandes intuitives
Inclusion des graphiques dans les documents
Interaction avec des programmes externes
Boites à outils couvrants une multitude de disciplines
Une aide en ligne
Sauvegarde de l’environnement du travail
3
Atouts de MATLAB
Toolboxes :
MATLAB dispose de nombreuses "Toolboxes" (Boîtes à outils) qui sont des collections complètes des fonctions
MATLAB (M-files) spécifiques à un domaine d’applications donné :
Aerospace Toolbox,
Communication Toolbox,
Control system Toolbox,
Image Processing Toolbox,
Signal Processing Toolbox,
…
Simulink
Matlab contient aussi l'environnement "Simulink" qui est un environnement puissant de modélisation basée sur
les schémas-blocs et de simulation de systèmes dynamiques linéaires et non linéaires.
4
Environnement Matlab
Green Bee 5
Environnement Matlab
Présentation de la fenêtre MATALB :
Sous Windows, on peut démarrer MATLAB en réalisant un double clic sur l'icône Matlab dans le
bureau. On verra donc s'afficher l'interface suivante :
Worksapce
Répertoire courant
fenêtre de commandes (Command
(Current Folder) : Window) :
Cette fenêtre permet de
visualiser le répertoire de Elle permet entre autre de faire
travail dans lequel vous êtes. n’importe quelle opération, de définir,
C’est ici que sont
chargés/enregistrés les scripts,
affecter les variables d’environnement,
Historique des commandes
les modèles ou les données d’utiliser les toolboxes via leurs
(Command History) :
fonctions, …
fenêtre en bas à droite. Elle
contient toutes les
commandes déjà
exécutées.
Environnement Matlab
Exemple:
• Lorsque vous travaillez dans MATLAB, vous émettez des commandes qui créent des variables et des
appels de fonctions.
Commande:
Arrêter l’exécution d’une instruction →→ Ctrl+C
Nettoyer la fenêtre de commande →→ clc
Nettoyer la fenêtre de Workspace →→ clear all
La liste des variables stockées dans l’espace de travail peut être obtenue
par les commandes →→ (who : affichage des variables , whos: affichage
en détaille)
Pour compléter le nom d’une commande →→ Utiliser la touche Tab
Accès à l’aide sur une fonction ou sur un sujet →→ help >sujet< 7
Environnement Matlab
Operations de base
1. Arithmétique simple: MATLAB permet l’utilisation d’opérateurs arithmétiques classiques que sont + − / ∗ ^
pour effectuer des opérations directement sur des nombres ou sur des variables
>> x = input('Entrer une valeur pour x : ') >> disp('la valeur de x : '), disp(x)
Entrer une valeur pour x : 5
x= la valeur de x :
5 5
>> f = 19 ;
>> c = (5/9)*(19-32) ;
>> fprintf('%5.2f en Fahrenheit est égale à %5.2f en
Centigrade. \n',f,c)
Déclaration des les variables non nécessaire : leur type (entier, réel, complexe) et leur dimension s’affecteront
automatiquement.
Le nom d'une variable doit obligatoirement commencer par une lettre. Il peut contenir des chiffres et dessous-
tirets. Il ne doit pas contenir d’opérateurs spéciaux (+, -, /, &, *, ^, …)
Matlab fait la distinction entre les majuscules et minuscules, ainsi a et A sont des variables différentes.
Si la variable existe déjà, le contenu est écrasé par une nouvelle valeur affectée à cette variable.
Green Bee 11
• Pour MATLAB, tout variable ou bien un constant déclarés est une matrice
Généralisation
Un nombre : matrice de dimension 1 x 1
Un vecteur en ligne : 1 x n
Un vecteur en colonne : m x 1
Une matrice multidimensionnelle (2D) : m x n
Une matrice multidimensionnelle (3D) : m x n x p
• Vecteur colonne: données sont sur une même colonne (c'est-à-dire dans différentes
lignes).
12
Matrices et vecteurs dans Matlab
Affectation
Matrices
Les matrices sont saisies sur une seule ligne où les éléments consécutifs
des lignes sont séparées par un espace ou une virgule et les lignes sont
séparées par un point virgule, le tout doit être entre crochets.
M=
263
Exemple : >> M = [2 6 3 ; 3 8 1 ; 1 5 3] 381
153
On utilise les crochets [ et ] pour définir le début et la fin d'un tableau ou d'une
matrice.
Vecteurs et scalaires
Exemples :
>> Vl = [2 6 3] %vecteur ligne >> Vc =
Vl 6
=263 8
5
>> Vc = [6 ; 8 ; 5] %vecteur colonne
14
Accès à un élément d'un tableau
L'indexage s'effectue entre parenthèses avec en premier l'indice de la ligne et en second, l'indice de la
colonne, soit : M(id ligne, id colonne).
• Accéder à l’élément 0
• Extraire la première ligne
• Extraire la troisième colonne
• Créer à partir de d le vecteur [-4 19]
• Extraire les colonnes 2 et 3
Solution :
16
Valeurs et matrices spéciales
Pi: valeur de la constante trigonométrique 𝜋 zeros (N,M): Permet de créer des vecteurs ou
matrices composés uniquement par des zéros,
eps : le plus petit nombre pouvant séparer
deux nombres consécutifs Ones( N,M) : Permet de créer des vecteurs ou
matrices composés uniquement par des un :
realmax : la plus grande valeur pouvant être
utilisée eye(N,M) : matrice identité de dimensionNxM.
realmin : la plus petite valeur pouvant être Rand(N,M) : générer des matrices contenant
utilisée des nombres aléatoires (entre 0 et 1)
uniformément distribués
i, j : représentent (indifféremment) le nombre
complexe Magic (N): générer des matrices magiques
(somme des lignes, des colonnes, de la
Inf : est la notation MATLAB pour l'infini (1/0) diagonale et de l’anti-diagonale sont les
Nan : (not-a-number), souvent le résultat d'une mêmes).
opération de 0/0.
Green Bee 17
• Soit x une matrice de dimension NxM
Opération sur les matrices
Somme des éléments de x : >> sum(x) (sommes des colonnes)
Produit des éléments de x : >> prod(x)
Le plus grand élément de x : >> max(x) (max des
NB : pour connaître la syntaxe d'une
Le plus petit élément de x : >> min(x) fonction : taper help nom_de_la_fonction
Moyenne des éléments de x : >> mean(x)
Ordonner les éléments de x par ordre croissant : >> sort(x)
Exemples :
A = [1:10]
sin(A) = [0.84 0.91 0.14 -0.76 -0.96 -0.28 0.66 0.99 0.41 -0.54]
log(A) = [0 0.69 1.10 1.39 1.61 1.79 1.95 2.08 2.20 2.30] >> V = [ 7 5 9];
sum(A) = 1+2+3+4+5+6+7+8+9+10 V.^2
Les programmes Matlab sont des fichiers dont l'extension est ".m", ou M-files.
On peut créer des M-files en utilisant le propre éditeur de texte de Matlab (le M-files Editor) ou en
utilisant un éditeur de texte comme le Bloc-notes.
Scripts
• Un script n’est rien d’autre qu’un fichier contenant une suite de commandes(instructions). Lorsque l’on
demande à Matlab d’exécuter un script, il se contente de lancer les différentes commandes du fichier.
19
Programmes Scripts et fonctions
% test.m!
%-------------------------------------------!
% Description du programme!
% !blablabla!
% ------------------------------------------!
% Variables d'entrée:!
% Mettre ici les variables requises par le programme si besoin!
% Variables de sortie!
% Mettre ici le nom des variables générées par le programme si besoin!
%-------------------------------------------!
Lignes de programme!
% commentaires sur ce que fait le programme!
Lignes de programme!
NB : Les lignes commençant par « % » sont des commentaires non interprétés par Matlab mais
fort utiles pour comprendre la structure du programme.
20
Programmes et fonctions
Fonctions
Une fonction y = f(x) est une procédure mathématique qui reçoit en entrée la variable x et l’utilise pour calculer la
sortie y suivant une (ou plusieurs) relation(s) bien définie(s).
Une fonction Matlab est un M-file qui calcule des variables de sorties en utilisant des arguments d’entrée, la
fonction doit se terminer avec un end
La syntaxe générale est la suivante:
end 21
Fonctions Programmes et fonctions
L'appel de la fonction dans l'éditeur de commande se fait par:
[var_out1, var_out2,…] = mafonction (x1, x2,…)
Exemple :
La programmation de la fonction mathématique carre peut se faire par le M-file suivant :𝑓 𝑥 = 𝑦 2
end
Pour utiliser la fonction du fichier "carre.m", il suffit d'entrer au clavier:
B=carre(8);
V=[ 1 3 5]; v_car=carre(v);
23
Optimization lineaire avec MATLAB: la function linprog
Instructions sélectives
Instructions répétitives
Instructions CONTINUE …
Instructions BREAK …
25
Arrêt de l’exécution d’une boucle
Bases de programmation
Branchement condionnel
if … else … end
if…
if condition
Corps de la
séquence d’instructions else
sélection
___
if … else if …. else … end
*
Green Bee 26
Bases de programmation
Les boucles
Green Bee 27
Représentation graphique
Green Bee 28
Représentation graphique
MATLAB fournit une grande variété de techniques pour l'affichage des données sous forme graphique.
Des outils interactifs vous permettent de manipuler les graphiques révéler la plupart des informations
Le processus de visualisation des données implique une série d’opérations. Cette section fournit une vue
générale sur les possibilités que fournit Matlab pour la représentation graphiques.
29
Graphes
https://www.mathworks.com/help/matlab/creating_plots/types-of-matlab-plots.html 30
plot 2D plot
surf 3D plot
contour contour plot
Scilab
https://help.scilab.org/docs/6.1.0/en_US/section_fbb832a4db5f8ce05fb634eec24fa41c.html
Représentation graphique
• Définissez x comme un vecteur de valeurs espacées linéairement entre 0 et 𝜋. Utilisez un incrément
de 𝜋/100 entre les valeurs. Définir y comme valeurs sinusoïdales de x.
x = 0:pi/100:2*pi;
y = sin(x);
figure(),
plot(x,y)
xlabel('Nombre de valeurs')
ylabel('sin(x)')
title('Tracé du sin')
32
Graphe avec plusieurs courbes superposées
• Définissez x comme 100 valeurs espacées linéairement entre −2𝜋 et 2𝜋 Définissez y1 et y2 comme
valeurs sinus et cosinus de x. Créez un tracé linéaire des deux ensembles de données.
x = linspace(-2*pi,2*pi);
y1 = sin(x);
y2 = cos(x);
figure
plot(x,y1,x,y2)
legend('sin','cos')
xlabel('Nombre de valeurs')
ylabel('sin-cos')
33
Graphe avec plusieurs courbes séparées
figure()
subplot(3,1,1), plot(x,y1), title('y1');
subplot(3,1,2), plot(x,y2), title('y2');
subplot(3,1,3), plot(x,y1,x,y2), title('y1- y2');
34
Graphe 3-D
• Supposons, par exemple qu’on veut représenter la surface définie par la fonction z=sin(xy) sur le
• carré suivant [-𝜋/2, 𝜋/2]x[-𝜋/2, 𝜋/2] à l'aide d'une grille de points 31x31
figure()
[xi,yi]=meshgrid(-pi/2:pi/30:pi/2);
zi=sin(xi.*yi);
surf(xi,yi,zi,zi);
Contours
x=-5:0.2:5
y=x';
f=(2./(x.*y.^2));
g=(x).^2+y.^2;
levelListf=[-0.05,-0.1, -0.1925,0.05,0.1, 0.1925];
LevelListg=[3];
contour(x,y,f,'levelList',levelListf)
hold on
contour(x,y,g,[9 9],'r','linew', 2)
grid on
35
• Autres graphes
Pie graphes
• char
• Hist
• pie
>> x= [1 3 8 10]
x=
1 3 8 10
>> pie(x)
36
Scatter plot
Scatter plot are useful when data are not
ordered
>> x=randn(1000,1)
>> y=10*sin(x)+randn(1000,1)*0.2
>> plot(x,y)
figure
>> scatter(x,y)
>>
37
Calcul symbolique
>> syms x; >> solve( 'x^2 + 4*x + 1' )
g = x^3 + 6*x^2 + 11*x + 6;
factor(g)
ans =
ans = 3^(1/2) - 2
(x + 3)*(x + 2)*(x + 1) - 3^(1/2) - 2
>> diff(g)
ans =
3*x^2 + 12*x + 11
>> int(g)
ans =
x^4/4 + 2*x^3 + (11*x^2)/2 + 6*x
>> y = dsolve('D2y-2*Dy-3*y=0','y(0)=0','y(1)=1')
y=
1/(exp(-1)-exp(3))*exp(-t)-1/(exp(-1)-exp(3))*exp(3*t)
38
Polynomials
Function Description
Representing Polynomials conv Multiply polynomials
p ( x) x 2 x 5
3
deconv Divide polynomials
To enter this polynomial into MATLAB, use
poly Polynomial with specified roots
polyder Polynomial derivative
p = [1 0 -2 -5];
polyfit Polynomial curve fitting
polyval Polynomial evaluation
To evaluate p at x=5, use
polyvalm Matrix polynomial evaluation
polyval(p,5)
ans =
residue Partial-fraction expansion (residues)
110 roots Find polynomial roots
X = [2 4 5; -1 0 3; 7 1 5];
Y = polyvalm(p,X)
Y=
377 179 439
111 81 136
490 253 639
39
structs: store different data types..
my_struct = my_struct =
struct with fields: struct with fields:
name: 'my new struct':
name: 'my new struct'
age: 25
>> class(my_struct)
>> isfield(my_struct,’name’)
ans =
ans =
'struct' rmfiled(my_stryct,’age’)
setfield(my_struct,’gender’,’f’)
40
• Add struct within a struct (nested syructs)
>> my_struct.contact.phone=1234555
my_struct =
struct with fields:
name: 'my new struct'
age: 25
contact: [1×1 struct]
41
Optimisation Non linéaire
A. Outzourhit
Master GreenBee
f ( x) 12 x 45 x 40 x 5
5 4 3 Titre du graphique
10
f’(x)=60(x4-3x3+2x2)=60x2(x-1)(x-2), f’(x)=0 -5
f’’(x)=60(4x3-9x2+4x)=60x(4x2-9x+4)
-15
f’’(0)=0
f’’(1) <0 max
f(x)=[Sin(x)/x]2
f’’(2) >0 min
Minimums sont à xk=kp plusieurs!!)
f’’’(0)=60*(12x2-18x+4) >0 point d’inflexion Trouver l’équation qui donne la position des
max
tgx=x
xk≈(2k+1)p/2 (voir excel, 1 max. globale et
plusieurs max/ locaux
Optimisation Non linéaire, Master Green Bee
Minimum local et Minimum global
• x* est un point de minimum global de f sur X (domaine des solutions admissibles en cas de contraintes ou de
définition en absence) ssi:
x* ∈ X et ∀y ∈ X, f(x*) ≤ f(y).
• Pour un Minimum local, la relation f(x*) ≤ f(y) est valable uniquement au voisinage de x*.
• Les notions de maximum local et global sont définis de la même façon
. x* ∈ X et ∀y ∈ X, f(x*) ≥ f(y) (max. globale)
• Si un point x * correspond à la valeur minimale de la fonction f (x), le même point correspond également à la
valeur maximale du négatif de la fonction -f(x).
• Les techniques d’optimisation doivent être capables de trouver les min (max) globaux..
4
Optimisation continue Multi -variables sans contraintes
C’est le cas générale d’une fonction objectif à plusieurs variables de décision 𝑥1
• Min (max) f(x)=f(x1,x2,…xn) 𝑥2
𝑥= . 𝑥 𝑇 = 𝑥1 , 𝑥2 . . . . . . . . . . . 𝑥𝑛
• Sans aucune contrainte et les variables sont des réels
𝑇
.
1. Vecteur f (gradient de f) 𝛻𝑓 =
𝜕𝑓 𝜕𝑓
, ,......
𝜕𝑓 𝑥𝑛
Propriétés du gradient: 𝜕𝑥1 𝜕𝑥2 𝜕𝑥𝑛
a. le gradient est un vecteur qui pointe dans la direction selon laquelle la fonction
augmente le plus rapidement (de plus forte pente ou augmentation).
𝜕𝑓
𝑑𝑓 = 𝑑𝑥𝑖 = 𝛻𝑓 𝑇 • 𝑑𝐱 > 0 𝑑𝐱 = 𝑑𝑥1 , 𝑑𝑥2 . . . . . . . . . . . 𝑑𝑥𝑛 𝑇
2 2
En effet, 𝜕𝑥𝑖 𝑥1 𝑥2
𝑖
𝑓(𝑥1, 𝑥2) = +
𝑎2 𝑏2
Si on se déplace le long d’une direction où f est croissante df >0 alors le produit scalaire
est positif et donc 𝛻𝑓 pointe dans la direction de dx,
df est maximale 𝛻𝑓 et dx sont // (colinéaires)
b. Par construction, le vecteur gradient est perpendiculaire à la courbe isovaleur (de f(x)=c1
niveau) de la fonction en un point considéré (courbe de niveau= courbe formée par les
point ayant la même valeur de f)
• En effet, si on se déplace le long d’un chemin le long duquel f est constante (df=0) f(x)=c2
alors:
𝑑𝑓 = 𝛻𝑓 𝑇 • 𝑑𝐱 = 0 =⇒
Optimisation Non linéaire, Master Green Bee
∇f(x)
Optimisation continue Multi variables sans contraintes……
2. La matrice Hessiane H(x) : (ou le Hessian, ou matrice de Hess) en un point x (x1,x2,…xn) est la matrice
contenant l'ensemble des dérivées secondes d'une fonction.
3. Définitions
A est matrice définie positive: Si uTAu > quelque soit le vecteur u.
• A est matrice définie positive: Si toutes ces valeurs propres (VP) sont strictement positives
• x est un vecteur propre de A si : Ax=lx = lIx
• l est la valeur propre associée au vecteur propre x de A.
Détermination des VP: (A- l I)x=0 det(A- l I)=0
• A est une matrice semi-définie positive si au moins l’une des VP est nulle et les autres sont strictement positives
Pour qu'un point stationnaire x* soit un point extremum, alors la matrice Hessienne de f (x ) évaluée en x * est:
• Positive définie lorsque x * est un point de minimum relatif (absolu)
• Négative définie lorsque x * est un point de maximum relatif(absolu)
Exemple
• Trouver les extremums de f( x1, x2 )= (x2 − x1)2 + (1− x1)2 1 𝑇
𝑓 𝑥 ∗ +𝑝 ≈ 𝑓 𝑥 ∗ + 𝛻𝑓 𝑇 • p. + 𝑝 • 𝐻p+. . .
Minimum local à x* si f(x*) <f(x) quelque soit x au voisinage de x*: 2!
1
On a alors: 𝛻𝑓 𝑇 • p. + 𝑝𝑇 • 𝐻p ≥ 0
2!
• Si p est très faible alors 𝛻𝑓 𝑇 • p ≥ 0 quelque soit p? 𝛻𝑓 𝑇 x ∗ = 0 (condition nécessaire)
1
𝛻𝑓 𝑇 (𝑥 ∗) • p. + 2! 𝑝𝑇 • 𝐻p ≥ 0 Si p est tres faible alors 𝑝𝑇 • 𝐻p ≥ 0
1 l 2 x 1 0 (1 l )x 1 2x 2 0
Ax l x
2 4 l x 2 0 2x 1 (4 l ) x 2 0
Pour 𝜆1 = 0
1 l 2 x 1 0 2x 2 2
x 1 2x 2 0 x 1 2x 2 x x2
2 4 l x 2 0 x 2 1
2x 1 4x 2 0
n
x i
x 2 2x 2 2 1 2
i 1 x x 2 2 1 x 2 5 1
2 x x2
2
x
1 5 1
4x 1 2x 2 0 x1 1 1 1
x x 1 (normés)
Pour 𝜆2 = 5 2x 1 x 2 0 x 2 2x 1 2x 1 2 5 2
Optimisation Non linéaire, Master Green Bee
On considère la fonction de deux variables indépendantes définie sur R2
par f(x,y) = x3 + y4 - yx2 - xy2
𝜕𝑓
= −2(𝑥2 − 𝑥1 ) − 2(1 − 𝑥1 )
𝜕𝑥1 f’d(x) =. ∇f(x)Td (produit scalaire)
f
2(x 2 x 1 )
x 2 d vecteur unitaire: module ou norme =1 normaliser par (2)^1/2
f
2(x 2 x 1 ) 2(1 x 1 ) 2
x 1 x (0,0)
1
f 𝑓′𝑑 (0,0) = −2 ∗ <0
0 2
x 2 x (0,0)
Optimisation Non linéaire, Master Green Bee
Calculer la dérivée directionnelle de f selon la direction 𝑑 = 1/ 2(1,1) au point (0,0)
f
2(x 2 x 1 ) 2(1 x 1 ) 2
x 1
f( 0, 0 )= 1
Considérons un point le long de la direction (1,1) ex. (1/4,1/4)=1/4 (1,1)
f(1,4,1/4)=9/16
F a diminué!! Selon cette direction
Si Dx se fait le long d’un direction de descente alors 𝑓(𝑥𝑘 + 𝛥𝑥) − 𝑓(𝑥𝑘 ) = 𝛻𝑓 𝑇 • 𝛥𝑥 < 0
En pratique, un ou plusieurs critères d'arrêt sont définis et calculés à chaque itération. Ce(s) critère(s)
d'arrêt ont pour objectif d'arrêter les calculs car il est fort probable que la solution ne sera jamais
trouvée!!!!
a c b
g
g a c b
c
g
a b
a
b
Optimisation Non linéaire, Master Green Bee
Méthode de Newton
• Utilisée aussi pour trouver le zéro d’une fonction g(x), différentiable sur g
[a,b] par un processus itérative
Pour la keme itération, l’ équation de la pente de la courbe g(x) en x=xk est
y-g(xk)=g’(xk)*(x-xk). g xk
Cette droite coupe l’axe des en xk+1 tq:
xk+1=xk-g(xk)/g’(xk)
Qui s'approche du zéro x k 1 xk
Le processus s‘arrête lorsque la différence entre deux itération successive est
inferieur à une tolérance définie au préalable?
Pour trouver les points critiques (min, max, ou point d’inflexion) d’une Methode de la secante
fonction, remplacer g(x) par f’(x) On peu approximaer la derivé par la
xk+1=xk-f’(xk)/f’’(xk) pente de la sequente passant par xk et x-
C’est aussi le minimum de l’approximation quadratique (AQ) de f en xk. On xk+1=xk-g(xk)/g’(xk)
peut l’imaginer comme une séquence de minimisation de ces AQ..
Ecrire un algorithme pour cette technique g’(xk)~(g(xk)-g(xk-1))/(xk-xk-1)
Méthode Nécessite le calcul de f’(x) et f’’(x)
Ce n’est Pas possible par des fonctions implicites (ex. intégrales,…)
numérique
La direction choisie doit permettre de réduire la valeur courante de la fonction dk direction admissible si
objectif (puisqu'on est dans un problème de minimisation),
k+1 k k k 𝑋 (𝑘+1) = 𝑋 (𝑘+1) + 𝑝𝑘 𝑑 (𝑘)
f(x )=f(x +pkd ) < f(x )
dk est donc une direction de descente. est admissible 𝑑 (𝑘)
• Dans le cas générale elle doit être tq: dk = -(B(xk))-1 f(xk) Où Bk est une
matrice définie positive.
• Si B est une matrice définie positive alors B-1 est aussi définie positive
• En effet, dans ce cas f’d(x) = -∇f(x)T. (B-1 ) ∇f(x)T < 0
dk est donc une direction de descente.
Pour définir la direction de recherche, il suffit de choisir une telle matrice B
Les Méthodes de direction de descente est une famille de méthodes itératives basées sur l’utilisation du gradient de la
fonction objectif lors des itérations.
Elles s'appliquent à des fonctions dérivables dont on connaît l'expression analytique mais dont le calcul direct du minimum
est difficile.
Les choix précis de 𝑑 (𝑘) ou Bk et pk conduisent à toute une série de méthodes particulières : méthode du gradient de
descente, du gradient conjugué, Méthode de Newton, méthodes quasi-Newton….
•Critères d’arrêt/convergence
Les critères d'arrêt les plus souvent utilisés sont :
• un nombre maximal d'itérations,
• une non-évolution de la fonction objectif par l'évaluation de f(xk+1) -f(xk),
𝜕𝑓
• Gradient nul en xk. Utiliser la norme 𝛻𝑓(𝑋 𝑘 ) ∞
= max( 𝜕𝑥𝑖
)<tolérance t
• une non-évolution de la distance entre deux points successifs par l'évaluation de la norme de (xk+1- xk).
• Ces deux derniers critères seront comparés à une certaine tolérance t (10-3, 10-4,...).
𝑇
Noter que φ′ 0 = 𝛻𝑓 𝑋 (𝑘 . 𝑑 𝑘 < 0 car d est une direction de descente
Optimisation Non linéaire, Master Green Bee
c) Pas approché (par itération): inexacte line search
direction de descente à x0=(1,1)
• La recherche d’un pas «satisfaisant » le long de la direction de descente est souvent appelée
j( p )
recherche linéaire « line search » puisque cela revient à observer comment se comporte la
fonction le long de la ligne donnée par la direction de descente. Pas p produit une
• The goal of the line search is not to find the value of p that minimizes jp). The exact line décroissance Suffisante
search may be time-consuming for complicated functions
l(p)= j(0)-g1p
• On cherche alors un pas pk qui qui permet juste une diminution de f jugée suffisante
• Then inexact line search rules, such as Armijo rule, Goldstein rule and Wolfe rules, etc., are
generally used.
la tangente en xk
Notion de diminution suffisante
𝑇
En 𝑋𝑘, 𝑘
on ne connait que 𝑓(𝑋 ) = φ 0 et la pente φ′ 0 = 𝛻𝑓 𝑋 (𝑘 . 𝑑𝑘
𝑇
𝑘 (𝑘
L’équation de la tangente en xk (ou p=0) est 𝑦 = 𝑓(𝑋 ) + 𝑝𝑘 𝛻𝑓 𝑋 . 𝑑𝑘 Pas long mais produit
une petite
Le pas pk doit permette au moins une diminution proportionnelle au pas: Soit j( p ) décroissance!!
𝑘+1 𝑘 𝑘 (𝑘) 𝑘
𝑓(𝑋 ) −𝑓(𝑋 ) = 𝑓(𝑋 + 𝑝𝑘 𝑑 ) −𝑓(𝑋 ) ≤ −𝛾1 𝑝𝑘
ou 𝑓(𝑋 𝑘 + 𝑝𝑘 𝑑(𝑘) ) ≤ 𝑓(𝑋 𝑘 ) − 𝛾1 𝑝𝑘 (g1 >0)
• Le pas est acceptable si j(pk)=f(xk+1) est au dessous de la droite j(0)-g1p
C’est la condition de diminution suffisante ( sufficient decrease condition):
j( p ) ≤ l(p)= j(0)-g1p.
Si le pas est grand il doit produire une diminution significative!! C’est ce qui est
indiqué par cette condition!!!
𝛾1 = 2
Optimisation Non linéaire, Master Green Bee
la Règle/condition de dimunituion suffisante… x0=(1,1)
• Le facteur g1 doit dépendre de la pente de f au point xk dans la direction dk (dérivée
directionnelle) proportionnel à f’d . En effet, dans le deuxième cas la diminution ne
sera pas significative il faut diminuer g1(voir figure). Donc g1 doit être proportionnel à
la dérivée directionnelle en xk.
γ1 = −μ1 𝛻𝑓 𝑇 𝑥𝑘 . 𝑑𝑘 . Avec 0<m1<1
On obtient la Règle/condition, d’Armijo ou la première condition de Wolf g1=2 dans les deux cas
𝑇
On cherche le pas pk qui est tq: 𝑓(𝑋 𝑘+1 ) = 𝑓(𝑋 𝑘 + 𝑝𝑘 𝑑(𝑘) ) ≤ 𝑓(𝑋 𝑘 ) + 𝜇1 𝑝𝑘 𝛻𝑓 𝑋 (𝑘 . 𝑑𝑘
Ou φ 𝑝𝑘 ≤ φ 0 + 𝜇1 𝑝𝑘 φ′ 0 avec m1 ∈]0, 1[
𝑇 x0=(1,0.5)
𝑘+1 𝑘 (𝑘) ′ (𝑘 𝑘
Rappel: φ 𝑝𝑘 = 𝑓(𝑋 ) = 𝑓(𝑋 + 𝑝𝑘 𝑑 ) et φ 𝑝𝑘 = 0 = 𝛻𝑓 𝑋 .𝑑 ≤ 0
• In other words, the reduction in f should be proportional to both the step length pk and the
directional derivative ∇fTk pk .
g1=0.5
• Pente élevée: on peut faire des grands pas et avoir une diminution importante
• Pente faible: grands pas ne donne pas nécessairement une diminution significative!!)
• Si m1 est petit permet des pas élevé Wolf
• Si m1 est proche de 1 la ligne est proche de la tangente de f à xk petits pas sont acceptés x0=(1,0.5)
dans ce cas
• Cette condition évite donc de faire des grand pas qui n’entrainent pas une diminution
suffisante!!
Optimisation Non linéaire, Master Green Bee
2eme Condition de Wolf
La première condition de Wolf permet d’éviter les pas longs qui n’entraine pas une
diminution suffisante: φ 𝑝𝑘 ≤ φ 0 + 𝜇1 𝑝𝑘 φ′ 0
Mais elle peut arrêter la recherche à des endroit ou la pente est élevée ou on doit
continuer la recherche!!!
En effet:
𝑇
′ (𝑘
À pk=0, φ 𝑝𝑘 = 0 = 𝛻𝑓 𝑋 . 𝑑𝑘 ≤ 0
𝑇
À pk=pk* (min de j) φ ′
𝑝𝑘∗ = 𝛻𝑓 𝑋 (𝑘)
+ 𝑝𝑘∗ 𝑑𝑘 . 𝑑𝑘 = 0
• La pente φ′ 𝑝𝑘 augmente de φ′ 0 <0 à pk=0 jusqu’à 0 à pk* et puis devient
positive en se déplacement le long de dk (augmenter p)
𝑇
• l’augmentation de la pente est alors égale à: φ 0 = 𝛻𝑓 𝑋 . 𝑑𝑘 ′ (𝑘
• On peut juste exiger que le pas pk résulte en une augmentation de la dérivée directionnelle d’une certaine
fraction m2 de celle à pk=0 (sans être trop exigent et aller à pk* ) car on sait pas le comportement de f en
pk*
𝑇
𝛻𝑓 𝑋 𝑘 +𝑝𝑘 𝑑 𝑘 .𝑑 𝑘 𝑇 𝑇
𝑇 ≤ m2 soit 𝛻𝑓 𝑋 𝑘
+ 𝑝𝑘 𝑑 𝑘
. 𝑑 ≥ m2 𝛻𝑓 𝑋
𝑘 (𝑘
. 𝑑𝑘 (dérivée directionnelle négative) 0<m1<m2<1:
𝛻𝑓 𝑋 (𝑘 .𝑑 𝑘
Ceci évite de s’arrêter aux pas ou la pente est encore très grande!!!
Optimisation Non linéaire, Master Green Bee
• Si m2 est petit alors φ′ 𝑝𝑘 0, on préfère le pas proche du pas optimal
• Si m2 est proche de 1, alors φ′ 𝑝𝑘 φ′ 0 , on permet les petits pas φ′ 𝑝𝑘
Le pas p est déterminer itérativement . On peut imposer une autre condition pour ne
pas s’éloigner du pas optimale lorsque la pente est positive..
• This makes sense because if the slope φ′ 𝑝𝑘 is strongly negative, we have an indication that
we can reduce f significantly by moving further along the chosen direction. On the other
hand, if φ′ 𝑝𝑘 is only slightly negative or even positive, it is a sign that we cannot expect
much more decrease in f in this direction, so it makes sense to terminate the line search.
𝑝𝑘∗
Strong Wolf condition: choisir pk tq:
𝑇 𝑇
𝛻𝑓 𝑋 𝑘 + 𝑝𝑘 𝑑𝑘 . 𝑑𝑘 ≤ m2 𝛻𝑓 𝑋 𝑘 . 𝑑𝑘
The only difference with the Wolfe conditions is that we no longer allow the
derivative j (pk ) to be too positive. Hence, we exclude points that are far from
stationary points of j minimum) .
• Line search methods use the current iterate to generate a search direction, and then focus their efforts on finding a
suitable step length pk along this direction. pk =min(f(xk+pkdk)
• A new direction is determine from the new iterate and the process continues until convergence (minimizes the QA of f
around x) and so on.
• Trust-region methods define a region (a circle, sphere , hyper sphere..) around the current iterate xk within which they
trust the model (QA) to be an adequate representation of the objective function, and then choose the step to be the
approximate minimizer of the model in this region le pas s est donc tq:
1
Minimiser 𝑄𝐴 𝑠 = 𝑓(𝑥𝑘 ) + 𝛻𝑓 𝑥𝑘 𝑇 𝑠 + 2 𝑠 𝑇 • 𝐻𝑘 (𝑠) (the model may not be quadratic, just a
local model of f)
Sc 𝑠 ≤ Rk (Rk rayon de l′ hypersphere)
• In effect, they choose the direction and length of the step simultaneously.
• If a step is not acceptable, they reduce the size of the region (Rk) and find a new minimizer.
• In general, the direction of the step changes whenever the size of the trust region is altered.
Sufficient decrease condition: Sufficient is associated with the slope of the function at the current iteration
Slope is still negative with a magnitude similar to the slope at the start of the line search, then the step is too small,
and we expect the function to decrease even further by taking a larger step.
𝑇 𝑇
Condition de Goldstein pour 0<m2<1: 𝛻𝑓 𝑋 𝑘 + 𝑝𝑘 𝑑𝑘 . 𝑑𝑘 ≥ m2 𝛻𝑓 𝑋 (𝑘 . 𝑑𝑘
φ′ ( 𝑝𝑘 ≥ φ 0 + 𝜇2 𝑝𝑘 φ′ 0
On choisi p qui satisfait les deux conditions..
En pratique on choisit souvent m1< 1/2 et m1 > 1/2 ,
Optimisation Non linéaire, Master Green Bee
Algorithm pour pas approché (backtraking)
Inputs:
p0 > 0: Initial step length
Sufficient decrease factor (typically small, e.g., m1=
10−4)
Backtracking factor (e.g., r= 0.5)
Outputs:
pk: Step size satisfying sufficient decrease condition
𝑝𝑘 =p0
while ) φ 𝑝𝑘 ≥ φ 0 + 𝜇1 𝑝𝑘 φ′ 0 ) do %%Function
value is above sufficient decrease line
𝑝𝑘 =r 𝑝𝑘 %%Backtrack
end while
f
x 2(x 1 2) 4
1
1. Calculer f(xo)
f 2(x 3) 6
2x
2
2. x1=x0-p1 f(xo)
x 1
1
x 2 3
2. x2=x1-p2 f(x1) =x1
Optimisation Non linéaire, Master Green Bee
Minimiser f (x1, x2) = -10 + x12+ (x2− 2)2 f
x 2x 1
Point de départ xo(0,0) f 1
x 0 f 2(x 2)
1
x 2
2
1. Calculer f(xo) f 4
f
x 0 0 p1 0
1 x 2 x 2(x 1 2) 4
2. x1=x0-p1 f(xo) x 1 1
1
x 2 0 4 p1
1
f 2(x 3) 6
2x
2
recherche en zigzag
𝑑𝑘+1 = 𝑟𝑘+1 − 𝛽𝑘+1 𝑑𝑘 Combinaison de la direction de la plus forte descente et de la direction précédente)
𝑇 𝑇
𝑟𝑘+1 𝑟𝑘+1 𝑟𝑘+1 𝐴𝑑𝑘
𝛽𝑘+1 = =- Coefficient qui rend les directions dk+1 et dk conjuguées (vérifier)
𝑟𝑘𝑇 𝑟𝑘 𝑑𝑘𝑇 𝐴𝑑𝑘
end
Optimisation Non linéaire, Master Green Bee
Exemple GC. On considère le système d’équations:
k=0
While 𝛻𝑓 𝑥𝑘 ≠ 0 & k <= Nmax
Déterminer pk (line search avec les conditions de Wolf, back-tracking)
Evaluer 𝑥𝑘+1 = 𝑥𝑘 + 𝑝𝑘 𝑑𝑘 Update solution
Evaluer: 𝛻𝑓 𝑥𝑘+1
𝛻𝑓 𝑥𝑘+1 𝑇 𝛻𝑓 𝑥𝑘+1 THE POLAK–RIBIERE
𝛽𝑘+1 = THE FLETCHER–REEVES METHOD METHOD AND VARIANTS
𝛻𝑓 𝑥𝑘 𝑇 𝛻𝑓 𝑥𝑘
Mettre à jour la direction: 𝑑𝑘+1 = −𝛻𝑓 𝑥𝑘+1 − 𝛽𝑘+1 𝑑𝑘
k=k+1 (compter les itérations)
End while
• Note that the search direction dk+1 may fail to be a descent direction (take de inner product with the gradient)
unless pk satisfies certain conditions (strong Wolf conditions.)
• No matrix operations are required for the step computation, and just a few vectors of storage are required.
Méthode BFGS
Les Méthodes Quasi-Newton diffèrent par la méthode utilisée pour mettre à jour la matrice Bk partant de Bo=I (ou H0=H0(x0)
𝑦𝑘 𝑇 𝑦𝑘 𝐵𝑘 𝑠𝑘 𝑠𝑘 𝑇 𝐵𝑘
• Méthode de Broyden-Fletcher-Goldfarb-Shanno (BFGS): 𝐵𝑘+1 = 𝐵𝑘 + −
𝑦𝑘 𝑇 𝑠𝑘 𝑠𝑘 𝑇 𝐵𝑘 𝑠𝑘
La matrice utile pour l’itération est l’inverse de B pour déterminer dK . Pour éviter le calcul de l’inverse de B , on peut construire à la place
une approximation de l'inverse de l’approximation de la Matrice Hessienne B-1
• On inverse les 2 membres de la formule BFGS pour obtenir:
−1 𝑠𝑘 𝑦𝑘 𝑇 𝑦𝑘 𝑠𝑘 𝑇 𝑠𝑘 𝑠𝑘 𝑇
𝐵𝑘+1 = 𝐼 − 𝑠 𝑇𝑦 𝐵𝑘−1 𝐼 − 𝑠 𝑇𝑦 + 𝑠 𝑇𝑦 si 𝑦𝑘 𝑇 𝑠𝑘 > 0 si non, on ne fait pas de mise à jour.
𝑘 𝑘 𝑘 𝑘 𝑘 𝑘
Moins couteuses en terme de temps calcul
Méthode de Davidon–Fletcher–Powell (DFP)
𝑦𝑘 𝑠𝑘 𝑇 𝑠𝑘 𝑦𝑘 𝑇 𝑦𝑘 𝑦𝑘 𝑇 • 𝑵𝒐𝒕𝒆𝒓 𝒒𝒖𝒆 𝑠𝑘 𝑇 𝑩𝒌+𝟏 𝒔𝒌 = 𝑠𝑘 𝑇 𝒚𝒌 𝒅𝒐𝒊𝒕 ê𝒕𝒓𝒆 ≥
• 𝐵𝑘+1 = 𝐼 − 𝐵𝑘 𝐼− + si 𝑦𝑘 𝑇 𝑠𝑘 > 0 𝟎, 𝒑𝒖𝒊𝒔𝒒𝒖𝒆 𝑩 𝒆𝒔𝒕 𝒑𝒐𝒔𝒊𝒕𝒊𝒗𝒆 𝒅𝒆𝒇𝒊𝒏𝒊𝒆!!
𝑦𝑘 𝑇 𝑠𝑘 𝑦𝑘 𝑇 𝑠𝑘 𝑦𝑘 𝑇 𝑑𝑘
• Mieux évaluer l’inverse directement • garantie par le condition de Wolf pour le choix du pas
𝑇
−1 −1 𝑑𝑘 𝑑𝑘 𝑇 𝐵𝑘−1 𝑦𝑘 𝑦𝑘 𝐵𝑘−1
• 𝐵𝑘+1 =𝐵 + −
𝑦𝑘 𝑇 𝑠𝑘 𝑦𝑘 𝑇 𝐵𝑘−1 𝑦𝑘
Méthode DFP en général moins efficace que BFGS
Optimisation Non linéaire, Master Green Bee
Algorithme BFGS
On commence par un point de départ x0
Calcul le gradient 𝛻𝑓 𝑥𝑜 𝑒𝑡 hessien 𝐻𝑜
• k=0, Nmax=1000, eps=10-3(1 e-3)
• 𝐷0 = 𝐼 𝑜𝑢 𝐷0 = 𝐻0−1
While 𝛻𝑓 𝑥 ≥ 𝑒𝑝𝑠 and k<=Nmax
Calculer 𝑑𝑘 = −𝐷𝑘 𝛻𝑓(𝑥𝑘 )
Evaluer pk en utilisant la recherche linéaire avec condition de Wolf(ex. backtracking)
Evaluer 𝑥𝑘+1 = 𝑥𝑘 + 𝑝𝑘 𝑑𝑘
Evaluer 𝒔𝒌 =𝑥𝑘+1 − 𝑥𝑘
Mettre à jours 𝛻𝑓(𝑥𝑘+1 )
Evaluer 𝒚𝒌 = 𝛻𝑓𝑘+1 − 𝛻𝑓𝑘
𝑠𝑘 𝑦𝑘 𝑇 𝑦𝑘 𝑠𝑘 𝑇 𝑠𝑘 𝑠𝑘 𝑇
Evaluer 𝐷𝑘+1 = 𝐼 − 𝐷𝑘 𝐼− +
𝑠𝑘 𝑇 𝑦𝑘 𝑠𝑘 𝑇 𝑦𝑘 𝑠𝑘 𝑇 𝑦𝑘
k=k+1
End
Exemple
Max. f (x, y) = 10 − x2− (y − 2)2 ,
SC x + 2y = 5,
Optimisation Non linéaire, Master Green Bee
La méthode de la variation contraignée
Minimiser f(x1,x2)
SC g1(x1,x2)=0
𝜕𝑓 𝜕𝑓
On cherche le minimum de f sur la frontière imposée par g1 À la solution x* on a: 𝑑𝑓 = 𝜕𝑥 d𝑥1 + 𝜕𝑥 d𝑥2 = 0
1 2
𝜕𝑔1 𝜕𝑔1 𝜕𝑓 𝜕𝑓 𝜕𝑔1 𝜕𝑔1 𝜕𝑔1 𝜕𝑔1
d𝑥2 = − d𝑥 / 𝑑𝑓 = ( − ∗ / )d𝑥1 = 0 𝑑𝑔 1 = d𝑥1 + d𝑥2 = 0
𝜕𝑥1 1 𝜕𝑥2 𝜕𝑥1 𝜕𝑥2 𝜕𝑥1 𝜕𝑥2 𝜕𝑥1 𝜕𝑥2
Soit:
𝜕𝑔1
𝜕𝑓 𝜕𝑓 𝜕𝑥1
− ∗ 𝜕𝑔1 =0
𝜕𝑥1 𝜕𝑥2
𝜕𝑥2
que l’on peut utiliser avec la contrainte g1(x1,x2)=0 pour trouver la solution
(système de deux équations à deux inconnues )
𝜕𝑔1 𝜕𝑓 𝜕𝑓
𝜕𝑓 𝜕𝑓 𝜕𝑥1 𝜕𝑥1 𝜕𝑥2
à x* on − ∗ 𝜕𝑔1 = 0 soit 𝜕𝑔1 = 𝜕𝑔1 =𝜆
𝜕𝑥1 𝜕𝑥2
𝜕𝑥2 𝜕𝑥1 𝜕𝑥2
𝜕𝑓 𝜕𝑔1 Soit 𝜵𝑓(x*)=l 𝜵𝑔(𝑥 ∗)
=𝜆
𝜕𝑥1 𝜕𝑥1
𝜕𝑓 𝜕𝑔1
=𝜆
𝜕𝑥2 𝜕𝑥2
Soit
• We wish to find x that makes F equal to the zero vectors, so let’s choose x1 so that F(x0) + JF(x0)(x1 − x0) =
0. JFdéfinit la matrice jacobienne associée à f
• Since JF (x0) is a square matrix (Jacobian), we can solve this equation by x1 = x0 −JF.(x0))−1 F(x0), provided
that the inverse exists.
• However, in practice we never use the inverse of a matrix for computations, so we cannot use this
formula directly.
• Rather, we can do the following. First solve the equation JF(x0)∆x = −F(x0), where we want to have ∆x = x1
− x0. Since JF(x0) is a known matrix and −f(x0) is a known vector, this equation is just a system of linear
equations, which can be solved efficiently and accurately.
• Once we have the solution vector ∆x, we can obtain our improved estimate x1 by x1 = x0 + ∆x.
• For subsequent steps, we have the following process:
• Solve: JF 𝑥𝑖 ∗ Δ𝑥 = −𝑓(𝑥𝑖) for ∆x.
• Update xi+1 = xi + ∆x
Exemples
Max. f (x, y) = 10 − x2− (y − 2)2 ,
SC x + 2y = 5,
x = 1∕5 and y = 12∕5.
Minimiser 𝑓(𝑥, 𝑦) = 𝑘𝑥 −1 𝑦 −2 a a a
x* et y* 2
SC 𝑥 2 + 𝑦 2 = 𝑎2 3 3 3
Optimisation Non linéaire, Master Green Bee
Généralisation de la Méthode de Lagrange: PO NL avec contraintes d’inégalité
PO NL avec contraintes d’inégalité
Minimiser f (x)
SC: gj (x) ≤ 0, j=1, 2,…,m
• Transformer les contraintes d’inégalité en introduisant les variables d’écart yi
𝑚
(indépendantes des xi) (slack variables)
• Les nouvelles contraintes deviennent; Gj(x,y)= gj (x) + yj2=0, j=1, 2,…,m 𝐿(𝑥, 𝑦, 𝜆) = 𝑓(𝑥) + 𝜆𝑗 𝐺𝑗 (𝑥, 𝑦
• y est le vecteur des variables d’écarts (y1,y2,…ym)T 𝑗=1
• Et puis calculer le lagrangien L(x,y,l) où 𝜆 = (𝜆1 , 𝜆2 , . . . . . . 𝜆𝑚 )𝑇
Condition nécessaire d’optimalité pour L(x,y,l): • Minimiser f (x), revient à minimiser L(x,y,l), mais
puisque gi(x) ≤0, li doivent être positifs !!!!
𝑚
𝜕𝐿(x, y, 𝜆) 𝜕𝑓(x) 𝜕𝑔𝑗 (x) (pénaliser f si la contrainte est violée voir exemple)..
= + 𝜆𝑗 = 0, 𝑖 = 1,2, ⋯ , 𝑛
𝜕𝑥𝑖 𝜕𝑥𝑖 𝜕𝑥𝑖
𝑗=1
𝜕𝐿(x, y, 𝜆)
= 𝐺𝑗 (x, y) = 𝑔𝑗 (x) + 𝑦𝑗2 = 0, , 𝑗 = 1,2, ⋯ , 𝑚 Garantie que les contraintes soient satisfaites (rester le
𝜕𝜆𝑗
𝜕𝐿(x, y, 𝜆) domaine faisable)
= 2𝜆𝑗 𝑦𝑗 = 0, 𝑗 = 1,2, ⋯ , 𝑚
𝜕𝑦𝑗
𝜆𝑗 ≥ 0, 𝑗 = 1,2, ⋯ , 𝑚; lj=0 ou yj=0 (garantie que le minimum de L coïncide avec celui de f)
• Si lj=0, jeme constrainte est inactive et peut être ignorée (yj
Système de (n+2m) équations et (n+2m) inconnues diffèrent de zéro)
• Si yj=0, jeme constrainte est active au point optimale
• Comment résoudre?
Optimisation Non linéaire, Master Green Bee
Conditions de Karush–Kuhn–Tucker (KKT)
𝜕𝐿(𝑥, 𝑦, 𝜆)
Remarquer que = 2𝜆𝑗 𝑦𝑗 → 𝜆𝑗 𝑦𝑗 = 0 → 𝜆𝑗 𝑦𝑗2 = 0 𝜆𝑗 𝑔𝑗 𝑥 ∗ = 0 (𝑦𝑗2 = −𝑔𝑗 )
𝜕𝑦𝑗
Les conditions de KKT sont obtenues de la condition necessaire d’optimalité pour le Lagrangien L et peuvent être ainsi
énoncées comme suit en un point de minimum local x*
𝑛
𝑚
𝜕𝑓 𝜕𝑔𝑗 𝛻x𝑓(𝑥 ∗) + 𝜆𝑖 𝛻x𝑔𝑖 (𝑥 ∗) = 0
(𝑥 ∗) + 𝜆𝑗 (𝑥 ∗) = 0, 𝑖 = 1,2, ⋯ , 𝑛 (1)
𝜕𝑥𝑖 𝜕𝑥𝑖 𝑖=1
𝑗=1 Garantie que le Minimum de L coïncide avec minimum de f!!
𝜆𝑗 𝑔𝑗 (𝑥 ∗) = 0, 𝑗 = 1,2, ⋯ , 𝑚 (2 Soit la contrainte gj est actives lj≠0 ou inactive lj=0
𝑔𝑗 (𝑥 ∗) ≤ 0, 𝑗 = 1,2, ⋯ , 𝑚 (3 Garantie que les contraintes soient satisfaites (solution
𝜆𝑗 ≥ 0, 𝑗 = 1,2, ⋯ , 𝑚 (4 faisable)!!
min x21 + x2 2
SC x1 - x2 2 ≥4
x1 ≤10
Remarque:
• The KKT Conditions we have presented in previous sections are necessary conditions for a constrained
optimum. That is, for a point to be a candidate optimal solution,
• Sufficient conditions for a point to be a constrained minimum are the KKT equations are satisfied and the
Hessian of the Lagrangian function with respect to the original decision variables x, is positive definite,
• On peut ignorer les contraintes inactives dans la recherche de la solution tans qu’elle est satisfiate. Si la contrainte
g(x) ≤ 0 est inactive en x, alors toute direction est admissible en x.
• On peut considérer les contraintes actives à la solution comme des contraintes d’égalité (origine de l’algorithme
« Active set »
(100 x y ) 0 soit x y 100 (3)
3 équations à 3 inconnues
x* 25
y* 75 f ( x*, y*) 1125
l 5
Lorsqu’une contrainte d’égalité est respectée (hi) , son effet ou sa contribution à P(ou à fp) est zéro. Cependant, quand elle
est violée, fp est fortement pénalisée.
• De même, il n'y a pas de pénalités lorsque les contraintes d'inégalité sont satisfaites gi <0 ou sont actives (rôle de la
fonction sup)
On peut alors utiliser les techniques d’optimisation sans contraintes pour trouver le minimum de fp pour chaque valeur de
m et tendre la solution es obtenue pour des valeurs de Non
Optimisation m très grandes
linéaire, Master Green Bee
By driving µ to ∞ , we penalize the constraint
violations with increasing severity. It makes good intuitive sense to consider a sequence of
values {µ k } with µ k ↑ ∞ as k → ∞ , and to seek the approximate minimizer x k of Q(x ; µ k )
for each k. Because the penalty terms in (17.2) are smooth, we can use techniques of unconstrained optimization to
search for x k .
• Penalty methods add to the objective function a term that prescribes a high cost for constraint violation.
• Barrier methods add a term that favors points interior to the feasible domain over those near the boundary
• A parameter m is used to control the impact of the additional term.
Pour les contraintes
• They usually work on the n-dimensional space d’inégalité:
of variables directly.
Dans la méthode du point extérieur, on approche la solution de
l’extérieur du domaine des solutions admissibles
Le PO devient un problème sansOn peut aussi utiliser
contrainte dont lades pénalités
fonction de types
objectif barrières..
« décourage » les points non
• êtes
admissibles (pénalités si vous dehors du
Contrainte domaine)
d’inégalité g(x) 0 P(x,l)=
ou≤impose l log(g(x))
une barrière (doitou
être
P=continue)
- dans
m/g(x) pour empêcher les variables de décisions ne s’approche pas de
la frontière du domaine des solutions,
cette zones (mur= Optimal lorsque l et m ) l’infini
P =0 dans le dodine des solutions
• Lorsqu’une contrainte d’égalité est respectée (hi) , son effet ou sa contribution à P(ou à fp) est zéro. Cependant, quand elle est
violée, fp est fortement pénalisée. Pour forcer la contrainte d’égalité m∞
• De même, il n'y a pas de pénalités que lorsque les contraintes d'inégalité sont satisfaites ou sont actives (rôle de la fonction sup)
• On peut alors utiliser les techniques d’optimisation sans contraintes pour trouver le minimum de fp pour chaque valeur de m
• Pour faciliter l’implémentation numérique, on peut prendre des coefficients de pénalités constants (relativement élevés) et on reduit
• Cette méthode est plus facile à mettre en œuvre numériquement que les conditions de KKT..(optimisation sans contraintes)
Optimisation Non linéaire, Master Green Bee
2. Méthodes des pénalités intérieures:
c) Trouver dans chaques cas les solution analytiques x*(m) et puis les limites de ces solurtion
https://www.mathworks.com/help/optim/ug/problems-handled-by-optimization-toolbox-functions.html
Problème multidimensionnel
Méthode de Nedler et Mead (simplexe) fminsearch
sans contrainte
Problème multidimensionnel
Méthode « quasi-Newton » fminunc
sans contrainte
Problème multidimensionnel
Méthode « Gauss-Newton »; Méthode de Newton
sans contrainte - (Ajustement par la méthodes des lsqnonlin
Modifiée
moindres carrées, Identification paramétrique
Entrée :
fun : dans le premier cas, fun est une fonction externe (fonction objectif qu'on
cherche à minimiser).
Clear all;
Dans le second cas, fun est une fonction anonyme où est exprimée la fonction x0 = [0.25,-0.25];
objectif qu'on cherche à minimiser. x = fminsearch(@objectivefcn1,x0)
x0 : vecteur des valeurs initiales pour démarrer la méthode. La dimension de x0 est
égale au nombre de variables du problème ; function f = objectivefcn1(x)
f = 0;
Sortie : for k = -10:10
f = f + exp(-(x(1)-x(2))^2 -
x : valeur finale des variables, ce sont les solutions si la méthode a convergé ;
2*x(1)^2)*cos(x(2))*sin(2*x(2));
fval : valeur finale de la fonction à minimiser ; end
https://fr.mathworks.com/help/optim/ug/fmincon.html
linprog
Solve linear programming problems
Syntax A = [1 1;
x = linprog(f,A,b) 1 1/4;
x = linprog(f,A,b,Aeq,beq) 1 -1;
-1/4 -1;
x = linprog(f,A,b,Aeq,beq,lb,ub)
-1 -1;
x = linprog(f,A,b,Aeq,beq,lb,ub,options) -1 1]
x = linprog(problem) b = [2 1 2 1 -1 2]
[x,fval] = linprog(___) f = [-1 -1/3]
[x,fval,exitflag,output] = linprog(___) x = linprog(f,A,b)
[x,fval,exitflag,output,lambda] = linprog(___)
https://fr.mathworks.com/help/optim/ug/linprog.html
Fonction lsqnonlin
Solve nonlinear least-squares (nonlinear data-fitting) problems
Syntax
x = lsqnonlin(fun,x0) 1.2
x = lsqnonlin(fun,x0,lb,ub) Data
Best fit
x = lsqnonlin(fun,x0,lb,ub,options) 1
x = lsqnonlin(problem) 0.8
[x,resnorm] = lsqnonlin(___)
0.6
[x,resnorm,residual,exitflag,output] = lsqnonlin(___)
exp(-tx)
[x,resnorm,residual,exitflag,output,lambda,jacobian] = lsqnonlin(___) 0.4
0.2
GA et PSO 2
Heuristiques et Meta-heuristiques
Heuristiques
Le terme heuristique dérive du grec heuriskêin « trouver ». Il qualifie tout ce qui sert à la découverte et à l’exploitation.
Il signifie aussi l’art d’inventer, de faire des découvertes.
• Une heuristique est un algorithme spéciale qui fournit rapidement une solution approchée et réalisable, pas
nécessairement optimale, pour un problème d’optimisation donné (spécifique) (ex. optimisation combinatoire,
mixte, multi-objectif..) .
• les heuristiques sont des règles empiriques simples qui se basent sur l’expérience et les relations accumulées au fil
des résultats
• La solution peut être locale (max. ou min relatif) ou globale (absolue)
• Une méthode heuristique peut être déterministe ou stochastique.
Les méta-heuristiques
• Meta: au delà ou à un plus haut niveau
• Les Meta-heuristiques sont des stratégies qui permettent de guider la recherche d’une solution et d’explorer l’espace
de recherche efficacement afin de déterminer des points (presque) optimaux.
• Les méta-heuristiques forment une famille d’algorithmes d’optimisation visant à résoudre des problèmes
d’optimisation difficile, pour lesquels les méthodes classiques (gradient..) n’est plus efficaces.
• Elles sont utilisés pour optimiser une large gamme de problèmes d’où le terme méta (au delà)
• Les métaheuristiques sont considérées comme des algorithmes stochastiques itératifs, où une ou plusieurs solutions
(population) sont manipulées à la recherche de l’optimum.
• Les itérations successives doivent permettre de passer d’une solution de mauvaise qualité à la solution optimale.
GA et PSO 3
Classification des Heuristiques….
1. Méthodes utilisant des trajectoires (parcours): Manipulent un seul point(solution)
à la fois et tentent itérativement d’améliorer ce point.
• Elles construisent une trajectoire(parcours) dans l’espace de recherche(solutions Méthodes à parcours. Ou
approche à trajectoire
faisables) en tentant de se diriger vers des solutions optimales.
Exemples
• La recherche locale (descente, hill climbing..).
• Le recuit simulé
• La recherche tabou (interdire de revenir sur les dernières positions explorées.(le
nom de tabou) pour éviter de retourner à un minimum local.
Parallélisme (representation.):
• Un individu (aussi appelé chromosome) est une solution faisable (optimale ou non) à un problème
d’optimisation donné (x1,x2,…xn)
• Une population est un ensemble d'individus càd de solutions admissibles(taille Np)
• Un gène sera une partie d'une solution donc d'un individu (chromosome) (ex. valeur d’une des
variables de décision(xi), ou bit..)
• Une génération est une itération de l’algorithme génétique (qui génère une nouvelle population).
• Un algorithme génétique va faire évoluer une population dans le but d'en améliorer les individus
(solutions).
• La fonction objectif f est appelée fonction performance, ou fonction d'adaptation (fitness en anglais) et
sera utilisé pour comparer l’adaptabilité ou fitness des individus..
GA et PSO 6
Algorithme génétique: mise en œuvre
1. Initialisation de la population: Génération aléatoire d’une
population Po de Np individus dans l’espace de recherche des Population
solutions admissibles(W), avec une probabilité uniforme sur W Initiale et Codage
2. Evaluation des individus de P0 par le calcul des valeurs de la
fonction objectif f pour chaque individu (solution);
Sélection
La génération i (ieme itération) permet de construire la population
“survie du mieux
Pi à partir de la population Pi-1 comme suis: adapté Elitisme
3. Sélection des individus (parents) les plus performants (au sens de
f) de Pi-1 (sélection par roulette, tournoi..)
q
4. Croisement des parents (probabilité Pc ) pour générer des enfants
(croisement en un point,..) ; Croisement
5. Mutation de certains gènes des enfants (Probabilité Pm) Reproduction
6. Evaluation des enfants et Remplacement des parents au moyen
d'une sélection darwinienne avec participation éventuelle des
parents. Mutation
7. L'évolution s’arrête quand le niveau de performance souhaité est
atteint, ou qu'un nombre fixé de générations (Ng) s'est écoulé Ieme population Pi
sans améliorer l'individu le plus performant.
Np, Ng, Nc et Nm sont des paramètres de l’algorithme
GA et PSO 7
Représentation de l’espace de recherche: Codage
Rappel: le chromosome représente une conception particulière(solution faisable) puisque des valeurs sont spécifiées
pour chacune des variables de décision.
Parmi les représentations les plus utilisées de ces chromosomes on distingue:
1. Codage en bits ou chaînes de bits (bit string)
Dans cette représentation, plusieurs gènes(bits) peuvent être utilisés pour représenter chaque variable de décision. La
valeur de chaque gène est soit zéro, soit un.
L'espace de recherche est ici W = {0,1}N qui est historiquement celui de l'école des algorithmes génétiques,
• parallèle avec la biologie (une chaîne de bits étant assimilée à un chromosome; ex. 0110001011001)
• permet également une présentation aisée des divers composants de l'algorithme (croisement, mutation…).
Il faut procéder au codage des solutions
2. Les vecteurs de réels (Codage en valeur)
• La représentation la plus simple est une représentation de valeur où le chromosome se compose des valeurs des
variables de conception placées côte à côte(simple)
Exemple de chromosome à 10 gènes(variables dans ce cas)
GA et PSO 8
Codage binaire
Rappels: Nombres décimaux (base 10 ) sont des codes avec 10 chiffres (0 à 9): (235 = 2*102+3*101+5*100 ) 3 chiffres on
petit représenter des nombres allant de 0 à 103-1
Nombres binaires (base 2) 2 bits 0 et 1 :
• Avec n bits on peut représenter des nombres allant de 0 à 2n-1
𝑁 = 𝑉𝑎𝑙𝑒𝑢𝑟. 𝑑𝑒𝑐𝑖𝑚𝑎l du code binaire (a𝑛 … a2. a1. a0)=an*2n+….+a2*22+a1*21+a0*20
• le code 1011 (4 bits) N=1*23+0*22+1*21+1*20 . Quel est le code binaire qui correspond à 43 ?
𝑏𝑖 − 𝑎𝑖
xi peut être codé en une chaine de mi bit et la valeur de xi 𝑥𝑖 = 𝑎𝑖 + 𝑉𝑎𝑙𝑒𝑢𝑟. 𝑑𝑒𝑐𝑖𝑚𝑎l du code binaire.
2𝑚𝑖 − 1
𝑁 = 𝑉𝑎𝑙𝑒𝑢𝑟. 𝑑𝑒𝑐𝑖𝑚𝑎l du code binaire (ami−1 … a2. a1. a0)=ami-1*2mi-1+….+a2*22+a1*21+a0*20
Ex. -1<x<2
Précision de deux décimales, alors 2 − (−1) 102 ≤ 2𝑚 − 1 → 2𝑚 ≥ 301 → 𝑚 = 9
Diversité: Plus les individus de la population de départ seront différents les uns des autres, plus il y a de la chance
d'y trouver, non pas la solution parfaite, mais de quoi fabriquer les meilleures solutions possibles(gènes).
• La taille de la population initiale Np est également laissée à l'appréciation du programmeur.
GA et PSO 10
L'évaluation des individus
• Une fois que la population initiale a été créée, il faut en sortir les individus les plus prometteurs, ceux qui vont participer à
l'amélioration de la population.
• Une 'note' ou un indice de qualité (ou d’adaptation) est attribuée à chaque individu. La méthode d'évaluation des individus
est fonction du problème à optimiser ou à résoudre.
• GAs mimic the survival-of-the-fittest principle of nature to make a search process suitable for maximization
• Cette fonction de « fitness » doit être évaluée pour chaque chromosome (individu) de la génération actuelle pour évaluer
son dégrée d’adaptabilité (fitness) (the real world ‘Struggle for life’)
• Pour un Problème de maximisation, la fonction de «fitness » peut être la fonction objectif (PO sans contraintes), ou la
fonction objectif pénalisée avec les contraintes non actives
Les algorithmes génétiques utilisent généralement une fonction d'échelle pour
PO NL avec contraintes d’inégalité
transformer les valeurs de la fonction objective f des valeurs réelles positives,
puisque le mécanisme de sélection standard des algorithmes génétiques Maximiser f (x)
nécessite des valeurs de fitness positives (roulette wheel selection) et les valeurs
de fitness les plus élevées pour les meilleurs individus des calculs de probabilité SC: gj (x) ≤ 0, j=1, 2,…,m
(fitness=a*f+b)
Minimisation: on peut juste sélectionner les individus ayant les plus faibles valeur de f ou définir fitness=1/(1+f), ou exp(-
beta*f), (beta=1, ou 2)
Pour les contraintes: on peut aussi juste vérifier si les solutions sont faisables ou nom au lieu de pénaliser!!!
Après, l'algorithme génétique passe alors par un processus en quatre étapes pour créer une nouvelle génération à partir de
la génération actuelle: GA et PSO 11
La sélection
Objectif: Sélectionner les meilleurs parents pour le croisement (reproduction)
Principe: Toujours favoriser les meilleurs individus, mais de manière stochastique laisser une chance aux individus moins
performants. la selection est basée sur la “fitness” (ou adaptation)
Trois méthodes sont utilisées pour sélectionner deux parents pour le croisement
1. Le tirage de roulette: la plus célèbre des sélections stochastiques
• Supposant un problème d’optimisation avec uniquement des performances (fitness) positives
• Le tirage consiste à donner à chaque individu une probabilité d'être sélectionné proportionnelle à sa performance.
fitness proportionate selection
• Exemple de problèmes d’optimisation Maximiser le nombre de 1 dans une chaine de 6 bits
• La probabilité cumulative correspond à la Roue de la fortune classique sur laquelle chaque individu est représenté par une portion
proportionnelle à son adaptation (fitness).
• On effectue ensuite un tirage au sort sur cette roue (tirage d’un nombre aléatoire r entre 0 et 1 et sélection de l’individu :
• Si r <2/15 sélectionner 2, si r est entre 2/15 et 5/16 sélectionner 4…..
GA et PSO 12
Sélection
2. La sélection par le rang
• Consiste à faire une sélection en utilisant une roulette dont les secteurs sont
proportionnels aux rangs des individus (nécessite un tri par valeurs de leurs fitness).
• La variante linéaire utilise directement le rang (N pour le meilleur, 1 pour le moins bon,
pour une population de taille N)
GA et PSO 13
EXEMPLES/: le problème du sacs à dos
Problème Classique du sac-à-dos (Knapsack problem), (distribution des ressources)
• On dispose de 4 objets de masse wi et de valeur vi (chacun)
• Quels objets à mettre dans le sac-à-dos afin de maximiser la somme emportée tout en ne dépassant pas le poids total
• W= 15 kg autorisé ?
• Un seul type d’objet peut être emporté!! Objet Poids(kg) Valeur($)
Etape 1: Codage des chromosomes(1 = présence, 0 absence de l’objet)
A 5 12
Ci=
1 0 0 1 B 3 5
A B C D C 7 10
Etape 2: Initialisation : on choisi une population de 4 chromosomes D 2 7
aléatoirement
A B C D fitness Probabilité Prob. Cu
1 0 0 1 19 0,3015873 1
0 1 0 1 12 0,19047619 0,19
Total 1
GA et PSO 14
EXEMPLE/: Maximiser x^2 avec x entre 0 et 31
GA et PSO 15
Le croisement
• Cette étape est toujours stochastique, c'est à dire que le résultat de l'application d'un opérateur dépend de tirages aléatoires.
• L'idée générale du croisement est l'échange de matériel génétique entre les parents : si deux parents sont plus performants
que la moyenne, on peut espérer que cela est du à certaines parties de leur génotype, et que certains des enfants, recevant les
''bonnes'' parties de leurs deux parents, n'en seront que plus performants.
Comme tous les opérateurs génétiques, le croisement est appliqué avec une certaine probabilité notée Pc
c.a.d: pour un individu, tirer un nombre entre 0 et 1 au hasard, si r < Pc sélectionner l’individu
• Si on a une population de Np chromosomes,
• Np*Pc seront choisit pour le croisement, et Np (1-Pc) ne vont subir aucun croisement
2. Croisement réel
``Mélanger'' les deux parents par une combinaison linéaire. On parle alors de croisement arithmétique qui peut être :
GA et PSO 16
1. Chaînes de bits, les divers opérateurs de croisement échangent des bits (à position fixée) entre les
parents. Croisement à 1 point (emplacement: Tirage d’un nombre aléatoire i entre 1 et n (nombre de
bits qui donne la position du croissement)
GA et PSO 17
La mutation
L'idée directrice de la mutation est qu’on doit changer le matériel génétique de la population si non va tourner avec les
mêmes gènes de la population initiale!!!)
tout point de l'espace de recherche peut être atteint en un nombre fini de mutations par bit et non par individu
(Théorème!!)
• La mutation est effectuée sur les gènes des enfants avec une certaine probabilité!!!
• Le processus de mutation est très simple. On génère au hasard nombre entre zéro et un. Si le nombre aléatoire est
inférieur à la probabilité de mutation Pm, le gène est changé. Sinon, le gène est laissé inchangé.
• la probabilité de mutation est faible, la majorité des gènes sont laissés intacts.
• La mutation permet introduire occasionnellement de la diversité dans la population.
GA et PSO 18
2. Mutation nombres réels
2.1 Mutation Uniforme
In uniform mutation we select a random gene from our chromosome, let’s say
U(ai,bi) denotes a uniform random number
xi and assign a uniform random value to it.
from within the range [ai,bi]. (matlab:
Let xi be within the range [ai,bi] then we assign U(ai,bi) to xi
unifrnd(ai,bi,[1, Nvars])
2.2 Boundary Mutation (à bornes) Algorithm.
In boundary mutation we select a random gene from our chromosome , let’s say select a random integer number i form [1,n]
2. select a random real value r from (0,1).
xi and assign the upper bound or the lower bound of xi to it. 3. If(r >= 0.5) Set xi to bi else Set xi to ai
Algorithm.
2.3 Mutation non uniforme Select a random integer i within [1,n]
In non-uniform mutation we select a random gene from our chromosome, let’s 2. select two random real values r1 ,r2
from (0,1).
say xi and assign a non-uniformly distributed random value to it. 3. If(r1 >= 0.5) Set xi to (bi-xi) * f(G)
Loi normale: On choisi un gène aléatoire, xi , qui appartient à la gamme [ai,bi]. else Set xi to (ai+ xi) * f(G)
x’i=xi+sigma*d d est décrit par une loi uniforme U(-epis, epsil) F(G)=(r2*(1-G/Gmax))b ,
On peu aussi utilisé une distribution gaussien N(0,1) where r2 = a uniform random number between (0,1)
G = the current generation number
Sigma est appelé pas (sep size)
Gmax = the maximum number of generations
b = a shape parameter
2.4 Mutation Gaussien
La mutation gaussienne utilise la fonction d'erreur de Gauss. Elle est beaucoup
For calculation ui’ we first select a random value ui from within
plus efficace en convergence que la mutation uniforme ou à bornes. the range (0,1) and then use the following formula
Soit x’i le gène muté. Chaque variable a un opérateur de force de mutation (σi) if(ui>=0.5) u’i=2*uL*(1-2*ui) else u’i=2*uR*(2*ui-1)
Again uL and uR are given by the formula
et on pose σ= σi/(bi-ai) comme paramètre fixe adimensionnel pour toutes les n uL=0.5(erf( (ai-xi)⁄(√2(bi-ai)σ) )+1)
uR=0.5(erf( (bi-xi)⁄(√2(bi-ai)σ) )+1)
variables ; x’i= xi + √2 * σ * (bi-ai)erf-1(u’i) avec erf = fonctionGAerreur
et PSO 19
AG suite…..
Elitisme
• Les processus de sélection, de croisement et de mutation produisent des enfants
pour la nouvelle génération.
• Ces processus sont répétés pour créer de plus en plus d'enfants jusqu'à ce que le
nombre de conceptions dans la nouvelle génération atteigne la taille de la
population spécifiée. (Np)
• La dernière étape de l’algorithme qui doit être accomplie sur cette nouvelle
génération est l'élitisme
• Cette étape est nécessaire pour garantir que les meilleurs individus (conceptions)
survivent de génération en génération.
• La nouvelle génération est combinée avec la génération précédente pour
produire une génération combinée de 2Np individues, où Np est la taille de la
population
• La génération combinée est triée par fitness (sélection darwinienne), et les Np
solutions les plus adaptés survivent en tant que génération parentale suivante.
• Ainsi, les enfants doivent rivaliser avec leurs parents pour survivre jusqu'à la
génération suivante!!!! (élitisme)
• L'évolution s’arrête quand le niveau de performance souhaité est atteint, ou qu'un
nombre fixé de générations s'est écoulé sans améliorer l'individu le plus
performant.. GA et PSO 20
Comparaison avec les méthodes Classiques
Ces méthodes sont maintenant très utilisées en optimisation numérique, lorsque les fonctions à optimiser sont
complexes, irrégulières, mal connues ou en optimisation combinatoire.
Ces méthodes diffèrent des méthodes précédentes (gradient, Newton/Lagrange…...) par les faites que:
1. Elles ne nécessitent pas le calcul de gradient
2. Elles étudient une population dans son ensemble alors que les méthodes déterministes traitent un individu
qui évoluera vers l’optimum.
3. Elles font intervenir des opérations aléatoires (stochastiques).
GA et PSO 21
Implémentation dans Matlab: functon ga
Trouve un minimum d’une fonction (func) en utilisant l’algorithme génétique
Plusieurs Syntaxes
x = ga(fun,nvars) (func: fonction à minimiser, nvars=nombre de variables de décision)
x = ga(fun,nvars,A,b) (+contraintes linéaires inégalité Ax <=b))
x = ga(fun,nvars,A,b,Aeq,beq), (+contraintes linéaires égalité))
x = ga(fun,nvars,A,b,Aeq,beq,lb,ub) (avec bornes en plus)
x = ga(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon) (avec contraintes non linéaires nonlcon)
x = ga(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options) (+options)
x = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon)
x = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon,options) (variables dans IntCon sont des entiers!!.
x = ga(problem) ( problem est une structure)
[x,fval] = ga(___)
[x,fval,exitflag,output] = ga(___)
[x,fval,exitflag,output,population,scores] = ga(___)
exemple
x = ga(fun,nvars)
trouve un minimum (absolu), x, de la fonction objectif, fun,
Sans contraintes. Nvars le nombre de variables décision.
https://fr.mathworks.com/help/gads/ga.html
GA et PSO 22
L’optimisation par essaim particulaire (OEP)
Particle Swarm Optimization (PSO)
• C’est un algorithme qui utilise une population de solutions candidates pour
développer une solution optimale au problème
• Il s’inspire du monde du vivant, plus précisément du comportement social des
animaux évoluant en essaim (groupe se déplaçant), tels que les bancs de
poissons et les vols groupés d’oiseaux.
• Ces animaux effectuent des déplacements relativement complexes, alors
qu’individuellement chaque individu a une « intelligence » limitée.
(intelligence collective)
• L’information locale et la mémoire limitée de chaque individu sont utilisées
pour décider de son déplacement (évolution).
• Des règles simples, (ex. rester proche des autres individus, aller dans une
même direction, ou aller à la même vitesse ……), sont utilisées pour maintenir
la cohésion de l’essaim et son comportement collectif complexe. (intelligence
collective)
Parallélisme: Un essaim de particules volant à travers un espace de recherche de
dimension N avec la ou les fonction(s) objectif(s) comme boussole pour trouver la
solution ‘‘optimale’’ GA et PSO 23
https://youtu.be/WAA6sdWrV20
Principe du PSO
• L’essaim de particules correspond à une population de particules. Chaque particule
est considérée comme une solution potentielle faisable du problème..
• Une particule est dotée d’une position (le vecteur solution) et une vitesse (direction
de déplacement).
• De plus, chaque particule possède une mémoire lui permettant de se souvenir de sa
meilleure performance (en position et en valeur) et de la meilleure performance
atteinte par les particules « voisines »
f ( x1 , , x D ) sin x1 sin x D x1 xD
• Un essaim de particules, qui sont des solutions potentielles au problème
d’optimisation, « survole » l’espace de recherche, à la recherche de l’optimum global.
• Le déplacement d’une particule est influencé par les trois composantes
suivantes
Global best
1. Une composante d’inertie : la particule tend à suivre sa direction courante de
déplacement ; Inertia
2. Une composante cognitive : la particule tend à se diriger vers le meilleur site par lequel New Velocity
elle est déjà passée ;
3. Une composante sociale : la particule tend à se fier à l’expérience de ses congénères et,
ainsi, à se diriger vers le meilleur site (solution) déjà atteint par ses voisins.
Position X
Ainsi, grâce à ces règles de déplacement très simples (dans l'espace des solutions), les Personal best
particules (solutions) peuvent converger progressivement vers un minimum local.
GA et PSO 24
Mise en Œuvre de l’algorithme PSO
Cas d’une optimisation avec n-variables (n-dimensions)
• La particule i (solution) de l’essaim est donnée par son vecteur position Xi = (xi,1, xi,2, . . . , xi,n)T et par son vecteur
vitesse Vi =(vi,1, vi,2, . . . , vi,n)T.
• La qualité de sa position est déterminée par la valeur de la fonction objectif en ce point f(Xi)
• Chaque particule garde en mémoire la meilleure position par laquelle elle est déjà passée, que l’on note Xbesti =
(Xbesti,1, Xbesti,2, . . . , Xbesti,n). (Pbest dans le programme Matlab)
• La meilleure position atteinte à temps par les particules de l’essaim est notée
Gbest = (gbest1, gbest2, . . . , gbestn).
Au départ de l'algorithme on crée l’essaim (population intiale): chaque particule est donc positionnée
(aléatoirement) dans l'espace de recherche du problème
la valeur du coût (ou fitness, fonction objectif ) liée avec chaque particule indique la qualité de sa position
(meilleure position d’une particule à date, meilleure position globale de l’essaim à temps)….dans l’espace
Chaque itération fait déplacer chaque particule dans une direction Vi(t+1)en fonction des 3 composantes suivantes :
• Sa vitesse actuelle Vi(t) (plutôt direction), (composante d’inertie)
• De l’écart à sa meilleure position Xbesti (t) à date (en terme de la FO)
• De l’écart à la meilleure solution obtenue dans son voisinage (la meilleure position de l’essaim (Gbest(t))
GA et PSO 25
Mise en Œuvre de l’algorithme PSO
La nouvelle position de la particules i (solution) est mise à jour:
𝑉𝑖 (t + 1) = 𝜔𝑉𝑖 (t) + r1 c1 (𝑋𝑖 𝑏𝑒𝑠𝑡𝑖 (𝑡) − 𝑋𝑖 (𝑡)) + r2 c2 (𝐺𝑏𝑒𝑠𝑡(𝑡) − 𝑋𝑖 (𝑡)) 𝑖 = 1,2, ⋯ , 𝑁.
𝑋𝑖 (t + 1) = 𝑋𝑖 (t) + 𝑉𝑖 (t + 1) 𝑖 = 1,2, ⋯ , 𝑁.
Xbesti(t)
• w, c1, et c2 (0 ≤ w ≤ 1.2, 0 ≤ c1 ≤ 2, et 0 ≤ c2 ≤ 2) sont des coefficients
constants fixés par l'utilisateur
• w: inertie, c1, et c2 facteur d’apprentissage ou « accélération » Xi(t) Xi(t+1)
• r1 et r2 sont des nombres aléatoires tirés à chaque itération
Avantages du PSO:
• peut converger rapidement vers des bonnes solutions Gbest(t)
• implémentations simples, avec peu de paramètres
• versatilité: peut résoudre beaucoup de différents problèmes
• Applications aux problèmes avec:
• un espace de recherche continu, discret ou mixte
• − optimisation dynamique et multicritère, avec 1+ minimums locaux
GA et PSO 26
PSO dans matlab
Syntaxes
• x = particleswarm(fun,nvars)
• x = particleswarm(fun,nvars,lb,ub)
• x = particleswarm(fun,nvars,lb,ub,options)
• x = particleswarm(problem)
• [x,fval,exitflag,output] = particleswarm(___)
GA et PSO 27
Colonnie de Fourmis
Idées clés
• Lorsque plusieurs sources de nourriture sont
disponibles, les fourmis choisissent toujours la plus
proche !
• Les fourmis isolées se déplacent au hasard
• Les fourmis marquent en permanence le chemin
parcouru avec un phéromone
• Lorsqu’une fourmi atteint une bifurcation, elle tend à
prendre le chemin le plus marqué
• Le phéromone se dégrade avec le temps
• Comme les fourmis marquent le chemin à l’aller et au
retour, et que le phéromone est volatile avec le temps,
celui déposé sur les parcours courts est plus intense. Plus
intense signifie que le parcours sera choisi plus souvent
Contraintes pour l’utilization l’ACO • Le problème à résoudre doit être défini par un graphe
• Exigence due au fait qu’on optimise un chemin
• Doit être fini (a un début et une fin)
GA et PSO 28
Algorithme des colonies de fourmis
1. Créer des fourmis
2. Tant que objectif non atteint, pour chaque fourmi
a. La laisser trouver une solution
Quantité de À Partie d’un nœud donné :
Probabilité de transition : a) Calculer Pij(t) pour tous les nœuds suivants
pheromone sur le possibles (permis), 0 si non permis
1
chemin ij b) Générer un nombre aléatoire entre 0 et 1 et
ij (t ) l’utiliser pour sélectionner la branche à suivre
Pij (t ) dij
1 Distance
jallowed nodes
ij (t
)
dij
entre I et j
α,β =constantes
b. Mettre à jour le niveau de phéromone
Pheromone produit par
Taux d’évaporation chaque fourmi k qui suit
la branche (i,j) de
Q
ij (t 1) (1 ) ij (t )
kColony that Lk
longueur Lk
Minimiser 𝐹 = 𝑓1 𝑋 , 𝑓2 𝑋 … . 𝑓𝑀 (𝑋) T x1
15
g 𝑖 (𝑋) ≤ 0, 𝑖 = 1, . . . . , 𝑚 x2
X .
𝑆𝐶 ℎ𝑖 (𝑋) = 0, 𝑖 = 1, . . . . . 𝑝 10
.
𝑥𝑖𝐿 ≤ 𝑥𝑖 ≤ 𝑥𝑖𝑈 𝑖 = 1, . . . . . 𝑁
xN 5
M: nombre d’objectifs, 0
Contraintes de bornes..
• Dans sa forme la plus générale, un problème d'optimisation multi-objectifs consiste à trouver dans
un ensemble de solutions admissibles, un sous-ensemble de solutions optimisant ces objectifs
simultanément
A. Outzourhit Optimisation Muli-objectifs 2
Espaces des solutions admissibles et espaces des objectifs réalisables
• Espace des solutions admissibles, espace de décision (ou domaine des solutions réalisables, faisable ou espace de recherche): représente
l'ensemble des valeurs des variables de décision satisfaisant les contraintes.
• Espace des objectifs réalisables: ensemble image de l’espace des solutions admissibles, déterminé par toutes les valeurs possibles des
fonctions objectifs correspondant aux variables de décisions de cet espace..
Espace des solution admissibles, ou • Espace des objectifs réalisables (pas nécessairement optimaux)
candidates (défini par les contraintes) • Image de l’espace des solutions admissibles
Cas de deux objectifs f1 et f2 (minimisation)
x1 f1(x1,x2)
Les composantes du nadir et point idéal définissent les Le point Idéal (Utopian) z*: correspond à solution idéale
limites supérieure et inférieure de la fonction objectif des Obtenue en minimisant individuellement chaque objectif (non
solutions optimales de Pareto. réalisable)
II. Optimalité des solutions
20
• Pour un problème mono-objectif, l’optimum recherché est clairement f(x)
g(x)
défini (min ou max) 15
h(x)
optimales dont les valeurs des fonctions sont en fait les meilleurs
compromis possibles dans l’espace des fonctions objectifs.
F(X) domine strictement F(Y) si, et seulement si, X est meilleure que Y dans tous
les objectifs
fi(X) < fi(Y) quelque soit i ≤ M
Un point est dit non dominé si aucun des autres points points le dominent
Si un point n'est dominé par aucun point dans tout le domaine, alors ce point est • Point 2 est dominé par le point 3
• Point 4 est dominé par les points 3 et 5.
appelé Pareto optimal. • Les points 1,3 et 5 ne sont dominés par
aucun autre.
Une solution non-dominée est l’image d’une ou de plusieurs solutions réalisables,
telle qu’un objectif ne peut être amélioré sans détériorer au moins un autre objectif
(comparer 5 et 3, 3 et 2)
C’est ce qu’on cherche à déterminer: l’ensemble de ces solutions non dominées..
• 1 domine 2
• 5 domine 1
• 1 Vs 4: aucune solution ne domine l’autre
(efficaces)
Les trois dernières nécessites toutes des informations de préférence du décideur/maitre d’ouvrage de différentes
manières.
Les préférences seraient de nature à privilégier un certain type de solutions sur d’autres. Il est d’usage de préférer des
solutions équilibrées, c’est-à-dire des solutions avec des valeurs moyennes sur les objectifs
A. Outzourhit Optimisation Muli-objectifs 11
V. Méthodes classiques
• Les méthodes classiques transforment le problème MO en un problème à un seul
objectif paramétré (par analogie à la prise de décision avant la recherche)
• Cependant, les paramètres de cette nouvelle fonction ne sont pas définis par le
décideur mais systématiquement variés par l'optimiseur.
Minimiser f j ( X ) j 1,....M M
Minimiser F w j f j ( X ) j 1,....M
M
avec w j 1
g i ( X ) 0, i 1,...., m j 1 j 1
g i ( X ) 0, i 1,...., m
SC hi ( X ) 0, i 1,..... p
x x x i 1,.....N SC hi ( X ) 0, i 1,..... p
iL i iU x x x i 1,.....N
iL i iU
où wi le poids de l’ objectif fi . Ce coefficient (positif ou nul) représente l'importance relative que le décideur attribue à l'objectif. Ces poids
sont les paramètres de la scalarisation. Les wi sont choisit (par le décideur!! selon l’importance de chaque fonction objectif à la fin!!
Avantages: Méthode simple (méthode à priori), Solution est Pareto-optimale: point de tangence de la courbe (droite, pour deux objectifs) de
niveau de F avec le front de Pareto (voir cas de deux objectifs)
Problèmes
1. Comment le décideur détermine-t-il les poids de chaque critère ?
2. Il est généralement difficile de faire la somme de certaines grandeurs (p. ex. pollution et niveau de confort) transformer les objectifs en
une seule unité commune(exemple argent!!)
3. Attention aux valeurs des objectifs(certains peuvent être très petit!! normaliser (exemple temps et coût, par le point ideal et Nadir..)
4. Ne peut pas trouver toutes les solutions Pareto (région non convexe): (exemple points entre A et C et entre B et C voir exemple Matlab)
Dans ce cas pour un couple w1 et w2, les courbes d’isocoûts (de niveau, isovaleurs)
𝑤
de F sont des droites de pente − 𝑤1, et ayant F/w2 comme intersection avec l’axe f2;
2
𝐹 𝑤1
𝑓2 =
𝑤2
− 𝑓
𝑤2 1
avec 𝑤1 + 𝑤2 = 1
w1=1, w2=0
Minimiser F revient à réduire cette intersection et donc à glisser la droite de niveau, et F
trouver le point de tangence avec le domaine des solutions réalisables dans l’espace
des objectifs (point du front de Pareto) F/w2
Si on change w1(w2), (l’importance des objectifs), la pente de la courbe ainsi que le
point de tangence vont changer w1=0, w2=1
On peut de cette façon générer le front de Pareto (ou une partie de celui-ci)
https://www.youtube.com/watch?v=yc9NwvlpEpI&t=300s&ab_channel=DesignImpact
Exemples
Problème de Schaffer
Minimiser F1(x)=x2 et F2(x)=(x-2)2
Avec 0 ≤ x ≤ 2
Résoudre ce problème par;
a) la méthode pondération des fonctions objectifs (Tracer f2 en fonction de f1 pour différentes valeurs de w2..
b) la méthode des compromis,
Problème de Binch
Minimiser f1(x1,x2)=x12+x22 minimiser F=w1*f1(x1,x2)+w2*f2(x1,x2) (w1+w2=1)
Minimiser f2(x1,x2)=(x1+5)^2+(x2-5)^2
Avec -5≤x1 ≤ 10 -5 ≤ x2 ≤ 10
Résoudre ce problème par la méthode de pondération des fonctions objectifs
1/ p
M P
Minimiser F f j ( X ) z j *
Minimiser f j ( X ) j 1,....M j 1
g i ( X ) 0, i 1,...., m g i ( X ) 0, i 1,...., m Distance
de Minkowski
SC hi ( X ) 0, i 1,..... p SC hi ( X ) 0, i 1,..... p
x xi x i 1,.....N (p-distance)
iL x x x i 1,.....N
iU iL i iU
• z* (z1*,z2*…zM*) peut être la solution idéale (en général) qui peut être
trouvée en optimisation chaque fonction objectif à la fois ou un point de
référence dans l’espace des objectifs
• Point idéal (Utopia)
distance au point idéal
𝑀 2 1 2
Autres Exemples de distances : Minimiser F = 𝑓𝑗 (𝑋) − 𝑧𝑗 ∗ distance euclidienne
𝑗=1
𝑀 distance de Manhattan (1-
La dernière est appelée méthode min-max distance)
ou méthode de Tchebychev Minimiser F
= 𝑓𝑗 (𝑋) − 𝑧𝑗 ∗
𝑗=1
distance de Tchebychev
Minimiser F = max 𝑓𝑗 (𝑋) − 𝑧𝑗 ∗ 𝑗 = 1, . . . . 𝑀 (∞-distance)
𝑗
𝑃 1 𝑝
𝑀
g 𝑖 (𝑋) ≤ 0, 𝑖 = 1, . . . . , 𝑚
𝑆𝐶 ℎ𝑖 (𝑋) = 0, 𝑖 = 1, . . . . . 𝑝
𝑥𝑖𝐿 ≤ 𝑥𝑖 ≤ 𝑥𝑖𝑈 𝑖 = 1, . . . . . 𝑁
A. Outzourhit Optimisation Muli-objectifs 18
II. Méthode epsilon –contrainte
• Optimiser un objectif (prioritaire, ou de référence) mais restreindre les autres à des valeurs-limites supérieures
(contraintes)
• On choisit un vecteur contrainte initiale e tq:
Minimiser f n ( X )
Minimiser f j ( X ) j 1,....M
f l (X) e l l 1...M, et l n PO à un seul objectif avec contraintes
g i ( X ) 0, i 1,...., m g ( X ) 0, i 1,...., m supplémentaires (d’ordre techniques,
i
SC hi ( X ) 0, i 1,..... p SC économiques,..!!! )
x xi x i 1,.....N hi ( X ) 0, i 1,..... p
iL iU
xiL xi xiU i 1,.....N
Inconvénients
• εl doit être choisi avec soin pour qu'il soit dans l’intervalle
des valeurs minimale ou maximale de la fonction objective
individuelle (déterminées au préalable).
• Les distributions des points échantillonnés sur le front de Pareto peut dépendre de la formulation
réelle et de l'ordre du choix de l'objectif à optimiser (vor figure ci-contre, droites horizontales ou
verticales et et exemple Matlab).
• Autres méthodes: agréger les objectifs dans une fonction utilité (autres que la combinaison
linéaire)
MinMax
• x = fminimax(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
• Trouve la solution du problem MO
• Minx(maxi Fi(x))
Minimiser F(X) max f j ( X ) j 1,....M
j Cas de deux objectifs f1 et f2
c( X ) 0,
Ceq ( X ) 0,
SC A. X b f2(x1,x2)
Aeq. X beq x2
LB X UB
x1 f1(x1,x2)
Maxx(mini Fi(x))=-Min(max(-Fi(x))
A. Outzourhit Optimisation Muli-objectifs 21
Méthode par but à atteindre(optionnel)
Dans cette approche le décideur spécifie l'ensemble des buts (goals) Zj (j=1,…M) qu'il souhaite atteindre et les poids
(weights) associés wj . La solution optimale est trouvée en résolvant le problème suivant:
Minimiser 𝛼
Sc 𝑓𝑗 (𝑋) − 𝛼𝜔𝑗 ≤ 𝑍𝑗 𝑗 = 1, . . . . 𝑀
fun = @(x)[2+(x-3)^2;5+x^2/4];
goal = [3,6];
weight = [1,1];
x0 = 1;
x = fgoalattain(fun,x0,goal,weight)
fj: jeme fonction objectif
Autre exemples
Matlab: fgoalattain p_1 = [2,3];
Syntaxes p_2 = [4,1];
x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon) fun = @(x)[2 + norm(x-p_1)^2;5 + norm(x-p_2)^2/4];
x = fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon,options) goal = [3,6];
x = fgoalattain(problem) weight = [1,1];
[x,fval] = fgoalattain(___) A = [1,1];
[x,fval,attainfactor,exitflag,output] = fgoalattain(___) b = 4;
[x,fval,attainfactor,exitflag,output,lambda] = fgoalattain(___) x0 = [1,1];
x = fgoalattain(fun,x0,goal,weight,A,b)
A. Outzourhit Optimisation Muli-objectifs 22
II. Approche Pareto utilisant les algorithmes évolutionnaires
1. Introduction
• Dans le problème d'optimisation à objectif unique, la supériorité d'une solution sur une autre est facilement
déterminée en comparant les valeurs de la fonction objectif
• Dans un problème d'optimisation multi-objectifs, la qualité d'une solution est déterminée par la notion de dominance
But:
• Trouver un ensemble de solutions aussi proche que possible du front Pareto optimal
• Trouver un ensemble de solutions aussi diversifiées que possible
• La principale difficulté pour étendre tout algorithme d'optimisation à objectif unique aux objectifs multiples, est de tenir
compte de la dominance de chaque ensemble de solutions candidates dans les différentes étapes
• Les méthodes d'optimisation traditionnelles fonctionnent sur une solution candidate.
• Les algorithmes évolutionnaires (génétique) et naturels (PSO) opèrent sur un ensemble de solutions candidates
(population)
Identifier l’ensemble des solutions non-dominées pour chaque génération (sélection)
https://pymoo.org/algorithms/moo/nsga2.html
A. Outzourhit Optimisation Muli-objectifs 23
NSGAII (non-dominant sorting Genetic Algorithm)
Algorithme Génétique évolutif ayant lescaractéristiques suivantes :
Il utilise un principe élitiste, c'est-à-dire que les élites d'une population
ont la possibilité d'être portées à la génération suivante.
Il utilise un mécanisme explicite de préservation de la diversité
(Crowding distance ou distance d’encombrement)
Il met l'accent sur les solutions non dominées
Il suit les mêmes étapes que l’ GA
La selection se fait par front comme suit:
https://pymoo.org/algorithms/moo/nsga2.html
A. Outzourhit Optimisation Muli-objectifs 26
A. Outzourhit Optimisation Muli-objectifs 27
Méthodes de résolution dans MATLBA
Matlab: gamultiobj
Find Pareto front of multiple fitness functions using genetic algorithm
Syntaxes
x = gamultiobj(fun,nvars)
x = gamultiobj(fun,nvars,A,b)
x = gamultiobj(fun,nvars,A,b,Aeq,beq)
x = gamultiobj(fun,nvars,A,b,Aeq,beq,lb,ub)
x = gamultiobj(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon)
x = gamultiobj(fun,nvars,A,b,Aeq,beq,lb,ub,options)
x = gamultiobj(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options)
x = gamultiobj(problem)
[x,fval] = gamultiobj(___)
[x,fval,exitflag,output] = gamultiobj(___)
[x,fval,exitflag,output,population,scores] = gamultiobj(___)
A. Outzourhit Optimisation Muli-objectifs 28
Gamultiobj: Optimisation multiobjectifs utilisant l’AG
%exemple
FitnessFunction = @multi1;%fonctionsobjectifs
numberOfVariables = 1;
A = []; b = []; %Contraintes lineaires inegalités
Aeq = []; beq = [];%Contraintes linéaires égalités
lb = -1.5;%borne inferieure (vecteurs si plusieurs variables
ub = 0;%borne supérieure (vecteurs si plusieurs variables
[x,fval] = gamultiobj(FitnessFunction,numberOfVariables);
subplot(2,2,1)
plot(x,fval(:,1),'*',x,fval(:,2),'o')
xlabel('x')
legend('f1(x)','f2(x)')
subplot(2,2,2)
plot(fval(:,1),fval(:,2),'o') %Front de Pareto (espace des fonctions objectifs
function y=multi1(x)
y(1) = x^4+5*x^3+4*x^2-4*x +1 ;
y(2) = 2*(x+1)^2;
end
Master GREEN-BEE
UM6P
Optimisation
Définitions de l’optimisation
Action d'obtenir le meilleur, d'améliorer un fonctionnement, un rendement, une
utilisation…
“getting the best you can out of a given situation.”
Définition opérationnelle:
L’optimisation est la gestion scientifique des paramètres opérationnels
contrôlables (variables de décision) pour maximiser la productivité, la rentabilité et
la performance, ou minimiser les coûts, tout en respectant des contraintes internes
/ externes imposées.
Quantification:
- Outils et protocoles normalisés de mesure de la performance
- Simulation des performances du bâtiment (BPS)
Global performance is "the aggregation of energy, economic, social and environmental
performance" and all the other ttributes
PL 4
Optimisation des Performances
• Optimisation des performances des bâtiments (BPO):
Evaluer les différentes options de conception et obtenir la solution optimale
ou quasi-optimale pour un objectif donné ou une combinaison d'objectifs
tout en respectant avec des contraintes (par exemple, énergie nulle nette)
• L'optimisation peut faciliter une plus grande continuité entre les disciplines
et les étapes de conception en identifiant et évaluer les principaux
paramètres de conception des bâtiments de manière holistique.
PL 5
Variables/contraintes
Les fonctions-objectif quantitatives peuvent être le résultat de simulations
numériques (ex, CFD), de calculs analytiques ou empiriques.
Les éléments suivants font souvent l’objet d’études spécifiques dans les projets de
construction durable :
- ’Énergie
Orientation du bâtiment
Emplacement des fenêtres
Ventilation naturelle
- Améliorer l'efficacité
Conception de CVC (HVAC), l'éclairage et l'enveloppe du bâtiment, mesure
et control intelligent
Par exemple
• Dans un bâtiment: minimiser la consommation énergétique
(isolation, fenêtres, orientation..)
• Dans une centrale électrique, l’objectif est de générer l’électricité
pour répondre à la demande au moindre coût
PL 8
Objectifs du cours
• Reconnaitre, modéliser et (re)formuler les problèmes
d’optimisation
• Classer les problèmes d’optimisation (LP, NLP. . . )
• Présenter quelques algorithmes de base
Optimisation (programmation) linéaire
Optimisation Non-linéaire (méthode du gradient)
Algorithmes génétiques, essaim de particules…
• Maitriser les outils et les techniques d’optimisation pour
le bâtiment.
• Utiliser d'Excel, Matlab et autres logiciels ( Scilab,
octave) pour la résolution de PO
• Appliquer ces techniques à l’optimisation des
performances du bâtiment.PL 9
Programme
1. Introduction à l’Optimisation
2. Classification des Problèmes d’optimisation
3. Programmation linéaire: formulations, Méthode
graphique et méthode du simplexe
4. Optimisation non-linéaire sans contraintes: méthodes
de résolution
5. Optimisation non-linéaire avec contraintes
6. Algorithmes génétiques
7. Optimisation par essaim de particules
8. Optimisation multi-objectifs
9. Exemples et Applications
PL 10
Prérequis:
– Matlab, EXCEL..
– Notions d’Analyse Numérique
– Algèbre linéaire et analyse (Matrices, déterminant, valeurs
propres, matrice définie positive….
PL 11
Bibliographie
Textbooks:
Journaux
1. Engineering Optimization
2. Journal of Optimization Theory and Applications
3. Buildings
PL 12
Logiciels (outils) d’Optimisation
Excel
Matlab
https://en.wikipedia.org/wiki/List_of_optimization_software
• Assiduité: 5%
• Travail à la Maison: 15%
• Examen: 40%
• Projet: 20%
• Travaux Pratiques (sur Matlab et Excel): 20%
PL 14
Problème d’optimisation (PO)
• L'optimisation consiste à obtenir le meilleur résultat dans des circonstances
données (contraintes)
• Un problème d’optimisation est tout d’abord défini par les variables de décision:
Paramètres sur lesquels on peut agir pour faire évoluer le système considéré et
dont on doit déterminer les valeurs; Ces variables définissent l’espace de
recherche.
• Une méthode d’optimisation vise à trouver dans cet espace la solution, ou
l’ensemble de solutions, qui permet de satisfaire au mieux le ou les critère(s) du
problème
• Chaque critère peut être exprimé comme une fonction des variables du
problème appelée fonction objectif, fonction coût , critère d’optimisation, critère
de décision, ou indicateur ….
• Il est possible d’ajouter au problème un ensemble de contraintes: relations
limitant le choix des valeurs possibles des variables de décision et par conséquent
l’espace de recherche..
• L’optimisation est le processus de recherche des conditions donnant le maximum
ou le minimum d'une fonction ou des fonctions objectifs.
PL 15
Exemple 1.
Exemples
Problème Classique du sac-à-dos (Knapsack problem),
(distribution des resources)
• On dispose de n objets de masse wi et de valeur vi (chacun)
• Quels objets à mettre dans le sac-à-dos afin de maximiser la
somme emportée tout en ne dépassant pas le poids total
W= 15 kg autorisé ?
• Un seul type d’objet peut être emporté!!
https://fr.wikipedia.org/wiki/Probl%C3%A8me_du_sac_%C3%A0_dos
Exemple 2: Un étudiant doit réviser pour ses examens. Il a trois
matières à passer et il révise xi heures sur la ieme matière, pour i
= 1, 2, 3. Nous supposons que la note ni de la matière i dépend
uniquement du temps de révision passé xi comme suit:
n1(x1 ) = 3x1 , n2 (x2 ) = x22; n3 (x3 ) = x3 (100 − x3)
• Cet étudiant veut passer au plus 10 heures au total à réviser et
veut optimiser sa moyenne totale. Moyenne=(n1+n2+n3)/3
PL 16
Bâtiment:
Optimiser la performance énergétique (minimiser),
Minimiser les coûts…
Applications
L’optimisation intervient dans de nombreux domaines :
• Recherche opérationnelle (problème de transport, économie, gestion de
stocks...)
• Analyse numérique (approximation/résolution de systèmes linéaires, non
linéaires...)
• Automatique (contrôle de systèmes, filtrage...)
• Ingénierie (dimensionnement de structures, conception optimale de
systèmes (réseaux, ordinateurs...)
PL 17
Modélisation d’un PO
Passage du problème réel à un ensemble d’équations!! Identification
1. Identification des variables de décisions, ou inconnues, des variables de
désignées par le vecteur x=(x1,x2,…xn) ∈ Rn décision
Modélisation:
Variable de décision: superficie cultivées
Fonction objectif: f(x1,x2)=S1 x1 + S2 x2
Contraintes: terrain et quantités d’engrais et d’insecticide
Formulation du PO:
Maximiser f(x1,x2)=S1 x1 + S2 x2
Sous les contraintes (SC) x1 + x2 ≤ T (limite terrain)
E1 x1 + E2 x2 ≤ E (limite engrais)
I1 x1 + I2 x2 ≤ I (limite insecticide)
x1 ≥ 0, x2 ≥ 0 (terrain positif !)
PL 19
Exemples
Un étudiant doit réviser pour ses examens. Il a trois matières à passer et il révise xi
heures sur la ieme matière, pour i = 1, 2, 3. Nous supposons que la note ni de la
matière i dépend uniquement du temps de révision passé xi comme suit:
n1(x1 ) = 3x1 , n2 (x2 ) = x22; n3 (x3 ) = x3 (100 − x3)
• Cet étudiant veut passer au plus 10 heures au total à réviser et veut optimiser sa
moyenne totale.
Modélisation:
• Variables de décision: x = (x1 , x2 , x3 )
• Fonction Objectif: moyenne f(x) =1/3 (n1+n2+n3)=1/3(3x1+ x22+x3 (100−x3))
• Contraintes: x1+x2 + x3 ≤10 et x1, x2 , x3 ≥0
Formulation du PO:
• Maximiser f(x1 , x2 , x3 )=1/3(3x1 + x22 + x3 (100 − x3))
SC: x1+x2 + x3 ≤10 et x1, x2 , x3 >=0
PL 20
Exemples
Problème du sac à dos (Knapsack problem)
• Quelles boîtes choisir afin de maximiser la somme
emportée tout en ne dépassant pas les 15 kg
autorisés ?
• Sachant qu’une seule boite de chaque est
disponible!!)
Modélisation
Variables: 5 boites
• x1,x2, x3,x4,x5 (xi=1, objet i mis dans le sac, 0 si non
(laissé)
• Fonction objective: somme des valeurs totales
emportées
• Contrainte: poids total
Formulation:
PL 21
Exemple 1.
1) Variables de décision: xi=0 si l’objet i n’est pas dans le sac à dos et xi=1 si il est
dans le sac.
2) Fonction objectif f(x1,x2,…xn)=x1*v1+x2*v2+….. xn*vn = valeur emportée dans le
sac
3) contrainte: W=x1*w1+x2*w2+….. xn*wn <=15
PL 22
Exemples dans le bâtiment
• Fonction objectif : consommation d'énergie, coût
• Variables: taille et emplacement des fenêtres, isolation,
orientation, longueur des murs, hauteur du bâtiment, taille de
la fenêtre,…..
PL 24
Définitions
• Tout vecteur x=(x1,x2.. xn)T vérifiant les contraintes est dit solution
réalisable (admissible) du PO
PL 25
Minimum locale et Minimum globale
• x* est un point de minimum global de f sur X ssi:
x* ∈ X et ∀y ∈ X, f(x*) ≤ f(y).
• Pour un Minimum local, la relation f(x*) ≤ f(y) est valable uniquement au
voisinage de x*.
• Les notions de maximum local et global sont définis de la même façon
. x* ∈ X et ∀y ∈ X, f(x*) ≥ f(y) (max. globale)
PL 26
Classification des problèmes d'optimisation
Classification Basées sur Minimiser f ( x)
1. Les Constraintes
g i ( x) 0, i 1,...., m
a. Problème d’optimisation sous contraintes SC
x=(x1,x2,..n) hi ( x) 0, i 1,..... p
• Programmation mixte
variables = nombres entiers et réels
PL 31
Formulation Générale d’un PO linéaire
Dans sa forme général un problème d’optimisation linéaire sous forme:
• Fonction objectif à maximiser ou minimiser
avec
– xj variables de décision (inconnues)
– aij, bi, cj Paramètres du programme linéaire
PL 32
Forme canonique d’un PL
On appelle problème d’optimisation linéaire sous forme canonique pure un problème
de la forme
n
Max f c
j 1
j xj Max f cT x
Ax b
n SC
aij x j bi i 1, ..., m x 0
SC j 1
x 0 j 1,..., n
j
• c = (c1, · · · , cn)T et x = (x1, · · · , xn)T sont des vecteurs colonnes à n lignes,
(T= transposé)
• A = (aij )1≤i≤m,1≤j≤n est une matrice à m lignes et n colonnes,
• b = (b1, · · · , bm)T est un vecteur colonne à m lignes
Exemples:
PL 34
Transformer le problème de programmation linéaire General suivant sous la
forme canonique et écrire sous forme matricielle:
2.
Max f= 5x1 − 2x2 + 10x4
s.c.
PL 35
Rappels
• Une solution est une affectation de valeurs aux variables
de décision du problème.
• Une solution est admissible si elle satisfait toutes les
contraintes du problème (y compris les contraintes
de bornes ( a ≤ x ≤ b).
• Le domaine admissible X d’un PL est l’ensemble des
solutions admissibles du problème.
• La valeur d’une solution est la valeur de la fonction
objectif en cette solution.
• La solution optimale d’un PL (si elle existe) est formée
des valeurs optimales des variables du problème et
de la valeur associée de la fonction objectif.
PL 36
Domaine des solutions admissibles: exemples
Maximiser f = 3x1 + 5x2
SC
x1 4
x2 2x2 12
3x1 + 2x2 18
3 x1 2x 2 18 x1 0 ; x2 0
8
x1 4
(2,6)
6 2x 2 12
4 (4,3) Sommet:
Au moins deux contraintes sont
actives dans un sommet
0 x1 37
2 4 6 8 10
500 Non-réalisable
X1-X2 350
3X1+4X22400
Réalisable
X1
500 700
Points intérieurs. Points aux limites. Points Extrêmes(sommets).
max f=x1+2x2
sujet à x1 + x2 2
x1+3x2 3
x1 et x2 0
PL 42
Méthode graphique: n-d
Méthode Graphique
• Enumérer tous les sommets du polytope (polyèdre en n-
dimensions, intersection des hyperplans..),
• évaluer f , trouver le minimum/max
Polytope Convexe
Un polygone est dit convexe si toutes ses diagonales
sont entièrement à l'intérieur de la surface délimitée par
le polygone
Un polytope est la généralisation à toutes
dimensions de la notion de polygone pour 2-d.
Polytope convexe: X = { x | Ax = b, x 0}
PL 43
Résolution avec l’outil Solver d'Excel
Installation Solver
• Dans Excel 2010 et les versions ultérieures, accédez à options de > de fichier
• Pour Excel 2007, cliquez sur le bouton Microsoft Office, puis sur Options
Excel.
• Cliquez sur compléments, puis dans la zone gérer , sélectionnez compléments
Excel. Cliquez sur OK.
• Dans la zone macros complémentaires disponibles , activez la case à cocher
complément Solver , puis cliquez sur OK.
PL 44
Forme Standard du problème de PL
Forme standard
• 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é.
n'
Max f c j x j Max f cT x
j 1
n' Ax b
aij x j bi i 1, ..., m ' SC
SC j 1 x 0
x j 0 j 1,..., n
n-variables positive
m’ contraintes d’égalité
maximiser :
z= 30000x1 + 40000x2
SC 2x1+x2 ≤ 800
x1+2x2 ≤ 700
x2 ≤ 300
x1 0, x2 0
Pour obtenir la Forme standard , introduire les variables d’écart
Contrainte de supériorité
Maximiser Z=30000x1+40000x2
soustraire une variable d’écart
SC 2x1+x2+e1 = 800
x1+2x2+e2 = 700 positive
x2+e3 = 300 Exemple: x1+2x2 700
x1 0, x2 0, e1 0, e2 0, e3 0
x1+2x2 –e1= 700
Idée du simplexe
1. Partir d’une solution réalisable de base x0
2. Etant donnée une solution réalisable de base xi , chercher une solution réalisable de base xi+1
«voisine» telle que la fonction objectif Z augmente
3. Revenir en 2 tant que l’on peut trouver un tel xi+1. (Z augmente), Si non on a trouvé un optimum.
L’algorithme du simplex est similaire à celui de l’élimination de Gauss utilisé pour résoudre les systèmes
d’équations linéaires PL 47
Procédure:
Récrire les contraintes avec les variables d’écart positives
e1 = 800-2x1-x2
e2 = 700-x1-2x2
e3 = 300-x2
z=30000x1+40000x2
Celle ayant le plus grand coefficient positif dans la fonction objectif (z) (appelé aussi
coût réduit/spécifique, ou taux marginal de substitution, TMS) (Pourquoi ce choix??)
• Augmenter cette variable tant que les autres variables d’écarts( en base) ne deviennent
pas négatives!!(contraintes de non-négativité!!)
PL 50
Problème transformé:
x1 = 100-e2+2e3
x2=300-e3
e1=300+2e2-3e3
z= 15x106-30000e2+20000e3
Faire entrer e3 dans la base Pourquoi??
La variable à sortir?
x2=300-(100-e1/3+2e2/3)=200+e1/3+2e2/3
x1=100-e2+2(100-e1/3+2e2/3)=300-2e1/3+ e2/3
z= 15x106-30000e2+20000e3
=15x106-30000e2+20000(100-e1/3+2e2/3)
=17x106-20000e1/3-30000 e2 +40000/3 e2
= 17x106-20000e1/3-50000 e2/3
Remarque
Toute solution de base du (PL) pour laquelle toutes les variables sont non
négatives, est appelée solution de base admissible.
PL Cette solution de base 51
admissible correspond à un point extrême (sommet) du polytope.
Exemple 2
max z=5x1 + 4x2 + 3x3 max z=5x1 + 4x2 + 3x3
s.c. 2x1 + 3x2 + x3 ≤ 5 s.c. 2x1 + 3x2 + x3 + x4 = 5
4x1 + x2 + 2x3 ≤ 11 4x1 + x2 + 2x3 + x5 = 11
PO standard
3x1 + 4x2 + 2x3 ≤ 8 3x1 + 4x2 + 2x3 + x6 = 8
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0
x4 = 5-2x1 - 3x2 - x3
x5 = 11-4x1 - x2 - 2x3
x6 = 8-3x1 - 4x2 - 2x3
z=5x1 + 4x2 + 3x3
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0
PL 52
Procédure:
• Solution de base (0,0,0,5,11,8), z=0 faisable
z=5x1 + 4x2 + 3x3
• Augmenter x1 à partir de cette solution(il le plus grand coefficient ou TMS dans z)
x4 = 5-2x1 - 3x2 - x3
x5 = 11-4x1 - x2 - 2x3
x6 = 8-3x1 - 4x2 - 2x3
z=5x1 + 4x2 + 3x3
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0
x1 = 2 − 2x2 − 2x4 + x6
x5 = 1 + 5x2 + 2x4
x3 = 1 + x2 + 3x4 − 2x6 Comment éliminer x1 des
z = 13 − 3x2 − x4 − x6 autres équations sans la
remplacer par sa valeur??
Tous les coefficients de z sont négatifs
on est à l’optimum
Solution optimale : (2, 0, 1, 0, 1, 0) et z=13
Variables x1 2
x2 0
x3 1
Objectif f 13
contraintes c1 5 <= 5
c2 10 <= 11
c3 8 <= 8
PL 54
Utilisation du tableau du Simplexe
PO standard
Max. Z=30000x1+40000x2
SC 2x1+x2+e1 = 800
x1+2x2+e2 = 700
x2+ e3 = 300
x1 0, x2 0, e1 0, e2 0, e3 0
• 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 (écriture sous
forme matricielle).
• Chaque équation est une ligne du tableau, la dernière ligne est réservée pour la
fonction objectif (économique).
• Les colonnes correspondent aux variables du problème.
• l’avant dernière colonne, à droite du tableau contient les seconds membres des
équations.
• La dernière colonne contient ce que l’on appelle les ratios qui seront expliqués plus
loin.
Max f cT x
Ax b
SC
x PL
0 55
Solution: Tableau du simplexe
PO standard
Max. Z=30000x1+40000x2
SC 2x1+x2+e1 = 800
x1+2x2+e2 = 700
x2+ e3 = 300
x1 0, x2 0, e1 0, e2 0, e3 0
Variables
en base
x1 x2 e1 e2 e3 2ème membre Ratio
e1 2 1 1 0 0 800
e2 1 2 0 1 0 700
e3 0 1 0 0 1 300
Coef.
F.O= 30000 40000 0 0 0 0
Z PL 56
Remarques sur le tableau du
simplexe
• Dans le tableau initial, chaque variable de base a un seul 1 sur
la colonne et les autres coefficients sont nuls.
• A chaque étape, le tableau devra répondre à cette exigence.
PL 58
Méthode
2ème
Base x1 x2 e1 e2 e3
membre Ratio
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
PL 62
Remarques sur le tableau initial
• Les variables de base se calculent dans le
tableau en tenant compte du fait que les
variables hors base sont nulles (solution de
base)
PL 63
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=40000 x1+30000x2.
• Initialement on a donc :
PL 64
Variable entrante
2ème Ratio
Base x1 x2 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
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
PL 66
Variable sortante et pivot
2ème
Base x1 x2 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
PL 68
Faire apparaître des 0 sur le reste de la
colonne de la nouvelle variable de base.
Comment?
• Pour la ligne de e2, il faut lui
2ème Ratio
retrancher deux fois la ligne du Base x1 x2 e1 e2 e3
membre
pivot..
• On remplace L2 par L2-2*L3 e1 2 1 1 0 0 800 800/1
• Pour la ligne de Z, il faut lui 700/2
e2 1 2 0 1 0 700
retrancher 40000 fois la ligne
du pivot.. e3 0 1 0 0 1 300 300/1
• On remplace L4 par L4 –
40000*L3 Z 30000 40000 0 0 0 0
500/2
e1 2 0 1 0 -1 500
100
e2 1 0 0 1 -2 100
infini
x2 0 1 0 0 1 300
e1 2 0 1 0 -1 500 500/2=250
e2 1 0 0 1 -2 100 100/1=100
x2 0 1 0 0 1 300
300/0=
PL 71
Variable entrante x1 et sortante e2
Transformations sur le tableau 2
• Le pivot est déjà à 1.
• 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
PL 72
Tableau 3
Variables Ratio
x1 x2 e1 e2 e3 2ème membre
en base
300/3
e1 0 0 1 -2 3 300
100/-2
x1 1 0 0 1 -2 100
300/1
x2 0 1 0 0 1 300
L’optimum
PL n’est pas atteint (1 TMS est >0) 73
Variable entrante, ratios et variable sortante
du tableau 3
e1 0 0 1 -2 3 300 =300/3=100
x1 1 0 0 1 -2 100 =-100/2=-50
x2 0 1 0 0 1 300 =300/1=300
PL 74
Variable entrante e3 et sortante e1
Etape 1:
Division du pivot par 3 divise la ligne du
pivot par 3
Variables Ratio
x1 x2 e1 e2 e3 2ème membre
en base
x1 1 0 0 1 -2 100
x2 0 1 0 0 1 300
PL 75
Etape 2:
Apparition des 0 sur le reste
de la colonne
Variables Ratio
x1 x2 e1 e2 e3 2ème membre
en base
x1 1 0 0 1 -2 100
x2 0 1 0 0 1 300
PL 76
Il faut remplacer L2 par L2 + 2*L1, L3 par L3-L1 et L4 par L4 -20000*L1
L’optimum est atteint (Tous les TMS sont négatifs)
Variables Ratio
x1 x2 e1 e2 e3 2ème membre
en base
Max f cT x
Ax b
SC
x 0
n variables m variables
m contraintes n contraintes
PL 78
Méthode Simplexe: justification de la méthode
Max Z = 3 x 1 + 5 x2
sujet à
x1 4
2 x2 12
3x1+ 2x2 18
Et x1 0, x2 0
FORME Standard
Max Z
Z=3 x1+5 x2
x1+x3 =4
2 x2+ x 4 = 12
3 x1+2 x2+ x5 = 18
avec
xj 0, pour j =1, 2, 3, 4, 5
ÉTAPE D’INITIALISATION
Déterminer une solution de base réalisable
• Porter les variables hors base à zéro
• Solutionner les variables de base
Vérifier que les solutions de bases successives correspondent aux sommets..
PL 79
max z=5x1 + 4x2 + 3x3
s.c. 2x1 + 3x2 + x3 + x4 = 5
4x1 + x2 + 2x3 + x5 = 11
3x1 + 4x2 + 2x3 + x6 = 8
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0
Tableau du simplexe
x5 4 1 2 0 1 0 11 11/4
x6 3 4 2 0 0 1 8 8/3
z 5 4 3 0 0 0 0
PL 80
PO standard
2x1+x2+e1 = 800
x1+2x2+e2 = 700
x2+ e3 = 300
30000x1+40000x2-z=0
x1
2 1 1 0 0
x2 800
1 2 0 1 0 e1 700
0 1 0 0 1 e2 = 300
e3 0
30000 40000 0 0 0 -z
PL 81
Maximiser z = 3x1 + 2x2 Maximiser
sous les sous les contraintes: 2x1 + x2 +e1=18
2x1 + x2 ≤ 18
contraintes: 2x1 + 3x2 +e2=42
2x1 + 3x2 ≤ 42 3X1 + x2 +e3= 24
3X1 + x2 ≤ 24 Maximiser 3x1 + 2x2=z
x1 ≥ 0 , x2 ≥ 0
Variables
x1 x2 e1 e2 e3 2ème membre
en base Ratio
18/2=
e1 2 1 1 0 0 18
9
e2 2 3 0 1 0 42 21
e3 1 1/3 0 0 1/3 8 8
F.O=Z 3 2 0 0 0 0
PL 82
Variables ratio
x1 x2 e1 e2 e3 2ème membre
en base
e1 0 1 3 0 -2 6
e2 0 0 -7 1 4 12
x1 1 0 -1 0 1 6
Lz=lz-
F.O=Z 0 0 -3 0 +1 -30
3*Le3
Variables ratio
x1 x2 e1 e2 e3 2ème membre
en base
x2 0 1 3 0 -2 6 -3
e2 0 0 -7 1 4 12 +3
x1 1 0 -1 0 1 6 +6
F.O=Z 0 0 -3 0 +1 -30
PL 83
Variables ratio
x1 x2 e1 e2 e3 2ème membre
en base
x2 0 1 -1/2 2 0 12
e2 0 0 -7/4 1/4 1 3
x1 1 0 -3/4 -1/4 0 3
PL 84
Optimisation des Performances
Globales:
Techniques d’Optimisation
Abdelkader OUTZOURHIT
Master GREEN-BEE
UM6P
Optimisation
Définitions de l’optimisation
Action d'obtenir le meilleur, d'améliorer un fonctionnement, un rendement, une
utilisation…
“getting the best you can out of a given situation.”
Définition opérationnelle:
L’optimisation est la gestion scientifique des paramètres opérationnels
contrôlables (variables de décision) pour maximiser la productivité, la rentabilité et
la performance, ou minimiser les coûts, tout en respectant des contraintes internes
/ externes imposées.
Quantification:
- Outils et protocoles normalisés de mesure de la performance
- Simulation des performances du bâtiment (BPS)
Global performance is "the aggregation of energy, economic, social and environmental
performance" and all the other ttributes
PL 4
Optimisation des Performances
• Optimisation des performances des bâtiments (BPO):
Evaluer les différentes options de conception et obtenir la solution optimale
ou quasi-optimale pour un objectif donné ou une combinaison d'objectifs
tout en respectant avec des contraintes (par exemple, énergie nulle nette)
• L'optimisation peut faciliter une plus grande continuité entre les disciplines
et les étapes de conception en identifiant et évaluer les principaux
paramètres de conception des bâtiments de manière holistique.
PL 5
Variables/contraintes
Les fonctions-objectif quantitatives peuvent être le résultat de simulations
numériques (ex, CFD), de calculs analytiques ou empiriques.
Les éléments suivants font souvent l’objet d’études spécifiques dans les projets de
construction durable :
- ’Énergie
Orientation du bâtiment
Emplacement des fenêtres
Ventilation naturelle
- Améliorer l'efficacité
Conception de CVC (HVAC), l'éclairage et l'enveloppe du bâtiment, mesure
et control intelligent
Par exemple
• Dans un bâtiment: minimiser la consommation énergétique
(isolation, fenêtres, orientation..)
• Dans une centrale électrique, l’objectif est de générer l’électricité
pour répondre à la demande au moindre coût
PL 8
Objectifs du cours
• Reconnaitre, modéliser et (re)formuler les problèmes
d’optimisation
• Classer les problèmes d’optimisation (LP, NLP. . . )
• Présenter quelques algorithmes de base
Optimisation (programmation) linéaire
Optimisation Non-linéaire (méthode du gradient)
Algorithmes génétiques, essaim de particules…
• Maitriser les outils et les techniques d’optimisation pour
le bâtiment.
• Utiliser d'Excel, Matlab et autres logiciels ( Scilab,
octave) pour la résolution de PO
• Appliquer ces techniques à l’optimisation des
performances du bâtiment.PL 9
Programme
1. Introduction à l’Optimisation
2. Classification des Problèmes d’optimisation
3. Programmation linéaire: formulations, Méthode
graphique et méthode du simplexe
4. Optimisation non-linéaire sans contraintes: méthodes
de résolution
5. Optimisation non-linéaire avec contraintes
6. Algorithmes génétiques
7. Optimisation par essaim de particules
8. Optimisation multi-objectifs
9. Exemples et Applications
PL 10
Prérequis:
– Matlab, EXCEL..
– Notions d’Analyse Numérique
– Algèbre linéaire et analyse (Matrices, déterminant, valeurs
propres, matrice définie positive….
PL 11
Bibliographie
Textbooks:
Journaux
1. Engineering Optimization
2. Journal of Optimization Theory and Applications
3. Buildings
PL 12
Logiciels (outils) d’Optimisation
Excel
Matlab
https://en.wikipedia.org/wiki/List_of_optimization_software
• Assiduité: 5%
• Travail à la Maison: 15%
• Examen: 40%
• Projet: 20%
• Travaux Pratiques (sur Matlab et Excel): 20%
PL 14
Problème d’optimisation (PO)
• L'optimisation consiste à obtenir le meilleur résultat dans des circonstances
données (contraintes)
• Un problème d’optimisation est tout d’abord défini par les variables de décision:
Paramètres sur lesquels on peut agir pour faire évoluer le système considéré et
dont on doit déterminer les valeurs; Ces variables définissent l’espace de
recherche.
• Une méthode d’optimisation vise à trouver dans cet espace la solution, ou
l’ensemble de solutions, qui permet de satisfaire au mieux le ou les critère(s) du
problème
• Chaque critère peut être exprimé comme une fonction des variables du
problème appelée fonction objectif, fonction coût , critère d’optimisation, critère
de décision, ou indicateur ….
• Il est possible d’ajouter au problème un ensemble de contraintes: relations
limitant le choix des valeurs possibles des variables de décision et par conséquent
l’espace de recherche..
• L’optimisation est le processus de recherche des conditions donnant le maximum
ou le minimum d'une fonction ou des fonctions objectifs.
PL 15
Exemple 1.
Exemples
Problème Classique du sac-à-dos (Knapsack problem),
(distribution des resources)
• On dispose de n objets de masse wi et de valeur vi (chacun)
• Quels objets à mettre dans le sac-à-dos afin de maximiser la
somme emportée tout en ne dépassant pas le poids total
W= 15 kg autorisé ?
• Un seul type d’objet peut être emporté!!
https://fr.wikipedia.org/wiki/Probl%C3%A8me_du_sac_%C3%A0_dos
Exemple 2: Un étudiant doit réviser pour ses examens. Il a trois
matières à passer et il révise xi heures sur la ieme matière, pour i
= 1, 2, 3. Nous supposons que la note ni de la matière i dépend
uniquement du temps de révision passé xi comme suit:
n1(x1 ) = 3x1 , n2 (x2 ) = x22; n3 (x3 ) = x3 (100 − x3)
• Cet étudiant veut passer au plus 10 heures au total à réviser et
veut optimiser sa moyenne totale. Moyenne=(n1+n2+n3)/3
PL 16
Bâtiment:
Optimiser la performance énergétique (minimiser),
Minimiser les coûts…
Applications
L’optimisation intervient dans de nombreux domaines :
• Recherche opérationnelle (problème de transport, économie, gestion de
stocks...)
• Analyse numérique (approximation/résolution de systèmes linéaires, non
linéaires...)
• Automatique (contrôle de systèmes, filtrage...)
• Ingénierie (dimensionnement de structures, conception optimale de
systèmes (réseaux, ordinateurs...)
PL 17
Modélisation d’un PO
Passage du problème réel à un ensemble d’équations!! Identification
1. Identification des variables de décisions, ou inconnues, des variables de
désignées par le vecteur x=(x1,x2,…xn) ∈ Rn décision
Modélisation:
Variable de décision: superficie cultivées
Fonction objectif: f(x1,x2)=S1 x1 + S2 x2
Contraintes: terrain et quantités d’engrais et d’insecticide
Formulation du PO:
Maximiser f(x1,x2)=S1 x1 + S2 x2
Sous les contraintes (SC) x1 + x2 ≤ T (limite terrain)
E1 x1 + E2 x2 ≤ E (limite engrais)
I1 x1 + I2 x2 ≤ I (limite insecticide)
x1 ≥ 0, x2 ≥ 0 (terrain positif !)
PL 19
Exemples
Un étudiant doit réviser pour ses examens. Il a trois matières à passer et il révise xi
heures sur la ieme matière, pour i = 1, 2, 3. Nous supposons que la note ni de la
matière i dépend uniquement du temps de révision passé xi comme suit:
n1(x1 ) = 3x1 , n2 (x2 ) = x22; n3 (x3 ) = x3 (100 − x3)
• Cet étudiant veut passer au plus 10 heures au total à réviser et veut optimiser sa
moyenne totale.
Modélisation:
• Variables de décision: x = (x1 , x2 , x3 )
• Fonction Objectif: moyenne f(x) =1/3 (n1+n2+n3)=1/3(3x1+ x22+x3 (100−x3))
• Contraintes: x1+x2 + x3 ≤10 et x1, x2 , x3 ≥0
Formulation du PO:
• Maximiser f(x1 , x2 , x3 )=1/3(3x1 + x22 + x3 (100 − x3))
SC: x1+x2 + x3 ≤10 et x1, x2 , x3 >=0
PL 20
Exemples
Problème du sac à dos (Knapsack problem)
• Quelles boîtes choisir afin de maximiser la somme
emportée tout en ne dépassant pas les 15 kg
autorisés ?
• Sachant qu’une seule boite de chaque est
disponible!!)
Modélisation
Variables: 5 boites
• x1,x2, x3,x4,x5 (xi=1, objet i mis dans le sac, 0 si non
(laissé)
• Fonction objective: somme des valeurs totales
emportées
• Contrainte: poids total
Formulation:
PL 21
Exemple 1.
1) Variables de décision: xi=0 si l’objet i n’est pas dans le sac à dos et xi=1 si il est
dans le sac.
2) Fonction objectif f(x1,x2,…xn)=x1*v1+x2*v2+….. xn*vn = valeur emportée dans le
sac
3) contrainte: W=x1*w1+x2*w2+….. xn*wn <=15
PL 22
Exemples dans le bâtiment
• Fonction objectif : consommation d'énergie, coût
• Variables: taille et emplacement des fenêtres, isolation,
orientation, longueur des murs, hauteur du bâtiment, taille de
la fenêtre,…..
PL 24
Définitions
• Tout vecteur x=(x1,x2.. xn)T vérifiant les contraintes est dit solution
réalisable (admissible) du PO
PL 25
Minimum locale et Minimum globale
• x* est un point de minimum global de f sur X ssi:
x* ∈ X et ∀y ∈ X, f(x*) ≤ f(y).
• Pour un Minimum local, la relation f(x*) ≤ f(y) est valable uniquement au
voisinage de x*.
• Les notions de maximum local et global sont définis de la même façon
. x* ∈ X et ∀y ∈ X, f(x*) ≥ f(y) (max. globale)
PL 26
Classification des problèmes d'optimisation
Classification Basées sur Minimiser f ( x)
1. Les Constraintes
g i ( x) 0, i 1,...., m
a. Problème d’optimisation sous contraintes SC
x=(x1,x2,..n) hi ( x) 0, i 1,..... p
• Programmation mixte
variables = nombres entiers et réels
PL 31
Formulation Générale d’un PO linéaire
Dans sa forme général un problème d’optimisation linéaire sous forme:
• Fonction objectif à maximiser ou minimiser
avec
– xj variables de décision (inconnues)
– aij, bi, cj Paramètres du programme linéaire
PL 32
Forme canonique d’un PL
On appelle problème d’optimisation linéaire sous forme canonique pure un problème
de la forme
n
Max f c
j 1
j xj Max f cT x
Ax b
n SC
aij x j bi i 1, ..., m x 0
SC j 1
x 0 j 1,..., n
j
• c = (c1, · · · , cn)T et x = (x1, · · · , xn)T sont des vecteurs colonnes à n lignes,
(T= transposé)
• A = (aij )1≤i≤m,1≤j≤n est une matrice à m lignes et n colonnes,
• b = (b1, · · · , bm)T est un vecteur colonne à m lignes
Exemples:
PL 34
Transformer le problème de programmation linéaire General suivant sous la
forme canonique et écrire sous forme matricielle:
2.
Max f= 5x1 − 2x2 + 10x4
s.c.
PL 35
Rappels
• Une solution est une affectation de valeurs aux variables
de décision du problème.
• Une solution est admissible si elle satisfait toutes les
contraintes du problème (y compris les contraintes
de bornes ( a ≤ x ≤ b).
• Le domaine admissible X d’un PL est l’ensemble des
solutions admissibles du problème.
• La valeur d’une solution est la valeur de la fonction
objectif en cette solution.
• La solution optimale d’un PL (si elle existe) est formée
des valeurs optimales des variables du problème et
de la valeur associée de la fonction objectif.
PL 36
Domaine des solutions admissibles: exemples
Maximiser f = 3x1 + 5x2
SC
x1 4
x2 2x2 12
3x1 + 2x2 18
3 x1 2x 2 18 x1 0 ; x2 0
8
x1 4
(2,6)
6 2x 2 12
4 (4,3) Sommet:
Au moins deux contraintes sont
actives dans un sommet
0 x1 37
2 4 6 8 10
500 Non-réalisable
X1-X2 350
3X1+4X22400
Réalisable
X1
500 700
Points intérieurs. Points aux limites. Points Extrêmes(sommets).
max f=x1+2x2
sujet à x1 + x2 2
x1+3x2 3
x1 et x2 0
PL 42
Méthode graphique: n-d
Méthode Graphique
• Enumérer tous les sommets du polytope (polyèdre en n-
dimensions, intersection des hyperplans..),
• évaluer f , trouver le minimum/max
Polytope Convexe
Un polygone est dit convexe si toutes ses diagonales
sont entièrement à l'intérieur de la surface délimitée par
le polygone
Un polytope est la généralisation à toutes
dimensions de la notion de polygone pour 2-d.
Polytope convexe: X = { x | Ax = b, x 0}
PL 43
Résolution avec l’outil Solver d'Excel
Installation Solver
• Dans Excel 2010 et les versions ultérieures, accédez à options de > de fichier
• Pour Excel 2007, cliquez sur le bouton Microsoft Office, puis sur Options
Excel.
• Cliquez sur compléments, puis dans la zone gérer , sélectionnez compléments
Excel. Cliquez sur OK.
• Dans la zone macros complémentaires disponibles , activez la case à cocher
complément Solver , puis cliquez sur OK.
PL 44
Forme Standard du problème de PL
Forme standard
• 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é.
n'
Max f c j x j Max f cT x
j 1
n' Ax b
aij x j bi i 1, ..., m ' SC
SC j 1 x 0
x j 0 j 1,..., n
n-variables positive
m’ contraintes d’égalité
maximiser :
z= 30000x1 + 40000x2
SC 2x1+x2 ≤ 800
x1+2x2 ≤ 700
x2 ≤ 300
x1 0, x2 0
Pour obtenir la Forme standard , introduire les variables d’écart
Contrainte de supériorité
Maximiser Z=30000x1+40000x2
soustraire une variable d’écart
SC 2x1+x2+e1 = 800
x1+2x2+e2 = 700 positive
x2+e3 = 300 Exemple: x1+2x2 700
x1 0, x2 0, e1 0, e2 0, e3 0
x1+2x2 –e1= 700
Idée du simplexe
1. Partir d’une solution réalisable de base x0
2. Etant donnée une solution réalisable de base xi , chercher une solution réalisable de base xi+1
«voisine» telle que la fonction objectif Z augmente
3. Revenir en 2 tant que l’on peut trouver un tel xi+1. (Z augmente), Si non on a trouvé un optimum.
L’algorithme du simplex est similaire à celui de l’élimination de Gauss utilisé pour résoudre les systèmes
d’équations linéaires PL 47
Procédure:
Récrire les contraintes avec les variables d’écart positives
e1 = 800-2x1-x2
e2 = 700-x1-2x2
e3 = 300-x2
z=30000x1+40000x2
Celle ayant le plus grand coefficient positif dans la fonction objectif (z) (appelé aussi
coût réduit/spécifique, ou taux marginal de substitution, TMS) (Pourquoi ce choix??)
• Augmenter cette variable tant que les autres variables d’écarts( en base) ne deviennent
pas négatives!!(contraintes de non-négativité!!)
PL 50
Problème transformé:
x1 = 100-e2+2e3
x2=300-e3
e1=300+2e2-3e3
z= 15x106-30000e2+20000e3
Faire entrer e3 dans la base Pourquoi??
La variable à sortir?
x2=300-(100-e1/3+2e2/3)=200+e1/3+2e2/3
x1=100-e2+2(100-e1/3+2e2/3)=300-2e1/3+ e2/3
z= 15x106-30000e2+20000e3
=15x106-30000e2+20000(100-e1/3+2e2/3)
=17x106-20000e1/3-30000 e2 +40000/3 e2
= 17x106-20000e1/3-50000 e2/3
Remarque
Toute solution de base du (PL) pour laquelle toutes les variables sont non
négatives, est appelée solution de base admissible.
PL Cette solution de base 51
admissible correspond à un point extrême (sommet) du polytope.
Exemple 2
max z=5x1 + 4x2 + 3x3 max z=5x1 + 4x2 + 3x3
s.c. 2x1 + 3x2 + x3 ≤ 5 s.c. 2x1 + 3x2 + x3 + x4 = 5
4x1 + x2 + 2x3 ≤ 11 4x1 + x2 + 2x3 + x5 = 11
PO standard
3x1 + 4x2 + 2x3 ≤ 8 3x1 + 4x2 + 2x3 + x6 = 8
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0 x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0
x4 = 5-2x1 - 3x2 - x3
x5 = 11-4x1 - x2 - 2x3
x6 = 8-3x1 - 4x2 - 2x3
z=5x1 + 4x2 + 3x3
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0
PL 52
Procédure:
• Solution de base (0,0,0,5,11,8), z=0 faisable
z=5x1 + 4x2 + 3x3
• Augmenter x1 à partir de cette solution(il le plus grand coefficient ou TMS dans z)
x4 = 5-2x1 - 3x2 - x3
x5 = 11-4x1 - x2 - 2x3
x6 = 8-3x1 - 4x2 - 2x3
z=5x1 + 4x2 + 3x3
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0
x1 = 2 − 2x2 − 2x4 + x6
x5 = 1 + 5x2 + 2x4
x3 = 1 + x2 + 3x4 − 2x6 Comment éliminer x1 des
z = 13 − 3x2 − x4 − x6 autres équations sans la
remplacer par sa valeur??
Tous les coefficients de z sont négatifs
on est à l’optimum
Solution optimale : (2, 0, 1, 0, 1, 0) et z=13
Variables x1 2
x2 0
x3 1
Objectif f 13
contraintes c1 5 <= 5
c2 10 <= 11
c3 8 <= 8
PL 54
Utilisation du tableau du Simplexe
PO standard
Max. Z=30000x1+40000x2
SC 2x1+x2+e1 = 800
x1+2x2+e2 = 700
x2+ e3 = 300
x1 0, x2 0, e1 0, e2 0, e3 0
• 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 (écriture sous
forme matricielle).
• Chaque équation est une ligne du tableau, la dernière ligne est réservée pour la
fonction objectif (économique).
• Les colonnes correspondent aux variables du problème.
• l’avant dernière colonne, à droite du tableau contient les seconds membres des
équations.
• La dernière colonne contient ce que l’on appelle les ratios qui seront expliqués plus
loin.
Max f cT x
Ax b
SC
x PL
0 55
Solution: Tableau du simplexe
PO standard
Max. Z=30000x1+40000x2
SC 2x1+x2+e1 = 800
x1+2x2+e2 = 700
x2+ e3 = 300
x1 0, x2 0, e1 0, e2 0, e3 0
Variables
en base
x1 x2 e1 e2 e3 2ème membre Ratio
e1 2 1 1 0 0 800
e2 1 2 0 1 0 700
e3 0 1 0 0 1 300
Coef.
F.O= 30000 40000 0 0 0 0
Z PL 56
Remarques sur le tableau du
simplexe
• Dans le tableau initial, chaque variable de base a un seul 1 sur
la colonne et les autres coefficients sont nuls.
• A chaque étape, le tableau devra répondre à cette exigence.
PL 58
Méthode
2ème
Base x1 x2 e1 e2 e3
membre Ratio
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
PL 62
Remarques sur le tableau initial
• Les variables de base se calculent dans le
tableau en tenant compte du fait que les
variables hors base sont nulles (solution de
base)
PL 63
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=40000 x1+30000x2.
• Initialement on a donc :
PL 64
Variable entrante
2ème Ratio
Base x1 x2 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
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
PL 66
Variable sortante et pivot
2ème
Base x1 x2 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
PL 68
Faire apparaître des 0 sur le reste de la
colonne de la nouvelle variable de base.
Comment?
• Pour la ligne de e2, il faut lui
2ème Ratio
retrancher deux fois la ligne du Base x1 x2 e1 e2 e3
membre
pivot..
• On remplace L2 par L2-2*L3 e1 2 1 1 0 0 800 800/1
• Pour la ligne de Z, il faut lui 700/2
e2 1 2 0 1 0 700
retrancher 40000 fois la ligne
du pivot.. e3 0 1 0 0 1 300 300/1
• On remplace L4 par L4 –
40000*L3 Z 30000 40000 0 0 0 0
500/2
e1 2 0 1 0 -1 500
100
e2 1 0 0 1 -2 100
infini
x2 0 1 0 0 1 300
e1 2 0 1 0 -1 500 500/2=250
e2 1 0 0 1 -2 100 100/1=100
x2 0 1 0 0 1 300
300/0=
PL 71
Variable entrante x1 et sortante e2
Transformations sur le tableau 2
• Le pivot est déjà à 1.
• 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
PL 72
Tableau 3
Variables Ratio
x1 x2 e1 e2 e3 2ème membre
en base
300/3
e1 0 0 1 -2 3 300
100/-2
x1 1 0 0 1 -2 100
300/1
x2 0 1 0 0 1 300
L’optimum
PL n’est pas atteint (1 TMS est >0) 73
Variable entrante, ratios et variable sortante
du tableau 3
e1 0 0 1 -2 3 300 =300/3=100
x1 1 0 0 1 -2 100 =-100/2=-50
x2 0 1 0 0 1 300 =300/1=300
PL 74
Variable entrante e3 et sortante e1
Etape 1:
Division du pivot par 3 divise la ligne du
pivot par 3
Variables Ratio
x1 x2 e1 e2 e3 2ème membre
en base
x1 1 0 0 1 -2 100
x2 0 1 0 0 1 300
PL 75
Etape 2:
Apparition des 0 sur le reste
de la colonne
Variables Ratio
x1 x2 e1 e2 e3 2ème membre
en base
x1 1 0 0 1 -2 100
x2 0 1 0 0 1 300
PL 76
Il faut remplacer L2 par L2 + 2*L1, L3 par L3-L1 et L4 par L4 -20000*L1
L’optimum est atteint (Tous les TMS sont négatifs)
Variables Ratio
x1 x2 e1 e2 e3 2ème membre
en base
Max f cT x
Ax b
SC
x 0
n variables m variables
m contraintes n contraintes
PL 78
Méthode Simplexe: justification de la méthode
Max Z = 3 x 1 + 5 x2
sujet à
x1 4
2 x2 12
3x1+ 2x2 18
Et x1 0, x2 0
FORME Standard
Max Z
Z=3 x1+5 x2
x1+x3 =4
2 x2+ x 4 = 12
3 x1+2 x2+ x5 = 18
avec
xj 0, pour j =1, 2, 3, 4, 5
ÉTAPE D’INITIALISATION
Déterminer une solution de base réalisable
• Porter les variables hors base à zéro
• Solutionner les variables de base
Vérifier que les solutions de bases successives correspondent aux sommets..
PL 79
max z=5x1 + 4x2 + 3x3
s.c. 2x1 + 3x2 + x3 + x4 = 5
4x1 + x2 + 2x3 + x5 = 11
3x1 + 4x2 + 2x3 + x6 = 8
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0, x6 ≥ 0
Tableau du simplexe
x5 4 1 2 0 1 0 11 11/4
x6 3 4 2 0 0 1 8 8/3
z 5 4 3 0 0 0 0
PL 80
PO standard
2x1+x2+e1 = 800
x1+2x2+e2 = 700
x2+ e3 = 300
30000x1+40000x2-z=0
x1
2 1 1 0 0
x2 800
1 2 0 1 0 e1 700
0 1 0 0 1 e2 = 300
e3 0
30000 40000 0 0 0 -z
PL 81
Maximiser z = 3x1 + 2x2 Maximiser
sous les sous les contraintes: 2x1 + x2 +e1=18
2x1 + x2 ≤ 18
contraintes: 2x1 + 3x2 +e2=42
2x1 + 3x2 ≤ 42 3X1 + x2 +e3= 24
3X1 + x2 ≤ 24 Maximiser 3x1 + 2x2=z
x1 ≥ 0 , x2 ≥ 0
Variables
x1 x2 e1 e2 e3 2ème membre
en base Ratio
18/2=
e1 2 1 1 0 0 18
9
e2 2 3 0 1 0 42 21
e3 1 1/3 0 0 1/3 8 8
F.O=Z 3 2 0 0 0 0
PL 82
Variables ratio
x1 x2 e1 e2 e3 2ème membre
en base
e1 0 1 3 0 -2 6
e2 0 0 -7 1 4 12
x1 1 0 -1 0 1 6
Lz=lz-
F.O=Z 0 0 -3 0 +1 -30
3*Le3
Variables ratio
x1 x2 e1 e2 e3 2ème membre
en base
x2 0 1 3 0 -2 6 -3
e2 0 0 -7 1 4 12 +3
x1 1 0 -1 0 1 6 +6
F.O=Z 0 0 -3 0 +1 -30
PL 83
Variables ratio
x1 x2 e1 e2 e3 2ème membre
en base
x2 0 1 -1/2 2 0 12
e2 0 0 -7/4 1/4 1 3
x1 1 0 -3/4 -1/4 0 3
PL 84