méthodes hybrides

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

Upload: debbie

Post on 24-Jan-2016

86 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Méthodes Hybrides

Méthodes Hybrides

Méthodes de preuvesOptimisation

Satisfaction de contraintesChapitre 5

Page 2: Méthodes Hybrides

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

Page 3: Méthodes Hybrides

3

Comparaison entre recherche et production de conséquences

RechercheÉlimination de

variablesCohérence locale

TâcheTrouver 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)

Complexité

temporelle

asymptotique

O(exp(n))O(n.exp(w*))

w* n

O(poly(n))

*AC2001 en O(e.d2

)

Complexité

temporelle

moyenne

Meilleure qu’au pire cas

Proche du pire cas

Meilleure qu’au pire cas

Idée : Hybridation de méthodes !

Page 4: Méthodes Hybrides

4

Résumé

1. Backtrack (instanciation) et inférence locale

1. SAT – DPLL (Propagation unitaire)

2. CSP – MAC (Cohérence d’arc)

2. Backtrack et inférence opportuniste (apprentissage)

1. CSP – Backjumping et Nogood recording

2. SAT – CDCL (Conflict driven clause learning)

3. Backtrack et élimination de variable

4. PPC et modélisation (Golomb ruler)

5. Méthodes de recherches partielles (IB, LDS)

Page 5: Méthodes Hybrides

5

Méthode hybride en SATProduction 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)

Page 6: Méthodes Hybrides

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)

6

|| , || ,M F C l Ml F C l

|| , || ,dMl N F C M l F C

|| ,M F C FailState

|| ||dM F Ml F

dMl N

Page 7: Méthodes Hybrides

Un exemple

7

Page 8: Méthodes Hybrides

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)

| |

,

( ) 2 C

l C C F

h l

Page 9: Méthodes Hybrides

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

Page 10: Méthodes Hybrides

10

Algorithme pour établir la cohérence d’arc

Fonction AC-2001( CSP(X,D,C) : csp ) : booléenMinSupp(j,b,i) 1Q XTant que Q non vide Faire

Choisir et retirer i de QPour tout j tel que il existe une contrainte c C sur (i,j) Faire

Pour tout b Dj FaireTant 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) + 1Si MinSupp(j,b,i) > last_value(Di) Alors

Dj Dj – {b}Si Dj est vide Alors retourner fauxQ Q {j}

retourner vrai (CSP arc-cohérent)

Page 11: Méthodes Hybrides

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 )

Page 12: Méthodes Hybrides

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.

12

Page 13: Méthodes Hybrides

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

0 1

1 2

0 1

X1

X2

X3

X4

0 1X0

Page 14: Méthodes Hybrides

14

Saut arrière dirigé par le graphe des contraintes

0 1

0 1

1 2

0 1

X1

X2

X3

X4

0 1X0

L(X4) = {X1,X2}

L(X2) L(X2)U L(X4) – {X2}

L(X3) = {X2}

L(X2) = {X0}

L(X1) = {}

L(X0) = {}

Echec

Saut à max(L(X4))

L(X) : ensemble de variables affectées reliées par des contraintes à X (statique)

L(X1) L(X1)U L(X2) – {X1}

Page 15: Méthodes Hybrides

15

Saut arrière dirigé par les conflits (1993)

0 1

0 1

1 2

0 1

X1

X2

X3

X4

0 1X0

CS (X4) = {X1,X2}

CS(X2) CS(X2)U CS(X4) – {X2}

CS (X3) = {X2}

CS (X2) = {X0}

CS (X1) = {}

CS (X0) = {}

Echec

Saut à max(CS(X4))

CS(X1) CS(X1)U CS(X2) – {X1}

CS(X) : ensembles de variables affectées en conflit avec X (dynamique)

Page 16: Méthodes Hybrides

16

Saut arrière dirigé par les conflits

0 1

0 1

1 2

0 1

X1

X2

X3

X4

0 1X0

CS (X4) = {X0,X2}

CS(X2) = CS(X2)U CS(X4) – {X2}

CS (X3) = {X2}

CS (X2) = {X0}

CS (X1) = {}

CS (X0) = {}

Echec

Saut à max(CS(X4))

… Hybridation avec MAC implique m.-à-j. de CS à chaque valeur effacée

Page 17: Méthodes Hybrides

17

Apprentissage de nogood (inférence opportuniste, 1993)

0 1

0 1

1 2

0 1

0 1

Echec

X1

X2

X3

X4

X0

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.

Page 18: Méthodes Hybrides

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.

181 5 2 5

Page 19: Méthodes Hybrides

Backjumping

si 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.

19

|| , ' || ,dMl N F C Ml F CdMl N

' 'C l

dMl N

' 'C l

Page 20: Méthodes Hybrides

Graphe de conflit

Sommets: littéraux de M Arc de l vers l’ si la fixation de l a fixé l’ (via UnitProp)

20

6 7 9 854123d

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éesElle est nécessairement violée, sa négation est

impliquée par F

Page 21: Méthodes Hybrides

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.

21

Page 22: Méthodes Hybrides

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)

22

|| || ,M F M F C|| , ||M F C M F

Page 23: Méthodes Hybrides

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…

Page 24: Méthodes Hybrides

Impact en pratique (CSP)

24

Page 25: Méthodes Hybrides

25

SAT: Implémentations et benchmarks

Implémentations 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

Page 26: Méthodes Hybrides

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

Page 27: Méthodes Hybrides

27

Exemple DFBB-VE(2)

Page 28: Méthodes Hybrides

28

Exemple DFBB-VE(2)

Page 29: Méthodes Hybrides

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

Page 30: Méthodes Hybrides

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…

30

Page 31: Méthodes Hybrides

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…

Page 32: Méthodes Hybrides

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)

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/

Page 33: Méthodes Hybrides

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

Page 34: Méthodes Hybrides

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^1 2^2 2^3…

X1=0 ___ X2=1 ___ X3=3 ___ X4=7 ___ X5=15 …

Page 35: Méthodes Hybrides

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 )

Page 36: Méthodes Hybrides

36

Modélisation de la règle de Golomb d’ordre Navec 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 )

Page 37: Méthodes Hybrides

37

DFBB+GAC pour trouver une règle optimale d’ordre 4

(0,1,3,7)

(0,1,4,6)

échec

Solution

Page 38: Méthodes Hybrides

38

Règle de Golomb d’ordre 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 = {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}

(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

Echec!

Modèle :

Ordre des déductions

Page 39: Méthodes Hybrides

39

Modélisation de la règle de Golomb d’ordre Navec 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 )

Page 40: Méthodes Hybrides

40

DFBB pour trouver une règle optimale d’ordre 5

DFBB+GAC+ternaires DFBB+GAC+ternaires+AllDiff+redondantes

(0,1,3,7,12)

(0,1,4,9,11)

(0,1,4,9,11)

(0,1,3,7,12)

Page 41: Méthodes Hybrides

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

Page 42: Méthodes Hybrides

42@ Roman Bartak, CP Summer School 2005

Page 43: Méthodes Hybrides

43@ Roman Bartak, CP Summer School 2005

Page 44: Méthodes Hybrides

44

Méthode hybride pour l’OptimisationProduction 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)

Page 45: Méthodes Hybrides

45

Cohérence d’arc dans Max-CSP

1

0

0

0

X1 X2

c = 0 , Majorant = 2

Soft Arc Consistency (Schiex, 2000)

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

a

b

0

0

0

0

X1 X2

c = 1 , Majorant = 2

a

b

1

1

1

1

Opération detransformationqui préservel’équivalencedu problème

Page 46: Méthodes Hybrides

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

Page 47: Méthodes Hybrides

47

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), ToolBarhttp://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

Page 48: Méthodes Hybrides

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)

Page 49: Méthodes Hybrides

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

Page 50: Méthodes Hybrides

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

Page 51: Méthodes Hybrides

51

Evaluation des algorithmes

Page 52: Méthodes Hybrides

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

52

Page 53: Méthodes Hybrides

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)

Page 54: Méthodes Hybrides

54

Iterative Broadening

31 noeuds5 noeuds 121 noeuds

p = 1 p = 2 p = 3

Page 55: Méthodes Hybrides

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

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

Depth-First Search 1 5 4 3 2

Limited Discrepancy Search

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

Page 56: Méthodes Hybrides

56

Résultats expérimentaux sur un problème de gestion des prises de vue d’un satellite d’observation (ONERA)