Vous êtes sur la page 1sur 12

Optimisation Multi-objectifs

A. Outzourhit

Master Green Bee


Définition et formulation
• L'optimisation multiobjectifs ( appelée aussi Programmation multi-objectifs ou optimisation
multi-critè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

Minimiser f j ( X ) j  1,....M  x1 
  20

 x2 
 g i ( X )  0, i  1,...., m
f(x)
g(x)

 X  . 
 
15

SC hi ( X )  0, i  1,..... p . 
 x  x  x i  1,.....N   10

 iL i iU  xN 

M: nombre d’objectifs, N nombre de variable décision 5

• Dans sa forme la plus générale, un problème 0

d'optimisation multi-objectif consiste à trouver dans un


ensemble de solutions admissibles, un sous-ensemble de -5
-4 -3.5 -3 -2.5 -2 -1.5
x
-1 -0.5 0 0.5 1

solutions minimisant ses objectifs.


• On recherche la solution x* telle que toutes les contraintes soient
satisfaites et qui optimise la fonction f : f(x*) = (f1(x*), f2(x*), …,
fM(x*)) A. Outzourhit Optimisation Muli-objectifs 2
Optimalité des solutions
• Pour un problème mono-objectif, l’optimum recherché est clairement défini. (comparer valeurs de
la fonction objectif pour les solutions).
• Dans le contexte multi-objectif, une solution peut être optimale pour un objectif et non-optimal
pour un autre (voir figure ci-contre).
• Toute amélioration de l’un des objectifs se fait au détriment de l’autre
• Donc il n’existe généralement pas une solution unique qui procure simultanément la solution 20
f(x)
optimale pour l’ensemble des objectifs!!! g(x)
h(x)
15
Recherche d’un ensemble de solutions satisfaisantes qui sont des compromis entre les objectifs.
Il est vital pour identifier ces meilleurs compromis de définir une relation d’ordre entre ces éléments: 10

a. l'optimalité lexicographique, où l’ordre des objectifs est fixé (Ordonner les objectifs)
• le problème est résolu par une scalarisation par somme pondéré ou 5

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

b. l'optimalité de Pareto, basée sur les notions de « non-dominance »


-5
• Vilfredo Pareto en 1896 a été la premier à traiter les objectifs conflictuels. Il a introduit la notion -4 -3.5 -3 -2.5 -2 -1.5
x
-1 -0.5 0 0.5 1

d’efficacité.
• Une solution est dite efficace si elle est non-dominé, (aucune autre solution ne la domine)
Dominance et front de Pareto
Si X et Y sont deux solutions, alors:
 X domine faiblement Y si, et seulement si, fi(X) ≤fi(Y) quelque soit i, c.a.d:
• Solution X n'est pas pire que Y en touts les objectifs
• Solution X est strictement meilleur que Y en au moins un objectif
 X domine strictement Y si, et seulement si, fi(X) < fi(Y) quelque soit i
• 1 domine 2
• 5 domine 1
• 1 Vs 4: aucune solution ne domine l’autre

• Et si on veut minimiser f1 et f2?

• Ensemble de solutions non dominées: ensemble de toutes les solutions qui ne sont pas dominées par tout membre
de l'ensemble de solutions
• L'ensemble des solutions non dominées est appelé l'ensemble Pareto-optimal (dans l’espace des objectifs)
• La limite (frontière) définie par tous les points de l'ensemble optimal de Pareto est appelé le front de Pareto optimal
• Une solution est optimale globalement au sens de Pareto, ou optimale au sens de Pareto, ou encore Pareto-optimale
s’il n’existe aucun point de l’espace faisable qui la domine.

Objectif de l’OMO: Trouvez un ensemble de solutions aussi près que possible du front de Pareto Optimal
I. Méthodes Scalaires (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)
1. Scalarisation linéaire: Méthode de pondération des fonctions objectifs
M M
Minimiser f j ( X ) j  1,....M Minimiser F   w j f j ( X ) j  1,....M avec  w j  1
j 1 j 1
 g i ( X )  0, i  1,...., m
  g i ( X )  0, i  1,...., m
SC hi ( X )  0, i  1,..... p 
SC hi ( X )  0, i  1,..... p
 x  x  x i  1,.....N
 iL  x  x  x i  1,.....N
 iL
i iU
i iU

où wi les poids des objectifs sont positifs et non tous nuls. Ces poids sont les paramètres de la scalarisation ; Ils
sont choisit selon l’importance de chaque fonction objectif!!
• Avantage: Méthode simple
• Inconvénients: Il est difficile de fixer les poids pour obtenir un Solution Pareto optimale dans une région
souhaitée du espace objectif
• Certaines solutions optimales de Pareto ne peuvent pas êtres trouvées dans le cas d'un espace objectif non
convexe
2. Méthode de la distance à un but
• Le décideur fixe un but z*j à atteindre pour chaque objectif fj  La nouvelle fonction objectif est modifiée de façon à
minimiser la somme des écarts (norme) entre les résultats et les buts à atteindre zj*

 
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
 
SC hi ( X )  0, i  1,..... p SC hi ( X )  0, i  1,..... p
 x  xi  x i  1,.....N  x  x  x i  1,.....N
 iL iU  iL i iU

1/ 2
M 
Exemples de distances  
2

Minimiser F    f j ( X )  z j * 
La dernière est appelée méthode min-max ou  j 1 
méthode de Tchebchev M 
Minimiser F    f j ( X )  z j * 
 j 1 

Minimiser F  max f j ( X )  z j *
j
 j  1,....M

1/ p
M 
Minimiser F    w j  f j ( X )  z j * 
P

Ont peut ajouter des coefficients de pondération  j 1 


 g i ( X )  0, i  1,...., m

SC hi ( X )  0, i  1,..... p
 x  xi  x i  1,.....N
 iL iU
II. Méthode epsilon –contrainte
ou méthode du compromis
• Garder une seule fonction objectif (objectif
prioritaire) et restreindre les autres à des valeurs
spécifiques(contraintes)
• On choisit un vecteur contrainte initiale el tq:
Minimiser f n ( X )
Minimiser f j ( X ) j  1,....M PO à un seul objectif avec
 f l (X)  e l l  1...M,et l  n
 g i ( X )  0, i  1,...., m  g ( X )  0, i  1,...., m contraintes
  i supplémentaires!!!
SC hi ( X )  0, i  1,..... p SC 
 x  xi  x i  1,.....N hi ( X )  0, i  1,..... p
 iL iU  xiL  xi  xiU i  1,.....N
Avantage
• Applicable aux problèmes convexe ou non convexe
Inconvénient
• εl doit être choisi avec soin pour qu'il soit dans l’intervalle des valeurs minimale ou maximale de la fonction objective
individuelle
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 des compromis,
b) la méthode pondération des fonctions objectifs (Tracer f2 en fonction de f1 pour différentes valeurs de
w2..

Problème de Binch
Minimiser f1(x1,x2)=x12+x22
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

https://www.sfu.ca/~ssurjano/optimization.html
Méthodes de résolution
• Recuit simulé SA
• Recherche tabou TS
• Algorithme génétique GA Exemple de contraintes non lineaires
• Algorithme colonie de fourmis ACO Nonlcon=@unitdisk
• Algorithme essaim particulaire PSO
function [c,ceq] = unitdisk(x)
Matlab: gamultiobj c = x(1)^2 + x(2)^2 - 1;
Find Pareto front of multiple fitness functions using genetic algorithm ceq = [];
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(___)
Gamultiobj: Optimisation multiobjectifs utilisant l’AG
%exemple
FitnessFunction = @multi1;%fonctions objectifs
numberOfVariables = 1;
A = []; b = []; %Contraintes lineaires inegalités
Aeq = []; beq = [];%Contraintes lineaires egalités
lb = -1.5;%borne inferieur (vecteurs si plusieurs variables
ub = 0;%borne superieure (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
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 ( X ) j  1,....M
j
j

 c( X )  0,
Ceq ( X )  0,

SC  A. X  b
 Aeq. X  beq

 LB  X  UB

Maxx(mini Fi(x))=-Min(max(-Fi(x))
Méthode par but à atteindre
Dans cette approche le décideur spécifie l'ensemble des buts (goals)
Zj qu'il souhaite atteindre et les poids (weight) associés wj . La fun = @(x)[2+(x-3)^2;5+x^2/4];
solution optimale est trouvée en résolvant le problème suivant: goal = [3,6];
weight = [1,1];
x0 = 1;
Minimiser  tq Z j  aw j  f j ( X ) j  1,....M 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)