• Aucun résultat trouvé

2.4 Algorithmes g´ en´ etiques multi-objectif

2.4.6 Etude de l’algorithme NSGA-II

Dans cette partie, on s’int´eresse plus particuli`erement `a l’´etude de l’algorithme

NSGA-II, l’une des m´etaheuristiques utilis´ee dans les pr´esents travaux de recherche. Le choix

de cet algorithme multi-objectif ´evolutionnaire MOEA est bas´e sur sa puissance et son

efficacit´e qu’il a montr´ees dans plusieurs domaines et travaux [Deb et al., 2001].

2.4.6.1 Principe et origines

Cette m´etaheuristique d’optimisation multi-objectif est con¸cue par K. Deb en 2002. Elle

est la version am´elior´ee des algorithmes NSGA et NSGA-I [Deb, 1999 ; Deb et al., 2002].

Le Non-dominated Sorting Genetic Algorithm-II est consid´er´e comme ´etant le meilleur et

le plus efficace de ses pr´ed´ecesseurs, vu qu’il ne n´ecessite aucun r´eglage de param`etres.

Il utilise aussi une m´ethode de tri bas´ee sur le principe de non dominance qui est plus

rapide. Cet algorithme est con¸cu en utilisant une approche ´elitiste permettant de ne

retenir que les meilleurs individus (solutions) au cours des g´en´erations. Avec la notion

de dominance, le NSGA-II utilise une autre technique de comparaison pour calculer la

distance de surpeuplement, dite aussi de ”crowding”.

L’algorithme NSGA est bas´e sur plusieurs niveaux de classification des individus. Avant

la s´election des individus, la population est class´ee sur la base du non dominance. Tous

les individus non domin´es sont stock´es dans la mˆeme cat´egorie. Ce groupe d’individus est

2.4. Algorithmes g´en´etiques multi-objectif 55

ignor´e et on consid`ere une autre couche d’individus non domin´es. Ce processus se poursuit

jusqu’`a ce que tous les individus de la population soient classifi´es. Puisque les individus

dans le premier front ont les meilleures valeurs, ils obtiennent toujours plus de copies que

le reste de la population. Ceci permet la meilleure recherche des r´egions de front optimal

et m`ene `a la convergence de la population vers ces r´egions. Le partage (fitness sharing)

permet de distribuer la population sur la r´egion, c’est-`a-dire, sur le front de Pareto du

probl`eme [Srinivas & Deb, 1993].

Le NSGA a relativement bien connu du succ`es dans plusieurs travaux et domaines

d’applications [Deb et al., 2001]. Plusieurs ´etudes comparatives ont montr´e la sup´eriorit´e

de l’algorithme NSGA-II par rapport aux algorithmes MOGA et NPGA. Le NSGA est

´

egalement un algorithme tr`es efficace en raison de la fa¸con dont il classifie les individus.

Le pseudo-code du l’NSGA est donn´e dans l’algorithme 10.

Algorithm 10 NSGA

1: Initialisation de la population

2: Evaluation des fonctions objectif

3: Assignation d’un rang bas´ee sur le rang de dominance sur chaque surface de compromis

4: Calcul du compte des voisins

5: Assignation d’une efficacit´e partag´ee

6: Pouri= 1 `ag faire

7: S´election al´eatoire proportionnelle `a l’efficacit´e

8: Croisement

9: Mutation

10: Evaluation des fonctions objectif

11: Assignation d’un rang bas´ee sur le rang de dominance sur chaque surface de compromis

12: Calcul du compte des voisins (compteur de niches)

13: Assignation d’une efficacit´e partag´ee

14: Fin pour

15: Fin NSGA

Le principe de l’algorithme NSGA-II est illustr´e dans la figure 2.12. La populationRt=

P optQtest la combinaison des deux populations ; la population ParentsP opt, de tailleN,

et la population Enfants Qt. Cet assemblage permet d’assurer l’´elitisme de l’algorithme.

La phase de tri, selon le crit`ere de dominance choisi, aura lieu ensuite pour une taille

maximale ´egale `a 2N. La proc´edure de tri permet de d´eterminer les n fronts de Pareto

(F1, F2, ..., Fn). Les meilleures solutions sont appartenues aux premiers fronts. A ce stade,

une nouvelle population de Parents P opt+1 est form´ee par l’ajout des solutions trouv´ees

au complet en ne pas d´epassant la taille N. Pour cela, tant que la taille de population

ParentsP opt+1 est inf´erieure `aN, une proc´edure de ”crowding” est appliqu´ee sur le front

Fi qui n’est pas dans P opt+1. Cette op´eration permet d’inclure les |N P opt+1| meilleurs

individus dans la population Parents P opt+1. Comme c’est mentionn´e dans l’algorithme

2.5, une fois la populationP opt+1 est formul´ee, une nouvelle population Enfants Qt+1 est

cr´e´ee apr`es les trois phases de s´election, de croisement et de mutation.

Figure 2.12 – Principe de l’algorithme NSGA-II [Deb et al., 2002].

2.4.6.2 Calcul de la distance de surpeuplement

Dite aussi distance de crowding, elle est calcul´es en fonction du p´erim`etre form´e par tous

les individus voisins d’une solution comme c’est montr´e par la figure 2.13, qui pr´esente le

cas d’un probl`eme bi-objectif.

Une proc´edure de tri des solutions dans un ordre ascendant sera lanc´ee avant le calcul

de la distance de surpeuplement. Par la suite, tous les individus ont `a la fois une petite

et une grande valeur de fonction objectif. Ces valeurs se voient associ´ees `a une distance

infinie et pour les autres individus, pour chaque fonction objectif, on calcule la distance

de surpeuplement qui est ´egale `a la diff´erance normalis´ee de toutes les valeurs de fonctions

coˆut de deux solutions ”adjacentes”. Enfin, la distance de crowding sera la somme des

distances calcul´ees et correspondant `a chaque objectif.

2.4. Algorithmes g´en´etiques multi-objectif 57

Figure 2.13 – Distance de crowding (surpeuplement) : cas d’un probl`eme bi-objectif.

L’algorithme 11 montre la technique de calcul de la distance de surpeuplement de toutes

les solutions non domin´ees Snd . Les param`etres fMM ax et fMM in sont respectivement les

valeurs maximales et minimales de la M-i`eme fonction objectif et fMi1, fMi+1 sont les

valeurs courantes de la mˆeme M-i`eme fonction objectif [Deb et al., 2002 ; Srinivas & Deb,

1993 ; Andersson & Wallace, 2002].

2.4.6.3 Pseudo-code de l’algorithme NSGA-II

Apr`es avoir d´etaill´e le principe th´eorique de l’algorithme NSGA simple, nous pr´esentons

dans l’algorithme 12 les grandes lignes de l’algorithme NSGA-II. L’op´erateur n, appel´e

crowded-comparaison, intervient dans le processus de la s´election des individus. D´efini

par l’´equation (2.9), cet operateur permet d’identifier la meilleure entre deux solutions.

Chaque solution (i) dans l’espace de recherche est identifi´ee par un rang et une distance

de crowding.

inj si (irang < jrang) ou ((irang =jrang) et (irang > jrang)) (2.9)

Dans l’approche NSGA-II, chaque solution dispose d’un rang et celle qui poss`ede le plus

petit sera pr´ef´er´ee. Pour deux solutions qui font partie de la mˆeme fronti`ere de Pareto,

on choisit celle qui est localis´ee dans la r´egion de faible densit´e.

Algorithm 11distance de crowding

1: f=|Snd| Nombre de solutions dans l’ensemble

2: Pourchaque i, poser Snd[i]distance = 0 Initialiser les distances

3: Pourchaque objectif M

4: Snd =T rier(Snd, M) Trier selon la valeur de l’objectif M

5: Snd[1]distance =

6: Snd[f]distance =

7: Pouri= 2 `a (f1)faire

8: Snd[i]distance =Snd[i]distance+(

fMi+1fMi1)/(

fM ax

M fM in

M

)

9: Fin pour

10: Fin pour

11: Fin pour

12: Fin distance de crowding

Algorithm 12NSGA-II

1: Pourchaque it´eration t faire

2: Rt=P optQt (Combiner les deux populations)

3: F = fast-non-dominated-sort (Rt) (Calcul de tous les fronts non domin´es de Rt )

4: P opt=, i=1

5: Tant que |P opt+1|+|Fi| ≤N (Tant que la population n’est pas pleine) faire

6: t=t+ 1

7: P opt+1 =P opt+1Fi (Inclure lei front non domin´e dansP opt+1 )

8: Crowding-distance-assignement (Fi ) (Calculer la distance de ”crowding” du frontFi)

9: Trier (Fi,n) (Trier dans un ordre descendant en utilisant l’op´erateur de comparaisonn )

10: P opt+1 =P opt+1Fi[1 : (N − |P opt+1|)] (Choisir les premiers (N − |P opt+1|)

11: individus du front les mieux r´epartis)

12: G´en´erer une nouvelle population enfant (Qt+1) par s´election, croisement et mutation

13: t=t+ 1 (Incr´ementer le compteur des g´en´erations)

14: Fin NSGA-II