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

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

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

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, ellemme 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 matrice4 matrice9 matrice10 Critre attendu 24 9 10 Valeur minimal 24 9 10 Valeur maximal 24 9 13 24 9 11,63333 0 0 1,3256965 Moyenne Ecart-type

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 Itration 6000 5000 4000 3000 2000 1000 0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 Rplication Itration

Figure 12 : Itration de l'optimum chaque 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

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