Méthodes hybrides dans les réseaux de contraintes pondérées Simon de Givry, Thomas Schiex, INRA Toulouse Gérard Verfaillie, Sylvain Bouveret, ONERA Toulouse Remerciements à Javier Larrosa, UPC Barcelone et Martí Sànchez, CSIC Barcelone
INRA Toulouse Unité de Biométrie et Intelligence Artificielle (33 pers.) Equipe Statistique et informatique appliquées à la génétique et à la biologie moléculaire (16 pers.) Réseaux de contraintes pondérées Recherche de motifs d’ARN fonctionnels dans les séquences génomiques (~millions nucléotides) Détection et correction d’erreurs de génotypage dans les pedigrees d’animaux (120000 individus) Projet ANR sur les méthodes hybrides (2006-2008) Equipe dirigée par Thomas Schiex. Applications prototypes
Réseau de contraintes pondérées Mélange de contraintes dures (modèle physique) et de contraintes pondérées (préférences) Fonction retournant un coût qui dépend de la valeur de ses variables ex.: W : D(Xi) D(Xj) [ 0, k ] (variables à domaines finis) But: trouver une affectation complète qui minimise la somme des coûts des contraintes (< k=T) En général, problème NP-difficile Cadre général incluant SAT (T=1), CSP (T=1), Max-CSP, Max-SAT, MPE, Min-COL, Max-Clique,… MaxClique: bool variable (1=select), hard bin constr (absence edge x,y: 1 1 interdit), unary soft constr (Cx(0)>0) . MinCol: minimiser le nombre d’arêtes ayant deux sommets de la même couleur
Méthodes complètes usuelles Recherche arborescente Depth-First Branch and Bound Inférence complète Elimination de variables
Depth-First Branch and Bound Chaque nœud est un sous-réseau de contraintes pondérées variables (LB) Minorant Approximation inférieure de l’optimum du sous-arbre Si UB alors coupe LB LB = T (UB) Majorant = meilleure solution trouvée Temps: (exp(n)) Espace: (n) n : nombre de variables
Depth-First Branch and Bound DFBB(X,D,C) if (X=) then Top :=f else xj := selectVar(X) forall aDj do fSC s.t. xj S f := f[xj =a] f:= gSC s.t. S= gS if (LB<Top) then BT(X-{xj},D-{Dj},C) variable heuristics value heuristics improve LB good UB ASAP
Elimination de variables Résout le problème par une séquence de transformations du problème (sans retour-arrière) Chaque étape conduit à un problème avec une variable de moins et le même optimum Lorsque toutes les variables ont été éliminées, le problème est résolu (inférence complète) Une/toutes les solutions optimales du problème original peuvent être obtenues
Elimination de variables Choisis une variable xi Calcule l’ensemble Ki des contraintes qui portent sur la variable Ajoute Supprime la variable et Ki Temps: (exp(degi+1)) Espace: (exp(degi)) X1 X5 OPT X4 X2 X3 Complexité pour éliminer une seule variable
Influence de l’ordre d’élimination Ordre G,D,F,B,C,A N’ajoute pas de contraintes induites Ordre G,B,C,D,F,A Ajoute ACFD (4-clique) Complexité spatiale passe de 2 à 4
Largeur induite Soit un graphe et un ordre d’élimination donné, le plus grand degré rencontré est la largeur induite du graphe ordonné : w = max(degi) + 1 Complexité de l’algorithme d’élimination de variables Temps: (n.exp(w)) Espace: (n.exp(w)) Minimiser la largeur induite est NP-dur Heuristiques Max Cardinality Search (optimal si graphe chordal) Min Fill, Min Degree,… MCS: var plus connectee a celles deja choisies. Chordal: cycles longueur >3 a une corde. Min degree choisit le sommet qui est connecté au plus petit # de sommets non éliminés dans le graphe en cours de triangulation. Min fill choisit le sommet qui génère le nombre d'ajouts d'arêtes de fill-in le plus faible dans le graphe en cours de triangulation.
A quoi cela ressemble ? Un graphe ayant une largeur induite k équivaut à un k-arbre partiel Un k-arbre est soit une k-clique soit un k-arbre ayant un sommet supplémentaire connecté à tous les sommets d’une k-clique à l’intérieur du k-arbre 1-arbre 2-arbre
Inférence incomplète Compromis entre complétude et espace/temps Produire seulement certaines classes de contraintes induites Dans le but de produire un minorant de l’optimum Habituellement polynomial en temps/espace Contraintes induites externes au réseau : algorithme d’élimination de variables approché (Dechter 97) Contraintes induites ajoutées au réseau : maintien de cohérence locale (Schiex 2000)
Elimination de variables approchée (Dechter 97) Elimination complète / approchée de X Produit un minorant de l’optimum Complexité/puissance contrôlé par le nombre maximum de variables dans chaque sous-ensemble x x
Comparaison entre recherche et inférence (DFBB) Élimination de variables Complexité temporelle asymptotique O(exp(n)) O(n.exp(w)) w n Complexité temporelle moyenne Meilleure qu’au pire cas Identique au pire cas Complexité spatiale asymptotique O(n) Hybridation de méthodes !
Hybridation de recherche et élimination de variables DFBB-VE
Recherche avec élimination de variable (Larrosa 2003) A chaque noeud Choisir une variable non affectée Xi Si degréi ≤ k Alors élimine Xi Sinon énumération des valeurs de Xi Propriétés DFBB-VE(-1) équivaut à DFBB DFBB-VE(w) équivaut à VE DFBB-VE(1) équivaut à l’algorithme Coupe-Cycle Temps: (exp(l)) avec w* ≤ l ≤ n Espace: (n.exp(k)) Objectif: reduire la profondeur d’exploration Ordre dynamique choix de variables
Algorithme Coupe-Cycle Les problèmes dont le graphe de contraintes est un arbre sont faciles à résoudre Branchement sur les variables jusqu’à ce qu’il n’y ait plus de cycle Résolution de l’arbre restant par élimination de variables Complexité temporelle exponentielle en la taille du coupe-cycle Trouver un coupe-cycle de taille minimum est NP-dur Complexité spatiale identique à DFBB
Exemple DFBB-VE(2)
Exemple DFBB-VE(2)
CTE BTD BTD+ Lc-BTD+ Lc-BTD* Hybridation de recherche et décomposition arborescente (élimination d’arbre de clusters) CTE BTD BTD+ Lc-BTD+ Lc-BTD* spot404
Décomposition arborescente x1 x2 x3 x4 x5 x6 x7 x8 x9 Séparateur minimaux (coupe minimum = flot maximum) Ordre d’élimination triangulation du graphe cliques maximales arbre couvrant de poids maximum (taille de clique)
Décomposition arborescente x1 x2 x3 x4 x5 x6 x7 x8 x9
Décomposition arborescente x1 x2 x3 x4 x5 x6 x7 x8 x9
Décomposition arborescente x1 x2 x3 x4 x5 x6 x7 x8 x9 Largeur d’arbre (w) : nombre maximum de variables dans un cluster = largeur induite du graphe triangulé
Décomposition arborescente u x1 x2 x3 r x2 x3 x4 x5 x6 x7 w x5 x6 x5 x6 Plus exactement le chemin peut former un sous-arbre 1. chaque variable apparaît dans un seul chemin v p x8 x8 x9
Décomposition arborescente pour CSP u x1 x2 x3 r x2 x3 x4 x5 x6 x7 w x5 x6 x5 x6 2. Chaque contrainte est dans au moins un cluster v p x8 x8 x9
Décomposition arborescente u x1 x2 x3 r x2 x3 x4 x5 x6 x7 w x5 x6 x5 x6 2. Chaque contrainte est dans exactement un cluster v p x8 x8 x9
Cluster Tree Elimination x1 x2 x3 r x2 x3 x4 x5 x6 x7 w x5 x6 x5 x6 Décomposition enracinée en « r » v p x8 x8 x9
Cluster Tree Elimination x1 x2 x3 r x2 x3 x4 x5 x6 x7 w x5 x6 x5 x6 v p x8 x8 x9
Cluster Tree Elimination x1 x2 x3 r x2 x3 x4 x5 x6 x7 w x5 x6 x5 x6 Un message peut être envoyé en sortie d’un cluster lorsque tous les autres messages entrants sont arrivés v p x8 x8 x9
Cluster Tree Elimination x1 x2 x3 r x2 x3 x4 x5 x6 x7 w x5 x6 x5 x6 v p x8 x8 x9
Cluster Tree Elimination x1 x2 x3 r x2 x3 x4 x5 x6 x7 w x5 x6 x5 x6 v p x8 x8 x9
Cluster Tree Elimination x1 x2 x3 r x2 x3 x4 x5 x6 x7 w x5 x6 x5 x6 v p x8 x8 x9 Temps: (n.exp(w)) Espace: (n.exp(s)) s : taille du plus grand séparateur
Hybridation recherche et décomposition arborescente BTD (Terrioux & Jégou, 2003) Backtrack with Tree Decomposition u x1 x2 x3 r x2 x3 x4 x5 x6 x7 w x5 x6 Ordre d’affectation des variables du cluster racine aux clusters fils u, w, (v & p) résolus indépendamment. Ils ne dépendent que de r. Temps : (exp(h)) Espace : (n) h : hauteur d’arbre x5 x6 v p x8 x8 x9
BTD (Terrioux & Jégou, 2003) Temps: (n.exp(w)) Espace: (n.exp(s)) Opt(u[A]) w x5 x6 Opt(w[A]) Opt(v[A]) Mémorise l’optimum de chaque sous-problème (majorant initial = +) x5 x6 BTD memorise de facon paresseuse par rapport a CTE. Opt(p[A]) v p x8 x8 x9 Temps: (n.exp(w)) Espace: (n.exp(s))
Amélioration du majorant local: BTD+ x1 x2 x3 r x2 x3 x4 x5 x6 x7 w x5 x6 Soit solution trouvée Optimum prouvé Soit pas de solution Minorant seulement! LB(A[p]) = UBp Théo.: répétition bornée UBp UBr – Cost(A,r) – Cost(A,v) – Opt(A[u]) – Opt(A[w]) x5 x6 v p x8 x8 x9 Temps: (UBr.n.exp(w)) Espace: (n.exp(s))
Introduction aux cohérences locales souples Hybridation recherche, propagation et décomposition Introduction aux cohérences locales souples But: transformer un problème en un problème équivalent dont le minorant soit plus explicite Établir des propriétés de cohérence locale par des opérations de déplacement des coûts contrainte binaire contrainte unaire contrainte zéro W (minorant) a b W=0 GUB=2 X1 X2 X3 X4 X5
Introduction aux cohérences locales souples AC (Schiex, 2000) a b W=0 GUB=2 projection X1 X2 X3 X4 X5
Introduction aux cohérences locales souples AC (Schiex, 2000) a b W=0 GUB=2 1 projection X1 X2 X3 X4 X5
Introduction aux cohérences locales souples AC (Schiex, 2000) a b W=0 GUB=2 1 projections X1 X2 X3 X4 X5
Introduction aux cohérences locales souples AC (Schiex, 2000) a b 1 W=0 GUB=2 1 1 X1 X2 X3 X4 X5
Introduction aux cohérences locales souples NC* (Larrosa, 2002) a b 1 W=0 GUB=2 1 1 projection X1 X2 X3 X4 X5
Introduction aux cohérences locales souples NC* (Larrosa, 2002) a b W= 1 GUB=2 1 X1 X2 X3 X4 X5
Introduction aux cohérences locales souples NC* (Larrosa, 2002) a b W= 1 GUB=2 1 X1 X2 X3 X4 X5 Suppression de valeur
Introduction aux cohérences locales souples NC* (Larrosa, 2002) a b W= 1 GUB=2 X1 X2 X3 X4 X5
Introduction aux cohérences locales souples NC* (Larrosa, 2002) a b W= 1 GUB=2 X1 X2 X3 X4 X5
Introduction aux cohérences locales souples NC* (Larrosa, 2002) a b 1 W= 1 GUB=2 X1 X2 X3 X4 X5
Introduction aux cohérences locales souples NC* (Larrosa, 2002) a b W= 1 GUB=2 X1 X2 X3 X4 X5
NC DAC AC EDAC O(ed2.max(UB,nd)) Hiérarchie NC* O(nd) AC* O(n 2d 3) Cas spécial : CSP (T=1) NC NC* O(nd) DAC AC* O(n 2d 3) DAC* O(ed 2) AC FDAC* O(end 3) EDAC O(ed2.max(UB,nd)) (ijcai 2005) d : taille du plus grand domaine e : nombre de contraintes
MEDAC MFDAC MAC/MDAC MNC BT
Lc-BTD+ : BTD+ avec cohérence locale souple x1 x2 x3 r x2 x3 x4 x5 x6 x7 w x5 x6 Mouvements de coûts invalident les minorants mémorisés W= 1 GUB=2 x5 x6 Une augmentation de W peut avoir un impact sur n’importe quel cluster pas de garantie de trouver l’optimum d’un sous problème v p x8 x8 x9
Trois approches possibles Propagation restreinte à l’intérieure de chaque cluster Backward Checking et Forward Checking e.g. FC-BTD (Terrioux&Jégou, 2003) Propagation restreinte à l’intérieure de chaque sous problème Lc-BTD+ (de Givry et al., 2005) Propagation sans aucune restriction Lc-BTD* (de Givry et al., 2005)
Lc-BTD* Coupe locale : WXi(a) + ∑Cj descend. of CkWCj UBk Suppression de valeurs Coupe locale : WXi(a) + ∑Cj descend. of CkWCj UBk Coupe globale : WXi(a) + ∑Cj descend. of C1WCj GUB Idée: collecter des minorants et majorants à tous les nœuds de la frontière d’exploration de l’arbre de recherche Répétition non bornée Temps: (exp(h)) Espace: (n.exp(s)) Les deux coupes ne sont pas équivalentes Frontière Nouvelle solution Optimum
Trois approches possibles Méthode Complexité temps Complexité espace Lc-BTD (n.exp(w)) (n.exp(s)) Lc-BTD+ (GUB.n.exp(w)) Lc-BTD* (exp(h)) GUB = majorant global n = nombre de variables h = hauteur d’arbre w = largeur d’arbre s = taille séparateur maximale s w h n
Résultats expérimentaux Still-Life DIMACS (SAT) Arbres de cliques aléatoires Allocation de fréquences CELAR Réseaux Bayésiens (MPE)
Still-Life (problème académique) Instance: n=14 #variables:196 , #valeurs:2 CP / IP (Ilog Solver) (Bosch&Trick 2002) 5 jours Variable Elimination (Larrosa 2003) 1 jour DFBB-VE(2) (Larrosa 2005) 2 secondes
DIMACS (SAT)
Arbres de cliques aléatoires FDAC-BTD+ FC-BTD FC-BTD FC-BTD+ NC-BTD-BJ+ FC-BTD+, NC-BTD-BJ+ FDAC-BTD-BJ+ FDAC-BTD+ FDAC-BTD-BJ+ (by using recorded lower bounds not only at the end of a cluster exploration but also during its exploration) Décomposition arborescente avec heuristique Maximum Cardinality Search Ordre choix variable domain/degree compatible avec la décomposition Répétition dans BTD+ : moyenne ≤ 2.6, maximum = 14 Résultats identiques entre FDAC-BTD+ et FDAC-BTD*
Allocation de fréquences (CELAR SCEN06)
Allocation de fréquences But: Affectation de fréquences à des liens radio de telle sorte que les liens fonctionnent sans interférences notables (Cabon et al., 1999) SUBCELAR1 SUBCELAR3 SCEN-06-24r SCEN-07-104-30r n=14, d=44 w=9, h=14 n=18, d=44 w=12, h=15 n=99, d=20 w=10, h=37 n=196, d=14 w=12, h=32 time space FC-BTD 7,489 4,344 23,560 69,808 -* 3,002,547 - 109,311,451 NC-BTD-BJ+ 2,647 11,342 9,024 9,231 6,326,854 38 (5) 83,557 FDAC-BTD-BJ+ 66 653 4,789 65,270 15 (3) 5,874 FDAC-BTD-BJ* 65 638 4,573 64,571 30 (12) 9,247 MFDAC 14 193 Tree decomposition with min degree heur. 2-sided Jeroslow DVO (rep.) VE out of memory! * - : Time limit of 10 hours exhausted or 4 billion nodes expanded
Réseaux bayésiens (MPE) Ordres d’élimination : min-degree(FDAC-BTD+), min-fill(VE,s-AOMB) s-AOMB (Dechter & Marinescu, 2005)
Conclusion
Comparaison des méthodes DVO Propa. Complexité en temps Complexité en espace DFBB oui (exp(n)) (n) VE non (n.exp(w)) DFBB-VE(k) Inférieure à (exp(n)) (n.exp(k)) CTE (n.exp(s)) Lc-BTD Lc-BTD+ (GUB.n.exp(w)) Lc-BTD* (exp(h)) Worst-case time complexity => average case better except for VE FDAC-BTD? Nul sur un graphe de contrainte en arbre. s ≤ w ≤ h ≤ n
Compromis temps/mémoire paramétrable Cache uniquement pour des tailles de séparateur ≤ k Méthodes Complexité en temps Complexité en espace DFBB (exp(n)) (n) VE (n.exp(w)) DFBB-VE(k) Inférieure à (exp(n)) (n.exp(k)) CTE (n.exp(s)) Lc-BTD(k) (n.exp(w’)) Lc-BTD+(k) (GUB.n.exp(w’)) Lc-BTD*(k) (exp(h)) Limit subproblem repetition using an initial solution found by local search Combine Lc-BTD+ with Russian Doll Search as in (Larrosa et al., 2002) Combiner DFBB-VE et Lc-BTD+ ? s ≤ w ≤ w’ ≤ h ≤ n
toolbar, toulbar2 et site Web interactif Librairie open source Accessible depuis un wiki http://carlit.toulouse.inra.fr/cgi-bin/awki.cgi/SoftCSP Implémente NC,AC,DAC,FDAC,EDAC et BAC Implémente DFBB, VE, DFBB-VE(2) et Lc-BTD+ Lecture des formats Max-CSP wcsp, Max-SAT cnf (avec ou sans pondérations) et réseaux bayésiens MPE ergo Nombreux benchmarks dans des formats standardisés Source forge à http://mulcyber.toulouse.inra.fr/projects/toolbar/ http://mulcyber.toulouse.inra.fr/projects/toulbar2/