Méthodes de preuves Optimisation Satisfaction de contraintes

Slides:



Advertisements
Présentations similaires
La recherche de chemin optimal
Advertisements

Théorie des graphes.
Algorithmes et structures de données avancés
Introduction à l’Algorithmique
Méthodes hybrides dans les réseaux de contraintes pondérées
Métaheuristiques pour l’optimisation combinatoire
Journées Francophones
Application de réseaux bayésiens à la détection de fumées polluantes
Equipe optimisation TempoSoft
Visualisation d’information interactive 5 : Graphes
Système formel Nous avons introduit : signes de variables (x, y, z, …), de constantes (0, 1), d’opérations (+, ), de relations (=, ) Axiomes : ce sont.
Optimisation dans les télécommunications
"Recherche de scénarios redoutés à partir d'un modèle réseau de Petri"
A.Faÿ 1 Recherche opérationnelle Résumé de cours.
Plus rapide chemin bicritère : un problème d’aménagement du territoire
Chapitre II.Rappels mathématiques et complexité
Génération de colonnes
Y. Caseau 22/04/ Challenge ROADEF: Combinaison de Propagation de Contraintes et de Méta-Heuristiques Yves Caseau & all Bouygues – e-lab Francoro.
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
Prise de décision dans les shooters TER 08/09 Sandrine Buendia
CHALLENGE ROADEF 2001 Résolution par une métaheuristique à base de recherche à voisinage variable et propagation par contraintes Fabrice BUSCAYLET Fabrice.
Les structures de données arborescentes
Algorithmes Branch & Bound
Programmation logique Logique des prédicats du premier ordre
Heuristiques A. Introduction B. Recherche d ’une branche
Chapitre 2 Réductions: exemples et méthodes
Programmation logique Démonstrateur automatique
LES ARBRES IUP 2 Génie Informatique
Algorithme de Bellman-Ford
Coloration gap sommet identifiante de graphes
GPA750 Les ateliers multigammes Chapitre 5
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Algorithmes d ’approximation
Optimisation dans les réseaux
Révisions - IA Généralité: problèmes de lIA Recherche Logique Traitement de lincertitude Apprentissage Langue naturelle.
Recherche Opérationnelle
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
GPA750 – Gestion de Projets
8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?
Programmation linéaire en nombres entiers : les méthodes de troncature
Heuristiques C. Recherche de la meilleure branche . Branch And Bound
D.E ZEGOUR Ecole Supérieure d’Informatique
Programmation linéaire en nombres entiers
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
Algorithmes Branch & Bound
Arbres binaires et tables de hachage
STATISTIQUES – PROBABILITÉS
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Université Pierre et Marie Curie Laboratoire d’Informatique de Paris VI Département ASIM Analyse et résultats sur le dimensionnement des mémoires pour.
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Problème de double digestion
Recherches locales et méta-heuristiques
Optimisation pour la Conception de Systèmes Embarqués
Soutenance de Stage DEA / DESS
- 5 - Optimisation linéaire et non-linéaire
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
Réseau bayésien et génétique
Présenté par : ABED Djemaa; BAKHOUIA Roqiya.
20/06/2015propagation de signatures lexicales dans le graphe du Web 1 Propagation de signatures lexicales dans le graphe du Web M. Bouklit M. Lafourcade.
4ème journées PDM IA - Vendredi 7 mai 2004 Recherche en ligne pour la résolution de PDMs Laurent Péret, Frédérick Garcia INRA Toulouse, équipe Méthodes.
Optimisation des horaires de personnel
1 Logiciels de confection automatique d’horaires.
Le Jeu et l’intelligence artificielle
Développement du jeu Ricochet Robots pour Android
Programmation par contraintes Réalisé par: WETCHA Chaima MOKDED Mohamed Ali FIA3-GL-AL 1 1.
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Techniques d'Optimisation Master
Compilation & Apprentissage dans les Réseaux de Contraintes Hervé Cros Directeurs :Frédéric Koriche Joël Quinqueton.
1 UE Intro. Optimisation L3 INFO UPSud II. Programmation linéaire en variables entières (ou mixtes)
Transcription de la présentation:

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

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

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 !

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)

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

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)

Un exemple

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)

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:3 4 2 1)

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)

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 )

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.

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

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

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

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

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

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.

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.

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

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.

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)

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…

Impact en pratique (CSP)

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 http://www.intellektik.informatik.tu-darmstadt.de/SATLIB/benchm.html Exemples en vérification de circuits (DIMACS) : instances jqà 10410 variables et 34238 clauses résolues en moins d’une seconde ! Compétition SAT http://www.satcompetition.org/ Liens SATLive! http://www.satlive.org Articles et liens classés par mot-clés

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

Exemple DFBB-VE(2)

Exemple DFBB-VE(2)

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

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…

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…

Résultats Implémentations CSP: MAC (Bessière), MAC (Dongen), AbsCon (Lecoutre), … CP: IBM Ilog Solver (gratuit acad), Sictus Prolog, Eclipse (gratuit), Choco (gratuit) http://choco.sourceforge.net/ Benchmarks CSPlib http://4c.ucc.ie/~tw/csplib/ Compétitions CSP (2005 http://cpai.ucc.ie/05/CallForSolvers.html) (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 http://www.4c.ucc.ie/web/archive/index.jsp CP-Online http://slash.math.unipd.it/cp/ (cours en ligne) AFPC http://www.afpc-asso.org/ Association française pour CP Cours en ligne C. Solnon, programmation par contraintes et optimisation (2003 & 2007) http://www710.univ-lyon1.fr/~csolnon P. Meseguer,T. Schiex, CSP, http://www.math.unipd.it/~frossi/vincoli-dotto-2004.html R. Bartak, CSP (CP Summer School 2005) http://kti.mff.cuni.cz/~bartak/

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 1.572 jours de calcul

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^1 2^2 2^3 … X1=0 ___ X2=1 ___ X3=3 ___ X4=7 ___ X5=15 …

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 )

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 )

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

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!

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 )

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)

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

@ Roman Bartak, CP Summer School 2005

@ Roman Bartak, CP Summer School 2005

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)

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

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),…

PPC et WCSP: ressources. Implémentations Réseaux Bayésiens http://www.cs.ubc.ca/~murphyk/Software/bnsoft.html MPE : AOLIB (Dechter&Marinescu), samiam (Darwiche),… Weighted CSP: PFC-MRDAC(Larrosa), LVCSP(ONERA), ToolBar http://carlit.toulouse.inra.fr/cgi-bin/awki.cgi/SoftCSP ( Mixed Integer Programming : CPLEX (Ilog), Soplex, GLPK,… ) Benchmarks Bayesian Network Repository http://www.cs.huji.ac.il/labs/compbio/Repository/ Instance Munin1 à 189 variables (w*=11) résolue en 2 secondes WCSP: allocation de fréquences http://fap.zib.de/, 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) http://www.inra.fr/mia/T/schiex

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)

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

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

Evaluation des algorithmes

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

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)

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

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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Limited Discrepancy Search 1 5 4 3 2 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,…)

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 , 15000 elementary constraints