´
Ecole polytechnique Majeure informatique
Promotion 2012
Cours Conception et analyse d’algorithmes
TD 6 – Solveurs SAT
22 octobre 2014
1. Lazy data structures.
L’algorithme DPLL et ses variantes utilisent une m´ethode propagation, qui effectue la propagation de
clauses unitaires, et qui permet de maintenir les deux invariants suivants :
(*) si l’affectation courante des variables rend une clause ´egale `a faux, cette clause est d´etect´ee (ce qui
conduit soit `a un backtrack soit `a renvoyer unsat si plus de backtrack n’est possible).
(**) si l’affectation courante des variables rend une clause ´egale `a vrai, cette clause est d´etect´ee et
supprim´ee de la liste des clauses actives.
1. On suppose que l’on dispose d’une routine propagation-lazy qui maintient l’invariant (A) mais pas
le (B). Montrer que l’algorithme DPLL reste valide en utilisant cette routine `a la place de propagation, `a
condition de rajouter une condition de terminaison ad´equate.
2. On suppose que l’on maintient, pour chaque clause Cde la formule, deux pointeurs x1(C)6=x2(C),
appel´es litt´eraux surveiles, qui v´erifient la propri´et´e suivante :
pour i∈ {1,2},xi(C)pointe vers un litt´eral contenu dans Cqui n’est pas faux dans l’affectation (***)
courante des variables (ce litt´eral peut ˆetre soit vrai soit non affect´e).
On suppose de plus que l’on maintient, pour chaque variable x, une liste de pointeurs vers les clauses dont
xou ¯xest un litt´eral surveill´e.
Donner une variante de l’algorithme DPLL, utilisant la strat´egie de la question 1., et qui utilise ces
structures de donn´ees. On prendra soin de v´erifier que l’algorithme pr´eserve les invariants (*) et (***).
3. Quel est l’inerˆet de cette strat´egie ?
2. Algorithme DPLL et Unique Implication Points
On se propose dans cette exercice d’´etudier sur un exemple la notion de graphe d’implication, et la
mani`ere dont elle peut ˆetre utilis´ee pour l’apprentissage de clauses.
On consid`ere la formule Fd´efinie par F=VCiou les Cisont les clauses suivantes :
C1= ¯x1¯x2;C2=x2x3x8;C3= ¯x3¯x4;C4=x6x5x4;C5= ¯x1¯x5x7;
C6= ¯x4¯x8;C7= ¯x6x7x9;C8=x1x7x10 ;C9= ¯x7x9¯x10 ;C10 = ¯x9x10
Pour une formule donn´ee sous forme de CNF et un ensemble d’affectations de variables de d´ecisions
successives, on d´efinit, pour chaque propagation de contraintes unitaires, ce qu’on appelle le graphe d’im-
plication. Chaque sommet du graphe d’implication correspond `a l’affectation d’une variable. Un sommet
porte l’´etiquette xi:k(ou ¯xi:k) si la variable xia ´et´e affect´ee `a vraie (ou `a faux) apr`es kaffectations de
variables de d´ecisions. Il existe une arˆete (´etiquet´ee par Cm) entre xi:ket xj:l(avec kl) si `a l’´etape l,
la propagation des clauses unitaires conduit `a d´eduire l’affectation de xjen utilisant Cm. Enfin il existe un
sommet sp´ecial ´etiquet´e κqui correspond `a un conflit dˆu `a une clause Cm. Dans ce cas il existe une arˆete
´etiquet´ee Cmde xiou ¯xi`a κsi la variable xiapparaˆıt dans Cm.
1. On consid`ere la formule Fd´efinie ci-dessus et les choix successifs suivants : x1:= 1, x7:= 0, x9:= 0.
Dessiner un graphe d’implication correspondant `a ces choix. Montrer que l’on aboutit `a un conflit et en
d´eduire qu’une nouvelle clause peut ˆetre ajout´ee `a la formule initiale. Cela suffit-il `a conclure s’il existe ou
non des solutions telles que x1:= 1 et x7:= 0, uniquement par propagation des contraintes unitaires et sans
utiliser d’autres variables de d´ecision ?
1
2. Pour am´eliorer l’algorithme DPLL, on introduit les Unique Implication Points. Supposons que l’on ait
atteint un conflit et soit x:k, la derni`ere affectation d’une variable de d´ecision effectu´ee, un UIP est un
sommet du graphe d’implication qui se trouve sur tous les chemins orienes de x:k`a κet qui est `a distance
minimale de κpour cette propri´et´e. Identifier un UIP sur le graphe d’implication de la question pr´ec´edente.
En vous appuyant sur ce sommet, en d´eduire une nouvelle clause que la formule doit satisfaire. Cela suffit-il
`a conclure s’il existe ou non des solutions telles que x1:= 1 et x7:= 0 uniquement par progagation des
contraintes unitaires et sans utiliser d’autres variables de d´ecision ?
3. Moelisation grˆace `a SAT
Pour illustrer la probl´ematique de la moelisation avec SAT, on se propose d’´ecrire des formules en CNF
´equivalentes `a la condition Pn
j=1 xj1, o`u xi∈ {0,1}, pour tout i.
1. Formuler cette condition sous la forme d’une CNF comportant O(n2) clauses.
2. Trouver (et prouver) une formule en CNF portant sur les xiet sur nvariables auxiliaires, dont la
satisfiabilit´e quand les xisont fix´es est ´equivalente `a la formule de d´epart. On demande que la formule
comporte O(n) clauses, de longueur born´ee.
3. Mˆeme question qu’en 2., mais avec seulement log(n) variables auxiliaires et une formule de longueur
O(nlog(n)).
4. Bounded model checking
On mod´elise un syst`eme qu’on veut v´erifier de la fa¸con suivante : l’´etat du syst`eme est repr´esent´e par un
vecteur s= (s1, . . . , sd) de dimension finie d`a coordonn´ees bool´eennes. La propri´et´e `a v´erifier est donn´ee
par une formule bool´eenne P(s), vrai si l’´etat sest bon. De mˆeme on se donne une formule I(s) vraie si
l’´etat sest un ´etat initial possible. Enfin on se donne une formule T(s, s0) vraie si le syst`eme peut faire une
transition de l’´etat s`a l’´etat s0.
1. ´
Ecrire une formule (`a n+ 1 variables) qui est satisfiable s’il existe une ex´ecution qui fait passer le
syst`eme d’un ´etat initial valide `a un ´etat mauvais en n´etapes. En d´eduire un algorithme qui v´erifie s’il existe
une telle ex´ecution fautive constitu´ee d’au plus n´etapes.
2. Donner une formule dont la satisifabilit´e est ´equivalente au fait qu’une s´equence de n´etapes visitant
de bons ´etats puisse ˆetre suivie d’une ´etape conduisant `a un mauvais ´etat. Que conclure s’il existe un ntelle
que ni cette formule ni celle de la question pr´ec´edente ne sont satisfiables ?
3. ´
Ecrire une formule E(s, s0) vraie si et seulement si s6=s0.
4. D´eduire des questions pr´ec´edentes un algorithme de validation complet du syst`eme vis `a vis de la
propri´et´e P: il s’agit de v´erifier que la propri´et´e Pest vraie pour tout ´etat satteignable `a partir d’un ´etat
initial par une suite de transitions du syst`eme.
2
1 / 2 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 !