Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
1,93 MB
Nội dung
Université catholique de Louvain Institut de la Francophonie pour l’Informatique Partitionnement de Graphe Promoteur : Yves Deville Mémoire présenté en vue de l’obtention du grade de master informatique par Duong Khanh Chuong Hanoi Novembre, 2009 Remerciements Je tiens d’abord remercier tout particulièrement mon promoteur, Monsieur Deville, pour l’encadrement, l’aide et les idées qu’il m’a donné pendant toute la durée du stage Je voudrais remercier tous les membres de l’équipe BeCool (Belgian Constraint Group) pour leur accueil chaleureux, leur soutien et leurs conseils sans lesquels ce travail n’aurait pu aboutir J’adresse mes sincères remerciements tous les professeurs de l’IFI pour m’avoir enseigné et m’inspirer pendant mes études au master Finalement, j’exprime mon entière reconnaissance ma famille et mes amis pour leur soutien, leur aide et leurs encouragements Page Résumé Le problème du partitionnement de graphe a pour but de découper un graphe en différentes parties (partitions) qui satisfont certains contraintes (telle que l’équilibre des parties) et qui optimisent une certaines fonction objectif (telle que le coût de coup) Il possède de nombreuses applications comme la conception de circuits intégrés électroniques, la répartition de charge pour les machines parallèles ou la segmentation d’images Cependant, le partitionnement de graphe est un problème complexe (NP-complet), dont la solution ne peut pas être trouvée au moyen d’une méthode de résolution exacte Pour ce type de problème, la recherche locale est une approche adéquate Dans ce travail, nous avons étudié et analysé des méthodes de partitionnement classiques comme la méthode de glouton, le multi-niveaux ou les algorithmes de type Kernighan-Lin et des méthodes de recherche locale comme la recherche taboue et le recuit simulé Enfin, nous avons implémenté les méthodes présentées dans ce mémoire dans COMET, et nous avons comparé leur performance et leur efficacité avec le logiciel METIS Mots clés : partition, recherche locale, multi-niveaux, contraction, affinage Page Abstract The graph partitioning problem consists of dividing a graph into parts (partition) which satisfy some constraints (such as the balance of parts) to optimize an objective function (such as the sum cut of edges) It has many applications: design of integrated electronic circuits, load balancing for parallel machines or image segmentation However, graph partitioning is known to be NP-complete, so there is no exact solution and the local search is one of appropriate approach In our work, we have studied and analyzed classic partitioning methods such as the greedy, the multi-level or algorithms of Kernighan-Lin and methods of local search such as Tabu search and simulated annealing Finally, we have implemented those methods in COMET, and then we compared their performance and efficiency with the software METIS Key words: partition, local search, multi-level, coarsening Page Table des matières Partitionnement de Graphe 1 Définition Contraint 10 Fonction d’objectives 11 Applications 11 Etat de l’art 13 Méthodes classiques 13 2 Méthodes de métaheuristiques 17 Recherche locale et Comet 20 Recherche locale 20 Le langage Comet 22 Méthode de Multi Niveaux 25 Principale 25 Contraction 25 Partitionnement 27 4 Affinage 28 Méthode de Recherche Locale 32 Recherche Taboue 32 Recherche de Recuit Simulé 34 Expérimentation 37 Environnement d’expérimentation 37 Résultat 39 Conclusion 41 Références 42 Page Liste des figures Figure Partitionnement de Graphe avec k=4 10 Figure L'idée principale de l’algorithm de Kernighan-Lin 15 Figure Schéma de méthode Multi-niveaux 16 Figure Comparaison entre des méthodes classiques de partitionnement du graphe 17 Figure Représentation de l'espace de recherche de recherche locale 22 Figure Architecture de COMET 23 Figure Méthodes différents pour la contraction 26 Figure Exemple de l'échange de deux sommets 29 Figure Algorithme de Kernighan-Lin 30 Page Introduction Le partitionnement de graphe est une technique très connue en informatique Etant donné un graphe non-orienté G = (S, A), on partitionne l’ensemble des sommets S k sous-ensembles disjoints tels que la taille du sous-ensemble le plus grande est minimale Ce problème est utilisé pour résoudre un grand nombre de problèmes d’ingénierie: la conception de circuits intégrés électroniques, la répartition de charge pour les machines parallèles, la dynamique des fluides, le calcul matriciel, la segmentation d’images ou la classification d’objets Le partitionnement de graphe est un problème NP-complet Dans la littérature, Il existe plusieurs techniques et des logiciels qui donnent des bons résultats comme : Chaco(1), SCOTCH(2), JOSTLE(3), METIS(4), … Ce stage a pour but de concevoir, développer et analyser différentes méthodes pour le problème de partitionnement de graphe Les méthodes présentées dans cette mémoire sont les suivantes: méthode de glouton, l’algorithme de Kernighan-Lin, méthode de multi-niveaux, des métaheuristiques comme le recuit simulé et le recherche Tabou Afin de tester la qualité de ces méthodes, nous implémentons ces méthodes dans l’environnement de Comet et comparons avec le logiciel Metis(4) Cette mémoire est composée de chapitres qui se présentent comme suit: Chapitre 1: Partitionnement de graphe Introduction au problème de partitionnement de graphe : la définition, les contraintes, l’objectif et les applications Chapitre 2: Etat de l’art Présentation des techniques présentées dans la littérature Chapitre 3: Recherche locale et Comet Description de la recherche locale et du langage Comet Chapitre 4: Méthode de Multi-Niveaux Présentation détaillée de la méthode Multi-Niveaux et de son implémentation dans Comet Chapitre 5: Méthodes de Recherche Locale Description détaillée des méthodes : recherche Tabou et recuit simulé, et de leur implémentation dans Comet Page Chapitre 6: Expérimentation Expérimentation des méthodes implémentées et comparaison avec la logiciel Metis Chapitre 7: Conclusion Conclusion du mémoire et explication des perspectives dans lesquelles le travail pourrait être poursuivi Page Partitionnement de Graphe 1 Définition Partitionnement Le mot “partitionnement” correspond au mot « partitioning » en anglais, qui exprime la création d’une partition La partition est le résultat de la division en parties d’un ensemble En mathématiques, une partition d’un ensemble E est une famille de sous-ensembles de E tels qu’elles sont disjointes deux deux et la réunion dont est l’ensemble E Partitionnement de graphe Etant donné un graphe non-orienté G = (S, A), où S est l’ensemble des sommets et A est l’ensemble des arrêtes qui relient des paires de sommets Les sommets et les arrêtes peuvent être pondérés, où |s| est le poids du sommet s et |a| est le poids de l’arête a Le problème du partitionnement de graphe consiste diviser G en k partitionnement disjointes Au point de vue de mathématique, on peut partitionner les sommets ou bien les arrêtes Par contre, dans la plupart des applications, on ne s’intéresse qu’au partitionnement des sommets de graphe Soient un graphe G = (S, A) et un ensemble de k sous-ensembles de S, noté Pk = {S1, S2,…, Sk} On dit que Pk est une partition de G si : - Aucun sous-ensemble de S qui est élément de Pk n’est vide : ∀𝑖𝜖 1, … , 𝑘 , 𝑆𝑖 ≠ Les sous-ensembles de S qui sont élément de Pk sont disjoins deux deux - ∀ 𝑖, 𝑗 𝜖 1, … , 𝑘 L’union de tous les éléments de Pk est S : , 𝑖 ≠ 𝑗, 𝑆𝑖 ∩ 𝑆𝑗 = 𝑘 𝑆𝑖 = 𝑆 𝑖=1 Les éléments Si de Pk sont appelés les parties de la partition Page Le nombre k est appelé le cardinal de la partition, ou encore le nombre de parties de la partition Dans le cas k = 2, on a le problème de bissection Figure Partitionnement de Graphe avec k=4 (5) Contraint Balance de partitionnement Soient un graphe G = (S, A) et une partition Pk = {S1, S2,…, Sk} de ce graphe en k parties Le poids d’une partie Si de Pk est poids(Si ) poids(si) siSi Le poids moyen d’une partie Si de Pk est poidsMoyen ( S , k ) poids(s) sS k La balance de la partition Pk est égale la division du poids de la partie de poids maximal de Pk par le poids moyen d’une partie : ba lan ce( Pk ) max{po ids( S1 ), po ids( S ), , po ids( S k )} po idMoyen( S , k ) La contraint de balance de partitionnement précise que la balance doit être moins qu’un seuil Ainsi, une partition dont la balance de partitionnement est unitaire a des parties de poids identiques Page 10 E (s) poid (s, s' ) s 'S Si D(s) se définit comme la différence entre le coût extérieur et le coût intérieur du sommet s : D(s) E(s) I (s), s S Les valeurs D(s) sont réparties en deux ensembles D1 et D2 pour les deux parties Si l’on échange deux sommets de deux parties s1 S1 et s2 S2, les nouveaux valeurs de coût intérieur et coût extérieur E’ sont : E’(s1) = I(s1) + poids(s1, s2) E’(s2) = I(s2) + poids(s1, s2) Figure Exemple de l'échange de deux sommets Le gain de l’échange deux sommets de deux parties s1 S1 et s2 S2 est donc égale à: gain(s1, s2) = coupe(S1, S2) – coupe(S1’, S2’) = E(s1) + E(s2) – E’(s1) – E’(s2) = E(s1) + E(s2) – I(s1) – poids(s1, s2) – I(s2) – poids(s1, s2) = D(s1) + D(s2) – poids(s1, s2) Pour chaque sommet s S, la valeur D(s) est calculée Soit l’algorithme l’itération p, elle commence 𝑝 𝑝 𝑝 𝑝 par chercher deux sommets 𝑠1 S1 et 𝑠2 S2pour que la valeur gain(𝑠1 , 𝑠2 ) est maximal Et puis, ces deux sommets sont sélectinnés et verrouillés, ce qui veut dire qu’ils ne pourront plus être sélectionnés dans les itérations après Les valeurs D(s) sont recalculées pour les sommets non verrouillés Page 29 𝑝 𝑝 𝑝 𝑝 𝑝 𝑝 𝐷1′ 𝑠 = 𝐷1 𝑠 + 2𝑝𝑜𝑖𝑑𝑠 𝑠1 , 𝑠 − 2𝑝𝑜𝑖𝑑𝑠 𝑠2 , 𝑠 , 𝑠 ∈ 𝑆1 − {𝑠1 } 𝐷2′ 𝑠 = 𝐷2 𝑠 + 2𝑝𝑜𝑖𝑑𝑠 𝑠2 , 𝑠 − 2𝑝𝑜𝑖𝑑𝑠 𝑠1 , 𝑠 , 𝑠 ∈ 𝑆2 − {𝑠2 } 𝑝 𝑝 L’algorithme est itérée avec la bissection (S1 \ 𝑠1 , S2 \ 𝑠2 ) et des ensembles 𝐷1′ et 𝐷2′ Elle se termine s’il n’y a plus de sommet échanger Le gain résultant de l’échange de l’ensemble des sommets ,𝑠11 ,𝑠12 , ,𝑠1𝑖 ) et (𝑠21 ,𝑠22 , ,𝑠2𝑖 ) est calculé 𝑖 𝑔𝑎𝑖𝑛( 𝑠1𝑘 , 𝑠2𝑘 ) 𝐺 𝑖 = 𝑘=1 Si le gain obtenu est positif, alors les deux ensembles de sommets qui maximisent G sont échangés Si non, l’algorithme s’arrête Figure Algorithme de Kernighan-Lin Page 30 La complexité de l’algorithme de Kernighan-Lin est son principal défaut La création des coûts extérieurs et des coûts intérieurs a la complexité O(nombre d’arête2) Le temps de trouver les deux sommets échanger est en O(nombre d’arête2 * log (nombre d’arête))(9) Affinage de frontière de Kernighan-Lin Une approche qui améliorer l’algorithme Kernighan-Lin est présenté dans (7) Dans l’algorithme original de Kernighan-Lin, il faut ajouter les gains de tous les sommets la structure de données Car l’algorithme se termine quand elle ne peut pas réduire le coût de coup, la plupart des calculs est gaspillé Dans cette approche, on ne calcul que les gains des sommets la frontière, ce qui veut dire les sommets qui ont des arêtes reliant autre partie Autre différent dans cette approche est l’utilisation est l’échange d’un seul sommet dans chaque pas Soit l’algorithme l’itération p dans la phase de l’optimisation, dans le sous-ensemble le plus grand, on choisit le sommet v qui a le gain le plus grand entre les sommets de frontière (le gain peut être négatif) Ensuit, l’algorithme mis jour les gains des sommets adjacent u de v et v est verrouillé.Si la coût extérieur de sommet u est plus que 0, il est mis aux frontière Cette phase s’arrête s’il n’y a pas de sommets la frontière pour échange ou le gain est < dans 50 itérations continues La dernière étape est de choisir la séquence de v1, v2, , vk pour que 𝑘𝑖=1 𝑔𝑎𝑖𝑛(𝑣𝑖 ) est maximal pour échanger Si cette valeur est > 0, l’algorithme répète la phase de l’optimisation Page 31 Méthode de Recherche Locale Recherche Taboue Description La recherche taboue est une technique populaire qui permet d’améliorer les performances d’un algorithme de recherche locale en utilisant une mémoire court terme (15) Chaque fois qu’un état est utilisé pour effectuer un déplacement local, celui-ci est inséré dans la liste taboue Algorithme générique de recherche Taboue (16) Procédure RechercheTaboue(f, N, L, S, s) s1GénérationSolutionInitiale(); s* s1 ; ListTaboue {s1} ; pour k = max_Itération faire Si satisfaisable(sk) & f(s) < f(s*) faire s* sk; sk+1 S(L-NotTabu(N(sk), s, ListTaboue), s); listTaboue listTaboue & {sk+1}; retourner s* ; fin pour fin Procédure Procédure L-NotTabu(N, s, ListTaboue) retourner {n N | n ListTaboue) fin Procédure Adaptation de la recherche Taboue au partitionnement de graphe Etat initial Page 32 La solution initiale est générée par l’algorithme Greedy Graph Growing(qui est présentée la section 2.1) Voisinage Un voisinage est défini par un échange d’un sommet Un mouvement consiste sélectionner un sommet dans une partie pour échanger autre partie Liste taboue La liste taboue conserve l’itération d’échange de tout sommet Lors du prochain déplacement local, on ne considère que les sommets qui ne sont pas échangés récemment Espace de recherche L’espace de recherche est un ensemble des voisinages faisables Chaque voisinage corresponds l’échange d’un sommet s, et elle est faisable si listeTaboue(s) < itération courante –longeurTaboue La taille de partie destination a moins d’un seuil En utilisant la première condition, on évite de re-échange très souvent un sommet La deuxième condition a pour but de conserver la balance de taille entre des parties de la partition Déplacement local Parmi les voisinages faisable dans l’espace de recherche, on choisi le voisinage qui a la meilleur valeur de fonction objectif Pour déterminer le voisinage sélectionner, nous utilisons les notions de coût intérieuret de coût extérieur comme dans l’algorithm de Kernighan-Lin Si on échange un sommet s, la fonction objectif modifie un quantité qui est égale : fonction objectif = coût intérieur(s) – coût extérieur(s) Le meilleur voisinage a donc la valeur de différent entre le coût intérieur et le coût extérieur la plus grande Algorithme de recherche Taboue pour le partitionnement du graphe Procédure RechercheTaboue(G(S, A)) p0 GGGP(G(S, A)); // partition initiale p* p0 ; // partition optimale locale Initialisation de listTaboue; pour tout sommet s S calculer coûtExtérieur(s), coûtIntérieur(s) fin pour pour k = max_Itération faire pour s = nombre de sommets faire s* -∞ Page 33 Si (listTaboue*s+ < itérationCourant) & (taille de partie de destination < seuil) Si s*< (coûtIntérieur(s) – coûtExtérieur(s) s* (coûtIntérieur(s) – coûtExtérieur(s) fin pour Echange le sommet s* autre partie : pk pk-1 après l’échange de s* pour tout sommet s adjacente s’ mis jour les valeurs coûtExtérieur(s), coûtIntérieur(s) fin pour Si satisfaisable(pk) & f(pk) < f(p*) faire p* pk ; listTaboue*s’+ itérationCourant + longeurDeTaboue; retourner p* ; fin pour fin Procédure Recherche de Recuit Simulé Description Le recuit simulé est une métaheuristique qui s’inspire de la technique expérimentale du recuit utilisée en métallurgie Ce processus alterne des cycles de refroidissement lent et de réchauffage (recuit) Cette méthode accepte un mouvement local qui dégrade la valeur de la fonction objectif avec une probabilité −(𝑓 𝑛 − 𝑓 𝑠 ) ) 𝑡 exp( où f(x) : la valeur de la fonction objectif de l’état x n : un état voisin aléatoire l’état courant s t : paramètre appelé « température » qui diminue au fil des itérations Sinon, le mouvement est rejeté Le but est de parcourir une plus grande partie de l’espace de recherche Algorithme de Recuit Simulé (16) Procédure RecuitSimuléGénérale(f, N) s solutionInitiale() t1 temperatureInitiale(s) s* s pour k = max_Itération faire s RechercheLocale(f, N, L-All, S-Metropolis[tk], s); Page 34 Si f(s) < f(s*) s* s tk+1 Mis jour de Temperature(s, k) ; fin pour retourner s* ; fin Procédure Procédure S-Metropolis[T](N, s) choisir n dans N avec la probabilité 1/#N; si f(n) < f(s) retourner n ; −(𝑓 𝑛 − 𝑓 𝑠 ) ) 𝑡 sinon avec probabilité exp( retourner n ; sinon retourner s fin Procédure Adaptation au partitionnement du graphe Les adaptations de recuit simulé au partitionnement du graphe est similaire que celui-ci la recherche Taboue Etat initial La solution initiale est générée par l’algorithme Greedy Graph Growing Voisinage Un voisinage est défini par un échange d’un sommet Un mouvement consiste sélectionner un sommet dans une partie pour échanger autre partie Espace de recherche L’espace de recherche est un ensemble des voisinages faisable Chaque voisinage correspond l’échange d’un sommet s, et elle est faisable si la taille de partie destination a moins d’un seuil Cette condition a pour but de conserver la balance de taille entre des parties de la partition Déplacement local Parmi les voisinages faisable dans l’espace de recherche, on choisi un voisinage par hasard Nous utilisons les notions de coût intérieuret de coût extérieur comme dans l’algorithm de Kernighan-Lin Si on échange un sommet s, la fonction objectif modifie un quantité qui est égale : fonction objectif = coût intérieur(s) – coût extérieur(s) Page 35 Le voisinage est choisi et on effectue le déplacement si le fonction objectif est positive Sinon, on peut effectue avec la probabilité Boltzmann probabilité_Bolzmann = exp( −(∆ 𝑓𝑜𝑛𝑐𝑡𝑖𝑜𝑛𝑑 ′𝑜𝑏𝑗𝑒𝑐𝑡𝑖𝑓 ) ) 𝑡 Alors, au début, la température t est plus élevée En conséquence, la probabilité Boltzmann est élevée et le recuit simulé accepte plus des états dégradés De temps en temps, la température est diminuée et l’algorithme n’accepte que les voisinages de haut qualité pour se converger l’optimum global Page 36 Expérimentation Environnement d’expérimentation Nous avons installé l’algorithme de multi-niveaux et deux algorithmes de recherche locale (Recherche Taboue et Recuit Simulé) sur COMET version 1.1 (téléchargeable sur http://dynadec.com/) pour résoudre le problème de partitionnement du graphe L’algorithme de multi-niveaux est pour la partition avec k = (bissection) Au contraire, les algorithmes de recherche locale marche bien avec n’importe k Les données de l’expérimentation sont sélectionnées sur le site internet de Chris Walshaw l’adressehttp://staffweb.cms.gre.ac.uk/~wc06/partition/ Sa base de données comporte des graphes de différentes natures et venant de source multiples En juin 2007, 20 outils ou algorithmes de partitionnement de graphe y sont mis en compétition Les meilleures partitions trouvées par ces outils sont disponibles sur le site Nous choisissions 13 graphes ces données pour l’expérimentation Les graphes sont grande taille de plus que 2000 sommets nombre de sommets nombre de arêtes add20 2395 7462 data 2851 15093 3elt 4720 13722 uk 4824 6837 graphe Page 37 add32 4960 9462 bcsstk33 8738 291583 whitaker3 9800 28989 Crack 10240 30380 wing_nodal 10937 75488 fe_4elt2 11143 32818 vibrobox 12328 165250 4elt 15606 45878 fe_sphere 16386 49152 Tableau Les graphes pour l'expérimentation Les trois algorithmes implémentés sont comparé avec les résultats obtenus avec le logiciel Metis 4.01 (téléchargeable au site http://glaros.dtc.umn.edu/gkhome/views/metis/) La bibliothèque de Metis fournis deux outils : pMetis et kMetis Ces deux outils donnent toujours le résultat en moins que second Pour l’algorithme de multi-niveaux, le temps de calcul est entre 1-20s Avec les algorithmes de recherche locale, on fixe le temps de calcul minutes Les chiffres de résultats ont été récoltés sur un ordinateur d’Intel P8600 2.4Ghz avec 3Ghz de mémoire Le logiciel Metis donne toujours le même résultat Au contraire, les algorithmes implémentés sont lancés en 10 fois pour bien évalué Page 38 Résultat Multi Niveaux Meilleure résultat connue Recherche Taboue Recuit Simulé kMetis pMetis Meilleure résultat Moyenne Meilleure résultat Moyenne Meilleurerésultat Moyenne add20 596 774 741 691 739 718 739 695 724 data 189 253 203 200 226 189 195 191 223 3elt 90 148 98 90 99 90 98 90 121 uk 20 33 27 23 29 42 48 74 103 add32 11 12 19 11 22 11 23 16 27 10171 13393 12620 10172 11512 11753 11931 11774 12484 whitaker3 127 135 128 131 132 127 127 128 188 crack 184 221 206 189 203 184 185 184 219 wing_nodal 1707 1892 1848 1724 1790 1732 1782 1723 1946 fe_4elt2 130 132 130 130 133 130 130 130 130 vibrobox 10343 11572 11746 10421 11314 13612 16032 12237 18618 139 149 165 140 148 142 161 181 209 bcsstk33 4elt Tableau Résultat d'expérimentation Sur le tableau, les meilleurs résultats connus sont les meilleures partitions trouvées par 20 outils sur la compétition en juin 2007 Page 39 La première remarque est que les outils pMetis et kMetis donnent les résultats assez bien mais stables, les résultats ne sont pas très loin aux les meilleurs résultats connus De plus, la partition de pMetis est meilleure dans la plupart de cas La raison est que pMetis est disposé pour le partitionnement de graphe avec k = On remarque aussi que l’outil pMetis et l’algorithme de multi-niveaux implémenté donne des résultats la même qualité, pas beaucoup de différent Ce n’est pas surpris cas la bibliothèque de Metis est basé aussi sur la méthode de multi-niveaux Il faut noter qu’il existe plusieurs types de l’algorithme de multi-niveaux cas il y a plusieurs technique chaque phase de multi-niveaux Par contre, le temps d’exécution de pMetis est particulièrement rapide Nous devons faire remarquer que les méthodes de recherche locale ont un temps de calcul beaucoup plus élevé (encore acceptable avec des graphes la grande taille), mais ils donnent des résultats très bien Parmi ces deux recherches, la recherche Taboue est meilleure Elle a trouvé les meilleurs résultats connus dans cas Parmi les algorithmes implémentés, recherche Taboue donne les meilleurs résultats dans la plupart des donnés (sauf le graphe vibrobox) De plus, les recherches locales sont facile implémenter pour le partitionnement du graphe avec n’importe k 2.Avec la langage COMET, ces recherches facilitent aussi ajouter les contraints pour s’adapter aux problèmes en réel Page 40 Conclusion Dans ce mémoire, nous avons présenté et analysé des méthodes de partitionnement de graphe Nous avons implémenté algorithmes : Multi-niveaux, Recherche Taboue et Recuit Simulé dans le langage de programmation COMET La recherche Taboue a très peu été étudiée dans la littérature spécialisée du domaine de partitionnement de graphe Dans ce travail, nous avons montré la potentialité de cette technique de recherche locale pour le partitionnement de graphe Pour la suite de ce stage, nous proposons quelques perspectives Proposer des améliorations de la technique de recherche Taboue pour le partitionnement de graphe : Tabou réactif, stratégies d’intensification ou de diversification Extension des méthodes de partitionnement en permettant d’ajouter des contraintes supplémentaires Définition de jeux de tests et d’applications pertinentes Hybridation de différentes méthodes de recherche locale pour le partitionnement de graphe Page 41 Références Bruce Hendrickson, Rob Leland.Chaco: Software for Partitioning Graphs [En ligne] http://www.sandia.gov/~bahendr/chaco.html SCOTCH: Static Mapping, Graph, Mesh and Hypergraph Partitioning, and Parallel and Sequential Sparse Matrix Ordering Package [En ligne] http://www.labri.fr/perso/pelegrin/scotch/ Walshaw, Chris.JOSTLE — graph partitioning software [En ligne] http://staffweb.cms.gre.ac.uk/~wc06/jostle/ METIS - Family of Multilevel Partitioning Algorithms [En ligne] http://glaros.dtc.umn.edu/gkhome/views/metis Kuma, Vipin.Graph Partitioning & Applications in High Performance Computing s.l : IMA Talks University of Minnesota, 2000 Jianbo Shi et Jitendra Malik.Normalized Cuts and Image Segmentation s.l : IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000 George Karypis et Vipin Kumar.A fast and high quality multilevel schemefor partitioning irregular graphs s.l : SIAM journal of scientific computing, 1998 W.E Donath et A.J Hoffman.Algorithms for partitioning graphs and computer logic based on eigenvectors of connection matrices s.l : IBM Technical Disclosure Belletin, 1972 B.W Kernighan et S.Lin.An efficient heuristic procedure for partitioning graphs s.l : Bell System Technical Journal, 1970 10 Stephen T Barnard et Horst D Simon.A fast multilevel implementation of recursive spectral bisection for patitioning unstructured problems s.l : Proceedings of the 6th SIAM Conference on Parallel Processing for Scientific Computing, 1993 11 T.Bui et C.Jones.A heuristic for reducing fill in sparse matrix factorization s.l : Proceedings of 6th SIAM Conference on Parallel Processing for Scientific Computing, 1993 12 Johann Dréo, Alain Pétrowski, Patrick Siarry et Eric Taillard.Métaheuristiques pour l'optimisation difficile s.l : Eyrolles, 2003 13 S.Kirkpatrick, C.D Gelatt et M.P Vecchi.Optimization by Simulated Annealing s.l : Science, 1983 14 A.Colorni, M.Dorigo et V.Maniezzo.Distributed Optimization by Ant Colonies s.l : Proceedings of the first European Conference on Artificial Life, 1992 Page 42 15 Pascal Van Hentenryck et Laurent Michel.Constraint-Based Local Search s.l : The MIT Press, 2005 16 Yves Deville.Cours de "Constraint Based Local Search" s.l : IFI, 2007 17 Pascal Van Hentenryck, Laurent Michel et Andrew See The Comet Programming Language and System [En ligne] http://comet-online.org 18 Bruce Hendrickson et Robert W.Leland.A multilevel algorithm for partitioning graphs s.l : Proceedings of Supercomputing, 1995 19 Charles-Edmond Bichot.Elaboration d’une nouvelle métaheuristique pour le partitionnement de Graphe : La méthode de Fusion-Fission Application au découpage de l’espace aérien s.l : Mémoire de thèse, 2007 20 George Karypis et Vipin Kumar.Analysis of Multilevel Graph Partitioning s.l : Proceedings of Supercomputing, 2005 Page 43 ... le problème de partitionnement de graphe Les méthodes présentées dans cette mémoire sont les suivantes: méthode de glouton, l’algorithme de Kernighan-Lin, méthode de multi-niveaux, des métaheuristiques... utilisant des algorithmes locaux de partitionnement de graphe L’idée principale de cette méthode est de regrouper les sommets ensemble pour traiter de groupes de sommets plutôt que de sommets... Proposer des améliorations de la technique de recherche Taboue pour le partitionnement de graphe : Tabou réactif, stratégies d’intensification ou de diversification Extension des méthodes de partitionnement