Vous êtes sur la page 1sur 28

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

Loptimisation par essaim


particulaire pour des
problmes dordonnancement

Prsent par : Maxime BOMBRUN


Abdoulaye SENE

Responsable ISIMA : Michel GOURGAND 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

Loptimisation par essaim


particulaire pour des
problmes dordonnancement

Prsent par : Maxime BOMBRUN


Abdoulaye SENE

Responsable ISIMA : Michel GOURGAND 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 mta-
heuristique, 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
Table des Matires
INTRODUCTION......................................................................................................................... - 1 -
I) PRESENTATION DE LA P.S.O. ............................................................................................ - 2 -
1) MOTIVATION DE LA P.S.O. .....................................................................................................................................- 2 -
2) LES LMENTS DE LA P.S.O....................................................................................................................................- 3 -
3) NOTION DE VOISINAGE ...........................................................................................................................................- 4 -
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

Table des Figures

FIGURE 1 : VOLEE D'ANSER EN FORMATION EN V ................................................................................- 2 -


FIGURE 2 : UN VOISINAGE GEOGRAPHIQUE [3] ...................................................................................- 4 -
FIGURE 3 : UN VOISINAGE EN CERCLE [3]...........................................................................................- 5 -
FIGURE 4 : COMPROMIS ENTRE DEUX DEPLACEMENTS POSSIBLES ........................................................- 7 -
FIGURE 5 : ORGANIGRAMME DE LA METHODE DES ESSAIMS PARTICULAIRES [5] ...................................- 8 -
FIGURE 6 : DIAGRAMME UML DE LA SITUATION ...............................................................................- 12 -
FIGURE 7 : COUPLAGE SYSTEME/MODELE .........................................................................................- 14 -
FIGURE 8 : APPLICATION DU T.S.P. POUR LALLEMAGNE..................................................................- 15 -
FIGURE 9 : POSITION SELON COORDONNEES .....................................................................................- 16 -
FIGURE 10 : PASSAGE GRAPHE/MATRICE ...........................................................................................- 17 -
FIGURE 11 : CREATION DUNE MATRICE DEPUIS UN GRAPHE .............................................................- 17 -
FIGURE 12 : ITERATION DE L'OPTIMUM A CHAQUE REPLICATION ........................................................- 18 -
FIGURE 13 : MOUVEMENT DE LA PARTICULE 5 SUR LA MATRICE10.....................................................- 19 -

A. 1 : MATRICE4 ......................................................................................................................................I
A. 2 : MATRICE9 ......................................................................................................................................I
A. 3 : MATRICE10 ....................................................................................................................................I
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 mta-
heuristiques. 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.

Figure 1 : Vole d'Anser en formation en V

-2-
2) Les lments de la P.S.O.

Pour appliquer la PSO il faut dfinir un espace de recherche constitu de particules et une
fonction objectif optimiser. Le principe de lalgorithme est de dplacer ces particules afin quelles
trouvent loptimum.
Chacune de ces particules est dote :
Dune position, c'est--dire ses coordonnes dans lensemble de dfinition.
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.
Dun voisinage, c'est--dire un ensemble de particules qui interagissent directement sur la
particule, en particulier celle qui a le meilleur critre.
A tout instant, chaque particule connait :
Sa meilleure position visite. On retient essentiellement la valeur du critre calcule ainsi
que ses coordonnes.
La position du meilleur voisin de lessaim qui correspond l'ordonnancement optimal.
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.

Figure 2 : Un voisinage gographique [3]

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 elle-
mme, puis les plus proches sa droite et sa gauche, jusqu atteindre la taille
voulue.
On peut aussi choisir les informatrices au hasard.

Figure 3 : Un voisinage en cercle [3]

Dans cet exemple, la particule principale est en bas et ses informatrices correspondent au
deux particules directement sa droite et sa gauche.

-5-
II) La P.S.O. pour loptimisation continue

1) Principe fondamental

Nous allons donc nous intresser cette mta-heuristique dans le cadre o elle a, avant tout,
t dfinie savoir loptimisation de fonctions continues, telle quelle est dfinie dans les travaux
de Michel Gourgand et Sylverin Kemmo Tchomt [4].

Lalgorithme de base de la P.S.O. travaille sur une population appele essaim de solutions
possibles, elles-mmes appeles particules. Ces particules sont places alatoirement dans lespace
de recherche de la fonction objectif.
A chaque itration, les particules se dplacent en prenant en compte leur meilleure position
(dplacement goste) mais aussi la meilleure position de son voisinage (dplacement panurgien).
Dans les faits, on calcule la nouvelle vitesse partir de la formule suivante :

Vk+1 = c1*Vk + c2 *(bestparticule - positionparticule ) + c3 *( bestvoisin - positionparticule )

O : Vk+1 et Vk sont les vitesses de la particule aux itrations k et k+1.


bestparticule est la meilleure position de la particule
bestvoisin est la meilleure position de son voisinage litration k
positionparticule est la position de la particule litration k
c1, c2, c3 sont des coefficients fixs, c2 est gnr alatoirement chaque itration et, en
gnral, c3 = c2

On peut ensuite dterminer la position suivante de la particule grce la vitesse que lon
vient de calculer :
Xk+1 =Xk + Vk+1

O : Xk est la position de la particule litration k


On gnre X0 et V0 au dbut de notre algorithme.

-6-
Figure 4 : Compromis entre deux dplacements possibles

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 :

Figure 5 : Organigramme de la mthode des essaims particulaires [5]

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-
III) La P.S.O. pour loptimisation combinatoire

1) Passage de la P.S.O. la D.P.S.O.

Maurice Clerc explique dans sa prsentation de la D.P.S.O. [1] que lO.E.P. discrte nest
pas aussi efficace que certains algorithmes spcifiques, mais que dun autre ct, elle est trs
facilement adaptable nimporte quel autre problme de combinatoire pour lequel on ne disposerait
pas dalgorithme dominant.
Le principal problme du passage du continu au discret rside dans la notion de position et
de vitesse. Une position dans lensemble de recherche correspond un ordonnancement en
optimisation combinatoire, par exemple une suite dactivits, ou, dans le cadre du Problme de
Voyageur de Commerce, dun cycle de taille N, o N est le nombre de villes. Les vitesses sont, ds
lors, des vecteurs et les changements de vitesse sont vus comme des ensembles de permutations.
Lautre notion, qui fait office de corollaire, est celle de la fonction objectif. En effet, la
position ntant plus un point mais un ordonnancement, il faut donc calculer le critre suivant une
nouvelle forme et se poser la question de lexistence du critre. Par exemple, pour le T.S.P., le
calcul du critre se fait suivant une somme de distances entre chaque point de lordonnancement.
Pour ce qui est de lexistence, il suffit que la fonction objectif ait un nombre fini de valeurs et que le
minimum global corresponde effectivement la meilleure solution.

Ces modifications interviennent dans les quations qui rgissent lvolution des particules :

Vk+1 = c1 Vk c2 (bestparticule positionparticule) c2 (bestvoisin positionparticule) (1)


Xk+1 = Xk Vk (2)

(1) Correspond la faon dont la vitesse est modifie


(2) Correspond lvolution de la particule en fonction de sa vitesse
Ces quations sont appliquer chaque itration et chaque particule.

Les Xk, bestparticule, positionparticule et bestvoisin sont maintenant des ordonnancements et les oprations
algbriques nont, ici, pas leur sens habituel et doivent donc tre redfinies.

- 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 V retourne une position obtenue. On a dabord X = {2 1 4 3 5} et aprs, on
obtient X = {2 1 5 3 4}.
Lopration V V retourne la vitesse V = {(1, 2) (5, 4) (1, 2) (5, 4)}.
Lopration k V retourne la vitesse V = {(1, 2)}.

- 11 -
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.

3) Implmentation de lalgorithme en C++

Choix du langage :

Le choix du C++ sest vite impos, il est justifi par la facilit dutilisation quoffre la Standard
Library Language (S.T.L.) et par le fait que nous souhaitions, travers ce projet, amliorer notre
connaissance du langage. En effet, la S.T.L. contient un ensemble de classes conteneurs telles que
les vecteurs (vector), qui sont trs courants dans notre tude : tout ce que nous avons appel
ordonnancement peut ainsi tre mis sous la forme de vecteur dentier (soit lensemble des
diffrentes positions et vitesses mises en uvre). De plus, lessaim est lui-mme un vecteur qui
contient des pointeurs sur ces vecteurs dentiers. Enfin, la S.T.L. dispose dalgorithmes gnriques
trs performants dinsertion/suppression et daffichage de valeurs grce aux itrateurs.

Modlisation de la situation :

Figure 6 : Diagramme UML 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, elle-
mme ces informations en lisant le fichier dnonc.

Tour : cest la classe la plus prcise, ces attributs sont :


 ordonnancement : qui correspond un tour (une position donc)
 velocity : qui est la vitesse de la particule
 pBest : qui est la meilleure position prcdente
 mat_cout : qui correspond la matrice de cot c'est--dire les distances entre les
villes.
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.

Figure 7 : Couplage systme/modle

- 14 -
IV) Application pour le T.S.P.

1) Prsentation du Problme du Voyageur de Commerce

Le Problme du Voyageur de Commerce, ou plus couramment appel T.S.P. pour Travelling


Salesman Problem, est un problme doptimisation NP-Complet (i.e. il est impossible de trouver
une solution rapidement, mais rapide de vrifier la qualit dune solution). Lnonc du problme
est : soit un ensemble de villes spares par des distances donnes, trouver un chemin de longueur
totale minimale qui passe exactement une fois par chaque ville et revienne au point de dpart . Ce
problme, qui parat simple, ne peut, en fait, pas tre rsolu dans un temps raisonnable pour des
grandes instances, on doit donc utiliser des mthodes qui permettent dobtenir une solution
approche. Par exemple, pour 69 villes, le nombre de chemin possible est un nombre 100 chiffres.
Le T.S.P. prsente des applications varies et nombreuses, il apparat souvent comme un
sous-problme dun problme plus vaste. Il est, par exemple, utilis en gntique o la notion de
distance entre deux villes correspond un degr de ressemblance entre deux fragments dA.D.N..
Dans notre tude, nous avons dcid dutiliser le Problme du Voyageur de Commerce
symtrique, ce qui implique que pour 2 villes, i et j, la distance entre i et j est la mme que la
distance entre j et i.

Figure 8 : Application du T.S.P. pour lAllemagne

- 15 -
2) Mise en place des noncs

Divers exemples de TSP sont prsents sur le site de la TSPlib, les fichiers sont dans le
format .TSP cest--dire que les villes sont reprsentes selon leurs coordonnes (abscisse,
ordonne).

Figure 9 : Position selon coordonnes

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 -
On obtient donc le rsultat suivant :

Figure 10 : Passage graphe/matrice

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.

Figure 11 : Cration dune matrice depuis un graphe

Nous appellerons ces matrices : matriceNBVILLE (voir annexe).

- 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 0
matrice9 9 9 9 9 0
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
7000
6000 Itration
Itration

5000
4000
3000
2000
1000
0
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
Rplication

Figure 12 : Itration de l'optimum chaque rplication

On peut aussi voir, en suivant le mouvement dune particule, le principe des mta-
heuristiques. 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

50
Critre

40

30

20

10

0
1500 1550 1600 1650 1700 1750 1800 1850 1900 1950 2000

Itration

Figure 13 : Mouvement de la particule 5 sur la matrice10

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 -
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 mta-
heuristiques.
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, 2008-
2009
Annexes

A. 1 : matrice4

A. 2 : matrice9

A. 3 : matrice10

Vous aimerez peut-être aussi