Optimisation par essaims particulaires
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/3c/PSO-GIF.gif/260px-PSO-GIF.gif)
Type | Algorithme, optimisation (d) ![]() |
---|
modifier - modifier le code - modifier Wikidata
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 :
- Sa vitesse actuelle ;
- Sa meilleure solution ;
- La meilleure solution obtenue dans son voisinage .
Cela donne l'équation de mouvement suivante :
- .
- .
Avec :
- sa position actuelle
- inertie
- tiré aléatoirement dans [0,φ1]
- 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
- ↑ 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
v · m Apprentissage automatique et exploration de données | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paradigmes d'apprentissage |
| ||||||||
Problèmes | |||||||||
Apprentissage supervisé |
| ||||||||
Apprentissage non supervisé et auto-supervisé |
| ||||||||
Métaheuristique d'optimisation | |||||||||
Théorie | |||||||||
Logiciels |
|
Portail de l'informatique théorique