Vous êtes sur la page 1sur 339

Introduction à MATLAB

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,

Il existe deux modes de fonctionnement:


mode interactif: MATLAB exécute les instructions au fur et à mesure qu'elles sont données par l'usager.
mode exécutif: MATLAB exécute ligne par ligne un fichier ".m" (programme en langage MATLAB).

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

Visualiser les variables(nom et


contenu)
Explorateur de fichiers

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

>> 2 + 2 >> x = 2 + 2 >> y = 3 + 5 - 7;


ans = x=
4 4
2. Opération E/S

>> 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)

19.00 en Fahrenheit est égale à -7.22 en Centigrade.


8
Variables
Dans Matlab, on peut affecter une valeur ou un résultat de calcul à une variable.

Déclaration des les variables non nécessaire : leur type (entier, réel, complexe) et leur dimension s’affecteront
automatiquement.

 On peut aussi définir des nombres complexes :

>> v_complexe = 2+3i

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.

MATLAB utilise seulement les 31 premiers caractères d'un nom de variable.


9
Les opérateurs arithmétique & Logique

Opérateurs arithmétique Opérateurs logique

+ Addition (scalaire et matricielle). == Opérateur d'égalité. Retourne 1 si égal, 0


- Soustraction (scalaire et matricielle). sinon.
* Multiplication (scalaire et matricielle). ~ Inverse les valeurs logiques (0 devient 1 et 1
devient 0)
.* Multiplication élément par élément pour 2
matrices de même taille. ~= Non égal
/ Division (scalaire et matricielle) < Plus petit que
a/b équivalent à a*inv(b) si b est carrée <= Plus petit ou égal
\ Division matricielle >= Plus grand ou égal
% Commentaires dans un fichier | Ou (union logique)
NaN Not a Number. Peut indiquer des valeurs & Et (intersection logique)
manquantes. Il faut faire attention à la façon
dont chaque fonction traite les valeurs
manquantes.
Green Bee 10
Les Matrices

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

• Un vecteur: tableau à une seule dimension.


• Vecteur ligne: données sont sur une même ligne (c'est-à-dire dans différentes colonnes)

• 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

>> Vc = [6 8 5]' %vecteur colonne également (utilisation de la transposée) 13


L’opérateur ( : )
Il permet de générer un vecteur ligne formé de valeurs équidistantes entre deux valeurs extrêmes. La
syntaxe générale est :

 variable = valeur initiale : le pas : valeur finale

>> V = linspace(1,5,10) % Un vecteur constitué de 10 valeurs


équidistantes entre 1 et 5

>> V = 7:-1:1 %Vecteur contenant des valeurs allant de 7 à 1


avec un pas de -1

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).

 Remarque : On peut faire un adressage logique ! a


Extraction d'une ligne :
>> A_ling= d(n,:)
Extraction d'une colonne :
>> A_ling= d(:,n)
15
Accès à un élément d'un tableau
 Exemple

• 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

Constantes particulières : Matrices particulières :

 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

Opération élément par élément


MATLAB permet également d’effectuer des opérations élément par élément pour la multiplication, la division et la
puissance et ceci en utilisant les opérateurs : .∗ ./ . ^
18
Les scripts et les fonctions
Programmation avec Matlab : M-files

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.

Le M-files Editor peut être ouvert de deux manières :

• à partir de la barre d’outils en cliquant sur l’icône New script, ou

• en tapant la commande >> edit,

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);

Fonctions anonymes: Dans le cas d’une fonction ayant une structure


simple, au lieu de créer un fichier on peut utiliser un ‘handle’ pour créer
une fonction anonyme sur une seule ligne, sa syntaxe est la suivante : >> f = @(x, y) x.^2 - sin(y) +exp(x^y)
handle = @(arglist) anonymous_function >> f(5,2)
ans = 7.2005e+10
‘handle’ est le nom qui sert à l’appel et à la manipulation de la fonction.
22
Programmes et fonctions
 Les sous fonctions
Un fichier M peut contenir le code de plusieurs fonctions : la première fonction du fichier sera la fonction principale i.e. la fonction
appelée par le fichier M et les fonctions suivantes sont les sous fonctions appelées par la fonction principale.
L’ordre d’apparition des sous fonctions est indifférent du moment que la fonction principale apparaît en premier.

23
Optimization lineaire avec MATLAB: la function linprog

Linprog: Solve linear programming problems:


min: ftx
Syntax Ax <= b
x = linprog(f,A,b)
x = linprog(f,A,b,Aeq,beq) Et Aeqx =beq
x = linprog(f,A,b,Aeq,beq,lb,ub)
x = linprog(f,A,b,Aeq,beq,lb,ub,options)
x = linprog(problem)
[x,fval] = linprog(___)
A = [1 1;
[x,fval,exitflag,output] = linprog(___)
1 1/4;
[x,fval,exitflag,output,lambda] = linprog(___) 1 -1;
-1/4 -1;
Set A = [] and b = [] if no inequalities exist. -1 -1;
Set Aeq = [] and beq = [] if no equalities exist. -1 1]
b = [2 1 2 1 -1 2]
https://fr.mathworks.com/help/optim/ug/linprog.html f = [-1 -1/3]
x = linprog(f,A,b)
Bases de programmation
 Les instructions de contrôle
 Les principales instructions de contrôle sous Matlab sont :

Instructions IF … ELSEIF … ELSE …

Instructions sélectives

Instructions SWITCH … CASE … OTHERWISE…

Chois ventilés Instructions sélectives

Instructions WHILE … FOR … (Boucles)

Instructions répétitives

Instructions CONTINUE …

Passage à l’itération suivante dans une boucle

Instructions BREAK …

25
Arrêt de l’exécution d’une boucle
Bases de programmation
Branchement condionnel
if … else … end
if…
if condition

if condition séquence d’instructions 1 Action

Corps de la
séquence d’instructions else
sélection

séquence d’instructions 2 Alternative


end
end
__

___
if … else if …. else … end

*
Green Bee 26
Bases de programmation
Les boucles

La boucle for…end La boucle while

for i = début : fin while condition (expression logique )


Corps de
séquence d’instructions séquence d’instructions Corps de la
la boucle
boucle
end
end
i variable appelée indice de la boucle

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

contenues dans vos données.

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

pie pie chart


histplot histogram
bar bar chart
barh horizontal bar chart
hist3d 3D histogram
polarplot plot polar coordinates
Matplop 2D plot of a matrix using
colors
Sgrayplot smooth 2D plot of
surface using colors
grayplot 2D plot of a surface
using colors

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

Partition des fenêtres : Sur MATLAB on a la possibilité de


créer plusieurs graphiques sur une seule fenêtre puisque
la fenêtre graphique est séparée en n fenêtre verticale et
m fenêtre horizontales,

on utilise la notation suivante :


subplot(m, n, q),
plot(x,y)

Où q est le graphique en cours.

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..

>>Mystruct.name=‘my new struct’


% Creates a struct with one field Add a new field(different tyupe)
>> my_struct.name='my new struct' >> my_struct.age=25

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]

>> my_struct.contact.email='aa@bb.com' Contact is also a struct


my_struct = >> my_struct.contact
struct with fields:
name: 'my new struct' ans =
age: 25 struct with fields:
contact: [1×1 struct] phone: 1234555
email: 'aa@bb.com'

41
Optimisation Non linéaire

A. Outzourhit
Master GreenBee

Optimisation Non linéaire, Master Green Bee


1. Optimisation non-linéaire continue à une variable( 1-d) sans contraintes
Rappels: Dans un PO non linéaire, la fonction objectif et/ou les f x  f '
 *  0
contraintes sont des fonctions non-linéaires des variables de décision.
En absence de contraintes le PO est de la forme:
f '  x  0 f ''
 x *  0
Minimiser (maximiser) f(x),
x dans R (ou dans un intervalle de définition)
 PNL sans contraintes à une variable
Conditions d’existence d’un optimum
a. Condition nécessaire d’existence x
x*
• La fonction f (x) define dans l’intervalle [a,b] possède un point f x 
stationnaire (ou critique) en x= x*, alors f’ (x*)=0, Min.
b. Condition suffisante: f '  x  0
• Si f’(x*)=f’’(x*)=…=f (n-1)(x*)=0,
mais f(n)(x*)≠ 0, donc f(x*) est f ''
 x *  0
• un minimum de f (x) si f (n)(x*) > 0 et n est pair
• Un maximum de f (x) si f (n)(x*) < 0 et n est pair f '
 x *  0
• Ni minimum ni maximum si n est impair (point d’inflexion)
Optimisation Non linéaire, Master Green Bee
x*
x
Exemples 15

f ( x)  12 x  45 x  40 x  5
5 4 3 Titre du graphique
10

Ex. Trouver les maximas et les minimas de f(x) -1 -0,5


0
0 0,5 1 1,5 2 2,5

f’(x)=60(x4-3x3+2x2)=60x2(x-1)(x-2), f’(x)=0 -5

f’(x)=0 at x=0,x=1, et x=2.


-10

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.

𝜕2𝑓 𝜕2𝑓 𝜕2𝑓


2, ,....
𝜕𝑥1 𝜕𝑥1 𝜕𝑥2 𝜕𝑥1 𝜕𝑥𝑛
. 𝜕2𝑓
𝐻= ℎ𝑖𝑗 = .
. 𝜕𝑥𝑖 𝜕𝑥𝑗
𝜕2𝑓 𝜕2𝑓 𝜕2𝑓
, ,...... 2
𝜕𝑥𝑛 𝜕𝑥1 𝜕𝑥𝑛 𝜕𝑥 2 𝜕𝑥 𝑛
Propriétés de H
• H est une matrice symétrique ( HT = H )
• La matrice Hessienne est par construction une matrice carrée symétrique (nxn) (puisque l’ordre dans lequel on prend les dérivées
partielles n’est pas important)

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

Optimisation Non linéaire, Master Green Bee


Conditions d’existence (cas n-d)
Comme dans le cas 1-d
1. Condition nécessaire
f (x) a un point stationnaire ou critique(maximum ou minimum ou point d’inflexion) en x = x*=(x1*,x*2,….xn*)T si les premières
dérivées partielles de f (x) existent en x *
𝜕𝑓 𝜕𝑓 𝜕𝑓
Soit: 𝛻f(x ∗) = 0 (𝑥 ∗) = (𝑥 ∗) = ⋯ = (𝑥 ∗) = 0
2. Condition suffisante: 𝜕𝑥 1 𝜕𝑥2 𝜕𝑥𝑛

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

Optimisation Non linéaire, Master Green Bee


Exemple
Trouver le gradient et la matrice Hessienne de f( x1, x2 )= (x2 − x1)2 + (1− x1)2
En x=(0,0) et x=(1,2)  2f 
  2(x 2  x 1 )  2(1  x 1 )  4
f x 12 x 1
 2(x 2  x 1 )  2(1  x 1 )  0
x 1
 2f 
  2(x 2  x 1 )  2(1  x 1 )  2
f x 2 x 1 x 2
 2(x 2  x 1 )  0
x 2  2f
2  2f
x1=1 et x2=1  2
 4  2  2  1 x 2
2
x 1x 2
H    2 
 2 2   1 1 
 trouver les valeurs propres de H
2l 1
Solution 2  0  2  (2  l )(1  l )  1  0 l 2  3l  1  0
1 1  l
3 5
0 l1,2 
2
Hessienne est définie positive  un minimum.
Optimisation Non linéaire, Master Green Bee
Ex. détermination des valeurs propres et des vecteurs propres
1 2  1  l 2 
A   det (A  l I )  
 2 4   0
2 4l

det (A  l I )  (1  l )(4  l )  4  0 det (A  l I )  (1  l )(4  l )  4  0 l1  0 et l2  5

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

1°/ Montrer l'existence de trois points stationnaires .

2°/ Étudier la nature des points critiques (0,0) et (3/4,3/4).

Optimisation Non linéaire, Master Green Bee


Rappels: Dérivée directionnelle
Définitions
• Dérivée directionnelle de f en x suivant la direction d (vecteur unitaire)
est donnée par: f’d(x) =. ∇f(x)T.d (produit scalaire)
f(x)=c1
d vecteur unitaire (norme=1) 𝑛
𝜕𝑓
𝑓(𝒙 + 𝑡𝒅) 𝑓′𝑑 = 𝑑𝑖
f’d(x) = lim 𝜕𝑥𝑖
𝑖=1 𝑥∗
𝑡→0 𝑡
f(x)=c2
• d est une direction de descente en x si : f’d(x) = ∇f(x)T. d <0
Cad: Projection de d sur la direction du gradient est négative
• La direction de la plus forte pente d+ est la direction du gradient : ∇f(x)
d+ = ∇f(x) (à normalisé par le module de ∇f(x) )
• La direction de la plus forte descente d− est opposée au gradient de f en x :
Dans ce cas: d− = −∇f(x)
2 2 2
2
𝜕𝑓 𝜕𝑓 𝜕𝑓
𝑓′𝑑 = − 𝛻𝑓 =− + +. . . . . . . ≤0
𝜕𝑥1 𝜕𝑥2 𝜕𝑥𝑛

Optimisation Non linéaire, Master Green Bee


Exemple
Trouver la dérivée directionnelle de f dans la direction du vecteur d=(1,1) en x =(0,0)
f( x1, x2 )= (x2 − x1)2 + (1− x1)2

𝜕𝑓
= −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( x1, x2 )= (x2 − x1)2 + (1− x1)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 𝑓′𝑑 = (−2 ∗ 1 + 0 ∗ 1)/ 2 = −2/ 2


 2(x 2  x 1 )  0
x 2
(0,0)
)2
f( x1, x2 )= (x2 − x1 + (1− x1 )2

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

Optimisation Non linéaire, Master Green Bee


Approximation quadratique
Dans le cas générale, une fonction à plusieurs variables f(x)=(x1,x2,…xn) peut être
approximée par son développent limité au voisinage de xk:
1
𝑓(𝑥) ≈ 𝑓(𝑥𝑘 ) + 𝛻𝑓 𝑇 • (𝑥 − 𝑥𝑘 ). + 𝑥 − 𝑥𝑘 𝑇 • 𝐻(𝑥 − 𝑥𝑘 )+. . . . 𝑥 𝑇 = 𝑥1 , 𝑥2 . . . . . . . . . . . 𝑥𝑛
2!
𝑥1
𝑥2
où le vecteur 𝛻𝑓 est le gradient de f 𝑇 𝑥= .
𝜕𝑓 𝜕𝑓 𝜕𝑓
𝛻𝑓 = , ,...... .
𝜕𝑥1 𝜕𝑥2 𝜕𝑥𝑛 𝑥𝑛
H(x*) est le Hessian ou matrice Hessienne ou de Hess)

Si Dx(Dx1, Dx2,… )T et x=xk+Dx, alors : 𝑓(𝑥𝑘 + 𝛥𝑥) ≈ 𝑓(𝑥𝑘 ) + 𝛻𝑓 𝑇 • 𝛥𝑥

Si Dx se fait le long d’un direction de descente alors 𝑓(𝑥𝑘 + 𝛥𝑥) − 𝑓(𝑥𝑘 ) = 𝛻𝑓 𝑇 • 𝛥𝑥 < 0

Optimisation Non linéaire, Master Green Bee


Méthodes de résolution
PO NL sans contraintes
Minimiser f (x)
x dans Rn (n variables de décision)
(x1,x2…xn)
• A. Méthode analytique
1. Fonction objectif à une seule variable de décision:
• trouver l'ensemble points stationnaires(drivée première nulle),
• l'ensemble des minima, sont les valeurs pour lesquelles la dérivée seconde est positive
• le minimum global est déterminé comme celui parmi les minima qui donne la valeur de
f la plus petite.

2. Fonction objectif à plusieurs variables de décision:


• expliciter l'ensemble des composantes du vecteur gradient
• résoudre le système d'équations algébriques (non-linéaire!!) obtenu f  0( pour i  1 jusqu ' à n )
• déterminer l'ensemble des points critiques (stationnaires). x i
• Puis trouver les points critiques pour lesquels la matrice hessienne est définie positive.
• trouver le .minimum global
Méthode laborieuse!!!!!

Optimisation Non linéaire, Master Green Bee


B. Méthodes numériques (itératives)
• On démarre d’un point X0 (x01,x02…x0n)
• On génère des points x1, x2,… tels que la valeur de f décroit à chaque itération: Xk+1=Xk+DXk
c.a.d f(Xk+1) < f(Xk) k=1,2,…
• Répéter les calculs jusqu'à la convergence vers la solution critères de convergence évalués
à chaque itération.

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!!!!

Optimisation Non linéaire, Master Green Bee


Optimisation numérique (1 variable)
• Si la fonction objectif est compliquée (ex. implicite, difficile à dériver..) le calcul devient plus difficile
Techniques d’analyse numérique utilisées pour identifier le 0 d’une fonction g(x) sur un intervalle [a, b]: résoudre g(x)=0
(avec g=f’(x))
1. Méthode de la bissection
Méthode utilisée pour identifier le 0 d’une fonction g(x) sur un intervalle [a, b]: résoudre g(x)=0
Si g(x)=f’(x)  on peut identifier un point où la dérivée d’une fonction s’annule.
C’est une méthode itérative
1. On identifie un intervalle [a, b], tel que g(a) g(b) < 0 (i.e., il encadre le zéro de g)
Soit x* la valeur du zéro de g et d la tolérance Exemple
Etape 1. Déterminer le point milieu de [a,b]: c=(a+b)/2
• Si g (c) =0 alors x*=c et le programme s’arrête
• Si g(a)*g(c) >0 (de même signe) alors prendre a=c a c b
• Autrement b=c g
Etape 2: si b-a < d; arrêter le programme: si non allez à l’étape 1
– la méthode génère une suite d’intervalles de longueur décroissante qui encadre le zéro

Il existe d’autres méthodes de recherches plus efficaces


Optimisation (voir
Non linéaire, analyse
Master Green Beenumérique)
g Quel est le nombre d’itérations
Exemple nécessaire pour attendre la
tolérance d, sachant que on
divise par chaque fois?

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

Optimisation Non linéaire, Master Green Bee


g(x)=lnx => g(x)=0 (solution analytique x=1
x0=2 xk+1=xk-g(xk)/g’(xk)
x1=2-ln(2)/(1/2)=0.6
X2=0.9
X3=0.99

Calcul numérique f’(x)=(f(x+e)-f(x))/e


e=x/1000
f(x+Dx)=f(x)+f’(x)*Dx+1/2 f’’(x)Dx2… f’’(x)=[f(x+Dx)+f(x-Dx)-2f(x)]/(Dx)2
f(x-Dx)=f(x)-f’(x)*Dx+1/2 f’’(x)Dx2…

Optimisation Non linéaire, Master Green Bee


Exemple Optimisation numérique 1-d

• Trouver le minimum de f(x) =(sinx/x))2 dans l’intervalle[0,Pi/2]


• Trouver le minimum de f(x) = ln2(x − 2) + ln2(10 − x) − x0.2 dans
intervalle [6, 10]
• Utiliser Excel/Matlab pour tracer ces fonctions et aussi pour faire des
itérations…

Optimisation Non linéaire, Master Green Bee


Méthodes à directions de descentes
Le principe de ces méthodes est de chercher itérativement d’un point xo(départ) la et
une direction de descente d0 la solution en déterminant à chaque itération k :
• une direction de recherche dk (direction de descente) à partir du point actuel 𝑋 (𝑘)
• Un pas de descente( de déplacement) pk le long de cette direction, qui est un
scalaire.
• La nouvelle solution est donc :𝑋 (𝑘+1) = 𝑋 (𝑘) + 𝑝𝑘 𝑑 (𝑘)
Et le processus est répété jusqu’à convergence!!! (critère d’arrêt est satisfait)

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

Optimisation Non linéaire, Master Green Bee


Méthodes à directions de descentes…

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,...).

Optimisation Non linéaire, Master Green Bee


Choix du pas pk :
a) Méthode de descente à pas fixe
Le pas est gardée constante p à chaque itération (risque de choisir un pas trop grand et de
sauter le min!!!, prend du temps)
•Voir exemple Matlab
b) Méthode de descente à pas optimale (exact line search)
•Le pas pk est optimisée à chaque itération
•Dans ce cas le choix du pas revient à minimiser j(pk)=f(xk+1)= f(xk+pkdk) par rapport à pk pour un
xk et dk donnés ! Qui est une fonction à une seule variable (p)
 On résout à chaque itération le « sous-problème » d'optimisation pour obtenir le pas
optimale
i.e on minimise j(pk)le long de la direction de la plus forte descente!!
𝑑𝜑 𝜕𝑓 𝜕𝑥𝑖
= = (𝛻𝑓 𝑋 (𝑘) + 𝑝𝑘 𝑑𝑘 )𝑇 . 𝑑 𝑘
𝑑𝑝𝑘 𝜕𝑥𝑖 𝜕𝑝𝑘
𝑖
𝑑𝜑
Le pas optimale est tel que =0
𝑑𝑝𝑘
 On résout à chaque itération le « sous-problème » d'optimisation 1-d pour obtenir le pas
optimale (voir exemple analytique et Matlab)

𝑇
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 jp). 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) .

Usually μ1=0.001 and η2=0.9.


Les pas acceptables

Optimisation Non linéaire, Master Green Bee


Line search vs. trust region(MODEL-BASED METHODS)

• 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

Optimisation Non linéaire, Master Green Bee


Choix de la direction de descente:
Minimiser f(X)=(x1,x2,…xn)
1. Méthode de Descente du gradient sans aucune contrainte
Aussi appelée Méthode de la plus forte pente (steepest descent) ou descente de
Gradient, Méthode de descente de plus forte pente
Méthode du gradient la plus utilisée.
• Dans ce cas B=I
1. 𝑑 𝑘 = −𝛻𝑓(𝑋 𝑘
• On peut utiliser l’une des méthodes précédentes pour évaluer pk
Pas fixe, pas optimal, Recherche en ligne inexacte le long de dk dk
• 𝑋 𝑘+1 = 𝑋 𝑘 + 𝑝𝑘 𝑑 (𝑘)
• Recalculer dk+1 et reprendre 1.
La méthode de la plus grande pente est une méthode d'ordre 1 puisqu'elle implique le
calcul des dérivées premières de la fonction objectif pour évaluer le vecteur gradient.
ne nécessite pas le calcul de la matrice Hessienne, qui est le plus souvent très coûteuse
en temps de calcul.

Optimisation Non linéaire, Master Green Bee


Exemple (TD)
Soit f (x1 , x2) = f (x) = (x1−2)2+(x2−3)2
• Trouver le point x* du minimum de f analytiquement
• Trouver une approximation de ce minimum en faisant trois itérations par la méthode de la plus forte
pente et partant de x0= (0, 0)T
• le pas doit minimiser f pour chaque itération
Utiliser Excel..
1. Calculer f(xo)
2. x1=x0-p0 f(xo)
3. Calculer f(x1) qui ne dépends plus que de po, et minimiser f(x1) par rapport à p0..
3. Calculer f(x1) et f(x1)
4. Puis calculer x2=x1-p2 f(x1) , trouver la nouvelle valeur du pas en minimisant f(x2) par rapport à p2…
5. Calculer x2.. Et comparer à la valeurs analytique..
6. Faire une troisième itération et déterminer x3
Comparer à x*
Remarque:
Noter qu’à chaque itération on fait appelle à une optimisation 1-d pour trouver le pas optimal.. En pratique ça
se fait à l’aide d’un programme d’optimisation continue 1-d..(Newton, recherche…). C’est plus simple que n-d!!!
Optimisation Non linéaire, Master Green Bee
(2,3)T est un point de minimum f(2,3)=0.  f   2f
On commence xo(0,0)T  x  2(x 1  2)  x 2  2
 1
f (x1 , x2) = f (x) = (x1−2)2+(x2−3)2   1
 f  2(x  3)  2
   f 2
H  2I
2
 2x 
 x 2
2

I est la matrice identité 1 0  1 0   x 1   x 1 


I        
 0 1  0 1  x 2  x 2

 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)

3. Calculer f(x1)= (4p1−2)2+(6p1−3)2


f’(p1)=8(4p1-2)-12(6p1-3)=32p1-16-72p1+36=-40p1+20  p1=1/2

x 1  2
1

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

3. Calculer f(x1)= -10+02+(4p1−2)2


f’(p1)=8(4p1-2) =0  p1=1/2
Prendre p=1/4 et faire 3 itération
0
x1 
2
4. Calculer f(x1)=(0,0)T
x2=x1

Optimisation Non linéaire, Master Green Bee


Remarque:

le Gradient est toujours perpendiculaire aux courbes de niveau.


A chaque itération, la nouvelle direction est toujours
perpendiculaire à la précédente

 recherche en zigzag

Gradient descent is highly used in supervised learning to


minimize the error function and find the optimal values for
the parameters(machine learning!!)

The conjugate gradient method updates the search directions


such that they do not zigzag as much (see matlab examples)

https://www.sfu.ca/~ssurjano/egg.html Optimisation Non linéaire, Master Green Bee


2. Méthode du Gradient conjugué
Palie au phénomène de zigzaguing de la méthode de descente de gradient (ralenti le calcule). On peut choisir d’autres
directions qui peuvent amener rapidement au minimum (voir trajectoire en rouge)
On considère la forme quadratique (approximation de f au deuxième ordre)
1 𝑇
𝑓(𝑥) = 𝑥 • 𝐴𝑥 − 𝑏𝑇 𝑥
2
• A est définie positive et symétrique (coïncide avec H pour l’approximation quadratique de f)
• Noter que : 𝛻𝑓 𝑥 = 𝐴𝑥 − 𝑏
• Minimiser f(x) revient à chercher la solution x* tq: 𝛻𝑓 𝑥 ∗ = 𝐴𝑥 ∗ − 𝑏 = 0
• Ainsi, résoudre le système d’équation 𝐴𝑥 ∗ = 𝑏 revient à minimiser une fonction quadratique f!!
• Pour accélérer la recherche on utiliser des directions de descentes qui sont conjuguées par rapport
à A (d’où le nom de gradient conjugué) et en cherchant un pas optimal le long de chaque direction..
• La méthode du gradient conjugué comme une méthode de descente à pas optimal.
Définition:
• The importance of conjugacy lies
• Deux directions (vecteurs) u et v sont conjuguées par rapport à la matrice A si uTAv=0
in the fact that we can minimize f
u et v sont dits A-conjugués
( · ) in n steps by successively
• Si A= I, alors conjugués = orthogonaux
minimizing it along the individual
• Si on a d0, d1, d2 ..dn-1 vecteurs A-conjugués (djTAdi=0 i≠j), Ils forment une base
directions in a conjugate set.
Alors la solution x =est une combinaison linéaire des directions
𝑛−1 montrer 𝑑𝑘 𝑇 𝑏 • Conjugate gradient converges in at
x= 𝛼𝑘 𝑑𝑘 𝛼𝑘 = most n steps (here n=2).
𝑖=0
𝑑𝑘 𝑇 𝐴𝑑𝑘
Optimisation Non linéaire, Master Green Bee
2.1 Algorithme GC (linéaire)
Comment trouver les directions ? On commence par un point X0
• On détermine la direction d0 qui est direction de la plus forte de descente en x0 : d0=−𝛻𝑓 𝑥0 !!
• d0=-r0=b-Ax0 (résidu initial=opposé au gradient de f en x0) (𝛻𝑓 𝑥 = 𝐴𝑥 − 𝑏 = r(x): résidu
• On détermine le pas optimale po le long de cette direction en minimisant 𝜑 𝑝0
𝑟0 𝑇 𝑟0
𝜑 𝑝0 = 𝑓(𝑥1 ) = f(𝑥0 + 𝑝0 𝑑0 ) → 𝑝0 = (dans ce cas)
𝑑0 𝑇 𝐴𝑑0
• On détermine x1 puis r1 et 𝒅𝟏 = 𝒓𝟏 − 𝜷𝟏 𝒅𝟏 b1 est tq d1 est conjuguée de do par rapport à A
d1 combine la direction de la plus forte descente et l’ancienne direction pour éviter le zigzag
• Pour une itération donnée k (1,..n…) , finding the minimum of a quadratic objective results in a
𝒓𝒌 = 𝒃 − 𝑨𝑥𝑘 while rk≠0 do: system of linear equations
transformer
𝑟𝑘 𝑇 𝑟𝑘 𝑟𝑘 𝑇 𝑑𝑘
𝑝𝑘 = 𝑇 = 𝑇
Pas optimale le long de dk (recherche linéaire exacte)
𝑑𝑘 𝐴𝑑𝑘 𝑑𝑘 𝐴𝑑𝑘
𝑥𝑘+1 = 𝑥𝑘 + 𝑝𝑘 𝑑𝑘 , Update solution
𝑟𝑘+1 = 𝑏 − 𝐴𝑥𝑘+1 = 𝑟𝑘 − 𝑝𝑘 𝐴𝑑𝑘 Résidu en xk+1

𝑑𝑘+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:

• Quelle est la forme quadratique f (x1,x2) correspondant?


• Commencer par le point x0 =(0,0)T
• Trouver la solution file:///D:/cours_23_24/fall/optimisation/mdobook.pdf

Optimisation Non linéaire, Master Green Bee


2.2 Nonlinear conjugate gradient methods
It is natural to ask whether we can adapt the approach to minimize general convex functions, or even general nonlinear
functions f? Yes! Utiliser CG non-linéaire
• On commence par x0 et on détermine la direction d0 de la plus forte de descente en x0 d0=−𝛻𝑓 𝑥0
Pour une itération donnée k (1,..n)

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.

Optimisation Non linéaire, Master Green Bee


3. Méthode de Newton:
L’idée de base de la méthode de Newton est de remplacer f par son approximation quadratique en xk
1
𝑄𝑘 𝑥 = 𝑓 𝑥 − 𝑥𝑘 = 𝑓(𝑥𝑘 ) + 𝛻𝑓(𝑥𝑘 )𝑇 𝑥 − 𝑥𝑘 + 𝑥 − 𝑥𝑘 𝑇
• 𝐻𝑘 (x − 𝑥𝑘 )
2
et de trouver le minimum xk+1 de celle-ci: 𝛻𝑄𝑘 𝑥 = 𝛻𝑓(𝑥𝑘 ) + 𝐻𝑘 x − 𝑥𝑘 =𝟎
Solution: 𝑥𝑘+1 = 𝑥𝑘 − (𝐻𝑘 )−1 𝛻𝑓(𝑥𝑘 ) est le processus est répète en xk+1
C’est une méthode de descente: 𝑑𝑘 = −(𝐻𝑘 )−1 𝛻𝑓(𝑥𝑘 ) (Dans ce cas Bk= Hk =H(xk): Matrice Hessienne au point xk )
il faut que H(xk) soit inversible et définie positive (c.a.d, toutes ses valeurs propres sont positives, ou dTH(xk)d >0)

Convergence plus rapide que la méthode à descente de gradient


Problèmes de la Méthode de newton:
• Calcul de la Matrice de Hess (nxn), et son inverse à chaque itération Algorithme
(temps de calcul) On commence par un point de départ x0
• Pb si H n’est pas définie positive en un point donné (pas de minimum) Calcul le gradient 𝛻𝑓 𝑥𝑜 𝑒𝑡 hessien 𝐻𝑜
dk n’est plus une direction descente!!! Calcul la direction 𝑑𝑜 = −𝐻0−1 𝛻𝑓 𝑥𝑜
Damped Newton method k=0, Nmax=1000
While 𝛻𝑓 𝑥 ≠ 0 and k<=Nmax
−1
On peut faire une recherche linéaire le long la direction dk = −(𝐻𝑘 )−1 𝛻𝑓(𝑥𝑘 ) • 𝑥𝑘+1 = 𝑥𝑘 − 𝐻𝑘 𝛻𝑓 𝑥𝑘 = 𝑥𝑘 +𝑑−1𝑘
 méthode back-tracking avec condition de Wolf. • Mettre à jours 𝛻𝑓(𝑥𝑘+1 ) et (𝐻𝑘+1 )
 Cette méthode est appelée Méthode de Newton amortie (damped • k=k+1
Newton method) avec p <1) End
k
Optimisation Non linéaire, Master Green Bee
Fonction de Rosenbrok
F(x1,x2)=(1-x1)^2+100*(x2-x1^2)^2

Optimisation Non linéaire, Master Green Bee


4. Méthodes Quasi-Newton (de Newton modifiées)
Permettent d’ éviter les calcules de H et de son inverse à chaque itération. En plus, la direction calculée à partir de la méthode de Newton peut
ne pas être une direction de Descente!(H peut ne pas être positive définie)!!
On conserve un modèle quadratique de f autour xk (current iterate xk ):
1
• 𝑄𝑘 𝑑 = 𝑓 𝑥𝑘 + 𝑑 = 𝑓(𝑥𝑘 ) + 𝛻𝑓(𝑥𝑘 )𝑇 𝑑 + 𝑑 𝑇
𝐵𝑘 (𝑑 ) où Bk est une approximation de la matrice Hessienne.
2
• Le minimum de Qk est dans la direction de descente:𝒅𝒌 = − 𝑩𝒌 −𝟏 𝜵𝒇 𝒙𝒌 , utilisée comme direction de recherche,
• La nouvelle itération est (new iterate, nouveau itéré): 𝒙𝒌+𝟏 = 𝒙𝒌 + 𝒑𝒌 𝒅𝒌 ∶ pk satisfait les conditions de Wolf(à déterminer au paravent)
Les Méthodes quasi-Newton sont basées sur l'idée d'approcher la Hessienne ou, plus directement encore, son inverse, par une approximation
actualisée à chaque itération en fonction de l’évolution de l’algorithme (Méthode quasi-Newton)

Evaluation de Bk+1 (ou Dk+1=Bk+1-1)


 Pour déterminer Bk+1, on doit utiliser les informations obtenues jusqu'à présent (itération k): les différents gradients successifs des itérations
précédentes et de l’itération actuelle.
 Pour une minimisation, on impose de plus à la matrice Bk d’être symétrique et définie positive (comme H)
 Bk+1 doit aussi satisfaire la condition de la sécante : 𝐵𝑘+1 𝑥𝑘+1 − 𝑥𝑘 = 𝛻𝑓𝑘+1 − 𝛻𝑓𝑘 ou 𝑩𝒌+𝟏 𝒔𝒌 = 𝒚𝒌
Avec 𝒔𝒌 =𝑥𝑘+1 − 𝑥𝑘 et 𝒚𝒌 = 𝛻𝑓𝑘+1 − 𝛻𝑓𝑘 (ce qui permet de capturer la courbure de f)
• Condition de la sécante (imposée à Bk): Le model quadratique de la fonction pour la nouvelle itération k+1 est
1 𝑇
• 𝑄𝑘+1 𝑥 = 𝑓(𝑥𝑘+1 ) + 𝛻𝑓(𝑥𝑘+1 )𝑇 (𝑥 − 𝑥𝑘+1 ) + (𝑥 − 𝑥𝑘+1 ) 𝐵𝑘+1 ((𝑥 − 𝑥𝑘+1 ) )
2

• 𝛻𝑄𝑘+1 𝑥 = 𝛻𝑓(𝑥𝑘+1 ) + 𝐵𝑘+1 (𝑥 − 𝑥𝑘+1 ) On impose la condition:


• 𝛻𝑄𝑘+1 𝑥𝑘 = 𝛻𝑓(𝑥𝑘+1 ) + 𝐵𝑘+1 (𝑥𝑘 − 𝑥𝑘+1 ) = 𝛻𝑓 𝑥𝑘 capture la courbure en xk+1 et xk d’où la condition de la sécante 𝑩𝒌+𝟏 𝒔𝒌 = 𝒚𝒌
−1
Optimisation Non linéaire, Master Green Bee
• Ou 𝐞𝐧 𝐢𝐧𝐯𝐞𝐫𝐬𝐚𝐧𝐭: 𝐵𝑘+1 𝒚𝒌 = 𝒔𝒌
To determine Bk + 1 uniquely, we impose the additional condition that among all symmetric matrices satisfying the secant equation, Bk+1 is,
in some sense, closest to the current matrix Bk
condition of closeness of Bk+1to Bk
n doit utilser une norme pour minimiser cette “distance”!!  problem optimization (ex. Norme de Frobenius avec ou sans poids)
Le problem devein uu Pb. Optimization: 𝒎𝒊𝒏 𝑩 − 𝑩𝒌 sous la condition 𝑩 𝒔𝒌 = 𝒚𝒌 B est symétrique:
les methods QN different par le choix des norms

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

Optimisation Non linéaire, Master Green Bee


Fonction fminunc
La fonction fminunc utilise la méthode « quasi-Newton » pour l'optimisation multidimensionnelle sans
contrainte (unc). La matrice hessienne est évaluée(ou on peut la spécifier voir options)
Syntax
x = fminunc(fun,x0) PO NL sans contraintes
x = fminunc(fun,x0,options) Minimiser f (x)
[x,fval] = fminunc(___) x dans Rn
[x,fval,exitflag,output] = fminunc(___) (n variables de décision, x1,x2…xn)
[x,fval,exitflag,output,grad,hessian] = fminunc(___)
Calcul aussi grad et la hessienne de fun à x* fun = @(x) 3*x(1)^2 + 2*x(1)*x(2) + x(2)^2 - 4*x(1) + 5*x(2);
x0 = [1,1];
L’algorithme par defau est celui de BFGS (Quasi-Newton) [x,fval] = fminunc(fun,x0)
options =
optimoptions(@fminunc,'Display','iter','Algorithm','quasi-
Algorithms used by fminunc: newton');
• 'interior-point' (default) [x,fval,exitflag,output] = fminunc(func,x0,options)
• 'trust-region-reflective'
• 'sqp'
• 'sqp-legacy'
• 'active-set'
Optimisation continue Multi-variables sous contraintes
1. PO avec contrainte d’égalité  x1 
x 
Minimiser f (x)  
x   2
S/C gj(x)=0, j=1,2,…..,m  
 x n 
m contraintes d’égalité
Où m est inférieur ou égal à n,
Si non le problème devient trop défini et, en général, il n'y aura pas de solutions.
ON CHERCHE LE minimum de f sur la frontière définie par l’intersection des différentes contraintes
Solution par:
• Méthode de Substitution directe dans f : exprimer l’une des variable en fonction des autres (ce n’est pas
toujours possible) élimination des contraintes
• La méthode de la variation contraignée
• la méthode des multiplicateurs de Lagrange (ou du lagrangien)

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

Optimisation Non linéaire, Master Green Bee


1.2 Introduction aux multiplicateurs de Lagrange (revoir)
𝜕𝑓 𝜕𝑓
𝑑𝑓 = d𝑥1 + d𝑥
𝜕𝑥1 𝜕𝑥2 2
𝜕𝑔1 𝜕𝑔1
𝑑𝑔1 = d𝑥1 + d𝑥
𝜕𝑥1 𝜕𝑥2 2
𝑑𝑓 = 𝜵𝑓. 𝒅𝒙 = 0. 𝜵𝑓 est perpendiculaire aux vecteur dx où??
𝑑𝑔 = 𝜵𝑔. 𝒅𝒙 = 0. 𝜵𝑔 est perpendiculaire aux vecteur dx
• Au point stationnaire: 𝜵𝑓et 𝜵𝑔 sont colinéaires (//) soit 𝜵𝑓+l 𝜵𝑔 = 0
• Donc les courbes de niveaux de f et celle correspondant à g=0 sont tangentes à la solution. On
obtient 3 équations à 3 inconnues
𝜕𝑓 𝜕𝑔
+𝜆 = 0 (1)
𝜕𝑥1 𝜕𝑥1
𝜕𝑓 𝜕𝑔
+ 𝜆 𝜕𝑥 = 0 (2)
𝜕𝑥2 2
𝑔(𝑥1 , 𝑥2 ) = 0 (3)
Que l’on peut résoudre (ex. méthode de Newton ou Newton-Raphson) pour trouver x* et l*
𝜵𝑓+l 𝜵𝑔=0 soi 𝜵(𝑓+l 𝑔)=0,
si on pose L=f+lg , on peut trouver les 3 équations en cherchant les points stationnaires de L(x1,x2,l)
𝜕𝐿
• =0  (1)
𝜕𝑥1
𝜕𝐿
• =0  (2)
𝜕𝑥2
𝜕𝐿
• = 0 (3)
𝜕𝜆
• On combine ces 3 équations le problème revient à minimiser L avec 3 variables de décision (x1,x2 et l) sans aucune contrainte!!! ce
qui revient à chercher le minimum Optimisation Non linéaire, Master Green Bee
Prix à payer: augmenter la dimensionnalité du problème
Justification of
Interprétation

As before, if f(x∗) is an optimum, any small enough feasible step p


from the optimum must result in a function increase. Based on the
Taylor series expansion (Eq. 5.3), we get the condition
∇ ( G∗) p ≥ 0 which is the same as for the equality constrained case. We use the
arc in Fig. 5.15 to show the descent directions, which are in the open
half-space defined by the hyperplane tangent to the gradient of the
objective.
To consider inequality constraints, we use the same linearization as
the equality constraints (Eq. 5.6), but now we enforce an inequality to
get
( G (x+ p ) ≈ 69 ( G ) + ∇ 69 ( G ) | ? ≤ 0, 9 = 1, . . . , =6 .
For a given candidate point that satisfies all constraints, there are
two possibilities to consider for each inequality constraint: whether
the constraint is inactive (69 ( g ) < 0) or active (69 ( g ) = 0). If a given
constraint is inactive, we do not need to add any condition for it because
we can take a step ? in any direction and remain feasible as long as
the step is small enough. Thus, we only need to consider the active
constraints for the optimality conditions.

Optimisation Non linéaire, Master Green Bee


Newton’s Method for solving F(x)=0:

• 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

Optimisation Non linéaire, Master Green Bee


Optimisation continue: Contraintes d’égalité
• Méthode du Lagrangien (contraintes d’égalité) PO NL avec contraintes d’égalité
On introduit une nouvelle fonction objectif L où chaque contrainte d’égalité gi Minimiser f (x)
est prise en compte (sorte de pénalisation) avec un poids li qui devient aussi SC: gj (x) = 0, j=1, 2,…,m
une variable de décision additionnelle
𝑚
pour L.
𝐿(𝑥1 , 𝑥2 , ⋯ , 𝑥𝑛 , 𝜆1 , 𝜆2 , ⋯ , 𝜆𝑚 ) = 𝑓(x) + 𝜆𝑖 𝑔𝑖 (x) = 𝑓(x) + 𝜆1 𝑔1 (x) + 𝜆2 𝑔2 (x) + ⋯ + 𝜆𝑚 𝑔𝑚 (x)
𝑖=1
Minimiser ou maximiser f revient à trouver les points stationnaires de L (condition nécessaire) :
𝜆∗1
𝑚
𝜕𝐿 𝜕𝑓 𝜕𝑔𝑗 𝑥1∗
= + 𝜆𝑗 = 0,
𝑖 = 1,2, ⋯ , 𝑛 𝑥2∗ ∗
𝜕𝑥𝑖 𝜕𝑥𝑖
𝑗=1
𝜕𝑥𝑖
Solution 𝑥 ∗= e𝑡 𝜆∗ = 𝜆2
⋮ ⋮
𝜕𝐿 𝑥𝑛∗
= 𝑔𝑗 (𝑥) = 0, 𝑗 = 1,2, ⋯ , 𝑚 Garantie que les contraintes soient 𝜆∗𝑚
𝜕𝜆𝑗 satisfaites
n + m équations avec n + m inconnues, xi et lj

Cette Méthode permet de transformer un PO NL à contraintes d’égalité en un PO NL sans contraintes en


introduisant une nouvelle fonction objectif L (Lagrangien) qui tient compte des contraintes (avec des pénalités) et
une nouvelle variable de décision pour chaque contrainte.
(d’où l’utilité des méthodes de résolution des PO sans contraintes)
On peut aussi utiliser les algorithmes de résolution des systèmes d’équations non-linéaires obtenues (Newton, Newton-Rapshon..)
Optimisation Non linéaire, Master Green Bee
Minimiser (ou maximiser) f(x,y)=x+2y
SC: ¼ x2+y2=1
• Trouver les points stationnaires du Lagrangien L, lequel des deux est le min? (Justifier)
• Tracer les courbes de niveaux de f de niveaux de f et Montrer par construction que f et g(x,y) sont
tangents aux point stationnaires
• Conditions: déterminant of the border bordered is positive (vérifier)
𝜕2𝐿 𝜕2𝐿 𝜕2𝐿
Lλλ Lλx Lλy 0 gx gy
2,
𝐵ℎ = Lxλ Lxx Lxy = gx Lxx Lxy 𝜕𝑥 1 𝜕𝑥1 𝜕𝑥2 𝜕𝑥1 𝜕𝜆
.
Lyλ Lyx Lyy gy Lyx Lyy 𝐻= .
2 2
𝜕 𝐿 𝜕 𝐿 𝜕2𝐿
Theorem: If the last n − m principal minors of the bordered Hessian (the , ,...... 2
Hessian of L at the above critical point) is such that the smallest minor has 𝜕𝜆𝜕𝑥1 𝜕𝜆𝜕𝑥 2 𝜕𝜆
sign (−1)m+1 and are alternating in sign, then (x* is a local constrained
maximum of f subject to the constraints gi = 0

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)!!

Si en plus, on a des contraintes d’égalité hi(x)=0 (i=1 à m’)


𝑚 𝑚′
𝜕𝑓 𝜕𝑔𝑗 𝜕ℎ𝑗 𝑚 𝑚′
(𝑥 ∗) + 𝜆𝑗 (𝑥 ∗) + 𝜇𝑗 (𝑥 ∗) = 0, 𝑖 = 1,2, ⋯ , 𝑛 (1
𝜕𝑥𝑖 𝜕𝑥𝑖 𝜕𝑥𝑖 𝛻x𝑓 + 𝜆𝑖 𝛻x𝑔𝑖 + 𝜇𝑖 𝛻xℎ𝑖 = 0
𝑗=1 𝑗=1
𝑖=1 𝑖=1
𝜆𝑗 𝑔𝑗 (𝑥 ∗) = 0, 𝑗 = 1,2, ⋯ , 𝑚 (2
ℎ𝑗 (𝑥 ∗) = 0, 𝑗 = 1,2, ⋯ , 𝑚′ 𝑒𝑡 𝑔𝑗 (𝑥 ∗) ≤ 0, 𝑗 = 1,2, ⋯ , 𝑚 (3 On pénalise la fonction f si gi est violée
𝜆𝑗 ≥ 0, 𝑗 = 1,2, ⋯ , 𝑚 (4 gi>0 don li doit être positif..
Optimisation Non linéaire, Master Green Bee
Exemple
Minimiser f(x, y) = x2 + y2
SC y ≥ x2 + 1,

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 »

Optimisation Non linéaire, Master Green Bee


PO NL avec contraintes d’inégalité.. suite
Maximiser f (x) 𝑚

SC: gj (x) ≥ 0, j=1, 2,…,m 𝐿(𝑥, 𝑦, 𝜆) = 𝑓(𝑥) + 𝜆𝑗 𝑔𝑗 (𝑥, 𝑦)


𝑗=1
𝑚
𝜕𝑓 𝜕𝑔𝑗
(𝑥 ∗) + 𝜆𝑗 (𝑥 ∗) = 0, 𝑖 = 1,2, ⋯ , 𝑛 = 0, 𝑖 = 1,2, ⋯ , 𝑛 (1)
𝜕𝑥𝑖 𝜕𝑥𝑖
𝑗=1
𝜆𝑗 𝑔𝑗 (𝑥 ∗) = 0, 𝑗 = 1,2, ⋯ , 𝑚 (2)
𝑔𝑗 (𝑥 ∗) ≥ 0, 𝑗 = 1,2, ⋯ , 𝑚 (3)
𝜆𝑗 ≥ 0, 𝑗 = 1,2, ⋯ , 𝑚 (4)

En effet le problème équivalent est:


• Minimiser -f(x)
• hj(x)= -gj ≤0 (j=1…m)

Optimisation Non linéaire, Master Green Bee


Exemple
Max f ( x, y )  10 x  20 y  ( x 2  y 2 ) / 10
SC x  y  100
y Solution du PO sans
x  y  100 100  x  y  g ( x, y )  0
contraintes
100
L  f ( x, y )  lg ( x, y ) F=1250
L f g
 Lx  l  10  x / 5  l  0 (1)
x x x
L f g
 Ly  l  20  y / 5  l  0 (2)
y y y Domaine
des
l  0, 100  x  y  0, l (100  x  y )  0, solutions
admissibles
Si l=0  x*=50 et y*=100 mais la contrainte n’est
x
pas satisfaites l>0 50 100


(100  x  y )  0 soit x  y  100 (3)
3 équations à 3 inconnues
x*  25
y*  75 f ( x*, y*)  1125
l 5

Ex. Trouver la solution dans le cas ou la contrainte est x  y  160


Optimisation Non linéaire, Master Green Bee
Problème de programmation convexe
• PO Convexe:
Minimiser f (x)
SC: gj (x) ≤ 0, j = 1, 2,…,m
Est un problème de programmation convexe si la fonction objectif f (x) et
les fonctions de contrainte, gj (x) sont convexes (les matrices H sont
positives définies)
 
m
Le Lagrangien peut être écrit ainsi: L(x, y, λ )  f (y )   l j g j (y )  y 2j
J 1

• Si lj ≥ 0, alors ljgj(x) est aussi convex, et puisque ljyj=0


 L(x,y,l) est aussi une fonction convexe
• Condition nécessaire pour f (x) d’avoir un minimum relatif à x*
est que L(x,y,l) est stationnaire au point à x*. 𝐾𝐾𝑇
• Puisque L(x,y,l) est convexe sa dérivée s’annule en un seul 𝑚
point qui doit être le minimum absolu. 𝜕𝑓 𝜕𝑔𝑗
(𝑥 ∗) + 𝜆𝑗 (𝑥 ∗) = 0, 𝑖 = 1,2, ⋯ , 𝑛 (1
𝜕𝑥𝑖 𝜕𝑥𝑖
𝑗=1
• En plus les conditions de KKT garantissent que c’est aussi la
solution optimale du PO 𝜆𝑗 𝑔𝑗 (𝑥 ∗) = 0, 𝑗 = 1,2, ⋯ , 𝑚 (2
𝑔𝑗 (𝑥 ∗) ≤ 0, 𝑗 = 1,2, ⋯ , 𝑚 (3
 Les conditions de Kuhn-Tucker sont nécessaires est 𝜆𝑗 ≥ 0, 𝑗 = 1,2, ⋯ , 𝑚 (4
suffisantes pour un minimum absolu de f (x) en x* sous les
contraintes du PO. Optimisation Non linéaire, Master Green Bee
Programmation quadratique et SQP
• Un PONL est de type quadratique si la FO est une fonction quadratique (forme quadratique) et les contraintes
sont des contraintes linéaires
• Formulation Générale:
1
Min 𝑓 𝑥 = 𝑥 𝑇 𝐻𝑥 + 𝑐 𝑇 𝑥 = 1/2 𝑖𝑗 𝑥𝑖 𝐻𝑖𝑗 𝑥𝑗 + 𝑖 𝑐𝑖 𝑥𝑖 (+on peut ignorer la constante)
2
𝐴𝑒 𝑥 = 𝑏𝑒
𝐴 𝑥≤𝑏
• SC
𝑥 ≥ 𝑙𝑏
𝑥 ≤ 𝑢𝑏
On dit qu’une forme quadratique est convexe lorsque sa matrice H associée est semi-définie positive.
A. QP avec contrainte d’égalité
𝟏
Min 𝒇 𝒙 = 𝟐 𝒙𝑻 𝑯𝒙 + 𝒄𝑻 𝒙
SC 𝑨𝒆 𝒙 = 𝒃𝒆
 résoudre un système d’équations linéaires pour le point stationnaire : Montrer avec le Lagrangien avec un
exemple
Inégalité  introduire Les variables d’écarts
PQS (ou SQP)
La facilité avec laquelle un PQ peut être résolu explique l’intérêt de la la méthode SQP.
Pour un problème général sous contraintes contraint, nous pouvons faire une approximation PQ locale du modèle non
linéaire, résoudre le PQ et répéter ce processus jusqu'à convergence.
Cette méthode consiste à résoudre de manière itérative une séquence de problèmes de programmation quadratique,
d'où le nom de programmation quadratique séquentielle.
Optimisation Non linéaire, Master Green Bee
Optimisation Non linéaire, Master Green Bee
Méthodes des Pénalités/barrières
• Soit le PO NL: Minimiser f (x)
SC: gj (x) ≤ 0, j = 1, 2,…,m
hj (x) = 0, j = 1, 2,…,m’
• la méthode des pénalités convertit essentiellement ce problème d'optimisation à contrainte en un PO sans contraintes en pénalisant
toute violation des contraintes (prescribe a high cost for constraint violation)
• La méthodes barrières introduit une barrière autour du domaine des solutions admissibles pour ne pas en sortir.. In the case of barrier
methods, a term is added that favors points in the interior of the feasible region over those near the boundary
• Dans les deux cas on obtient un problème d’OP NL sans contrainte pour la fonction fp: Minmiser 𝑓𝑝 (𝑥, 𝜂) = 𝑓(𝑥) + 𝜇𝑃 (𝑥)
• P > =0 et P(x)=0 si x est admissible et diffèrent de zéro autrement. 𝜇 > 0, est appeler facteur de pénalité..
Les Méthodes de pénalité couramment utilisée sont:
1. Pénalités extérieures:
𝑚 2 𝑚′ 2
a. Les solutions non admissibles (pénalités violées) avec des pénalités quadratiques: 𝑃(𝑥) = 𝑖=1
sup(0, 𝑔𝑖 (𝑥)) + 𝑖=1
ℎ𝑖 (𝑥)

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:

ou Méthodes de points intérieurs (barrier methods or IPMs): approcher la solution de l’intérieur du


domaine des solutions admissibles
Utilisées pour les contraintes d’inégalité seulement. Les algorithmes restent à l’intérieur du
domaine admissible (défini par les contraintes d’inégalité) en pénalisant fortement dans ce cas les
points admissibles qui s’approchent de la frontière!! ( d’ou le nom barrière)
• Deux types de barrières sont utilisées
Contrainte d’inégalité g(x) ≤0
• P(x)= - log(-g(x)) : barrière logarithmique
• ou P=-1/g(x) (fonction inverse) pourquoi les signe -??
• P(x) force la contrainte à être négative!! Et forme une barrière. L’objectif devient très grand
quant la g(x) s’approche de Zéro.

Contraintes de supériorité g(x) >= 0 : P(x)= log(g(x)), P=-m/g(x)


• On doit commencer par une solution faisable et m élevé et on décroit m pour chaque itération..
A chaque itération on doit rester faisable donc si on sort du domaine, on réajuste le pas.
• L’optimum de fp = f+mP s’approche de celui de f avec contraintes!! On doit réduire l or m 0
optimale solution
Le lagrangien est une forme très particulière de pénalité.

Optimisation Non linéaire, Master Green Bee


Minimiser f(x)=x
Sc g x>=
Utilser
a) la methode des genalités qudratiques
b) La methodes des bbiriers logarthmiques:inverse

c) Trouver dans chaques cas les solution analytiques x*(m) et puis les limites de ces solurtion

Optimisation Non linéaire, Master Green Bee


EX;
Minimiser F(x) x.^3-10.*x-2*x.^2+10;
x>=3;

Optimisation Non linéaire, Master Green Bee


The concept behind penalty methods is intuitive: to transform
a constrained problem into an unconstrained one by adding a
penalty to the objective function when constraints are violated
or close to being violated.

This is similar in form to the Lagrangian, but one difference is


that m is fixed instead of being a variable. However, instead of
just solving a single optimization problem, penalty methods
usually solve a sequence of problems with different
values of to get closer to the actual constrained minimum. We
will see shortly why we need to solve a sequence of problems
rather than just one problem.
Exterior Penalty Methods

Optimisation Non linéaire, Master Green Bee


Optimisation avec Matlab: Méthodes locales

https://www.mathworks.com/help/optim/ug/problems-handled-by-optimization-toolbox-functions.html

Type de problème Technique d’optimisation Fonction Matlab


Méthode de la recherche de la section dorée (similaire à
Problème 1-d borné fminbnd
la bissection)

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

Problème linéaire multidimensionnel


Méthode du Simplex linprog
avec contraintes

Méthode d’optimisation quadratique successive


« Sequential Quadratic Programming »: minimiser un
Problème non-linéaire multidimensionnel model quadratique du problème à chaque itération.
fmincon
avec contraintes Parmi les méthodes les plus efficaces pour les problèmes
d'optimisation non linéaire avec contraintesor a
quadratic optimization problem, interior point..
Fonction fminbnd

La fonction fminbnd utilise une méthode partiellement basée sur la méthode de la


recherche de la section dorée.
[x,fval] = fminbnd(fun,x1,x2)
ou a = 9/7;
[x,fval,exitflag,output] = fminbnd(fun,x1,x2,options) fun = @(x) sin(x-a);
x = fminbnd(fun,1,2*pi)
Arguments d'entrée :
fun : dans le premier cas, fun est une fonction externe (fonction objectif qu'on
cherche à minimiser). fun = @sin;
Dans le second cas, fun est une fonction anonyme où est exprimée la fonction x1 = 0;
objectif qu'on cherche à minimiser. x2 = 2*pi;
x1 et x2 : bornes inférieure et supérieure du domaine dans lequel la solution est options = optimset('Display','iter');
recherchée. x = fminbnd(fun,x1,x2,options)
options (pas obligatoire)
function f = scalarobjective(x)
Arguments de sortie : f = 0;
x : valeur finale des variables, ce sont les solutions si la méthode a convergé ; for k = -10:10
fval : valeur finale de la fonction à minimiser ; f = f + (k+1)^2*cos(k*x)*exp(-k^2/2);
exitflag (pas obligatoire) : indicateur de fin d'exécution : 1 arrêt car solution end
trouvée, 0 car nombre d'itérations maximal atteint ;
output (pas obligatoire) : nombres d'itérations et d'évaluations de fonction réalisés
Fonction fminsearch
x = fminsearch(fun,x0)
x = fminsearch(fun,x0,options)
fun = @(x)100*(x(2) - x(1)^2)^2 + (1 - x(1))^2;
x = fminsearch(problem)
[x,fval] = fminsearch(___) x0 = [-1.2,1];
[x,fval,exitflag] = fminsearch(___) x = fminsearch(fun,x0)
[x,fval,exitflag,output] = fminsearch(___)

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

exitflag (pas obligatoire) : indicateur de fin d'exécution : 1 arrêt car solution


trouvée, 0 car nombre d'itérations maximal atteint ;

output (pas obligatoire) : nombres d'itérations et d'évaluations de fonction réalisés.


Fonction fmincon
La fonction fmincon utilise plusieurs méthodes de résolution de problème d'optimisation multidimensionnelle
avec contraintes.
Syntax fun = @(x)100*(x(2)-x(1)^2)^2 + (1-x(1))^2
x = fmincon(fun,x0,A,b) x0 = [0.5,0];
x = fmincon(fun,x0,A,b,Aeq,beq) A = [1,2];
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub)
b = 1;
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) Aeq = [2,1];
x = fmincon(problem) beq = 1;
[x,fval] = fmincon(___) x = fmincon(fun,x0,A,b,Aeq,beq)
[x,fval,exitflag,output] = fmincon(___)
[x,fval,exitflag,output,lambda,grad,hessian] = fmincon(___)
A et b : matrice et un vecteur qui permettent d'exprimer les contraintes linéaires de type inégalité sous la forme : A*x <= b.
Aeq et beq : respectivement une matrice et un vecteur qui permettent d'exprimer les contraintes linéaires de type égalité sous
la forme : Aeq*x = beq
lb et ub : bornes inférieure et supérieure des éléments de x. lb et ub ont la même dimension que x
nonlcon : nom de la fonction externe MATLAB dans laquelle sont définies les éventuelles contraintes non-linéaires égalité et inégalité.
L'entête de nonlcon.m est : function [c,ceq] = nonlcon(x)
c est un vecteur qui contient les résidus des contraintes inégalité (toutes les composantes de c doivent être négatives à la solution
c(x) ≤ 0 et ceq(x) = 0. pas de limits (bornes) lb = [] and/or ub = [].

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(___)

Set A = [] and b = [] if no inequalities exist.


Set Aeq = [] and beq = [] if no equalities exist.

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

 fun : fonction objectif qu'on cherche à minimiser.


 x0 : vecteur des valeurs initiales pour démarrer la méthode. 0

La dimension de x0 est égale au nombre de variables du -0.2


0 0.5 1 1.5 2 2.5 3
problème ; t

 lb et ub : bornes inférieure et supérieure des éléments de x :


domaine dans lequel la solution est recherchée. lb et ub ont la
même dimension que x ;
https://fr.mathworks.com/help/optim/ug/lsqnonlin.html
Arguments de sortie :
 x : valeur finale des variables, ce sont les solutions si la méthode a convergé ;
 resnorm : valeur finale de la fonction à minimiser ;
 residual : vecteur des résidus, c'est à dire le vecteur sortie de fun pour la valeur finale de x
 exitflag (pas obligatoire) : indicateur de fin d'exécution : 1 arrêt car solution trouvée, 0 car nombre d'itérations
maximal atteint ;
 output (pas obligatoire) : nombres d'itérations et d'évaluations de fonction réalisés.
Algorithmes d’optimisation:
Heuristiques et Meta-
heuristiques
A. Outzourhit
Master Green Bee
GA et PSO 1
Limitations des algorithmes basés sur le gradient
Il est difficile d'utiliser des algorithmes basés sur le gradient(descente) pour les problèmes
d'optimisation avec:
 Variables de conception à valeurs discrètes
 Fonctions présentant plusieurs minima, maxima et points de selle locaux (sauf appelles plusieurs fois
à partir de points différents)
 Objectifs et contraintes non différentiables

Utiliser les algorithmes sans gradients:


heuristiques métaheuristiques

• Les métaheuristiques (M) sont souvent des algorithmes


utilisant un échantillonnage probabiliste.
• Elles tentent de trouver l’optimum global (G) d’un
problème d’optimisation difficile (avec des discontinuités
par exemple), sans être piégé par les optima locaux (L).

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.

2. Méthodes utilisant des populations: en tout temps on manipule plusieurs à population


points(solutions) en parallèle à chaque itération, qui forment la population que l’on
fait évoluer vers l’optimale. Exemples: GA, ACO, PSO, colonie des abeilles.
Les métaheuristiques utilisent l’historique de leur recherche pour guider
l’optimisation aux itérations suivantes.
• Une méthode heuristique est dite «robuste» si elle converge le plus souvent vers la
même solution (à partir de points de départ différents)
• Une méthode heuristique est dite «efficace» si, à temps de calcul donné, elle donne
une solution proche de l’optimum. GA et PSO 4
Les algorithmes naturels
Nature-inspired algorithm
Les phénomènes physiques ou biologiques ont été à la source de nombreux algorithmes.
• Réseaux de neurones (ANN) artificiels s'inspirent du fonctionnement du cerveau humain,
• Algorithme de recuit simulé: imite le recuit dans la métallurgie,
• Algorithmes génétiques inspirés de la théorie de l'évolution darwinienne des populations: « Les
plus adaptés survivent et se reproduisent ».
• Les algorithmes des essaims de particules (Particle Swarms)
• Les algorithmes de colonies de fourmis (ACO)
• Les algorithmes de colonies d’abeilles …
• Kangourou,..…
Ce sont des techniques d’optimisation stochastiques qui font évoluer une solution (ou population
de solutions).
L’algorithme sera considéré comme faisant partie de la classe des algorithmes évolutionnaires s’il
manipule une population via des opérateurs, selon un algorithme général donné (croisement,
mutation..).
L’AG appartient une catégorie d’algorithme évolutionniste..
GA et PSO 5
Algorithmes Génétiques
Modèle : L’évolution darwinienne des populations biologiques.
 Les individus les plus adaptés survivent et se reproduisent, créant ainsi de nouveaux individus, certains
subissent des modifications de leur ADN (mutation), certains disparaissent ....
 Un algorithme génétique va reproduire ce modèle d'évolution dans le but de trouver des solutions pour
un problème donné.

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 ?

Si xi est nombre à d décimales places. 𝑎𝑖 ≤ 𝑥𝑖 ≤ 𝑏𝑖 , 𝑖 = 1,2, ⋯ , 𝑛.


On peut le représenter par un code binaire
La gamme 𝑎𝑖 → 𝑏𝑖 doit être divisée en (bi-ai).10d parts
Soit mi le plus petit entier tq (nombre de codes binaire >=nombre de part)
𝑏𝑖 − 𝑎𝑖 ).10𝑑 ≤ 2𝑚𝑖 − 1.
Alors:

𝑏𝑖 − 𝑎𝑖
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

Que représente alors 001011011


GA et PSO 9
La création de la population initiale
Initialisation
• Pour démarrer un algorithme génétique, il faut lui fournir une population initiale (un ensemble d’individus) à
faire évoluer
• Le principe général de l'initialisation est d'échantillonner le plus uniformément possible l'espace de recherche
W.
 créer Np chromosomes (solutions faisables) de manière aléatoire (taille de Np à fixer)
• Dans le cas des chaînes de bits, chaque bit de chaque individu est tiré égal à 0 ou à 1 avec un probabilité P.
Pour 4 bits: 0010, 1001, 1101, par exemple
• Dans le cas de l'optimisation sur W = P[ai,bi] (cas borné), on tire uniformément chaque variable dans l'intervalle
correspondant X1= (x11, x12,…x1n), X2= (x21, x22,…x2n), …..

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

Solution Fitness Probabilité Probabilité cumulative


‘Fraction’
1 01100101 4 4/15 (2+3+4)/15
2 00100100 2 2/15 2/15
3 10111101 6 6/15 1
4 00110010 3 3/15 2+3/15

• 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)

3. La sélection par tournoi:


• Pour sélectionner un individu, on tire T individus (T, taille du tournoi ) d’une manière
aléatoire dans la population
• On sélectionne le meilleur de ces T individus (selon sa fitness).
• Le choix de T permet de faire varier la pression sélective, c'est-à-dire les chances de
sélection des plus performants par rapport aux plus faibles.

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

Etape 3 sélectionner les parents pour 0 1 1 0 15 0,23809524 0,42857143


la croisements
0 0 1 1 17 0,26984127 0,6984127

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

Etape 1: Codage des chromosomes(1 = présence, 0


absence de l’objet) Valeur fitness Probabilté Prob. Cu
Code binaire 5 bit 0 =00000 et 31 =11111
Etape 2: Population de 4 individu et évaluation de la 1 0 0 1 17 0,60334029 1
289
fitness
0 1 1 D 10 0,20876827 0,37787056
Etape 3: Choix des parents pour le croisements 100
Croisement 0 0 1 1 3 9
0,01878914
Etape 4: Croisement 0,1691023 0,19
0 1 0 1 9 81
Etape 5: Mutation des enfants
479 1
Etape 6: Mélanger avec les parents et choisir la Total

nouvelle population (en se basant sur la fitness

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 :

Global: (X,Y)  C1=a X + (1 - a) Y , a = U[0,1] C2=a Y + (1 - a) X


Coordonnée par coordonné (X,Y) C1i= ai xi + (1 - ai) yi , ai = U[0,1]
C2i= ai yi + (1 - ai) xi , ai = U[0,1]

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)

Single Point Crossover: A crossover point on the parent


organism string is selected. All data beyond that point in
the organism string is swapped between the two parent
organisms. Strings are characterized by Positional Bias.

Two-Point Crossover : This is a specific case of a N-


point Crossover technique. Two random points are chosen
on the individual chromosomes (strings) and the genetic
material is exchanged at these points.

Uniform Crossover: Each gene (bit) is selected randomly from


one of the corresponding genes of the parent chromosomes.
Use tossing of a coin as an example technique (randomly).

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.

1. Chaînes de bits, on modifie aléatoirement certains bits (bit-flop ou complémentation)


Pour chaque enfant, et pour chaque bit (1 et N), tirer un nombre au hasard r entre 0 et si r <pm muter le bit (complément),
(b1 b2 ...bl bl+1.. bN) (b1 b2 ... 1-bl bl+1 ... bN) Probabilité pm par bit et non par individu. Typiquement :pm=1/N
Autres Méthodes
Bit Flip Mutation: n bit flip mutation, we select one or more genes and flip their values i.e. we change 1s to 0s and vice versa

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(___)

• Voir SPO2 (deux variables )

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

jallowed 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 )  
kColony that Lk
longueur Lk

GA et PSO used edge ( i , j ) 29


Optimisation Multi-objectifs
A. Outzourhit

Master Green Bee

A. Outzourhit Optimisation Muli-objectifs 1


I. Définition et formulation
• L'optimisation multi-objectifs ( appelée aussi Programmation multi-objectifs ou optimisation
multicritères ) est une branche de l'optimisation traitant spécifiquement des problèmes d'optimisation
ayant plusieurs fonctions objectifs (ou critères de décision)
20
• Forme générale (Optimiser M objectifs simultanément) f(x)
g(x)

Minimiser 𝐹 = 𝑓1 𝑋 , 𝑓2 𝑋 … . 𝑓𝑀 (𝑋) T  x1 
  15

g 𝑖 (𝑋) ≤ 0, 𝑖 = 1, . . . . , 𝑚  x2 
X  . 
𝑆𝐶 ℎ𝑖 (𝑋) = 0, 𝑖 = 1, . . . . . 𝑝   10

. 
𝑥𝑖𝐿 ≤ 𝑥𝑖 ≤ 𝑥𝑖𝑈 𝑖 = 1, . . . . . 𝑁  
 xN  5

 M: nombre d’objectifs, 0

 N nombre de variables de décision


 m contraintes d’inégalité -5
-4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1
 P contraintes de d’égalité x

 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)

espace de décision Espace des objectifs réalisables

Le point Nadir: point optimal le plus mauvais


f2(x1,x2) (f1max et f2 max pour une min)
x2

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)

• Dans le contexte multi-objectif, une solution peut être optimale pour un 10


objectif peut ne pas être optimal pour un autre (voir figure ci-contre).
5
En raison de la nature conflictuelle des objectifs, il n’y a généralement
pas de solution réalisable qui minimise simultanément tous les objectifs. 0
• Toute amélioration de l’un des objectifs pourrait se faire au détriment
d’un autre!!!
-5
• Les problèmes multi-objectifs ont en général un ensemble de solutions -4 -3.5 -3 -2.5 -2 -1.5
x
-1 -0.5 0 0.5 1

optimales dont les valeurs des fonctions sont en fait les meilleurs
compromis possibles dans l’espace des fonctions objectifs.

• Il faut donc utiliser une autre définition de la « meilleure solution » ou


solution optimale afin de déterminer exactement quelle solution peut
être considérée meilleure par rapport à une autre.
• Comment comparer la qualité des solutions entre elles ?
A. Outzourhit Optimisation Muli-objectifs 4
Optimalité des solutions
Deux définitions de l'optimalité sont envisagés dans un contexte multi-objectif :
1. L’optimalité lexicographique, où un ordre sur les objectifs est fixé (préférences)
Dans ce cas le problème est résolu car on peut le ramener à un Pb. Monoobjectif par somme pondéré (poids
en fonction de la préférence) ou en optimisant un à un les objectifs dans l'ordre donné. Dans ce dernier cas
l'objectif envisagé est optimiser sans perdre en qualité sur les objectifs préalablement minimisés.

2. L’optimalité de Pareto, basée sur les notions d'efficacité et de non-dominance.


 Une solution x est inefficace s'il existe une solution qui lui est préférée.
 Un tel x ne peut pas représenter une alternative valide pour un décideur
 Dans l'espace des objectifs on parle de dominance une solution domine
une autre (voir)
 Cas de deux objectifs: Une seule solution divise l’espace objectif en quatre quadrants.
 Le quadrant inférieur gauche contient les solutions qui dominent la solution
considérée ; toutes les solutions de ce quadrant ont des meilleurs.
 Les solutions dans le quadrant supérieur droit sont dominées par la solution
considérée. Les quadrants supérieur gauche et inférieur droit contiennent des solutions
qui ne sont pas comparables à la solution considérée.
 L'ensemble des solutions non dominées est constitué de solutions qui résident dans
ces quadrants par rapport à toutes les autres solutions.
A. Outzourhit Optimisation Muli-objectifs 5
IV. Dominance et front de Pareto
Cas d’une Minimisation MO: F(X)=(f1(X), f2(X)…fM(X))T
Si X et Y sont deux solutions admissibles du po, alors:

 F(X) domine faiblement F(Y) ssi:


• La Solution X n'est pas pire que Y en touts les objectifs
• La Solution X est strictement meilleure que Y en au moins un objectif
C.a.d: qq. soit i ≤M, fi(X) ≤fi(Y)
et Il existe au moins un k tq fk(X)<fk(Y)

 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..

A. Outzourhit Optimisation Muli-objectifs 6


Ensemble et Front de Pareto
Une solution X =(x1 , x2 ,..., xn) d’un problème multi-objectif est
dite efficace ou "Pareto optimale" par rapport à l’espace entier des
variables de décision si et seulement s’il n’existe aucune autre
solution X′ telle que la fonction F(X’ )= ( f1 (X’ ), f2(X’ ),…… fM (X’ )
qui domine F(X ).
Une solution est efficace si son image n’est pas dominée; s'il n'est
pas possible
d’améliorer un objectif sans diminuer au moins l'un des autres
• L’ensemble des solutions efficaces est appelé "ensemble
Pareto optimal", ou ensemble des solutions efficaces.

• L’ensemble des valeurs des fonctions objectif correspondantes


dans l’espace des fonctions objectif est appelé « front de
Pareto »
Objectif de l’OMO:
 Trouvez un ensemble de solutions aussi près que possible du front de Pareto
 s’assurer que les solutions soient suffisamment différentes les unes des autres et qu’elles ne soient pas biaisées en
favorisant un objectif particulier
Optimisation  prise de décision après (options pour le décideur)
Utiliser l’algorithme génétique et autres!!
A. Outzourhit Optimisation Muli-objectifs 7
Espaces colorés: ensembles des
solutions dominées par une sol.
Donnée(sommet)

• 1 domine 2
• 5 domine 1
• 1 Vs 4: aucune solution ne domine l’autre
(efficaces)

A. Outzourhit Optimisation Muli-objectifs 8


Exemple de front de Pareto

A. Outzourhit Optimisation Muli-objectifs 9


III. Approches de résolution
a. Approche non-Pareto
Dans cette approche le décideur intervient dès le début de la définition du problème, en exprimant ses préférences, afin
de transformer un problème multi objectif en un problème simple objectif méthodes à priori: décision  optimisation
- l'optimalité lexicographique: (méthode à priori)
où l’ordre des objectifs est fixé (Ordonner les objectifs) en optimisant un à un les objectifs dans l'ordre donné. L'idée est
alors d'améliorer l'objectif envisagé sans perdre en qualité sur les objectifs préalablement minimisés.
- Les approches de scalarisation: transforment un problème d'optimisation multi-objectif en un ou plusieurs problèmes à
un seul objectif.
Dans les deux cas on peut faire appel aux méthodes d'optimisation à un objectif
b. Approche de Pareto, basée sur la notion de « non-dominance »
• Les approches Pareto utilisent directement la notion de dominance dans la sélection des solutions générées.
Dans cette approche: le décideur effectue son choix dans l'ensemble des solutions proposées par le solveur multi objectif
Méthodes à posteriori: Optimisation décision
Vilfredo Pareto en 1896 a été la premier à traiter les objectifs conflictuels.
Une solution est dite efficace si le point correspondant dans l’espace des objectifs est non-dominé

A. Outzourhit Optimisation Muli-objectifs 10


Approches de résolution: Classification
Les méthodes d'optimisation multi-objectifs peuvent être divisées en quatre classes:
• Méthodes sans préférence: aucune information préalable n'est censé être disponible, mais une solution de
compromis neutre est identifiée sans information de préférence.
• Méthodes à priori: les informations de préférence sont d'abord demandées au Décideur/maitre d’ouvrage,
puis une solution satisfaisant au mieux ces préférences est trouvée.
• Méthodes posteriori: Un ensemble représentatif de solutions optimales de Pareto est d'abord trouvé, puis
le décideur doit en choisir une.
• Méthodes interactives, le décideur participe à la recherche la solution la plus préférée de manière itérative
• Dans chaque itération de la méthode interactive, on présente au décideur la ou les solutions optimales de
Pareto. Celui-ci et décrit comment la ou les solutions pourraient être améliorées.
• Les informations fournies par le décideur sont ensuite prises en compte lors de la génération de nouvelles
solutions optimales de Pareto qu'il étudiera lors de la prochaine itération.
• De cette façon, le Décideur apprend la faisabilité de ses souhaits et peut se concentrer sur les solutions qui
l'intéressent. Le décideur peut arrêter la recherche quand il le souhaite.

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.

• Plusieurs exécutions d'optimisation avec différents réglages de paramètres sont


effectuées afin d'obtenir un ensemble de solutions qui se rapproche de l'ensemble
optimal de Pareto.
• Ces méthodes ont tendance à générer des éléments du front de Pareto un à la fois.
• Fondamentalement, cette procédure est indépendante de l'algorithme d'optimisation
sous-jacent.

A. Outzourhit Optimisation Muli-objectifs 12


1. La méthode lexicographique
• Les objectifs sont préalablement rangés par ordre d'importance par le décideur.
• Ensuite, l'optimum est obtenu en minimisant tout d'abord la fonction objectif la plus importante puis la deuxième et
ainsi de suite..
Soient les fonctions objectifs fi avec i = 1, ... , M, avec un ordre d’importance tel que f1 > f2 > · · · > fM
1ere étape: Minimiser f1(x)
Avec gj(x) satisfait, j = 1, ... , m
Soit x1*, la meilleure solution trouvée avec f1* = f1 (x*1) .
f1* devient alors une nouvelle contrainte, l'expression du nouveau problème est donc:
Minimiser f2 (x)
avec gj(x) satisfait j = 1, ... , m et f1(x) = f1*
Soit x2*; la solution de ce problème.
Le ième problème sera le suivant :
Minimiser fi(x)
avec gj(x)satisfait j = 1, ... ,m et f1(x) = f1*,f2(X) = f2*, f3 (x) = f3* , ... , fi-1 (x) = f*i-1
La procédure est répétée jusqu'à ce que tous les objectifs soient traités. La solution obtenue à l'étape k sera la solution du
problème.

A. Outzourhit Optimisation Muli-objectifs 13


2. Méthodes de Scalarisation
Scalariser un problème d'optimisation multi-objectif consiste à le reformuler en un problème d'optimisation mono-objectif
(Méthode d’agrégation)
2.1 Scalarisation linéaire: Méthode de pondération des fonctions objectifs (combinaison linéaire des objectifs)

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)

A. Outzourhit Optimisation Muli-objectifs 14


Méthode de pondération des objectifs: cas de deux objectifs……
Minimiser f1, f2 devient: Minimiser F = 𝑤1 𝑓1 + 𝑤2 𝑓2 avec 𝑤1 + 𝑤2 = 1 F/w2
g 𝑖 (𝑋) ≤ 0, 𝑖 = 1, . . . . , 𝑚
𝑆𝐶 ℎ𝑖 (𝑋) = 0, 𝑖 = 1, . . . . . 𝑝
𝑥𝑖𝐿 ≤ 𝑥𝑖 ≤ 𝑥𝑖𝑈 𝑖 = 1, . . . . . 𝑁

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

Lexicographique objectif prioritaire f1  x1=0, x2=0


Minimise f2 sous contrainte f1=0  x1=0 et x2 => f2=50

F2 prioritaire  solution faisable (-5,5)  F2=0


Minimiser f1 sous contraintes f2=0 https://www.sfu.ca/~ssurjano/optimization.html
A. Outzourhit Optimisation Muli-objectifs 16
2.2. Méthode de la distance au point idéal
• Le décideur fixe un point de référence fixe z*j pour chaque objectif fj (j=1, ..M)
• La nouvelle fonction objectif qui doit être minimisée est la « distance » entre les résultats et les points de
références.
• On cherche les points du front qui sont les plus proches du point de référence
• On peut définir de plusieurs manières la distance entre deux points f1(x),f2(x)…fM(x) et (z1*,z2*…zM*).

 
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 𝑝
𝑀

Ont peut ajouter des coefficients de pondération Minimiser F​ = 𝑤𝑗 𝑓𝑗 (𝑋) − 𝑧𝑗 ∗


(poids pour chaque objectif, ou normalisation) 𝑗=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

Cas de deux objectifs


Minimiser f1
Minimiser 𝑓1 , 𝑓2
𝑆𝐶 f2 ≤ 𝜀2
• La solution obtenue est Pareto Optimale. En effet:
• Pour une valeur donnée de 𝜖2, l’espace des objectifs est divisé en deux sous-domaines : f2 ≤ 𝜖2= 𝛿1
(faisable) et f2 > 𝜖2= 𝛿1 (non-faisable).La minimisation de f1 dans le domaine des possibles conduit au point
globalement optimal A.
• De même, pour une valeur différente de 𝜖2=𝛿2, le minimum de f1 donne le point B. et ainsi de suite..

• De ce fait, on peut utiliser cette technique pour obtenir le front de Pareto


II. Méthode epsilon –contrainte
Avantages
• On peut montrer que la solution est Pareto optimale… de
cette façon on peut générer le front de Pareto on
changeant les limites Optimiser un objectif pour une
gamme de contraintes sur les autres
• Applicable aux problèmes convexe ou non convexe
• Contraintes peuvent avoir un sens: limite du stock
disponible…

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

Méthodes d'optimisation multi-objectifs: GA, recuit simulé, essaim de particules(PSO)……..

• 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:

1. Effectuez un tri de non dominance dans la combinaison des populations


parents (Pt) et descendants (Qt) et classez-les par fronts (rang), c'est-à-dire
qu'ils sont triés selon un niveau de non-domination ascendant F1 (front de
rang 1) , F2, …
Comment?
• Le premier rang F1 est constitué de toutes les solutions non dominées de la
population RT=Qt+Pt
• On supprime ces solutions le deuxième rang est formé par les solutions qui
ne sont dominées par aucune solution restante et ainsi de suite…

2. Créer la nouvelle population(génération) en commençant par le Front F1 et


puis F2,... A. Outzourhit Optimisation Muli-objectifs 24
Individuals are selected
NSGAII (non-dominant sorting Genetic Algorithm) frontwise

1. Si un front doit être pris partiellement (ex.F3) pour


compléter la génération, effectuez un tri selon la
distance d’encombrement (crowding distance) qui
est liée à la densité des solutions autour de chaque
solution. Les moins denses sont préférés (pour
favoriser la diversité)

2. La sélection des parents pour le croisement


s’effectue généralement par tournois (par front et
puis distance d’encombrement)

3. Après on procède au croisement et à la mutation.

not all individuals are


Tournois: Tirer au hasard k individus, et sélectionner le
allowed to survive. In this
meilleur, i.e. Le plus adapté (par Front (rang) et puis
splitting front, solutions
distance d’encombrement)
are selected based on
crowding distance.
A. Outzourhit Optimisation Muli-objectifs 25
Distance d’encombrement (crowding distance)
• Le tri de non-dominance retient les membres qui ne sont pas dominés.
• Le tri dans un front donnée peut s’effectuer en fonction de la distance
d’encombrement pour favoriser la diversité.
• La densité de chaque membre particulier est mesurée comme la distance
du point considéré aux membres voisins (crowding distance, cd)
• Cet opérateur de comparaison vise à augmenter la diversité du front de
Pareto.
• Les membres de la population sont classés en tenant cette distance
d'encombrement local
Cd(i)=moitié du périmètre du Cuboid centré sur i
The crowding distance is the normalized
Manhatten Distance in the objective space.
𝑓1𝑖+1 − 𝑓1𝑖 𝑓2𝑖+1 − 𝑓2𝑖
𝑐𝑑 𝑖 = +
𝑓1𝑚𝑎𝑥 − 𝑓1𝑚𝑖𝑛 𝑓2𝑚𝑎𝑥 − 𝑓2𝑚𝑖𝑛

A Généraliser pour M objectif

Plus la distance d'encombrement est élevée, plus la solution est diversifiée.


Plus elle est faible plus les solution sont groupées,….)

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

A. Outzourhit Optimisation Muli-objectifs 29


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.”

L'optimisation est une branche des mathématiques cherchant à modéliser, à


analyser et à résoudre analytiquement ou numériquement les problèmes qui
consistent à minimiser ou maximiser une fonction sur un ensemble.

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.

Maximiser f(x) revient à minimiser –f(x)

Le but éventuel est de trouver la meilleure solution possible (combinaisons de


paramètres, variables) à un problème, ce qui améliore ou optimise les
performances (à définir) d’un système. PL 2
Performances des bâtiments
Deux catégories de performances :
• Performance minimale exigée par le cadre réglementaire: le respect des codes
nationaux, de la réglementation thermique………
• Performances d’usage: dépendent de (la volonté) du maitre d’ouvrage ou de
l’utilisateur final
• Sécurité de l’ouvrage
– Résistance aux charges
– Sécurité incendie
– Pérennité
• Coût (investissement, énergie, sur cycle de vie..)
• Consommation énergétique (chauffage, clim..)
• Confort de l’usager
– Hygrothermique
– Acoustique
– Visuel
– Qualité de l'air et confort olfactif
– Vibration des planchers
• Impacts environnementaux
– Impacts environnementaux en phase de production, usage et fin de vie
PL 3
 bâtiments durables, fonctionnels, innovants et compétitifs
Performance des Bâtiments
Wikipédia : "La performance d'un bâtiment est un attribut d'un bâtiment qui
exprime à quel point ce bâtiment remplit ses fonctions »

Attributs de performance du bâtiment : efficacité énergétique


(consommation, demande en chauffage et clim..), confort thermique, confort
visuel et acoustique, qualité de l'air intérieur et éclairage naturel.

Bâtiment à haute performance : intègre et optimise tous les principaux


attributs d'un bâtiment, y compris l'efficacité énergétique, la durabilité, la
performance du cycle de vie et la productivité des occupants, l'aménagement
paysager ou l'efficacité de l'éclairage

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)

Exemples d’objectifs: coût du cycle de vie le plus bas, coût d’investissement


le plus bas, confort thermique le plus élevé…..

• Traditionnellement, les bâtiments ont été conçus en séparant les


processus de conception en plusieurs étapes de conception majeures
avec plusieurs disciplines (architectes, ingénieurs mécaniques, ingénieurs
structures, ingénieurs électriciens, etc.).

• 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 :

• l’enveloppe du bâtiment qui comprend notamment des variables concernant


l’assemblage, l’épaisseur et les matériaux des différents composants .. (types
d’isolation, épaisseur, type de matériaux..)
• la géométrie et la forme du bâtiment qui comprennent également
l’orientation, la superficie vitrée et le dimensionnement des protections solaires;
• les façades double-peau: façades double-peau se composent d’une paroi
extérieure et d’une paroi intérieure, généralement vitrées et séparées par une
cavité de quelques centimètres à plusieurs mètres
• le dimensionnent, le choix et le contrôle des systèmes énergétiques
(Chauffage, Ventilation et Climatisation CVC, systèmes passifs)
• l’éclairage: LED, lampe fluorescente, éclairage naturel..
• les systèmes innovants: cogénération, production solaire et de stockage
thermique
PL 6
Optimisation des performances énergétiques
des bâtiments
Optimiser les performances énergétiques
• Amélioration continue de la performance énergétique
• Réduction les impacts environnementaux et économiques liés à la
consommation d'énergie des bâtiments.

Méthodes d'optimisation des performances énergétiques:


-Réduire l'empreinte du bâtiment
-Réduire la demande

- ’É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

- Récupérer les pertes/rejets d'énergie


Energie de l’air renouvelé
Chaleur des eaux grises
Cogénération PL 7
Optimisation
L’optimisation vise à résoudre des problèmes où l’on cherche à
déterminer la meilleur solution parmi un grand nombre de solutions
candidates.

Plus précisément, on cherche à trouver une solution satisfaisant un


ensemble de contraintes qui minimise ou maximise une fonction (des
fonctions) donnée (s).
Optimiser= Maximiser ou minimiser une fonction (ou des
fonctions) avec ou sans contraintes.

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:

1. Andreas Antoniou Wu-Sheng Lu , PRACTICAL


OPTIMIZATION : Algorithms and Engineering
Applications .
2. Rao S.S., Engineering Optimization - Theory and
Practice, John Wiley & Sons, New York, 903 pp,
1996.
3. G. G. Practical energy efficiency optimisation,
PennWell Books; Illustrated edition (30 Mar. 2006)

1. Gill P.E., Murray W. and Wright M.H., Practical


Optimization, Elsevier, 401 pp., 2004.
2. Boyd and L. Vandenberghe, Convex Optimization,
Cambridge University Press, 2004.(available at
http://www.stanford.edu/~boyd/cvxbook/)

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

Name License Description


BSD (Berkeley Software
a nonlinear optimization framework,
ADMB Distribution License):
using automatic differentiation.
licence libre
GPL (General public a mathematical modelling chemical
ASCEND
licence) process modelling system.
a testing environment
CUTEr GPL for optimization and linear
algebra solvers.
a software package featuring a high-level
programming language, primarily intended
Octave GPL
for numerical computations; well
13
recognized free alternative to MATLAB.
a cross-platform numerical computational
CeCILL (CEA CNRS package and a high-level, numerically
Scilab
INRIA Logiciel Libre) oriented programming language with free
PL numerical optimization framework.
Evaluation

• 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

• Vous voulez installer un système PV? Trouver l’orientation et


l’inclinaison optimales de l’installation.

PL 16
Bâtiment:
Optimiser la performance énergétique (minimiser),
Minimiser les coûts…

Math: Minimiser ou maximiser des fonctions à


une ou plusieurs variables!!!

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

2. Identification d’une (ou plusieurs) fonction(s) coût ou Définition de la


fonction objectif f(x)= f(x1,x2,…xn) permettant d’évaluer l’état (ou des)
du système (ex : rendement, performance, consommation, fonctions
pertes... . . ). objectifs
3. Identification et description des contraintes imposées aux c
variables de décision (revient à définir un ensemble X de
solutions) Définir les
Contraintes
L’optimisation consiste alors à déterminer les variables de c
décision conduisant aux meilleures conditions de Recherche de la
fonctionnement du système solution
ce qui revient à minimiser ou maximiser la fonction coût), optimale
tout en respectant les contraintes définies à l’étape 3 Algorithmes
PL 18
Exemples

• Un agriculteur possédé un certain nombre d’hectares(T=15ha), et des


quantités d’engrais (E=100kg) et d’insecticide (I=10litres)
• Il a la possibilité de planter des superficies (en ha) du maïs (x1 ) ou du blé
(x2 )
• Les cultures requièrent des quantités différentes d’engrais et d’insecticide
(E1 ,I1 ,E2 ,I2 ) par hectare
• Les cultures fournissent un revenu différent (S1 ,S2 ) (par hectare)
• Objectif : maximiser le revenu net

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.

Problème Classique du sac-à-dos (Knapsack problem),


(distribution des resources)
On dispose de n objets de masse wi (kg) et de valeur vi ($) de 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é!!

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,…..

• Optimiser les systèmes énergétiques multi-sources.


Un problème d'optimisation impliquant plusieurs
PL fonctions objectives est 23
appelé problème de programmation multi-objectifs.
Formulation Mathématique Générale d’un PO
Minimiser f ( x)
 g i ( x)  0, i  1,...., m
SC 
hi ( x)  0, i  1,..... p
• f : Rn  R: est la fonction objectif à minimiser
• x=(x1, x2…..,xn)T: est le vecteur des variables de décision, de conception ou
d'optimisation qui décrivent le problème d'optimisation(inconnues du problème)
• Elles doivent être linéairement indépendantes)
• gi : Rn  R: (i=1,…,m): contraintes d’inégalité
• hi : Rn  R: (i=1,…,p): contraintes d’égalité
• Elles définissent le domaine admissible des solutions X
 Le problème est un problème d'optimisation à contraintes
 Le problème est dit réalisable si X n’est pas vide.
Résoudre le problème revient chercher des points de minimum local (ou global,
c’est encore mieux !)

PL 24
Définitions
• Tout vecteur x=(x1,x2.. xn)T vérifiant les contraintes est dit solution
réalisable (admissible) du PO

• Ces valeurs définissent l’ensemble des solutions admissibles X

• Si de plus la valeur de f(x*) est minimale (maximale), alors x* est dit


solution optimale.

• x* est une solution optimale du problème si x* est une solution


réalisable du problème et si de plus, elle maximise (minimise) la
fonction objectif sur l’ensemble des solution réalisable.

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)

• 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).
• Ainsi, optimisation revient à minimiser puisque le point du maximum d'une
fonction peut être trouvé en recherchant le point minimum du négatif de la même
fonction.

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

– Une contrainte du problème (PO) est active (ou saturée) en x si elle


s’annule en x.
Contrainte d’ égalité: x admissible si h(x) = 0 contrainte d’égalité est
active en x
Contrainte d’inégalité g(x) ≤0: x admissible  g(x) ≤0
– g est active en x si g(x) = 0
– g est inactive en x si g(x) < 0
y compris contraintes de bornes

b. Problème d’optimisation sans contraintes


Minimiser f(x),
x=(x1,..xn) dans Rn
PL 27
Classification des problèmes d'optimisation
2. Nature des variables de décision (variable de conception..)
• Problèmes d'optimisation statiques: les variables de conception sont des constantes
• Problèmes d’optimisation dynamique: chaque variable de conception est fonction d’un ou
de plusieurs paramètres.

3. Structure physique du problème


• Problème de contrôle optimal (variables d’état et variables de control)
• Problème de contrôle non optimal

4. Nature des équations impliquées


• Problème de programmation (optimisation) linéaire (LP) (fonctions objectifs et contraintes
sont des fonctions linéaires des variables de décision), POL
• Problème de programmation quadratique (QP): fonctions objectifs quadratiques (contient
des produits de types xixj et contraintes sont des fonctions linéaires (QP) , POQ
• Problème de programmation géométrique (GP) (somme des produits des variables de
décision )
• Problème de programmation (optimisation) non linéaire (PNL): fonctions non-linéaires
(coût ou contrainte ou les deux). Minimiser f ( x)
f(x1,x2) =10 exp(x1)+2x1x2 (PONL)
x1+x2 <=10  g i ( x)  0, i  1,...., m
PLSC  28
hi ( x)  0, i  1,..... p
Classification des problèmes d'optimisation
5. Valeurs permises des variables de conception (de décision)
• Problèmes de programmation entiers (Integer programming)
– variables= nombres entiers
– Programmation en nombres entiers
– Optimisation combinatoire

• Problème d’ Optimisation continue


variables = nombres réels (x1,x2..)
Fonctions objectifs et contraintes sont continues, différentiables

• Programmation mixte
variables = nombres entiers et réels

• Nature déterministe/stochastique des variables


– Problème stochastique: est un problème d'optimisation dans lequel certains ou tous les
paramètres (variables de décision) sont probabilistes (non déterministes ou
stochastiques): c.à.d. des variables décrites par des distributions de probabilité
- Problème de programmation déterministe: Chaque paramètre est connu avec
précision
- PL
Déterminisme: les données du problèmes sont parfaitement continue # 29
optimisation stochastique
Classification
6. Séparabilité des fonctions
Problème de programmation séparable (F. O et contraintes séparable )
n
f (x)   f i (x i )  f 1(x 1)  f (x 2)  ...
n
g j (x)   g ij ( xi )  b j , j  1,2, , m
i 1
i 1
Problème de programmation non séparable
g j (x)  g 1 j (x 1 )  g 2 j (x 1 )  ...g mj (x m )  b j , j  1, 2,L , m
7. Nombre de fonctions objectifs
- Problème de programmation à objectif unique f (x), avec ou sans contraintes

- Problème de programmation (optimisation) multi-objectifs: (plusieurs fonctions


objectifs à minimiser (maximiser) simultanément..
Formulation:
Trouver x=(x1,x2,..xn) qui minimise (maximise) simultanément plusieurs fonctions objectifs
f1 (x), f2 (x),…., fk (x) sous les contraintes suivants:
 g j (x)  0, j  1, 2,..., m
SC 
hl (x)  0, l  1, 2,..., p
Conflit entre les objectifs à résoudre!!  compromis
PL 30
Programmation (optimisation)
linéaire
• Programmation linéaire
– problème d’optimisation consistant à maximiser (ou minimiser) une
fonction objectif linéaire de n variables de décision soumises à un
ensemble de contraintes exprimées sous forme d’équations ou
d’inéquations linéaires

• Différentes programmations linéaires


– Programmation Linéaire classique
– Programmation Linéaire en Nombre Entiers
– Programmation Linéaire en 0-1
– Programmation Linéaire Mixte

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

f = c1x1 + c2x2 + c3x3 + … + + cnxn x=(x1,x2,….xn)T


Sous forme matricielle: f=cT x (T: transposé de..)

• Sous des Contraintes (mixtes)


– g1=a11x1 + a12x2 + a13x3 + … + a1nxn (, =, ) b1
– g2=a21x1 + a22x2 + a23x3 + … + a2nxn (, =, ) b2
– ….
– gm=am1x1 + am2x2 + am3x3 + … + amnxn (, =, ) bm

• Et des Contraintes de non-négativité pour certaines variables,


contraintes de négativité, de bornes, variable libre pour d’autres,……

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

Forme canonique pure


• Problème de maximisation
• Toutes les contraintes sont du type “≤”
• Toutes les variables sont positives
PL 33
Transformation d’un POL de forme générale à la Forme canonique

• Variable x négative  changement de variable y = -x >=0

• Si la variable x a une borne inférieure non nulle x ≥ l, considérer la


nouvelle variable y = x − l à la place de la variable x y ≥ 0.
• Si x<=l’ alors y=l’-x >=0
• x dans R (positif ou négatif), introduire x1 et x2 >=0, tq x = x1-x2 où
x1 et x2 sont deux nouvelles variables positives.

• Recherche de minimum pour la fonction objectif f, revient à


maximiser –f et min(f) = - Max(-f)

• Inégalité de supériorité (≥), multiplié par (-1) pour obtenir une


inégalité d’infériorité (≤ 0)

• Contrainte d’Egalité: remplacer par deux inégalités (≤ et ≥)

Exemples:

PL 34
Transformer le problème de programmation linéaire General suivant sous la
forme canonique et écrire sous forme matricielle:

1. Max f = 6x1 - 3x2 + x3


sous les contraintes:
x1 ≥ 0, x2 ≤ 0
4x1 + 2x2 + x3 ≤ 65
x1 + x2 - x3 ≥ 5
x1 + x2 = 10

2.
Max f= 5x1 − 2x2 + 10x4
s.c.

x1 + 20x2 + 20x5 ≥ 200


5x2 + 5x3 ≤ 55
2x1 + 12x2 + 10x3 + 5x4 + 2x5 = 80
x1>=3,
x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0,

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

2 Pour un polytope: au moins n


contraintes sont actives dans
un sommet

0 x1 37
2 4 6 8 10

Solution optimal (2,6) et correspond à f=36


PL
Résolution graphique d’un PO linéaire en 2-d
En 2-d, les courbes de niveau de la fonction
objectif (f=constante) sont des droites
parallèles
Il existe des solutions admissibles de valeur f
si la ligne de niveau associée à cette valeur
rencontre le domaine admissible X du
problème.
• Pour déterminer la valeur maximale
atteignable il suffit de faire glisser le
plus loin possible une ligne de niveau
de la fonction objectif jusqu’à ce
qu’elle touche encore tout juste X.
• Les points de contact ainsi obtenus
correspondent aux solutions optimales
du PL : L’un des sommets du
polygone défini par les contraintes

la Solution optimale correspond à l’un des sommets du plygone défini par


les contraintes. PL 38
Domaine des solutions admissibles: exemples
Maximiser z = f(x,y) = 3x + 2y
sous les contraintes: 2x + y ≤ 18
2x + 3y ≤ 42
3x + y ≤ 24
x≥0,y≥0
• La région réalisable est l'intersection des régions
délimitées aussi bien par l'ensemble des contraintes,
que par les conditions de non-négativé des variables.
• Les contraintes ou apparaissent des inégalités
correspondent géométriquement à des demi-plans.
• Intersection de ces demi-plans = ensemble des
variables satisfaisant à toutes les contraintes. Ce
domaine forme un polygone convexe.
Sommet Coordonnées (x,y) Valeur de l’objectif (Z)
O (0,0) 0
C (0,14) 28
G (3,12) 33
H (6,6) 30
PL 39
F (8,0) 24
Maximiser f = 8x1 + 5x2
SC
Domaine Admissible: exemple 2x1 + x2  1000
x1 + x2 700
3x1 + 4x2  2400
x1 - x2 300
x1  0 ; x2  0
X2

1000 2X1+X2 1000

700 X1+X2 700 (redundant)

500 Non-réalisable

X1-X2  350
3X1+4X22400
Réalisable

X1
500 700
Points intérieurs. Points aux limites. Points Extrêmes(sommets).

Il y a trois types de solutions (points) réalisables (voir


PL graphe). 40
Trouver les coordonnées des sommets (points extrêmes) du polygone (deux contraintes sont actives)
Exemples
Tracer le Domaine des solutions admissibles et
déterminer ses sommets et la fonction objectif
Maximiser f = 8x1 + 5x2
SC
2x1 + x2  1000
x1 + x2 700
3x1 + 4x2  2400
x1 - x2 300
x1  0 ; x2  0

Maximiser f = 6x1 + 4x2


SC
3x1 + 9x2  81
4x1 + 5x2 55
2x1 + x2  20
x1 - x2 300
x1  0 ; x2  0
PL 41
Résolution graphique

Mettre sous forme matriciel et Résoudre


graphiquement les problème:

• Maximiser f = 3x1 + 5x2


• SC
x1 4
2x2  12
3x1 + 2x2  18
x1  0 ; x2  0

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

⇒ nombre important de sommets ⇒ pas efficace

Utiliser la méthodes du simplexe..

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.

(Solveur est accessible dans l’onglet données)

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é

Transformation d’un POL canonique vers un POL standard:


 On transforme les inégalités en égalités en ajoutant des variables d’écarts positives

Exemple: contrainte: x1-2x2 ≤ 1 PL 45


On introduit la variable d’écart e3 ≥ 0 telle que x1-2x2+e3=1
Exemple
Forme canonique du programme linéaire :

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

Résoudre la forme standard ⇐⇒ résoudre problème d’origine


PL 46
Algorithme du Simplexe
Algorithme du simplexe
• Permet de déterminer la solution optimale, si elle existe, d’un problème PL à n variables.
– développée initialement par George Dantzig en 1947
– seule méthode exacte pour les problèmes linéaires de grande taille
Principe
• Transformer le PO générale à un problème d’optimisation standard
• à partir d’un sommet du polytope, chercher un sommet voisin qui améliore la fonction
objectif..
Comment?
• Transformer ce système d’équations linéaires jusqu’à trouver la solution optimale
• De façon à augmenter la fonction objective (pour une solution de base)
• Inspiré de la Technique utilisée pour trouver la solution d’un système de m équation
avec n variables (n>=m),
Solution de base:
– n-m variables =0 (Variables hors base VHB)
– Trouver les autres variables inconnues (Variables en base VB)!!

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

• Commencer par le sommet (x1,x2)=(0,0) du polygone trouver e1, e2 et e3


• C’est la première solution de base faisable (x1,x2,e1,e2,e3)=(0,0,800,700,300), z=0
• Ceci partitionne les variables en deux groupes : les variables de base (les variables non
nulles), e1, e2 et e3, et les variables hors base (les variables nulles), x1 et x2 dans cette
étape!!
x1 et x2 VHB
e1,e2,e3 VB (de base)
A partir d’une solution de base, augmenter une variable hors base ( laquelle??)

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é!!)

Dans notre cas:


Augmenter x2 à partir de cette solution x2=0, sachant que x1=0)
PL
48
e1 = 800-2x1-x2
e2 = 700-x1-2x2
e3 = 300-x2
z=30000x1+40000x2

Avec x1 =0; e1 x2 ≤ 800/1 (x1=0)


e2 x2 ≤ 700/2
e3 x2 ≤ 300/1
 Il faut choisir la plus petite valeur!! min{800/1, 700/2, 300/1} = 300  e3 va s’annuler la
première lorsque on augmente x2 (devient HB)
 sortir e3 de la base et entrer x2 Comment?
 à partir de l’équation donnant e3, exprimer x2 en fonction de e3 et les autres variables
x2 = 300-e3
 Remplacer x2 dans le reste des équations (y compris z) par sa nouvelle expression
e1 = 800-2x1-x2 e1=800-2x1-300+e3=500-2x1+e3
e2 = 700-x1-2x2  e2=700-x1-2*(300-e3)=100-x1+2 e3
x2 = 300-e3
z=30000x1+40000x2 z=30000x1+40000(300-e3)=12x106+30000x1-40000 e3
z=12x106+30000x1-40000 e3

À cette étape x1 et e3 sont hors base et e1, e2, et x2 en base..


Solution de base: prendre les variables hors base =0

Solution de base (0,300,500, 100,0), z=12x106(correspond au sommet (0,300) du polygone du


PO canonique
La solution optimale est obtenue lorsque tous les coefficients TMS sont négatifs..
PL 49
Problème Transformé:
e1=500-2x1+e3
e2 = 100-x1+2e3
x2 = 300-e3
z=12x106+30000x1-40000 e3

x1,e3, hors base


 Faire entrer x1 dans la base Pourquoi??
 La variable à sortir? La premier qui s’annule lorsqu’on augmente x1 (de x1=0)
 e2 s’annule la première.. Elle sort de la base , exprimer x1 en fonction de e2

Remplacer x1 dans le reste des équations


x1 = 100-e2+2e3
x2=300-e3
e1=500-2(100-e2+2e3)+e3=300+2e2-3e3
Z=12x106+30000(100-e2+2e3)-40000 e3
= 15x106-30000e2+20000e3
Solution (100,300,300,0,0), z=15x106

La solution optimale n’est pas encore atteinte Pourquoi?

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?

Lorsqu’on augmente e3, c’est e1 qui s’annule le premier


e3= 300/3 -e1/3 +2e2/3= 100 -e1/3 +2e2/3

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

Solution de base: (x1=300,x2=200,0,0,100) z=17x106


C’est la solution optimale du PO original puisque les TMS de z son négatif!!!
Vérification PO canonique: z(300,200)=z=30000x1+40000x2
= 9x106+8x106

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

1. introduire des «variables d’´écartx4,x5,x6


2. appeler z la fonction objectif

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

x4 x1 ≤ 5/2  min{5/2, 11/4, 8/3} = 5/2  x4 va s’annuler la première


x5 x1 ≤ 11/4 lorsque on augmente x1 et sortir de la base et entrer x1
x6 x1 ≤ 8/3
exprimer alors x1 en fonction de l’équation donnant x4 et les autres et puis remplacer
dans les autres équations y compris z

x1 = 5/2 – 3/2x2 – ½ x3 -1/2 x4 x1 = 5/2 – 3/2x2 – ½ x3 -1/2 x4


x5 = 1 + 5 x2 + 2 x4
x6 = 1/2+ 1/2 x2 − 1/2x3 + 3/2 x4 (x1 ,x5 ,x6 ) variables de base
z = 25/2− 7/2 x2 + ½ x3 − 5/2 x4 z = 25/2− 7/2 x2 + ½ x3 − 5/2 x4
Solution en base (5/2,0,0,0,1,1/2)
recommencer avec x3 z= 25/2
Comment éliminer x1 des autres équations sans la
PL
remplacer par sa valeur?? 53
Apres augmentation de x3 :

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

Solution donnée par Solver:

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.

• Si la fonction objectif (économique) a dans son expression un


coefficient constant, il faut le faire figurer dans l’avant-dernière
colonne (celle des seconds membres) avec le signe opposé.

• C’est dans cette même cellule que l’on trouvera l’opposé de la


valeur de la fonction objectif pour la solution en cours et donc
l’opposé de l’optimum quand il sera atteint
(Z=30000x1+40000x2  30000x1+40000x2-Z=0,
dernière ligne) PL 57
Principe de l’algorithme
• A chaque étape de l’algorithme, on choisit une variable
hors base que l’on appelle variable entrante et une
variable en base que l’on appelle variable sortante
afin d’améliorer la solution précédente.

• Puis on transforme le tableau pour le remettre sous sa


forme standard.

• En effet, les colonnes des variables en base ne doivent


avoir qu ‘un seul 1 et des 0 ailleurs.

• Cette transformation se fait par combinaison linéaire


des lignes.

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

• A ce stade les variables en base sont e1, e2 et e3. On remarque que


pour chaque variable en base on a un seul 1 sur la colonne et que les
autres coefficients sont nuls.
• Base={e1, e2, e3}
• Les variables hors base sont x1 et x2.
• Hors Base={x1, x2} PL 59
Algorithme Simplexe
Choix de la variable entrante à la base
• On choisit celle dont le taux marginal de substitution TMS (ou
coefficient spécifique) est strictement positif et le plus grand
possible dans Z
• Si tous les TMS sont négatifs ou nuls, l’optimum est atteint.
L’algorithme s’arrête (pour une maximisation!!)

Choix de la variable sortante de la base


• Après avoir choisi la variable entrante, on calcule pour chaque ligne
représentant une contrainte, le ratio qui est le rapport entre le
coefficient du deuxième membre de la contrainte et le coefficient
de la colonne de la variable entrante.
• Ce ratio peut être infini si le coefficient est nul.
• La variable sortante est celle dont le ratio est strictement positif et
plus petit.
PL 60
Transformation du tableau
• Après le choix de la variable entrante (TMS plus
grand) et de la variable sortante (Ratio le plus petit
positif), on transforme le tableau.

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


la ligne de la variable sortante s’appelle le pivot.

• Il faut transformer le tableau par combinaisons linéaires


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

• Pour la solution de base, les variables hors base sont nulles


• La valeur de l’optimum est l’opposé de la valeur qui figure sur la
ligne de la fonction économique à l’avant dernière colonne.

• On vérifiera cette valeur en remplaçant les valeurs des variables


dans la fonction économique.

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)

• Avec ce tableau initial, on a une solution


intermédiaire (au départ) :
• x1=0 et x2=0 (car ces variables sont hors base)

• e1=800, e2=700, e3=300.


En effet, chaque ligne du tableau correspond à
une égalité.

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 :

• Z=0 (puisque x1 et x2 sont nuls)

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


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

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

Variable entrante = Celle qui correspond au plus grand TMS


strictement positif (taux marginal de substitution) de la fonction
objectif.
Ici x2 est la variable entrante dans la base.
PL 65
Calcul des ratios
2ème Ratio
Base x1 x2 e1 e2 e3
membre

e1 2 1 1 0 0 800 800/1

e2 1 2 0 1 0 700 700/2

e3 0 1 0 0 1 300 300/1

Z 30000 40000 0 0 0 0

On calcule les ratios en divisant, chaque second membre par le


coefficient de la colonne de la variable entrante correspondant.

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

Variable sortante = Celle correspondant au plus petit ratio strictement


positif (coefficient du 2ème membre/coefficient colonne de la variable entrante).
Ici e3 est la variable sortante.
Pivot = intersection variable entrante et sortante, ici c’est 1

Dans la colonne du pivot (variable entrante) : Il faut faire


apparaitre un 1 à la place du pivot des 0 ailleurs.
En effet, il s’agit de la nouvellePL
variable en base. 67
Faire apparaître un 1 sur le pivot

• Si le pivot n’est pas égal à 1, il faut


diviser toute la ligne par le pivot.
• Ici le pivot est déjà à 1.

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

• Il faut retrancher à chaque Pour la ligne de e1, il faut


ligne un multiple de la lui retrancher la ligne du
ligne du pivot pour faire pivot.
pivot
apparaître un 0. On remplace la ligne L1 par
PL L1-L3 69
Tableau 2
Variables Ratio
x1 x2 e1 e2 e3 2ème membre
en base

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

Z 30000 0 0 0 -40000 -12x106

L’optimum n’est pas atteint (1 TMS est >0), et recommence la procédure


sur le tableau transformé PL 70
Variable entrante, ratios et variable sortante
du tableau 2
Variables Ratio
x1 x2 e1 e2 e3 2ème membre
en base

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= 

Z 30000 0 0 0 -40000 -12000000

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

Z 0 0 0 -30000 20000 -15x106

L’optimum
PL n’est pas atteint (1 TMS est >0) 73
Variable entrante, ratios et variable sortante
du tableau 3

Variables 2ème Ratio


x1 x2 e1 e2 e3
en base membre

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

Z 0 0 0 -30000 20000 -15000000

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

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

x1 1 0 0 1 -2 100

x2 0 1 0 0 1 300

Z 0 0 0 -30000 20000 -15000000

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

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

x1 1 0 0 1 -2 100

x2 0 1 0 0 1 300

Z 0 0 0 -30000 20000 -15000000

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

e3 0 0 1/3 -2/3 1 100

x1 1 0 2/3 -1/3 0 300

x2 0 1 -1/3 2/3 0 200

Z 0 -20000/3 0 -50000/3 0 -17x106

Optimum : 17 000 000


X=300
Y=200
Vérification :
Z=30000X1 + 40000Y1=30000*300
PL + 40000*200=17 000 000
77
Dualité

A chaque problème d’optimisation linéaire, on défini un nouveau problème appelle le


dual. Le problème original est le primal.

Sil le problème primal est max Problème dual

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

Variabl x1 x2 x3 x4 x5 x6 2eme Rati


es de Membre o
base
x4 2 3 1 1 0 0 5 5/2

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 0, x2 0, e1 0, e2 0, e3 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

F.O=Z 0 0 -5/4 -1/4 0 -33

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.”

L'optimisation est une branche des mathématiques cherchant à modéliser, à


analyser et à résoudre analytiquement ou numériquement les problèmes qui
consistent à minimiser ou maximiser une fonction sur un ensemble.

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.

Maximiser f(x) revient à minimiser –f(x)

Le but éventuel est de trouver la meilleure solution possible (combinaisons de


paramètres, variables) à un problème, ce qui améliore ou optimise les
performances (à définir) d’un système. PL 2
Performances des bâtiments
Deux catégories de performances :
• Performance minimale exigée par le cadre réglementaire: le respect des codes
nationaux, de la réglementation thermique………
• Performances d’usage: dépendent de (la volonté) du maitre d’ouvrage ou de
l’utilisateur final
• Sécurité de l’ouvrage
– Résistance aux charges
– Sécurité incendie
– Pérennité
• Coût (investissement, énergie, sur cycle de vie..)
• Consommation énergétique (chauffage, clim..)
• Confort de l’usager
– Hygrothermique
– Acoustique
– Visuel
– Qualité de l'air et confort olfactif
– Vibration des planchers
• Impacts environnementaux
– Impacts environnementaux en phase de production, usage et fin de vie
PL 3
 bâtiments durables, fonctionnels, innovants et compétitifs
Performance des Bâtiments
Wikipédia : "La performance d'un bâtiment est un attribut d'un bâtiment qui
exprime à quel point ce bâtiment remplit ses fonctions »

Attributs de performance du bâtiment : efficacité énergétique


(consommation, demande en chauffage et clim..), confort thermique, confort
visuel et acoustique, qualité de l'air intérieur et éclairage naturel.

Bâtiment à haute performance : intègre et optimise tous les principaux


attributs d'un bâtiment, y compris l'efficacité énergétique, la durabilité, la
performance du cycle de vie et la productivité des occupants, l'aménagement
paysager ou l'efficacité de l'éclairage

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)

Exemples d’objectifs: coût du cycle de vie le plus bas, coût d’investissement


le plus bas, confort thermique le plus élevé…..

• Traditionnellement, les bâtiments ont été conçus en séparant les


processus de conception en plusieurs étapes de conception majeures
avec plusieurs disciplines (architectes, ingénieurs mécaniques, ingénieurs
structures, ingénieurs électriciens, etc.).

• 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 :

• l’enveloppe du bâtiment qui comprend notamment des variables concernant


l’assemblage, l’épaisseur et les matériaux des différents composants .. (types
d’isolation, épaisseur, type de matériaux..)
• la géométrie et la forme du bâtiment qui comprennent également
l’orientation, la superficie vitrée et le dimensionnement des protections solaires;
• les façades double-peau: façades double-peau se composent d’une paroi
extérieure et d’une paroi intérieure, généralement vitrées et séparées par une
cavité de quelques centimètres à plusieurs mètres
• le dimensionnent, le choix et le contrôle des systèmes énergétiques
(Chauffage, Ventilation et Climatisation CVC, systèmes passifs)
• l’éclairage: LED, lampe fluorescente, éclairage naturel..
• les systèmes innovants: cogénération, production solaire et de stockage
thermique
PL 6
Optimisation des performances énergétiques
des bâtiments
Optimiser les performances énergétiques
• Amélioration continue de la performance énergétique
• Réduction les impacts environnementaux et économiques liés à la
consommation d'énergie des bâtiments.

Méthodes d'optimisation des performances énergétiques:


-Réduire l'empreinte du bâtiment
-Réduire la demande

- ’É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

- Récupérer les pertes/rejets d'énergie


Energie de l’air renouvelé
Chaleur des eaux grises
Cogénération PL 7
Optimisation
L’optimisation vise à résoudre des problèmes où l’on cherche à
déterminer la meilleur solution parmi un grand nombre de solutions
candidates.

Plus précisément, on cherche à trouver une solution satisfaisant un


ensemble de contraintes qui minimise ou maximise une fonction (des
fonctions) donnée (s).
Optimiser= Maximiser ou minimiser une fonction (ou des
fonctions) avec ou sans contraintes.

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:

1. Andreas Antoniou Wu-Sheng Lu , PRACTICAL


OPTIMIZATION : Algorithms and Engineering
Applications .
2. Rao S.S., Engineering Optimization - Theory and
Practice, John Wiley & Sons, New York, 903 pp,
1996.
3. G. G. Practical energy efficiency optimisation,
PennWell Books; Illustrated edition (30 Mar. 2006)

1. Gill P.E., Murray W. and Wright M.H., Practical


Optimization, Elsevier, 401 pp., 2004.
2. Boyd and L. Vandenberghe, Convex Optimization,
Cambridge University Press, 2004.(available at
http://www.stanford.edu/~boyd/cvxbook/)

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

Name License Description


BSD (Berkeley Software
a nonlinear optimization framework,
ADMB Distribution License):
using automatic differentiation.
licence libre
GPL (General public a mathematical modelling chemical
ASCEND
licence) process modelling system.
a testing environment
CUTEr GPL for optimization and linear
algebra solvers.
a software package featuring a high-level
programming language, primarily intended
Octave GPL
for numerical computations; well
13
recognized free alternative to MATLAB.
a cross-platform numerical computational
CeCILL (CEA CNRS package and a high-level, numerically
Scilab
INRIA Logiciel Libre) oriented programming language with free
PL numerical optimization framework.
Evaluation

• 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

• Vous voulez installer un système PV? Trouver l’orientation et


l’inclinaison optimales de l’installation.

PL 16
Bâtiment:
Optimiser la performance énergétique (minimiser),
Minimiser les coûts…

Math: Minimiser ou maximiser des fonctions à


une ou plusieurs variables!!!

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

2. Identification d’une (ou plusieurs) fonction(s) coût ou Définition de la


fonction objectif f(x)= f(x1,x2,…xn) permettant d’évaluer l’état (ou des)
du système (ex : rendement, performance, consommation, fonctions
pertes... . . ). objectifs
3. Identification et description des contraintes imposées aux c
variables de décision (revient à définir un ensemble X de
solutions) Définir les
Contraintes
L’optimisation consiste alors à déterminer les variables de c
décision conduisant aux meilleures conditions de Recherche de la
fonctionnement du système solution
ce qui revient à minimiser ou maximiser la fonction coût), optimale
tout en respectant les contraintes définies à l’étape 3 Algorithmes
PL 18
Exemples

• Un agriculteur possédé un certain nombre d’hectares(T=15ha), et des


quantités d’engrais (E=100kg) et d’insecticide (I=10litres)
• Il a la possibilité de planter des superficies (en ha) du maïs (x1 ) ou du blé
(x2 )
• Les cultures requièrent des quantités différentes d’engrais et d’insecticide
(E1 ,I1 ,E2 ,I2 ) par hectare
• Les cultures fournissent un revenu différent (S1 ,S2 ) (par hectare)
• Objectif : maximiser le revenu net

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.

Problème Classique du sac-à-dos (Knapsack problem),


(distribution des resources)
On dispose de n objets de masse wi (kg) et de valeur vi ($) de 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é!!

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,…..

• Optimiser les systèmes énergétiques multi-sources.


Un problème d'optimisation impliquant plusieurs
PL fonctions objectives est 23
appelé problème de programmation multi-objectifs.
Formulation Mathématique Générale d’un PO
Minimiser f ( x)
 g i ( x)  0, i  1,...., m
SC 
hi ( x)  0, i  1,..... p
• f : Rn  R: est la fonction objectif à minimiser
• x=(x1, x2…..,xn)T: est le vecteur des variables de décision, de conception ou
d'optimisation qui décrivent le problème d'optimisation(inconnues du problème)
• Elles doivent être linéairement indépendantes)
• gi : Rn  R: (i=1,…,m): contraintes d’inégalité
• hi : Rn  R: (i=1,…,p): contraintes d’égalité
• Elles définissent le domaine admissible des solutions X
 Le problème est un problème d'optimisation à contraintes
 Le problème est dit réalisable si X n’est pas vide.
Résoudre le problème revient chercher des points de minimum local (ou global,
c’est encore mieux !)

PL 24
Définitions
• Tout vecteur x=(x1,x2.. xn)T vérifiant les contraintes est dit solution
réalisable (admissible) du PO

• Ces valeurs définissent l’ensemble des solutions admissibles X

• Si de plus la valeur de f(x*) est minimale (maximale), alors x* est dit


solution optimale.

• x* est une solution optimale du problème si x* est une solution


réalisable du problème et si de plus, elle maximise (minimise) la
fonction objectif sur l’ensemble des solution réalisable.

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)

• 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).
• Ainsi, optimisation revient à minimiser puisque le point du maximum d'une
fonction peut être trouvé en recherchant le point minimum du négatif de la même
fonction.

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

– Une contrainte du problème (PO) est active (ou saturée) en x si elle


s’annule en x.
Contrainte d’ égalité: x admissible si h(x) = 0 contrainte d’égalité est
active en x
Contrainte d’inégalité g(x) ≤0: x admissible  g(x) ≤0
– g est active en x si g(x) = 0
– g est inactive en x si g(x) < 0
y compris contraintes de bornes

b. Problème d’optimisation sans contraintes


Minimiser f(x),
x=(x1,..xn) dans Rn
PL 27
Classification des problèmes d'optimisation
2. Nature des variables de décision (variable de conception..)
• Problèmes d'optimisation statiques: les variables de conception sont des constantes
• Problèmes d’optimisation dynamique: chaque variable de conception est fonction d’un ou
de plusieurs paramètres.

3. Structure physique du problème


• Problème de contrôle optimal (variables d’état et variables de control)
• Problème de contrôle non optimal

4. Nature des équations impliquées


• Problème de programmation (optimisation) linéaire (LP) (fonctions objectifs et contraintes
sont des fonctions linéaires des variables de décision), POL
• Problème de programmation quadratique (QP): fonctions objectifs quadratiques (contient
des produits de types xixj et contraintes sont des fonctions linéaires (QP) , POQ
• Problème de programmation géométrique (GP) (somme des produits des variables de
décision )
• Problème de programmation (optimisation) non linéaire (PNL): fonctions non-linéaires
(coût ou contrainte ou les deux). Minimiser f ( x)
f(x1,x2) =10 exp(x1)+2x1x2 (PONL)
x1+x2 <=10  g i ( x)  0, i  1,...., m
PLSC  28
hi ( x)  0, i  1,..... p
Classification des problèmes d'optimisation
5. Valeurs permises des variables de conception (de décision)
• Problèmes de programmation entiers (Integer programming)
– variables= nombres entiers
– Programmation en nombres entiers
– Optimisation combinatoire

• Problème d’ Optimisation continue


variables = nombres réels (x1,x2..)
Fonctions objectifs et contraintes sont continues, différentiables

• Programmation mixte
variables = nombres entiers et réels

• Nature déterministe/stochastique des variables


– Problème stochastique: est un problème d'optimisation dans lequel certains ou tous les
paramètres (variables de décision) sont probabilistes (non déterministes ou
stochastiques): c.à.d. des variables décrites par des distributions de probabilité
- Problème de programmation déterministe: Chaque paramètre est connu avec
précision
- PL
Déterminisme: les données du problèmes sont parfaitement continue # 29
optimisation stochastique
Classification
6. Séparabilité des fonctions
Problème de programmation séparable (F. O et contraintes séparable )
n
f (x)   f i (x i )  f 1(x 1)  f (x 2)  ...
n
g j (x)   g ij ( xi )  b j , j  1,2, , m
i 1
i 1
Problème de programmation non séparable
g j (x)  g 1 j (x 1 )  g 2 j (x 1 )  ...g mj (x m )  b j , j  1, 2,L , m
7. Nombre de fonctions objectifs
- Problème de programmation à objectif unique f (x), avec ou sans contraintes

- Problème de programmation (optimisation) multi-objectifs: (plusieurs fonctions


objectifs à minimiser (maximiser) simultanément..
Formulation:
Trouver x=(x1,x2,..xn) qui minimise (maximise) simultanément plusieurs fonctions objectifs
f1 (x), f2 (x),…., fk (x) sous les contraintes suivants:
 g j (x)  0, j  1, 2,..., m
SC 
hl (x)  0, l  1, 2,..., p
Conflit entre les objectifs à résoudre!!  compromis
PL 30
Programmation (optimisation)
linéaire
• Programmation linéaire
– problème d’optimisation consistant à maximiser (ou minimiser) une
fonction objectif linéaire de n variables de décision soumises à un
ensemble de contraintes exprimées sous forme d’équations ou
d’inéquations linéaires

• Différentes programmations linéaires


– Programmation Linéaire classique
– Programmation Linéaire en Nombre Entiers
– Programmation Linéaire en 0-1
– Programmation Linéaire Mixte

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

f = c1x1 + c2x2 + c3x3 + … + + cnxn x=(x1,x2,….xn)T


Sous forme matricielle: f=cT x (T: transposé de..)

• Sous des Contraintes (mixtes)


– g1=a11x1 + a12x2 + a13x3 + … + a1nxn (, =, ) b1
– g2=a21x1 + a22x2 + a23x3 + … + a2nxn (, =, ) b2
– ….
– gm=am1x1 + am2x2 + am3x3 + … + amnxn (, =, ) bm

• Et des Contraintes de non-négativité pour certaines variables,


contraintes de négativité, de bornes, variable libre pour d’autres,……

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

Forme canonique pure


• Problème de maximisation
• Toutes les contraintes sont du type “≤”
• Toutes les variables sont positives
PL 33
Transformation d’un POL de forme générale à la Forme canonique

• Variable x négative  changement de variable y = -x >=0

• Si la variable x a une borne inférieure non nulle x ≥ l, considérer la


nouvelle variable y = x − l à la place de la variable x y ≥ 0.
• Si x<=l’ alors y=l’-x >=0
• x dans R (positif ou négatif), introduire x1 et x2 >=0, tq x = x1-x2 où
x1 et x2 sont deux nouvelles variables positives.

• Recherche de minimum pour la fonction objectif f, revient à


maximiser –f et min(f) = - Max(-f)

• Inégalité de supériorité (≥), multiplié par (-1) pour obtenir une


inégalité d’infériorité (≤ 0)

• Contrainte d’Egalité: remplacer par deux inégalités (≤ et ≥)

Exemples:

PL 34
Transformer le problème de programmation linéaire General suivant sous la
forme canonique et écrire sous forme matricielle:

1. Max f = 6x1 - 3x2 + x3


sous les contraintes:
x1 ≥ 0, x2 ≤ 0
4x1 + 2x2 + x3 ≤ 65
x1 + x2 - x3 ≥ 5
x1 + x2 = 10

2.
Max f= 5x1 − 2x2 + 10x4
s.c.

x1 + 20x2 + 20x5 ≥ 200


5x2 + 5x3 ≤ 55
2x1 + 12x2 + 10x3 + 5x4 + 2x5 = 80
x1>=3,
x2 ≥ 0, x3 ≥ 0, x4 ≥ 0, x5 ≥ 0,

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

2 Pour un polytope: au moins n


contraintes sont actives dans
un sommet

0 x1 37
2 4 6 8 10

Solution optimal (2,6) et correspond à f=36


PL
Résolution graphique d’un PO linéaire en 2-d
En 2-d, les courbes de niveau de la fonction
objectif (f=constante) sont des droites
parallèles
Il existe des solutions admissibles de valeur f
si la ligne de niveau associée à cette valeur
rencontre le domaine admissible X du
problème.
• Pour déterminer la valeur maximale
atteignable il suffit de faire glisser le
plus loin possible une ligne de niveau
de la fonction objectif jusqu’à ce
qu’elle touche encore tout juste X.
• Les points de contact ainsi obtenus
correspondent aux solutions optimales
du PL : L’un des sommets du
polygone défini par les contraintes

la Solution optimale correspond à l’un des sommets du plygone défini par


les contraintes. PL 38
Domaine des solutions admissibles: exemples
Maximiser z = f(x,y) = 3x + 2y
sous les contraintes: 2x + y ≤ 18
2x + 3y ≤ 42
3x + y ≤ 24
x≥0,y≥0
• La région réalisable est l'intersection des régions
délimitées aussi bien par l'ensemble des contraintes,
que par les conditions de non-négativé des variables.
• Les contraintes ou apparaissent des inégalités
correspondent géométriquement à des demi-plans.
• Intersection de ces demi-plans = ensemble des
variables satisfaisant à toutes les contraintes. Ce
domaine forme un polygone convexe.
Sommet Coordonnées (x,y) Valeur de l’objectif (Z)
O (0,0) 0
C (0,14) 28
G (3,12) 33
H (6,6) 30
PL 39
F (8,0) 24
Maximiser f = 8x1 + 5x2
SC
Domaine Admissible: exemple 2x1 + x2  1000
x1 + x2 700
3x1 + 4x2  2400
x1 - x2 300
x1  0 ; x2  0
X2

1000 2X1+X2 1000

700 X1+X2 700 (redundant)

500 Non-réalisable

X1-X2  350
3X1+4X22400
Réalisable

X1
500 700
Points intérieurs. Points aux limites. Points Extrêmes(sommets).

Il y a trois types de solutions (points) réalisables (voir


PL graphe). 40
Trouver les coordonnées des sommets (points extrêmes) du polygone (deux contraintes sont actives)
Exemples
Tracer le Domaine des solutions admissibles et
déterminer ses sommets et la fonction objectif
Maximiser f = 8x1 + 5x2
SC
2x1 + x2  1000
x1 + x2 700
3x1 + 4x2  2400
x1 - x2 300
x1  0 ; x2  0

Maximiser f = 6x1 + 4x2


SC
3x1 + 9x2  81
4x1 + 5x2 55
2x1 + x2  20
x1 - x2 300
x1  0 ; x2  0
PL 41
Résolution graphique

Mettre sous forme matriciel et Résoudre


graphiquement les problème:

• Maximiser f = 3x1 + 5x2


• SC
x1 4
2x2  12
3x1 + 2x2  18
x1  0 ; x2  0

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

⇒ nombre important de sommets ⇒ pas efficace

Utiliser la méthodes du simplexe..

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.

(Solveur est accessible dans l’onglet données)

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é

Transformation d’un POL canonique vers un POL standard:


 On transforme les inégalités en égalités en ajoutant des variables d’écarts positives

Exemple: contrainte: x1-2x2 ≤ 1 PL 45


On introduit la variable d’écart e3 ≥ 0 telle que x1-2x2+e3=1
Exemple
Forme canonique du programme linéaire :

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

Résoudre la forme standard ⇐⇒ résoudre problème d’origine


PL 46
Algorithme du Simplexe
Algorithme du simplexe
• Permet de déterminer la solution optimale, si elle existe, d’un problème PL à n variables.
– développée initialement par George Dantzig en 1947
– seule méthode exacte pour les problèmes linéaires de grande taille
Principe
• Transformer le PO générale à un problème d’optimisation standard
• à partir d’un sommet du polytope, chercher un sommet voisin qui améliore la fonction
objectif..
Comment?
• Transformer ce système d’équations linéaires jusqu’à trouver la solution optimale
• De façon à augmenter la fonction objective (pour une solution de base)
• Inspiré de la Technique utilisée pour trouver la solution d’un système de m équation
avec n variables (n>=m),
Solution de base:
– n-m variables =0 (Variables hors base VHB)
– Trouver les autres variables inconnues (Variables en base VB)!!

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

• Commencer par le sommet (x1,x2)=(0,0) du polygone trouver e1, e2 et e3


• C’est la première solution de base faisable (x1,x2,e1,e2,e3)=(0,0,800,700,300), z=0
• Ceci partitionne les variables en deux groupes : les variables de base (les variables non
nulles), e1, e2 et e3, et les variables hors base (les variables nulles), x1 et x2 dans cette
étape!!
x1 et x2 VHB
e1,e2,e3 VB (de base)
A partir d’une solution de base, augmenter une variable hors base ( laquelle??)

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é!!)

Dans notre cas:


Augmenter x2 à partir de cette solution x2=0, sachant que x1=0)
PL
48
e1 = 800-2x1-x2
e2 = 700-x1-2x2
e3 = 300-x2
z=30000x1+40000x2

Avec x1 =0; e1 x2 ≤ 800/1 (x1=0)


e2 x2 ≤ 700/2
e3 x2 ≤ 300/1
 Il faut choisir la plus petite valeur!! min{800/1, 700/2, 300/1} = 300  e3 va s’annuler la
première lorsque on augmente x2 (devient HB)
 sortir e3 de la base et entrer x2 Comment?
 à partir de l’équation donnant e3, exprimer x2 en fonction de e3 et les autres variables
x2 = 300-e3
 Remplacer x2 dans le reste des équations (y compris z) par sa nouvelle expression
e1 = 800-2x1-x2 e1=800-2x1-300+e3=500-2x1+e3
e2 = 700-x1-2x2  e2=700-x1-2*(300-e3)=100-x1+2 e3
x2 = 300-e3
z=30000x1+40000x2 z=30000x1+40000(300-e3)=12x106+30000x1-40000 e3
z=12x106+30000x1-40000 e3

À cette étape x1 et e3 sont hors base et e1, e2, et x2 en base..


Solution de base: prendre les variables hors base =0

Solution de base (0,300,500, 100,0), z=12x106(correspond au sommet (0,300) du polygone du


PO canonique
La solution optimale est obtenue lorsque tous les coefficients TMS sont négatifs..
PL 49
Problème Transformé:
e1=500-2x1+e3
e2 = 100-x1+2e3
x2 = 300-e3
z=12x106+30000x1-40000 e3

x1,e3, hors base


 Faire entrer x1 dans la base Pourquoi??
 La variable à sortir? La premier qui s’annule lorsqu’on augmente x1 (de x1=0)
 e2 s’annule la première.. Elle sort de la base , exprimer x1 en fonction de e2

Remplacer x1 dans le reste des équations


x1 = 100-e2+2e3
x2=300-e3
e1=500-2(100-e2+2e3)+e3=300+2e2-3e3
Z=12x106+30000(100-e2+2e3)-40000 e3
= 15x106-30000e2+20000e3
Solution (100,300,300,0,0), z=15x106

La solution optimale n’est pas encore atteinte Pourquoi?

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?

Lorsqu’on augmente e3, c’est e1 qui s’annule le premier


e3= 300/3 -e1/3 +2e2/3= 100 -e1/3 +2e2/3

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

Solution de base: (x1=300,x2=200,0,0,100) z=17x106


C’est la solution optimale du PO original puisque les TMS de z son négatif!!!
Vérification PO canonique: z(300,200)=z=30000x1+40000x2
= 9x106+8x106

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

1. introduire des «variables d’´écartx4,x5,x6


2. appeler z la fonction objectif

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

x4 x1 ≤ 5/2  min{5/2, 11/4, 8/3} = 5/2  x4 va s’annuler la première


x5 x1 ≤ 11/4 lorsque on augmente x1 et sortir de la base et entrer x1
x6 x1 ≤ 8/3
exprimer alors x1 en fonction de l’équation donnant x4 et les autres et puis remplacer
dans les autres équations y compris z

x1 = 5/2 – 3/2x2 – ½ x3 -1/2 x4 x1 = 5/2 – 3/2x2 – ½ x3 -1/2 x4


x5 = 1 + 5 x2 + 2 x4
x6 = 1/2+ 1/2 x2 − 1/2x3 + 3/2 x4 (x1 ,x5 ,x6 ) variables de base
z = 25/2− 7/2 x2 + ½ x3 − 5/2 x4 z = 25/2− 7/2 x2 + ½ x3 − 5/2 x4
Solution en base (5/2,0,0,0,1,1/2)
recommencer avec x3 z= 25/2
Comment éliminer x1 des autres équations sans la
PL
remplacer par sa valeur?? 53
Apres augmentation de x3 :

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

Solution donnée par Solver:

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.

• Si la fonction objectif (économique) a dans son expression un


coefficient constant, il faut le faire figurer dans l’avant-dernière
colonne (celle des seconds membres) avec le signe opposé.

• C’est dans cette même cellule que l’on trouvera l’opposé de la


valeur de la fonction objectif pour la solution en cours et donc
l’opposé de l’optimum quand il sera atteint
(Z=30000x1+40000x2  30000x1+40000x2-Z=0,
dernière ligne) PL 57
Principe de l’algorithme
• A chaque étape de l’algorithme, on choisit une variable
hors base que l’on appelle variable entrante et une
variable en base que l’on appelle variable sortante
afin d’améliorer la solution précédente.

• Puis on transforme le tableau pour le remettre sous sa


forme standard.

• En effet, les colonnes des variables en base ne doivent


avoir qu ‘un seul 1 et des 0 ailleurs.

• Cette transformation se fait par combinaison linéaire


des lignes.

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

• A ce stade les variables en base sont e1, e2 et e3. On remarque que


pour chaque variable en base on a un seul 1 sur la colonne et que les
autres coefficients sont nuls.
• Base={e1, e2, e3}
• Les variables hors base sont x1 et x2.
• Hors Base={x1, x2} PL 59
Algorithme Simplexe
Choix de la variable entrante à la base
• On choisit celle dont le taux marginal de substitution TMS (ou
coefficient spécifique) est strictement positif et le plus grand
possible dans Z
• Si tous les TMS sont négatifs ou nuls, l’optimum est atteint.
L’algorithme s’arrête (pour une maximisation!!)

Choix de la variable sortante de la base


• Après avoir choisi la variable entrante, on calcule pour chaque ligne
représentant une contrainte, le ratio qui est le rapport entre le
coefficient du deuxième membre de la contrainte et le coefficient
de la colonne de la variable entrante.
• Ce ratio peut être infini si le coefficient est nul.
• La variable sortante est celle dont le ratio est strictement positif et
plus petit.
PL 60
Transformation du tableau
• Après le choix de la variable entrante (TMS plus
grand) et de la variable sortante (Ratio le plus petit
positif), on transforme le tableau.

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


la ligne de la variable sortante s’appelle le pivot.

• Il faut transformer le tableau par combinaisons linéaires


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

• Pour la solution de base, les variables hors base sont nulles


• La valeur de l’optimum est l’opposé de la valeur qui figure sur la
ligne de la fonction économique à l’avant dernière colonne.

• On vérifiera cette valeur en remplaçant les valeurs des variables


dans la fonction économique.

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)

• Avec ce tableau initial, on a une solution


intermédiaire (au départ) :
• x1=0 et x2=0 (car ces variables sont hors base)

• e1=800, e2=700, e3=300.


En effet, chaque ligne du tableau correspond à
une égalité.

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 :

• Z=0 (puisque x1 et x2 sont nuls)

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


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

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

Variable entrante = Celle qui correspond au plus grand TMS


strictement positif (taux marginal de substitution) de la fonction
objectif.
Ici x2 est la variable entrante dans la base.
PL 65
Calcul des ratios
2ème Ratio
Base x1 x2 e1 e2 e3
membre

e1 2 1 1 0 0 800 800/1

e2 1 2 0 1 0 700 700/2

e3 0 1 0 0 1 300 300/1

Z 30000 40000 0 0 0 0

On calcule les ratios en divisant, chaque second membre par le


coefficient de la colonne de la variable entrante correspondant.

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

Variable sortante = Celle correspondant au plus petit ratio strictement


positif (coefficient du 2ème membre/coefficient colonne de la variable entrante).
Ici e3 est la variable sortante.
Pivot = intersection variable entrante et sortante, ici c’est 1

Dans la colonne du pivot (variable entrante) : Il faut faire


apparaitre un 1 à la place du pivot des 0 ailleurs.
En effet, il s’agit de la nouvellePL
variable en base. 67
Faire apparaître un 1 sur le pivot

• Si le pivot n’est pas égal à 1, il faut


diviser toute la ligne par le pivot.
• Ici le pivot est déjà à 1.

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

• Il faut retrancher à chaque Pour la ligne de e1, il faut


ligne un multiple de la lui retrancher la ligne du
ligne du pivot pour faire pivot.
pivot
apparaître un 0. On remplace la ligne L1 par
PL L1-L3 69
Tableau 2
Variables Ratio
x1 x2 e1 e2 e3 2ème membre
en base

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

Z 30000 0 0 0 -40000 -12x106

L’optimum n’est pas atteint (1 TMS est >0), et recommence la procédure


sur le tableau transformé PL 70
Variable entrante, ratios et variable sortante
du tableau 2
Variables Ratio
x1 x2 e1 e2 e3 2ème membre
en base

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= 

Z 30000 0 0 0 -40000 -12000000

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

Z 0 0 0 -30000 20000 -15x106

L’optimum
PL n’est pas atteint (1 TMS est >0) 73
Variable entrante, ratios et variable sortante
du tableau 3

Variables 2ème Ratio


x1 x2 e1 e2 e3
en base membre

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

Z 0 0 0 -30000 20000 -15000000

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

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

x1 1 0 0 1 -2 100

x2 0 1 0 0 1 300

Z 0 0 0 -30000 20000 -15000000

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

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

x1 1 0 0 1 -2 100

x2 0 1 0 0 1 300

Z 0 0 0 -30000 20000 -15000000

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

e3 0 0 1/3 -2/3 1 100

x1 1 0 2/3 -1/3 0 300

x2 0 1 -1/3 2/3 0 200

Z 0 -20000/3 0 -50000/3 0 -17x106

Optimum : 17 000 000


X=300
Y=200
Vérification :
Z=30000X1 + 40000Y1=30000*300
PL + 40000*200=17 000 000
77
Dualité

A chaque problème d’optimisation linéaire, on défini un nouveau problème appelle le


dual. Le problème original est le primal.

Sil le problème primal est max Problème dual

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

Variabl x1 x2 x3 x4 x5 x6 2eme Rati


es de Membre o
base
x4 2 3 1 1 0 0 5 5/2

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 0, x2 0, e1 0, e2 0, e3 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

F.O=Z 0 0 -5/4 -1/4 0 -33

PL 84

Vous aimerez peut-être aussi