• Aucun résultat trouvé

L’algorithme PSO-GA en série Initialiser N populations de particules PSO

Gap=0

while Gap différent de GapMAX do

GapPSO=0

while GapPSO différent de (M1+ 1) do

for Toutes les populations do for Tous les individus do

Appliquer les opérateurs PSO end for

end for

Récupérer la meilleure solution if Le critère d’arrêt est rempli then

Stop

end if

GapPSO=GapPSO+1

end while

for Toutes les populations do

Sélectionner la meilleure particule

Transformer cette particule en individu GA end for

while GapGA différent de M2+ 1 do GapGA=0

Appliquer les opérateurs GA Récupérer la meilleure solution if Le critère d’arret est rempli then

Stop

end if

GapGA=GapGA+1

end while

if Gap différent de GapMAX then Récupérer la meilleure solution

Stop

else

Gap=Gap+1

Transmettre les meilleurs individus GA aux populations PSO end if

end while

assignés à chaque sous-population de manière aléatoire, les individus sont testés sur des objectifs différents à chaque itération. Finalement, on obtient des individus performants sur toutes les fonctions objectif considérées.

Cet algorithme a été remanié plusieurs fois, afin de pallier au fait que les individus ne sont testés que sur une seule fonction objectif à la fois. Des méthodes permettant de classer les particules en fonction de leur adaptabilité aux fonctions objectif considérées ont été développées, appelées méthodes de classement lexicographique [20].

Finalement, de très nombreux algorithmes basés sur les méthodes évolutionnaires ont été développés pour résoudre les problèmes d’optimisation multi-objectif, et font même l’objet d’ouvrages entiers [99, 154].

2.2.3/ FOCUS ON : PARTICLE SWARM OPTIMIZATION

2.2.3.1/ HISTORIQUE,PRINCIPE DE BASE

Inspirée par l’observation des groupes d’oiseaux et des bancs de poissons réalisée par Craig Reynolds à la fin des années 80 [29], la méthode d’optimisation par essaims parti-culaires (appelée Particle Swarm Optimization (PSO) dans la littérature anglophone) est ainsi issue d’une analogie avec les comportements collectifs et sociétaux des groupes d’animaux. En effet, chez certains groupes d’animaux comme les bancs de poissons, on peut observer des dynamiques globales relativement complexes, alors que chacun des individus, dont les capacités cognitives sont relativement limitées, n’a accès qu’a un nombre restreint d’informations locales. Par exemple, comme souligné par Dreo et al. [121], on observe qu’un banc de poissons est capable d’éviter un prédateur - d’abord en divisant le groupe en deux, puis en reformant le banc originel - tout en maintenant la cohésion du banc, et ce de manière très rapide. Ces dynamiques globales s’inscrivent parfaitement dans la définition de l’auto-organisation, décrite dans la partie 2.2.2.1. Basé sur ces informations, l’algorithme PSO a tout d’abord été développé par Kennedy et al. en 1995 [60], et s’est très rapidement situé comme l’une des meilleures méthodes metaheuristiques dans le domaine de l’optimisation difficile. Fait remarquable, cette méthode a tout d’abord été développée pour être appliquée à des domaines continus, contrairement aux autres méthodes (ACO, méthodes évolutionnaires) qui ont été déve-loppées pour résoudre des problèmes discrets et combinatoires.

Le principe de cet algorithme est le suivant :

On définit des particules qui correspondent chacune à une potentielle solution au pro-blème d’optimisation posé, c’est à dire à une position dans l’espace des solutions, à laquelle est associée une valeur de la fonction objectif pour cette position en particulier. Chaque particule n’a accès qu’à un nombre restreint d’informations locales, c’est à dire des renseignements concernant les particules de son voisinage (voir partie 2.2.3.2), et est dotée de plusieurs renseignements qui la définissent dans l’espace des solutions :

• Sa position dans l’espace des solutions, • Sa vitesse,

• La valeur de la fonction objectif pour sa position actuelle.

Ainsi, à la manière des bancs de poissons ou des groupes d’oiseaux, les particules vont avoir tendance à se suivre les unes les autres, c’est à dire à agir comme un groupe, pour se déplacer ensemble dans l’espace des solutions et converger ensemble vers l’opti-mum global de la fonction objectif considérée. Plus précisément, à chaque itération PSO, chaque particule recalcule sa vitesse et sa nouvelle position dans l’espace des solutions, en fonction à la fois de ses données personnelles, mais aussi des données qui lui sont transmises par son voisinage. Ainsi, chaque particule peut "choisir" entre les différentes possibilités suivantes, comme on le voit dans la figure 2.14 :

• Suivre sa meilleure performance personnelle, • Suivre la meilleure performance de son voisinage,

• Suivre sa vitesse actuelle (comportement qualifié d’"égoiste" dans la littérature)

Position actuelle

Vers ma meilleure position personnelle

Vitesse actuelle

Vers la meilleure performance de mon voisinage

Nouvelle position

Nouvelle vitesse

FIGURE2.14 – Mode de déplacement des particules dans l’espace des solutions

En réalité, chaque particule n’effectue par réellement ce choix, puisqu’elle combine ces trois possibilités grâce à une combinaison linéaire (représentée en rouge sur la figure 2.14 par une somme vectorielle) de ces trois potentielles directions.

Ces remarques sont cohérentes avec les études socio-cognitives à la base de cet algorithme. En effet, il est établi que le comportement de chaque individu est influencé à la fois par son passé, mais aussi par le comportement de ses voisins (c’est à dire par les individus qui lui sont proches en terme de réseau social, sans être nécessairement proches dans l’espace).

Ainsi, la position des particules dans l’espace des solutions à un instant t est fonction de la direction actuelle de leur mouvement personnel, de leur vitesse actuelle, de leur meilleure performance personnelle et de la meilleure position des particules qui com-posent le voisinage de cette particule, comme on le voit dans l’équation suivante

Xki = f (Xk−1 i , vk−1

i , Pk i,best, Gk

i,best) (2.22) Les variables associées à chaque particule sont donc les suivantes :

• Xki : La position de la particule noià l’itération k. • Vki : La vitesse de la particule noià l’itération k.

• Gki,best: La meilleure position atteinte par les particules du voisinage de la particule i, à l’itération k.

• Pki,best : La meilleure position personnelle atteinte par la particule noià l’itération k.

Les paramètres (constants dans les premières versions de PSO, puis évolutifs dans des versions plus récentes, comme nous le verrons dans la partie 2.2.3.3) qui définissent le comportement de l’algorithme sont les suivants :

• Vmin: la vitesse minimale que peut atteindre une composante d’une particule. • Vmax: La vitesse maximale que peut atteindre une composante d’une particule.

• Le nombre de particules.

• Les paramètres c1et c2qui définissent respectivement les capacités d’exploration et d’exploitation de l’essaim, comme définis dans l’équation (2.23).

Ainsi, le changement de position s’effectue donc comme suit

( Vki = Vk−1 i + c1(Pki,best−Xk−1i )+ c2(Gki,best−Xk−1i ) Xki = Xk−1 i + Vk i (2.23)

Les constantes c1 et c2 sont des paramètres de confiance. Ils représentent la confiance de la particule en son propre chemin et en l’essaim. Ces constantes sont des termes d’accélération stochastique qui déplacent chaque particule vers sa meilleure position per-sonnelle, ou vers la meilleure position atteinte par les particules de son voisinage. Les paramètres Vmaxet Vminpermettent d’éviter que l’algorithme n’oscille trop, en limitant les vitesses limites des particules. En effet, des extrema trop grands de la vitesse au-raient pour conséquence de déplacer les particules trop rapidement dans l’espace des solutions, et donc potentiellement de rater des zones optimales.

Le pseudo-code de la version la plus générale de PSO est donné dans l’algorithme 7.

Documents relatifs