Ensimag Module IRL
Dénombrement de modèles
Sellami Yanis 13 mai 2015
Travail encadré par Mnacho Echenim et Nicolas Peltier
.
Résumé
Etant donné une conjonction de littéraux construits à partir de constantes et d’un prédicat
binaire, on s’intéresse au problème du dénombrement des modèles de cette conjonction qui
interprètent le prédicat comme une relation d’équivalence. Après avoir démontré que ce problème
est équivalent au dénombrement des coloriages corrects et non-équivalents d’un graphe non-
orienté, on étudie l’efficacité de l’algorithme correspondant ainsi que plusieurs améliorations de
cet algorithme.
lig, équipe capp
1
Sommaire
1 Introduction 2
2 Exposition du problème 3
3 Méthode de comptage 3
3.1 Réduction au problème de coloriage de graphe .................... 3
3.2 Méthode de comptage de coloriages .......................... 5
4 Prototype 6
4.1 Comptage de coloriages ................................ 6
4.1.1 Description de l’algorithme .......................... 6
4.1.2 Cas de base et réduction ............................ 6
4.1.3 Choix du type d’étape et de l’arête ...................... 6
4.2 Structure de graphe .................................. 8
4.2.1 Représentation générale ............................ 8
4.2.2 Activation/Désactivation des sommets .................... 8
4.2.3 Algorithme de fusion de sommets ....................... 10
4.2.4 Suppression de sommets ............................ 11
4.3 Reconnaissance incrémentale de motif ........................ 11
4.4 Distance et cas de base ................................. 11
4.5 Mémoisation ...................................... 12
4.6 Interface logique/graphe ................................ 12
5 Mesures et évolution des performances 12
5.1 Application de la relation (1) ............................. 13
5.2 Application de la relation (2) ............................. 13
5.3 Couplage des deux relations .............................. 13
5.4 Choix du seuil pour appliquer les relations (1) ou (2) ................ 15
5.5 Ajout de la relation (3) ................................. 15
6 Conclusions 16
Bibliographie 17
1 Introduction
On s’intéresse dans ce travail au problème de comptage du nombre d’interprétations validant
une formule donnée. En logique propositionnelle, ce problème est noté #SAT. Il consiste à
compter, pour une formule Fdonnée, le nombre d’affectations des variables propositionnelles de
Ftelles que Fsoit évaluée à vrai. Ce problème possède des applications pour le raisonnement
probabiliste notamment ([8]).
Des algorithmes existent pour résoudre le problème #SAT. Notre objectif est de traiter le cas
où la formule Fest interprétée modulo une théorie. On considère uniquement la théorie définie
par les axiomes de reflexivité, symétrie et transitivité sur un prédicat Rdonné. Les atomes sont
alors des équations de la forme R(a, b)a, b sont des constantes et Rreprésente une relation
d’équivalence. On se limite de plus au cas où les formules sont des conjonctions de littéraux
(atomes ou négations d’un atome).
2
2 Exposition du problème
Comme le problème peut être traité indépendamment de l’interprétation dans le cadre lo-
gique, on considère par la suite des ensembles quelconques munis d’une relation partielle définie
ci-dessous.
Définition 1. On appelle relation d’équivalence partielle Rdéfinie sur un ensemble Lun couple
(R+,R)R+représente les éléments qui doivent être en relation par Ret Rceux qui ne
doivent pas être en relation par R. Les autres éléments peuvent ou peuvent ne pas être en
relation par R.
Si R+est une relation d’équivalence, alors Rest une relation d’équivalence partielle.
Définition 2. On appelle relation totale Rdéfinie sur un ensemble Lune relation qui est
partielle sur Let qui vérifie :
1. R+∪ R=L2
2. R+∩ R=
Notation 1.On note [a](ou encore [a]Ren cas d’ambiguïté) la classe d’équivalence de l’élément
apar une relation d’équivalence R. Si la relation est définie partiellement, cela correspond aux
classes de la relation R+.
Exemple 1.Soit L={a, b, c, d, e}et Rune relation d’équivalence partielle définie par : R+(a, b),
R+(c, d),R(a, c)et R(a, e).
Comme R+est une classe d’équivalence, on a aussi R+(b, a)et R+(d, c).
Rpossède trois classes d’équivalence : [a] = {a, b},[c] = {c, d},[e] = {e}.
Dans la suite, on cherche à déterminer le nombre de relations d’équivalence totales R0conte-
nant R, c’est-à-dire telle que R+⊆ R0+et R⊆ R0−. On notera ML,Rl’ensemble de ces
relations.
Exemple 2.Dans notre exemple, Rpeut être étendue de deux façons différentes : soit en donnant
R+(c, e), soit en donnant R(c, e)(les autres relations découlant des propriétés des relations
d’équivalence.)
3 Méthode de comptage
3.1 Réduction au problème de coloriage de graphe
Pour la suite du problème, il est nécessaire de définir quelques notions sur les graphes. On
rappelle qu’un graphe non-orienG= (V, E)est défini par son ensemble de sommets Vet son
ensemble d’arêtes E, chaque arête étant composée d’un couple de sommets.
Définition 3. On appelle coloriage d’un graphe toute application qui associe une couleur à
chaque sommet du graphe. On représentera les couleurs par des entiers naturels compris entre
0et |V| − 1(le nombre maximal de couleurs étant égal au nombre de sommets).
Définition 4. On dit que cest un coloriage correct de G= (V, E)s’il n’existe aucun couple de
nœuds adjacents de même couleur. C’est-à-dire :
(ai, aj)V2,(ai, aj)Ec(ai)6=c(aj)
Dans toute la suite, on ne considère que des coloriages corrects.
Définition 5. On dit que c1et c2deux coloriages d’un graphe G= (V, E)sont équivalents si :
3
1. |Im c1|=|Im c2|
2. Il existe une permutation πdes couleurs de Im c1telle que
vV, c2(v) = (πc1)(v)
Définition 6. On note P(G)le nombre de coloriages corrects non-équivalents d’un graphe.
On décrit maintenant une méthode de transformation du problème de dénombrement de
relations totales en un problème de comptage des coloriages corrects non-équivalents d’un graphe.
Définition 7. On appellera GL,Rle graphe associé à une relation partielle Rsur L. Ce graphe
est défini par GL,R= (V, E)avec
V={[ak]|akL}
E={([ai],[aj]) | R(ai, aj)}.
Exemple 2.Pour l’exemple précédent, GL,Rest le graphe ci-dessous :
[a][c] [e]
Propriété 1. Si GL,Rcontient une boucle (arête d’un sommet vers lui-même), il n’existe aucun
coloriage correct (sommet relié à lui-même, de même couleur).
Ce cas correspond à une situation dans laquelle R+∩ R6=, dans lequel il n’existe pas
non plus de relation totale contenant R(car on aurait (a, b)L2,R+(a, b)et R(a, b)).
Théorème 1. R0est une relation d’équivalence contenant Rsi et seulement s’il existe un
coloriage cde GL,Rtel que R0(ai, aj)est vrai si et seulement si c([ai]R) = c([aj]R).
Démonstration. S’il existe un tel coloriage, nécessairement R0contient Rcar deux éléments en
relation par Rseront dans la même classe (en particulier dans des classes de même couleur),
donc en relation par R0. Deux même, deux éléments de Rseront dans des classes de couleurs
différentes car reliées par une arête (par construction du graphe).
Réciproquement, si R0est une relation contenant R, il suffit d’attribuer une couleur différente
à chaque classe d’équivalence de R0. Comme R0contient R, cela définit également les couleurs
pour les classes d’équivalence de R(sommets du graphe), donc un coloriage du graphe. Comme
R⊂ R0−, les éléments du graphes reliés par une arête (dans des classes de Rdistinctes) sont
dans des classes de R0distinctes. Ce coloriage est donc un coloriage correct.
Corollaire 1. |ML,R|=P(GL,R). Autrement dit, le nombre de relations de ML,Rest égal au
nombre de coloriages corrects non-équivalents de GL,R.
Exemple 3.Pour notre exemple, les coloriages corrects et non-équivalents de GL,Rsont les sui-
vants :
[a][c] [e] [a][c] [e]
Ces coloriages correspondent aux deux relations trouvées précédemment (R+(c, e)et R(c, e)).
D’après le corollaire 1, pour compter le nombre de relations de ML,R, il suffit de construire
le graphe associé GL,Rpuis compter le nombre de coloriages non-équivalents de GL,R.
Remarque 1. La réduction réciproque existe également : pour connaître le nombre de colo-
riages corrects non-équivalents d’un graphe G, il suffit de dénombrer le nombre de relations
d’équivalences contenant la relation partielle RGdéfinie par R+
G=Id et R
G=E.
4
3.2 Méthode de comptage de coloriages
Le problème du comptage de coloriages non-équivalents d’un graphe a déjà fait l’objet de
nombreux travaux de recherche. On citera notamment [3] pour le résumé d’un algorithme expli-
cite et [2] pour la résolution dans un cas particulier. On en connaît en particulier un algorithme
exponentiel que l’on va implanter.
Définition 8. Soient Gun graphe et u, v deux sommets de G. Si l’arête (u, v)n’existe pas, on
note G+uv le graphe Gauquel on a ajouté l’arête (u, v).
De même si l’arête (u, v)existe dans G, on note Guv le graphe Gauquel on a retiré cette
arête.
Définition 9. Soient Gun graphe et u, v deux sommets de Gqui ne sont pas reliés par une
arête. On note G\uv le graphe Gdans lequel on a fusionné les sommets uet v. On peut voir
cette opération comme le remplacement de uet vpar un seul sommet relié à tous les sommets
qui avaient une arête commune soit avec u, soit avec v.
Définition 10. Soient Gun graphe et uun sommet de G. On note Gule graphe Gauquel
on a retiré le sommet uet toutes les arêtes qui avaient upour extrémité.
Un algorithme récursif pour compter le nombre de coloriages non-équivalents d’un graphe
est donné par la formule ci-dessous ([3] (7)).
P(G) = P(G+uv) + P(G\uv)(1)
Cela revient à considérer pour chaque couple de sommets (u, v)pour lequel un choix est possible
(i.e. non reliés par une arête) les coloriages dans lesquels uet vsont de couleurs différentes, puis
ceux dans lesquels ils ont la même couleur ; des démonstrations sont données dans [3] et [2]. Le
nombre de coloriages est obtenu en appelant récursivement Psur le graphe obtenu en ajoutant
l’arête (u, v)(premier cas, uet vsont de couleurs différentes) ou en fusionnant uet v(second
cas).
Le cas de base de cet algorithme est donc le graphe complet (qui n’a qu’un seul coloriage
possible puisque chaque sommet y est relié à tous les autres.)
En réécrivant cette formule, on obtient :
P(G) = P(Guv)− P(G\uv)(2)
Cette formule permet de calculer Pen supprimant des arêtes jusqu’à arriver à un graphe vide
(cas de base). Le nombre de coloriages non équivalents du graphe vide est égal au nombre de
relations d’équivalences sur l’ensemble des sommets (nombre de Bell, voir [4]).
Il est également facile de remarquer que si uest un sommet dominant de G(relié à tous les
autres sommets), on a :
P(G) = P(Gu)(3)
En effet, ce sommet étant relié à tous les autres, il aura nécessairement sa propre couleur.
Dans la suite, on s’intéresse à la mise en place d’un algorithme réalisé à partir de ces trois
relations pour déterminer le nombre de coloriages non-équivalents d’un graphe. Ces relations
peuvent être utilisées pour calculer le nombre de coloriages d’un graphe en se ramenant soit à
un graphe complet (en ajoutant des arêtes) soit à un graphe vide (en en enlevant). Le choix
entre les deux méthodes dépend du nombre d’arêtes du graphe considéré.
5
1 / 17 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !