28
Institut Supérieur d’Informatique de Modélisation et de leurs Applications Complexe des Cezeaux BP 10 125 63 173 AUBIERE cedex. Rapport d’ingénieur Projet de 2 ème année Filière 4 : Calculs et modélisations scientifiques L’optimisation par essaim particulaire pour des problèmes d’ordonnancement Présenté par : Maxime BOMBRUN Abdoulaye SENE Responsable ISIMA : Michel GOURGAND 24/03/2011

L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

Embed Size (px)

Citation preview

Page 1: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

Institut Supérieur d’Informatique de Modélisation et de leurs Applications Complexe des Cezeaux

BP 10 125

63 173 AUBIERE cedex.

Rapport d’ingénieur Projet de 2ème année

Filière 4 : Calculs et modélisations scientifiques

L’optimisation par essaim

particulaire pour des

problèmes d’ordonnancement

Présenté par : Maxime BOMBRUN

Abdoulaye SENE

Responsable ISIMA : Michel GOURGAND 24/03/2011

Page 2: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

Institut Supérieur d’Informatique de Modélisation et de leurs Applications Complexe des Cezeaux

BP 10 125

63 173 AUBIERE cedex.

Rapport d’ingénieur Projet de 2ème année

Filière 4 : Calculs et modélisations scientifiques

L’optimisation par essaim

particulaire pour des

problèmes d’ordonnancement

Présenté par : Maxime BOMBRUN

Abdoulaye SENE

Responsable ISIMA : Michel GOURGAND 24/03/2011

Page 3: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

Remerciements Nous remercions Monsieur Michel Gourgand pour son soutien et son aide apportée tout au

long de ce projet.

Page 4: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

Résumé

Notre projet de deuxième année d’école d’ingénieur est basé sur l’étude d’une méta-

heuristique, l’optimisation par essaim particulaire (O.E.P.). Cette méthode permet, à l’instar des

abeilles, de faire converger tous les résultats vers un même point, l’optimum de la fonction ou du

problème posé. Nous avons, dans un premier temps, implémenté cet outil dans le cadre de

l’optimisation continue, puis nous l’avons adapté à la combinatoire afin de le tester sur le

problème du voyageur de commerce ou T.S.P. (Travelling Salesman Problem). Ensuite, nous avons

comparé, puis analysé nos résultats via des batteries de tests.

Mots-clés : 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 problem’s 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

Page 5: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

Table des Matières

INTRODUCTION......................................................................................................................... - 1 -

I) PRESENTATION DE LA P.S.O. ............................................................................................ - 2 -

1) MOTIVATION DE LA P.S.O. .....................................................................................................................................- 2 - 2) LES ÉLÉMENTS DE LA P.S.O....................................................................................................................................- 3 - 3) NOTION DE VOISINAGE ...........................................................................................................................................- 4 -

II) LA P.S.O. POUR L’OPTIMISATION CONTINUE ........................................................... - 6 -

1) PRINCIPE FONDAMENTAL........................................................................................................................................- 6 - 2) ALGORITHME DE PRINCIPE......................................................................................................................................- 7 - 3) CONFIGURATION DE LA METHODE ..........................................................................................................................- 8 -

III) LA P.S.O. POUR L’OPTIMISATION 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 L’ALGORITHME 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 ÉNONCÉS...............................................................................................................................- 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 L’ALLEMAGNE..................................................................- 15 - FIGURE 9 : POSITION SELON COORDONNEES .....................................................................................- 16 - FIGURE 10 : PASSAGE GRAPHE/MATRICE...........................................................................................- 17 - FIGURE 11 : CREATION D’UNE 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

Page 6: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 1 -

Introduction

L’optimisation est une branche des mathématiques qui permet de résoudre des problèmes en

déterminant le meilleur élément d’un ensemble selon certains critères prédéfinis. De ce fait,

l’optimisation est omniprésente dans tous les domaines et évolue sans cesse depuis Euclide.

En 1995, Russel Eberhart, ingénieur en électricité et James Kennedy, socio-psychologue,

s’inspirent du monde du vivant pour mettre en place une méta-heuristique : l’optimisation par

essaim particulaire. Cette méthode se base sur la collaboration des individus entre eux : chaque

particule se déplace et à chaque itération, la plus proche de l’optimum communique aux autres sa

position pour qu’elles modifient leur trajectoire. Cette idée veut qu’un groupe d’individus peu

intelligents puisse posséder une organisation globale complexe.

De part sa récence, de nombreuses recherches sont faites sur la P.S.O., mais la plus efficace

jusqu’à maintenant est l’élargissement au cadre de l’optimisation 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 remplaçant les points par des ordonnancements et les fonctions continues par des

fonctions d’évaluation.

Nous avons donc, afin de comprendre l’efficacité et les limites de cette approche, appliqué

cette méthode au Problème du Voyageur de Commerce, un problème d’optimisation combinatoire,

qui, à priori, est très mauvais pour ce genre d’heuristique d’optimisation.

Tout d’abord, nous allons vous présenter l’optimisation par essaim particulaire en continu et

en discret, puis comment nous l’avons appliqué au problème du voyageur de commerce et enfin

nous discuterons des résultats trouvés après avoir soumis notre algorithme à une série de tests.

Page 7: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 2 -

I) Présentation de la P.S.O.

1) Motivation de la P.S.O.

Pour de nombreux problèmes, il n’existe pas de solution déterministe qui donne le résultat

en un temps raisonnable, et ceci malgré la création d'ordinateurs de plus en plus performants. Pour

pallier à ce problème, on a recours à des méthodes dites heuristiques, c’est-à-dire des méthodes qui

fournissent une solution approchée. Toutefois, il faut reproduire le processus sur plusieurs itérations

pour tendre vers une solution acceptable.

On retrouve parmi ces heuristiques, certains algorithmes qui possèdent un principe générique

adaptable et qui s’applique donc à plusieurs problèmes d’optimisation. On les appelle des méta-

heuristiques. La plus courante est la descente stochastique : on part d’une solution initiale, on la

compare à tous ses voisins en conservant à chaque fois le meilleur résultat.

L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette

famille d'algorithmes. Elle s’inspire fortement des relations grégaires des oiseaux migrateurs qui

doivent parcourir des longues distances et qui doivent donc optimiser leurs déplacements en termes

d’énergie dépensée, comme par exemple la formation en V.

Figure 1 : Volée d'Anser en formation en V

Page 8: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 3 -

2) Les éléments de la P.S.O.

Pour appliquer la PSO il faut définir un espace de recherche constitué de particules et une

fonction objectif à optimiser. Le principe de l’algorithme est de déplacer ces particules afin qu’elles

trouvent l’optimum.

Chacune de ces particules est dotée :

• D’une position, c'est-à-dire ses coordonnées dans l’ensemble de définition.

• D’une vitesse qui permet à la particule de se déplacer. De cette façon, au cours des

itérations, chaque particule change de position. Elle évolue en fonction de son meilleur

voisin, de sa meilleure position, et de sa position précédente. C'est cette évolution qui

permet de tomber sur une particule optimale.

• D’un voisinage, c'est-à-dire un ensemble de particules qui interagissent directement sur la

particule, en particulier celle qui a le meilleur critère.

A tout instant, chaque particule connait :

• Sa meilleure position visitée. On retient essentiellement la valeur du critère calculée ainsi

que ses coordonnées.

• La position du meilleur voisin de l’essaim qui correspond à l'ordonnancement optimal.

• La valeur qu’elle donne à la fonction objectif car à chaque itération il faut une comparaison

entre la valeur du critère donnée par la particule courante et la valeur optimale.

On se rend compte, en accord avec Maurice Clerc et Patrick Siarry [2], que l’évolution

d’une particule est finalement une combinaison de trois types de comportements : égoïste (suivre sa

voie suivant sa vitesse actuelle), conservateur (revenir en arrière en prenant en compte sa meilleure

performance) et panurgien (suivre aveuglement le meilleur de tous en considérant sa performance).

On voit alors que la bio-inspiration à l’origine de l’optimisation par essaim particulaire ressort dans

l’algorithme sous la forme d’une intelligence collective : coordination du groupe, instinct individuel

et interaction locale entre les individus (grognements, phéromones…).

On observe donc un compromis psycho-social entre confiance en soi et influence des relations

sociales.

Page 9: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 4 -

3) Notion de voisinage

Le voisinage d’une particule est le sous-ensemble de particules de l’essaim avec lequel il a

une communication directe. Ce réseau de rapports entre toutes les particules est connu comme la

sociométrie, ou la topologie de l’essaim.

Il existe deux principaux types de voisinage :

• Les voisinages géographiques : les voisins sont considérés comme les particules les

plus proches. Cependant, à chaque itération, les nouveaux voisins doivent être

recalculés à partir d’une distance prédéfinie dans l’espace de recherche. C’est donc

un voisinage dynamique.

Figure 2 : Un voisinage géographique [3]

Dans cet exemple, le voisinage de la particule est composé des deux particules les plus

proches.

Page 10: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 5 -

• Les voisinages sociaux : les voisins sont définis à l’initialisation et ne sont pas

modifiés ensuite. C’est le voisinage le plus utilisé, pour plusieurs raisons :

� Il est plus simple à programmer.

� Il est moins coûteux en temps de calcul.

� En cas de convergence, un voisinage social tend à devenir un voisinage

géographique.

Pour ce faire, on dispose (virtuellement) les particules en cercle puis, pour la

particule étudiée, on inclut progressivement dans ses informatrices, d’abord elle-

même, 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.

Page 11: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 6 -

II) La P.S.O. pour l’optimisation continue

1) Principe fondamental

Nous allons donc nous intéresser à cette méta-heuristique dans le cadre où elle a, avant tout,

été définie à savoir l’optimisation de fonctions continues, telle qu’elle est définie dans les travaux

de Michel Gourgand et Sylverin Kemmoé Tchomté [4].

L’algorithme de base de la P.S.O. travaille sur une population appelée essaim de solutions

possibles, elles-mêmes appelées particules. Ces particules sont placées aléatoirement dans l’espace

de recherche de la fonction objectif.

A chaque itération, les particules se déplacent en prenant en compte leur meilleure position

(déplacement égoïste) mais aussi la meilleure position de son voisinage (déplacement 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 itérations k et k+1.

bestparticule est la meilleure position de la particule

bestvoisin est la meilleure position de son voisinage à l’itération k

positionparticule est la position de la particule à l’itération k

c1, c2, c3 sont des coefficients fixés, c2 est généré aléatoirement à chaque itération et, en

général, c3 = c2

On peut ensuite déterminer la position suivante de la particule grâce à la vitesse que l’on

vient de calculer :

Xk+1 =Xk + Vk+1

Où : Xk est la position de la particule à l’itération k

On génère X0 et V0 au début de notre algorithme.

Page 12: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 7 -

Figure 4 : Compromis entre deux déplacements possibles

2) Algorithme de principe

L’algorithme de base est très simple :

On note g la meilleure position connue de l’essaim et f(x) la fonction qui calcule le critère 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 l’essaim

On initialise la vitesse de la particule.

Tant que l’on n’a pas atteint l’itération maximum ou une certaine valeur du critère :

Pour chaque particule i :

On tire aléatoire c2 et c3

On met à jour la vitesse de la particule suivant la formule vue précédemment

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 l’essaim

g est l’optimum.

Page 13: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 8 -

Le principe de l’algorithme peut être plus facilement visualisé grâce à la figure suivante :

Figure 5 : Organigramme de la méthode des essaims particulaires [5]

3) Configuration de la méthode

A première vue, il semblerait que de nombreux paramètres sont à prendre en compte pour

l’application de l’optimisation par essaim particulaire. Toutefois, la plupart d’entre eux peuvent être

fixés, d’autres au contraire ne peuvent être définis qu’empiriquement.

C’est le cas, par exemple de la taille de l’essaim. La quantité de particules allouées dépend

essentiellement de deux paramètres : la taille de l’espace de définition, et le rapport entre la capacité

de calcul de la machine et le temps maximum de recherche. Le meilleur moyen d’affiner ce

coefficient est donc de faire de nombreux essais afin de se doter de l’expérience nécessaire. Il faut

aussi d’autre part considérer l’initialisation de l’essaim ; elle est généralement faite aléatoirement

Page 14: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 9 -

suivant une loi uniforme sur [0,1], cependant une répartition homogène des particules est préférable,

comme avec l’utilisation d’un générateur de séquence de SOBOL.

Deux autres paramètres importants sont les coefficients de confiance que l’on nomme

précédemment c2 et c3. Ils permettent de pondérer les tendances des particules à suivre leur instinct

de conservation ou leur panurgisme. De manière générale, ces variables aléatoires sont évaluées à

chaque itération suivant une loi uniforme sur le domaine de définition.

De même un paramètre important à prendre en compte est le coefficient d’inertie appelé c1 dans la

formule vue auparavant. Il permet de définir la capacité d’exploration de chaque particule en vue

d’améliorer la convergence de la méthode. Fixer ce paramètre revient à trouver un compromis entre

une exploration globale (c1 > 1) et une exploration locale (c1 < 1). Il représente l’instinct aventureux

de la particule.

Enfin, il reste à configurer le critère d’arrêt. En effet, la convergence vers la solution optimale

globale n’est pas garantie dans tous les cas. Il est donc important de doter l’algorithme d’une porte

de sortie en définissant un nombre maximum d’itérations. Le programme s’arrête alors si et

seulement si le nombre maximum d’itérations est atteint ou que la valeur du critère obtenue est

acceptable pour l’utilisateur.

A partir de l’organigramme et de la configuration de ces paramètres, nous avons pu

développer l’optimisation par essaim particulaire en C++. Toutefois, afin de la tester sur des

problèmes de combinatoire, des modifications ont dû être appliquées sur notre code.

Page 15: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 10 -

III) La P.S.O. pour l’optimisation combinatoire

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

Maurice Clerc explique dans sa présentation de la D.P.S.O. [1] que l’O.E.P. discrète n’est

pas aussi efficace que certains algorithmes spécifiques, mais que d’un autre côté, elle est très

facilement adaptable à n’importe quel autre problème de combinatoire pour lequel on ne disposerait

pas d’algorithme dominant.

Le principal problème du passage du continu au discret réside dans la notion de position et

de vitesse. Une position dans l’ensemble de recherche correspond à un ordonnancement en

optimisation combinatoire, par exemple une suite d’activités, ou, dans le cadre du Problème de

Voyageur de Commerce, d’un cycle de taille N, où N est le nombre de villes. Les vitesses sont, dès

lors, des vecteurs et les changements de vitesse sont vus comme des ensembles de permutations.

L’autre notion, qui fait office de corollaire, est celle de la fonction objectif. En effet, la

position n’étant plus un point mais un ordonnancement, il faut donc calculer le critère suivant une

nouvelle forme et se poser la question de l’existence du critère. Par exemple, pour le T.S.P., le

calcul du critère se fait suivant une somme de distances entre chaque point de l’ordonnancement.

Pour ce qui est de l’existence, 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 régissent l’évolution des particules :

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

Xk+1 = Xk Vk (2)

(1) Correspond à la façon dont la vitesse est modifiée

(2) Correspond à l’évolution de la particule en fonction de sa vitesse

Ces équations sont à appliquer à chaque itération et à chaque particule.

Les Xk, bestparticule, positionparticule et bestvoisin sont maintenant des ordonnancements et les opérations

algébriques n’ont, ici, pas leur sens habituel et doivent donc être redéfinies.

Page 16: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 11 -

2) Algèbre de la D.P.S.O.

L’addition :

Cette opération s’applique entre une position et une vitesse et retourne une position. Le résultat est

obtenu grâce à des permutations successives des éléments de X tenant compte de ceux de V. Il n’est

utilisé que lors de la mise à jour de la position.

L’addition :

La surcharge d’opérateur du C++, nous permet de nommer deux opérandes de manière identique.

Cependant, les paramètres d’entrées doivent être différents.

Cette opération s’effectue entre deux vitesses et le résultat est une concaténation des deux

opérandes sous forme d’une vitesse.

La multiplication :

Cette opération s’effectue entre un réel k et une vitesse V et le résultat est une vitesse. Différents

cas sont à envisager en fonction du réel.

Si k appartient à l’intervalle ]0 ; 1[ alors on tronque V de Ę(k*|V|) où |V| est le nombre d’éléments

de V et Ę(x) est la partie entière supérieure de x.

Si k est un entier, alors on effectue k permutations de V, on utilise pour cela l’addition de vitesse.

Si k > 1 alors on sépare, partie entière et décimale d’où k = n + x où n et x correspondent

respectivement aux parties entières et décimales de k. On se ramène alors pour chaque partie aux

cas précédents.

Si k < 0, on prend sa valeur absolue.

La soustraction - :

La soustraction s’effectue entre deux positions et retourne la vitesse qui permet de passer de la

première position à la seconde.

Afin de mieux comprendre le fonctionnement de chaque opérande, 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.

L’opération X V retourne une position obtenue. On a d’abord X = {2 1 4 3 5} et après, on

obtient X = {2 1 5 3 4}.

L’opération V V retourne la vitesse V = {(1, 2) (5, 4) (1, 2) (5, 4)}.

L’opération k V retourne la vitesse V = {(1, 2)}.

Page 17: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 12 -

Soit X1 = {1 2 3 4 5} et X2 = {2 4 5 3 1}

L’opération V = X1-X2 retourne la vitesse V = {(1, 2) (1, 4) (3, 5) (1, 3)}.

On vérifie que X2 = X1 V.

3) Implémentation de l’algorithme en C++

Choix du langage :

Le choix du C++ s’est vite imposé, il est justifié par la facilité d’utilisation qu’offre la Standard

Library Language (S.T.L.) et par le fait que nous souhaitions, à travers ce projet, améliorer notre

connaissance du langage. En effet, la S.T.L. contient un ensemble de classes conteneurs telles que

les vecteurs (vector), qui sont très courants dans notre étude : tout ce que nous avons appelé

ordonnancement peut ainsi être mis sous la forme de vecteur d’entier (soit l’ensemble des

différentes positions et vitesses mises en œuvre). De plus, l’essaim est lui-même un vecteur qui

contient des pointeurs sur ces vecteurs d’entiers. Enfin, la S.T.L. dispose d’algorithmes génériques

très performants d’insertion/suppression et d’affichage de valeurs grâce aux itérateurs.

Modélisation de la situation :

Figure 6 : Diagramme UML de la situation

Page 18: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 13 -

• Lecture : le but de cette classe est d’accéder à un fichier dont le nom, qui est une chaîne de

caractères, est attribut de la classe. Cela permet de récupérer le nombre de villes et remplir

ensuite une matrice qui contient les distances entre les villes.

Cette classe est l’énoncé du problème. Elle permet de fournir le nombre de villes, ainsi que la

matrice de coût qui correspond à l’ensemble des distances entre chaque ville. Elle récupère, elle-

même ces informations en lisant le fichier d’énoncé.

• Tour : c’est la classe la plus précise, 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 précédente

� mat_cout : qui correspond à la matrice de coût c'est-à-dire les distances entre les

villes.

Cette classe est la représentation générique 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 représenter les points qui se déplacent dans le domaine d’étude. Elle contient la fonction qui

permet de calculer le critère en fonction de la position de la particule. Elle est associée à une

vitesse qui lui permet de calculer sa nouvelle position.

• Essaim : c’est la classe principale, elle est constituée de particules, gBest qui est la meilleure

particule de l’essaim et la valeur du critère pour gBest.

La classe Essaim, qui est aussi une classe générique, regroupe l’ensemble des particules. Elles

sont stockées dans un vecteur de la S.T.L., vector <Tour*>. Cette classe dispose de l’ensemble

des opérations définies pour l’optimisation par essaim particulaire discrète, car c’est elle qui

permet de faire évoluer les particules dans le domaine de définition. Pour cela, elle dispose, de

plus, du meilleur voisin et la valeur du critère correspondant.

Une forme de Coplien est nécessaire pour les deux classes génériques afin d’éviter au maximum

les fuites de mémoire. En effet, ce programme alloue un espace mémoire important et l’utilisation

de pointeurs peut être risquée. Toutefois, en définissant correctement les destructeurs, il est possible

de s’assurer de la bonne tenue du code.

Page 19: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 14 -

On observe donc un échange d’information entre les classes Essaim et Tour. La première

fournit la particule et la deuxième en déduit la position et s’en sert pour calculer le critère. Elle

renvoie ce critère à Essaim qui la compare au meilleur critère et réitère l’opération avec la particule

qui suit dans le voisinage.

Figure 7 : Couplage système/modèle

Page 20: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 15 -

IV) Application pour le T.S.P.

1) Présentation du Problème du Voyageur de Commerce

Le Problème du Voyageur de Commerce, ou plus couramment appelé T.S.P. pour Travelling

Salesman Problem, est un problème d’optimisation NP-Complet (i.e. il est impossible de trouver

une solution rapidement, mais rapide de vérifier la qualité d’une solution). L’énoncé du problème

est : « soit un ensemble de villes séparées par des distances données, trouver un chemin de longueur

totale minimale qui passe exactement une fois par chaque ville et revienne au point de départ ». Ce

problème, qui paraît simple, ne peut, en fait, pas être résolu dans un temps raisonnable pour des

grandes instances, on doit donc utiliser des méthodes qui permettent d’obtenir une solution

approchée. Par exemple, pour 69 villes, le nombre de chemin possible est un nombre à 100 chiffres.

Le T.S.P. présente des applications variées et nombreuses, il apparaît souvent comme un

sous-problème d’un problème plus vaste. Il est, par exemple, utilisé en génétique où la notion de

distance entre deux villes correspond à un degré de ressemblance entre deux fragments d’A.D.N..

Dans notre étude, nous avons décidé d’utiliser le Problème du Voyageur de Commerce

symétrique, ce qui implique que pour 2 villes, i et j, la distance entre i et j est la même que la

distance entre j et i.

Figure 8 : Application du T.S.P. pour l’Allemagne

Page 21: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 16 -

2) Mise en place des énoncés

Divers exemples de TSP sont présents sur le site de la TSPlib, les fichiers sont dans le

format .TSP c’est-à-dire que les villes sont représentées selon leurs coordonnées (abscisse,

ordonnée).

Figure 9 : Position selon coordonnées

C’est le format le plus couramment utilisé dans les études, comme par exemple dans celle de

Maurice Clerc [1]. Toutefois, dès le début de nos recherches, nous avons souhaité mettre en place

un format de fichier qui se rapprochait de ceux déjà vus en cours, à savoir :

1ère ligne : Nombre de villes

Lignes suivantes : Matrice de coût

On utilise des matrices symétriques, c’est-à-dire que pour deux villes x et y, d(x,y) = d(y,x) où

d(.,.) est la distance entre deux villes.

Page 22: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 17 -

On obtient donc le résultat suivant :

Figure 10 : Passage graphe/matrice

Bien sûr, un rapide programme nous permettrait de passer d’un format à l’autre.

Afin de comparer les résultats obtenus avec ceux attendus, nous avons créé des problèmes

de manière empirique. En effet, en partant du point de vue des graphes, nous avons produit un cycle

et donc un problème avec une unique solution. Tous les poids de ce cycle ont été mis à un minimum

en général 1, puis nous avons rempli les autres éléments de la matrice par des valeurs supérieures à

ce minimum.

Figure 11 : Création d’une matrice depuis un graphe

Nous appellerons ces matrices : matriceNBVILLE (voir annexe).

Page 23: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 18 -

3) Résultats

Nous avons effectué, pour chaque matrice, 30 réplications, avec un nombre de particules égal au nombre de villes et 10000 itérations. Problème Critère

attendu

Valeur

minimal

Valeur

maximal

Moyenne Ecart-type

matrice4 24 24 24 24 0

matrice9 9 9 9 9 0

matrice10 10 10 13 11,63333 1,3256965

Il est intéressant de voir que 10 est la taille limite à partir de laquelle des erreurs

commencent à apparaître.

De plus, on se rend compte que l’itération nécessaire pour trouver l’optimum est totalement

aléatoire, comme le montre ce graphe récupéré sur la matrice10.

0

1000

2000

3000

4000

5000

6000

7000

8000

9000

10000

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Réplication

Itéra

tio

n Itération

Figure 12 : Itération de l'optimum à chaque réplication

On peut aussi voir, en suivant le mouvement d’une particule, le principe des méta-

heuristiques. En effet, lors de la recherche de l’optimum, il est parfois nécessaire de s’en éloigner

afin de pouvoir mieux s’en rapprocher à l’itération suivante.

Page 24: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 19 -

0

10

20

30

40

50

60

70

80

1500 1550 1600 1650 1700 1750 1800 1850 1900 1950 2000

Itération

Cri

tère

Figure 13 : Mouvement de la particule 5 sur la matrice10

On a donc un algorithme qui donne des résultats vraisemblables, autant sur le plan

théorique, lorsque l’observation du mouvement d’une particule montre une entité partagée entre son

propre instinct et la volonté du groupe, que sur le plan pratique avec des valeurs de critère

approchant l’optimum, en particulier lorsque le nombre de ville est réduit.

Page 25: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

- 20 -

Conclusion

L’optimisation par essaim particulaire est une nouvelle méta-heuristique très efficace car, à

partir de peu de modifications, elle permet la résolution d’un large panel de problèmes. De plus,

bien que définie à la base pour des problèmes d’optimisation continue, on s’aperçoit qu’elle fournit

de très bons résultats pour des applications d’optimisation discrète. En particulier pour le Problème

du Voyageur de Commerce, qui est pourtant, de manière générale, mal géré par les méta-

heuristiques.

Notre première étape de documentation, nous a permis de comprendre le principe

psychologique et social qui prédomine dans cette méthode. Puis, à partir des informations, nous

avons réussi à produire notre propre optimisation par essaim particulaire puis à l’appliquer au T.S.P.

Enfin, nous avons analysé les différents résultats afin de les comparer aux résultats prévus.

A partir de notre programme, nous aurions aimé pouvoir produire une interface graphique

afin de faciliter l’accès à l’utilisateur, mais aussi de manière à pouvoir visualiser l’emplacement des

villes et les flux de circulation possibles.

Page 26: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

Bibliographie

1. ↑ [CLERC 2003] Discrete Particle Swarm Optimization illustrated by the Traveling Salesman

Probleme, 2003

2. ↑ [CLERC et SIARRY 2003] Une nouvelle métaheuristique pour l’optimisation difficile : la

méthode des essaims particulaires, 2003

3. ↑ [EUDES et RIOLAND 2007] Optimisation par essaim particulaire pour un problème

d’ordonnancement et d’affectation 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 méthode des essaims particulaires d’une

fonction trigonométrique, http://www.scribd.com/doc/33669521/essaim-particulaire-PSO, 2008-

2009

Page 27: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes
Page 28: L’optimisation par essaim particulaire pour des … · L’optimisation par essaim particulaire, qui dérive de la descente stochastique, entre dans cette famille d'algorithmes

I

Annexes

A. 1 : matrice4

A. 2 : matrice9

A. 3 : matrice10