1E-2 - Lirmm

Download Report

Transcript 1E-2 - Lirmm

Où en sommes-nous ?
CSP
Statiques
Algorithmes
De recherche
Backtrack
Prospectifs
Réduction
de l’espace
de recherche
CSP
Dynamiques
Classes
polynomiales
VCSP
Ordres
Compid’instanciation lation
rétrospectifs
FC
Backjumping
MAC
Backmarking
Quick
Nogood Recording
RFL Conflict Directed Backjumping
…
Dynamic Backtracking
…
méthodes
structurelles
1
mixtes
Algorithmes prospectifs
Forward Checking
Forward Checking(I, i, a)
I=I{(i, a)}
supprimer de D toutes les valeurs incompatibles avec i=a
si il n’existe pas de domaine vide alors
choisir jI
pour tout bDj faire ForwardChecking(I, j, b)
restaurer les domaines
Pare-chocs
Enjoliveurs
Enjoliveurs
Caisse
Caisse
Pare-chocs
Capote
2
Capote
Algorithmes prospectifs
Forward Checking – sur les N-reines
3
Algorithmes prospectifs
BACKTRACK
AC puis
BACKTRACK
FC
Enjoliveurs
Caisse
Pare-chocs
Capote
Pare-chocs
Enjoliveurs
Caisse
4
Capote
Algorithmes prospectifs
Coût moyen d’une recherche
Seuil
Backtrack
FC
5
Sous contraints
Sur contraints
Algorithmes prospectifs
Maintaining Arc Consistency
MAC(I, i, a)
I=I{(i, a)}
supprimer et propager {(i, b) / ba}
Si il n’existe pas de domaine vide Alors
Choisir jI
pour tout bDj faire MAC(I, j, b)
restaurer les domaines
supprimer et propager (i, a)
Pare-chocs
Enjoliveurs
Enjoliveurs
Caisse
Caisse
Pare-chocs
Capote
Capote
6
Algorithmes prospectifs
BACKTRACK
AC puis
BACKTRACK
FC
MAC
Enjoliveurs
Caisse
Pare-chocs
Capote
Pare-chocs
Enjoliveurs
Caisse
7
Capote
Algorithmes prospectifs
Coût moyen d’une recherche
Seuil
Backtrack
FC
MAC
8
Sous contraints
Sur contraints
Algorithmes prospectifs
Quelle consistance locale maintenir pendant la recherche ?
pour être rentable, la consistance locale doit avoir un bon
rapport coût/puissance : on doit passer moins de temps à
détecter qu’une branche ne même à aucune solution qu’à
explorer cette branche
Il faut donc :
-comparer la puissance des consistances locales
-comparer le coût des consistances locales
comparer le rapport coût/puissance
9
Algorithmes prospectifs
Puissance des consistancesDlocales
ureté
0.01 0.1
0.01
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.1
0.2
D
e
n
s
i
t
é
0.3
0.4
0.5
0.6
0.7
0.8
PIC
RPC
PC Forte
0.9
Max-RPCEn
Consistance
SAC Max-RPC AC
globale
SRPC
1
Les limites Tall avec n=40 et d=15
10
Algorithmes prospectifs
Coût des consistances locales
Temps cpu
1E+5
(sec.)
n=200, d=30 et densité=15%
12h 40min
3h 53min
Pentium II 1E+4
266 Mhz
64 Mo
39min 43sec
PC forte
1E+3
SRPC2
1E+2
SAC6
8.63 sec
1E+1
Max-RPC1
2.44 sec
1.11 sec
RPC2
1E0
AC7
1E-1
1E-2
dureté
1E-3
1
10
20
30
40
50
60
70
80
11
90
99
Algorithmes prospectifs
Coût moyen d’une recherche
Seuil
Backtrack
FC
MAC
Quick
12
Sous contraints
Sur contraints
Algorithmes prospectifs
Des problèmes exceptionnellement coûteux…
Temps cpu(en secondes) n=200, d=20, 3 voisins, dom/deg
1E+3
?
3.11 min
1E+2
22 sec
1E+1
1E0
1E-1
1E-2
MAC7ps
Quick
Dureté
1E-3
64
79
13
94
Algorithmes prospectifs
Des problèmes exceptionnellement coûteux…
Temps cpu requis maximum sur 1200 CN générés (en secondes)
1E+6
n=200, d=20, 3 voisins, dom/deg
>12 jours
44 h
75 h
1E+5
15 h
49 min
1E+4
1E+3
MAC7ps
Quick
1h 29
1E+2
15 s.
1E+1
1E0
1E-1
dureté
1E-2
14
64
79
94
Où en sommes-nous ?
CSP
Statiques
Algorithmes
De recherche
Backtrack
Prospectifs
FC
MAC
Quick
RFL
…
Réduction
de l’espace
de recherche
CSP
Dynamiques
Classes
polynomiales
VCSP
Ordres
Compid’instanciation lation
rétrospectifs
Backjumping
Backmarking
Nogood Recording
Conflict Directed Backjumping
Dynamic Backtracking
…
méthodes
structurelles
15
mixtes
Heuristiques sur l’ordre d’instanciation
Si on s’engouffre dans un branche sans solutions, on peut passer
énormément de temps avant de s’en apercevoir
Les premiers choix sont particulièrement importants car on doit
potentiellement faire davantage de backtracks avant de revenir sur eux
Il vaut mieux commencer par instancier les variables les plus
Contraintes :
-Celles qui ont un petit domaine
-Celles qui sont impliquées dans de nombreuses contraintes
-Celles qui sont impliquées dans les contraintes les plus dures
-…
Il vaut mieux commencer par affecter la valeur la plus prometteuse:
-Celle qui a le plus de supports
-Celle qui a le plus de supports chemin consistants
-…
L’ordre sur les variables a plus d’impact que l’ordre sur les valeurs
16
Heuristiques sur l’ordre d’instanciation
Temps cpu (en sec.) de FC au seuil pour n de 40 à 160 et D=15
1E+2
1E+1
1E-0
3CL+Dom
Dom + Deg
Dom/Deg
1E-1
1E-2
40
60
80
100
120
140
160
17
Heuristiques sur l’ordre d’instanciation
Temps cpu (en sec.) Quick au seuil pour n de 40 à 160 et D=15
1E+2
1E+1
1E-0
3CL+Dom
Dom + Deg
Dom/Deg
1E-1
1E-2
40
60
80
100
120
140
160
18
Où en sommes-nous ?
CSP
Statiques
Algorithmes
De recherche
Backtrack
Prospectifs
FC
MAC
Quick
RFL
…
Réduction
de l’espace
de recherche
CSP
Dynamiques
Classes
polynomiales
VCSP
Ordres
Compid’instanciation lation
rétrospectifs
Backjumping
Backmarking
Nogood Recording
Conflict Directed Backjumping
Dynamic Backtracking
…
méthodes
structurelles
19
mixtes
Une classe polynomiale
Si le graphe des contraintes ne contient pas de cycles,
on peut résoudre le CSP sans Backtrack
S’il n’y a pas de cycles :
- on réalise la consistance d’arc
- la recherche sera sans Backtrack
C’est la principale classe polynomiale mais il y a d’autres classes
Où l’on peut constater un nombre limiter de backtracks
20
Uilisation de la structure du graphe : coupe cycles
Propriété :
Un réseau de contraintes acyclique peut être résolu sans backtracks
Méthode du coupe cycle :
Instancier d’abord un ensemble de variables tel qui si on déconnecte
ces variables on obtient un réseau de contraintes acyclique
6
1
5
5
1
4
2
3
Résolution sans retour
arrières
Difficulté :
- Si le coupe cycle est de grande taille, l ’intérêt est limité
- Limite les heuristiques sur l ’ordre d ’instanciation
21
- On ne sait pas trouver rapidement un coupe cycle de taille minimal
Uilisation de la structure du graphe : cons. adaptative
Un graphe des contraintes est ordonné s’il possède un ordre total sur les sommets.
La largeur d’un sommet dans un graphe ordonné est le nombre d’arc reliant ce
sommet aux sommets précédents.
La largeur d’un ordre est la largeur la plus grande parmi celles des sommets
La largeur d’un graphe est le minimum des largeurs sur tous les ordres possibles


6
1
largeur()=3
largeur=2
largeur(2, )=1
6
5
1
largeur()=2
2
4
5
largeur(3, )=2
3
6
4
5
2
4
2
3
largeur(3, )=3
3
largeur(2, )=1
1
22
Uilisation de la structure du graphe : cons. adaptative
Un ordre d’instanciation garantit une recherche sans retour arrière si le niveau de
K-consistance forte est supérieur à la largeur de cet ordre.
Un réseau est k-consistant ssi toute instanciation de longueur (k-1) peut être étendu
à n’importe quelle kième variable (2-Consistance  consistance d’arc)
Avec un ordre de largeur 2, la 3-consistance forte est nécessaire.
Problèmes :
- la réalisation de la k-consistance exige un temps exponentiel en k.
- la réalisation de la k-consistance peut entraîner l ’ajout de contraintes (k-1)-aires
et donc modifier la largeur de l ’ordre (et même du graphe).
Consistance adaptative : adapter le niveau de k-consistance à chaque sommet.
- On considère les sommets dans l ’ordre inverse
- Soit k la largeur du sommet ; on réalise la (k+1)-consistance entre les
sommets qui le précède dans l ’ordre et lui même.
6
5
 L’ordre est backtrack-free
Problèmes :
- la complexité de la k-consistance.
- l’ordre d’instanciation est statique.
1
2
4
6
1
4
5
2
3
23
3
Où en sommes-nous ?
CSP
Statiques
Algorithmes
De recherche
Backtrack
Prospectifs
FC
MAC
Quick
RFL
…
Réduction
de l’espace
de recherche
CSP
Dynamiques
Classes
polynomiales
VCSP
Ordres
Compid’instanciation lation
rétrospectifs
Backjumping
Backmarking
Nogood Recording
Conflict Directed Backjumping
Dynamic Backtracking
…
méthodes
structurelles
24
mixtes
CSP Dynamiques
=

=
CSP Statiques : L’ensemble des contraintes ne change pas
- trouver une solution / toutes les solutions
Problèmes intrinsèquement dynamiques :
- emplois du temps, scheduling, design, ...
Si le CSP est sur-contraint  Optimisation
- trouver une solution optimale vis-à-vis d’un critère
sur les contraintes
 Rarement satisfaisant  Besoin d’interactivité
25
CSP Dynamiques
Maintien d’une consistance locale

+
-
=

=

=
+
+
=

=
=

=
=
-
+
=

+

=
=
+
26
CSP Dynamiques
Maintien d’une consistance locale
1ère Solution :
-Pour supprimer une contrainte,
on repart du réseau sans
contraintes
+
On doit pouvoir
faire mieux !

=

+
=

=


=
=
+

=

+
+
=
=
=
+
=
+
=
=
=
+
=
=
+
+
+
27
CSP Dynamiques
Maintien d’une consistance locale
2ème Solution :
-On mémorise l’état du réseau
Avant chaque ajout
On ne repart pas toujours +
De zéro
=
On doit pouvoir
faire mieux !
=

=



=

=
=
+

=

+
+
=
=
+
+
=
+
=
=
=
+
=
=
+
+
28
CSP Dynamiques
Maintien d’une consistance locale
3ème Solution : utiliser un système de justifications
=
+
=
+
=
=

+

=

-

=
29
CSP Dynamiques
Maintien d’une consistance locale
On remet les valeurs justifiées par la contrainte supprimée
=


-


=
=


=


=
30
On propage les valeurs remises
On vérifie la consistance locale des valeurs remises
Où en sommes-nous ?
CSP
Statiques
Algorithmes
De recherche
Backtrack
Prospectifs
FC
MAC
Quick
RFL
…
Réduction
de l’espace
de recherche
CSP
Dynamiques
Classes
polynomiales
VCSP
Ordres
Compid’instanciation lation
rétrospectifs
Backjumping
Backmarking
Nogood Recording
Conflict Directed Backjumping
Dynamic Backtracking
…
méthodes
structurelles
31
mixtes
Recherche rétrospective
Le thrashing
Exemple montrant le thrashing
2
3
4
1
5
6
32
Recherche rétrospective
Le thrashing
Exemple montrant le thrashing
2
3
1
4
5
1
2
3
4
6
5
6
33
Dynamic Backtracking
Chaque échec sur le choix d’une valeur est expliqué par les
précédents choix qui entre en conflit. Si toutes les valeurs
d’un domaine ont été testées sans succès, l’explication de
cet échec est l’union des explications des valeurs du
domaine et on revient sur l’instanciation la plus récente de
cette explication.
Conflict directed BackJumping (CBJ)
Idem mais lors d’un saut on supprime également les
instanciations intermédiaires.
Dynamic Backtracking [Ginsberg, 93]
2
- Instancier i à a  Ajout de Ci:(i=a)
3
1
4
5
6
- Explication d’une information I = ensemble de contraintes
tel que I demeure vérifiée tant que ces contraintes figurent
dans le système
1
2
3
4
5
C25 expl(5 )=C2
C15 expl(5 )=C1
C25 expl(5 )=C2
expl(D5=)={C1 ,C2} 35
Conflict Directed Backjumping
2
Réduction partielle
du thrashing
3
1
4
5
1
2
3
4
6
5
6
36
Dynamic Backtracking
- Plus une réparation qu’un saut
- Additif sur les sous-problèmes
indépendants
2
3
1
4
5
6
- Compense « automatiquement »
certaines lacunes de l’heuristique sur l’ordre d’instanciation
1
2
3
4
3
4
2
5
6
37
Dynamic Backtracking
5
- Compense « automatiquement »
certaines lacunes de l’heuristique sur l’ordre d’instanciation
8
4
1
2
6
3
7
9
5
8
4
6
7
9
38
Les explications
Le coût spatial des explications est en O(n2d) pour un CN
de n variables ayant d pour taille maximale des domaines
mais l’espace requis en moyenne est loin de ce pire cas
Les explications permettent également
- de posséder une explication des retraits ce qui peut être
précieux pour la mise au point
- le traitement des problèmes sur-contraints et la résolution
interactive
39
Deux grandes familles d’améliorations
BT
FC
CBJ
FC-CBJ
MAC
DBT
FC-DBT
MAC-CBJ
MAC-DBT
40