En utilisant une mesure de similarité pour formuler ce problème en problème d‟optimisation dont la fonction objectif est cette mesure de similarité, le problème original de la recherche
Trang 1Louvain – la – Neuve, le 15 Novembre 2009
Institut de la Francophonie
pour l’Informatique
Université catholique de
Louvain
Trang 2Je tiens à remercier particulièrement mon promoteur, Yves Deville, qui m‟a dirigé mon travail de stage de fin d‟étude Sa direction scientifique, ses judicieux conseils, ses pertinents commentaires et ses encouragements m‟ont aidé à aller jusqu‟au bout de ce travail
Je remercie aussi Pham Quang Dung pour ses propositions et son aide avec lesquels mon travail de stage a pu avancer plus rapidement
Je tiens à remercier à Christine Sonon – professeur d‟Université de Lyon I - qui m‟a donné des conseils scientifiques sans lesquelles ce travail n‟aurait pas pu aboutir
Je tiens à remercier les membres du groupe Be-cool (Belgian Constraint Group) du Département d‟Ingénierie Informatique pour leur accueil, leur soutien et leur bonne humeur
Ma reconnaissance s‟adresse aussi aux professeurs de l‟IFI (Institut de la Francophonie pour l‟Informatique) qui m‟ont donné des connaissances et des guides utiles pour mon mémoire et qui m‟ont aidé à suivre la formation de master à L‟IFI
En fin, j‟exprime ma gratitude à ma famille pour leur soutien, leurs encouragements et leur aide qui m‟a permis de réaliser ce mémoire
Trang 3Résumé
Dans les applications de reconnaissance et de recherche d‟information, la mesure de similarité entre des objets joue un rơle clé Lorsque les objets sont présentés sous forme
de graphes, ce problème se transforme en mesure de similarité entre des graphes En fait,
à cause de la différence au niveau de modélisation des objets, chaque sommet d‟un graphe correspond peut-être à plusieurs sommets de l‟autre graphe et inversement Le matching multivoque de graphes peut résoudre ce problème en permettant de mettre en correspondance un sommet d‟un graphe avec plusieurs sommets de l‟autre En utilisant une mesure de similarité pour formuler ce problème en problème d‟optimisation dont la fonction objectif est cette mesure de similarité, le problème original de la recherche du meilleur appariement entre deux graphes se transforme en une recherche d‟un appariement maximisant la fonction objectif
Malheureusement, l‟appariement multivoque de graphes est un problème NP-complet impossible d‟être résolu par un algorithme polynomial Donc, la recherche locale est une approche alternative intéressante car permettant d‟obtenir une solution approchée en temps polynomial Elle ne garantit pas toujours le résultat globalement optimal mais donne des solutions acceptables En explorant l‟espace de recherche de voisin en voisin, les algorithmes de recherche locale permettent d‟améliorer petit-à-petit la qualité de solution et dirige la recherche vers l‟optimum global
Dans ce rapport, nous présentons trois algorithmes de recherche locale : la recherche gloutonne, la recherche taboue et la recherche taboue réactive ó la fonction objectif est
de maximiser la similarité entre les graphes Ces trois algorithmes sont implémentées en COMET – un environnement développé pour la recherche locale et pour la programmation par contraintes Dans la section résultats, nous comparons la qualité de ces trois algorithmes Nous évaluons aussi l‟efficacité de la recherche locale pour le problème d‟appariement multivoque de graphes en montrant la qualité de la meilleure solution trouvée et le temps d‟exécution
Trang 4Abstract
The similarity measurement between objects plays a key role in the recognition applications and the information retrieval When the objects are presented as graphs, this problem turns into a similarity measurement between the graphs In fact, each node of a graph may correspond to many nodes of the other graph This can only be modeled by multivalent graph matching allowing to matching a node of a graph with several nodes of the other graph By using the similarity measure [1] as the objective function of an optimization problem, the original problem changes from finding the best match between two graphs to the search of a matching maximizing the objective function
Unfortunately, multivalent graph matching is a NP-hard problem and cannot be solved by
an algorithm in polynomial time Therefore, local search is a good alternative approach to resolve this problem in polynomial time It does not always find the globally optimal result, but gives acceptable solutions By exploring the search space from neighbor to neighbor, the local search algorithms can progressively improve the quality of the solution and leads the search to the global optimum
In this report, we present three local search algorithms: greedy, tabu and reactive tabu search implemented in Comet – a programming environment developed for local search and constraints programming In the result section, we will compare the quality of these three algorithms one to another We evaluate also the efficiency of the local search for multivalent graph matching by relying on the possibility to get to the best solution, the quality of the base solution and the execution time
Trang 5Table de matières
Remerciements i
Résumé ii
Abstract iii
Table de matières iv
Liste des figures vi
Liste des tableaux vii
Chapitre 1 Introduction 1
1.1 Motivation 1
1.2 Contexte et problématique 2
1.3 Objectif 3
1.4 Contribution 4
1.5 Environnement de stage 5
Chapitre 2 : Appariement multivoque de graphes 6
2.1 Introduction aux graphes 6
2.1.1 Graphes orientés 6
2.1.2 Graphes orientés étiquetés 6
2.2 Appariement 8
2.2.1 Appariements de graphes étiquetés 8
2.2.2 Classification d’appariements 9
2.2.3 État de l’art et complexité des problèmes d’appariement de graphes 11
2.3 Mesure de similarité 13
2.3.1 Caractéristiques communes 13
2.3.2 Éclatement 18
2.3.3 Similarité de graphes par un appariement 19
2.3.4 Similarité de graphes 20
Chapitre 3 : Recherche locale et Comet 21
3.1 Recherche locale 21
3.1.1 Méthode incomplète 21
3.1.2 Composant de la recherche locale 25
Trang 63.1.2.1 Solution initiale 25
3.1.2.2 Sélecteur du voisin 26
3.1.2.3 Intensification/diversification 27
3.1.2.4 Les stratégies méta-heuristiques 27
3.2 Comet 30
3.2.1 Choix de Comet 30
3.2.2 Architecture de Comet 31
3.2.3 Le programme de Comet 33
3.3 Algorithmes de recherche locale appliqués aux problèmes d’appariement multivoque de graphes 36
3.3.1 Modèle du problème 36
3.3.1.1 Solution 36
3.3.1.2 Fonction objectif 37
3.3.1.3 Voisinage 37
3.3.2 Algorithmes de recherche locale 38
3.3.2.1 Recherche gloutonne 38
3.3.2.2 Recherche taboue 41
3.3.2.3 Recherche taboue réactive 44
Chapitre 4 Expérimentation et évaluation 53
4.1 Expérimentation 53
4.1.1 Environnement d’implémentation 53
4.1.2 Instances de test 53
4.1.3 Cas de test 56
4.2 Résultats expérimentaux et évaluation 58
4.2.1 Critères d’évaluation 58
4.2.2 Résultats et évaluation 59
Conclusion 65
Références 67
Trang 7Liste des figures
1 - Figure 2.1 Graph orienté [1] 6
2 - Figure 2.2 Modélisation d’un objet en graph orienté étiqueté *1+ 7
3- Figure 2.3 Un appariement entre deux graphes [1] 9
4 - Figure 2.4 Appariement multivoque de graphes présenté étape par étape 17
5 - Figure 3.1 Variation de la fonction objectif dans l'espace de recherche 22
6 - Figure 3.2 Espace de recherche représentée en arbre 23
7 - Figure 3.3 Processus de la recherché locale 24
8 - Figure 3.4 Illusion d'une boucle au cours de la recherche et de la liste taboue 28
9 - Figure 3.5 Architecture de Comet [05] 31
10 - Figure 3.5 Illustration du problème n-reines de Comet 34
11 - Figure 3.6 Une solution du problème d'appariement multivoque de graphes 36
12 - Figure 3.7 Voisinage d'un appariement 37
13 - Figure 3.8 Diagramme de l'algorithme glouton 39
14 - Figure 3.9 Évolution de la recherche par l’algorithme glouton 40
15 - Figure 3.10 Diagramme de l'algorithme tabou 43
16 -Figure 3.11 Modèle de la détection des redondances des solutions 46
17 - Figure 3.12 Un modèle de fonction de hachage 49
18 -Figure 3.13 Diagramme de l'algorithme tabou réactif 50
19 -Figure 3.14 Processus de la détection des redondances des solutions 51
20 - Figure 4.1 Comparaison sur le temps pour trouver la meilleure solution 62
21 - Figure 4.2 Comparaison sur la qualité de la meilleure solution trouvée 62
22 - Figure 22 Reconnaissance de scènes par l’appariement multivoque de graphes 66
Trang 8Liste des tableaux
Tableau 4.1 Base de données à tester 54 Tableau 4.2 Cas de test 57 Tableau 4.3 Résultats d’appariement avec le poids d’éclatement w = 1 60 Tableau 4.4 Résultats de l’algorithme tabou réactif avec le poids d’éclatement w = 1 61 Tableau 4.5 Résultats de l’algorithme tabou réactif avec le poids d’éclatement w = 3 63
Trang 91.1 Motivation
L‟appariement de graphes est un problème fondamental en reconnaissance des formes Ce problème est utilisé dans plusieurs applications de vision par ordinateur L‟appariement univoque est moins adaptatif que l‟appariement multivoque Ce premier n‟est pas capable
de répondre à l‟hétérogénéité dans la segmentation d‟images ó chaque image est représentée par un graphe En fait, une région de l‟image correspond peut- être à plusieurs régions de l‟autre image car certaines images sont sur-segmentées tandis que certaines autres sont sous-segmentées Cependant, le matching univoque n‟autorise d‟apparier chaque sommet d‟un graphe (région d‟image) qu‟avec un seul sommet de l‟autre graphe (région de l‟autre image) Le matching multivoque de graphes résout ce problème en permettant d‟apparier un sommet d‟un graphe avec plusieurs sommets de l‟autre Il devient plus adaptif et est adapté dans différentes applications Vu l‟importance de ce problème, je l‟ai choisi comme sujet d‟étude de mon stage
L‟appariement multivoque de graphes est un problème NP-difficile et plus difficile que le problème d‟appariement univoque Par conséquent, il existe peu d‟algorithmes connus dans la littérature résolvant ce problème et en particulier aujourd‟hui encore, aucun algorithme efficace pour le résoudre n‟a été proposé Dans ce contexte, la mesure de
similarité proposée par Pierre-Antoine Champin et Christine Solnon [1] apparait comme
une solution intéressante pour transformer ce problème NP-difficile en un problème d‟optimisation (le meilleur appariement est celui qui maximise la fonction objectif) résoluble en temps polynomial par une technique de recherche locale Bien entendu, cette approche de recherche locale ne garantit pas de trouver l‟optimum global, mais permet d‟obtenir de bons résultats Grâce à ces raisons, j‟utilise la mesure de similarité [1] pour formuler le problème original en un problème d‟optimisation dont la fonction objectif est
la fonction de similarité et choisis 3 algorithmes approchés de recherche locale pour résoudre ce problème
Trang 10La qualité des algorithmes de recherche locale dépend de plusieurs facteurs comme la stratégie de limitation l‟espace de recherche, la définition du voisinage d‟une solution, les critères pour choisir des candidats à chaque étape, la stratégie heuristique/méta-heuristique pour guider la recherche d‟échapper l‟optimum local et d‟arriver l‟optimum global le plus tôt possible Parmi les différents algorithmes de recherche local, nous en avons choisi trois : glouton, tabou et tabou réactif Ceci nous permettra de les comparer et
de déterminer lequel est le meilleur algorithme pour résoudre le problème d‟appariement multivoque de graphes
1.2 Contexte et problématique
Le problème d‟appariement multivoque de graphes reste un problème ouvert car il est un problème NP-difficile Il y a donc aucun algorithme générique efficace pour le résoudre, malgré son rôle important dans plusieurs applications de vision par ordinateur C‟est aussi difficile de l‟utiliser dans les applications en temps réel sur internet à cause de sa complexité exponentielle Il est donc nécessaire d‟étudier ce problème et de chercher des
algorithmes pouvant le résoudre en temps polynomial, même de manière approchée
Le problème de matching de graphes vise à chercher le meilleur appariement entre deux graphes étiquetés donnés qui accouple le plus de sommets et d‟arrêtes ayant la même étiquette dans deux graphes En utilisant la fonction de similarité proposée par Pierre-
Antoine Champin et Christine Solnon [1] comme fonction objectif pour formuler ce
problème en un problème d‟optimisation, la recherche du meilleur appariement revient donc à chercher l‟appariement qui maximise la fonction objectif en utilisant la recherche locale Les algorithmes de recherche locale n‟explorent qu‟une seule partie de l‟espace de recherche en se déplaçant de voisin en voisin pour améliorer petit à petit la qualité de la solution Les stratégies heuristiques/méta-heuristique sont intégrées dans la recherche pour diriger la recherche vers l‟optimum global
En fait, le problème d‟appariement basant sur la mesure de similarité [1] travaille avec des graphes étiquetés mais nous pouvons aussi l‟appliquer avec des graphes non-
Trang 11étiquetés dont tous les sommets et les arêtes sont considérées comme les composants ayant la même étiquette
Lorsque les graphes à apparier sont de grandes tailles, c‟est difficile déterminer si une solution est l‟optimum global ou non Un moyen pour surmonter cet obstacle est de : exécuter la recherche plusieurs fois pour déterminer la plus grande valeur de la fonction objectif
comparer nos résultats avec des résultats existants déclarés dans la littérature Une variation ouverte de ce problème est l‟appariement multivoque de graphes avec des contraintes En fait, nous pouvons ajouter des contraintes sur des sommets, sur des arêtes
et sur chaque couple de sommets appariés comme suit :
Chaque sommet ne peut être apparié qu‟avec un nombre limité de sommets de l‟autre graphe
Chaque accouplement de deux sommets est attaché un poids Les nœuds du graphe sont divisés en classes Les poids des accouplements d‟un sommet avec tous les sommets dans une classe sont les mêmes, mais différent de ceux entre ce sommet avec des sommets d‟autres classes
Dans le cadre de mon stage, je ne travaille pas avec des contraintes supplémentaires mais ceci pourrait être étudié dans le futur
Un autre objectif de mon stage est de tester et d‟évaluer l‟efficacité des trois algorithmes
de la recherche locale (une approche approximative) : glouton, tabou et tabou réactif, de les comparer afin de choisir la meilleure méthode pour résoudre le problème NP-
Trang 12difficile : appariement multivoque de graphes Nos résultats expérimentaux servent aussi
à vérifier les résultats publiés dans l‟article [2] obtenus par ces mêmes algorithmes Pour évaluer la performance d‟un algorithme et le comparer avec d‟autres, nous nous basons sur des critères comme la qualité de la meilleure solution trouvée, la qualité moyenne des solutions obtenus dans plusieurs fois d‟exécution, la fréquence d‟atteindre à l‟optimum global, le temps nécessaire pour trouver la meilleure solution
1.4 Contribution
L‟objectif de mon stage est d‟appliquer la fonction de similarité [1] pour représenter le problème d‟appariement en un problème d‟optimisation dont la fonction objectif est cette mesure de similarité et ensuite d‟utiliser 3 algorithmes de recherche locale pour résoudre
ce problème d‟optimisation J‟aborde donc dans cette section 2 aspects : contribution en théorie et au logiciel
Contribution en théorie
Génération deux fonctions de hachages (fonction de hachage de type-2 dans [3.3.2.3] et les fonctions hash2, hash3 dans [4.1.3]) visant à détecter des redondances des solutions pour ajuster la liste tabou dans l‟algorithme de recherche locale tabou réactif
Construction d‟une version du programme utilisant des invariants Comet qui mettent à jours automatiquement la similarité chaque fois ó l‟appariement change Dans cette version, c‟est le langage Comet, pas nous, qui s‟occupe de gérer cette mesure de
Trang 13similarité Malheureusement, le résultat est mauvais (la mémoire requise et le temps d‟exécution sont trop grands)
1.5 Environnement de stage
Mon travail de stage s‟est déroulé au Département d‟Ingénierie Informatique d‟Université catholique de Louvain (UCL) à Louvain-la-Neuve en Belgique du 15 Avril 2009 au 15 Novembre 2009, sous l‟encadrant du prof Yves Deville Il a défini le problème à résoudre, délimité le travail du stage et indiqué la direction principale du stage et les approches à suivre pour résoudre le problème Il s‟est occupé aussi des problèmes concernant la recherche locale Par ailleurs, mon stage est aussi supervisé par M Pham Quang Dung qui a suivi l‟avancement du stage Il s‟est occupé des problèmes concernant l‟implémentation du programme et m‟a proposé des idées pour implémenter des algorithmes de recherche locale J‟ai eu l‟occasion de rencontrer Christine Solnon – une des deux auteurs proposant la mesure de similarité [1] Elle m‟a aidé à obtenir la base de données de test de Olfa Sammound utilisée dans les expérimentations [2] et m‟a montré
sa fonction de hachage pour implémenter l‟algorithme tabou réactif – un des trois algorithmes étudiés dans mon stage
Au cours du mon stage, j‟ai rejoint le groupe Be-cool (Belgian Constraints Group) du Département d‟Ingénierie Informatique d‟UCL et aussi participé aux activités de recherche avec ce groupe (les réunions du groupe, les séminaires et les conférences en Belgique et en France, )
Trang 14Chapitre 2 : Appariement multivoque de graphes
Introduction
L‟objectif de ce chapitre est de dresser un état de l‟art sur le matching multivoque de graphes et une mesure de similarité pour transformer le problème d‟appariement multivoque de graphes en un problème d‟optimisation de cette mesure Nous présentons premièrement l‟introduction des graphes orientés étiquetés et l‟appariement entre des graphes de ce type Nous présentons ensuite une mesure de similarité de graphes La recherche du meilleur appariement se transforme en l‟optimisation de la similarité induite par un appariement
2.1 Introduction aux graphes
2.1.1 Graphes orientés
Un graphe orienté est défini par un couple G = (V, E) ó V est un ensemble fini de sommets et E est un ensemble fini d‟arêtes orientées
1 - Figure 2.1 Graph orienté [1]
Chaque arête (u, v) est un couple ordonné de sommets représentant un arc dirigé
du sommet u au sommet v Dans un graphe orienté, il y a deux arcs possibles (u, v) et (v, u) entre deux sommets u et v Le fait que si (u, v) est une arête, alors (v, u) n‟est pas
obligatoirement un arc du graphe
2.1.2 Graphes orientés étiquetés
Trang 15Un graphe orienté etiquetté est un graph orienté dont les sommets et les arêtes sont associés à des étiquettes décrivant leurs propriétés
Etant donnés L V et L E les ensembles d‟étiquettes de sommets et d‟arêtes Un graphe
orienté étiqueté est défini par un triplet G = (V, r V , r E) tel que :
rv = {(v, l v )} V est une relation associant les sommets à leurs étiquettes r V est
un ensemble de couple (v, lv) signifiant que le sommet v a l‟étiquette l v
r E = {(v, v’, l vv’)}} E est une relation associant les arêtes à leurs
étiquettes r E est un ensemble de triplets (v, v’, l vv’ ) signifiant que l‟arête (v, v’) a l‟étiquette l vv’
Sans perte de généralité, on suppose que chaque arête est associée à au moins une
étiquette L‟ensemble E des arêtes du graphe est défini par E = {(v, v’) | l : (v, v’, l)
r E }
2 - Figure 2.2 Modélisation d’un objet en graph orienté étiqueté *1+
Exemple : Étant donné un objet présenté dans la figure 2.2, pour le modéliser en graphe,
nous créons des sommets et des arcs représentant respectivement des composants et les relations de position relative entre des composants de l‟objet De plus, nous définissons
un ensemble d‟étiquettes des sommets et des arcs ci-dessous :
L E = {poutre, I, mur}
L V = {accoté, sur}
Trang 16Les composants a, b, c, d ont deux étiquettes « poutre » et « I » tandis que les composants e et f sont associés à une seule étiquette « mur » Nous utilisons l‟étiquette « accoté » et « sur » pour décrire les positions relatives entre les composants a, b, c, d et entre ces composants avec e, f
Le graphe décrivant cet objet est défini par un triplet ci-dessous :
G = < V = {a, b, c, d, e, f},
r V = { (a, poutre), (b, poutre), (c, poutre), (d, poutre), (a, I), (b, I), (c, I), (d, I)
(e, mur), (f, mur)},
r E = { (a, b, acoté), (b, c, acoté), (c, d, acoté),
(a, e, sur), (b, e, sur), (c, f, sur), (d, f, sur)} >
2.2 Appariement
2.2.1 Appariements de graphes étiquetés
Un appariement de 2 graphes est une mise en correspondance entre leurs sommets Il contient des paires de sommets couplés dont chacun appartient à un graphe Plus
formellement, un appariement entre deux graphes étiquetés G 1 = <G 1 , r V1 , r E1 > et G 2 =
<G 2 , r V2 , r E2 > est une relation m = {(v 1 , v 2 ) : v 1 V 1 , v 2 V 2 } V 1 V 2 contenant tous les
couples (u, v) tel que u est apparié au sommet v
À partir d‟un appariement, en ajoutant ou en enlevant un ou plusieurs couples de sommets, nous obtenons un nouvel appariement Autrement dit, un appariement est aussi
un ensemble mathématique Nous pouvons donc appliquer des opérateurs ensemblistes sur des appariements
En général, un tel appariement peut associer à chaque sommet d‟un graphe 0, 1 ou
plusieurs sommets de l‟autre graphe Nous utilisons la notion fonctionnelle m(v) pour noter l‟ensemble de sommets accouplés avec v par la relation m
v 1 V 1 : m(v 1) = { v2 V 2 | (v 1 , v 2 ) m}
v 2 V 2 : m(v 2) = { v1 V 1 | (v 1 , v 2 ) m}
Trang 173- Figure 2.3 Un appariement entre deux graphes [1]
Exemple : Avec les deux graphes représentés dans la figure 2.3, il y a plusieurs
appariements possibles Nous définissons ci-dessous un matching de graphes:
m = {(a, 1), (b, 2), (c, 3), (d, 4), (e, 5), (f, 5)}
Cet appariement accouple respectivement les sommets a, b, c, d avec les sommets 1, 2, 3,
4 et les sommets e, f sont tous les deux appariés au sommet 5 Dans cet appariement, l‟ensemble de sommets associés au sommet 5 est m(5) = {e, f}
Si nous enlevons le couple (f, 5) de l‟appariement m, nous obtenons un nouvel appariement : m’ = {(a, 1), (b, 2), (c, 3), (d, 4), (e, 5)}
Dans ce nouvel appariement, le sommet f n‟est donc accouplé à aucun sommet du deuxième graphe L‟ensemble de sommets associés à f est vide : m(f) =
2.2.2 Classification d’appariements
Appariement bijectif : cardinalité = (1, 1)
v 1 V 1 : |m(v 1)| = 1
v 2 V 2 : |m(v 2)| = 1
Trang 18Tous les sommets d‟un graphe sont appariés à un et un seul sommet de l‟autre graphe
et inversement Il n‟existe pas donc deux sommets d‟un graphe liés à un même sommet de l‟autre graphe
Le problème associé à ce type d‟appariement est l‟isomorphisme de graphes visant à déterminer si les deux graphes donnés sont isomorphes ou non en indiquant un appariement bijectif 1-1 entre eux
Appariement injectif : cardinalité = (1, 0 1)
v 1 V 1 : |m(v 1)| 1
Un appariement injectif de G 1 à G 2 lie chaque sommet du graphe G 1 à au maximum un
sommet du graphe G 2 Il est impossible d‟apparier deux sommets de G 1 à un même
sommet de G 2
Ce type d‟appariement associe au problème d‟isomorphisme de sous graphe L‟objectif de ce problème est de déterminer si un graphe est l‟isomorphisme d‟un
sous-graphe de l‟autre graphe ou non en indiquant un appariement injectif entre eux
Appariement univoque : cardinalité = (0 1, 0 1)
Dans un appariement univoque entre deux graphes G1 et G2, chaque sommet d‟un graphe est apparié au maximum à un sommet de l‟autre graphe Chaque sommet n‟a donc que deux possibilités : soit il n‟est pas apparié, soit il est apparié à un sommet unique
Cet appariement concerne le problème de plus grand sous-graphe commun Il s‟agit de trouver le sous graphe le plus grand dans chacun des graphes de telle sorte que ces deux sous-graphes soient isomorphes
Appariement multivoque : cardinalité = (0 |V 1 |, 0 |V 2|)
Chaque sommet d‟un graphe est apparié à un ensemble (éventuellement vide) de sommets de l‟autre graphe Dans un appariement multivoque, un sommet est peut-être apparié en même temps à plusieurs sommets
Trang 192.2.3 État de l’art et complexité des problèmes d’appariement de graphes
a Isomorphisme de graphes
La complexité du problème d'isomorphisme de graphes n'est pas exactement connue : ce problème est NP mais on ne sait pas s‟il est dans P ou s‟il est NP-complet [10] Cependant, avec certaines topologies particulières de graphes (graphes planaires [12], des arbres [13] ou graphes de valence bornée [14]), ce problème peut être résolu dans un temps polynomial
Il existe certains algorithmes pour résoudre ce problème tel que Ullmann, Schmidt and Druffel (SD), VF, VF2, et Nauty, … Ulmann réduit l‟espace de recherche par une procédure de back-tracking et une fonction de look-ahead Les graphes sont représentés sous la forme de matrices de distance [11] VF se base sur une stratégie de recherche en profondeur avec un ensemble de règles pour élaguer l‟arbre de recherche [19] VF2 a la même idée de VF mais utilise des structures de données plus sophistiquées [20] Nauty se base sur un ensemble de transformations afin de réduire des graphes sous formes de cơne sur lesquelles le teste d‟isomorphisme est plus rapide [09] Une évaluation et comparaison entre ces algorithmes est présentée dans [16]
b Isomorphisme de sous-graphes
L‟isomorphisme de sous graphe est un problème NP-complet Il y a quelques algorithmes visant à résoudre le problème d‟isomorphisme de sous graphes mais l‟idée commune de la plupart de ces algorithme est similaire avec l‟algorithme de base proposé par Ullmann [11] qui se base sur une procédure de back-tracking and une fonction de look-ahead pour réduire l‟espace de recherche Les graphes sont représentés sous forme des matrices d‟adjacence A chaque fois ó nous avons besoin de générer tous les sous-graphes possibles d‟une matrice d‟adjacence, une permutation de matrice sera construite À chaque étape, la matrice résultant - représentant un sous-graphe de G - est comparée avec
la matrice du graphe plus petit G‟ pour chercher un appariement entre eux
Trang 20La complexité de cet algorithme est O(I M M 2 ) ó M = nombre d‟arcs du graphe le plus grand et I est le nombre d‟arcs du sous-graphe [15]
c Plus grand sous graphe commun
Ce problème est NP-difficile Il y a quelques algorithmes existants comme l‟algorithme
de McGregor, de Durand-Pasari, Balas Yu, [17]…qui peuvent marcher sur des grandes bases de données de graphes
o L‟algorithme McGregor [21] construit un arbre de recherche dont chaque état (nœud) est un sous graphe de deux graphes d‟entrée et se base sur une recherche en
profondeur pour trouver le plus grand sous graphe commun Le voisinage d‟un état S
est un ensemble de sous graphes possible générés en ajoutant un couple d‟appariement Le plus grand sous graphe commun est un des nœuds de feuille de l‟arbre qui contient le plus des couples de sommets de deux graphes
o L‟algorithme de Durant-Pasari construit à partir deux graphes originaux G 1 et G 2 un graphe d‟association non orienté dont chaque nœud correspond à une paire de deux
sommets appartenant aux deux graphes G 1 et G 2 ayant les mêmes caractéristiques, et
chaque arête connectant deux sommets (m 1 , m 2 ) et (n 1 , n 2) présente la possibilité
d‟existence un isomorphisme entre deux sous graphes (m 1 , n 1 ) de G 1 et (m 2 , n 2 ) de G 2
Le plus grand sous graphe commun correspond à la plus grande clique du graphe d‟association Cet-algorithme utilise une recherche en profondeur sur l‟arbre de recherche pour trouver la plus grande clique du graphe d‟association
o Comme l‟algorithme Durant-Pasari , celui de Balas Yu construit tout d‟abord un graphe d‟association de deux graphes attribués et la solution du problème « plus grand sous graphe commun » est la plus grande clique dans le graphe d‟association Différent de l‟algorithme Durant-Pasari, Balas Yu cherche la plus grande clique en se basant sur une technique de coloriage Une description plus précise de cet algorithme
se trouve dans [18]
Trang 21d Appariement multivoque de graphes
Ce problème est NP-difficile et il y a peu d‟algorithmes pour le résoudre Une méthode efficace pour résoudre ce problème est d‟utiliser la fonction de similarité proposée par Champin et Solnon [1] Ils proposent une fonction de similarité calculée par rapport à un appariement donné Le meilleur matching entre deux graphes est alors celui qui maximise cette fonction de similarité Le problème d‟appariement multivoque de graphes consiste donc en un problème d‟optimisation de cette mesure de similarité
2.3 Mesure de similarité
Dans cette section, nous présentons la mesure de similarité proposée par Pierre-Antoine
Champin et Christine Solnon [1] Ils proposent une fonction de similarité pour un
appariement entre deux graphes Cette fonction est directement proportionnelle aux nombres de caractéristiques communes aux deux graphes par rapport au nombre total de caractéristiques Nous présenterons premièrement dans cette section les caractéristiques d‟un graphe et comment déterminer les caractéristiques communes partagées par deux graphes Finalement, nous donnons la mesure de similarité de graphes
Trang 22Deux caractéristiques de sommets (ou d‟arcs) appartenant à deux graphes sont similaires
s‟ils sont associés à une même étiquette Étant donnés deux graphes G 1 , G 2 et un
appariement m entre eux, les caractéristiques communes aux deux graphes sont les caractéristiques des sommets ou des arcs appariés par m à au moins un sommet ou un arc
de l‟autre graphe ayant la même étiquette Formellement, l‟ensemble descr(G) m descr(G‟) des caractéristiques communes aux deux graphes étiquetés G et G‟ par rapport
à l‟appariement m est défini par :
sim(G, G’) m ~ | descr(G) m descr(G’)| ó :
sim(G, G‟) m : la similarité entre deux graphes G, G‟ en respectant l‟appariement m
|descr(G) m descr(G‟)| : la taille de l‟ensemble des caractéristiques communes aux deux
graphes
En fait, nous pouvons apparier deux sommets quelconques ayant deux étiquettes différentes mais cette mise en correspondance ne produit pas des caractéristiques communes aux quelles la similarité de graphes est directement proportionnelle Chaque appariement est un point de vue de comparaison de deux graphes Cet appariement permet
de retrouver certaines caractéristiques communes aux deux graphes Une bonne mise en correspondance est celle entre les sommets ayant les mêmes étiquettes Une telle mise en correspondance permet de retrouver toutes les caractéristiques communes deux graphes Nous ne nous intéressons donc qu‟aux accouplements entre les sommets ayant les mêmes étiquettes
Trang 23Pour mieux comprendre la détection des caractéristiques communes aux deux graphes, nous présentons étape par étape dans la figure 2.4 les nouvelles caractéristiques communes retrouvées au cours de l‟appariement
sur
sur
sur sur sur
sur
Trang 24m = {(a, 1), (b, 2), (c, 3),
descr(G) m descr(G‟) = {
(a, poutre), (1, poutre), (b, poutre), (2, poutre), (a, b, acoté), (1, 2, acoté),
(c, poutre), (3, poutre), (b, c, acoté), (2, 3, acoté),
m = {(a, 1), (b, 2), (c, 3), (d, 4),
descr(G) m descr(G‟) = {
(a, poutre), (1, poutre), (b, poutre), (2, poutre), (a, b, acoté), (1, 2, acoté),
(c, poutre), (3, poutre), (b, c, acoté), (2, 3, acoté),
(d, pourte), (4, poutre), (c, d, acoté), (3, 4, acoté),
Trang 25m = {(a, 1), (b, 2), (c, 3), (d, 4), (e, 5),
descr(G) m descr(G‟) = {
(a, poutre), (1, poutre), (b, poutre), (2, poutre), (a, b, acoté), (1, 2, acoté),
(c, poutre), (3, poutre), (b, c, acoté), (2, 3, acoté),
(d, pourte), (4, poutre), (c, d, acoté), (3, 4, acoté),
(e, mur), (5, mur), (a, e, sur), (1, 5, sur), (b, e, sur), (2, 5, sur),
4 - Figure 2.4 Appariement multivoque de graphes présenté étape par étape
Trang 26m = {(a, 1), (b, 2), (c, 3), (d, 4), (e, 5), (f, 5)}
descr(G) m descr(G‟) = {
(a, poutre), (1, poutre), (b, poutre), (2, poutre), (a, b, acoté), (1, 2, acoté),
(c, poutre), (3, poutre), (b, c, acoté), (2, 3, acoté),
(d, pourte), (4, poutre), (c, d, acoté), (3, 4, acoté),
(e, mur), (5, mur), (a, e, sur), (1, 5, sur), (b, e, sur), (2, 5, sur),
(f, mur), (c, f, sur), (3, 5, sur), (d, f, sur), (4, 5, sur)}
Nous devons tout d‟abord définir l‟ensemble de sommets éclatés par un appariement
C‟est l‟ensemble de sommets appariés à plus d‟un sommet Chaque sommet v est associé
à l‟ensemble s v de sommets aux quelles il est apparié :
splits(m) = {(v, s v) | v V, s v = {v’ V’ | (v, v‟) m}, |s v| 2}
{(v’, s v’) | v’ V’, s v’ = {v V | (v, v‟) m}, |s’ v| 2} Comme analysé ci-dessus, la similarité entre deux graphes sera une fonction inversement proportionnelle au nombre de sommets éclaté
sim(G, G’) m ~ | descr(G) m descr(G’)|
~ - |splits(m)|
ó : |splits(m)| est la taille de l‟ensemble des sommets éclatés
Trang 272.3.3 Similarité de graphes par un appariement
Comme analysé dans la section 2.3.1, la similarité entre deux graphes par un matching m
est une fonction directement proportionnelle à la taille de l‟ensemble de caractéristiques communes aux deux graphes
sim(G, G’) m ~ - |splits(m)|
En se basant sur la mesure de similarité entre deux ensembles de Tversky, Pierre-Antoine
Champin et Christine [1] ont proposé une fonction de similarité entre deux graphes
étiquetés G et G’ par rapport à un appariement m suivante :
sim(G, G’) m =
m
ó :
descr(G) descr(G‟) : l‟union de toutes les caractéristiques des deux graphes G et G‟
f et g : deux fonctions positives, monotones et dépendantes de l‟application
considérée
Si f est la fonction de cardinalité (f(S) = |S| ó S est un ensemble) et g la fonction nulle, la
similarité accroỵtra proportionnellement aux nombre de caractéristiques communes par rapport au nombre total de caractéristiques et ne dépend que de ce ratio
sim(G, G’) m =
m
Si f et g sont tous les deux la fonction de cardinalité, la similarité sera alors inversement
proportionnelle au nombre de sommet éclatés
sim(G, G’) m =
m
Trang 282.3.4 Similarité de graphes
La similarité sim(G, G’) de deux graphes est définie comme la plus grande similarité
possible obtenue par le meilleur appariement
sim(G, G’) =
'
max
V V m
Pour évaluer exactement la similarité de deux graphes, nous devons rechercher le meilleur appariement Le matching de graphes est donc un problème consistant à mesurer la similarité car la recherche du meilleur appariement se base sur l‟optimisation de la fonction de similarité par rapport à un appariement
de graphes en un problème d‟optimisation de similarité La recherche locale est une approche intéressante ayant plusieurs avantages pour ce problème d‟optimisation
Trang 29Chapitre 3 : Recherche locale et Comet Introduction
Dans ce chapitre, nous présentons en détaill la recherche locale comme : le processus de recherche, la stratégie de sélection du voisin, les techniques heuristiques et méta-heuristiques pour diriger la recherche vers l‟optimum global Nous décrivons trois algorithmes de recherche locale : glouton, tabou et tabou réactif Après la section de présentation du langage de programmation Comet, nous introduisons notre implémentation des trois algorithmes en Comet
3.1 Recherche locale
3 1.1 Méthode incomplète
La recherche locale est une approche incomplète dans le sens qu‟elle n‟explore qu‟une certaine partie de l‟espace de recherche de façon heuristique et intelligente pour résoudre des problèmes combinatoires NP-complet ou NP-difficile en temps acceptable
Au contraire de la méthode complète comme la recherche en profondeur/largueur qui visite tous les états possibles de l‟espace de recherche pour chercher la solution optimale,
la recherche locale n‟explore qu‟une seule partie de l‟espace de recherche La meilleure solution dans la zone de recherche visitée est considérée comme la solution finale du problème Grâce à la réduction de l‟espace de recherche, la complexité en temps de la recherche locale est généralement polynomiale Par contre, la recherche locale ne trouve pas toujours la solution optimale mais dans le pire cas, elle retourne une solution de bonne qualité
Les algorithmes de recherche locale sont utilisés souvent pour résoudre les problèmes d‟optimisation dont le but est de maximiser ou minimiser une fonction objectif ou les problèmes aux contraintes qui visent à trouver une solution satisfaisant certaines contraintes données [07]
Trang 30Problèmes aux contraintes
Un problème satisfaisant des contraintes est définie par un triplet <X, D, C> ó :
X est un ensemble de variables
D est une fonction qui associe chaque variable x i X à son domaine de valeur D(x i)
C est l‟ensemble des contraintes définies sur des variables du problème Ce sont des relations entre des variables qui restreignent l‟ensemble des valeurs possibles assignés simultanément à ces variables
À cơté du problème d‟optimisation, la recherche locale est utilisée pour résoudre les problèmes aux contraintes en explorant de voisin en voisin jusqu‟à ce qu‟on trouve une solution satisfaisant toutes les contraintes
5 - Figure 3.1 Variation de la fonction objectif dans l'espace de recherche
Qualité de solution
(Valeur de la fonction d’objectif F)
optimum global
espace de recherche solution s
F(s)
Trang 31La recherche locale est appelée aussi la recherche du voisin dans le sens ó elle tente d‟améliorer une solution ou la changer pour satisfaire les contraintes du problème en explorant ses voisins Dans le cadre de la recherche locale, une solution est une
assignation des valeurs aux variables de décision du problème (x 1 = a 1 , x 2 = a 2 , …, x n = a n
ó : x i est un variable de décision, a i est une valeur) Une solution est appelée optimale si
la fonction objectif est maximale (ó minimale, en dépendant du problème) pour cette solution L‟espace de recherche est un ensemble des solutions possible du problème structurées en arbre et en termes de voisinage Deux solutions sont considérées comme voisines s‟elles diffèrent par un seul ou quelques variables de décision Le voisinage d‟une solution est l‟ensemble de ses solutions voisines possible
Nous présentons dans la figure 3.2 l‟espace de recherche représenté en graphe du problème matching multivoque de graphes Chaque solution spécifie un état
case[i,j] = 1 : le sommet v i
est apparié au sommet v j
déplacement déplacement
Trang 32d‟appariement de tous les couples de sommets La case en colonne i, en ligne j est assignée à 1 si le sommet v i du premier graphe est apparié au v j du deuxième graphe, 0 sinon La case en bleu marque la position de différence d‟une solution et sa voisine précédente
L‟idée de la recherche locale est de déplacer de voisin en voisin à partir d‟une solution initiale pour déterminer la meilleure solution parmi celles visitées pendant un temps
Créer une solution initiale s 0
solution courante s ← s0 meilleure solution s* ←s 0
s* est meilleure que s ?
Mettre à jour la meilleur solution
Trang 33donné Le processus des algorithmes de recherche locale comme illustré dans la figure 3.3
se compose des étapes suivantes :
Création d‟une solution initiale comme un point départ de la recherche
Choix du voisinage : À chaque itération, parmi les voisines de la solution courante, une solution est choisie comme la solution temporaire du problème Puis, les algorithmes de recherche locale déplacent à cette nouvelle solution choisie comme leur solution courante à partir de laquelle la recherche est répétée
Arrêt de la recherche : la recherche s‟arrête après un temps limite ou un certain nombre d‟itérations
La meilleure solution trouvée est retournée comme la solution finale du problème
3 1.2 Composant de la recherche locale
3.1.2.1 Solution initiale
La solution initiale est le point départ ó la recherche commence Étape par étape, les algorithmes de recherche locale modifie cette solution initiale pour atteindre la solution optimale ou au moins meilleure
La solution initiale est très importante parce qu‟elle influence la qualité de la recherche À partir de différents points de départ, la recherche arrive aux solutions de qualités très différentes Certains points de départ permettent la recherche de trouver facilement et rapidement la solution optimale (par exemple : à partir d‟une solution qui est proche de la solution optimale) mais avec certaines autres, la recherche peut converger très lentement Dans les pires cas, la recherche n‟atteint pas l‟optimum global Elle se cantonne autour d‟une solution localement optimale Par conséquent, c‟est nécessaire de créer une bonne solution initiale qui facilite la recherche
En fait, la solution initiale est peut-être générée aléatoirement en choisissant n‟importe quelle solution dans l‟espace de recherche mais ce n‟est pas un bon choix pour les
Trang 34problèmes difficiles à converger vers la solution optimale Donc, nous utilisons souvent la méthode heuristique gloutonne pour créer la solution initiale de la recherche
3.1.2.2 Sélecteur du voisin
La recherche locale exploite l‟espace de recherche en se déplaçant de voisin en voisin À chaque étape, elle possède une solution temporaire et choisit une solution dans le voisinage de cette solution courante pour l‟itération suivante Les algorithmes de recherche locale utilisent toujours une certaine stratégie du choix du voisin pour améliorer
la qualité de la solution actuelle et arriver à l‟optimum global Une bonne stratégie nous permet d‟échapper les optimums locaux et de suivre un chemin menant de la solution initiale à celle globalement optimale
Donc, à côté de la génération de la solution initiale, le choix du voisin est un facteur très important décidant la qualité de la recherche Les stratégies de choix du voisin sont
classées en 3 classes : aléatoire, déterministe, heuristique
Sélecteurs aléatoires : la sélection du voisin ne se base sur aucun critère, ni la position,
Trang 35Sélecteurs heuristique : la s élection du voisin se base sur la qualité de la solution
Sélecteur glouton : choisir la meilleure solution voisine qui améliore le plus la qualité
Pour les problèmes d‟optimisation, la recherche s‟arrête souvent après un certain nombre d‟itérations Par contre, pour les problèmes combinatoires visés à trouver une solution satisfaisant certaines contraintes comme le problème du puzzle à 8 cases, sodoku, colorage du graphe,… le processus de recherche finit si toutes les contraintes sont satisfaites
3.1.2.4 Les stratégies méta-heuristiques
La recherche peut tomber sur des optimums locaux Avec la stratégie gloutonne qui essaie
de choisir une solution voisine meilleure que la solution courante, aucun voisin ne satisfait ce critère parce que les optimums locaux sont déjà des meilleures solutions dans leurs régions locales La recherche aboutit donc toujours à ces optimums locaux Pour échapper ces optimums locaux, nous devons parfois accepter des solutions dégradantes Les stratégies méta-heuristiques nous permettent de résoudre ce problème Elles visent à échapper des optimums locaux et dirige la recherche vers la solution globalement optimale Elles doivent se baser sur les informations mémorisées lors d‟une séquence d‟itérations pour avoir une vue à long terme sur l‟évolution de la recherche
Trang 36Liste taboue
Nous utilisons une liste pour mémoriser des mouvements précédents ou des solutions visitées pendant une séquence d‟itération Les solutions marquées dans cette liste ne peuvent pas être choisies malgré qu‟elles augmentent la fonction objectif Cette liste ne permet pas la recherche de revenir en arrière aux solutions qui viennent d‟être choisies Autrement dit, cette liste nous empêche de boucler sur un petit nombre de solutions autour des optimums locaux
Trang 37Si la recherche reste autour d‟un optimum local pendant trop long temps, il est nécessaire
de revenir en arrière à la meilleure solution connue Autrement dit, s‟il n‟y a aucune amélioration pendant certain nombre d‟itérations, la meilleure solution trouvée pendant le temps d‟exécution de la recherche est restaurée et la recherche sera redémarrée de ce point de départ C‟est la technique d‟intensification L‟objectif de cette technique est d‟exploiter toujours la meilleure solution trouvée, d‟explorer ses voisins et d‟éviter de boucler sur des mauvaises voisines
Redémarrage : recommencer la recherche à partir d‟un nouveau point de départ s‟il
n‟existe aucune bonne solution trouvée après un nombre d‟itérations Cette technique
essaie d‟empêcher la recherche d‟être prise au piège dans une région ó il n‟y a pas des bonnes solutions ou des bonnes solutions sont difficiles à atteindre
Par ailleurs, il y a une autre technique de démarrage Après un nombre fixe d‟itérations,
la recherche est redémarrée d‟une solution aléatoirement choisie Cette technique de redémarrage permet à la recherche locale d‟explorer des différentes régions de la recherche locale La meilleure solution trouvée dans les différentes régions locales sera l‟optimum global avec une plus haute probabilité
Diversification : comme le redémarrage, relancer la recherche locale à partir d‟un
nouveau point de départ au moment ó aucune solution voisine n‟est meilleure que la solution courante Au contraire de la technique de démarrage, le nouveau point départ est une modification de la solution courante Plus le dégré de diversification est grand, plus
la nouvelle solution initiale est différente de celle courante La diversification dirige la
recherche vers d‟autres régions de l‟espace de recherche en acceptant quand même les solutions de moins bonne qualité
Dans ce rapport, nous ne pouvons présenter qu‟une vue générale sur la rechreche locale détaillé dans un livre de Pascal Van Hentenryck et Laurent Michel [07] Vous pouvez consulter ce livre pour mieux comprendre la recherche locale, pour avoir des guides
détaillées, des applications et des implémentations des problèmes concrets
Trang 383.2 Comet
3 2.1 Choix de Comet
Comme analysé dans le chapitre 2, le problème d‟appariement multivoque de graphes est
un problème NP- difficile impossible à résoudre de manière exact par un algorithme de temps polynomial La recherche locale est une bonne approche alternative pour ce problème Nous avons choisi le langage Comet pour réaliser les algorithmes de recherche locale résolvant notre problème d‟optimisation pour les raisons suivantes :
Comet est un langage de programmation orienté objet supportant la modélisation et la recherche locale Il est très puissant pour résoudre des problèmes d‟optimisation avec contraintes
Il est facile d‟étendre le problème lorsque l‟utilisateur souhaite ajouter de nouvelles contraintes Les composants de modélisation de Comet permettent d‟exprimer la structure combinatoire en terme de contraintes et d‟objectifs
Un programme en Comet se compose de deux parties :
Recherche locale = Modèle + Recherche
Un modèle à haut niveau décrit le problème en termes des contraintes et des fonctions objectifs
Un processus de recherche exploite la structure exprimée dans le modèle pour diriger l‟exploration de l‟espace de recherche vers des solutions de haute qualité Cette formule signifie que les algorithmes de recherche locale peuvent être spécifiés en termes de composants de modélisation et de recherche
Le langage de Comet a des grands avantages suivants :
Un langage de recherche pour la recherche locale
Séparation entre deux composants Modèle et Recherche Un changement ayant lieu au niveau d‟un composant n‟influence pas le reste