• Aucun résultat trouvé

4.2 Formulation du probl` eme

4.3.1 Algorithme NSGA-II

L’algorithme g´en´etique ´elitiste de tri non domin´e (NSGA-II) est la version am´elior´ee de

l’algo-rithme NSGA. Il a ´et´e propos´e par Deb [179]. Cet algorithme manipule une population de solutions

et utilise un m´ecanisme explicite de pr´eservation de la diversit´e. Les individus (solutions) d’une

population sont tri´es sur une base de non-dominance et auxquels sont attribu´es un rang et une

crowding distance. Cette derni`ere mesure la dispersion des solutions, elle est bas´ee sur le calcul

de la distance moyenne aux deux points de part et d’autre de l’individu consid´er´e selon les deux

objectifs [179]. Les individus non domin´es constituent le frontF1 ayant un rang 1. Les autres fronts

F i sont ensuite d´efinis r´ecursivement en ignorant les solutions des fronts pr´ec´edemment trouv´es.

Nous adoptons l’algorithme NSGA-II tel qu’il est pr´esent´e dans l’algorithme 5.

Algorithme 5 Algorithm NSGA-II [179]

G´en´erer une population initiale P

1

de tailleN

p

´

Evaluer les solutions en se basant sur les fonctions objectives

Trier les solutions pour obtenir les fronts non domin´es en appliquant la fonction

fast-non-dominated-sort function(P

g

,N

p

) //les individus sont attribu´

es un rang et une crowding distance

pourg= 1, ..., N

g

faire //

gest le num´ero de g´en´eration courante

Cr´eer la population des parentsS

par

en utilisant la fonction Parent-selection1 (P

g

, N

p

)

Cr´eer la population fille Q

g

en se basant sur les op´erateurs de croisement et de mutation

Evaluer les solutions de Q

g

Fusionner les populations parent P

g

et filleQ

g

pour former la populationR

g

=P

g

∪Q

g

Trier les solutions de R

g

pour obtenir l’ensemble des fronts F = (F

1

, F

2

, ...) en utilisant la

fonction fast-non-dominated-sort(R

g

)

Initialiser la population de la g´en´eration suivante P

g+1

←−and i←−1

tantque|P

g+1

|+|F

i

|< N

p

faire

Ajouter le front num´ero i`aP

g+1

i←−i+ 1

fin tantque

Trier les individus du front F

i

en se basant sur leur crowding distance

Compl´eter P

g+1

avec les premiers N

p

− |P

g+1

| ´el´ements de F

i

//les individus restants de

Pg+1 sont s´electionn´es de ce front en se basant sur leur crowding distance

fin pour

Les individus de la derni`ere population (de la derni`ere g´en´eration) sont les solutions non

do-min´ees du probl`eme

4.3.1.1 NSGA-II avec p´enalit´e (NSGA-II-P)

L’une des approches efficaces utilis´ees pour ´etudier un probl`eme d’optimisation avec contraintes

est la technique de p´enalisation. Cette derni`ere permet de guider la recherche vers la r´egion faisable

[166]. De ce fait, nous l’appliquons dans ce travail comme suit.

Algorithme 6 Fonction fast-non-dominated-sort(P)

pourp= 1, ..., size(P) faire //pour chaque individu

pde la population

S

p

←− solutions domin´ees parp //

Spest l’ensemble des solutions qui sont domin´ees parp

n

p

←− nombre de solutions qui dominent p.

F

1

←−solutions ayant n

p

=0 //les solutions non domin´

ees sont ajout´ees sur le frontF1 ayant le rang 1

i←−1 //initialiser le compteur

ide front `a 1

tantque F

i

n’est pas videfaire

Q←−//

Qinitialis´ee `a vide, est utilis´ee pour sauvegarder les individus du front (i+ 1) suivant

pourchaque individup dansF

i

faire

pourchaque individu q dansS

p

faire

n

q

←−n

q

−1

si n

q

= 0 alors//Aucune des solutions dans les fronts suivants ne dominerait

q

q

rank

←−i+ 1

Q←−Q∪q //ajouter l’individu

q`a l’ensembleQ

fin si

fin pour

fin pour

i←−i+ 1 //incr´

ementer le nombre de front

F

i

←−Q//

Qsera le front suivant

fin tantque

fin pour

F ←− l’ensemble tri´e de tous les fronts non domin´es //

F = (F1, F2, ..)

pouri= 1, ..., size(F) faire //pour chaque front

Fi

pourp= 1, ..., size(F

i

) faire //chaque individu

pde frontFi

d

i

←− crowding distance

fin pour

fin pour

Algorithme 7 Fonction Parent-selection1(P,N

p

)

S

par

←−//initialiser l’ensemble des parents

Cr´eer une matriceC

ind

de N

p

lignes et 2 colonnes //matrice des indices des parents

Remplir chaque colonne deC

ind

avec les entiers obtenus par une permutation al´eatoire de 1 `a

N

p

pouri= 1, ..., N

p

faire

S´electionner al´eatoirement une ligne de C

ind

qui contient les indices des deux parents

candi-dats

Obtenir les parents correspondants de la population

Comparer les deux parents selon leur rang

siles rangs des deux parents sont diff´erents alors

Trouver le parent avec le rang minimum et ajouter-le `aS

par

sinon //Dans le cas des rangs ´

egaux, comparer leur crowding distance

siles crowding distances des deux parents sont diff´erentesalors

Trouver le parent avec la valeur maximale de crowding distance et ajouter-le `a S

par

sinon

S´electionner al´eatoirement l’un des deux parents et ajouter-le `aS

par

fin si

fin si

fin pour

Afin d’´evaluer une solution, la fonction Fitness est calcul´ee. Elle se compose de la fonction objective

et d’une fonction de p´enalit´e dynamique. Cette derni`ere repr´esente le degr´e de non faisabilit´e

(degr´e de violation de la contrainte) [166]. En outre, ´etant donn´e que les fonctions objectives

sont conflictuelles (minimiser le coˆut du syst`eme et maximiser la disponibilit´e du syst`eme) et afin

d’avoir un probl`eme d’optimisation homog`ene pour le codage, nous avons propos´e les fonctions

Fitness suivantesF F

1

etF F

2

pr´esent´ees respectivement par les ´equations (4.14) et (4.15).

F F

1

=

−A

s

si W

s

≤W

c

,

−A

s

×

WsWcWc

sinon

(4.14)

F F

2

=

C

s

siW

s

≤W

c

,

C

s

+ (W

s

−W

c

) sinon

(4.15)

Dans cet algorithme (NSGA-II-P), une solution A domine une autre solution B si en comparant

leurs valeurs de fonctions Fitness, A a une performance au moins aussi bonne que celle de B

et, au moins pour l’une des fonctions Fitness, la performance de A est meilleure que celle de B.

Math´ematiquement, cette notion de dominance peut ˆetre formul´ee par :

A domineB siF F

i

(A)≤F F

i

(B)∀i∈ {1,2} et ∃j∈ {1,2} tel queF F

j

(A)< F F

j

(B) (4.16)

4.3.1.2 NSGA-II avec une domination de contrainte (NSGA-II-CD)

Pour r´esoudre efficacement un probl`eme multiobjectif avec contraintes, Deb [120] a propos´e en

2002 une version modifi´ee de la d´efinition de dominance. Dans ce concept, une solutionA domine

une autre solution B si l’une des conditions suivantes est remplie :

– SolutionA est faisable, et la solutionB n’est pas faisable.

– Les deux solutionsA etB sont faisables, et Adomine B selon l’´equation (4.16).

– Les deux solutionsA etB ne sont pas faisables, maisAa un degr´e de violation de contrainte

inf´erieur `a celui de B.

Selon cette d´efinition, nous avons utilis´eF F

1

etF F

2

comme l’indique respectivement les ´equations

(4.17) et (4.18). Ainsi les fonction Fitness repr´esentent directement les fonctions objectives. En

outre, nous d´efinissons une fonction suppl´ementaireF F

3

(´equation (4.19)) pour ´evaluer la violation

de contrainte.

F F

1

=−A

s

(4.17)

F F

2

=C

s

(4.18)

F F

3

=

0 si W

s

≤W

c

,

W

s

−W

c

sinon

(4.19)