Dans cette section, nous pr´esentons quelques me-sures de pertinence des clauses apprises exploit´ees par la plupart des solveurs SAT de la litt´erature.
Le solveur SAT CDCL le plus populaire Minisat [13]
consid`ere comme pertinentes les clauses les plus impli-qu´ees dans les r´ecentes analyses de conflits et ´elimine les clauses apprises dont l’implication dans les r´ecentes analyses de conflits est marginale. Une autre strat´egie appel´ee LBD pour Literal Block Distance fut
propo-s´ee dans [5]. La mesure LBD dont l’efficacit´e a ´et´e
prouv´ee empiriquement est aussi exploit´ee par la plu-part des meilleurs solveurs SAT de l’´etat de l’art
(Glu-cose, Lingeling [8] ). Cette mesure utilise le nombre de
niveaux diff´erents impliqu´es dans une clause apprise donn´ee pour quantifier la qualit´e des clauses apprises. Ainsi, les clauses apprises avec les plus petites valeurs de LBD sont consid´er´ees comme les plus pertinentes.
Dans [4], une nouvelle police de gestion dynamique de
la base des clauses apprises est propos´ee. Elle est fon-d´ee sur un principe d’activation et de gel dynamique des clauses apprises. A un ´etat de recherche donn´e, en utilisant une fonction de s´election fond´ee sur une sau-vegarde progr´essive des polarit´es des litt´eraux appel´ee PSM (Progress Saving Measure), elle active les clauses apprises les plus prometteuses tout en g´elant celles
ju-g´ees non pertinentes. L’id´ee est alors de geler certaines clauses au lieu de les supprimer d´efinitivement afin de les r´eactiver plus tard. La valeur PSM d’une clause est le nombre de litt´eraux ayant la mˆeme polarit´e que la phase saving (derni`eres polarit´es choisies pendant la recherche par l’heuristique de polarit´e) apparaissant dans cette clause.
Dans [18], un nouveau crit`ere pour quantifier la
per-tinence d’une clause apprise en utilisant son niveau de retour-arri`ere appel´e BTL pour BackTrack Level est propos´e. A partir des exp´erimentations, les auteurs ob-servent que les clauses apprises avec les petites valeurs de BTL sont plus souvent utilis´ees dans le processus de propagation unitaire que celles ayant des grandes valeurs BTL. Plus pr´ecis´ement, les auteurs observent que les clauses apprises ayant les valeurs BTL
inf´e-rieures `a 3 sont toujours plus utilis´ees dans la
propa-gation unitaire que le reste des clauses. A partir de cette observation, et motiv´es par le fait qu’une clause apprise avec une petite valeur BTL contient plus de lit-t´eraux du sommet de l’arbre de recherche, les auteurs d´eduisent que les clauses apprises les plus pertinentes sont celles permettant un retour-arri`ere plus haut dans l’arbre de recherche (clauses ayant de petites valeurs BTL). Plus r´ecemment, plusieurs autres strat´egies de gestion de la base des clauses apprises furent
propo-s´ees dans [22, 3]. Dans [22], les auteurs explorent un
nombre vari´e de strat´egies de r´eduction de la base des clauses apprises, et les performances des diff´erentes ex-tensions du solveur Minisat int´egrant leurs strat´egies sont evalu´ees sur les instances SAT prises des comp´e-titions SAT 2013 et 2014, et compar´ees aux autres sol-veurs SAT de la litt´erature (Glucose, Lingeling) ainsi qu’au solveur original Minisat.
A partir des performances obtenues avec leurs
stra-t´egies, les auteurs de [22] ont montr´e que les
strat´e-gies d’apprentissage fond´ees sur la mise en place d’une borne sup´erieure sur la taille des clauses propos´ees il y a plus d’une quinzaine d’ann´ees restent ´egalement de bonnes mesures pour pr´edire la qualit´e des clauses
ap-prises. Ils montrent que l’ajout de la randomisation `a
l’apprentissage fond´ee sur la mise en place d’une borne sup´erieure sur la taille des clauses est un bon moyen de
parvenir `a une diversification contrˆol´ee, permet de
fa-voriser les clauses de petites tailles tout en maintenant une petite fraction de clauses de grande taille n´eces-saires pour la d´erivation des preuves par r´esolution sur certaines instances difficiles.
Dans [3], les auteurs utilisent la structure de
commu-naut´e des instances SAT industrielles pour identifier un ensemble de clauses apprises fortement utiles. Ils montrent que l’augmentation d’une instance SAT avec les clauses apprises par le solveur pendant son ex´ecu-tion n’est pas toujours un moyen de rendre facile la
r´esolution de l’instance. Les auteurs montrent
cepen-dant qu’en ajoutant `a la formule originale un ensemble
de clauses fond´e sur la structure de communaut´e de la formule am´eliore les performances du solveur dans beaucoup de cas. Les diff´erentes performances obte-nues par chaque strat´egie sugg`erent que la question de pr´edire efficacemment les meilleures clauses apprises `
a maintenir pour la suite de la recherche est toujours ouverte et m´erite de fortes investigations.
D’autre part, il est important de noter que l’effi-cacit´e de la plupart de ces strat´egies de gestion des clauses apprises de l´etat de l’art depend fortement de la fr´equence de nettoyage et de la quantit´e de clauses `
a supprimer `a chaque nettoyage. G´en´eralement, tous
les solveurs SAT CDCL utilisant ces strat´egies
sup-priment exactement la moiti´e des clauses apprises `a
chaque ´etape de nettoyage de la base des clauses ap-prises. Par exemple, les solveurs SAT CDCL Minisat
[13] et Glucose [5] suppriment la moiti´e des clauses
ap-prises `a chaque ´etape de nettoyage. Cependant,
l’effi-cacit´e de cette quantit´e de clauses apprises `a supprimer
(c’est `a dire la moiti´e) `a chaque ´etape de nettoyage de
la base de clauses apprises n’a pas ´et´e d´emontr´ee
th´eo-riquement, mais plutˆot exp´erimentalement. A notre
connaissance, il n’existe pas beaucoup d’´etudes dans la litt´erature sur comment d´eterminer la quantit´e de
clauses `a supprimer `a chaque nettoyage. Ce papier
pro-pose une approche pour identifier les clauses apprises les plus pertinentes au cours du processus de r´esolu-tion sans favoriser auncune des mesures de qualit´e de la litt´erature, de plus, cette approche s’affranchit du probl`eme de la determination de la quantit´e de clauses `
a supprimer `a chaque nettoyage de la base des clauses
apprises : la quantit´e de clauses apprises `a supprimer
correspond `a chaque fois au nombre de clauses apprises
domin´ees par au moins l’une des top-k clauses apprises (ensemble des clauses apprises de r´ef´erence courantes). Les top-k clauses apprises seront appel´ees dans les sec-tions suivantes clauses apprises de r´ef´erence.
4 D´etection des clauses apprises non
do-min´ees
Nous pr´esentons maintenant notre mesure de perti-nence des clauses apprises fond´ee sur la relation de do-minance. Nous motivons tout d’abord cette approche `
a partir d’un simple exemple, et proposons ensuite un algorithme permettant d’identifier les clauses apprises les plus pertinentes avec quelques d´etails techniques.
4.1 Motivation
Consid´erons les strat´egies de pertinence suivantes :
LBD [5], SIZE ( strat´egie qui consid`ere comme
pertinence utilis´ee par minisat [13] que nous appelons ici CVSIDS. Supposons que nous ayons dans la base
des clauses apprises, les clauses c1, c2 et c3avec :
— SIZE(c1) = 8, LBD(c1) = 3, CV SIDS(c1) = 1e100; — SIZE(c2) = 6, LBD(c2) = 5, CV SIDS(c2) = 1e200; — SIZE(c3) = 5, LBD(c3) = 4, CV SIDS(c3) = 1e300.
La question que nous posons est la suivante : laquelle
des clauses est la plus pertinente ? Dans [5], les
au-teurs consid`erent la clause c1 qui a le plus petit LBD
comme la plus pertinente. Par contre, les auteurs de
[22] et [15] pr´ef`erent la clause c3 tandis que la
pr´ef´e-rence des auteurs de Minisat [13] va `a la clause c3.
Notre approche s’affranchit de cette pr´ef´erence
parti-culi`ere `a une mesure en cherchant un compromis entre
les diff´erentes mesures de pertinence `a travers une
re-lation de dominance. Ainsi, pour la situation d´ecrite
plus haut, seule la clause c2est non pertinente, elle est
domin´ee par la clause c3sur les trois mesures donn´ees.
4.2 Formalisation
Au cours de la recherche, les solveurs SAT CDCL ap-prennent un ensemble de clauses qui sont stock´ees dans
une base des clauses apprises ∆, ∆ = {c1, c2, ..., cn}.
A chaque ´etape de r´eduction de la base des clauses apprises, nous ´evaluons ces clauses sur un ensemble de
mesures de pertinence M = {m1, m2, ..., mk}. Nous
notons m(c) la valeur de la mesure m pour la clause
c, c∈ ∆, m ∈ M.
Comme l’´evaluation des clauses apprises varie d’une
mesure `a une autre, l’utilisation de plusieurs mesures
pourrait conduire `a diff´erents r´esultats (clauses
perti-nentes par rapport `a une mesure de pertinence). Par
exemple, si nous consid´erons l’exemple ci-dessus, c1est
la meilleure clause par rapport `a la mesure LBD, ce qui
n’est pas le cas par rapport `a la mesure d’´evaluation
SIZE qui favorise c3. Cette diff´erence d’´evaluation
rend difficile le choix d’une mesure lors du processus de selection des clauses apprises. Ainsi, nous pouvons uti-liser la notion de dominance entre clauses apprises afin de selectionner les clauses les plus pertinentes. Avant la formulation de la relation de dominance entre clauses apprises, il est n´ecessaire de la d´efinir au niveau des valeurs des mesures de pertinence. Pour ce faire, nous d´efinissons la valeur de dominance comme suit : Definition 1 (Valeur de dominance) Etant don-n´ee une mesure de pertinence de clauses apprises m
et deux clauses apprises c et c0, nous disons que m(c)
domine m(c0), et notons m(c) m(c0), si et
seule-ment si m(c) est pr´ef´er´ee `a m(c0). Si m(c) m(c0)
et m(c) 6= m(c0) alors nous disons que m(c) domine
strictement m(c)0 et notons m(c) m(c0).
Definition 2 (Dominance entre clauses) Etant
donn´ees deux clauses apprises c et c0, la relation de
dominance entre c et c0 par rapport `a un ensemble de
mesures de pertinenceM est d´efinie comme suit :
— c domine c0, not´e c c0, si et seulement si
m(c) m(c0), ∀m ∈ M.
— si c domine c0 et∃m ∈ M tel que m(c) m(c0),
alors c domine strictement c0 et nous notons c
c0.
Pour d´ecouvrir les clauses apprises pertinentes, une approche na¨ıve consiste `a comparer chaque clause ap-prise avec toutes les autres clauses apap-prises. Cepen-dant, le nombre de clauses apprises est prouv´e ˆetre exponentiel, ce qui rend les comparaisons par paire
tr`es coˆuteuses. Dans la suite, nous montrons comment
r´soudre ce probl`eme en d´efinissant `a chaque ´etape de
r´eduction de la base de clauses apprises, un ensemble de clauses apprises particulier (top-k clauses apprises) que nous appelons dans ce papier clauses apprises de r´ef´erence (en abr´eg´e RLC) qui est un ensemble de
clauses apprises non domin´ees de ∆ par rapport `a
l’en-semble des mesures de pertinence de clauses apprises M
A chaque ´etape de nettoyage de la base des clauses apprises, toutes les clauses apprises domin´ees par au moins l’une des k clauses apprises de r´ef´erence (top-k clauses apprises) seront consid´er´ees comme ´etant ds clauses apprises non pertinentes et ainsi supprim´ees de la base des clauses apprises.
Pour d´efinir les clauses apprises de r´ef´erence, nous avons besoin de d´efinir une nouvelle mesure de qualit´e de clauses fond´ee sur toutes les mesures de qualit´e des
clauses apprises de M. Nous appelons cette nouvelle
mesure ”D´egr´e de compromis”, en court DegComp. Elle est d´efinie comme suit :
Definition 3 (Degr´e de compromis) Etant
don-n´ee une clause apprise c, le degr´e de compromis de
c par rapport `a l’ensemble des mesures de pertinence
de clauses apprises M est d´efini par DegComp(c) =
Pn
i=1m\i(c)
|M| , o`u \mi(c) correspond `a la valeur normalis´ee
de la mesure mi pour la clause c.
Dans le mˆeme ordre d’id´ee, et afin d’´eviter de conser-ver un grand nombre de clauses apprises dans la base
de clauses apprises `a chaque ´etape de r´eduction, nous
proposons une strat´egie de dominance qui consid`ere k Clauses Apprises de R´ef´erence (en court k-RLC) au lieu d’une seule clause clause apprise de r´ef´erence ap-pel´ee ici 1-RLC. Plus pr´ecis´ement, la strat´egie k-RLC
est d´efinie comme suit : `a chaque ´etape de r´eduction,
nous supprimons de la base des clauses apprises toutes les clauses domin´ees par au moins l’une des k pr´emi`eres clauses apprises non domin´ees (top-k clauses apprises)
par rapport `a l’ensemble de mesures de pertinence de
En effet, en pratique, les mesures sont h´et´erog`enes et
sont d´efinies `a diff´erentes ´echelles. Par exemple, les
va-leurs de la mesure de qualit´e des clauses apprises dans
[13] sont des tr`es grandes valeurs, alors que les valeurs
de la mesure de pertinence dans [5] sont des petites
valeurs. Ainsi, afin d’´eviter que des mesures avec des grandes valeurs rendent marginales les mesures avec de petites valeurs dans le calcul du d´egr´e de compro-mis d’une clause apprise donn´ee, il est n´ecessaire de normaliser les valeurs des diff´erentes mesures de perti-nence. Dans notre cas, nous choisissons de normaliser toutes les mesures dans l’intervalle [0, 1].
Plus pr´ecis´ement, chaque valeur de mesure m(c) de toute clause apprise c doit ˆetre normalis´ee dans [0, 1]. La normalisation d’une mesure donn´ee m est effectu´ee en fonction du domaine de ces valeurs et de la distribution statistique de son domaine actif. Nous rappelons que le domaine actif d’une mesure m est l’ensemble de ses valeurs possibles. Il convient de mentionner que la normalisation d’une mesure ne modifie pas la relation de dominance entre deux
clauses donn´ees. Consid´erons la clause apprise c1
don-n´ee dans l’exemple de motivation `a la section 4.1,
avec ses valeurs sur les trois mesures consid´er´ees :
DegComp(c1) = CV SIDS(c\ 1)+LBD(c\1)+SIZE(c\1)
3 , then, we have, DegComp(c1) = 1 1e100+ 3 nV ars()+ 8 nV ars() 3 , avec
nV ars() le nombre de variables de la formule boo-l´eenne.
Il est important de pr´eciser que, le domaine des valeurs de toutes les mesures de pertinence devrait
ˆetre conforme, c’est-`a-dire, soient les plus petites
leurs sont meilleures ou soient les plus grandes va-leurs sont meilleures. Par exemple, si nous
consid´e-rons la clause apprise c1, et les 3 mesures de
perti-nence LBD, SIZE et CV SIDS, nous prenons la
va-leur 1
CV SIDS(c1) comme valeur normalis´ee de la clause
c1 sur la mesure CV SDIS. En effet, les plus grandes
valeurs CV SIDS sont meilleures alors que les plus pe-tites valeurs LBD et SIZE sont meilleures. De cette mani`ere, les mesures deviennent comparables sur les clauses.
Ap`es avoir donn´e les d´efinitions n´eecessaires (clause apprise de r´ef´erence et d´egr´e de compromis), le lemme suivant offre une solution plus rapide que des com-paraisons de clauses par paires, pour rechercher les clauses apprises pertinentes fond´ees sur la relation de dominance.
Lemme 1 Soit c une clause apprise ayant le d´egr´e de
compromis minimalpar rapport `a l’ensemble des
me-sures de pertinence des clauses apprises M, alors c
est une clause apprise non domin´ee.
Dans notre strat´gie k-RLC, les k pr´emi`eres clauses
apprises non domin´ees sont les k pr´emi`eres clauses
ap-prises class´ees dans l’ordre croissant de leur d´egr´e de
compromis. Il est important de souligner qu’`a chaque
´etape de r´eduction, les k pr´emi`eres clauses apprises non domin´ees ne sont pas toujours les k pr´emi`eres clauses apprises class´ees dans l’ordre croissant de leur d´egr´e de compromis.
Propri´et´e 1 Soit M l’ensemble des mesures de
per-tinence des clauses apprises,∀c, c0, c” trois clauses
ap-prises, si c c0 et c0 c” alors c c”.
Rechercher toutes les clauses apprises non domin´ees `
a chaque ´etape de r´eduction peut ˆetre tr‘es couteux en temps, de ce fait, nous cherchons uniquement les clauses apprises non domin´ees par rapport aux k clause
apprises de r´ef´erence (top-k clauses apprises) `a chaque
´etape de r´eduction de la base des clauses apprises.
Au cours de la recherche, `a chaque ´etape de
net-toyage de la base des clauses apprises, nous cherchons d’abord la clause apprise cM in ayant le d´egr´e de
com-promis minimal par rapport `a l’ensemble des mesures
de pertinence consod´er´ees M. Nous supprimons
en-suite de la base des clauses apprises toutes les clauses domin´ees par cM in.
Au cours de la recherche, `a chaque ´etape de
net-toyage de la base des clauses apprises, nous comparons toutes les autres clauses apprises avec chacune des top-k clauses apprises. Ainsi, pour chaque clause apprise, nous ´effectuons au moins une comparaison et au plus k comparaisons avec les top-k clauses apprises pour sa-voir si la clause est domin´ee et ensuite supprim´ee ou si la clause n’est pas domin´ee et donc conserv´ee.
Propri´et´e 2 Soient ∆ = {c1, c2, ..., cn}, une base
de clauses apprises, k le nombre de clauses apprises de r´ef´rence (top-k clauses apprises), la complexit´e de notre approche de dominance k-RLC est lin´eaire dans le pire des cas.
4.3 Algorithme
Dans cette section, apr`es avoir pr´esent´e le sch´ema g´en´eral d’une strat´egie de suppression des clauses ap-prises (reduceDB(∆)) adopt´ee par la plupart des sol-veurs SAT de la litt´erature, nous proposons un algo-ritme permettant de d´ecouvrir les clauses apprises per-tinentes en utilisant la relation de dominance.
L’algorithme 1 pr´esente le sch´ema g´en´eral
d’une strat´egie de suppression des clauses ap-prises (reduceDB(∆)). Cet algorithme trie dans un premier temps l’ensemble des clauses apprises sur le crit`ere d´efini et supprime ensuite la moiti´e des clauses apprises. En effet, cet algorithme prend en entr´ee une base de clauses apprises de taille n et retourne en
sortie une base de clauses apprises de taille n
diff´erent de notre approche qui trie dans un premier
temps l’ensemble des clauses apprises par rapport `a
leur d´egr´e de compromis et supprime ensuite toutes les clauses qui sont domin´ees par au moins l’une des k pr´emi`eres clauses apprises non domin´ees (top-k clauses apprises).
L’algorithme 2 pr´esente notre strat´egie de
suppres-sion des clauses apprises. Il faut noter que les clauses apprises dont la taille (en nombre de litt´eraux) ou le
LBD est plus petit ou ´egal `a 2 ne sont pas
concer-n´ees par la relation de dominance. Ces clauses apprises sont consid´er´ees comme pertinentes et sont maintenues dans la base des clauses apprises.
Algorithm 1: Strat´egie de suppression : fonction reduceDB
Donn´ees: ∆ : La base des clauses apprises de
taille n
R´esultat: ∆ : La nouvelle base des clauses
apprises de taille n/2
sortLearntClauses(); /* sur le crit`ere
1 d´efini */ limit = n/2; 2 ind = 0; 3
tant que ind < limit faire
4
clause = ∆[ind] ;
5
si clause.size() > 2 && clause.lbd() > 2 alors
6 removeClause(); 7 sinon 8 saveClause(); 9 ind + +; 10 retourner ∆ ; 11
Proposition 1 Les k clauses apprises de r´ef´erence
consid´er´ees par l’algorithme 2 correspondent aux k
pr´emi`eres clauses apprises non domin´ees class´ees dans l’ordre croissant de leur d´egr´e de compromis.
Propri´et´e 3 Soient ∆ = {c1, c2, ..., cn} une base de
clauses apprises et k le nombre de clauses apprises de r´ef´erence consid´er´ees. Soit u le nombre de clauses ap-prises non domin´ees apr`es avoir appliqu´e l’algorithme
2. Nous avons k≤ u ≤ |∆|.
5 Exp´erimentationss
Pour nos exp´erimentations, nous utilisons trois me-sures de pertinence pour la relation de dominance afin d’´evaluer l’efficacit´e de notre approche. Il faut noter que l’utilisateur peut choisir de combiner dif-f´erentes autres mesures de pertinence. Nous utilisons
pour notre ´etude, les mesures SIZE [15], LBD [5] et
Algorithm 2:
reduceDB-Dominance_Relationship
Donn´ees: ∆ : La base des clauses apprises ;M :
un ensemble de mesure de pertinence de clauses apprises ; k : le nombre de clauses apprises de r´ef´rence
R´esultat: ∆ : La nouvelle base des clauses
apprises
sortLearntClauses(); /* par rapport au
1 d´egr´e de compromis */ ind = 1; 2 j = 1; 3
undoC = 1 ; /* le nombre de clauses non