Nouvelle contrainte pour l'isomorphisme de graphes
Nouvelle contrainte pour l'isomorphisme de graphes
de l’isomorphisme de graphes
RÉSUMÉ. Le problème de l’isomorphisme de graphes consiste à prouver que deux graphes don-
nés ont la même structure. Ce problème peut très facilement être modélisé en un problème de
satisfaction de contraintes puis être résolu par un solveur de contraintes. Toutefois, sur ce type
de problèmes, la programmation par contraintes est bien moins efficace que les algorithmes
dédiés qui sont capables de tirer partie de la sémantique globale du problème. Nous introdui-
sons dans cet article une nouvelle contrainte globale dédiée au problème de l’isomorphisme de
graphes. Nous définissons ensuite l’algorithme de filtrage associé à cette contrainte. Celui-ci
exploite les arêtes du graphe de façon globale afin de réduire le domaine des variables. Nous
montrons aussi que cette contrainte globale est décomposable en un ensemble de "contraintes
de distance" propageant mieux les réductions des domaines que les "contraintes d’arêtes" ha-
bituellement utilisées pour ce problème.
ABSTRACT. The graph isomorphism problem consists in deciding if two given graphs have an
identical structure. This problem can be modeled as a constraint satisfaction problem in a
very straightforward way, so that one can use constraint programming to solve it. However,
constraint programming is a generic tool that may be less efficient than dedicated algorithms
which can take advantage of the global semantic of the original problem. Hence, we introduce
in this paper a new global constraint dedicated to graph isomorphism problems, and we define
an associated filtering algorithm that exploits all edges of the graphs in a global way to narrow
variable domains. We then show how this global constraint can be decomposed into a set of
“distance” constraints which propagate more domain reductions than “edge” constraints that
are usually generated for this problem.
MOTS-CLÉS : Isomorphisme de graphes, contrainte globale
KEYWORDS: Graph isomorphism, global constraint
2 JFPLC 2004.
1. Introduction
Les graphes sont largement utilisés pour représenter des objets structurés tels que
les molécules, les images, les réseaux... De nombreuses applications nécessitent de
comparer des graphes afin de déterminer si leurs structures sont identiques : c’est le
problème de l’isomorphisme de graphes (GIP).
Il existe de nombreux algorithmes dédiés au GIP ([ULL 76, MCK 81, COR 01]).
Ces algorithmes sont très efficaces en pratique, même si leur complexité dans le pire
des cas est exponentielle. Cependant, ces algorithmes sont difficilement utilisables
pour résoudre des problèmes plus généraux (e.g., un GIP auxquel des contraintes sup-
plémentaires ont été ajoutées).
Une alternative intéressante à ces algorithmes dédiés est l’utilisation de la pro-
grammation par contrainte (PPC) qui fournit un cadre générique pour la résolution
des problèmes de satisfaction de contraintes (CSP). En effet, les GIPs peuvent être
aisément transformés en CSPs [MCG 79] et il est possible d’utiliser un solveur géné-
rique de contraintes pour les résoudre. Cependant, la transformation d’un GIP en CSP,
entraîne la perte de la sémantique globale du problème et la PPC est moins efficace
pour résoudre les problèmes d’isomorphisme que les algorithmes dédiés qui gardent
une vue globale du problème.
Le but de notre travail est de permettre aux solveurs de contraintes d’appréhender
les GIPs de façon globale afin qu’ils puissent les résoudre efficacement sans pour au-
tant perdre la souplesse de la PPC. Pour cela, nous introduisons une contrainte globale
dédiée aux GIPs et nous montrons comment exploiter cette globalité pour résoudre
efficacement les GIPs.
La section 2 définit formellement le GIP et propose un rapide survol de la com-
plexité des GIPs et des méthodes de résolution de ces problèmes. La section 3 présente
les propriétés des GIPs utilisées par la suite pour définir notre algorithme de filtrage.
Nous introduisons en section 4 une nouvelle contrainte globale pour modéliser les
GIPs sur des graphes non-orientés ainsi que la technique de filtrage qui lui est asso-
ciée. Lorsque ce filtrage n’est pas suffisant pour résoudre le problème, nous proposons
de remplacer cette contrainte globale par un ensemble de contrainte binaires appelées
"contraintes de distance". Nous discutons en section 5 de l’extension de notre travail
aux graphes orientés et au problème de l’isomorphisme de sous-graphe.
Définitions : Un graphe G est défini par un couple (V, E), V étant l’ensemble fini
des sommets de G et E ⊆ V × V l’ensemble des arcs de G. Nous nous intéresserons
tout particulièrement aux graphes sans boucles, i.e., ∀(u, v) ∈ E, u 6= v. Deux graphes
G = (V, E) et G0 = (V 0 , E 0 ) sont isomorphes s’il existe une fonction bijective f :
V → V 0 telle que (u, v) ∈ E ⇔ (f (u), f (v)) ∈ E 0 . La fonction f est alors appelée
Une contrainte globale pour le GIP 3
Un CSP binaire ne contient que des contraintes binaires, i.e., des contraintes ne
portant que sur exactement deux variables. La contrainte binaire entre les variables
xi et xj est notée C(xi , xj ) et est définie comme l’ensemble des couples (vi , vj ) ∈
D(xi ) × D(xj ) qui satisfont la contrainte.
Résoudre un CSP (X, D, C) consiste à trouver un assignement complet (i.e., af-
fectant une valeur vi ∈ D(xi ) à chacune des variables xi ∈ X) et tel que toutes les
contraintes de C sont satisfaites.
Les CSPs peuvent être résolus en utilisant un solveur de contraintes intégré dans un
langage de programmation par contraintes (CHOCO [LAB 00], Ilog solver [ILO 00],
CHIP [AGG 92]...). Ces solveurs sont basés sur l’exploration complète de l’espace de
recherche et sur la réduction de cet espace par des techniques de filtrage du domaine
des variables telle que la consistance d’arcs (AC) [TSA 93, MOH 86, BES 01].
Utilisation de la PPC pour résoudre un GIP. Un GIP peut être aisément formulé
en CSP. Il est alors possible d’utiliser la PPC pour le résoudre [GAR 79, RÉG 95].
Etant donnés deux graphes G = (V, E) et G0 = (V 0 , E 0 ), nous définissons le CSP
(X, D, C) suivant :
– une variable xu est associée à chaque sommet u ∈ V , i.e., X = {xu /u ∈ V },
– le domaine de chaque variable xu est l’ensemble des sommets de G0 ayant le
même nombre d’arcs entrants et le même nombre d’arcs sortants que u, i.e.,
D(xu ) = {u0 ∈ V 0 / |{(u, v) ∈ E}| = |{(u0 , v 0 ) ∈ E 0 }| et
|{(v, u) ∈ E}| = |{(v 0 , u0 ) ∈ E 0 }|}
– Il existe une contrainte binaire Cedge (xu , xv ) entre chaque paire de variables
(xu , xv ) exprimant le fait que les sommets de G0 assignés à xu et xv doivent être
connectés par un arc si et seulement si (u, v) ∈ E, i.e.,
si (u, v) ∈ E, Cedge (xu , xv ) = E 0
sinon Cedge (xu , xv ) = {(u0 , v 0 ) ∈ V 02 | u0 6= v 0 et (u0 , v 0 ) 6∈ E 0 }
dédié à la contrainte allDiff : celui-ci, basé sur la théorie des couplages, exploite de
façon globale la sémantique de la contrainte pour filtrer très efficacement le domaine
des variables.
Dans cet article, nous introduisons une nouvelle contrainte globale pour modéliser
les GIPs. Cette contrainte n’est pas sémantiquement globale, elle peut être remplacée
par l’ensemble des contraintes binaires présenté plus haut. Cependant, elle permet de
considérer les arcs des graphes de façon globale et ainsi filtrer plus efficacement l’es-
pace de recherche. Notons que cette contrainte peut être combinée avec la contrainte
allDiff afin de filtrer encore plus de valeurs.
Une fonction d’isomorphisme n’associe que des sommets similaires. Les méthodes
basées sur les invariants de sommets utilisent cette propriété pour filtrer l’espace de re-
cherche d’un GIP. Un invariant de sommet est une étiquette l(v) assignée à un sommet
v telle que, s’il existe une fonction d’isomorphisme associant v et v 0 , alors l(v) = l(v 0 )
(l’inverse n’étant cependant pas toujours vrai). L’exemple le plus simple d’invariants
de sommets est le degré d’un sommet (i.e., ses nombres d’arcs entrants et sortants) :
si f est une fonction d’isomorphisme entre G = (V, E) et G0 = (V 0 , E 0 ), alors pour
chaque sommet v ∈ V , les sommets v et f (v) ont le même degré.
Nous introduisons dans cette section quelques définitions et théorèmes utilisés par
la suite pour définir un nouvel invariant de sommets. Nous focaliserons notre attention
sur les graphes non-orientés, i.e., des graphes avec des arêtes non-orientées (les arêtes
(u, v) et (v, u) sont considérées comme identiques). L’extension de notre travail aux
graphes orientés est discutée en section 5.1. Nous supposerons que les graphes sont
connexes, i.e., que chaque sommet est accessible à partir de tous les sommets.
Définition 1. Soit un graphe G = (V, E), un chemin entre deux sommets u et v est
une suite < v0 , v1 , v2 , ..., vk > de sommets telle que v0 = u, vk = v et telle que pour
tout i ∈ [1, k], (vi−1 , vi ) ∈ E. La longueur d’un chemin π, notée |π|, est son nombre
d’arêtes, i.e., k.
Définition 2. Soit un graphe G = (V, E), un plus court chemin entre deux som-
mets u et v est un chemin entre u et v de longueur minimale. La longueur d’un plus
court chemin entre u et v est notée δG (u, v). Nous dirons que δG (u, v) est la distance
entre u et v.
6 JFPLC 2004.
A δG (u, v) A B C D E F G H I J
C A 0 1 1 1 2 1 2 2 3 2
B 1 0 2 2 3 1 3 2 2 1
B D C 1 2 0 1 1 2 2 2 3 3
E D 1 2 1 0 2 2 1 1 2 3
F
E 2 3 1 2 0 2 1 1 2 3
F 1 1 2 2 2 0 3 1 2 1
H G 2 3 2 1 1 3 0 2 1 2
J G H 2 2 2 1 1 1 2 0 1 2
I 3 2 3 2 2 2 1 1 0 1
I J 2 1 3 3 3 1 2 2 1 0
equivalentes :
f est une fonction d’isomorphisme, i.e.,(u, v) ∈ E ⇔ (f (u), f (v)) ∈ E 0 (1)
2
∀(u, v) ∈ V , δG (u, v) = δG0 (f (u), f (v)) (2)
Preuve. (1) ⇒ (2) : si f est une fonction d’isomorphisme, alors (u, v) est une arête
de G si et seulement si (f (u), f (v)) est une arête de G0 donc < v1 , v2 , ..., vn > est un
chemin dans G si et seulement si < f (v1 ), f (v2 ), ..., f (vn ) > est un chemin dans G0 ,
et de sorte que < v1 , v2 , ..., vn > est un plus court chemin dans G si et seulement si
< f (v1 ), f (v2 ), ..., f (vn ) > est un plus court chemin dans G0 . La propriété 2 est donc
vérifiée.
(2) ⇒ (1) : Pour chaque paire de sommets (u, v) ∈ V × V , si (u, v) est une arête
de G, alors < u, v > est le plus court chemin entre u et v, δG (u, v) = 1 et donc
δG0 (f (u), f (v)) = 1. (f (u), f (v)) est donc un arc de G0 (et vice versa).
Le théorème 1 sera utilisé pour définir les "contraintes de distance" permettant la
propagation des réductions de domaines lors de la résolution des GIPs par un solveur
de contraintes. Nous introduisons maintenant quelques définitions utilisées par la suite
pour définir une consistance partielle et un algorithme de filtrage pour les GIPs.
Définition 3. Soit un graphe G = (V, E), un sommet u ∈ V et une distance
i ∈ [0, |V | − 1], nous notons ∆G (u, i) l’ensemble des sommets à une distance de i du
sommet u et #∆G (u, i) le nombre de ces sommets, i.e.,
∆G (u, i) = {v ∈ V /δG (u, v) = i} et #∆G (u, i) = |∆G (u, i)|
Par exemple, pour le graphe G de la figure 1, nous avons :
∆G (A, 0) = {A} #∆G (A, 0) = 1
∆G (A, 1) = {B, C, D, F } #∆G (A, 1) = 4
∆G (A, 2) = {E, G, H, J} #∆G (A, 2) = 4
∆G (A, 3) = {I} #∆G (A, 3) = 1
∆G (A, i) = ∅ #∆G (A, i) = 0, ∀i ≥ 4
Une contrainte globale pour le GIP 7
#∆G (u) = < #∆G (u, 0), #∆G (u, 1), ..., #∆G (u, |V | − 1) >
car il y a un sommet (A) distant de 0 de A et dont la séquence est < 1, 4, 4, 1 >, deux
sommets (B et C) distants de 1 de A dont la séquence est < 1, 3, 4, 2 >, deux autres
sommets (D et F ) distants eux aussi de 1 du sommet A mais dont la séquence est
< 1, 4, 4, 1 >, etc...
Théorème 2. Soient deux graphes G = (V, E) et G0 = (V 0 , E 0 ). S’il existe une
fonction d’isomorphisme f : V → V 0 entre les deux graphes G et G0 , alors, pour
chaque sommet u ∈ V , labelG(u) = labelG0 (f (u)).
Preuve. f est une bijection et la distance entre deux sommets u et v de G est
égale à la distance entre leur images par f (voir le théorème 1), i.e., δ G (u, v) =
δG0 (f (u), f (v)). Par conséquent, le nombre de sommets de G distants de i du som-
met u est égal au nombre de sommets de G0 distants de i du sommet f (u), donc
#∆G (u) = #∆G0 (f (u)). Par conséquent, les ensembles #∆ de séquences des deux
graphes sont égaux, i.e., #∆G = #∆G0 . Pour chaque séquence s ∈ #∆G , et pour
chaque sommet u ∈ V , le nombre de sommets distants de i du sommet u et dont la
séquence est s est égal au nombre de sommets distants de i du sommet f (u) ayant
également pour séquence s. Nous avons donc labelG(u) = labelG0 (f (u)).
La réciproque du théorème 2 n’est cependant pas toujours vraie : en effet, il peut
exister deux sommets ayant le même label et tels qu’il n’existe aucune fonction d’iso-
morphisme les reliant l’un à l’autre.
Nous introduisons ici une nouvelle contrainte globale dédiée aux problèmes d’iso-
morphisme de graphes. Syntaxiquement, cette contrainte est définie par la relation
gip(V, E, V 0 , E 0 , L) où
– V et V 0 sont deux ensembles de valeurs tels que |V | = |V 0 |,
– E ⊆ V × V est un ensemble de couples de valeurs de V ,
– E 0 ⊆ V 0 × V 0 est un ensemble de couples de valeurs de V 0 ,
– L est un ensemble de couples qui associent une variable différente du CSP à
chaque valeur de V , i.e., L est un ensemble de |V | couples (xu , u) où xu est une
variable du CSP, u une valeur de V et pour toute paire de couples (x u , u) et (xv , v)
différents de L, xu et xv sont des variables différentes et u 6= v.
Sémantiquement, la contrainte globale gip(V, E, V 0 , E 0 , L) est consistante si et seule-
ment s’il existe une fonction d’isomorphisme f : V → V 0 telle que pour chaque
couple (xu , u) ∈ L, il existe une valeur u0 ∈ D(xu ) telle que u0 = f (u).
Cette contrainte globale n’est pas sémantiquement globale dans le sens où elle est
sémantiquement équivalente à l’ensemble des contraintes binaires décrit en section 2.
La contrainte gip nous permet cependant d’utiliser la sémantique globale des GIPs
afin de les résoudre plus efficacement. Nous définissons maintenant une consistance
partielle ainsi que l’algorithme de filtrage qui lui est associé (section 4.1). Nous décri-
rons ensuite comment propager les contraintes (section 4.2).
10 JFPLC 2004.
labelG(A) = {(0, < 1, 4, 4, 1 >, 1), (1, < 1, 3, 4, 2 >, 2), (1, < 1, 4, 4, 1 >, 2), ...}
labelG(B) = {(0, < 1, 3, 4, 2 >, 1), (1, < 1, 3, 3, 3 >, 1), (1, < 1, 4, 4, 1 >, 2), ...}
labelG(C) = {(0, < 1, 3, 4, 2 >, 1), (1, < 1, 3, 4, 2 >, 1), (1, < 1, 4, 4, 1 >, 2), ...}
labelG(D) = {(0, < 1, 4, 4, 1 >, 1), (1, < 1, 3, 4, 2 >, 2), (1, < 1, 4, 4, 1 >, 1), ...}
labelG(E) = {(0, < 1, 3, 4, 2 >, 1), (1, < 1, 3, 4, 2 >, 2), (1, < 1, 4, 5, 0 >, 1), ...}
labelG(F ) = {(0, < 1, 4, 4, 1 >, 1), (1, < 1, 3, 3, 3 >, 1), (1, < 1, 3, 4, 2 >, 1), ...}
labelG(G) = {(0, < 1, 3, 4, 2 >, 1), (1, < 1, 3, 4, 2 >, 2), (1, < 1, 4, 4, 1 >, 1), ...}
labelG(H) = {(0, < 1, 4, 5, 0 >, 1), (1, < 1, 3, 4, 2 >, 2), (1, < 1, 4, 4, 1 >, 2), ...}
labelG(I) = {(0, < 1, 3, 4, 2 >, 1), (1, < 1, 3, 3, 3 >, 1), (1, < 1, 3, 4, 2 >, 1), ...}
labelG(J) = {(0, < 1, 3, 3, 3 >, 1), (1, < 1, 3, 4, 2 >, 2), (1, < 1, 4, 4, 1 >, 1), ...}
Tous les sommets de G ont des labels différents. Par conséquent, pour toute contrainte
gip entre G et un autre graphe G0 , le filtrage par label détectera une inconsistance (si
des labels de G ne sont pas présents dans G0 ) ou réduira le domaine de chaque variable
à un singleton rendant alors la consistance globale du problème facile à vérifier.
Nous pouvons comparer la consistance de labels sur la contrainte gip avec la
consistance d’arcs sur le CSP de la section 2. Prenons par exemple un graphe G 0 =
(V 0 , E 0 ) isomorphe au graphe G = (V, E) de la figure 1, et tel que chaque sommet
u ∈ V est renommé en u0 dans G0 . Considérons maintenant le CSP "classique" modé-
lisant le problème qui consiste à trouver une fonction d’isomorphisme entre ces deux
graphes (section 2). Dans ce CSP, le domaine D(xu ) de chaque variable xu contient
tous les sommets u0 ∈ V 0 tels que u et u0 ont le même nombre d’arcs, i.e.,
Ce CSP est déja arc-consistant : le filtrage par arc consistance ne reduira donc aucun
domaine. Notons aussi que sur cet exemple, ajouter une contrainte allDiff ne permet
pas non plus un meilleur filtrage des domaines.
Le filtrage par labels ne permet pas toujours de réduire le domaine de chacune des
variables à un singleton. Considérons par exemple le graphe de la figure 2. Ce graphe
comporte plusieurs symétries (il est isomorphe à n’importe quel graphe obtenu par
une permutation circulaire de ses sommets). Tous les sommets sont donc associés à
une même séquence et un même label. Dans ce cas, le filtrage par labels ne réduira
aucun domaine.
Quand le filtrage par labels ne réduit par le domaine de chaque variable à un sin-
gleton, il est nécessaire d’explorer l’espace de recherche composé de toutes les affec-
tations possibles en construisant un arbre de recherche. A chaque nœud de cet arbre,
le domaine d’une variable est découpé en deux sous-domaines, puis des techniques
de filtrage relatives à des consistances partielles sont utilisées pour réduire le domaine
des variables. Ces techniques de filtrage utilisent les contraintes afin de propager la
réduction du domaine d’une variable sur les domaines des autres variables jusqu’à ce
qu’un domaine devienne vide (le nœud peut alors être coupé), ou qu’un point fixe soit
atteint (soit une solution est trouvée, soit le nœud doit être une fois de plus développé).
Pour utiliser une contrainte gip pour propager les réductions de domaines, une
première possibilité consisterait à utiliser l’ensemble des contraintes C edge tel que
défini en section 2. Cependant, il est possible de tirer partie des résultats obtenus
lors du filtrage par consistance de labels pour définir un ensemble de contraintes plus
"fortes", i.e., des contraintes définies par un nombre plus petit (ou égal) de couples
de valeurs autorisées. La propagation de ces contraintes permet alors de réduire plus
fortement les domaines des variables.
L’idée est de contraindre chaque paire (xu , xv ) de variables associée à la paire
(u, v) de sommets du premier graphe à prendre leurs valeurs parmi l’ensemble des
paires de sommets (u0 , v 0 ) du second graphe tels que la distance entre u et v est égale
12 JFPLC 2004.
Nous pouvons facilement montrer que chaque contrainte binaire C distance (xu , xv )
est au moins aussi forte que la contrainte binaire Cedge (xu , xv ) correspondante :
– si les sommets de G associés aux variables xu et xv sont reliés par une arête,
alors Cdistance (xu , xv ) = Cedge (xu , xv ) = E 0 ,
– sinon, Cdistance (xu , xv ) ⊆ Cedge (xu , xv ) car Cedge (xu , xv ) contient tous
les couples de sommets de G0 qui ne sont pas connectés par un arc alors que
Cdistance (xu , xv ) ne contient que les couples de sommets de G0 tels que la distance
entre leurs sommets est égale à la distance entre les sommets de G associés à x u et
xv .
Par conséquent, quelle que soit la consistance locale considérée, propager une contrainte
Cdistance permettra de réduire au moins autant les domaines que la propagation de la
contrainte Cedge correspondante, et, dans certains cas, réduira même plus fortement
les domaines.
Considérons par exemple le graphe G de la figure 2 et définissons un autre graphe
G0 = (V 0 , E 0 ) isomorphe à G et tel que chaque sommet u ∈ V est renommé en u0
dans G0 . Nous notons xu la variable associée à un sommet u ∈ V . La contrainte d’arc
entre x1 et x4 contient tous les couples de sommets de G0 qui ne sont pas reliés par un
arc, i.e.,
La contrainte de distance entre x1 et x4 étant plus stricte que la contrainte d’arc cor-
respondante, elle permet une meilleur propagation des réductions de domaines. Par
exemple, si x1 est assignée à 10 , une propagation par forward-checking de le contrainte
Cdistance (x1 , x4 ) réduit le domaine de x4 au singleton {40 } alors que la propagation
par forward-checking de Cedge (x1 , x4 ) ne réduit le domaine de x4 qu’à {30 , 40 , 50 },
l’ensemble des sommets qui ne sont pas connectés à 10 .
Une contrainte globale pour le GIP 13
Les définitions et les théorèmes introduits en section 3 restent valables dans le cas
des graphes orientés où les chemins doivent respecter le sens des arcs. Cependant, dans
ce cas, il peut exister beaucoup de couples de sommets qui ne sont pas connectés par
de tels chemins. Les séquences décrivant les sommets peuvent alors être très courtes,
et, dans ce cas, le filtrage par label ne réduira pas beaucoup l’espace de recherche.
Une deuxième façon d’étendre notre travail aux graphes orientés consiste à générer
le graphe non-orienté correspondant (en ignorant le sens des arcs) et à calculer les
séquences et les labels sur ce graphe non-orienté. Des contraintes peuvent alors être
ajoutées pour exprimer le sens des arcs.
Enfin, une dernière façon d’étendre notre travail aux graphes orientés est de consi-
dérer en parallèle différentes distances, basées chacunes sur différents chemins, e.g.,
des chemins orientés, qui respectent le sens des arcs, des chemins non-orientés, qui
ignorent le sens des arcs... Chacune de ces distances peut alors être utilisée pour cal-
culer un label.
Evidemment, si la troisième possibilité permet un filtrage plus important des do-
maines, c’est aussi la plus coûteuse à réaliser. Ces trois possibilités devront être com-
parées expérimentalement.
14 JFPLC 2004.
Cette propriété peut être utilisée pour définir une consistence partielle et l’algo-
rithme de filtrage qui lui est associé. L’idée consiste à vérifier que pour tous les som-
mets u de G, le domaine de la variable xu associée à u ne contient que les sommets u0
tels que, pour toutes les distances k ∈ 1..|V | − 1, le nombre de sommets v ∈ G pour
lesquels δG (u, v) ≤ k est plus petit ou égal aux nombre de sommets v 0 ∈ G0 pour
lesquels δG0 (u0 , v 0 ) ≤ k.
Cette proporiété peut aussi être utilisée pour définir des contraintes et propager les
réductions de domaines pendant l’exploration d’un arbre de recherche.
Une contrainte globale pour le GIP 15
6. Conclusion
Nous introduisons dans cet article une nouvelle contrainte globale pour les pro-
blèmes d’isomorphisme de graphes. Pour une utilisation efficace de cette contrainte
globale, nous définissons une consistance partielle, la consistance de labels, et l’al-
gorithme de filtrage associé, utilisable pour réduire le domaine des variables avant la
résolution du CSP. Cette consistance de labels est basée sur le calcul, pour chaque
sommet u, d’un label qui caractérise les relations en termes de plus court chemin
entre u et les autres sommets du graphe. Dans de nombreux cas, la consistance de
labels permet à un solveur de contraintes de détecter une inconsistance ou de réduire
les domaines des variables à des singletons rendant alors la consistance globale du
problème facile à vérifier.
Pour les cas où la consistance de labels ne permet pas de résoudre à elle seule le
problème de l’isomorphisme de graphes, nous définissons un ensemble de contraintes
de distance, sémantiquement équivalent à la contrainte globale gip, et permettant
de propager les réductions de domaines. Nous montrons que ces contraintes de dis-
tances sont plus "strictes" que les contraintes d’arcs traditionnellement utilisées. Ces
contraintes de distance permettent alors de réduire plus fortement les domaines des
variables lors d’une propagation de contraintes. Les contraintes de distance peuvent
être combinées avec une contrainte globale allDiff pour propager encore mieux les
réductions.
Le filtrage par labels et la génération de l’ensemble des contraintes de distance
peuvent être réalisés en O(np + n2 log(n)) opérations pour les graphes composés de
n sommets et p arcs (n − 1 ≤ p ≤ n2 ). En comparaison, la consistance d’arcs avec
AC2001 sur un CSP décrivant le problème de l’isomorphisme avec des contraintes
d’arcs nécessite O(ed2 ) opérations [BES 93] où e est le nombre de contraintes, i.e.,
e = n(n − 1)/2, et d est la taille du plus grand domaine, i.e., d = n. Etablir la consis-
tance de labels sur notre contrainte globale est donc d’un ordre moins coûteux que la
consistance d’arcs sur les contraintes binaires traditionnellement utilisées. Notons ce-
pendant que ces consistances ne sont pas comparables : pour certains graphes, tel que
le graphe de la figure 1, la consistance de labels permet de résoudre le problème alors
que AC sur les contraintes d’arcs ne réduit aucun domaine. Inversement, sur le graphe
de la figure 2, la consistance de labels ne réduit le domaine d’aucune variable alors
que la consistance d’arcs permet une réduction des domaines dès qu’une variable est
affectée à une valeur.
La suite de notre travail concernera l’intégration de notre algorithme de filtrage
dans un solveur de contraintes (e.g., CHOCO [LAB 00]) afin d’évaluer les perfor-
mances de ce filtrage. Ce travail permettra ensuite d’effectuer des expérimentations
pour déterminer quel invariant d’un couple de sommets offre un bon équilibre entre
puissance de filtrage et temps de calcul. Nous aimerions enfin clarifier les relations
qu’il peut exister entre différentes consistances partielles sur les contraintes C distance
et Cedge . En particulier, lors de tous nos tests, nous avons pu constater qu’après
l’affectation d’une valeur à une variable, une propagation par forward checking des
16 JFPLC 2004.
contraintes Cdistance réduisait au moins autant les domaines qu’une propagation par
consistance d’arc des contraintes Cedge . Nous aimerions donc prouver cette assertion
ou lui trouver un contre-exemple.
7. Bibliographie
[AGG 92] AGGOUN A., B ELDICEANU N., « Extending CHIP in order to solve complex sche-
duling and placement problems », Actes des Journées Francophones de Programmation et
Logique, Lille, France, 1992.
[AHO 74] A HO A., H OPCROFT J., U LLMAN J., The design and analysis of computer algo-
rithms, Addison Wesley, 1974.
[BES 93] B ESSIÈRE C., C ORDIER M.-O., « Arc-Consistency and Arc-Consistency Again »,
Proceedings of the 11th National Conference on Artificial Intelligence, Menlo Park, CA,
USA, juillet 1993, AAAI Press, p. 108–113.
[BES 01] B ESSIÈRE C., R ÉGIN J., « Refining the Basic Constraint Propagation Algorithm »,
N EBEL B., Ed., Proceedings of the seventeenth International Conference on Artificial In-
telligence (IJCAI-01), San Francisco, CA, août 4–10 2001, Morgan Kaufmann Publishers,
Inc., p. 309–315.
[BES 03] B ESSIÈRE C., H ENTENRYCK P. V., « To be or not to be... a global constraint »,
CP’03, Kinsale, Ireland, vol. LNCS N◦ 2833, 2003, p. 789-794.
[CHA 03] C HAMPIN P.-A., S OLNON C., « Measuring the similarity of labeled graphs », 5th
International Conference on Case-Based Reasoning (ICCBR 2003), vol. LNAI N◦ 2689,
2003, p. 80-95.
[COR 90] C ORMEN T., L EISERSON C., R IVEST R., Introduction to Algorithms, MIT Press,
1990.
[COR 01] C ORDELLA L., F OGGIA P., S ANSONE C., V ENTO M., « An Improved Algorithm
for Matching Large Graphs », 3rd IAPR-TC15 Workshop on Graph-based Representations
in Pattern Recognition, Cuen, 2001, p. 149-159.
[FOG 01] F OGGIA P., S ANSONE C., V ENTO M., « A Performance Comparison of Five Algo-
rithm for Graph Isomorphism », 3rd IAPR-TC15 Workshop on Graph-based Representa-
tions in Pattern Recognition, Cuen, 2001, p. 188-199.
[FOR 96] F ORTIN S., « The Graph Isomorphism Problem », rapport, 1996, Dept of Computing
Science, Univ. Alberta, Edmonton, Alberta, Canada.
[GAR 79] G AREY M., J OHNSON D., Computers and Intractability : A Guide to The Theory
of NP-Completness, W.H. Freeman, San Francisco, 1979.
[HOP 74] H OPCROFT J., W ONG J., « Linear time algorithm for isomorphism of planar
graphs », Proc. 6th Annual ACM Symp. theory of Computing, vol. ACM Press, 1974,
p. 172-184.
[ILO 00] ILOG S., ILOG Solver 5.0 User’s Manual and Reference Manual, ILOG,S.A., 2000.
[LAB 00] L ABURTHE F., THE OCRE PROJECT TEAM, « CHOCO : implementing a CP ker-
nel », Proc. of the CP’2000 workshop on techniques for implementing constraint program-
ming systems, Singapore, 2000.
[LUK 82] L UKS E., « Isomorphism of Graphs of bounded valence can be tested in polynomial
time », Journal of Computer System Science, vol. 25, 1982, p. 42-65.
Une contrainte globale pour le GIP 17
[MCG 79] M C G REGOR J., « Relational Consistency Algorithms and Their Applications in
Finding Subgraph and Graph Isomorphisms », Information Science, vol. 19, 1979, p. 229-
250.
[MCK 81] M C K AY B., « Practical Graph Isomorphism », Congressus Numerantium, vol. 30,
1981, p. 45-87.
[MOH 86] M OHR R., H ENDERSON T., « Arc and path consistency revisited », Artificial In-
telligence, vol. 28, 1986, p. 65-74.
[RÉG 95] R ÉGIN J., « Développement d’Outils Algorithmiques pour l’Intelligence Artifi-
cielle. Application à la Chimie Organique », PhD thesis, Université Montpellier II, 1995.
[TSA 93] T SANG E., Foundations of Constraint Satisfaction, Academic Press, 1993.
[ULL 76] U LLMAN J., « An algorithm for subgraph isomorphism », Journal of the Association
of Computing Machinery, vol. 23, no 1, 1976, p. 31-42.