Optimisation par essaims particulaires

L'optimisation par essaims particulaires (OEP ou PSO en anglais) est une métaheuristique d'optimisation, inventée par Russel Eberhart (ingénieur en électricité) et James Kennedy (socio-psychologue) en 1995.

Algorithme

Cet algorithme s'inspire à l'origine du monde du vivant. Il s'appuie notamment sur un modèle développé par Craig Reynolds à la fin des années 1980, permettant de simuler le déplacement d'un groupe d'oiseaux. Une autre source d'inspiration, revendiquée par les auteurs, James Kennedy et Russel Eberhart, est la socio-psychologie[1].

Cette méthode d'optimisation se base sur la collaboration des individus entre eux. Elle a d'ailleurs des similarités avec les algorithmes de colonies de fourmis, qui s'appuient eux aussi sur le concept d'auto-organisation. Cette idée veut qu'un groupe d'individus peu intelligents peut posséder une organisation globale complexe.

Ainsi, grâce à des règles de déplacement très simples (dans l'espace des solutions), les particules peuvent converger progressivement vers un minimum global. Cette métaheuristique semble cependant mieux fonctionner pour des espaces en variables continues.

Au départ de l'algorithme chaque particule est donc positionnée (aléatoirement ou non) dans l'espace de recherche du problème. Chaque itération fait bouger les particules en fonction de trois composantes :

Evolution par iteration
  1. Sa vitesse actuelle V k {\displaystyle V_{k}}  ;
  2. Sa meilleure solution P i {\displaystyle P_{i}}  ;
  3. La meilleure solution obtenue dans son voisinage P g {\displaystyle P_{g}} .

Cela donne l'équation de mouvement suivante :

  • V k + 1 = ω V k + b 1 ( P i X k ) + b 2 ( P g X k ) {\displaystyle V_{k+1}={\omega }V_{k}+b_{1}(P_{i}-X_{k})+b_{2}(P_{g}-X_{k})} .
  • X k + 1 = X k + V k + 1 {\displaystyle X_{k+1}=X_{k}+V_{k+1}} .


Avec :

X k {\displaystyle X_{k}} sa position actuelle
ω {\displaystyle {\omega }} inertie
b 1 {\displaystyle b_{1}} tiré aléatoirement dans [0,φ1]
b 2 {\displaystyle b_{2}} tiré aléatoirement dans [0,φ2]

Pseudo-code

Algorithme : Optimisation par Essaims Particulaires (PSO)

Entrée : Fonction objectif f(X), Nombre de particules N, Nombre maximum d'itérations MaxIter

Sortie : Meilleure solution Pg et sa valeur f(Pg)

1. Initialisation :
   1.1. Pour chaque particule i = 1 à N :
        - Initialiser la position Xi aléatoirement dans l'espace de recherche
        - Initialiser la vitesse Vi à zéro ou à une petite valeur aléatoire
        - Définir la meilleure solution personnelle Pi à Xi
   1.2. Évaluer la fonction de fitness de chaque particule en utilisant f(Xi)
   1.3. Définir la meilleure solution globale Pg à la position de la meilleure particule

2. Pour chaque itération k = 1 à MaxIter :
   2.1. Pour chaque particule i = 1 à N :
        - Générer b1 et b2, nombres aléatoires dans [0,φ1] et [0,φ2] respectivement
        - Mettre à jour la vitesse Vi selon l'équation :
          Vi(k+1) = ω*Vi(k) + b1*(Pi - Xi(k)) + b2*(Pg - Xi(k))
        - Mettre à jour la position Xi selon l'équation :
          Xi(k+1) = Xi(k) + Vi(k+1)
        - Évaluer la fonction de fitness de la nouvelle position en utilisant f(Xi(k+1))
        - Si f(Xi(k+1)) est meilleure que f(Pi) :
            - Mettre à jour Pi à Xi(k+1)
        - Si f(Xi(k+1)) est meilleure que f(Pg) :
            - Mettre à jour Pg à Xi(k+1)
   2.2. Ajuster éventuellement ω, φ1, et φ2 dynamiquement basé sur le numéro d'itération ou d'autres critères

3. Après avoir complété toutes les itérations, retourner Pg et f(Pg) comme la meilleure solution trouvée.

Notes et références

Notes

Références

  1. J. Kennedy et R. Eberhart, « Particle swarm optimization », , IEEE International Conference on Neural Networks, 1995. Proceedings, vol. 4,‎ , p. 1942–1948 vol.4 (DOI 10.1109/icnn.1995.488968, lire en ligne, consulté le )

Annexes

Bibliographie

  • Maurice Clerc, L'optimisation par essaims particulaires, Hermès Science, , 288 p. (ISBN 978-2746209916, présentation en ligne) Avec codes sources.
  • Abbas El Dor, Perfectionnement des algorithmes d’optimisation par essaim particulaire: applications en segmentation d’images et en électronique, (présentation en ligne, lire en ligne)

Articles connexes

  • Boids

Liens externes

  • Particle Swarm Central
  • Particle Swarm Optimization
  • Article Science et Vie - Robots : l'union fait leur nouvelle force
  • icône décorative Portail de l'informatique théorique