• Aucun résultat trouvé

Les probl` emes CSP, #CSP et WCSP

2.3 Probl` eme du comptage : #CSP

a BT D et le choix d’un nouveau cluster racine `a chaque red´emarrage. Toutefois, cette solution ne remet pas en cause le calcul d’une d´ecomposition peu pertinente en amont de la r´esolution. Ainsi, nous nous focalisons dans cette th`ese sur l’am´elioration des m´ethodes structurelles de r´esolution d’instances CSP notamment BT D.

2.3 Probl`eme du comptage : #CSP

Ce probl`eme vise `a r´epondre `a la question suivante : ´etant donn´ee une instance CSP P , combien de solutions admet-elle ? Elle peut en admettre aucune si elle est incoh´erente ou une ou plusieurs solutions sinon. Nous pouvons, par exemple, v´erifier que l’exemple 1 admet 6 solutions. Le probl`eme #CSP a de nombreuses applications en intelligence artificielle comme dans le raisonnement approximatif [Roth, 1996], le diagnostic [Kumar, 2002], la r´evision des croyances [Darwiche, 2001b], l’inf´erence probabiliste [Sang et al., 2005; Chavira and Darwiche, 2008; Apsel and Brafman, 2012; Choi et al., 2013], la planification [Palacios et al., 2005; Domshlak and Hoffmann, 2006] et dans d’autres domaines plus ´eloign´es de l’informatique comme la physique statistique [Burton and Steif, 1994] ou la chimie pour la pr´ediction de la structure d’une prot´eine [Mann et al., 2007]. L’´evaluation du nombre de solutions peut ´egalement servir pour guider la recherche en orientant l’heuristique du choix de variables et/ou de valeurs comme dans [Kask et al., 2004; Pesant, 2005; Pesant et al., 2012].

Le probl`eme du comptage est un probl`eme extrˆemement difficile d’un point de vue th´eorique en raison de sa complexit´e puisqu’il appartient `a la classe #P-complet [Valiant, 1979]. Sa difficult´e est telle qu’il reste #P-complet mˆeme si nous nous restreignons au cas des CSP binaires. Cette difficult´e est confirm´ee par le th´eor`eme de Toda qui ´enonce que P H ⊆ P#P [Toda, 1991]. Des ´etudes th´eoriques ont ´et´e r´ealis´ees dans le but d’analyser ce probl`eme du point de vue de la complexit´e th´eorique en exhibant des classes traitables comme dans [Slivovsky and Szeider, 2013]. D’autres travaux ont analys´e leur difficult´e par le biais des th´eor`emes de dichotomie comme dans [Bulatov and Dalmau, 2003; Bulatov, 2008; Dyer and Richerby, 2013]. En pratique, sa r´esolution est ´egalement tr`es difficile. Dans cette partie, nous nous focalisons sur ce probl`eme en insistant sur les m´ethodes les plus connues pour sa r´esolution.

2.3.1 M´ethodes de r´esolution

Plusieurs m´ethodes de r´esolution ont ´et´e propos´ees. On va surtout se focaliser sur les m´ethodes structurelles qui nous int´eressent le plus dans le cadre de cette th`ese.

L’approche naturelle consiste `a ´etendre les algorithmes standards d´efinis pour le pro-bl`eme de d´ecision comme BT `a #BT ou M AC et RF L `a #M AC et `a #RF L. Leur

complexit´e est en O(r.m.dn). En pratique, ces m´ethodes peuvent ˆetre inefficaces pour le d´enombrement des solutions dans certains cas, notamment lorsque le nombre de solutions est tr`es ´elev´e (certaines instances du benchmark que nous utilisons dans la partie contri-butions poss`edent plus de 6.10303 solutions). En effet, l’espace de recherche qui doit ˆetre visit´e implique beaucoup de redondances et de recalculs inutiles du nombre d’extensions coh´erentes d’une affectation partielle. D’autres algorithmes exacts ont ´et´e propos´es sans ˆetre ´evalu´es en pratique comme celui fourni pour les instances CSP binaires dans [Angels-mark and Jonsson, 2003].

Nous nous int´eressons d’abord aux m´ethodes propos´ees pour le probl`eme #CSP puis aux m´ethodes propos´ees pour le probl`eme #SAT. Nous nous focalisons ensuite sur l’ap-proche du comptage apr`es compilation.

2.3.1.1 M´ethodes pour #CSP

Les m´ethodes structurelles sont pertinentes pour le d´enombrement de solutions du fait de la difficult´e de ce probl`eme et de la borne de complexit´e th´eorique en temps s´eduisante offerte par ces m´ethodes.

AND/OR Search Space [Dechter and Mateescu, 2004] La m´ethode AND/OR Search Space ´evoqu´ee dans le cadre de la d´ecision peut ˆetre facilement adapt´ee au comptage. En effet, il suffit de remplacer les op´erations bool´eennes par des op´erations de somme et de produit. Elle a ´et´e compar´ee avec une m´ethode de backtrack simple adapt´ee au comptage. Selon les auteurs, AND/OR Search Space surclasse cette derni`ere ; elle est bien meilleure en termes de nombre de nœuds d´evelopp´es et en temps d’ex´ecution notamment sur des instances ayant un grand nombre de solutions. D’ailleurs, elles ne sont comparables que pour les probl`emes incoh´erents. Finalement, les auteurs ont montr´e que leur m´ethode est capable de s’adapter `a des r´eseaux de plus grande taille (au plus 100 variables) que dans le cas de l’autre m´ethode.

#BTD [Favier et al., 2009] Les auteurs adaptent l’algorithme BT D au d´enombrement exact de solutions. Il se base sur la d´ecomposition arborescente pour identifier les parties ind´ependantes du graphe. Ainsi, ´etant donn´ee une affectationA qui s´epare le graphe en plusieurs composantes connexes, le nombre de solutions de chaque composante est calcul´e ind´ependamment des autres. Le nombre d’extensions coh´erentes de A est le r´esultat de la multiplication du nombre de solutions de ces composantes. `A l’instar de BT D, #BT D exploite des enregistrements afin d’´eviter de visiter le mˆeme sous-espace de recherche plusieurs fois. Si BT D enregistre des (no)goods, #BT D enregistre pour un sous-probl`eme induit par une affectation donn´ee le nombre de solutions trouv´ees. Il s’agit de la notion de #good dont nous rappelons maintenant la d´efinition :

D´efinition 57 Soient (E, T ) une d´ecomposition arborescente, Ei un cluster et Ej un de ses clusters fils. Un #good de Ei vis-`a-vis de Ej est une paire (A[Ei∩ Ej], nb) avecA[Ei∩ Ej] une affectation coh´erente de Ei ∩ Ej et nb le nombre de solutions du sous-probl`eme Pj|A[Ei∩ Ej].

Vu son importance dans le cadre de cette th`ese, cette m´ethode sera d´etaill´ee dans le chapitre 6.

2.3.1.2 M´ethodes pour #SAT

Beaucoup de m´ethodes ont ´et´e propos´ees dans le cadre du formalisme SAT [Biere et al., 2009]. Un probl`eme SAT peut ˆetre vu comme un probl`eme CSP (X, D, C) tel que toutes les variables sont bool´eennes ayant deux valeurs possibles 0 (f aux) ou 1 (vrai). `A chaque variable xi sont associ´es deux litt´eraux, un positif (xi) et sa n´egation ¬xi. xi et ¬xi ont des valeurs bool´eennes diff´erentes. Les contraintes sont des clauses, c’est-`a-dire des disjonctions de litt´eraux. Par exemple, x1∨¬x2∨x3est une clause qui est satisfaite ssi x1 ← 1 ou x2 ← 0 ou x3 ← 1. Cette repr´esentation est appel´ee CNF (conjonctive normal form). Le but du probl`eme SAT consiste `a satisfaire simultan´ement toutes les clauses. Une solution du probl`eme SAT est appel´e un mod`ele. L’algorithme de base de r´esolution du probl`eme SAT est l’algorithme Davis-Putnam-Logemann-Loveland (DPLL) [Davis et al., 1962]. Le probl`eme de comptage en SAT est not´e #SAT. Afin d’exploiter les m´ethodes de comptage de mod`eles en SAT pour le comptage en CSP, le moyen le plus simple consiste `a encoder l’instance CSP en instance SAT. Parmi les encodages les plus connus, nous citons l’encodage direct, l’encodage logarithmique [Walsh, 2000] et l’encodage tuple [Hurley et al., 2016].

CDP Comme pour le probl`eme #CSP, la premi`ere approche pour la r´esolution du probl`eme #SAT consiste `a ´etendre DPLL. Cette extension s’appelle CDP (pour coun-ting Davis-Putnam) et a ´et´e propos´ee dans [Birnbaum and Lozinskii, 1999]. ´Etant donn´ee une affectationA (appel´ee interpr´etation) de taille k, elle r´ealise une propagation unitaire qui consiste `a supprimer chaque clause de taille 1 en affectant convenablement la variable en question. Elle v´erifie ensuite s’il existe une clause vide auquel cas l’affectation courante n’admet aucune extension. Si toutes les clauses sont satisfaites le nombre d’extensions de A est 2n−k vu que les variables restantes peuvent ˆetre instanci´ees d’une fa¸con quelconque. Sinon une k+1-`eme variable xiest choisie. Le nombre d’extensions deA est alors le nombre d’extensions deA ∪ {xi ← 1}+ le nombre d’extensions de A ∪ {xi ← 0}. L’appel initial `a CDP part d’une affectation vide. Si la limite de temps est d´epass´ee, CDP retourne une borne inf´erieure sur le nombre de solutions trouv´e pour le sous-espace d´ej`a visit´e.

relsat (DDP) Une nouvelle m´ethode DDP (pour decomposing Davis-Putnam) a ´et´e ensuite propos´ee dans [Bayardo and Pehoushek, 2000]. Elle rajoute `a CDP une couche d’identification de composantes connexes apr`es la r´ealisation de la propagation unitaire. Cette ´etape ressemble `a BT D qui s´epare les sous-probl`emes enracin´es en clusters fils Ej d’un cluster Ei suite `a l’affectation de ce dernier. CDP peut ainsi calculer le nombre de solutions de chaque composante. En raison de leur ind´ependance, le nombre d’extensions de A est la multiplication du nombre de solutions de chaque composante. Bien que la d´etection des composantes connexes ait ´et´e jug´ee assez coˆuteuse pour le probl`eme SAT, cet effort peut ˆetre rentable pour des probl`emes plus difficiles comme #SAT. Cet algo-rithme est impl´ement´e dans relsat. relsat exploite plusieurs heuristiques pour la gestion des composantes connexes comme consid´erer la composante la plus contrainte d’abord ou s’assurer de la satisfiabilit´e de chaque composante avant de compter toutes les solu-tions. Ces am´eliorations ont permis `a relsat d’avoir une meilleure performance que CDP [Bayardo and Pehoushek, 2000].

cachet Si l’exploitation de l’ind´ependance permet d’´eviter certains calculs redondants, en revanche, DDP n’exploite pas le fait que la mˆeme composante connexe peut ˆetre induite par une autre affectationA. Dans ce cas, DDP effectuera le mˆeme calcul autant de fois que cette composante apparaˆıtra. L’algorithme impl´ement´e dans cachet [Sang et al., 2004]

am´eliore DDP en enregistrant le r´esultat trouv´e pour une composante connexe afin de l’utiliser ult´erieurement si besoin.

sharpsat L’inconv´enient majeur de l’impl´ementation de l’enregistrement des solutions pour une composante connexe est le coˆut en espace. Ce probl`eme est abord´e par sharpsat [Thurley, 2006] qui propose plusieurs id´ees afin de r´ealiser un enregistrement plus compact. Ces techniques ont permis de r´eduire massivement l’espace m´emoire requis par rapport `a cachet et d’augmenter ainsi l’efficacit´e. En outre, sharpsat utilise des techniques look-ahead plus sophistiqu´ees qui semblent accroˆıtre l’efficacit´e du comptage du nombre de mod`eles d’une instance. D’ailleurs, dans [Davies and Bacchus, 2007], Davies et Bacchus ont montr´e qu’effectuer une analyse plus pouss´ee `a chaque nœud de l’arbre de recherche peut rendre le comptage plus rapide. En effet, cela simplifie davantage la formule, per-met de d´etecter les composantes connexes plus efficacement et peut mˆeme augmenter la d´ecomposabilit´e du probl`eme. Plus r´ecemment, dans [Lagniez and Marquis, 2017b], les auteurs ont montr´e exp´erimentalement que l’emploi des techniques de pr´etraitement plus puissantes et consommant plus de temps pour #SAT que pour SAT est tol´erable. En contrepartie, ils permettent de diminuer le temps n´ecessaire pour le comptage des mod`eles. 2.3.1.3 Compilation

Une approche diff´erente consiste `a compiler la formule CNF ou l’instance CSP en une autre forme logique `a partir de laquelle le nombre de mod`eles pourrait ˆetre d´eduit plus facilement. Dans ce type d’approches, la complexit´e temporelle est polynomiale par rapport `

a la taille de la nouvelle formule. L’int´erˆet de la compilation ne se limite pas au comptage. Plus g´en´eralement, la formule obtenue doit permettre de r´epondre plus efficacement `a certaines demandes [Darwiche and Marquis, 2001, 2002] initialement NP-difficiles. Comme signal´e dans [Freuder and O’Sullivan, 2014], ce probl`eme est particuli`erement critique pour les applications en ligne comme dans la configuration des logiciels [Junker, 2006] ou les syst`emes de recommandation [Cambazard et al., 2010] o`u les demandes envoy´ees `a la vol´ee par les utilisateurs doivent ˆetre satisfaites en temps r´eel. La plupart des travaux se sont alors focalis´es sur la recherche de nouveaux langages cibles permettant d’offrir de telles garanties comme dans [Subbarayan et al., 2007; Fargier and Marquis, 2009; Darwiche, 2011]. Par la suite, nous pr´esentons quelques langages parmi les plus connus.

(O)BDD Une formule peut ˆetre convertie en un BDD (binary decision diagram) [Bryant, 1986]. Il s’agit d’un graphe acyclique orient´e et enracin´e qui permet de repr´esenter une fonction bool´eenne. Il comporte deux types de nœuds : deux nœuds terminaux 0 et 1 et des nœuds de d´ecision ´etiquet´es par une variable bool´eenne. Chaque nœud de d´ecision poss`ede deux fils, un correspond `a son affectation par 0 et l’autre correspond `a son affectation par 1. Le comptage du nombre de mod`eles revient `a parcourir le BDD `a partir du nœud terminal 1. Un BDD est dit ordonn´e (on parle alors d’OBDD) si les variables apparaˆıssent dans le mˆeme ordre dans tous les chemins partant de la racine. Un compilateur visant le langage OBDD est propos´e dans [Huang and Darwiche, 2004] o`u des garanties sur les complexit´es th´eoriques sont fournies en plus d’une borne sup´erieure sur la taille de l’OBDD. En pratique, il a montr´e son efficacit´e vis-`a-vis des compilateurs traditionnels. d-DNNF (compilateurs c2d, Dsharp et D4) Dans [Darwiche, 2001a], Darwiche pr´esente le compilateur c2d qui transforme la formule CNF en une formule NNF (ne-gative normal form) d´eterministe et d´ecomposable d-DNNF [Darwiche, 2004]. Une for-mule NNF est une disjonction de conjonctions de litt´eraux. Elle peut ˆetre repr´esent´ee sous

forme d’un graphe acyclique o`u l’´etiquette de chaque puits (sommet n’ayant pas de fils) est un litt´eral et les ´etiquettes des autres sommets sont les op´erateurs AND et OR. Elle est dite d´ecomposable si les sous-arbres correspondants aux fils d’un sommet AND sont disjoints au sens de l’ensemble de ses litt´eraux. Elle est dite d´eterministe si les sous-arbres correspondants aux fils d’un sommet OR induisent des formules qui ne peuvent pas ˆetre satisfaites simultan´ement. Ces deux propri´et´es permettent le calcul du nombre de mod`eles d’une formule en parcourant l’arbre des puits vers la source. Le nombre de mod`eles as-soci´e au sommet source est le nombre exact de mod`eles de la formule. Pour y parvenir, `a chaque litt´eral est associ´e le nombre 1. Pour chaque sommet AND (resp. OR), le nombre de mod`eles correspondant est la multiplication (resp. la somme) de nombre de mod`eles de chacun de ses fils. Dans [Muise et al., 2012], un autre compilateur Dsharp visant le langage d-DNNF est pr´esent´e. Selon les auteurs, il est g´en´eralement plus rapide que c2d tandis que les formules compil´ees sont souvent de taille comparable. Finalement, un nouveau com-pilateur CNF vers d-DNNF appel´e D4 est propos´e dans [Lagniez and Marquis, 2017a]. Les exp´erimentations conduites montrent que son temps de compilation est g´en´eralement inf´erieur `a celui de Dsharp et c2d aussi bien que la taille des formes d-DNNF compil´ees. Au niveau des instances r´esolues vis-`a-vis du comptage, D4 r´esout le plus grand nombre d’instances suivi par c2d.

SDD Dans [Darwiche, 2011], Darwiche propose un nouveau compilateur visant le lan-gage (pour Sentential Decision Diagram). L’objectif de ce lanlan-gage est de conserver des propri´et´es int´eressantes du langage OBDD comme la canonicit´e tout en ´etant plus g´en´eral en termes de traitabilit´e. Il permet ´egalement de g´en´erer une forme compil´ee de taille en O(exp(w)) avec w la tree-width de la CNF en entr´ee qui est plus petite que la path-width sur laquelle se base un OBDD. Notons que OBDD est un sous-ensemble de SDD qui est un sous-ensemble de d-DNNF. En pratique, les exp´erimentations ont montr´e que la repr´esentation en SDD est g´en´eralement plus compacte que celle en OBDD. `A l’instar de OBDD, SDD permet ´egalement le comptage de mod`eles. C’est aussi le cas d’un autre langage sous-ensemble de d-DNNF qui est FBDD [Gergov and Meinel, 1994]. Comme d’autres langages qui sont valides pour le comptage des mod`eles sans ˆetre sous-ensemble de d-DNNF, nous citons le langage EADT (extended affine decision trees) [Koriche et al., 2013].

MDDG (compilateur cn2mddg) Au-del`a des formules CNF, pour manipuler des ins-tances CSP et les compiler en langage Decision-DNNF [Oztok and Darwiche, 2014] (lan-gage strictement inclus dans d-DNNF) par exemple, le moyen le plus connu est de suivre un sch´ema de traduction-compilation. En effet, le r´eseau de contraintes donn´e en entr´ee est d’abord encod´e en formule CNF. Ensuite, en exploitant un compilateur comme c2d [Dar-wiche, 2004] ou Dsharp [Muise et al., 2012] nous obtenons une repr´esentation Decision-DNNF. Le premier inconv´enient de cette approche r´eside dans le grand nombre de variables bool´eennes de la formule CNF g´en´er´ee. En outre, la premi`ere ´etape, i.e. l’encodage, in-duit une perte de la structure initialement pr´esente dans le r´eseau de contraintes dˆue au format CNF. Une approche diff´erente a ´et´e alors propos´ee dans [Koriche et al., 2015]. Dans ce papier, les auteurs proposent le compilateur cn2mddg qui compile directement une instance CSP en langage MDDG (Multivalued decomposable decision graph). MDDG est une extension du langage Decision-DNNF aux domaines non bool´eens. Notons que le format donn´e en entr´ee `a cn2mddg est le format XCSP 2.1 [Roussel and Lecoutre, 2009]. Malgr´e l’augmentation du niveau de g´en´eralit´e obtenu en acceptant des domaines non bool´eens, les algorithmes polynomiaux utilis´es pour l’´enum´eration de solutions, le

comp-tage de solutions ou d’autres probl`emes peuvent ˆetre trivialement ´etendus au cas MDDG. Les exp´erimentations ´evaluant cn2mddg montrent qu’il est plus robuste du fait qu’il arrive `

a compiler des instances CSP que le sch´ema traduction-compilation n’y parvient pas. En outre, selon les auteurs, le temps requis pour la compilation de l’instance CSP en MDDG est plus petit que celui n´ecessaire pour la compilation de CNF en Decision-DNNF. Non seulement du temps est ´economis´e, mais encore, la taille de la repr´esentation MDDG est souvent plus compacte que celle de la repr´esentation d-DNNF. Les auteurs pr´ecisent aussi que les techniques impl´ement´ees dans le compilateur comme l’heuristique de choix de variables ou les techniques d’enregistrement qui visent `a ´eviter la duplication des sous-parties identiques de la repr´esentation compil´ee, tirent profit de la structure de l’instance CSP. Cette structure est au contraire beaucoup moins pr´esente dans la formule CNF. Les heuristiques de branchement font l’objet d’une ´etude [Lagniez et al., 2017] qui montre en particulier que les heuristiques de choix de variables favorisant la d´ecomposabilit´e du graphe sont prioritaires lorsque le langage MDDG est vis´e.

2.3.1.4 M´ethodes d’approximation

Les m´ethodes de comptage exactes attaquent ce probl`eme en explorant exhaustive-ment tout l’espace de recherche. Le fait qu’il soit #P-complet laisse peu d’espoir ainsi pour un passage `a grande ´echelle. En plus, de nombreuses applications du comptage de solutions ne requi`erent pas de connaˆıtre le nombre exact de solutions et peuvent se conten-ter d’une approximation de ce nombre exact. C’est ainsi qu’une approche diff´erente est apparue qui consiste `a estimer le nombre de solutions plus rapidement. Deux aspects sont consid´er´es : la qualit´e de l’estimation et la confiance associ´ee `a l’estimation report´ee. Une m´ethode approximative associ´ee `a #BT D, Approx#BTD, est donn´ee dans [Favier et al., 2009]. Elle fournit un majorant du nombre de solutions. Les auteurs de [Gogate and Dech-ter, 2008] proposent une m´ethode qui se base sur une d´ecomposition AND/OR et sur l’´echantillonnage de l’espace de recherche. Cette m´ethode fournit une borne inf´erieure sur le nombre de solutions avec un intervalle de confiance `a pourcentage ´elev´e. Ce type de m´ethode peut malheureusement fournir une borne inf´erieure nulle pour de gros probl`emes et peut n´ecessiter un r´eglage de param`etres tr`es coˆuteux en temps. Une m´ethode diff´erente se base sur l’ajout des contraintes XOR en SAT dans [Gomes et al., 2006] et en CSP dans