13.07.2015 Views

TP 3 - Particle Swarm Optimization (PSO)

TP 3 - Particle Swarm Optimization (PSO)

TP 3 - Particle Swarm Optimization (PSO)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3A - Filière 4<strong>TP</strong> 3 - Algorithme <strong>PSO</strong><strong>TP</strong> 3 - <strong>Particle</strong> <strong>Swarm</strong> <strong>Optimization</strong> (<strong>PSO</strong>)Sommaire1 Algorithme d’optimisation par essaim de particules . . . . . . . . . . . . . . . . . . . . . . . . 12 Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2IntroductionLes algorithmes de type <strong>Particle</strong> <strong>Swarm</strong> <strong>Optimization</strong> (<strong>PSO</strong>) sont des algorithmes d’optimisationstochastiques qui maintiennent au fil des itérations une population de solutions potentielles au problème.Ils ont été proposés par Eberhart et Kennedy en 1995 [1] qui se sont inspirés du comportement collectifdes vols d’oiseaux ou des bancs de poissons.Les algorithmes <strong>PSO</strong> partagent ainsi de nombreuses caractéristiques avec les algorithmes évolutionnairescomme les algorithmes génétiques. En effet, ils s’initialisent avec une population de solutions (prisesaléatoirement) et cherchent un optimum au problème en faisant évoluer les individus de la populationau fil des générations. A l’inverse des algorithmes génétiques où les solutions sont codées sous formede chromosomes sur lesquels opèrent des opérateurs dédiés (mutation, crossover), les individus d’unepopulation <strong>PSO</strong> sont directement les solutions au problème et la recherche des meilleures solutions sefait en déplaçant dans l’espace des solutions, ces individus ou particules.L’objectif de ce <strong>TP</strong> est d’implémenter un tel système d’optimisation sous Matlab en tirant profit ducaractère matriciel de cet environnement. Une fois le codage effectué, plusieurs problèmes d’optimisation(simples puis plus complexes) seront testés. Comme pour tout algorithme évolutionnaire, il est importantde bien séparer ce qui est générique à l’algorithme d’optimisation de ce qui relève des spécificités duproblème.1 Algorithme d’optimisation par essaim de particulesComme déjà énoncé, dans un algorithme <strong>PSO</strong>, les solutions potentielles ou particules se déplacentdans l’espace des solutions (l’espace du problème) en tirant profit collectivement des optima détectés parchaque particule individuellement.Ainsi, chaque particule k conserve au fil des générations, les coordonnées dans l’espace de recherche Edu lieu pb k (particule best) qui a jusqu’à présent, fourni la meilleure solution au problème, au sens d’unemesure ou fonction de fitness. La valeur de fitness f (pb k ) calculée pour pb k est également conservée.De plus, pour chaque particule k, l’algorithme calcule également la particule ayant ou ayant eu lameilleure valeur de fitness, dans un certain voisinage autour de la particule k. Cette particule est notéelb k (local best). Si le voisinage considéré est l’intégralité de la population, cette particule lb k est la mêmepour toutes les particules et devient donc gb (global best). Deux versions de l’algorithme sont doncpossibles en fonction du voisinage considéré.1


3A - Filière 4<strong>TP</strong> 3 - Algorithme <strong>PSO</strong>Chaque itération de l’algorithme consiste donc à déplacer les particules de la population en adaptantle vecteur vitesse v k associé à chaque particule k en direction des régions où se trouvent les particulespb k et lb k (ou gb) ayant les meilleurs potentiels découverts jusqu’à présent.1.1 AlgorithmeL’algorithme <strong>PSO</strong> décrit ci-dessous est celui qui considère le voisinage d’une particule comme étenduà toute la population :1. Création d’une population P de N particules réparties uniformément sur l’espace de recherche E.2. Chaque particule p i ∈ P est évaluée à l’aide d’une fonction de fitness f mesurant l’adéquation decette solution potentielle avec le problème. On rappelle qu’on cherche arg max x∈E f (x).3. Si la position x i de la particule i est meilleure au sens de la fonction de fitness que sa meilleureposition jamais rencontrée pb i , mettre à jour pb i .4. Déterminer la meilleure particule gb parmi la population courante, c’est-à-dire gb = arg max k∈P pb k .5. Mettre à jour la vitesse v i de chaque particule i selon la règle suivante :v t+1i= ωv ti}{{}inertie+ φ 1 · u1 t · (pbi t − xi t )} {{ }composante cognitive+ φ 2 · u t 2 · (gb t − x ti )} {{ }composante socialeoù ω, φ 1 et φ 2 sont les paramètres de l’algorithme qui règlent l’inertie de la particule ou l’influencedes différents attracteurs. u 1 et u 2 sont deux variables aléatoires uniformes sur [0, 1].6. Déplacer les particules à leurs positions x t+1i:x t+1i= x ti + v t+1i7. Reboucler sur la seconde étape (itération t + 1) jusqu’à ce qu’un critère de fin soit vérifié.1.2 ImplémentationQuestion 1 : Ecrire formellement l’algorithme en identifiant ses paramètres entrants et sortants, lesmécanismes qui sont génériques quel que soit le problème d’optimisation à résoudre et les parties qui ellessont directement liées au problème spécifique considéré.Question 2 : Traduire cet algorithme en Matlab en considérant le cas général où la dimension del’espace de recherche est un des paramètres du problème (ne pas se limiter à des espaces de recherchede dimension 1 ou 2).2 SimulationsCette partie a pour objectif d’utiliser l’algorithme implémenté précédemment pour répondre à desproblèmes d’optimisation concret. Pour chaque simulation, on fera varier les paramètres de l’algorithmepour en observer le comportement : nombre de particules, paramètre d’inertie ω, d’accélération φ 1 et φ 2 ,taille du voisinage considéré, . . .2.1 Fonction quadratique monodimensionnelleQuestion 3 : Choisir une telle fonction puis valider l’algorithme en vérifiant la valeur finale retournée.Question 4 : Prévoir une visualisation de la position des différentes particules dans l’espace derecherche au fil des itérations, en superposition de la surface dont l’optimum est recherché.2


3A - Filière 4<strong>TP</strong> 3 - Algorithme <strong>PSO</strong>2.2 Fonction avec des optima locauxQuestion 5 : Choisir une telle fonction monodimensionnelle et expérimenter en visualisant les solutionsau fil des générations. Quel optimum est trouvé ?Question 6 : Analyser le comportement de l’algorithme en fonction des paramètres de l’algorithme.2.3 Recherche d’un optimum global sur des surfaces complexesLes fonctions ou surfaces utilisées dans ce paragraphe admettent un optimum global unique.Question 7 : Choisir une telle surface. Par défaut, utiliser la fonction h(x, y) d’Ackley sur le domaine[−5, 5] × [−5, 5] :h(x, y) = 20 + e − 20 exp(−0.2√12 (x 2 + y 2 ))( )1− exp2 [cos(2πx) + cos(2πy)]Figure 1: Surface de AckleyQuestion 8 : Expérimenter et visualiser surface et particules courantes.Question 9 : Suite aux simulations, quel bilan tirer d’une telle méthode d’optimisation ?Question 10 : Quelles solutions peut-on proposer pour maintenir une certaine diversité dans la populationde particules ? Pourquoi ce besoin ?2.4 Recherche d’un ensemble d’optima globauxQuestion 11 : Choisir une fonction (monodimensionnelle) admettant plusieurs optima globaux (mêmevaleur de fitness) et lancer des simulations. Observer le comportement.Question 12 : Quelles propositions faire pour tenter de découvrir l’ensemble des optima ?Question 13 : Extrapoler à la notion de niche qui permet à l’ensemble de la population de ne pasconverger vers l’optimum global exclusivement ?References[1] R. Eberhart and J. Kennedy. A new optimizer using particle swarm theory. In Micro Machine andHuman Science, 1995. MHS ’95., Proceedings of the Sixth International Symposium on, pages 39–43, October 1995.3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!