• Aucun résultat trouvé

Une m ´etaphore sociale : l’essaim de particules

Dans le document Problèmes inverses en génie civil (Page 195-198)

De Jong qui pr ´esente 25 minima locaux [Jon75].

function r=f5(x,y) per=[-32,-16,0,16,32]; aj1=[per,per,per,per,per]; m=ones(1,5); aj2=[-32*m,-16*m,0*m,16*m,32*m]; r=(500+sum(([1:25]+sum(([x;y]*ones(1,25)-[aj1;aj2]).^6,’r’)).^(-1)))^(-1) endfunction x=-60:60;y=x; Sfgrayplot(x,y,f5);

xtitle(’f5 : minimum global 0.001996 en (x,y)=(-32,-32)’,’x’,’y’) function r=costfunc(x)

r=f5(x(1),x(2)); endfunction nvar=2;

tl=sa_param(nvar);//param´etrage par d´efaut tl.cs.To=1e9;//temperature initiale itmax=1e6;//nombre maximum d’it´erations

tl.Neps=20;//sortie si stationnarit´e sur 20 it´erations

[best,cost]=sa(tl,nvar,ones(nvar,1)*[-200,200],[101;101],1e-8,itmax)

Dans la suite, la physique laisse la place `a la biologie. Quatre m ´etaphores inspir ´ees du vivant `a diff ´erentes ´echelles y sont pr ´esent ´ees. A partir de ce point, tous les algo-rithmes abord ´es manipulent plusieurs solutions candidates `a la fois.

9.4 Une m ´etaphore sociale : l’essaim de particules

9.4.1 Heuristique de base

James Kennedy, l’un des inventeurs de l’essaim de particules est chercheur en psy-chologie sociale. Sa recherche d’un mod `ele num ´erique d’interaction sociale l’a conduit

`a ´etudier comportements gr ´egaires dans le r `egne animal.

Chez de nombreuses esp `eces animales, il est rare de rencontrer un individu seul dans son milieu. Il sera plus probablement int ´egr ´e `a un groupe. On parle alors de banc pour les poissons ou d’essaim pour les insectes et de nu ´ees chez les oiseaux. Au-del `a du caract `ere spectaculaire des mouvements de tels ensembles, avec la re-marquable coordination qu’elle suppose lors des d ´eplacements, il faut insister sur les avantages ´evolutifs qu’apporte `a l’esp `ece consid ´er ´ee le mode de vie en essaim. L’es-saim minimise la probabilit ´e de rencontre avec un pr ´edateur. Pour mod ´eliser finement la trajectoire d’un essaim, un hypoth `ese centrale est d’ailleurs que chaque membre de l’essaim vise `a se rapprocher du centre de celui-ci. De la m ˆeme mani `ere, dans un contexte de ressources alimentaires concentr ´ees dans certaines zones de l’espace ex-plor ´e, le d ´eplacement en essaim permet une recherche plus efficace dont le fruit profite au plus grand nombre [Wil00]. On sait aujourd’hui que chez nombres d’esp `eces, les individus fondent en partie leur comportement sur l’information diffus ´ee de mani `ere vo-lontaire ou non (on parle alors de communication par inadvertance [Dan05]) par leurs cong ´en `eres. Enfin, la recherche a mis en ´evidence le r ˆole du groupe dans la r ´eussite d’une navigation `a grande distance, comme celle de la migration [Sim04].

M ˆeme en se limitant `a la recherche de nourriture, il est clair que l’exploration de l’environnement par un essaim peut d ´ej `a ˆetre vue comme un processus d’optimisa-tion. L’algorithme d’essaim de particules a ´et ´e d ´efini `a partir des travaux de Reynolds

ainsi que Heppner et Grenander sur la simulation des d ´eplacements des oiseaux [Rey87][HG90]. Une fois r ´ealis ´ee l’abstraction qui consiste `a passer de l’espace phy-sique `a un espace de param `etres de dimension arbitraire, de la fonction ”nourriture disponible” `a une fonction math ´ematique quelconque, une m ´ethode d’optimisation `a part enti `ere se dessine. Pour plus de d ´etails sur la gen `ese de l’algorithme d’essaim de particules, consulter les travaux de Kennedy et Eberhart [KE95][KES01].

9.4.2 L’algorithme

L’algorithme d’essaim de particules travaille donc sur plusieurs particules. Chacune est dot ´ee d’un vecteur position et d’un vecteur vitesse dans l’espace des param `etres. A chaque it ´eration, pour chaque particule, ce couple de vecteurs est mis `a jour en fonction de la trajectoire pass ´ee de la particule et de celle de la meilleure particule, au regard de la fonction co ˆut `a minimiser.

Il existe plusieurs versions de l’algorithme d’essaim de particules qui suscite un int ´er ˆet soutenu depuis plusieurs ann ´ees. On pr ´esente ici la version en variables conti-nues dite «avec constriction de type 1» d ´ecrite dans [[CK02], p70]. Ce choix se jus-tifie parce que cette version donne les meilleurs r ´esultats sur un jeu de fonctions test r ´eput ´ees difficiles [CK02]. L’algorithme est donn ´e ci-dessous :

Initialiser la population (pi et vi) Faire

Pour i dans 1,2,...taille de la population si f(xi)<f(pi) alors pi=xi

pg=min(pvoisins)

Pour d dans 1,2,...dimension

vid=Khi(vid+phi1(pid-xid)+phi2*(pgd-xid)) xid=xid+vid

Fin pour Fin pour

Jusqu’`a ce que le crit`ere de fin soit satisfait

La signification des variables est la suivante :

piest la position de l’individuidans l’espace des param `etres ;

videst la vitesse selon l’axedde l’espace des param `etres pour l’individui,viest le vecteur vitesse ;

pg est la meilleure position pour l’it ´eration courante. Elle est d ´etermin ´ee sur un voisinage de l’individui. Dans l’implantation Scilab, on a pris un voisinage ´etendu

`a toute la population ;

phi1etphi2sont des v. a. uniformes sur l’intervalle[0, φ];

– la variable Khi est fix ´ee `a partir des param `etres internes φ et κ selon l’ ´etude analytique de la stabilit ´e et de la convergence donn ´ee dans [CK02].

Outre la possibilit ´e de d ´efinir un voisinage diff ´erent [MKN04], il existe deux types de variantes de l’algorithme d’essaim de particules. Le premier concerne la valeur de

Khi. Le second introduit un sch ´ema l ´eg `erement diff ´erent de mise `a jour devidsous la forme d’un ´ecr ´etage au-del `a devmax. Le but est d’ ´eviter la tendance de l’algorithme `a la divergence.

A. Variantes

A partir de cet algorithme, Angeline en a b ˆati un autre qui combine s ´election natu-relle par processus de croisement, mutation et s ´election comme dans les algorithmes ´evolutionnaires pr ´esent ´es plus loin, et interaction sociale. Sur des fonctions test les

9.4 Une m ´etaphore sociale : l’essaim de particules 195 performances compar ´ees `a l’essaim de particules sont variables pour les dimensions faibles, sans am ´elioration significative en grande dimension. On peut noter que les pa-ram `etres internes de l’essaim de particules sont statiques dans la version pr ´esent ´ee ici, certains auteurs ont ´etudi ´e des versions `a param `etres dynamiques. Pour l’ ´etude des variations autour de l’essaim de particules, le lecteur se reportera `a [KES01].

En reprenant l’id ´ee de l’effet positif des interactions `a l’int ´erieur d’un groupe Ray et Liew sont all ´es plus loin en introduisant un niveau hi ´erarchique interm ´ediaire entre les individus et leur leader. L’algorithme obtenu s’appelle soci ´et ´es et civilisation [RL03]. Les deux principes qui le fondent sont :

– Une civilisation ´emerge et progresse gr ˆace aux relations de coop ´eration entre les soci ´et ´es qui la composent ;

– Les individus d’une soci ´et ´e interagissent mutuellement dans le but de progresser. Le niveau hi ´erarchique interm ´ediaire est obtenu en op ´erant des regroupements entre individus appel ´es «soci ´et ´es». Chaque soci ´et ´e est dot ´ee d’un ou plusieurs leaders

d ´esign ´es par leur performance sup ´erieure. La confrontation des diff ´erentsleaders per-met de d ´efinir un ou plusieurs leadersdecivilisation. Dans une soci ´et ´e, l’ ´evolution des individus est orient ´ee par lesleadersde la soci ´et ´e. Leleadersde civilisation influencent

lesleadersde soci ´et ´e.

L’algorithme montre les meilleures performances connues, surtout en termes de vitesse et de respect des contraintes, sur trois probl `emes de r ´esistance des mat ´eriaux dont la difficult ´e n’a pas pu ˆetre ´evalu ´ee. Les caract ´eristiques de ces probl `emes sont de porter sur un faible nombre de variables, mais d’inclure des contraintes.

B. Performance et convergence

Malgr ´e son extr ˆeme simplicit ´e, l’algorithme d’essaim de particules se montre ca-pable de trouver le minimum de fonctions `a topologie complexe [CK02].

En parall `ele aux investigations empiriques, Clerc a ´etudi ´e l’algorithme d’essaim de particules sur un plan th ´eorique [CK02]. Il montre qu’un mod `ele g ´en ´eralis ´e sous la forme d’un syst `eme diff ´erentiel `a 5 param `etres peut ˆetre associ ´e `a l’algorithme dans le cas d’un seul degr ´e de libert ´e. L’ ´etude du r ˆole de ces param `etres permet de d ´egager des classes de comportement et en particulier le sch ´ema dit de«constriction mod ´er ´ee» qui assure la convergence tout en permettant une bonne exploitation de l’espace de solutions.

Les r ´esultats sur une particule `a 1 degr ´e de libert ´e se g ´en ´eralisent `a n degr ´es de libert ´e. En revanche, la th ´eorie de l’interaction entre les particules reste `a construire. C. Pratique

R ´eglage des param `etres Par d ´efaut,κ= 0.8, d’apr `es l’ ´etude de convergence [CK02], et

φ = 4.5 donnent de bons r ´esultats. Le nombre de particules utilis ´e couramment varie entre 10 et 50, soit ordinairement moins que dans les algorithmes g ´en ´etiques. Sur les fonctions test de De Jong, 20 particules suffisent `a obtenir de bons r ´esultats.

Utilisation du code Scilab La biblioth `eque Scilab qui implante la variante d’essaim de particules retenue s’appelle pso.sci, dans laquelle pso() est la fonction appel ´ee par l’utilisateur. Les arguments d’entr ´ee et de sortie de cette fonction sont les suivants :

function [best,cost,nbiter,dur,evolution,pop_fin]=pso(npart,nvar,span,init,tol,evmax,kappa,phimax); //entree

//npart : scalaire, nombre de particules constituant l’essaim, 20 par d´efaut //nvar : scalaire, la dimension de l’espace ´etudi´e

//span : matrice(nvariables,2), minimum et maximum de chaque variable

// ou matrice(1,2) : minimum et maximum identique pour toutes les variables //init : vecteur (nvar,1) optionnel, valeurs initiales

// si [], initialisation par v.a. uniforme

//tol : //seuil de convergence sur la valeur de costfunc //evmax : entier, nombre maximal d’appels de fonctions

//kappa : scalaire optionnel, sert au calcul du coefficient de constriction, 0.8 par d´efaut //phimax : scalaire optionnel, sert au calcul du coefficient de constriction, 4.5 par d´efaut. //sortie

//best : vecteur, meilleur individu de l’essaim //cost : scalaire, meilleure valeur

//nbiter : entier, nombre d’it´erations //dur : scalaire, duree de l’optimisation

//evolution : matrice (nit,nvar+1), historique de l’optimisation, //evolution(i,1) contient le minimum `a l’it´eration i,

//evolution(i,2 : $) le meilleur individu `a l’iteration i //pop_fin : tlist, essaim final

Rappel : avant tout appel `a pso(), il convient d’avoir d ´efini costfunc() qui corres-pond `a la fonction `a minimiser. Un exemple ´el ´ementaire d’application `a la fonction de Rosenbrock est donn ´e ci-dessous :

stacksize(3e7); function z=Rosenbrock(x,y) v=[x;y]; dim=size(v,1); z=sum(100*(([v(2:dim,:);v(1,:)]-(v.^2)).^2)+((v-1).^2),’r’ ); endfunction xset(’window’,0); xbasc(); x=-2:0.1:2;y=x; fplot3d(x,y,Rosenbrock,alpha=55,theta=65); xtitle(’Fonction de Rosenbrock’) function z=costfunc(z) z=Rosenbrock(z,[]); endfunction

//optimisation en dimension 30 avec 20 particules //domaine initial [-20,50]^30

//40000 evaluations de fonction au maximum [best,cost]=pso(20,30,[-20,50],[],1e-4,40000)

Dans le document Problèmes inverses en génie civil (Page 195-198)