Title: Cours DEA Satisfaction et Optimisation sous Contraintes
1Problèmes de Satisfaction de Contraintes (CSP)
2Définitions exemples
- Un CSP P (X, D, C) est défini par
- des variables X X1, X2 Xn
- des domaines D D1, D2 Dn , Xi prend ses
valeurs dans l ensemble fini discret Di - des contraintes C C1, C2 Cm ,
- la contrainte Ci est une relation Ri définie sur
un sous ensemble de variables Si - Si ? X , l ensemble des variables sur
lesquelles elle porte Si Xi1, Xi2, Xini - Ri, l ensemble des combinaisons de valeurs
satisfaisant Ci Ri ? Di1 x Di2 x xDini - ? Ci ltSi, Rigt. Si est appelée l arité de
Ci - Une solution est une instanciation des variables
satisfaisant toutes les contraintes.
3Définitions exemples
- Soit P (X, D,C) avec X X1, X2, X3, X4 et C
C1, C2, C3 - (X,C) graphe (ou hypergraphe) de contraintes
- CSP binaire contraintes d arité 2 (graphes)
- CSP n-aires contraintes d arité quelconque
(hypergraphes)
4Définitions exemples
- Soit P (X, D,C)
- X X1, X2, X3, X4 et
- D D1, D2, D3, D4, D1 D2 D3 D4 a,b
- C C1, C2, C3,
- C1 lt S1 , R1gt C2 lt S2 , R2gt C3 lt S3 , R3gt
R1
R2
R3
5Définitions exemples
- Représentations des contraintes
- contraintes binaires
- En intension Y X 2 , X ? Y
- En extension (par table)
- Par graphes
X
Y
Ck
Rk
Rk
Dx
Dy
x1
y1
x2
y2
x3
y3
6Exemple
D(X1) FRITES, COUSCOUS, RIZ, SALADE
X1
- Problème des mots croisés
L15 L35
L12 L21
X2
X3
D(X2) RCL, OM, PSG, LOSC, CRIL
D(X3) MOULES, SARDINES, CREVETTES, VIANDE,
MAYONNAISE, VINAIGRE
Lij jème lettre de Xi
7Exemple 1 problème des 4-Reines
- Formulation standard du problème
- Variables chaque ligne est une variable.
Placer 4 Reines sur un échiquier de 4x4 tq.
deux Reines ne soit pas sur la même ligne,
colonne, ou diagonale.
1 2 3 4
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
( )
- Contraintes Il y a 6 contraintes
8Exemple 2 Coloriage de graphes
- Colorier une carte géographique tq. Deux régions
(pays) adjacents soient de différentes couleurs
(R,V,B)
X1
?
?
X3
X2
?
(R,V,B)
(R,V,B)
9Exemple 3 Conception
- Les contraintes sur les parties du véhicule
- par-chocs blanc (white)
- toit ouvrant rouge (red)
- enjoliveurs rose (pink) ou rouge
- capot et portières rose, rouge ou noir (black)
- carrosserie blanc , rose, rouge ou noir
- Les contraintes du concepteurs
- pare-chocs, toit ouvrant et enjoliveurs plus
clairs que la carrosserie - portières, carrosseries et capot de la même
couleur - Trouver une configuration possible du véhicule
satisfaisant les contraintes.
10Exemple 3 Conception
portières
pare-chocs
p, r, b
(w,p) (w,r) (w,b)
(p,p) (r,r) (b,b)
w
toit ouvrant
(p,p) (r,r) (b,b)
w, p, r, b
(r,b)
r
enjoliveurs
carrosserie
(p,p) (r,r) (b,b)
(p,r) (p,b) (r,b)
p, r
p, r, b
capot
plus clair que
de la même couleur
11Exemple 3 Vision Walz75
Problème reconnaître des objets 3D en
interprétant les lignes sur un dessin 2D
David Waltz, MIT, 1975
12Exemple 3 Vision Walz75
Sur le schéma ci-dessous, il existe quatre types
de jonctions (points de rencontre entre les
arêtes)
13Exemple 3 Vision Walz75
14Exemple 3 Vision Walz75
On distingue les cas suivants (seules certaines
combinaisons sont possibles pour des arêtes
adjacentes à une jonction)
L
Y
T
Flèche
15Exemple 3 Vision Walz75
- Formalisation
- variables les arêtes
- domaines les labels
- jonctions les contraintes
-
Un étiquetage consistant est une interprétation
possible
16CSP
- Enoncés possibles
- Existe t-il une solution?
- Trouver une solution
- Trouver toutes les solutions
- Trouver le nombre de solutions
- Telle valeur figure-t-elle dans une solution?
- Trouver toutes les valeurs possible pour une
variable - Trouver une valeur figurant dans toute les
solutions - Trouver une solution optimale
-
- Le problème de décision est NP-Complet
17Transformations CSP-naires vers CSP binaires
- La transformation est obtenue en utilisant des
variables auxiliaire . - Pour une contrainte portant sur 3 variables X, Y,
Z on crée une variable U, tq - Dx 1,2 Du (1,3,5), (1,3,6), (1,4,5),
(1,4,6), - Dy3,4, (2,3,5), (2,3,6), (2,4,5),(2,4,6)
- Dz5,6
- Exemple Soit la contrainte
- XYZ
- Dx 1,2 Du (1,4,5), (2,3,5), (2,4,6)
- Dy3,4,
- Dz5,6
18Transformations CSP-naires vers CSP binaires
- 1) en gardant les variables originales
- Introduire une nouvelle contrainte X ième
argument de (U) - XYZ, XltY
- Dx 1,2
- Dy3,4,
- Dz5,6
5,6
Z
Z arg3(U)
U
1,4,5), (2,3,5), (2,4,6)
U (X,Y,Z) XYZ
X arg1(U)
Y arg2(U)
X
Y
XltY
1,2
3,4
19Transformations CSP-naires vers CSP binaires
- 1) Sans les variables originales
- Introduire une nouvelle contrainte
- ième arguments de(U) jème argument de (V)
- XYZ, XltY
- Dx 1,2
- Dy3,4,
- Dz5,6
U
1,4,5), (2,3,5), (2,4,6)
U (X,Y,Z) XYZ
Arg1(U) arg1(V)
Arg2(U) arg2(V)
V
1,3), (1,4), (2,3), (2,4)
V (X,Y) XltY
20Méthode standard de résolution le backtrack
- A chaque étape, l instanciation partielle
courante est étendue en instanciant un nouvelle
variable par une valeur compatible avec
l instanciation courante - X1 X2 Xk-1 Xk
- d1 d2 dk-1 dk ? Dk
- Si aucune valeur dk ? Dk n est compatible, alors
il y a un retour en arrière (chronologique) sur
la variable précédente Xk-1 pour essayer une
autre valeur dk-1 ? Dk-1 - X1 X2 Xk-1
- d1 d2 dk-1? Dk-1
- Approche fortement combinatoire O(dn)
21Filtrages et prétraitements
- Consistance (ou cohérence)
- propriété liée à la compatibilité entre valeurs
de domaines et contraintes - Filtrage
- élimination d éléments dont on est assuré
qu ils ne peuvent figurer dans une solution
(valeurs ou n-uplets de relations) - P (X,D,C) P (X, D, C)
- Propriété d un filtrage
- simplification du problème par réduction de
l espace de recherche - dans certains cas détection de l inconsistance
- Plusieurs niveaux de consistances
- consistance locales ou partielles jusqu à
consistance globale - ? coût du filtrage plus ou moins élevé
- (obtention consistance globale ? résolution
du problème)
22La consistance d arc (AC)
Arc Inconsistant
Arc Consistant
23La consistance d arc (AC) AC1
- Filtrage par consistance d arc suppression des
valeurs qui ne vérifient pas la propriété (AC)
24Lalgorithme AC1 (Macworth 1977)
Algorithme AC-1 répéter pour chaque contrainte
Ck faire Réviser(Ck) jusquà
plus de changement
Réviser(Ck) Ck (Xi,Xj) pour tout di ? Di
faire si ? dj ? Dj telle que (di,dj) ? Rk
alors supprimer di de Di pour tout dj ? Dj
faire si ? di ? Di telle que (di,dj) ? Rk
alors supprimer dj de Dj
25Lalgorithme AC1 (Macworth 1977)
procédure Réviser((i,j)) changement ?
faux pour di ? Di faire si ? dj ? Dj telle
que (di,dj) ? Rk alors supprimer di de Di
changement ? vrai fin si fin
pour retourner changement fin
procédure AC-1(G) répéter changement ?
faux pour chaque arc (i,j) ? G
faire changement ? réviser((i,j)) ou
changement fin pour jusqu à non
(changement) fin AC-1
26Lalgorithme AC1
- Quels sont les défaut de AC-1?
- Si un domaine est réduit alors tout les arcs sont
testés (révisés) même si le domaine touché n a
aucune influence sur la plus part des arcs - Quels sont les arcs à reconsidérer ?
- Les arcs affectés par le filtrage du domaine
- i.e., les arcs reliés à la variable touchée
(arcs entrants). - Ignorer les arcs incident de la variable touché
(arcs sortants)
Variable touché
Arc dont la révision a provoqué la réduction du
domaine
27Lalgorithme AC3 Mackworth 1977
- utiliser une file pour mémoriser les arcs à
(re-)réviser - enfiler uniquement les arcs affectés par la
réduction des domaines.
procedure AC-3(G) Q ? (i,j) (i,j) ? arcs(G),
i lt j file pour les arcs à réviser tant que
Q non vide faire sélectionner et supprimer
(k,m) de Q si réviser((k,m)) alors Q ? Q
?(i,k) (i,k) ? arcs(G), i ? k, i ? m fin
si fin tant que fin
? AC3 est l algorithme le plus utilisé
28L algorithme AC3 observations
- Révision d un arc de nombreuses paires de
valeurs sont testées - Ces tests sont répétés à chaque fois qu un arc
est révisé - Observation
- il n est pas nécessaire d examiner les valeurs
a, b et c de X3 (elles admettent un autre support
autre que a dans X2) - L ensemble support de a ?Di est l ensemble
ltj,bgt b ? Dj , (a,b)? Rij
1. Quand larc ltX2,X1gt est révisé, la valeur a
est supprimé du domaine de X2 2. le domaine de
X3 doit être exploré pour déterminer si les
valeurs a,b,c et d perdent leur support dans
X2
29Calcul et utilisation des ensembles supports
- L ensemble des valeurs supportés par une valeur
donnée (si la valeur est supprimée alors ses
valeurs perdent un support) et le nombre de ces
valeurs supports sont calculés.
procédure Initialiser(G) Q ? , S ?
initialiser les structures de données pour
chaque arc (Xi,Xj) ? arcs(G) faire pour a ? Di
faire total ? 0 pour b ? Dj faire si
(a,b) ? Rij alors total ? total
1 Sj,b ? Sj,b ? lti,agt fin si fin
pour compteur(i,j),a ? total si
compteur(i,j),a 0 alors supprimer a de
Di Q ? Q ? lti,agt fin si fin pour fin
pour retourner Q fin Initialiser
- Sj,b - l ensemble des pairs lti,agt tq.
- ltj,bgt les supportent i.e. (a,b) ? Rij
- compteur(i,j),a - nombre de supports
- pour une valeur a ? Di dans Dj
30Calcul et utilisation des supports
Compteur(i,j) i 2
a1 2 a2 1
a3
j Sj... b1 lti,a1gt,lti,a2gt
b2 lti,a1gt b3 lti,a2gt, lti,a3gt
- Utilisation des ensembles supports
- 1. soit b3 une valeur supprimée du domaine de j.
- 2. Pour chaque élément de Sj,b3 (i.e.
lti,a2gt,lti,a3gt). - Décrémenter les compteurs de ses valeurs (i.e.
elles ont perdues un support) (compteur(i,j),a2
et compteur(i,j),a3 ) - 3. Si un compteur devient nul (a3) alors
supprimer la valeur et aller en 1.
Compteur(i,j) i 2
a1 1 a2 0
a3
j Sj... b1 lti,a1gt,lti,a2gt
b2 lti,a1gt b3
31Algorithme AC4 Mohr Henderson 1986
- procedure AC-4(G)
- Q ? Initialiser(G)
- tant que Q est non vide faire
- sélectionner et supprimer une pair ltj,bgt de Q
- pour chaque lti,agt de Sj,b faire
- compteur(i,j),a ? compteur(i,j),a - 1
- si compteur(i,j),a 0 a ? Di alors
- supprimer a de Di
- Q ? Q ? lti,agt
- fin si
- fin pour
- fin tant que
- fin AC-4
- Inconvéniant complexité en espace élevée
32Autres algorithmes d AC
- AC-5 (Hentenryck, Deville, Teng 1992)
- un algorithme d AC générique
- peut être réduit à AC-3 et AC-4
- exploite la sémantique des contraintes (e.g.
fonctionnelle ) - AC-6 (Bessiere 1994)
- maintient un seul support pour une valeur, le
prochain support est calculé au moment de la
suppression de ce support - améliore la complexité en espace et la complexité
en moyenne d AC4 - AC-7 (Bessiere, Freuder, Regin 1999)
- basé sur le calcul et l exploitation des
supports (comme AC-4 et AC-6) - exploite la symétrie des contraintes
33Arc consistance directionnelle (DAC)
- Observation les algorithmes d AC effectuent
des révisons répétées des arcs le nombre total
de révisions dépends du nombre d arc mais aussi
de la taille des domaines (présence de cycles). - Est-il possible d affaiblir AC de manière à
réviser chaque arc une seule fois? - Définition un CSP est arc consistent
directionnelle (DAC) étant donné un ordre sur les
variables ssi tout arc (i,j) tq. iltj est arc
consistant. - Chaque arc est révisé, mais uniquement dans une
seule direction
34Algorithme DAC
- 1. Les arcs sont considérés dans une seule
direction - 2. Les variables sont ordonnées
- ? pas de cycle dans le graphe !
- procedure DAC(G)
- pour j noeuds(G) à 1 faire
- pour chaque arc (i,j) dans G tq. iltj faire
- Réviser((i,j))
- fin pour
- fin pour
- fin
35Quand et comment utiliser DAC
- AC est plus général que DAC (si un CSP est AC
alors il est aussi DAC - DAC est-il utile ?
- DAC est plus rapide que tout algorithme AC-x
- Il existe des problèmes pour lesquels DAC est
suffisant - Exemple Si le graphe de contraintes du CSP forme
un arbre alors DAC est suffisant pour résoudre
le CSP sans retours arrières - Quel ordre utiliser pour DAC?
- Appliquer DAC de la racine aux feuilles de
l arbre. - DAC assure pour chaque valeur du fils
- l existence d une valeur compatible
- avec son père
36Relation entre AC et DAC
- Exemple
- V X,Y,Z
- Dx Dz 1,2, Dy 1
- C X? Z,YltZ
- En utilisant lordre X,Y,Z
- pas de suppression de valeurs
- En utilisant l ordre Z,Y,X
- une valeur est supprimée du domaine de Z,
- le CSP obtenue est DAC mais pas AC
1,2
2
Z
Z
YltZ
X ? Z
YltZ
X ? Z
Y
1
X
1,2
Y
1
X
1,2
- Si l ordre X, Y, Z est encore utilisé alors le
CSP deviendra aussi AC
37De Dac à AC pour les CSP structurés en arbre
- Si on applique DAC à un CSP structuré en arbre
- 1. en utilisant l ordre de la racine aux
feuilles - 2. et dans l ordre inverse.
- On obtient un CSP arc consistent
- Preuve
- chaque valeur admet un support dans les nœuds
fils (1.) - chaque valeur admet un support dans le nœud
parent (2. ), - ? on obtient un CSP AC
38Est-ce que AC est suffisant pour résoudre un CSP?
- En appliquant les algorithmes AC on peut
supprimer de nombreuses valeurs incompatibles - Peut-on obtenir une solution?
- Ou déterminer quune telle solution existe?
- ? Malheureusement, la réponse est NON!
- Exemple
- Le CSP est arc consistent
- mais n admet aucune solution
- Alors quel est le rôle de AC ?
- Dans certains cas on obtient une solution après
l application de AC - si on obtient un domaine vide (par AC) alors le
CSP est inconsistant - Si tout les domaines ont été réduit à une seul
valeur (singleton) alors on obtient une solution
du CSP - Dans le cas général AC supprime des valeurs
- ? réduit la taille de l espace de recherche
1,2
Z
Y ? Z
X ? Z
Y
1,2
X
1,2
X ? Y
39La consistance de chemin (PC)
Chemin Inconsistant
Chemin Consistant
40Chemin consistance directionnelle (DPC)
-
- DPC pour (x1, x2, x3), pas pour (x3, x2, x1)
41Relation entre PC et AC
- Est-ce que PC subsume AC ?
- i.e. si un CSP est PC, est-il aussi AC?
- un arc (i, j) est consistent (AC) si le chemin
(i,j,i) est PC - ? PC implique AC
- est-ce que PC est plus fort que AC (y a t il un
CSP AC mais pas PC)? - Exemple P (X,D,C)
- V X,Y,Z
- Dx Dy Dz 1,2,
- C X?Z, X ? Y, Y ? Z
- P est AC, mais pas PC (X1, Z2 ne peut être
étendu à Y et Z) - AC supprime des valeurs des domaines ,
- PC supprime des pairs de valeurs (tuples dans les
relations) - PC rend les contraintes explicites (AltB,BltC ?
A1ltC)
42Contraintes représentation matricielle
- Pour supprimer des couples de valeurs
- ? les contraintes doivent être représenté en
extension - contraintes binaires matrice de 0 et 1
- 0 - les valeurs sont incompatibles
- 1 - les valeurs sont compatibles
- Opérations sur les contraintes
- Intersection Rij Rij composition Rik Rkj
? Rij - (et bit à bit) (multiplication binaire de
matrice)
43Composition des contraintes d un chemin
- Exemple P (V,D,C)
- VA,B,C
- Da Db Dc 1,2,3,
- C Bgt1, AltC, AB, BgtC-2
- Comment rendre consistent le chemin (i,k,j) ?
- Rij ? Rij Rik Rkk Rkj
44Algorithme PC1
- procédure Réviser( (x, y), z) )
- pour chaque pair (a,b) ? Rxy faire
- si ( c ? Dz tq. (a,c) ? Rxz et (b,c) ? Ryz
) - alors supprimer (a,b) de Rxy
- fin si
- fin pour
- fin
- procédure PC-1(P (X, D, C) )
- n ? X
- répéter
- pour k 1 à n faire
- pour i 1 à n faire
- pour j 1 à n faire
- Rij ? Rij (Rik Rkk Rkj) / Reviser(
(i,j), k) / - jusquà (non (changement) )
- fin
- Remarque L absence de contrainte entre x et
y, peut être vu comme une contrainte universelle
(Rxy Dx x Dy)
Rii ? Rii (Rik Rkk Rki) ? AC1
45Algorithmes PC
- PC1, PC-2 Macworth 77
- PC-3 Mohr Anderson 86
- PC-4 Han Lee 88
- PC-5 Singh 95
-
- PC8 Chmeiss Jégou 96
- Inconvénients de PC
- Complexité en espace
- PC élimine des pairs de valeurs
- maintenir un CSP en extension (e.g. utiliser une
matrice de 0 et 1) - modification du graphe de contraintes
46PC suffit-elle à résoudre un CSP
- PC ne suffit pas a résoudre un CSP
-
- Exemple soit un CSP P (V,D,C)
- VB,C,D
- Db Dc Dd 1,2,3
- A ? B, A ? C, A ? D, B ? C, B ? D, C ? D
- P est PC mais n admet pas de solutions
?
1 2 3
1 2 3
?
?
?
?
1 2 3
1 2 3
?
47Chemin consistance restreinte (RPC)
- Peut-on obtenir un algorithme de filtrage (entre
AC et PC)? - plus fort que AC
- sans les inconvénients de PC (espace mémoire,
modification du CSP) - Chemin consistance restreinte (Berlandier 1995)
- basé sur AC-4 (utilise les ensembles supports)
- des qu une valeur admet uniquement un support
dans une autre variable, PC est appliqué sur
cette pair de valeurs
48K-consistance
- Y a t il un formulation commune à AC et PC?
- AC une valeur est étendue à une autre variable
- PC une pair de valeurs est étendue à une autre
variable - on peut continuer
- Définition un CSP est k-consistent ssi toute
instanciation consistante de (k-1) différentes
variables peut être étendue à une instanciation
consistante avec une variable supplémentaire (k) - CSP 4-consistant
-
49K-consistance forte
- 3-consistant mais pas 2-consistant
- Définition un CSP P est fortement k-consistant
ssi P est j-consistant pour tout j ? k. - k-consistance forte ? k-consistance
- k-consistance forte ? j-consistance pour tout
j ? k - NC (consistance de noeuds) 1-consistance forte
1-consistance - AC 2-consistance forte
- PC 3-consistance forte
50Portés des différentes consistances
NC
AC
PC
4-consistance
51Techniques de consistance modifications
apportées au CSP
AC
PC
4-(forte)consistance
Contrainte ternaire
52k-consistance résolution de CSP
- Pour un CSP à n variable, quelle k-consistance
est suffisante pour résoudre un CSP? - n-consistance forte pour un CSP à n variables!
Un CSP P de n variable de domaines 1n-1
P est k-fortement consistant (kltn) mais P est
inconsistant
D(AC) est suffisant P est un arbre
53k-consistance résolution de CSP
- Définition un CSP est résolut par un algorithme
glouton (sans retour arrière backtrack free
) si pour un certain ordre des variables, on peut
trouver une valeur pour chaque variable
compatible avec les variables déjà affectées - Trouver un niveau de consistance suffisant (le
plus petit) pour résoudre un CSP?
54k-consistance résolution de CSP
- Quelques observations
- pour éviter un retour arrière, une variable non
instancié doit être compatible avec les variables
instanciés. - si au cours de la recherche de solution, toute
variable non instancié est contrainte avec au
plus k variables instanciés , on a besoin de la
(k1)-consistance forte pour résoudre le CSP
(sans backtrack) - le nombre maximum de contraintes entre une
variable non instancié et celles instanciés
dépend de lordre des variables. - Il est intéressant de trouver l ordre minimisant
k
55k-consistance résolution de CSP
- un graphe ordonné est un graphe muni d un ordre
total sur les sommets - Largeur d un sommet étant donné un graphe
ordonné est le nombre sommets qui lui sont reliés
et qui le précédent dans lordre. - Largeur du graphe ordonnée est le maximum des
largeurs de ses sommets. - Largeur d un graphe est le minimum des largeurs
de ces graphes ordonnés.
56k-consistance résolution de CSP
- Théorème soit w la largeur du graphe de
contraintes. Si le CSP est k-fortement consistant
pour kgtw alors il existe un ordre des variables
tq. le CSP peut être résolu par un algorithme
glouton(sans retour arrière). - Idée de preuve
Au plus w
57D autres forme de consistances
(i,j)-Consistance
- k-consistance étends l instanciation des (k-1)
variables à une nouvelle variable - ? on supprime des (k-1)- tuples ne pouvant pas
être étendu à une autre variable. - Définition
- un CSP est (i,j)-consistent ssi toute
instanciation consistante de i variables peut
être étendue à j nouvelles variables. - Un CSP est (i,j)-fortement consistant, ssi il
est (k,j)-consistant pour tout k ?i - Remarque
- k-consistance (k-1,1)-consistance AC
(1,1)-consistance forte - PC (2,1)-consistance forte
58Formes de consistances inverse
- Définition (1,k-1)-consistance est appelée
k-consistance inverse - On supprime les valeurs qui ne peuvent pas être
étendues de manière consistante à (k-1) nouvelles
variables - Chemin consistance inverse (PIC)
(1,2)-consistance - Consistance de voisinage inverse (NIC) (Freuder ,
Elfe 1996) - On supprime les valeurs de la variable V ne
pouvant pas être étendues de manière consistante
aux variables directement reliés à V
59Filtrage pour les CSP généraux (n-aires)
- Toutes les méthodes de filtrages se généralisent
aux CSP généraux parmi elles - la consistance d arc
- une généralisation de la 2 consistance
l interconsistance - P (X,D, C) est interconsistant ssi les
contraintes sont compatibles 2 à 2 - 1. ? Ci, Cj/ Ci ? Cj ??, RiCi ? Cj Rj Ci ?
Cj ?? - 2. ? Ri, Ri ??
- ?issue des travaux sur les bases de données
relationnellesBeeri al 83 - Intérêt
- condition plus forte que la consistance d arc
- consistance plus adaptée aux CSP n-aires
(hypergraphes)
60Filtrage par consistance d arc généralisé
X2
X3
- Soit P (X, D,C)
- X X1, X2, X3, X4 et
- D D1, D2, D3, D4,
- D1 D2 D3 D4 a,b
- C C1, C2, C3,
- C1 lt S1 , R1gt C2 lt S2 , R2gt C3 lt S3 , R3gt
a b
a b d
C1
C2
X1
X4
a b c
a b
C3
R1
R2
R3
61Filtrage par interconsistance
X2
X3
- Soit P (X, D,C)
- X X1, X2, X3, X4 et
- D D1, D2, D3, D4,
- D1 D2 D3 D4 a,b
- C C1, C2, C3,
- C1 lt S1 , R1gt C2 lt S2 , R2gt C3 lt S3 , R3gt
a b
a b d
C1
C2
X1
X4
a b c
a b
C3
R1
R2
R3
62Filtrages sommaire
- Diminution de l espace de recherche
- Coût raisonnable pour les consistances faibles
(k?3) - Le filtrage par k-consistance (kgt3) peut
entraîner une modification de la structure du CSP - Compromis il est souvent nécessaire de trouver
le bon compromis entre le prétraitement et la
recherche effective - complexité du filtrage
- Efficacité pratique
- Bonne dans certains cas
- consistance d arc Vision Waltz
- consistances de chemin contraintes temporelles
- Faible parfois problèmes des 8 reines
63Résolution de CSP
- Algorithme de base Backtrack
- Améliorer le Backtrack
- avant la recherche
- filtrages (consistance d arc, de chemin, )
- guider la recherche
- ordre de choix des variables
- ordre de choix des valeurs
- ordre de test des contraintes
- pendant la recherche
- approches prospectives (look-ahead) emploi de
filtres - approches rétrospectives (look-back) revenir
à la cause déchec - Critères d évaluation
- taille de l arbre de recherche nombre de tests
de consistance
64Les défauts du backtrack classique
- Parcours inutile de certaines zones de l espace
de recherche - (des valeurs trivialement incompatibles avec
l instanciation courantes ne sont pas
supprimées) - Le retour arrière chronologique peut entraîner
des répétitions d échecs causés par une même
raison - la taille de l espace de recherche dépend de
l ordre - d instanciation choisi
Linstanciation (a,b) pour X1, X2 provoquera des
échecs répétés sur X3 alors que la cause réelle
d échecs est l incompatibilité avec X4
X3
a b
?
X4
a b
?
?
X2
X1
a b
a b
65Heuristiques d ordonnancement
- Principe du First-fail
- Ordres
- vertical choix des variables
- horizontal choix de valeurs
- ordre de test des contraintes
- statique préétabli
- dynamique évolue pendant la recherche
- Heuristiques classiques
- choix de valeurs
- recherche d une solution choix les moins
contraints - recherche de toutes les solutions choix les
plus contraints - choix de variables
- en fonction de critères structurels degré,
tailles des domaines , satisfiabilité des
contraintes...
66Heuristiques dordonnancement
- Choix de lordre des variables - un exemple
Nadel - sij est le taux de satisfiabilité de la
contrainte Cij - sij Rij / Di x Dj
- Trois heuristiques d ordonnancement des
variables - H1 le plus petit domaines d abord
- ? (X1, X2, X3, X4)
- H2 la variable de degré max d abord
- ? (X2, X3, X4, X1) ou (X2, X4, X3, X1)
- H3 contrainte la moins satisfiable d abord
- ? (X4, X3, X2, X1) ou (X3, X4, X2, X1)
X3
1 2 3
C34 X3 X42 s34 1/12
C23 X2 ? X3 s23 5/6
C24 X2 x X4 gt1 s24 7/8
1 2
1 2 3 4
X2
X4
C12 X1 ?X2 s12 1
1
X1
67Exemple suite
H1 ? 29 noeuds
H1 X1 X2 X3 X4
1
1
2
1
2
3
1
2
3
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
H2 ? 32 noeuds
68Exemple suite
H3 ? 19 noeuds
Nécessité de compromis entre les différents
critères Exemples 1. dom degre min dom, en
cas dégalité appliquer max degre 2. dom/degre
minimiser le rapport dom/degre Régin bessière
69Heuristiques une approche multi-niveaux
- Bessière-Chmeiss-Saïs
- Objectif
- tenir compte des voisinages des variables
- ? orienter la recherche vers la partie dense du
CSP (difficile)
70Heuristiques une approche multi-niveaux
- Formulation général
-
-
- calcul de ? Peut être coûteux !!
- ? paramètre syntaxique simple (? )
-
-
71Heuristiques une approche multi-niveaux
- Généralisation (niveaux)
-
-
- Instanciation de
-
-
-
- ?
,
72Heuristiques une approche multi-niveaux
- Ordonnancement des variables
- une formulation générale
- paramétrable
- récupère la plus part des heuristiques connues
- multi-niveaux (notion de distance)
- calcul simple du poids des contraintes
- propriétés syntaxique
- pas de tests de consistance
- possibilité d utiliser différentes fonctions
pour le calcul du poids des contraintes - amélioration significative des heuristiques
connues
73Ordre de test des contraintes
Ordre lexicographique 47 tests de contraintes
H2 X2 X4 X3 X1
1
2
2
3
4
1
2
3
1
4
?
?
?
?
?
?
?
?
X2 x X4 gt1
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
? ? ?
? ? ?
? ? ?
? ?
?
X2 ?X3 X3 X42
?
1
?
X1 ?X2
La contraintes la moins satisfiable dabord
31 tests
X3 X42 X2 ?X3
74Améliorer le backtrack emploi de filtres
- Principe
- à chaque étape (1, ,k,n),
- on instancie une nouvelle variable Xk
- On filtre des valeurs devenues impossibles sont
éliminées des domaines Di pour igtk - Si un domaine Di devient vide, il y a alors
retour arrière sur la variable - précédente
- Plusieurs niveaux de filtrages
- Forward Checking (FC) (valeurs directement
inconsistantes ) - Real Full Lookahead (RFL) , il exite deux version
plus faible - Partial Lookahead (PL),
- Full Lookahead (FL)
- Maintaining Arc Consistency FC AC
- AC est appliqué avant la recherche et à chaque
étape(RFL) - choix couple (var, valeur)
75Forward Checking (FC) Haralick 80
- L étape de filtrage, quand on a instancié Xk par
dk ne concerne que les variables Xi voisines de
Xk avec igtk on supprime des Di les valeurs
incompatibles avec dk.
X1
X2
Variables déjà instanciées
. .
Xk-1
Xk
d
Filtrage élimination des valeurs incompatibles
avec d
76FC schéma dalgorithme
- Procédure Forward-cheking (D, ?, k)
- D (D1, , Dn), ? (d1,,dk)
- si k n alors ? est solution
- sinon
- pour tout Xi, igtk, Xi voisin de Xk faire
- Di Di
- pour tout di de Di faire
- si di et dk incompatibles alors
- Di Di-di
- fsi
- fpour
- fpour
- si pour tout i gtk, Di ? ? alors
- pour tout dk1 de Dk1 faire
- ? (d1,,dk,dk1)
- forward-Checking(D , k1)
- fpour
- fsi
- fsi
77Real Full Lookahead (RFL) Harlick 80
- L étape de filtrage, quand on a instancié la
k-ième variable, correspond à la suppression des
valeurs des domaines qui ne vérifient pas la
consistance d arc. - ? Appelé aussi MAC (Maintaining Arc Consistency)
- AC est aussi appliqué avant la recherche
Variables instanciées
Variables non instanciées
Backtracking
Forward Cheking
Real Full Lokahead
78Comparaison sur les 4-Reines
Forward cheking
Backtraking
Real Full Lookahead
79M(AC)
- Chmeiss Saïs 2000
- Utilisation dynamique de PC ?
- Coût prohibitif !
- ? exploiter partiellement PC ? DPC
- M(AC) M(AC DPC)
- Propriété
- Idée déconnecter des variables du CSP
(propriété)
80M(AC) un exemple
graphe de largeur 2
arbre
81M(AC) schéma général
- M(AC) schéma général
- 1. Maintenir larc consistance
- 2. Déconnecter singletons variable (str. arbre)
- 3. Maintenir la chemin consistance directionnelle
- 4. Déconnecter doubletons variables (str. Graphe
lg. 2) - 5. Choix dun couple (variable, valeur)
- 6. Aller à 1.
82Efficacité expérimentale
BT FC RFL MAC
- Compromis à établir entre filtrage et recherche
- un filtre puissant entraine
- diminution en taille de l espace de recherche
- mais aussi ralentissement de recherche
noeuds
tests
83Retour arrière intelligent
- Backjumping basé sur la structure Dechter 90
- En cas d échec sur une variable Xk, retour sur
la variable voisine de Xk la plus récemment
instanciée.
En cas d échecs sur X6
X1
X2
Puis ici
Revenir d abord ici
X3
X4
X5
X6
84Constraint recording Dechter 90 Bruynooghe 84
- En cas d échecs, l instanciation courante
constitue un ensemble de valeurs incompatibles
(une contrainte mais il est possible que des sous
instanciation soient également incompatibles) - ? enregistrer les incompatibilités sous forme de
contraintes (nogoods) - limitation nécessaire car problème fortement
combinatoire - limiter la taille des nogoods
- ceci revient à obtenir la consistance partielle
pendant la recherche et quand c est nécessaire - similaire à dependency directed backtracking
(voir partie SAT)
85Constraint recording
X1
X
Y
a b c
X2
a b c
- Soit l instanciation X1 b, X2 b, X3 a,
X4 b , X5 ? - Ensemble conflit
- S1 X1b, X2 b, X3a, X4 b
- après simplification
- S2 X3a, X4 b car X1 et X2 ne sont pas
connectés à X5 - ? suppression d un tuple de la contrainte (X3,
X4) - un ensemble de conflit minimal S3 X4b
- On peut être amené à modifier la structure du
graphe de contraintes
X3
a b
Les valeurs de x sont inférieurs à celles de Y
dans l ordre lexicographique strict
X4
X5
a b
a b
86Autres algorithmes
- Backjump Nadel 89
- Dependency directed backtraking Stallman 77
- Backmark Gaching 79
- etc.
87Des questions
- Étude d algorithmes hybrides (filtre de
puissance variable au cours de la recherche) - problème d adaptation le filtre optimale
n est pas le même suivant le problème testé - plus généralement
- choix d heuristique et d algorithme devrait
s adapter à l instance traitée
88Classes polynomiales et méthodes de décompositions
- CSP binaires
- CSP généraux
89Conditions liées à la structure
- Largeur d un graphe de contraintes
- graphe ordonnée ordre sur les sommets
- largeur d un sommet nombre de prédécesseurs
- largeur d un ordre largeur max des sommets
- largeur d un graphe largeur min des ordres
X5
X4
Graphe de largeur 2
Un ordre de largeur 2
90Conditions liées à la structure
- Théorème Freuder 82
- Si le graphe de contraintes est de largeur k et
le CSP est fortement (k1)-consistant alors le
CSP est consistant et il existe un ordre
d instanciation glouton - Corollaire
- Si le graphe de contraintes est sans cycle et le
CSP vérifie la consistance d arc alors le CSP
est consistant et il existe un ordre
d instanciation glouton - Méthode
- filtrage par consistance d arc
- instanciation des variables selon un ordre de
largeur 1
91CSP structurés en k-arbre
- Un graphe G est un k-arbre si
- G est le graphe complet à k sommets, ou
- G a un sommet x de degré k dont le voisinage est
un graphe complet, et le graphe obtenu en
enlevant x et les arêtes qui lui sont incidentes
est un k-arbre - Théorème un CSP structuré en k-arbre peut être
résolu en O(n.dk1)
Un 2-arbre
92Cas polynomiaux CSP généraux
- Hypergraphes acycliques Beeri al 82
- la 2-section de l hypergraphe est triangulée et
l hypergraphe est conforme (cliques max de la
2-section arêtes de l hypergraphe) - Algorithme de Graham 79
- on peut supprimer tous les sommets de
l hypergraphe en appliquant les 2 opérations - supprimer les sommets appartenant à une seule
arête - supprimer les arêtes incluses dans une autre
arête - Existence d un arbre de jointure
c1
X2
X3
c2
c1
X2, X4
X3
X1
c2
X1
X2
X5
X4
X5
X4
c3
c3
X4, X5
X6
X6
Hypergraphe acyclique
2-section
Arbre de jointure
93Théorème de Freuder généralisé
- Théorème
- si l hypergraphe de contraintes est acyclique
et le CSP est inter-consistant alors le CSP est
consistant et il existe un ordre d instanciation
glouton - Méthode
- filtrage par inter-consistance
- instanciation selon un arbre de jointure
94Méthodes de décomposition
- Basées sur la structure du (hyper)graphe de
contraintes - Idée se ramener à un (hyper)graphe acyclique
- 3 méthodes
- la méthode de l ensemble coupe-cycle
- la méthode du regroupement en arbre
- la méthode du regroupement cyclique
95Methode de l ensemble coupe-cycle Dechter
Pearl 87
- Ensemble coupe-cycle ensemble de sommets d un
graphe dont la suppression rend le sous-graphe
induit acyclique - Principe l instanciation d une variable
correspond à sa suppression dans le sous-problème
résultant - ? si les variables du coupe-cycle sont
instanciées, le sous-problème - résultant est acyclique
- Méthode
- déterminer un ensemble coupe-cycle E ? X
- trouver une instanciation consistante des
variables de E - filtrer par consistance d arc le sous-problème
induit par cette instanciation - si le CSP obtenu est non vide, appliquer la
méthode de résolution relative aux arbres - complexité exponentielle en E
- Problèmes
- calcul d un E de taille minimale est
NP-difficile - taille du coupe-cycle peut être grande
96Regroupement en arbre Dechter Pearl89
- Principe recouvrement d un graphe de
contraintes par les arêtes d un hypergraphe
acyclique - création d un CSP n-aire acyclique équivalent
- Méthode
- triangulation du graphe de contraintes
- recherche des cliques maximales sur le graphe
triangulé - génération de l hypergraphe associé aux cliques
- obtention d un CSP n-aire en définissant des
contraintes à partir des arêtes de l hypergraphe
par la résolution des cliques (sous problèmes) - résolution du CSP n-aire acyclique (polynomial)
- Complexité O(n A dA ) si A est la plus
grande arête - Problèmes
- minimiser la taille de A est NP-difficile,
- la taille de A peut être grande
97Regroupement en arbre
98Regroupement cyclique
- Constations
- ensemble coupe-cycle inefficace face aux cliques
- regroupement en arbre modifie la structure du
problème - méthode mixte
- ensemble coupe-cycle et regroupement en arbre
- s adapter à la structure du problème sans la
modifier - méthode pour un graphe de contrainte G (X,C)
- recherche d un sous graphe G (X , C )
triangulé maximal - recherche et résolution des cliques max de G
- obtention d un CSP n-aire en prenant comme
contraintes les cliques max de G et les
contraintes C-C - résolution du CSP n-aire par la méthode de
l ensemble coupe-cycle avec X-X
99Regroupement cyclique
100Extensions
- CSP standard
- ne suppose aucune propriété sur les domaines et
les contraintes - ensemble complet et rigide de contraintes données
a-priori - ? deux types d extensions
101Extensions
- Tenir compte des propriétés des domaines et des
contraintes - dépend des applications - ? autres méthodes de propagation
- ? rendre plus efficaces les algorithmes
existants - exemples
- contraintes sur des intervalles Davis 87
- Contraintes sur des domaines continues (CSP
continus) - Contraintes hiérarchique (e.g. préférences i.e.
contraintes forte faible) - contraintes dinégalité
- contraintes fonctionnelles David 92
-
- Lever les obligations de satisfaire toutes les
contraintes ou de connaître a-priori toutes les
contraintes - ? souvent changement d énoncé
- Max-CSPVerfaillie Scheix, Partial CSP,
Freuder Wallace,optimisation - CSP probabiliste Rosenfeld 76, CSP floue
Fargier al 92 Schiex 92... - CSP dynamiquesBessière 91 Prosser 92 ...
102CSP flou Fuzzy CSP (FCSP)
- A CSP flou (FCSP) est définit par
- un ensemble de variables Xx1,...,xn,
- un ensemble de domaines DD1, , Dn, fini et
discret - un ensemble de contraintes chaque contrainte c
est définit par une fonction floue fl (c, A),
qui associe un réel entre 0 et 1 pour chaque
tuple de valeurs compatible. - La fonction floue fl associe un niveau de
préférence entre 0 et 1 aux tuples de valeurs 0
représente le tuple le moins préféré et 1 le
tuple le plus préféré. - Une solution pour un FCSP est une affectation de
valeurs aux variables, maximisant l expression
minfl(c,A) c une contrainte du FCSP pour
toute les affectations A possible.
103CSP probabiliste Prob CSP
- Un CSP probabiliste (Prob-CSP) est définit par
- un ensemble de variables Xx1,...,xn,
- un ensemble de domaines DD1, , Dn fini
discret - un ensemble de contraintes, chaque contrainte c
admet une probabilité p(c) de faire partie du
CSP. - P(c) signifie que la contrainte apparaît dans le
CSP probabiliste avec une probabilité P. - remarque la probabilité d une contrainte est
indépendante des autres contraintes. - Une solution pour un Prob-CSP est une affectation
de valeurs aux variables de manière - À maximiser la sommeproduitp(c)) c une
contrainte de S S est un sous ensemble de
l ensemble de contraintes satisfaite par A pour
toutes les affectations A possible. -
104Weighted CSP (WCSP)
- Un WCSP est définit par
- un ensemble de variables Xx1,...,xn,
- un ensemble de domaines DD1, , Dn fini
discret - un ensemble de contraintes, chaque contrainte c
est définit par une fonction coût(c,A), affectant
un réel positif pour chaque tuple de valeurs. - Une solution du WCSP une affectation de valeurs
aux variables maximisant la sommew(c,A) c est
une contrainte du FCSP pour toutes les
affectations possible A.
105Max CSP
- Un Max CSP est un CSP classique pour lequel on
cherche une affectation satisfaisant le maximum
de contraintes. - Algorithme utilisée
- incomplets recherche local
- complets branch bound
106Autres techniques de simplifications
- Substituabilité de Voisinage Freuder 91
- Définition soient P (X,C,D) une CSP, et a, b
? Dxi , a est dite voisinage substituable à b ssi
pour tout Xj tq. (Xi,Xj) ? C, l ensemble des
valeurs de Dxj compatible avec b sont aussi
compatible avec a. - Théorème soient P (X,C,D) une CSP, et a, b ?
Dxi , a est dite voisinage substituable à b,
alors le CSP P obtenu en supprimant b de Dxi est
consistant ssi P est consistant - Peut-on étendre la voisinage substituabilité ?
-
107(No Transcript)
108Conditions liées aux domaines
- Conditions liées aux domaines Dechter 89
- Théorème
- Si la taille maximum des domaines est k et si le
CSP est fortement (k1) consistant alors le CSP
est consistant et il existe un ordre
dinstanciation glouton - Corollaire Algorithme polynomiale si la taille
des domaines est 2