HAL Id: inria-00292640
https://hal.inria.fr/inria-00292640
Submitted on 2 Jul 2008
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
Cohérence d’arc virtuelle pour les CSP pondérés
Martin Cooper, Simon de Givry, Marti Sanchez, Thomas Schiex, Matthias Zytnicki
To cite this version:
Martin Cooper, Simon de Givry, Marti Sanchez, Thomas Schiex, Matthias Zytnicki. Cohérence d’arc virtuelle pour les CSP pondérés. JFPC 2008- Quatrièmes Journées Francophones de Programmation par Contraintes, LINA - Université de Nantes - Ecole des Mines de Nantes, Jun 2008, Nantes, France.
pp.237-246. �inria-00292640�
Actes JFPC 2008
Coh´ erence d’arc virtuelle pour les CSP pond´ er´ es
M. Cooper S. de Givry, M. Sanchez, T. Schiex, M. Zytnicki
IRIT, UPS INRA, UR 875
Toulouse Castanet Tolosan
cooper@irit.fr {degivry,tschiex}@toulouse.inra.fr
R´ esum´ e
L’optimisation d’une combinaison de fonctions de coˆ ut d´ efinies sur des variables discr` etes est un probl` eme central dans de nombreux formalismes tels que les r´ e- seaux probabilistes, le probl` eme de satisfiabilit´ e maxi- mum, les r´ eseaux de contraintes pond´ er´ es (WCSP) ou les graphes de facteurs. De r´ ecents r´ esultats ont mon- tr´ e que la maintenance d’une forme de coh´ erence locale dans un algorithme de s´ eparation-´ evaluation (Branch and Bound) fournit des minorants qui sont assez puis- sants pour r´ esoudre de nombreuses instances r´ eelles.
Nous pr´ esentons ici la coh´ erence d’arc virtuelle (Vir- tual Arc Consistency, VAC) qui planifie et applique it´ e- rativement des s´ equences d’op´ eration de propagation de coˆ uts fractionnaires qui garantissent de transformer un WCSP en un autre WCSP ´ equivalent incorporant un mi- norant accru. Bien que plus faible que l’arc coh´ erence optimale (OSAC) r´ ecemment propos´ ee, VAC est plus rapide et est capable de r´ esoudre le langage polyno- mial d´ efini par des fonctions de coˆ ut sous-modulaires. Le maintien de VAC pendant la recherche conduit ` a d’im- portantes am´ eliorations sur des probl` emes difficiles de grande taille et nous a permis de clore deux instances bien connues du probl` eme d’affectation de fr´ equence.
Abstract
Optimizing a combination of local cost functions on discrete variables is a central problem in many forma- lisms such as in probabilistic networks, maximum satis- fiability, weighted CSP or factor graphs. Recent results have shown that maintaining a form of local consistency in a Branch and Bound search provides bounds that are strong enough to solve many practical instances.
In this paper, we introduce Virtual Arc Consistency (VAC) which iteratively computes and applies sequences of cost propagation over rational costs that are guaran- teed to transform a WCSP in another WCSP with an improved constant cost. Although not as strong as Op- timal Soft Arc Consistency, VAC is faster and power- ful enough to solve submodular problems. Maintaining VAC inside branch and bound leads to important im-
provements in efficiency on large difficult problems and allowed us to close two famous frequency assignment problem instances.
1 Introduction
L’analyse des mod` eles graphiques est un probl` eme central en IA. L’optimisation du coˆ ut combin´ e de fonc- tions de coˆ ut locales, centrale dans le cadre des CSP valu´ es [16], capture des probl` emes tels que le pro- bl` eme de satisfiabilit´ e maximum (MaxSAT), la r´ eso- lution des CSP pond´ er´ es ou le probl` eme de recherche d’une explication de probabilit´ e maximum dans les r´ e- seaux probabilistes. Il a des applications en allocation de ressource, en ench` eres combinatoires, en bioinfor- matique. . .
Les approches de type “programmation dynamique”
bas´ ees sur l’´ elimination de variables ou par arbre de jonction ont ´ et´ e largement mobilis´ ees pour r´ esoudre de tels probl` emes mais elles sont intrins` equement li- mit´ ees par leur complexit´ e exponentielle en temps et en espace lors de leur application ` a des mod` eles gra- phiques de grande largeur d’arbre. Au contraire, les approches de type “s´ eparation-´ evaluation” permettent de conserver une complexit´ e spatiale raisonnable mais n´ ecessitent de bons minorants (forts et peu coˆ uteux) pour avoir une efficacit´ e correcte.
Durant ces derni` eres ann´ ees, des minorants de qua- lit´ e croissante, bas´ es sur l’´ etablissement de coh´ erence locale pour les CSP pond´ er´ es, ont ´ et´ e d´ efinis. Ces co- h´ erences locales sont ´ etablies via l’application r´ ep´ et´ ee de “transformations pr´ eservant l’´ equivalence” (Equi- valence Preserving Transformations ou EPT [6]) qui
´
etendent les op´ erations de coh´ erence locale utilis´ ees
dans les CSP classiques. Une tendance similaire a suivi
dans le cadre MaxSAT dans lequel des “r` egles d’inf´ e-
rence” pr´ eservant l’´ equivalence sont maintenant utili-
s´ ees dans les solveurs les plus r´ ecents [9]. Ces EPT d´ e-
placent des coˆ uts entiers entre des fonctions de coˆ ut de port´ ee diff´ erente et peuvent ´ eventuellement permettre d’augmenter la fonction de coˆ ut de port´ ee vide (une constante) jusqu’` a une valeur non triviale. Cette va- leur fournit un minorant ´ evident qui peut ˆ etre main- tenu durant une recherche arborescente.
Au niveau de la coh´ erence d’arc, l’application non restreinte chaotique d’EPT ne converge g´ en´ eralement pas vers un point fixe unique [15] et peut ne pas termi- ner. Diff´ erentes restrictions heuristiques qui terminent toujours ont donc ´ et´ e introduites, conduisant ` a dif- f´ erentes variantes de l’arc coh´ erence telles que AC*, DAC*, FDAC*, EDAC* [8]. . . La d´ efinition r´ ecente de l’arc coh´ erence optimale (Optimal Soft Arc Consis- tency ou OSAC [5]) ` a montr´ e qu’il ´ etait possible de pr´ e-calculer, en temps polynomial, un ensemble d’EPT d´ epla¸ cant des coˆ uts rationnels et maximisant la valeur du minorant d´ efini par la fonction de coˆ ut de port´ ee vide. Cet algorithme, bas´ e sur le programmation li- n´ eaire, fournit des minorants forts mais qui semblent trop coˆ uteux pour ˆ etre maintenus durant la recherche.
Dans cet article, nous pr´ esentons l’arc coh´ erence virtuelle (Virtual Arc Consistency, VAC) qui utilise un algorithme d’´ etablissement de la coh´ erence d’arc classique pour produire des s´ equences d’EPT ` a coˆ ut rationnel qui augmentent toujours le minorant. Bien que moins puissante qu’OSAC, VAC est rapide ` a ´ eta- blir et fournit des minorants assez forts pour r´ esoudre les fonctions de coˆ ut sous-modulaires (comme OSAC).
C’est l’un des ingr´ edients essentiels qui nous a permis de clore deux instances difficiles d’affectation de fr´ e- quence qui sont rest´ ees ouvertes pendant plus de 10 ann´ ees.
2 Pr´ eliminaires
Un CSP pond´ er´ e (Weighted CSP, WCSP) est un quadruplet (X, D, W, m). X et D sont des ensembles de n variables et domaines, comme dans les CSP clas- siques. Le domaine de la variable i est not´ e D i . ´ Etant donn´ e un sous-ensemble de variables S ⊆ X , on note
`(S) l’ensemble des n-uplets (tuples) d´ efinis sur S . W est un ensemble de fonctions de coˆ ut. Chaque fonction de coˆ ut (ou contrainte molle) w S de W est d´ efinie sur un ensemble de variables S appel´ e sa port´ ee et suppos´ e diff´ erent pour chaque fonction de coˆ ut. Une fonction de coˆ ut w S assigne un coˆ ut ` a chaque affectation des variables de S i.e. : w S : `(S) → [0, m]. L’ensemble des coˆ uts possibles est [0, m] o` u m ∈ {1, . . . , +∞} repr´ e- sente un coˆ ut intol´ erable. Les coˆ uts sont combin´ es par l’addition born´ ee ⊕, d´ efinie par a ⊕ b = min{m, a+ b}, et compar´ es entre eux via ≥. Notez que le coˆ ut into- l´ erable m peut ˆ etre fini ou infini et qu’un coˆ ut b peut ˆ etre soustrait d’un coˆ ut a plus large en utilisant l’op´ e-
ration o` u a b est ´ egal ` a (a − b) si a 6= m et ` a m sinon.
Pour les fonctions de coˆ ut binaires et unaires, nous utilisons des notations simplifi´ ees : une fonction de coˆ ut binaire entre les variables i et j est not´ ee w ij . Une fonction de coˆ ut unaire sur la variable i est not´ ee w i . Nous faisons l’hypoth` ese qu’il existe une fonction de coˆ ut unaire w i pour chaque variable ainsi qu’une fonction de coˆ ut d’arit´ e nulle (une constante) not´ ee w ∅ . Si m = 1, notez que le WCSP est ´ equivalent au probl` eme classique CSP (un coˆ ut de 1 ´ etant associ´ e aux combinaisons de valeurs interdites). Pour rendre
´
evident que dans ce cas les fonctions de coˆ uts ne re- pr´ esente que de simples contraintes, elles seront alors not´ ees c S au lieu de w S .
Le coˆ ut d’une affectation compl` ete t ∈ `(X) dans un probl` eme P = (X, D, W, m) est ´ egal ` a Val P (t) = L
w
S∈W w S (t[S]) o` u t[S] repr´ esente la projection ha- bituelle d’un tuple sur l’ensemble de variables S. La minimisation de Val P (t) d´ efini un probl` eme d’optimi- sation avec un probl` eme de d´ ecision associ´ e qui est NP-complet.
L’´ etablissement d’une coh´ erence locale donn´ ee sur un probl` eme P consiste ` a transformer P = (X, D, W, m) en un probl` eme P 0 = (X, D, W 0 , m) qui est ´ equivalent ` a P (Val P = Val P
0) et qui satisfait le propri´ et´ e de coh´ erence locale consid´ er´ ee. Ce proces- sus peut augmenter w ∅ et fournir ainsi un minorant am´ elior´ e du coˆ ut optimum. Il s’appuie sur l’application de transformations pr´ eservant l’´ equivalence (EPT) qui d´ eplace les coˆ uts entre des port´ ees diff´ erentes.
L’algorithme 1 d´ ecrit deux EPT ´ el´ ementaires. Pro- ject() s’applique dans la port´ ee d’une fonction de coˆ ut w S . Elle d´ eplace une quantit´ e de coˆ ut α de w S vers une fonction de coˆ ut unaire w i , i ∈ S, sur une valeur a ∈ D i . Si le coˆ ut α est n´ egatif, cela signifie que le coˆ ut est d´ eplac´ e de la fonction de coˆ ut unaire w i vers la fonc- tion de coˆ ut w S : on parle alors d’extension. Afin d’´ evi- ter l’apparition de coˆ uts n´ egatifs dans P 0 , il est n´ eces- saire que −w i (a) ≤ α ≤ min t∈`(S),t[{i}]=a {w S (t)}. De fa¸con similaire, UnaryProject() s’applique sur un sous- probl` eme d´ efini par une seule variable i ∈ X . Elle d´ eplace un coˆ ut α de la fonction de coˆ ut unaire w i vers le fonction d’arit´ e nulle w ∅ (avec −w ∅ ≤ α ≤ min a∈D
i{w i (a)} de fa¸con ` a conserver des coˆ uts posi- tifs).
Un WCSP binaire est nœud-coh´ erent (NC) ssi ∀i ∈ X, ∃a ∈ D i , w i (a) = 0 ((i, a) est appel´ e un support unaire pour i). Il v´ erifie la coh´ erence d’arc (AC) s’il est NC et si ∀i ∈ X, ∀w ij ∈ W et ∀a ∈ D i , ∃b ∈ D j tel que w ij (a, b) = 0 ((j, b) est appel´ e un support de a sur w ij ).
Quand une valeur (i, a) n’a pas de support sur w ij , on
peut en cr´ eer un en appliquant la transformation Pro-
ject sur la fonction de coˆ ut w ij vers la valeur (i, a) avec
le coˆ ut le plus grand possible. Ceci est montr´ e dans la figure 1a. Ce CSP pond´ er´ e a deux variables avec deux valeurs a et b. Les sommets, repr´ esentant des valeurs, peuvent ˆ etre pond´ er´ es par les coˆ uts unaires. Une arˆ ete connectant deux valeurs repr´ esente un coˆ ut binaire de 1. Si deux valeurs ne sont pas connect´ ees, le coˆ ut as- soci´ e est implicitement nul. Notez que la valeur (1, b) n’a pas de support sur la variable 2. On peut appli- quer la transformation Project( w 12 , 1, b, 1 ) qui cr´ ee un coˆ ut unaire de 1 sur (1, b). L’application de la trans- formation UnaryProject( 1, 1 ) sur le r´ eseaux r´ esultant (fi- gure 1b) rend le probl` eme AC et augmente w ∅ de 1. Diff´ erents ordres d’application des transformations peuvent conduire ` a des points fixes (fermetures) diff´ e- rents : en consid´ erant d’abord l’absence de support de (2, a) sur w 12 et en appliquant Project( w 12 , 2, a, 1 ) , on aboutit au r´ eseau de la figure 1c. Il est AC, mais w ∅ vaut 0.
Fig. 1 – Un CSP pond´ er´ e et deux fermetures AC.
Les niveaux de coh´ erence locale existants (AC, DAC, FDAC, EDAC) peuvent ˆ etre vus comme des heuristiques efficaces cherchant ` a s’approcher d’une fermeture arc coh´ erente optimale (maximisant w ∅ ).
En utilisant des coˆ uts rationnels, il a ´ et´ e montr´ e qu’une telle fermeture arc coh´ erente peut ˆ etre atteinte via l’´ etablissement de la coh´ erence d’arc optimale (OSAC, [5]). Ceci n´ ecessite la r´ esolution d’un probl` eme lin´ eaire de grande taille et son utilisation a donc ´ et´ e limit´ ee au pr´ etraitement. Nous proposons dans la section sui- vante un m´ ecanisme alternatif plus efficace bas´ e sur un algorithme de coh´ erence d’arc classique et qui peut ˆ
etre maintenu durant la recherche.
Algorithme 1 : Les transformations ´ el´ ementaires Proc´ edure Project( w S , i, a, α )
w i (a) ← w i (a) ⊕ α;
pour tous les (t ∈ `(S ) tel que t[{i}] = a) faire w S (t) ← w S (t) α;
Proc´ edure UnaryProject( i, α ) w ∅ ← w ∅ ⊕ α;
pour tous les (a ∈ D i ) faire w i (a) ← w i (a) α;
3 Coh´ erence d’arc virtuelle
Etant donn´ ´ e un WCSP P = (X, D, W, m), on d´ efinit Bool(P ) comme le CSP classique (X, D, W ) o` u c S ∈ W si et seulement si ∃w S ∈ W et S 6= ∅ tel que
∀t ∈ `(S) (t ∈ c S ⇔ w S (t) = 0). Bool(P )est un CSP classique dont les solutions (si il y en a) ont un coˆ ut
´
egal ` a w ∅ dans P .
D´ efinition 1 Un WCSP satisfait la coh´ erence d’arc virtuelle (VAC) si la fermeture arc coh´ erente classique de Bool(P) n’est pas vide.
Si un WCSP P ne satisfait pas la propri´ et´ e VAC, alors Bool(P ) est incoh´ erent et on sait que les solu- tions de P ont un coˆ ut strictement plus grand que w ∅ . De fa¸ con plus int´ eressante, on va voir qu’en simulant le filtrage par coh´ erence d’arc classique de Bool(P), il est possible de construire une s´ equence de transfor- mations pr´ eservant l’´ equivalence (EPT) et qui m` ene prouv´ ement ` a une augmentation de w ∅ . Consid´ erons par exemple le probl` eme de la figure 2(a). Ce probl` eme est une WCSP bool´ een binaire que l’on peut interpr´ e- ter comme un probl` eme de type Max-SAT d´ efini par les clauses ¯ x; x ∨ y; ¯ x ∨ z; y ∨ z. Il satisfait la propri´ ¯ et´ e EDAC. Notez que Bool(P ) est repr´ esent´ e par la mˆ eme figure d` es lors que l’on fait l’hypoth` ese que m = 1 (un coˆ ut de 1 repr´ esente une combinaison interdite).
Dans une premi` ere phase, on filtre le probl` eme Bool(P ) par coh´ erence d’arc classique. La fermeture arc coh´ erente obtenue est d´ ecrite dans la figure 2(b) : comme la valeur (x, t) est interdite, les valeurs (y, t) et (z, f) n’ont pas de support sur x et peuvent ˆ etre effac´ ees (marqu´ ees avec un coˆ ut de 1). Pour chaque effacement, nous m´ emorisons la source de l’effacement par une fl` eche grise pointant vers la variable n’offrant pas de support. La valeur (z, t) peut ˆ etre effac´ ee du fait de l’effacement de (y, t) et le domaine de z se re- trouve r´ eduit ` a l’ensemble vide (wipe-out). Du fait que le WCSP d’origine a des coˆ uts tous entiers, on pourrait d´ eduire un minorant de 1 pour le probl` eme original P , mais sans disposer d’une version transform´ ee ´ equiva- lente de P .
On met donc en oeuvre une seconde phase qui re- trace les ´ etapes de la premi` ere phase en partant de la variable dont le domaine a ´ et´ e ´ epuis´ e. Faisons l’hypo- th` ese qu’une quantit´ e inconnue de coˆ ut λ va pouvoir ˆ
etre d´ eplac´ ee vers w ∅ ` a partir de la variable z dont
le domaine est vide. Pour ce faire, des coˆ uts de au
moins λ doivent ˆ etre disponibles ` a chacune des valeurs
de la variable z afin de les projeter sur w ∅ . En sui-
vant les causes d’effacement, nous savons que ces coˆ uts
peuvent ˆ etre obtenus par projection ` a partir des fonc-
tions de coˆ ut w yz et w xz respectivement. Les coˆ uts
w yz (f, t) et w xz (f, f ) ´ etant non nuls dans P , il sera
Fig. 2 – Un WCSP o` u VAC est plus puissant qu’EDAC.
possible de d´ eplacer les coˆ uts ` a partir de l` a, et il est donc inutile de remonter plus loin. Les autres coˆ uts n´ ecessaires doivent ˆ etre extrait des fonctions de coˆ ut w y et w x par extension. Une quantit´ e de coˆ ut de λ doit ˆ etre obtenue r´ ecursivement via w xy vers w x . Le proces- sus s’arrˆ ete quand tous les coˆ uts requis sont non-nuls dans le WCSP original P . Nous sommes alors capables de d´ enombrer le nombre de demandes d’une quantit´ e de coˆ ut λ sur chacun des coˆ uts non nuls identifi´ es. Ces comptes sont montr´ es en italique sur la figure 2(c). Ici, le nombre maximum de demandes de coˆ ut est atteinte sur w x (t) avec 2 demandes. ´ Etant donn´ e que w x (t) = 1 dans P, la quantit´ e maximum de coˆ ut que l’on peut affecter ` a λ est donc 1 2 .
Dans une troisi` eme phase, on applique directement toutes les transformations identifi´ ees dans la phase 2, dans leur ordre inverse et en utilisant la valeur maxi- mum de λ = 1 2 identifi´ ee. Le processus est illustr´ e dans les figures 2(d) ` a 2(g) dans lesquelles les extensions et projections de coˆ ut r´ ealis´ ees sont montr´ ees en gras. Le WCSP final obtenu est ´ equivalent ` a notre probl` eme d’origine mais poss` ede un minorant w ∅ = 1 2 . ´ Etant
´ equivalent au probl` eme original, le processus (ou tout autre traitement) peut ˆ etre ` a nouveau appliqu´ e. Ici, la fermeture arc coh´ erente de du nouveau Bool(P ) n’est pas vide et le probl` eme obtenu satisfait donc la pro- pri´ et´ e de coh´ erence d’arc virtuelle (VAC). Le probl` eme original ´ etant ` a coˆ uts entiers, on dispose en fait d’un minorant de 1 sur le coˆ ut d’une solution optimale.
Le th´ eor` eme qui suit montre que si le filtrage par co- h´ erence d’arc de Bool(P) produit une fermeture vide, il est alors possible d’augmenter w ∅ par une s´ equence de transformations pr´ eservant l’´ equivalence au niveau arc (et r´ eciproquement).
Th´ eor` eme 1 Soit P un WCSP. Il existe une s´ e- quence de transformations pr´ eservant l’´ equivalence au niveau arc qui, une fois appliqu´ ees ` a P produisent un WCSP avec une augmentation de la fonction de coˆ ut w ∅ si et seulement si la fermeture arc coh´ erente de Bool(P) est vide.
Preuve : ⇒ : Soit O 1 , . . . , O t une s´ equence d’EPT au niveau arc dans P qui produisent un WCSP ´ equivalent avec un w ∅ accru. Soit O 0 1 , . . . , O 0 t les EPT correspon-
dantes avec un coˆ ut projet´ e ou ´ etendu fix´ e ` a 1. L’ap- plication de cette s´ equence d’op´ erations ` a Bool(P ) (vu comme un WCSP avec m = 1) effectue un filtrage par coh´ erence d’arc de Bool(P ) qui conduit in´ evitablement
`
a un domaine vide.
⇐ : Soit O 1 , . . . , O t une s´ equence d’EPT dans Bool(P ) qui m` ene ` a un probl` eme ayant un domaine vide. Sans perte de g´ en´ eralit´ e, on peut faire l’hypo- th` ese qu’aucune paire d’op´ erations O i , O j n’est stric- tement identique car les mˆ emes EPT n’ont jamais be- soin d’ˆ etre appliqu´ ees deux fois dans un CSP classique (idempotence de ⊕). Chaque op´ eration O i correspond soit ` a une op´ eration de type Project soit ` a une op´ e- ration de type UnaryProject dans Bool(P ) vu comme un WCSP avec m = 1. Soit O 0 i l’EPT correspondante dans P appliqu´ ee avec un coˆ ut de δ/e i , o` u δ est le coˆ ut non nul le plus petit qui apparaˆıt dans P. On divise le coˆ ut par e = |W | ` a chaque op´ eration car un coˆ ut peut, dans le pire des cas, ˆ etre divis´ e en quantit´ es plus petites qui doivent ˆ etre ´ etendues vers toutes les fonc- tions de coˆ ut impliquant la variable (ou projet´ e vers toutes les variables dans la port´ ee d’une mˆ eme fonc- tion de coˆ ut). Mˆ eme dans le cas d’une division maxi- male, le coˆ ut δ/e i peut toujours ˆ etre d´ eplac´ e lors de l’application de l’op´ eration O i 0 . Apr` es l’application de O 0 1 , . . . , O 0 t ` a P , on obtient n´ ecessairement par projec- tion sur w ∅ une augmentation de w ∅ plus grande que
δ/e t > 0. 2
Il est facile de montrer que VAC est plus fort que la coh´ erence d’arc existentielle (EAC) et elle peut mˆ eme r´ esoudre les probl` emes sous-modulaires, un langage polynomial non trivial des CSP pond´ er´ es [4]. Si l’on fait l’hypoth` ese que chaque domaine est ordonn´ e, une fonction de coˆ ut w S est sous-modulaire si et seule- ment si ∀t, t 0 ∈ `(S ), w(max(t, t 0 )) + w(min(t, t 0 )) ≤ w(t) + w(t 0 ) o` u max et min repr´ esentent l’application point ` a point de max (resp. min) sur les valeurs de t, t 0 . Cette classe inclut des fonctions de coˆ ut telles que p x 2 + y 2 ou (x ≥ y?(x − y) r : m) avec (r ≥ 1), utile en bioinformatique [20] et permettant de capturer une forme de CSP temporel simple avec des pr´ ef´ erences lin´ eaires [11].
Th´ eor` eme 2 Soit P un WCSP dont les fonctions de
coˆ ut sont toutes sous-modulaires et qui satisfait la pro- pri´ et´ e de coh´ erence d’arc virtuelle. Alors, une solution optimale de P peut ˆ etre trouv´ ee en un temps polyno- mial et son coˆ ut est ´ egal ` a w ∅ .
Sch´ ema de preuve : dans Bool(P), la d´ efinition de la sous-modularit´ e se r´ e´ ecrit c(t)∧ c(t 0 ) ⇒ c(max(t, t 0 )) ∧ c(min(t, t 0 )) indiquant que les relations de Bool(P ) sont ` a la fois ferm´ ees pour max (max-closed) et pour min. ´ Etant donn´ e que le WCSP satisfait VAC, la fer- meture arc coh´ erente de Bool(P ) n’est pas vide. On sait d’autre part que le filtrage par coh´ erence d’arc r´ esout les probl` emes ferm´ es pour max [10]. Une so- lution de Bool(P) peut donc ˆ etre produite en temps polynomial (en consid´ erant les valeurs maximum des domaines filtr´ es). Son coˆ ut dans le WCSP original est, par d´ efinition de Bool(P), ´ egal ` a w ∅ et donc optimal.
2
Les transformations Project et UnaryProject pr´ eser- vant la sous-modularit´ e [7], l’´ etablissement de VAC sur un probl` eme sous-modulaire permet donc de r´ e- soudre le probl` eme. L’ordre utilis´ e sur les domaines n’apparaissant pas dans le fonctionnement de VAC, VAC peut d´ eterminer le coˆ ut optimal de probl` emes sous-modulaires permut´ es [17] sans n´ ecessiter de r´ eor- donner les domaines.
4 Etablissement de la coh´ ´ erence d’arc vir- tuelle
Dans cette section, nous nous restreignons par souci de simplicit´ e ` a des WCSP binaires, mais VAC peut ˆ etre appliqu´ e ` a des probl` emes d’arit´ e arbitraire en s’ap- puyant sur la coh´ erence d’arc g´ en´ eralis´ ee (GAC) au lieu d’AC (la structure de donn´ ee tueur utilis´ ee dans la suite devient alors une port´ ee de fonction de coˆ ut).
Comme on l’a vu dans l’exemple pr´ ec´ edent, le proces- sus d’´ etablissement de VAC se d´ eroule en trois phases.
La premi` ere phase consiste ` a appliquer un algorithme instrument´ e de filtrage par AC sur Bool(P ). Cet algo- rithme, repr´ esent´ e par la fonction Instrumented-AC n’est pas d´ ecrit ici du fait de sa simplicit´ e. Si aucun do- maine vide n’apparaˆıt ` a la fin du filtrage, le probl` eme est d´ ej` a VAC et 0 est retourn´ e. Sinon, le num´ ero de la variable dont le domaine s’est ´ epuis´ e est retourn´ e.
L’instrumentation doit collecter deux types d’informa- tion : pour toute valeur (i, a) effac´ ee du fait de l’ab- sence de support sur une contrainte c ij , la structure de donn´ ee tueur(i, a) doit contenir la variable j. De plus, la valeur (i, a) elle-mˆ eme doit ˆ etre pouss´ ee dans une pile P. Ces deux structures de donn´ ees ont une complexit´ e spatiale en O(ed) et O(nd) respectivement et elles ne changent pas les complexit´ es temporelles et spatiales des algorithmes de filtrage par arc coh´ erence
optimaux.
La seconde phase est d´ ecrite par l’algorithme 2. Il exploite la pile P et la structure tueur pour parcou- rir l’historique des propagations r´ ealis´ ees et construire ainsi un sous-ensemble minimal pour l’inclusion des valeurs effac´ ees suffisant pour expliquer l’´ epuisement du domaine observ´ e. Pour cela, un bool´ een M (i, a) est fix´ e ` a la valeur vraie si l’effacement de (i, a) est n´ e- cessaire pour expliquer le wipe-out. Cette phase cal- cule ´ egalement la quantit´ e de coˆ ut λ qu’il sera fina- lement possible d’ajouter ` a w ∅ . En s’appuyant sur le structure tueur, il est toujours possible de remonter les causes d’effacement jusqu’` a ce qu’un coˆ ut non nul soit atteint : ce coˆ ut sera la source dont pourra ˆ etre extrait la quantit´ e λ. Cependant, dans les CSP clas- siques, un effacement donn´ e peut ˆ etre la cause directe de plusieurs autres effacements. Pour calculer la valeur de λ, il faut donc calculer combien de fois une source de coˆ ut identifi´ ee a ´ et´ e sollicit´ ee dans le WCSP origi- nal, que ce soit au niveau unaire ou binaire. Pour un tuple (une paire ou une valeur) t S de port´ ee S, tel que w S (t S ) 6= 0, nous utilisons un entier k(t S ) pour stocker le nombre de demandes de coˆ ut de λ sur w S (t S ).
L’utilisation de la pile P garantit que les valeurs ef- fac´ ees sont explor´ ees dans un ordre anti-causal : une valeur effac´ ee est toujours explor´ ee avant les efface- ments qui ont pu mener ` a sa suppression. Ainsi, quand le nombre de demandes de coˆ ut pour un tuple donn´ e est calcul´ e, ce calcul est bas´ e sur des coˆ uts d´ ej` a ´ etablis, et inductivement corrects. In fine, il sera possible de calculer λ comme le minimum de w k(t
S(t
S)
S
) sur tous les t S tels que k(t S ) 6= 0.
Initialement, tous les k sont initialis´ es ` a 0 except´ e
`
a la variable i 0 dont le domaine a ´ et´ e ´ epuis´ e et pour laquelle une demande de coˆ ut est associ´ ee ` a chaque valeur afin de pouvoir augmenter w ∅ (ligne 1). Une valeur (i, a) extraite de P (ligne 2) a ´ et´ e effac´ ee par manque de support sur la variable tueur(i, a) = j. Si cet effacement est n´ ecessaire pour expliquer le wipe- out (ligne 3), le manque de support peut ˆ etre dˆ u au fait que :
1. la paire (a, b) est interdite par c ij dans Bool(P) ce qui veut dire que w ij (a, b) 6= 0 (ligne 5). Le parcours arri` ere des effacements peut s’arrˆ eter, le nombre de demande de coˆ ut faites sur la paire (a, b) (ligne 6) et λ (ligne 7) sont alors mis ` a jour.
2. sinon, la valeur (j, b) a ´ et´ e effac´ ee et k((i, a)) de-
mandes de coˆ ut lui sont transmises. Notez que si
diff´ erentes valeurs de la variable i effectuent des
demandes de coˆ ut sur la valeur (j, b), il suffira
de r´ epondre ` a la demande maximum car une ex-
tension de coˆ ut vers w ij fournit des coˆ uts ` a tous
les w ij (a, b). Pour maintenir ce maximum, nous
utilisons une autre structure de donn´ ees, not´ ee
k i ((j, b)), pour stocker le nombre de demandes maximum de coˆ ut effectu´ ee par i sur (j, b). On a donc k((i, a)) = P k j ((i, a)). Ici, si le nombre de demandes est sup´ erieur au maximum d´ ej` a en- registr´ e (ligne 8), k i ((j, b)) (ligne 9) et k((j, b)) (ligne 10) doivent ˆ etre mis ` a jour. Si aucun coˆ ut unaire w j (b) n’explique l’effacement de (j, b), cela signifie que (j, b) a ´ et´ e effac´ e par le filtrage par AC et il est n´ ecessaire de poursuivre le parcours de la raison de l’effacement de (j, b) r´ ecursivement (ligne 11). Sinon, ce parcours peut s’arrˆ eter ` a (j, b) et λ est mis ` a jour (ligne 12).
La derni` ere phase est d´ ecrite dans l’algorithme 3.
Elle modifie directement le WCSP original en appli- quant les transformations identifi´ ees dans la phase pr´ e- c´ edente, dans l’ordre inverse, via la pile R. Comme le th´ eor` eme 1 le montre, le nouveau WCSP aura un w ∅ augment´ e de λ.
Algorithme 2 : VAC - Phase 2 : Calcul de λ Initialiser tous les k, k j ` a 0, λ ← m ;
i 0 ← Instrumented-AC() ; si (i 0 = 0) alors retourner ; pour tous les a ∈ D i
0faire
k((i, a)) ← 1, M(i, a) ← vrai;
1
si (w i (a) 6= 0) alors
M (i, a) ← faux λ ← min(λ, w i (a)) ; tant que (P 6= ∅ ) faire
(i, a) ← P.P op() ;
2
si (M (i, a)) alors
3
j ← tueur(i, a) ; R.P ush(i, a) ; pour tous les b ∈ D j faire
4
si (w ij (a, b) 6= 0) alors
5
k((i, a), (j, b)) ← k((i, a), (j, b)) + k((i, a)) ;
6
λ ← min(λ, k((i,a),(j,b)) w
ij(a,b) ) ;
7
sinon si (k((i, a)) > k i ((j, b))) alors
8
k i ((j, b)) ← k((i, a)) ;
9
k((j, b)) ← k((j, b)) + k((i, a)) − k i ((j, b)) ;
10
si (w j (b) = 0) alors M (j, b) ← vrai ;
11
sinon λ ← min(λ, k((j,b)) w
j(b) ) ;
12
Du fait de la structure de donn´ ees k((i, a), (j, b)), l’algorithme a une complexit´ e spatiale en O(ed 2 ). Il est possible de se d´ ebarasser de ces compteurs binaires en observant que les demandes de coˆ ut sur w ij (a, b) ne peuvent provenir que de la variable i ou j. k((i, a)) demandes sont faites par i si tueur(i, a) = j et M (i, a) est vrai, et de mˆ eme de fa¸ con sym´ etrique pour (j, b).
Ainsi, k((i, a), (j, b)) peut ˆ etre calcul´ e ` a la vol´ ee en temps constant ` a partir de tueur, de M et des comp- teurs unaires k. On obtient ainsi une complexit´ e spa-
Algorithme 3 : VAC - Phase 3 : Application des EPT tant que (R 6= ∅ ) faire
(j, b) ← R.P op() ; i ← tueur(j, b) ;
pour tous les a ∈ D i t.q. k j ((i, a)) 6= 0 faire Project( w ij , i, a, −λ × k j ((i, a)) ) ;
k j ((i, a)) ← 0 ;
Project( w ij , j, b, λ × k((j, b)) ) ; UnaryProject( i 0 , λ ) ;
tiale en O(ed).
Une it´ eration de l’algorithme s’effectue en O(ed 2 ).
Ceci est vrai pour la premi` ere passe d` es lors qu’un algo- rithme de filtrage par AC optimal est utilis´ e (l’instru- mentation elle-mˆ eme ´ etant en O(nd)). La 2nd phase est en O(nd 2 ) car il y a au plus nd valeurs dans P et la boucle de la ligne 4 est en O(d). En s’appuyant sur l’astuce r´ eduisant la complexit´ e spatiale ` a O(ed) ci-dessus, la mˆ eme complexit´ e en O(nd 2 ) s’applique
`
a la derni` ere phase. Comme λ peut devenir de plus en plus petit apr` es chaque it´ eration, le nombre d’it´ e- rations de VAC n’a pu ˆ etre born´ e. Pour impl´ ementer VAC, nous avons utilis´ e un seuil ε. Si un nombre fix´ e d’it´ erations ne m` ene jamais ` a une augmentation de w ∅ sup´ erieure ` a ε, alors l’´ etablissement de VAC est arrˆ et´ e de fa¸ con pr´ ematur´ e. On parle d’´ etablissement de VAC ε . Le nombre d’it´ erations est alors en O( m ε ).
Quand une it´ eration n’augmente pas le minorant par plus de ε, un goulot d’´ etranglement (un coˆ ut qui a d´ e- termin´ e la valeur de λ) est identifi´ e et les coˆ uts unaires et binaires associ´ es ` a une variable impliqu´ ee dans ce goulot sont ignor´ es dans Bool(P ) dans les it´ erations suivantes.
De fa¸con ` a rapidement collecter des contributions importantes, on remplace Bool(P ) par une version re- lax´ ee mais de plus en plus stricte not´ ee Bool θ (P ). Un tuple t est interdit dans Bool θ (P ) si et seulement si son coˆ ut dans P est plus grand que θ. Apr` es avoir tri´ e la liste des coˆ uts binaires non nuls w ij (a, b) dans un nombre h de sacs (buckets), la s´ equence d´ ecroissante des coˆ uts minimum de chaque sac d´ efinit une s´ equence de seuils (θ 1 , . . . , θ h ). A partir de θ 1 , des it´ erations de VAC sont effectu´ ees ` a un seuil fixe jusqu’` a absence de wipe-out. On passe alors ` a la valeur θ i+1 suivante.
Quand θ h est atteint, un sch´ ema g´ eom´ etrique d´ efinit par θ i+1 = θ 2
iest utilis´ e et s’arrˆ ete quand θ i ≤ ε.
5 R´ esultats exp´ erimentaux
Dans cette section, nous pr´ esentons le r´ esultat d’ex-
p´ erimentations de VAC ε r´ ealis´ ees sur des probl` emes
r´ eels et g´ en´ er´ es al´ eatoirement en utilisant toulbar2 1 . Notre impl´ ementation s’appuie sur une repr´ esentation des coˆ uts en virgule fixe. Pour cela, tous les coˆ uts ini- tiaux du probl` eme sont multipli´ es par 1 ε , suppos´ e en- tier. Afin d’exploiter le fait que le probl` eme original r´ esolu est ` a coˆ ut entier, l’algorithme de s´ eparation-
´
evaluation ´ elague d` es lors que dw
∅ε ×εe ≥ ub o` u ub = m est le majorant global courant (coˆ ut de la meilleure solution connue).
Les tests sont effectu´ es sur un Intel Xeon 3 GHz avec 16 GB de m´ emoire. Notre solveur inclut ´ egalement une m´ ethode de choix de variable dirig´ e par le dernier conflit, effectue de l’´ elimination de variable ` a la vol´ ee et un branchement dichotomique. Lorsque VAC ε est uti- lis´ ee, nous avons fix´ e par d´ efaut ε = 10000 1 . Cette valeur est constante dans tous les tests qui suivent (et semble robuste). Il est possible de maintenir VAC ε pendant la recherche. Chaque it´ eration de VAC ε n´ ecessite une reconstruction de Bool θ (P ), et est donc assez lourde.
De ce fait, la convergence de VAC ε est arrˆ et´ e de fa¸ con pr´ ematur´ ee pendant la recherche en utilisant un seuil θ plus grand que durant le pr´ etraitement. Ceci permet de n’´ etablir VAC que lorsqu’il est capable de fournir des augmentations du minorant cons´ equentes. Pour les probl` emes al´ eatoires, le majorant initial utilis´ e est ´ egal
` a 0.
Instances g´ en´ er´ ees al´ eatoirement Le premier jeu d’instances est form´ e de Max-CSP al´ eatoires. Nous avons utilis´ e les probl` emes de [5]. Ce sont les jeux
“Sparse Tight”, “Dense Tight” et “Complete Tight”
(ST, DT, CT, 32 variables, 10 valeurs, 50 instances par classe) sur lesquelles le filtrage par VAC ε et OSAC fournit des minorants non triviaux. La table ci-dessous donne le temps n´ ecessaire et la qualit´ e moyenne du mi- norant (lb) obtenu apr` es filtrage par EDAC, VAC ε et OSAC :
ST DT CT
lb temps lb temps lb temps
EDAC 16 <.01s 18 <.01s 40 <.01s
VAC
ε25 .06s 28 .09s 49 .25s
p r´et ra it em en t
OSAC 27 10.5s 32 2.1s 74 631s Comme on l’attendait, OSAC fournit toujours les minorants les plus forts. VAC ε fournit un minorant qui est 8% (ST) ` a 33% (CT) plus faible que celui d’OSAC en ´ etant plus rapide d’un ou deux ordres de grandeur.
Pour ´ evaluer l’efficacit´ e de VAC ε sur des probl` emes sous-modulaires binaires, nous avons g´ en´ er´ e des pro- bl` emes al´ eatoires sous-modulaires permut´ es. Au ni- veau unaire, chaque valeur re¸ coit un coˆ ut de 0/1 avec la mˆ eme probabilit´ e. Les fonctions de coˆ ut sous- modulaires binaires peuvent ˆ etre d´ ecompos´ ees en une
1