1. Trang chủ
  2. » Ngoại Ngữ

Appariement multivoque de graphes par la recherche locale

76 237 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 76
Dung lượng 1,83 MB

Nội dung

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 1

Louvain – la – Neuve, le 15 Novembre 2009

Institut de la Francophonie

pour l’Informatique

Université catholique de

Louvain

Trang 2

Je 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 3

Ré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 4

Abstract

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 5

Table 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 6

3.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 7

Liste 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 8

Liste 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 9

1.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 10

La 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 12

difficile : 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 13

similarité 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 14

Chapitre 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 15

Un 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 16

Les 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 17

3- 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 18

Tous 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 19

2.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 20

La 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 21

d 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 22

Deux 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 23

Pour 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 24

m = {(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 25

m = {(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 26

m = {(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 27

2.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 28

2.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 29

Chapitre 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 30

Problè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 31

La 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 32

d‟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 33

donné 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 34

problè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 35

Sé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 36

Liste 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 37

Si 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 38

3.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

Ngày đăng: 27/10/2016, 22:54

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. [1] P.-A Champin, C.Solnon. “Measuring the similarity of labeled graphs”, in 5 th International Conference on Case-Based Reasoning (ICCBR 2003), volume Lecture Notes in Artificial Intelligence 2689-Springer – Verlag, pages 80-95, 2003 Sách, tạp chí
Tiêu đề: Measuring the similarity of labeled graphs
2. [2] Olfa Sammoud, Sébastien Sorlin, Christine Solnon, and Khaled Ghédira, “A Comparative Study of Ant Colony Optimization and Reactive Search for Graph Matching Problems” in ô 6th European Conference on Evolutionary Computation in Combinatorial Optimization ằ (EvoCOP 2006) - April 2006, Lecture Notes in Computer Science N°3906 - © Springer - pages 234-246 Sách, tạp chí
Tiêu đề: A Comparative Study of Ant Colony Optimization and Reactive Search for Graph Matching Problems
3. [3] Sebastien Sorlin, Christine Solnon, ô Reactive tabu search for measuring graph similarity ằ, GbRPR 2005: 172-182, http://liris.cnrs.fr/Documents/Liris-1954.pdf4.[4] Sébastien Sorlin et Christine Solnon, “Similarité de graphes : une mesuregénérique et un algorithme tabou réactif”, RJCIA'2005, p.253-266, http://liris.cnrs.fr/Documents/Liris-1526.pdf Sách, tạp chí
Tiêu đề: ô Reactive tabu search for measuring graph similarity ằ," GbRPR 2005: 172-182, http://liris.cnrs.fr/Documents/Liris-1954.pdf4. [4] Sébastien Sorlin et Christine Solnon, “"Similarité de graphes : une mesure "générique et un algorithme tabou réactif
6. [06] Olfa Sammoud, Christine Solnon, and Khaled Gh´edira1, "Ant Algorithm for the Graph Matching Problem", in ô 5th European Conference on Evolutionary Computation in Combinatorial Optimization ằ (EvoCOP 2005) - April 2005 Lecture Notes in Computer Science N°3448 - © Springer Verlag - pages 213-223 7. [07] Pascal Van Hentenryck et Laurent Michel. Constraint-based Local Search. MITPress, 2005 Sách, tạp chí
Tiêu đề: Ant Algorithm for the Graph Matching Problem
9. [09] B.D. McKay, “Practical Graph Isomorphism, Congressus Numerantium, 30, pp.45-87, Vol 30 (1981), http://cs.anu.edu.au/~bdm/papers/pgi.pdf Sách, tạp chí
Tiêu đề: Practical Graph Isomorphism, "Congressus Numerantium
Tác giả: [09] B.D. McKay, “Practical Graph Isomorphism, Congressus Numerantium, 30, pp.45-87, Vol 30
Năm: 1981
10. [10] Sébastien Sorlin, Christine Solnon, “A new filtering algorithm for the graph isomorphism problem”, liris.cnrs.fr/Documents/Liris-2608.pdf Sách, tạp chí
Tiêu đề: Sébastien Sorlin, Christine Solnon, “A new filtering algorithm for the graph isomorphism problem”
11. [11] J.R. Ullman, “An Algorithm for Subgraph Isomorphism,” Journal of the Association for Computing Machinery, vol. 23, pp. 31-42, 1976 Sách, tạp chí
Tiêu đề: An Algorithm for Subgraph Isomorphism,” "Journal of the Association for Computing Machinery
13. [13]. A.V. Aho, J.E. Hopcroft, J.D. Ullmann, “The design and analysis of computer algorithms,” Addison Wesley, 1974 Sách, tạp chí
Tiêu đề: The design and analysis of computer algorithms
15. [15] Ashish Sharma, Santosh Bahir, Sushant Narsale, Unmil Tambe, "A Parallel Algorithm for Finding Sub-graph Isomorphism", CS420-ProjectReport (www.cs.jhu.edu/~snarsal/CS420-ProjectReport.pdf), CS420: Parallel Programming.Fall 2008 Sách, tạp chí
Tiêu đề: A Parallel Algorithm for Finding Sub-graph Isomorphism
16. [16] P. Foggia, C.Sansone, M. Vento, “ A Performance Comparison of Five Algorithms for Graph Isomorphism”, 2001, in Proceedings of the 3rd IAPR TC-15 Workshop on Graph-based Representations in Pattern Recognition, http://amalfi.dis.unina.it/people/vento/lavori/gbr01bm.pdf Sách, tạp chí
Tiêu đề: A Performance Comparison of Five Algorithms for Graph Isomorphism
19. [19] L.P. Cordella, P. Foggia, C. Sansone, M. Vento, “Performance Evaluation of the VF Graph Matching Algorithm,” Proceedings of the 10 th ICIAP, IEEE Computer Society Press, pp. 1172-1177, 1999 Sách, tạp chí
Tiêu đề: Performance Evaluation of the VF Graph Matching Algorithm,” "Proceedings of the 10"th" ICIAP
20. [20] P. Foggia, C. Sansone, M. Vento, “An Improved Algorithm for Matching Large Graphs,” Proceedings of the 3 rd IAPR-TC15 International Workshop on Graph-based Representation, Italy, 2001 Sách, tạp chí
Tiêu đề: An Improved Algorithm for Matching Large Graphs,” "Proceedings of the 3"rd" IAPR-TC15 International Workshop on Graph-based Representation
21. [21] J.J. McGregor, “Backtrack Search Algorithms and the Maximal Common Subgraph Problem”, Software Practice and Experience, Vol. 12, pp. 23-34, 1982 Sách, tạp chí
Tiêu đề: Backtrack Search Algorithms and the Maximal Common Subgraph Problem
8. [08] Pascal Van Hentenryck, Laurent Michel et Andrew See. The COMET Programming Language and System. http://www.comet-online.org/ Link
12. [12]. Hopcroft, J., Wong, J.: Linear time algorithm for isomorphism of planar graphs Khác
14. [14]. Luks, E.: Isomorphism of graphs of bounded valence can be tested in polynomial time. Journal of Computer System Science (1982) 42 – 65 Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w