Optimisation par essaims particulaires

{{#ifeq:||Un article de Ziki, l'encyclopédie libre.|Une page de Ziki, l'encyclopédie libre.}}
Révision datée du 8 octobre 2022 à 16:30 par >Simans9093 (Retouches selon conventions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

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<ref>Modèle:Article</ref>.

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 :

  1. Sa vitesse actuelle <math>V_k</math> ;
  2. Sa meilleure solution <math>P_i</math> ;
  3. La meilleure solution obtenue dans son voisinage <math>P_g</math>.

Cela donne l'équation de mouvement suivante :

  • <math>V_{k+1} = {\omega}V_k+b_1(P_i-X_k)+b_2(P_g-X_k)</math>.
  • <math>X_{k+1} = X_k + V_{k+1}</math>.


Avec :

<math>X_k</math> sa position actuelle
<math>{\omega}</math> inertie
<math>b_1</math> tiré aléatoirement dans [0,φ1]
<math>b_2</math> tiré aléatoirement dans [0,φ2]

Notes et références

Notes

Références

Modèle:Références

Annexes

Bibliographie

Articles connexes

Liens externes

Modèle:Portail