La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Méthodes de preuves Optimisation Satisfaction de contraintes

Présentations similaires


Présentation au sujet: "Méthodes de preuves Optimisation Satisfaction de contraintes"— Transcription de la présentation:

1 Méthodes de preuves Optimisation Satisfaction de contraintes
Méthodes Hybrides Méthodes de preuves Optimisation Satisfaction de contraintes Chapitre 5

2 Rappel des méthodes pour traiter SAT et CSP
Recherche naïve Exploration en profondeur d’abord d’un arbre de recherche Nœuds internes = affectations partielles des variables Feuilles de l’arbre = solutions ou échecs Algorithmes de Quine pour SAT et BT pour CSP Production de conséquences Jointure d’un ensemble de relations et projection sur un ensemble de variables (compilation de connaissances) Algorithme d’élimination de variables (SAT: algorithme Davis et Putnam) Résolution unitaire pour SAT et cohérence d’arc pour CSP

3 Comparaison entre recherche et production de conséquences
Élimination de variables Cohérence locale Tâche Trouver une solution ou prouver l’absence Trouver toutes les solutions Simplification du problème Complexité spatiale asymptotique O(n) O(n.exp(w*)) w*  n O(poly(n)) *AC2001 en O(e.d) temporelle O(exp(n)) *AC2001 en O(e.d2) moyenne Meilleure qu’au pire cas Proche du pire cas Idée : Hybridation de méthodes !

4 Résumé Backtrack (instanciation) et inférence locale
SAT – DPLL (Propagation unitaire) CSP – MAC (Cohérence d’arc) Backtrack et inférence opportuniste (apprentissage) CSP – Backjumping et Nogood recording SAT – CDCL (Conflict driven clause learning) Backtrack et élimination de variable PPC et modélisation (Golomb ruler) Méthodes de recherches partielles (IB, LDS)

5 Méthode hybride en SAT Production de conséquences durant la recherche
Résolution à chaque nœud de l’arbre de recherche En pratique, résolution unitaire Détecte des incohérences plus tôt Simplifie l’ensemble des clauses Informe l’heuristique de choix du littéral de branchement qui exploite l’information des clauses restantes et des conflits Complet pour les clauses de Horn (au plus un littéral positif) Exemple : { p  r, r  s, p, s } Langage Prolog (si condition alors résultat) DPLL = Davis-Putnam-Logemann-Loveland , MOM = Maximum Occurrences on Clauses of Minimum Size

6 Solveur DPLL (système de transformation)
Etat M || F où M un ensemble de littéraux (sans incohérence) Chaque littéral peut être marqué comme une « décision » F est une CNF Règles de transformation si M viole C, l non défini dans M (UnitPropagate) si l ou l est dans F, indéfini dans M (Decide) si M viole C et pas de décision dans M (Fail) si viole C, aucune décision dans N (Backtrack)

7 Un exemple

8 Heuristiques de branchement
Observation Puisqu’il faut instancier toutes les variables pour trouver un modèles, autant faire le plus dur de suite et éviter de redécouvrir que c’est impossible de façon répétée => First Fail Principle Brancher sur (l,l) qui minimise la taille des sous-arbres gauche (l) et droit (l) Estimation empirique de cette taille Heuristiques MOM (Maximum # of Occurrence in the Minimum length causes) Jeroslow-Wang: One-sided: maximiser h Two-sided: maximiser h(l)+h(l), choisir ensuite h(l)>h(l)

9 Méthode hybride en CSP Production de conséquences durant la recherche
Etablir une propriété de cohérence locale à chaque nœud de l’arbre de recherche Maintien de cohérence d’arc (algorithme MAC) Détecte des incohérences plus tôt Supprime des valeurs aux domaines Procédure complète pour contraintes binaires fonctionnelles, monotones, max-closed graphes acycliques de contraintes binaires Exploitation de l’information des domaines courants dans l’heuristique de choix de la variable de branchement Heuristique dynamique exploitant les tailles des domaines Branchement par réfutation (x = a  x  a) améliore la propagation et les heuristiques par rapport au branchement par variable Monotones  Max-closed (x1,..,xN),(y1,…,yN) in Relation  (max{x1,y1},..,max{xN,yN}) in Relation (Rép: )

10 Algorithme pour établir la cohérence d’arc
Fonction AC-2001( CSP(X,D,C) : csp ) : booléen MinSupp(j,b,i)  1 Q  X Tant que Q non vide Faire Choisir et retirer i de Q Pour tout j tel que il existe une contrainte c  C sur (i,j) Faire Pour tout b  Dj Faire Tant que MinSupp(j,b,i) ≤ last_value(Di) et MinSupp(j,b,i)  Di ou (MinSupp(j,b,i),b)  c(i,j) Faire MinSupp(j,b,i)  MinSupp(j,b,i) + 1 Si MinSupp(j,b,i) > last_value(Di) Alors Dj  Dj – {b} Si Dj est vide Alors retourner faux Q  Q  {j} retourner vrai (CSP arc-cohérent)

11 Algorithme MAC – Maintaining Arc Consistency
Algorithme MAC( CSP(X,D,C) : csp, t : affectation ) : booléen Si AC-2001( CSP(X,D,C) ) = faux Alors retourner faux Si ( |t| = |X| ) Alors retourner vrai Sinon Choisir une variable non affectée i de X Choisir une valeur v  Di Si MAC( CSP  { i := v }, t  {(i,v)} ) Alors retourner vrai Sinon retourner MAC( CSP  {i  v }, t )

12 Heuristiques de choix de variable/valeur
First fail principle: Plus petit domaine Plus grand degré (nombre de contraintes) Domaine/degré ou « domaine puis degré » Plus grand degré « dynamique » (nombre de contraintes qui impliquent d’autres variables non instanciées) Domaine/degré dyn. (ou pour briser les égalités) Très grand impact en terme d’efficacité Choix de valeur: guidé par l’application ou par un (ou plusieurs) critères de qualité attendue de la solution.

13 Méthodes de retour arrière intelligent
Lors d’un échec sur l’affectation d’une variable (absence de solution pour les différentes affectations de la variable), le retour arrière chronologique remonte à la précédente affectation dans l’arbre de recherche Le retour arrière intelligent analyse la raison de l’échec (quelles sont les variables affectées en conflit avec la variable courante) et remonte à la dernière variable affectée en conflit 0 1 X0 X1 0 1 X2 0 1 X3 1 2 X4 0 1

14 Saut arrière dirigé par le graphe des contraintes
L(X) : ensemble de variables affectées reliées par des contraintes à X (statique) 0 1 L(X0) = {} X0 L(X1)  L(X1) U L(X2) – {X1} L(X1) = {} X1 0 1 L(X2) = {X0} X2 0 1 L(X2)  L(X2) U L(X4) – {X2} L(X3) = {X2} X3 1 2 L(X4) = {X1,X2} X4 0 1 Saut à max(L(X4)) Echec

15 Saut arrière dirigé par les conflits (1993)
CS(X) : ensembles de variables affectées en conflit avec X (dynamique) 0 1 CS (X0) = {} X0 CS(X1)  CS(X1) U CS(X2) – {X1} CS (X1) = {} X1 0 1 CS (X2) = {X0} X2 0 1 CS(X2)  CS(X2) U CS(X4) – {X2} CS (X3) = {X2} X3 1 2 CS (X4) = {X1,X2} X4 0 1 Saut à max(CS(X4)) Echec

16 Saut arrière dirigé par les conflits
0 1 CS (X0) = {} X0 CS (X1) = {} X1 0 1 CS (X2) = {X0} X2 0 1 CS(X2) = CS(X2) U CS(X4) – {X2} CS (X3) = {X2} X3 1 2 CS (X4) = {X0,X2} X4 0 1 Saut à max(CS(X4)) Echec … Hybridation avec MAC implique m.-à-j. de CS à chaque valeur effacée

17 Apprentissage de nogood (inférence opportuniste, 1993)
Lors d’un échec (X4) l’instanciation I des variables précédentes est un « nogood » (affectation implicitement interdite) : inférence Inutile (car jamais revue) Mais sa projection sur CS(X4) est aussi un nogood L’apprendre comme une nouvelle contrainte Espace mémoire, gestion, oubli. 0 1 X0 0 1 X1 0 1 X2 1 2 X3 0 1 X4 Echec

18 Solveur CDCL (Conflict Driven Clause Learning, 1999)
Ajoute au solveur DPLL un mécanisme de Retour-arrière intelligent Apprentissage de clauses (conséquences logiques) Causes: 1d donc 2 et 5d donc 6. 3 et 4 sans rapport. Clauses et conséquences produites.

19 Backjumping si C est la clause de conflit
viole C Il existe impliquée par F,C et C’ violée par M l’ non défini dans M l’ défini dans C est la clause de conflit est la clause de « backjump  » : dans M, C’ est violée et donc on sait que l’ est vrai. On backjump à l’état M avec ml’ à vrai.

20 Elle est nécessairement violée, sa négation est impliquée par F
Graphe de conflit Sommets: littéraux de M Arc de l vers l’ si la fixation de l a fixé l’ (via UnitProp) Une coupe du graphe séparant les sommets sources des puits définit une affectation, formée par les littéraux avec arêtes sortantes coupées Elle est nécessairement violée, sa négation est impliquée par F

21 Unique implication point
Il faut que cette clause contienne un littéral l’ du dernier niveau de décision Soit D l’ensemble des littéraux de la clause de conflit falsifiés au dernier niveau de décision Un UIP est un littéral du graphe de conflit qui appartient à tous les chemins reliant le littéral de décision courant à la négation d’un littéral de D : cause suffisante. La décision courante est toujours un UIP Utilisé: premier UIP obtenu à partir de la clause de conflit et des clauses propagées pour arriver au conflit.

22 Apprendre et oublier Deux règles
C impliquée par F, sans nouvelle variable C impliquée par F Apprentissage des clauses de backjump (Lemme) Oubli des clauses inactives (conflit, UnitProp)

23 Heuristique d’activité SAT, puis CSP
L’heuristique VSIDS (et variantes) associe un compteur à chaque atome qui est augmenté à chaque ajout de clause contenant l’atome lors d’une analyse de conflit. L’atome ayant le compteur le plus fort est sélectionné. Utilisée aussi pour l’oubli des clauses apprises (les clauses peu actives sont oubliées en premier). CSP: weighted degree. Chaque contrainte reçoit un poids initial de 1. Incrémenté à chaque fois qu’un domaine est vidée par la contrainte. Wdeg = somme des poids des contraintes non totalement instanciées Domain/wdeg…

24 Impact en pratique (CSP)

25 SAT: Implémentations et benchmarks
zChaff (Zhang) (utilisé aussi en planification, en model checking et en preuve automatique de théorème), MiniSAT(Een&Sorensson) (code extensible), … Benchmarks SATLIB Exemples en vérification de circuits (DIMACS) : instances jqà variables et clauses résolues en moins d’une seconde ! Compétition SAT Liens SATLive! Articles et liens classés par mot-clés

26 Recherche avec élimination de variable
A chaque nœud de la recherche Choisir une variable non affectée Xi Si degréi ≤ k Alors Elimine Xi Sinon énumération des valeurs de Xi Propriétés DFBB-VE(-1) équivaut à DFBB DFBB-VE(w*) équivaut à Elimination de variable complète DFBB-VE(1) équivaut à l’algorithme du Coupe-Cycle w* : largeur d’arbre

27 Exemple DFBB-VE(2)

28 Exemple DFBB-VE(2)

29 Recherche avec élimination de variable
Exemple: Still-Life (problème académique) Instance: n=14 Modélisation avec 196 variables Booléennes CP / Integer Programming (Ilog Solver)  5 days Variable Elimination  1 day DFBB-VE(2)  2 seconds

30 Différences CP/SAT Les solveurs SAT ont évolué en solveurs CDCL « purs », code de petite taille, bonne utilisation du cache. Très rapides, boite noire. Redémarrages. Très utilisés en « validation » (EDA). Les solveurs CSP ont évolué en spécialisant les codes des algorithmes de propagation locale pour traiter certaines contraintes fréquentes et utiles plus rapidement (contraintes globales) et en les proposant dans des langages de programmation dédiés (programmation par contraintes). Ordonnancement, affectation complexes…

31 Programmation par contraintes (CP)
Contraintes définies en intention à partir d’un langage Opérateurs arithmétiques, ensemblistes, logiques, etc. Abstraction des (grands) domaines par leurs bornes Gain en espace : O(n.d)  O(2n) Maintien de cohérence d’arc aux bornes Exploitation spécifique de la sémantique des contraintes Propagation plus rapide Exemple : x < y + c Propagation plus forte (contraintes globales) AllDifferent, GCC, Regular, etc. Langages pour exprimer l’arbre de recherche Branchement sur les disjonctions, branchement conditionnel, ajout de contraintes en cours de recherche…

32 Résultats Implémentations
CSP: MAC (Bessière), MAC (Dongen), AbsCon (Lecoutre), … CP: IBM Ilog Solver (gratuit acad), Sictus Prolog, Eclipse (gratuit), Choco (gratuit) Benchmarks CSPlib Compétitions CSP (2005 (OR-Library) Applications CP Ordonnancement d’atelier, grilles d’emploi du temps, tournées de véhicules, dimensionnement d'un réseau de télécommunication,… Liens Constraints Archive CP-Online (cours en ligne) AFPC Association française pour CP Cours en ligne C. Solnon, programmation par contraintes et optimisation (2003 & 2007) P. Meseguer,T. Schiex, CSP, R. Bartak, CSP (CP Summer School 2005)

33 Exemple : la règle de Golomb
« Une règle munie de marques à des positions entières, telle que deux paires de marques ne soient jamais à la même distance ; en d'autres termes, chaque couple de marques mesure une longueur différente des autres » Pour un nombre de marques donné, trouver une règle qui minimise la plus grande distance entre deux de ses marques Application en conception d'antenne radio pour les réseaux cellulaires  Question  trouver une règle optimale à 5 marques  Règle optimale d’ordre 24 en jours de calcul

34 Règle de Golomb d’ordre N
Heuristique de construction d’une première solution X1 = 0 Xi = Xi-1 + 2^(i-2) Xi  [0, 2^(N-1) - 1] 2^0 2^ ^2 2^3 … X1=0 ___ X2=1 ___ X3=3 ___ X4=7 ___ X5=15 …

35 Modélisation de la règle de Golomb d’ordre N
Variables N variables de décision représentant les marques x1, x2, x3, … , xN  [0,2N] Contraintes Précédences :  i [1,N-1], xi < xi+1 Différences :  i,j,k,l [1,N], i < j, k < l, i  k  j  l, xj - xi  xl - xk Symétrie par translation : x1=0 Critère d’optimisation : min( xN )

36 Modélisation de la règle de Golomb d’ordre N avec utilisation de contraintes ternaires
Variables N variables de décision représentant les marques x1, x2, x3, … , xN  [0,2N] N.(N-1)/2 variables entières intermédiaires codant les différences  i,j [1,N], i < j, dij  [1,2N] Contraintes Lien entre xi, xj et dij :  i,j [1,N], i < j, dij = xj – xi Différences :  i,j,k,l [1,N], i < j, k < l, i  k  j  l, dij  dkl Symétrie par translation : x1=0 Critère d’optimisation : min( xN )

37 DFBB+GAC pour trouver une règle optimale d’ordre 4
échec (0,1,4,6) Solution (0,1,3,7)

38 Règle de Golomb d’ordre 4
Ordre des déductions (0,1,3,7) (0,1,4,6) x1 = 0 d1,2 > 0 , d2,3 > 0 , d3,4 > 0 d1,2 = x2 – x1 , d2,3 = x3 – x2 , d3,4 = x4 – x3 , d1,3 = x3 – x1 , d2,4 = x4 – x2 d1,2  d2,3 , d1,2  d3,4 , d2,3  d3,4 , d1,3  d2,4 UB = 6 , x2 = 2 x3  [3,5] , x4  [4,5] d1,2 = 2 , d2,3 = {123} , d3,4 = {12} , d1,3 = {345} , d2,4 = {23} d1,2 = 2 , d2,3 = {13} , d3,4 = {1} , d1,3 = {345} , d2,4 = {3} Modèle : Echec!

39 Modélisation de la règle de Golomb d’ordre N avec contraintes ternaires, globales et redondantes
Variables N variables de décision représentant les marques x1, x2, x3, … , xN  [0,2N] N.(N-1)/2 variables entières intermédiaires codant les différences  i,j [1,N], i < j, dij  [1,2N] Contraintes Lien entre xi, xj et dij :  i,j [1,N], i < j, dij = xj – xi Différences : AllDifferent( { dij |  i,j [1,N], i < j } ) Minorant :  i [1,N], xi  i . (i - 1) / 2 Majorant :  i [1,N], xi ≤ xN - (N - i) . (N - i + 1) / 2 Symétrie par translation : x1=0 Symétrie par réflexion : d(1,2) < d(N-1,N) Critère d’optimisation : min( xN )

40 DFBB pour trouver une règle optimale d’ordre 5
DFBB+GAC+ternaires +AllDiff+redondantes DFBB+GAC+ternaires (0,1,4,9,11) (0,1,4,9,11) (0,1,3,7,12) (0,1,3,7,12)

41 Golomb écrit en CHOCO Problem pb = new Problem(); int n = 6;
// create the main variables IntVar[] X = new IntVar[n]; for (int i = 0; i<n; i++) X[i] = pb.makeEnumIntVar("X" + i, 0, 2^n); // create new (intermediate) distance variables IntVar[] D = new IntVar[n*(n-1)/2]; int pos = 0; for (int i=0; i<n; i++) for (int j=i+1; j<n; j++) { D[pos] = pb.makeEnumIntVar("D" + i + "_" + j, 1, 2^n); pb.post(pb.eq(D[pos], pb.minus(X[j], X[i]))); pos++; } // main constraint: all distances must be different pb.post(pb.allDifferent(D)); // add a redundant constraint: lower bound on X for (int i=0; i<n; i++) pb.post(pb.geq(X[i], i * (i+1) / 2)); // add a redundant constraint: upper bound on X for (int i=0; i<n-1; i++) pb.post(pb.leq(X[i], pb.minus(X[n-1], (n - i - 1) * (n - i) / 2))); // remove symetrical solutions by translation pb.post(pb.eq(X[0],0)); // remove symetrical mirror solution by reflexion pb.post(pb.lt(D[0],D[pos-1])); // solve Solver s = pb.getSolver(); pb.minimize(X[n-1]); Golomb écrit en CHOCO

42 @ Roman Bartak, CP Summer School 2005

43 @ Roman Bartak, CP Summer School 2005

44 Résultats (algorithme Depth First Branch and Bound)
Méthode hybride pour l’Optimisation Production de conséquences durant la recherche Calculer à chaque nœud un minorant du coût de toutes les affectations complètes étendant l’affection partielle courante Minorant obtenu par projection avec soustraction (cf. transp. suivant) Minorant obtenu par élimination approchée des variables futures Résultats (algorithme Depth First Branch and Bound) Détecte plus tôt l’absence d’une meilleure solution si minorant  majorant (meilleure solution rencontrée) Suppression des valeurs si minorant + c(Xi,a)  majorant Heuristiques de choix de valeurs et de variables renseignées par les coûts unaires c(Xi,a)

45 Cohérence d’arc dans Max-CSP
Soft Arc Consistency (Schiex, 2000) c = 0 , Majorant = 2 c = 1 , Majorant = 2 1 1 a b 1 a b 1 Opération de transformation qui préserve l’équivalence du problème 1 X1 X2 X1 X2 Projection d’un coût 1 de la contrainte c(X1,X2) vers c(X1,b) puis projection d’un coût 1 de la contrainte c(X1) vers le minorant c

46 Algorithme Depth First Branch and Bound
Fonction DFBB( t : affectation, Best : coût ) : coût v  CalculeMinorant( t ) Si v < Best Alors Si ( |t| = n ) Alors retourner v soit i une variable non affectée Pour tout a  Di Faire Best  min(Best, DFBB(t  {(i,a)}, Best)) retourner Best retourner + Variations possibles Retour à la racine à chaque solution (aide propagation et heurisiques grâce à la connaissance dès la racine d’un meilleur majorant) Condition de coupe renforcée (epsilon-DFBB) DFBB répété avec coupes croissantes (iterative deepening) Parcours meilleur en premier (best-first search),…

47 PPC et WCSP: ressources.
Implémentations Réseaux Bayésiens MPE : AOLIB (Dechter&Marinescu), samiam (Darwiche),… Weighted CSP: PFC-MRDAC(Larrosa), LVCSP(ONERA), ToolBar ( Mixed Integer Programming : CPLEX (Ilog), Soplex, GLPK,… ) Benchmarks Bayesian Network Repository Instance Munin1 à 189 variables (w*=11) résolue en 2 secondes WCSP: allocation de fréquences gestion d’un satellite d’observation (ONERA), bioinformatique,… ( MIP-Library ftp://plato.asu.edu/pub/milpf.html ) Cours en ligne T. Schiex, Soft Constraint Processing (CP Summer School 2005)

48 Evaluation des algorithmes
Complexité au pire cas ne rend pas bien compte de la réalité dans la plupart des cas Complexité en moyenne très difficile à calculer Essayer sur des cas réels convaincant (indispensable en pratique), mais ça ne prouve rien Simuler la complexité en moyenne en travaillant sur des grands échantillons de cas générés aléatoirement Travailler sur des problèmes réputés difficiles (benchmarks issus de problèmes académiques ou réels)

49 Evaluation des algorithmes
Paramètres de génération aléatoire 3-CNF Nombre de variables propositionnelles Nombre de clauses Réseaux de contraintes Nombre de variables Taille des domaines Dureté des contraintes Connectivité du graphe Pour une classe de problèmes, mesurer le temps CPU, le nombre de nœuds dans l’arbre et le nombre de retours arrières des algorithmes à comparer

50 Evaluation des algorithmes
Transition de phase en satisfaction Existence d’un seuil dans la zone des 50% de problèmes satisfiables En dessous, grand nombre de solutions Au dessus, fortement incohérent (détecté par application d’une cohérence locale) Dans la zone seuil, explosion combinatoire pour de nombreux problèmes Tester les algorithmes dans la zone dure, l’objectif est de réduire la hauteur et surtout la largeur du pic Les problèmes d’optimisation se trouvent dans la zone dure

51 Evaluation des algorithmes

52 Des conclusions Les problèmes aléatoires peuvent être très difficiles
Les méthodes exactes (CDCL…) ne sont pas le meilleures ici Les méthodes « stochastiques » sont les plus efficaces (métaheuristiques). Les problèmes réels (industriels) sont structurés et les méthodes exactes peuvent souvent être plus efficaces que les méthodes stochastiques

53 Méthodes d’exploration partielle
Recherches aléatoires gloutonnes répétées Limite sur le nombre de retours arrières Ajout d’aléatoire dans l’heuristique de choix de variable Ajout d’aléatoire dans l’heuristique de choix de valeur Recherche par focalisation progressive Série d’explorations de complexité croissante Limite sur le facteur de branchement (Iterative Broadening) Limite sur le nombre d’écarts à l’heuristique de choix de valeur le long d’une branche (Limited Discrepancy Search)

54 Iterative Broadening p = 1 p = 2 p = 3 5 noeuds 31 noeuds 121 noeuds

55 Limited Discrepancy Search
Le retour arrière classique peut s’écarter très tôt de l’heuristique. Principe de LDS : refuser de s’en écarter de plus de k différences Depth-First Search Limited Discrepancy Search 1 The main goal is to use the heuristics in a more active way. Do not follow the classical depth-first, left-to-right order of DFS. Heuristics make mistakes more at the root than at the leaves and they make a few number of bad choices Search limits has a direct impact on the search complexity in practice Adapté si l’on possède une bonne heuristique, i.e. une heuristique du domaine. Nombreuses variations possibles (arbres non binaires, réduction des répétitions,…)

56 Résultats expérimentaux sur un problème de gestion des prises de vue d’un satellite d’observation (ONERA) Quality criterion : maximise the sum of the weights of the selected images A mix between the Traveling Salesman problem with Time Windows and the Knapsack problem (NP-hard) 200 variables , elementary constraints


Télécharger ppt "Méthodes de preuves Optimisation Satisfaction de contraintes"

Présentations similaires


Annonces Google