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.