Un algorithme mémétique parallèle pour la

Transcription

Un algorithme mémétique parallèle pour la
Un algorithme mémétique parallèle pour la coloration de graphe
Laurent Moalic1 , Alexandre Gondran2
1
UTBM, Université Technologique de Belfort-Montbéliard, France
[email protected]
2
ÉNAC, École Nationale de l’Aviation Civile, Toulouse, France
[email protected]
Mots-clés : coloration de graphe, mémétique, TabuCol, parallélisation
1
Introduction
Parmi les approches les plus performantes pour résoudre de nombreux problèmes issus de la
RO figurent les heuristiques dites "hybrides", qui tirent simultanément le bénéfice de différentes
heuristiques élémentaires. Les algorithmes mémétiques, qui font ainsi intervenir une recherche
locale au sein d’une approche génétique, montrent de plus en plus leur efficacité.
Parmi les problèmes classiques où les approches mémétiques ont été appliquées avec succès
figure le problème NP-complet de coloration de graphes. Il s’agit d’attribuer une couleur à
chaque sommet d’un graphe de façon à ce que deux sommets connectés par une arête aient
une couleur différente, et ce en utilisant le plus petit nombre de couleurs. Le nombre minimal
de couleur nécessaire pour colorier un graphe est connu sous le nom de nombre chromatique.
L’algorithme mémétique HEAD [3] fournit parmi les meilleurs résultats actuellement connus
en matière de coloration de graphe. Il a la particularité de s’appuyer sur une population
réduite à deux individus uniquement. HEAD permet ainsi de gérer simplement et efficacement
l’équilibre entre intensité et diversité.
La plupart des ordinateurs actuels disposent de plusieurs coeurs de calcul, souvent au moins
quatre. Or HEAD tel qu’il est décrit permet de tirer bénéfice de seulement deux coeurs
simultanément (un pour chaque individu de la population). Nous proposons ici un algorithme
mémétique qui s’appuie sur les principales caractéristiques de HEAD, mais en considérant
plusieurs populations (de deux individus chacune). Ainsi tous les coeurs d’un ordinateurs sont
amenés à fonctionner en parallèle. Les mécanismes que nous avons développés pour permettre
aux populations d’interagir ont montré leur pertinence sur de nombreuses instances difficiles
du benchmark DIMACS (benchmark de référence pour le problème de coloration de graphe).
2
Un algorithme mémétique multi-population
L’algorithme HEAD est caractérisé par les éléments suivants : une population réduite à
deux individus uniquement initialisée aléatoirement ; l’absence de sélection puisqu’à chaque
génération les deux individus sont croisés deux fois pour donner naissance aux deux individus
de la génération suivante ; un opérateur de croisement GPX [1] qui privilégie les classes de
couleur les plus grandes de chaque parent ; un critère d’arrêt qui est atteint lorsque les deux
individus de la population sont identiques ; et enfin une mutation remplacée par la recherche
locale TabuCol [2]. De plus, afin de prévenir d’une convergence prématurée, un mécanisme de
réintroduction d’un "bon" individu déjà rencontré et apporté. A chaque génération sont ainsi
construits deux individus par croisement des parents, puis ils sont intensifiés par la recherche
locale. On notera que cette phase d’intensification représente la quasi-totalité du temps de
l’algorithme et peut facilement être parallélisée.
Dans l’approche que nous proposons deux mécanismes sont introduits en vue de profiter
de l’ensemble des coeurs de calcul disponibles sur un ordinateur standard. Ils ont pour but
d’accélérer la recherche d’une part, mais aussi de réintroduire de la diversité lorsque les deux
individus de la population sont identiques afin d’augmenter les chances d’aboutir à une solution
légale.
1) A chaque fois qu’une population HEAD trouve une nouvelle solution élite (dont la fitness
améliore la précédente meilleure rencontrée au cours de la recherche), cette population est
dupliquée sur toutes les paires de coeurs disponibles et remplace les autres populations. De
cette manière à partir d’un même bon point de départ plusieurs populations explore l’espace
de recherche simultanément de façon indépendante.
2) Dès lors que les deux individus d’une population sont identiques, un échange des individus
entre les populations est effectué. On notera que le fait que les populations soient relativement
proches, en ayant comme point de départ commun la dernière amélioration, permet d’apporter
de la diversité mais pas trop, qui aurait pour effet de totalement déstructurer les individus
courants.
L’algorithme s’arrête lorsque le premier des critères suivants est atteint : les individus de
toutes les populations sont identiques ; ou les populations ont convergé n fois vers le même
individus (n = 10 dans notre étude).
3
Expérimentation et résultats
L’ensemble des calculs ont été réalisés avec un processeur Intel(R) Core(TM) i5-3550 CPU
@ 3.30GHz, comprenant quatre coeurs et 16Go de RAM. On notera cependant que la taille
de la mémoire n’est pas un élément critique, la mémoire occupée n’atteignant pas 0.1% de la
mémoire totale pour des graphes de 500 noeuds et de densité 0.5.
HEAD
Parallèle
IterT C
Instance
dsjc500.5
dsjc1000.5
flat1000_76_0
k
47
48
82
81
HEAD/Parallèle
8000/8000
8000/6000
60000/60000
60000/60000
Success
2/10000
20/20
3/20
3/20
minutes
0.8
0.2
48
60
iter(106 )
24
7.6
1000
1000
Success
5/10000
20/20
20/20
20/20
minutes
0.9
0.1
84
75
iter(106 )
77
9.9
3987
2517
Le tableau ci-dessus illustre les résultats obtenus sur 3 graphes connus pour être particulièrement
difficile. Les colonnes Iter donnent le nombre d’itérations moyen nécessaires pour colorier les
graphes. Notons que lorsque HEAD trouve toujours la solution, la version parallèle trouve
également la solution mais près de deux fois plus vite (dsjc500.5 avec 48 couleurs). Et lorsque
HEAD peine à trouver une solution, l’algorithme proposé trouve l’optimum beaucoup plus
souvent (dans tous les cas pour dsjc1000.5 et flat1000_76_0).
Références
[1] Philippe Galinier and Jin-Kao Hao. Hybrid evolutionary algorithms for graph coloring.
Journal of Combinatorial Optimization, 3(4) :379–397, 1999.
[2] Alain Hertz and Dominique de Werra. Using tabu search techniques for graph coloring.
Computing, 39(4) :345–351, 1987.
[3] Laurent Moalic and Alexandre Gondran. The new memetic algorithm head for graph
coloring : An easy way for managing diversity. In Gabriela Ochoa and Francisco Chicano,
editors, Evolutionary Computation in Combinatorial Optimization, volume 9026 of Lecture
Notes in Computer Science, pages 173–183. Springer International Publishing, 2015.