• Aucun résultat trouvé

Réduction du nombre de candidats à l’appariement

Comparer des objets structurés

2.1 Identifier l’intersection d’objets structurés

2.3.2 Réduction du nombre de candidats à l’appariement

La complexité de la recherche d’un appariement multiple entre deux clauses est due à la taille de l’espace de recherche. En effet, pour chaque variable d’une clause h, il faut en théorie tester l’appariement avec les m variables de la clause ex pour identifier celle qui semble la plus judicieuse pour conduire à la subsomption.

Pour diminuer la complexité du problème, on peut réduire, pour chaque variable (ou littéral) à apparier dans la clause h, le nombre de variables (ou littéraux) candidats à l’appariement dans la clause ex, c’est-à-dire ceux qui sont appariables avec les variables (ou littéraux) de la clause h. L’idée est de ne sélectionner et tester que les variables ou les littéraux similaires (voir la section 2.2.2 sur les appariements exacts).

[Wysotzki et al., 1981] a proposé une telle approche pour le problème d’isomorphisme de graphe. Cette idée a été reprise par [Scheffer et al., 1996] dans le cadre du test de

2.3. Test d’inclusion entre clauses

subsomption en cherchant à réduire le nombre de littéraux candidats ; il se base pour cela sur le graphe dual d’une clause et le contexte d’un littéral.

Définition(Graphe dual)

Le graphe Gd= (S, A) est le graphe dual (Scheffer l’appelle le graphe de littéraux) d’une clause h où chaque sommet dans S est un littéral liti de h et l’ensemble A composé des arêtes (liti, litj) si et seulement si il y a une variable à la fois dans litiet dans litj.

Un exemple de graphes duaux pour les clauses h = p(x1, x2), p(x2, x3), p(x1, x3) et ex =

p(x1, x 2), p(x 4, x 1), p(x 1, x 3), p(x 2, x 3), p(x 3, x

4) est illustré sur la figure 2.8.

p(x1, x2) p(x1, x3) p(x2, x3) p(x'1, x'2) p(x'2, x'3) p(x'1, x'3) p(x'4, x'1) p(x'3, x'4)

Figure 2.8 –Exemples de graphes duaux (graphes de littéraux).

Définition(Contexte d’un littéral)

Le contexte de profondeur d d’un littéral lit ∈ h, noté conlit(lit, h, d), est l’ensemble de tous les chemins de longueur d ayant pour origine le littéral lit dans le graphe dual de h. La taille du contexte croît exponentiellement avec d mais reste bornée par la taille de la clause h.

Dans l’algorithme LITCON, [Scheffer et al., 1996] utilise le contexte des littéraux pour réduire le nombre de candidats à l’appariement de la manière suivante : un littéral

lit dans h ne peut être apparié avec un littéral lit dans ex que si le contexte de lit est inclus dans le contexte de lit: conlit(lit, h, d) ⊆ conlit(lit, h, d).

Reprenons l’exemple des graphes duaux de la figure 2.8 où l’on cherche à ap-parier le littéral p(x1, x2) appartenant à la clause h. Sans réduction, il faudrait tester l’appariement avec les 5 littéraux de la clause ex. On construit le contexte du littéral

conlit(p(x1, x2), h, 1) = {p(x1, x3), p(x2, x3)} que l’on compare au contexte des littéraux de ex : conlit(p(x1, x 2), ex, 1) = {p(x 4, x 1), p(x 1, x 3), p(x 2, x 3)} conlit(p(x1, x 3), ex, 1) = {p(x 1, x 2), p(x 4, x 1), p(x 3, x 4), p(x 2, x 3)} conlit(p(x2, x 3), ex, 1) = {p(x 1, x 2), p(x 1, x 3), p(x 3, x 4)}

conlit(p(x4, x 1), ex, 1) = {p(x 1, x 2), p(x 1, x 3), p(x 3, x 4)} conlit(p(x3, x 4), ex, 1) = {p(x 2, x 3), p(x 1, x 3), p(x 4, x 1)}

Le seul contexte de littéral dans ex qui contienne le contexte conlit(p(x1, x2), h, 1) est

conlit(p(x1, x

2), ex, 1). Ainsi, il n’y a plus qu’un seul littéral candidat pour l’apparie-ment : le littéral p(x1, x

2).

Dans de nombreux cas, lorsque le graphe de littéral est développé à une profondeur

d, les contextes sont suffisamment grands pour que les appariements soient uniques. Les tests d’appariement peuvent alors être réalisés de façon déterministe, c’est-à-dire que la liste des candidats à l’appariement ne contient qu’un seul littéral. La contrepartie est que la construction du graphe dual est exponentielle en d.

Cependant, cet algorithme souffre du passage à l’échelle pour de grandes valeurs de d [Karabaev et al., 2006]. Une approche similaire, nommée OBJCON, est proposée par [Hölldobler and Skvortsova, 2006] où les appariements sont dirigés par les variables et non plus par les littéraux ; la réduction du nombre de candidats étant basée sur le contexte lié aux variables. D’autres approches utilisent la notion de contexte comme [Zampelli et al., 2007].

Cette approche est intéressante car elle permet d’identifier rapidement les apparie-ments qui conduisent à des échecs. Cependant, le concept de chemin dans un graphe ne concerne que les relations binaires (des graphes ou des littéraux à deux variables) et la notion de contexte, telle qu’elle est définie ici, semble être difficilement généralisable à des relations n-aires.

2.4 Similarité entre clauses logiques

Nous nous intéressons maintenant à l’évaluation de la similarité entre de deux clauses logiques qui renvoie une réponse à valeur continue. Pour répondre à cette pro-blématique, [Landwehr et al., 2006] propositionnalise les structures qui sont alors repré-sentées par un ensemble de descripteurs pour définir une mesure de similarité entre ces ensembles de descripteurs ; ce type d’approche est souvent accompagnée d’une perte d’information structurale.

Un autre type d’approche, que nous allons détailler plus profondément, consiste à comparer directement les structures ; c’est ce que propose [Bisson, 1992] en recherchant le meilleur appariement entre les littéraux de deux clauses. Le principe de la méthode est identique aux approches présentées dans la section précédente à savoir la réduction du nombre de candidats à l’appariement. Ici, l’algorithme cherche à apparier les littéraux

2.4. Similarité entre clauses logiques

contenant les variables les plus similaires en se basant sur l’hypothèse suivante. Deux variables sont d’autant plus similaires qu’elles partagent des propriétés communes et qu’elles apparaissent dans des contextes similaires, c’est-à-dire qu’elles apparaissent, à la même position, dans des littéraux basés sur les mêmes symboles de prédicats et que leurs variables voisines sont elles-mêmes similaires entre elles.

La méthode se déroule en deux étapes :

– la construction d’une matrice SIM de similarité locale entre chaque paire de va-riables (vi, v

m) appartenant respectivement à h et ex ;

– la recherche d’un appariement optimal entre les variables des deux clauses, en se guidant sur les valeurs contenues dans la matrice SIM.

La méthode est décrite ici en ne considérant que des littéraux commutatifs mais elle s’adapte naturellement aux littéraux non commutatifs.