Actes JFPC 2016
Exploiter les d´efinitions
pour le comptage de mod`eles
Jean-Marie Lagniez1Emmanuel Lonca1Pierre Marquis1
1Universit´e d’Artois, CRIL-CNRS UMR 8188
{lagniez,lonca,marquis}@cril.fr
esum´e
Nous pesentons une nouvelle technique pour le
comptage de mod`eles propositionnels qui exploite les d´e-
finitions de variables, i.e. la d´etection de portes logiques
impliqu´ees par la formule Σfournie en entr´ee. De telles
portes peuvent ˆetre utilis´ees pour simplifier la formule
Σlors d’une phase de pr´etraitement sans modifier son
nombre de mod`eles, mais en rendant le comptage de
ceux-ci plus ais´e. Contrairement `a d’autres approches de
l’´etat de l’art, nous exploitons simplement l’existence de
telles portes, sans besoin de les expliciter. Notre pr´e-
traitement se d´ecompose en deux phases : dans un pre-
mier temps, nous calculons une bipartition hI, Oides
variables de Σtelles que les variables de Osoient d´efi-
nies dans Σ`a partir des variables de I; dans un second
temps, nous ´eliminons des variables de Odans Σ. Nous
montrons l’importance des b´en´efices empiriques pouvant
ˆetre apport´es par notre pr´etraitement pour le comptage
de mod`eles.
Abstract
We present a new preprocessing technique for pro-
positional model counting. This technique leverages de-
finability, i.e., the ability to determine that some gates
are implied by the input formula Σ. Such gates can be
exploited to simplify Σwithout modifying its number of
models. Unlike previous approaches, we only take ad-
vantage of the existence of gates, but we do not need
to make the gates explicit. Our preprocessing technique
thus consists of two phases : computing a bipartition
hI, Oiof the variables of Σwhere the variables from O
are defined in Σin terms of I, then eliminating some
variables of Oin Σ. Our large scale experiments clearly
show the computational benefits which can be achieved
by taking advantage of our preprocessing technique for
model counting.
1 Introduction
Le comptage de mod`eles propositionnels (aussi
connu sous le nom de probl`eme #sat) est le probl`eme
qui consiste `a compter combien une formule d’entr´ee
Σ admet de mod`eles. Ce probl`eme (et sa g´en´eralisa-
tion pond´er´ee) est central en intelligence artificielle
(IA), de par son utilisation pour l’inf´erence probabi-
liste [31, 8, 1, 9] ou la planification [27, 12], mais aussi
en dehors du champ de l’IA ; il est par exemple utilis´e
pour la recherche de vuln´erabilit´e de circuits ´electro-
niques [14].
#sat est un probl`eme d’une complexit´e th´eorique
´elev´ee (#P-complet), plus difficile en th´eorie et en pra-
tique que le probl`eme sat. Son importance explique
l’effort fourni par la communaut´e durant ces derni`eres
d´ecennies pour d´evelopper de nouveaux algorithmes et
des logiciels pour compter de mani`ere exacte ou appro-
cee le nombre de mod`eles de formules de plus en plus
grandes [29, 4, 15].
Dans cet article, nous pr´esentons un nouveau pr´e-
traitement, bas´e sur l’identification de d´efinitions,
pour am´eliorer l’efficacit´e des compteurs exacts de mo-
d`eles. Les m´ethodes de pr´etraitement sont aujourd’hui
consid´er´ees comme des moyens efficaces pour am´elio-
rer divers prouveurs sat ou qbf [5, 32, 13, 28, 16, 17,
19, 18], et on les trouve donc implant´ees dans les prou-
veurs de l’´etat de l’art (on peut citer, parmi d’autres, le
pr´eprocesseur SatELite [13] dans Glucose [2], le pr´e-
processeur interne de Lingeling [7], ou encore le pr´e-
processeur Coprocessor [24] utilis´e dans Riss [25]).
Notre approche se base sur celle de [21], qui d´ecrit
divers pr´etraitements pour am´eliorer les performances
du calcul de nombre de mod`eles d’une formule Σ, et
pr´esente en particulier des pr´etraitements op´erant par
d´etection et remplacement de portes logiques. L’id´ee
g´en´erale de cette approche est que toute variable yde
Σ d´efinie dans Σ en fonction d’un ensemble d’autres
variables X={x1, . . . , xk}peut ˆetre remplac´ee par
sa d´efinition ΦXsans modifier le nombre de mod`eles
de Σ. Plus pr´ecis´ement, pour toute affectation des va-
riables de X, soit cette affectation est inconsistante
avec Σ, soit tout mod`ele ´etendant cette affectation par-
tielle donne la mˆeme valeur de v´erit´e `a y. Dans [21],
les portes logiques consid´er´ees (´equivalence de litt´e-
raux, portes ET, OU, XOR) permettent au pr´eproces-
seur pmc propos´e par Lagniez et Marquis de conduire
`a des gains tr`es importants en terme de temps de cal-
cul lorsque les portes d´etect´ees par la combinaison de
pr´etraitements nomm´ee #eq sont remplac´ees par leurs
d´efinitions. Cependant, pmc reste limit´e au sens o`u il
ne permet de ne traiter qu’un nombre r´eduit de portes
logiques.
Pour aller au del`a de cette limitation, notre nou-
velle technique de pr´etraitement tend `a s’attaquer au
probl`eme de mani`ere beaucoup plus agressive, avec
l’id´ee qu’il n’est pas n´ecessaire d’identifier les portes
logiques mais qu’il peut ˆetre suffisant de d´eterminer
que ces portes existent. Plus pr´ecis´ement, il se r´ev`ele
suffisant de d´eterminer qu’il existe des relations de
d´efinitions entre variables ; il n’est pas n´ecessaire de
d´eterminer comment sont d´efinies ces relations. Cette
distinction est de premi`ere importance dans la mesure
o`u, bien que l’espace de recherche des d´efinitions po-
tentielles ΦXsoit tr`es important (22k´el´ements `a l’´equi-
valence logique pr`es, quand Xcontient kvariables), la
taille d’une d´efinition explicite ΦXde ydans Σ n’est
pas, dans le cas g´en´eral, born´ee par un polynˆome en
|Σ|+|X|sous l’hypoth`ese NP coNP 6⊆ P/poly, consi-
d´er´ee usuellement adopt´ee en th´eorie de la complexit´e
[23].
Nous d´ecrivons ainsi dans la suite un nouveau pr´e-
processeur, B+E, qui associe `a toute formule CNF d’en-
tr´ee Σ une formule CNF Φ qui admet le mˆeme nombre
de mod`eles mais qui est au moins aussi «simple »au
regard du nombre du nombre de variables et de la taille
de la formule 1.
L’algorithme B+Econsiste en deux ´etapes : Bqui
calcule une Bipartition hI, Oides variables de Σ telle
que toute variable de Osoit d´efinie dans Σ par des
variables de I, et Edont le but est d’ ´
Eliminer des va-
riables de Odans Σ. Notre contribution inclut la pr´e-
sentation des algorithmes Bet E, une preuve de la cor-
rection de notre pr´eprocesseur, et des r´esultats exp´e-
1. La restriction imposant `a la formule d’entr´ee d’ˆetre sous
forme normale conjonctive est faible dans la mesure o`u la trans-
formation de Tseitin [34] permet de transformer n’importe quel
circuit propositionnel en une formule CNF admettant le mˆeme
nombre de mod`eles (cet encodage proc´edant justement par ajout
de portes logiques). Notons par ailleurs que les formules CNF sont
les formules d’entr´ee des compteurs de mod`eles de l’´etat de l’art,
comme Cachet [30], C2D [10, 11] ou sharpSAT [33].
rimentaux montrant les gains fournis par l’utilisation
de B+Ecomme pr´eprocesseur `a un compteur exact
de mod`eles, en lieu et place de pmc. Les instances de
tests, le code de B+E, et les r´esultats d´etaill´es de notre
´etude empirique sont disponibles en ligne `a partir de
www.cril.fr/KC/.
Dans la suite de cet article, nous rappelons d’abord
la notion de d´efinition en logique propositionnelle et
quelques r´esultats cl´es sur le sujet. Nous pr´esentons
ensuite le pr´eprocesseur B+Eet la preuve de sa cor-
rection. Nous d´ecrivons l’´etude exp´erimentale r´ealis´ee,
qui montre les gains apport´es par B+E(en particu-
lier, par rapport `a pmc), avant de conclure et de lister
quelques perspectives de travaux futurs.
2 De la d´efinissabilit´e propositionnelle
Commen¸cons par quelques pr´eliminaires sur la lo-
gique propositionnelle. Soit PROPPS le langage pro-
positionnel (classique) d´efini de mani`ere inductive sur
l’ensemble fini de variables propositionnelles PS , l’en-
semble des connecteurs logiques usuels (¬,,,, ...)
et les constantes bool´eennes >et ; ces formules sont
interpr´et´ees de mani`ere classique. Pour toute formule
Σ de PROPPS , l’ensemble des variables de PS appa-
raissant dans Σ est not´e Var (Σ), le nombre de mod`eles
de Σ sur Var(Σ) est not´e kΣk. Un litt´eral `est soit une
variable (`=x) de PS soit la n´egation d’une variable
(`=¬x). Quand `est un litt´eral, var(`) est la variable
sur laquelle est construit ce litt´eral. Un terme est une
conjonction de litt´eraux ou >, une clause est une dis-
jonction de litt´eraux ou . Une formule CNF est une
conjonction de clauses. ´
Etant donn´e un sous-ensemble
de variables XP S, un terme canonique γXsur X
est un terme coh´erent dans lequel toutes les variables
de Xapparaissent (sous la forme d’un litt´eral posi-
tif ou n´egatif, i.e. une variable ni´ee). On note X.Σ
l’oubli des variables de Xdans Σ, i.e. toute formule
´equivalente `a la cons´equence logique la plus forte de Σ
qui est ind´ependante des variables de X[22].
On rappelle maintenant les deux formes (´equiva-
lentes) sous lesquelles le concept de d´efinissabilit´e pro-
positionnelle peut ˆetre rencontr´e dans la litt´erature.
efinition 1 (d´efinition implicite) Soit Σ
PROPPS ,XPS et yPS. Σ d´efinit de ma-
ni`ere implicite y`a partir de Xsi et seulement si pour
tout terme canonique γXsur X, on a γXΣ|=you
γXΣ|=¬y.
efinition 2 (d´efinition explicite) Soit Σ
PROPPS ,XPS et yPS. Σ d´efinit explicite-
ment y`a partir de Xsi et seulement si il existe une
formule ΦXPROPXtelle que Σ|= ΦXy. Dans
ce cas, ΦXest appel´ee d´efinition (ou porte) de ysur
Xdans Σ,yest la variable de sortie de la porte, et X
est l’ensemble des variables d’entr´ee.
Exemple 1 Soit Σla formule CNF constitu´ee de la
conjonction des clauses suivantes :
ab,¬a∨ ¬bd,ae,
ac∨ ¬e,¬a∨ ¬cd,bce,
a∨ ¬d,¬a∨ ¬bc∨ ¬e,¬b∨ ¬ce,
bc∨ ¬d,¬ab∨ ¬c∨ ¬e.
Les variables det esont d´efinies implicitement dans
Σ`a partir de X={a, b, c}. On peut par exemple v´eri-
fier que pour le terme canonique γX=ab∧ ¬c, on
γXΣ|=d¬e; pour γ0
X=¬a¬b¬c,γ0
XΣest in-
coh´erent. On peut aussi v´erifier que det esont d´efinies
explicitement dans Σ`a partir de X={a, b, c}; plus
pr´ecis´ement Σimplique les ´equivalences suivantes :
d(a(bc)) et e(¬a(bc)).
Le fait que les mˆemes variables soient d´efinies `a la
fois implicitement et explicitement n’est pas fortuit,
comme l’explique le th´eor`eme suivant, u `a Beth [6],
et restreint ici `a la logique propositionnelle.
Th´eor`eme 1 Soit ΣPROPPS ,XPS et yPS.
Σd´efinit implicitement y`a partir de Xsi et seulement
si Σd´efinit explicitement y`a partir de X.
Puisque ces deux notions de d´efinissabilit´e co¨
ın-
cident, nous dirons souvent dans la suite que yest
d´efini `a partir de Xdans Σ, sans pr´eciser s’il s’agit de
d´efinissabilit´e implicite ou explicite.
Une cons´equence int´eressante du th´eor`eme de Beth,
dans notre optique de pr´etraitement, est qu’il n’est pas
n´ecessaire d’expliciter une d´efinition ΦXde y`a partir
de Xpour montrer qu’elle existe ; il suffit de d´emontrer
que Σ d´efinit implicitement y`a partir de X, ce qui est
un probl`eme «seulement »coNP-complet [23]. Ceci
r´esulte du th´eor`eme suivant, dˆu `a Padoa [26], restreint
`a la logique propositionnelle et rappel´e dans [23].
Th´eor`eme 2 ´
Etant donn´e ΣPROPPS et XPS,
soit Σ0
Xla formule obtenue en rempla¸cant de mani`ere
uniforme dans Σtoute occurrence de symbole propo-
sitionnel xde Var(Σ) \Xpar un nouveau symbole
propositionnel x0. Si y6∈ Xalors Σefinit (de ma-
ni`ere implicite) y`a partir de Xsi et seulement si
ΣΣ0
Xy∧ ¬y0est incoh´erent 2.
2. Trivialement, dans le cas contraire o`u yX, Σ d´efinit y
`a partir de X.
3 Un nouveau petraitement pour le
comptage de mod`eles
Plutˆot que de d´etecter des portes et de les remplacer
dans Σ pour ´eliminer des variables de l’ensemble des
variables de sortie, notre m´ethode de pr´etraitement
recherche des variables de sortie et les oublie dans Σ.
Plus pr´ecis´ement, l’objectif est de d´eterminer dans un
premier temps une bipartition de d´efinition hI, Oide
Σ.
efinition 3 (bipartition de d´efinition) Soit Σ
une formule propositionnelle de PROPPS . Une bipar-
tition de d´efinition de Σest un couple hI, Oitel que
IO=Var(Σ),IO=, et toute variable oO
peut ˆetre d´efinie `a partir de Idans Σ.
Dans un second temps, des variables de Osont ou-
bli´ees de la formule Σ pour la simplifier, ce qui donne le
pr´etraitement B+E(B(ipartition), et ´
E(limination))
illustr´e `a l’algorithme 1.
Algorithme 1 : B+E
entr´ee : une formule CNF Σ
sortie : une formule CNF Φ telle que kΦk=kΣk
1OB(Σ);
2ΦE(O, Σ);
3retourner Φ;
Un atout important de cet algorithme est que cha-
cune des deux phases peut ˆetre adapt´ee dans le but
de garder le pr´etraitement le plus l´eger possible du
point de vue du temps de calcul. D’un cˆot´e, il n’est
pas n´ecessaire de d´eterminer une bipartition hI, Oide
Σ telle que le cardinal de Osoit maximal (il peut
ˆetre suffisant de d´eterminer un ensemble Ode cardi-
nal «raisonnable »). D’un autre cˆot´e, il n’est pas non
plus n´ecessaire d’oublier dans Σ toutes les variables de
O, il peut suffire de se focaliser sur un sous-ensemble
EO. Plus formellement, la correction de B+Eest
´etablie par la proposition suivante :
Proposition 1 Soit Σune formule propositionnelle
de PROPPS . Soit hI, Oiune bipartition de d´efinition
de Var(Σ). Soit EO. Alors kΣk=k∃E.Σk.
Preuve: Commen¸cons par les deux observations sui-
vantes :
Soit E={y1, . . . , ym}un sous-ensemble de O.
Puisque chaque yi(i1, . . . , m) est d´efini `a par-
tir de Idans Σ, il existe une formule Φyi
Isur I
telle que Σ |=yiΦyi
I(i.e., une d´efinition de
yisur Idans Σ). On note Σ[yiΦyi
I]i1,...,m
la formule obtenue en rempla¸cant dans Σ les oc-
currences de yipar Φyi
I.
Soit γIun terme canonique sur I. Si γIΣ est
coh´erent alors il existe un unique mod`ele ωγIde
Σ sur Var(Σ) qui est mod`ele de γI. De ce fait,
tout mod`ele de Σ est totalement caract´eris´e par
sa restriction sur I, de telle sorte que kΣkest
´egal au nombre de termes canoniques γIsur I
tel que γIΣ est coh´erent.
On a par construction
Σ
m
^
i=1
(yiΦyi
I)Σ[yiΦyi
I]i1,...,m.
De ce fait, pour tout terme canonique γIsur I,γIΣ
est ´equivalent `a
γI
m
^
i=1
(yiΦyi
I)Σ[yiΦyi
I]i1,...,m.
Puisque γIest un terme canonique sur Iet Varyi
I)
Ipour tout i1, . . . , m, on obtient que γIΦyi
Iest
coh´erent si et seulement si γI|= Φyi
I; en cons´equence,
γIVm
i=1(yiΦyi
I) est ´equivalent `a γIVm
i=1 y
io`u
y
i(i1, . . . , m) est yiquand γI|= Φyi
Iet est ¬yi
dans le cas contraire.
Il s’ensuit que γIVm
i=1(yiΦyi
I)Σ[yi
Φyi
I]i1,...,m est ´equivalent `a
γI(
m
^
i=1
y
i)Σ[yiΦyi
I]i1,...,m.
De plus, puisque Var(γIΣ[yiΦyi
I]i1,...,m)I,
Var(Vm
i=1 y
i)Oet IO=,γIΣ est coh´erent si
et seulement si γIΣ[yiΦyi
I]i1,...,m est coh´erent.
Cependant, comme γIest un terme canonique sur Iet
Var(Σ[yiΦyi
I]i1,...,m)I, c’est pr´ecis´ement le cas
lorsque γI|= Σ[yiΦyi
I]i1,...,m.
On obtient de ce fait que le nombre de termes ca-
noniques γIsur Itel que γIΣ est coh´erent est ´egal
au nombre de mod`eles de Σ[yiΦyi
I]i1,...,m sur I.
Autrement dit, on a kΣk=kΣ[yiΦyi
I]i1,...,mk.
Puisque Var(Σ[yiΦyi
I]i1,...,m)E=, on a
E.Σ≡ ∃E.(Vm
i=1(yiΦyi
I)Σ[yiΦyi
I]i1,...,m)
(E.(Vm
i=1(yiΦyi
I)) Σ[yiΦyi
I]i1,...,m.
Finalement, comme Varyi
I)E=, on a
aussi que E.(Vm
i=1(yΦyi
I)) est ´equivalent `a
Vm
i=1(yi.(yiΦyi
I)). Comme tout yi.(yiΦyi
I)
(i1, . . . , m) est une formule valide, on obtient que
E.ΣΣ[yiΦyi
I]i1,...,m, ce qui implique que
k∃E.Σk=kΣ[yiΦyi
I]i1,...,mk, et finalement que
kΣk=k∃E.Σk.
La conjugaison du fait de n’identifier qu’un sous-
ensemble Ode variables de sortie lors de l’´etape de
bipartition avec le fait de ne consid´erer qu’un sous-
ensemble EOde ces variables lors de la phase d’´eli-
mination apporte un r´eel gain. En effet, le calcul d’une
base minimale (i.e. un sous-ensemble Ide cardinal mi-
nimal telle que toute variable de O=Var(Σ) \Isoit
d´efinissable dans Σ `a partir de I) [23] serait beaucoup
trop coˆuteux ; en effet, dans le pire des cas, un al-
gorithme de type branch-and-bound pour calculer une
telle base n´ecessiterait un nombre de tests de d´efinis-
sabilit´e exponentiel dans le nombre de variables de Σ.
De plus, bien qu’oublier des variables dans Σ diminue
´evidemment le nombre de variables qui y apparaissent,
cela peut aussi conduire `a une augmentation exponen-
tielle de sa taille. De ce fait, n’´eliminer de Σ qu’un
sous-ensemble Edes variables de Opermet de s´elec-
tionner des variables pour lesquelles la phase d’´elimi-
nation n’augmente pas de mani`ere trop importante la
taille de Σ (`a la NiVER [32]). Plus pr´ecis´ement, l’´eli-
mination d’une variable de sortie ne sera effectu´ee que
si la taille de Σ apr`es l’´elimination reste suffisamment
faible, une fois l’application de pr´etraitements suppl´e-
mentaires achev´ee. Parmi ces pr´etraitements addition-
nels qui pr´eservent l’´equivalence, on trouve la simplifi-
cation d’occurrences et la vivification [28] (d´eja consi-
d´er´ee dans [21]), ayant pour but de r´eduire certaines
clauses, et d’en retirer certaines (pour la vivification).
Exemple 2 (Suite de l’exemple 1) Aucune ´equi-
valence de litt´eraux, portes ET, OU, ou XOR n’est
cons´equence logique de Σ. Cependant, dans la mesure
o`u Σimplique
d(a(bc)) et e(¬a(bc))
h{a, b, c},{d, e}i est une bipartition de d´efinition de
Var(Σ). En oubliant det edans Σ, les deux clauses
non tautologiques acet abcsont g´en´er´ees, ce
qui conduit `a une formule CNF ´equivalente `a ∃{d, e}.Σ
donn´ee par :
ab,ac,abc,
qui peut ˆetre simplifi´ee en (ab)(ac). Cette formule
CNF admet 5mod`eles, ce qui est donc aussi le cas de
Σ.
L’algorithme 2 montre comment une bipartition
hI, Oide Var(Σ) est calcul´ee de fa¸con gloutonne par
B.`
A la ligne 1, backbone(Σ) calcule le backbone de
Σ (l’ensemble des litt´eraux impliqu´es par Σ) en uti-
lisant un prouveur sat, et initialise Oavec ces va-
riables (un litt´eral `appartient au backbone de Σ im-
plique que var(`) est d´efini dans Σ `a partir de ). La
propagation unitaire des contraintes est ensuite appli-
qu´ee `a Σ conjoint aux litt´eraux de son backbone, ce
qui conduit `a simplifier la formule et `a ´eliminer de
celle-ci les variables des litt´eraux du backbone.`
A la
Algorithme 2 : B
entr´ee : une formule CNF Σ
sortie : un ensemble Ode variables de sortie, i.e.,
des variables d´efinies dans Σ `a partir de
I=Var(Σ) \O
1hΣ, Oi← backbone(Σ);
2Vtrier(Var (Σ));
3I←∅;
4pour chaque x∈ V faire
5si efini?(x, Σ, I succ(x, V),max#C)alors
6OO∪ {x};
7sinon
8II∪ {x};
9retourner O;
ligne 2, on ordonne les variables de Σ de celles poss´e-
dant le moins d’occurrences de Σ `a celles en poss´edant
le plus. `
A la ligne 5, efini? utilise la m´ethode de Pa-
doa (Th´eor`eme 2) afin de d´eterminer si xest d´efinie
dans Σ `a partir de Isucc(x, V), o`u succ(x, V) est
l’ensemble des variables de Vqui apparaissent apr`es
xdans V. La fonction efini? utilise un prouveur
sat solve bas´e sur l’architecture CDCL pour effec-
tuer le test d’incoh´erence requis par la m´ethode de Pa-
doa. Dans notre impl´ementation, la formule CNF d’en-
tr´ee de solve est Σ Σ0
VzVar (Σ)((¬sz∨ ¬zz0)
(¬szz∨ ¬z0)), `a laquelle sont ajout´ees des litt´e-
raux hypoth`eses («assumptions ») : pour chaque z
appartenant `a Isucc(x, V), nous introduisons une
variable hypoth`ese sz,i.e. une clause unitaire qui joue
un rˆole de s´electeur (quand elle est affect´ee `a vrai,
elle cr´ee une ´equivalence entre zet sa copie z0) ; xet
¬x0sont elles-aussi ajout´ees en tant qu’hypoth`eses de
fa¸con `a pouvoir r´eduire le test de d´efinissabilit´e consi-
d´er´e sur x`a un test d’incoh´erence. L’int´erˆet d’utili-
ser des hypoth`eses est grand, dans la mesure o`u cela
permet au prouveur sat de conserver les clauses qu’il
apprend, pour aider `a la recherche lors des appels sui-
vants. efini? admet un param`etre max#C, qui borne
le nombre de clauses que le prouveur peut apprendre
lors de cet appel ; si ce nombre est atteint alors qu’au-
cune contradiction n’a pu ˆetre d´etect´ee, la fonction
retourne false (xn’est pas consid´er´ee comme d´efinie
dans Σ `a partir de Isucc(x, V ), alors qu’on aurait pu
potentiellement d´emontrer l’inverse avec une valeur de
max#C sup´erieure). On voit de ce fait que le nombre de
variables de sortie d´etermin´e par Bn’est pas n´ecessaire-
ment maximal ; ceci est r´ealis´e dans une optique d’effi-
cacit´e. Enfin, on peut observer que le nombre d’appels
`a solve n’exc`ede pas le nombre de variables de Σ.
L’algorithme 3 montre comment les variables de O
sont ´elimin´ees de Σ par E.Pest l’ensemble des va-
Algorithme 3 : E
entr´ee : une formule CNF Σ et un ensemble de
variables de sortie OVar (Σ)
sortie : une formule CNF Φ telle que Φ ≡ ∃E.Σ
avec EO
1ΦΣ;
2it´erertrue ;PO;
3tant que it´erer faire
4EP;P←∅ ;it´ererf alse;
5ΦvivificationSimpl, E);
6tant que E6=faire
7xselect(E, Φ);
8EE\ {x};
9ΦoccurrenceSimpl, x);
10 si #(Φx)×#(Φ¬x)>max#Res alors
11 PP∪ {x};
12 sinon
13 RremoveSub(Res(x, Φ),Φ);
14 si #((Φ \Φx,¬x)R)#(Φ) alors
15 Φ\Φx,¬x)R;
16 it´erertrue;
17 sinon
18 PP∪ {x};
19 retourner Φ ;
riables de Edont l’´elimination est possiblement re-
port´ee, et est initialis´e `a la ligne 2 avec l’ensemble O.
La boucle principale `a la ligne 3 est r´ep´et´ee tant que
l’´elimination d’une des variables a ´et´e r´ealis´ee (ligne
16). `
A la ligne 4, l’ensemble Edes variables `a tenter
d’´eliminer durant l’it´eration courante est initialis´e avec
P, qui est r´einitialis´e `a .`
A la ligne 5, les clauses de
Φ sont successivement vivifi´ees, en utilisant une l´eg`ere
variante de l’algorithme de [21] ; le param`etre addi-
tionnel Eest utilis´e pour ordonner les clauses de Σ
de sorte que les litt´eraux portant sur les variables de
Esoient trait´es en premier (c’est-`a-dire qu’on va ten-
ter d’´eliminer prioritairement les occurrences des lit-
t´eraux de E). On entre `a la ligne 6 dans la boucle
interne qui va proc´eder `a une it´eration par variable de
E. Une des variables xde cet ensemble est s´election-
n´ee `a la ligne 7 en comptant le nombre #(Φx) (resp.
#(Φ¬x)) de clauses o`u xapparaˆıt sous la forme de
son litt´eral positif (resp. n´egatif) ; la variable xelec-
tionn´ee est l’une de celles qui minimisent #(Φx)×
#(Φ¬x), valeur qui majore le nombre de r´esolvantes
possiblement g´en´er´ees par l’´elimination de xdans Φ.
Puis xest finalement retir´ee de E`a la ligne 8. Ensuite,
avant de g´en´erer l’ensemble Rdes r´esolvantes non tau-
tologiques des clauses de Φ sur x(calcul´ees ligne 13,
par la fonction Res), on tente dans un premier temps
1 / 10 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 !