Académique Documents
Professionnel Documents
Culture Documents
Bomb Run
Bomb Run
dInformatique de
Modlisation et de
leurs Applications
Complexe des Cezeaux
BP 10 125
63 173 AUBIERE cedex.
Rapport dingnieur
Projet de 2me anne
Filire 4 : Calculs et modlisations scientifiques
24/03/2011
Institut Suprieur
dInformatique de
Modlisation et de
leurs Applications
Complexe des Cezeaux
BP 10 125
63 173 AUBIERE cedex.
Rapport dingnieur
Projet de 2me anne
Filire 4 : Calculs et modlisations scientifiques
24/03/2011
Remerciements
Nous remercions Monsieur Michel Gourgand pour son soutien et son aide apporte tout au
long de ce projet.
Rsum
Notre projet de deuxime anne dcole dingnieur est bas sur ltude dune mtaheuristique, loptimisation par essaim particulaire (O.E.P.). Cette mthode permet, linstar des
abeilles, de faire converger tous les rsultats vers un mme point, loptimum de la fonction ou du
problme pos. Nous avons, dans un premier temps, implment cet outil dans le cadre de
loptimisation continue, puis nous lavons adapt la combinatoire afin de le tester sur le
problme du voyageur de commerce ou T.S.P. (Travelling Salesman Problem). Ensuite, nous avons
compar, puis analys nos rsultats via des batteries de tests.
Mots-cls : Meta-heuristique, Optimisation, Essaim particulaire, Continue, Combinatoire, T.S.P.,
Batterie de test
Abstract
Our Second Year Project in Engineering School is based on the study of a meta-heuristic:
The Particle Swarm Optimization (P.S.O.). This method allow, like bees, to make converge the
data to a same point: the function or problems optimum. In a first time, we have programmed this
tool for continuous optimization then for the combinatory optimization in order to test it on the
T.S.P. (Travelling Salesman Problem). Then, we compared and analyzed our results with some
tests.
Keywords: Meta-heuristic, Particular Swarm Optimization, Continuous, Combinatory, T.S.P., Tests
II) LA P.S.O. POUR LOPTIMISATION CONTINUE ........................................................... - 6 1) PRINCIPE FONDAMENTAL ........................................................................................................................................- 6 2) ALGORITHME DE PRINCIPE ......................................................................................................................................- 7 3) CONFIGURATION DE LA METHODE ..........................................................................................................................- 8 -
III) LA P.S.O. POUR LOPTIMISATION COMBINATOIRE............................................. - 10 1) PASSAGE DE LA P.S.O. LA D.P.S.O....................................................................................................................- 10 2) ALGEBRE DE LA D.P.S.O. .....................................................................................................................................- 11 3) IMPLEMENTATION DE LALGORITHME EN C++ .....................................................................................................- 12 -
IV) APPLICATION POUR LE T.S.P....................................................................................... - 15 1) PRESENTATION DU PROBLEME DU VOYAGEUR DE COMMERCE ............................................................................- 15 2) MISE EN PLACE DES NONCS ...............................................................................................................................- 16 3) RESULTATS ...........................................................................................................................................................- 18 -
CONCLUSION............................................................................................................................ - 20 BIBLIOGRAPHIE
WEBOGRAPHIE
ANNEXES
Introduction
Loptimisation est une branche des mathmatiques qui permet de rsoudre des problmes en
dterminant le meilleur lment dun ensemble selon certains critres prdfinis. De ce fait,
loptimisation est omniprsente dans tous les domaines et volue sans cesse depuis Euclide.
En 1995, Russel Eberhart, ingnieur en lectricit et James Kennedy, socio-psychologue,
sinspirent du monde du vivant pour mettre en place une mta-heuristique : loptimisation par
essaim particulaire. Cette mthode se base sur la collaboration des individus entre eux : chaque
particule se dplace et chaque itration, la plus proche de loptimum communique aux autres sa
position pour quelles modifient leur trajectoire. Cette ide veut quun groupe dindividus peu
intelligents puisse possder une organisation globale complexe.
De part sa rcence, de nombreuses recherches sont faites sur la P.S.O., mais la plus efficace
jusqu maintenant est llargissement au cadre de loptimisation combinatoire. En effet, en 2000,
Maurice Clerc, un chercheur de France Telecom met en place la D.P.S.O (Discrete Particle Swarm
Optimization), en remplaant les points par des ordonnancements et les fonctions continues par des
fonctions dvaluation.
Nous avons donc, afin de comprendre lefficacit et les limites de cette approche, appliqu
cette mthode au Problme du Voyageur de Commerce, un problme doptimisation combinatoire,
qui, priori, est trs mauvais pour ce genre dheuristique doptimisation.
Tout dabord, nous allons vous prsenter loptimisation par essaim particulaire en continu et
en discret, puis comment nous lavons appliqu au problme du voyageur de commerce et enfin
nous discuterons des rsultats trouvs aprs avoir soumis notre algorithme une srie de tests.
-1-
I) Prsentation de la P.S.O.
1) Motivation de la P.S.O.
Pour de nombreux problmes, il nexiste pas de solution dterministe qui donne le rsultat
en un temps raisonnable, et ceci malgr la cration d'ordinateurs de plus en plus performants. Pour
pallier ce problme, on a recours des mthodes dites heuristiques, cest--dire des mthodes qui
fournissent une solution approche. Toutefois, il faut reproduire le processus sur plusieurs itrations
pour tendre vers une solution acceptable.
On retrouve parmi ces heuristiques, certains algorithmes qui possdent un principe gnrique
adaptable et qui sapplique donc plusieurs problmes doptimisation. On les appelle des mtaheuristiques. La plus courante est la descente stochastique : on part dune solution initiale, on la
compare tous ses voisins en conservant chaque fois le meilleur rsultat.
Loptimisation par essaim particulaire, qui drive de la descente stochastique, entre dans cette
famille d'algorithmes. Elle sinspire fortement des relations grgaires des oiseaux migrateurs qui
doivent parcourir des longues distances et qui doivent donc optimiser leurs dplacements en termes
dnergie dpense, comme par exemple la formation en V.
-2-
Dune vitesse qui permet la particule de se dplacer. De cette faon, au cours des
itrations, chaque particule change de position. Elle volue en fonction de son meilleur
voisin, de sa meilleure position, et de sa position prcdente. C'est cette volution qui
permet de tomber sur une particule optimale.
La valeur quelle donne la fonction objectif car chaque itration il faut une comparaison
entre la valeur du critre donne par la particule courante et la valeur optimale.
On se rend compte, en accord avec Maurice Clerc et Patrick Siarry [2], que lvolution
dune particule est finalement une combinaison de trois types de comportements : goste (suivre sa
voie suivant sa vitesse actuelle), conservateur (revenir en arrire en prenant en compte sa meilleure
performance) et panurgien (suivre aveuglement le meilleur de tous en considrant sa performance).
On voit alors que la bio-inspiration lorigine de loptimisation par essaim particulaire ressort dans
lalgorithme sous la forme dune intelligence collective : coordination du groupe, instinct individuel
et interaction locale entre les individus (grognements, phromones).
On observe donc un compromis psycho-social entre confiance en soi et influence des relations
sociales.
-3-
3) Notion de voisinage
Le voisinage dune particule est le sous-ensemble de particules de lessaim avec lequel il a
une communication directe. Ce rseau de rapports entre toutes les particules est connu comme la
sociomtrie, ou la topologie de lessaim.
Il existe deux principaux types de voisinage :
Les voisinages gographiques : les voisins sont considrs comme les particules les
plus proches. Cependant, chaque itration, les nouveaux voisins doivent tre
recalculs partir dune distance prdfinie dans lespace de recherche. Cest donc
un voisinage dynamique.
Dans cet exemple, le voisinage de la particule est compos des deux particules les plus
proches.
-4-
Les voisinages sociaux : les voisins sont dfinis linitialisation et ne sont pas
modifis ensuite. Cest le voisinage le plus utilis, pour plusieurs raisons :
Il est plus simple programmer.
Il est moins coteux en temps de calcul.
En cas de convergence, un voisinage social tend devenir un voisinage
gographique.
Pour ce faire, on dispose (virtuellement) les particules en cercle puis, pour la
particule tudie, on inclut progressivement dans ses informatrices, dabord ellemme, puis les plus proches sa droite et sa gauche, jusqu atteindre la taille
voulue.
On peut aussi choisir les informatrices au hasard.
Dans cet exemple, la particule principale est en bas et ses informatrices correspondent au
deux particules directement sa droite et sa gauche.
-5-
vient de calculer :
Xk+1 =Xk + Vk+1
O :
-6-
2) Algorithme de principe
Lalgorithme de base est trs simple :
On note g la meilleure position connue de lessaim et f(x) la fonction qui calcule le critre de x.
Pour chaque particule :
On initialise sa position
On initialise sa meilleure position p connue comme tant sa position initiale
Si f(p) < f(g), on met jour la meilleure position de lessaim
On initialise la vitesse de la particule.
Tant que lon na pas atteint litration maximum ou une certaine valeur du critre :
Pour chaque particule i :
On tire alatoire c2 et c3
On met jour la vitesse de la particule suivant la formule vue prcdemment
On met jour la position xi
Si f(xi) < f(pi),
On met jour la meilleure position de la particule
Si f(pi) < f(g), on met jour la meilleure position de lessaim
g est loptimum.
-7-
Le principe de lalgorithme peut tre plus facilement visualis grce la figure suivante :
3) Configuration de la mthode
A premire vue, il semblerait que de nombreux paramtres sont prendre en compte pour
lapplication de loptimisation par essaim particulaire. Toutefois, la plupart dentre eux peuvent tre
fixs, dautres au contraire ne peuvent tre dfinis quempiriquement.
Cest le cas, par exemple de la taille de lessaim. La quantit de particules alloues dpend
essentiellement de deux paramtres : la taille de lespace de dfinition, et le rapport entre la capacit
de calcul de la machine et le temps maximum de recherche. Le meilleur moyen daffiner ce
coefficient est donc de faire de nombreux essais afin de se doter de lexprience ncessaire. Il faut
aussi dautre part considrer linitialisation de lessaim ; elle est gnralement faite alatoirement
-8-
suivant une loi uniforme sur [0,1], cependant une rpartition homogne des particules est prfrable,
comme avec lutilisation dun gnrateur de squence de SOBOL.
Deux autres paramtres importants sont les coefficients de confiance que lon nomme
prcdemment c2 et c3. Ils permettent de pondrer les tendances des particules suivre leur instinct
de conservation ou leur panurgisme. De manire gnrale, ces variables alatoires sont values
chaque itration suivant une loi uniforme sur le domaine de dfinition.
De mme un paramtre important prendre en compte est le coefficient dinertie appel c1 dans la
formule vue auparavant. Il permet de dfinir la capacit dexploration de chaque particule en vue
damliorer la convergence de la mthode. Fixer ce paramtre revient trouver un compromis entre
une exploration globale (c1 > 1) et une exploration locale (c1 < 1). Il reprsente linstinct aventureux
de la particule.
Enfin, il reste configurer le critre darrt. En effet, la convergence vers la solution optimale
globale nest pas garantie dans tous les cas. Il est donc important de doter lalgorithme dune porte
de sortie en dfinissant un nombre maximum ditrations. Le programme sarrte alors si et
seulement si le nombre maximum ditrations est atteint ou que la valeur du critre obtenue est
acceptable pour lutilisateur.
A partir de lorganigramme et de la configuration de ces paramtres,
nous avons pu
dvelopper loptimisation par essaim particulaire en C++. Toutefois, afin de la tester sur des
problmes de combinatoire, des modifications ont d tre appliques sur notre code.
-9-
Vk
c2
(bestparticule positionparticule)
c2
(bestvoisin positionparticule)
Vk
(1)
(2)
- 10 -
2) Algbre de la D.P.S.O.
Laddition
Cette opration sapplique entre une position et une vitesse et retourne une position. Le rsultat est
obtenu grce des permutations successives des lments de X tenant compte de ceux de V. Il nest
utilis que lors de la mise jour de la position.
Laddition
La surcharge doprateur du C++, nous permet de nommer deux oprandes de manire identique.
Cependant, les paramtres dentres doivent tre diffrents.
Cette opration seffectue entre deux vitesses et le rsultat est une concatnation des deux
oprandes sous forme dune vitesse.
La multiplication
Cette opration seffectue entre un rel k et une vitesse V et le rsultat est une vitesse. Diffrents
cas sont envisager en fonction du rel.
Si k appartient lintervalle ]0 ; 1[ alors on tronque V de (k*|V|) o |V| est le nombre dlments
de V et (x) est la partie entire suprieure de x.
Si k est un entier, alors on effectue k permutations de V, on utilise pour cela laddition de vitesse.
Si k > 1 alors on spare, partie entire et dcimale do k = n + x o n et x correspondent
respectivement aux parties entires et dcimales de k. On se ramne alors pour chaque partie aux
cas prcdents.
Si k < 0, on prend sa valeur absolue.
La soustraction - :
La soustraction seffectue entre deux positions et retourne la vitesse qui permet de passer de la
premire position la seconde.
Afin de mieux comprendre le fonctionnement de chaque oprande, prenons V une vitesse, par
exemple V = {(1, 2) (5, 4)}, une position X = {1 2 4 3 5} et k=0.5, un scalaire.
Lopration X
obtient X = {2 1 5 3 4}.
Lopration V
Lopration k
Soit X1 = {1 2 3 4 5} et X2 = {2 4 5 3 1}
Lopration V = X1-X2 retourne la vitesse V = {(1, 2) (1, 4) (3, 5) (1, 3)}.
On vrifie que X2 = X1
V.
Modlisation de la situation :
- 12 -
Lecture : le but de cette classe est daccder un fichier dont le nom, qui est une chane de
caractres, est attribut de la classe. Cela permet de rcuprer le nombre de villes et remplir
ensuite une matrice qui contient les distances entre les villes.
Cette classe est lnonc du problme. Elle permet de fournir le nombre de villes, ainsi que la
matrice de cot qui correspond lensemble des distances entre chaque ville. Elle rcupre, ellemme ces informations en lisant le fichier dnonc.
Cette classe est la reprsentation gnrique des particules. Son nom vient du fait que pour le
T.S.P., une particule correspond un tour c'est--dire un cycle complet du parcours. Elle permet
de reprsenter les points qui se dplacent dans le domaine dtude. Elle contient la fonction qui
permet de calculer le critre en fonction de la position de la particule. Elle est associe une
vitesse qui lui permet de calculer sa nouvelle position.
Essaim : cest la classe principale, elle est constitue de particules, gBest qui est la meilleure
particule de lessaim et la valeur du critre pour gBest.
La classe Essaim, qui est aussi une classe gnrique, regroupe lensemble des particules. Elles
sont stockes dans un vecteur de la S.T.L., vector <Tour*>. Cette classe dispose de lensemble
des oprations dfinies pour loptimisation par essaim particulaire discrte, car cest elle qui
permet de faire voluer les particules dans le domaine de dfinition. Pour cela, elle dispose, de
plus, du meilleur voisin et la valeur du critre correspondant.
Une forme de Coplien est ncessaire pour les deux classes gnriques afin dviter au maximum
les fuites de mmoire. En effet, ce programme alloue un espace mmoire important et lutilisation
de pointeurs peut tre risque. Toutefois, en dfinissant correctement les destructeurs, il est possible
de sassurer de la bonne tenue du code.
- 13 -
On observe donc un change dinformation entre les classes Essaim et Tour. La premire
fournit la particule et la deuxime en dduit la position et sen sert pour calculer le critre. Elle
renvoie ce critre Essaim qui la compare au meilleur critre et ritre lopration avec la particule
qui suit dans le voisinage.
- 14 -
- 15 -
Cest le format le plus couramment utilis dans les tudes, comme par exemple dans celle de
Maurice Clerc [1]. Toutefois, ds le dbut de nos recherches, nous avons souhait mettre en place
un format de fichier qui se rapprochait de ceux dj vus en cours, savoir :
1re ligne : Nombre de villes
Lignes suivantes : Matrice de cot
On utilise des matrices symtriques, cest--dire que pour deux villes x et y, d(x,y) = d(y,x) o
d(.,.) est la distance entre deux villes.
- 16 -
Bien sr, un rapide programme nous permettrait de passer dun format lautre.
Afin de comparer les rsultats obtenus avec ceux attendus, nous avons cr des problmes
de manire empirique. En effet, en partant du point de vue des graphes, nous avons produit un cycle
et donc un problme avec une unique solution. Tous les poids de ce cycle ont t mis un minimum
en gnral 1, puis nous avons rempli les autres lments de la matrice par des valeurs suprieures
ce minimum.
- 17 -
3) Rsultats
Nous avons effectu, pour chaque matrice, 30 rplications, avec un nombre de particules
gal au nombre de villes et 10000 itrations.
Problme
Critre
Valeur
Valeur
Moyenne
Ecart-type
attendu
minimal
maximal
matrice4
24
24
24
24
matrice9
matrice10
10
10
13
11,63333
1,3256965
Il est intressant de voir que 10 est la taille limite partir de laquelle des erreurs
commencent apparatre.
De plus, on se rend compte que litration ncessaire pour trouver loptimum est totalement
alatoire, comme le montre ce graphe rcupr sur la matrice10.
10000
9000
8000
Itration
7000
Itration
6000
5000
4000
3000
2000
1000
0
1
11
13
15
17
19
21
23
25
27
29
Rplication
On peut aussi voir, en suivant le mouvement dune particule, le principe des mtaheuristiques. En effet, lors de la recherche de loptimum, il est parfois ncessaire de sen loigner
afin de pouvoir mieux sen rapprocher litration suivante.
- 18 -
80
70
60
Critre
50
40
30
20
10
0
1500
1550
1600
1650
1700
1750
1800
1850
1900
1950
Itration
On a donc un algorithme qui donne des rsultats vraisemblables, autant sur le plan
thorique, lorsque lobservation du mouvement dune particule montre une entit partage entre son
propre instinct et la volont du groupe, que sur le plan pratique avec des valeurs de critre
approchant loptimum, en particulier lorsque le nombre de ville est rduit.
- 19 -
2000
Conclusion
Loptimisation par essaim particulaire est une nouvelle mta-heuristique trs efficace car,
partir de peu de modifications, elle permet la rsolution dun large panel de problmes. De plus,
bien que dfinie la base pour des problmes doptimisation continue, on saperoit quelle fournit
de trs bons rsultats pour des applications doptimisation discrte. En particulier pour le Problme
du Voyageur de Commerce, qui est pourtant, de manire gnrale, mal gr par les mtaheuristiques.
Notre premire tape de documentation, nous a permis de comprendre le principe
psychologique et social qui prdomine dans cette mthode. Puis, partir des informations, nous
avons russi produire notre propre optimisation par essaim particulaire puis lappliquer au T.S.P.
Enfin, nous avons analys les diffrents rsultats afin de les comparer aux rsultats prvus.
A partir de notre programme, nous aurions aim pouvoir produire une interface graphique
afin de faciliter laccs lutilisateur, mais aussi de manire pouvoir visualiser lemplacement des
villes et les flux de circulation possibles.
- 20 -
Bibliographie
1. [CLERC 2003] Discrete Particle Swarm Optimization illustrated by the Traveling Salesman
Probleme, 2003
2. [CLERC et SIARRY 2003] Une nouvelle mtaheuristique pour loptimisation difficile : la
mthode des essaims particulaires, 2003
3. [EUDES et RIOLAND 2007] Optimisation par essaim particulaire pour un problme
dordonnancement et daffectation de ressources, 2007
4. [GOURGAND et KEMMOE 2009] Particle Swarm Optimization : A study of particle
displacement for solving continuous and combinatorial optimization problems, 2009
Webographie
5. BOUZID Allal El Moubarek, Optimisation par la mthode des essaims particulaires dune
fonction trigonomtrique, http://www.scribd.com/doc/33669521/essaim-particulaire-PSO, 20082009
Annexes
A. 1 : matrice4
A. 2 : matrice9
A. 3 : matrice10