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.