Soccsp
Soccsp
Soccsp
Contraintes
(CSP)
X2
X3
C1
C2
X4
X1
C3
X1
b
a
a
R1
X2
a
a
b
X3
a
b
a
X2
a
b
b
R2
X3
b
a
a
X4
a
a
b
X1
a
b
b
R3
X4
a
a
b
Ck
En intension : Y = X 2 , X Y
En extension (par table) : Rk
DX
x1
x2
x3
Par graphes :
Dx
x1
x2
x3
Rk
DY
y1
y1
y2
y1
Dy
y1
y2
y3
x1
x2
x3
1
0
y2
0
0
1
y3
0
0
0
Exemple
X1
D(X1) =
{FRITES,
COUSCOUS,
RIZ, SALADE}
L12 = L21
F
X2 R C L
I
X2
T
X3 M O U L E S
D(X2) =
S
L15 = L35
X3
D(X3) =
{MOULES,
SARDINES,
CREVETTES,
VIANDE,
MAYONNAISE,
VINAIGRE}
Q
Q
Q
Q
Q
Q
1
X1
X2
X3
X4
Q
Q
Domaines: Di {1,2,3,4}.
Contraintes: Il y a ( 4 ) = 6 contraintes: i j , Xi Xj j i
2
Graphe de contraintes :
R12 {(1,3)(1,4)(2,4)(3,1)(4,1)(4,2)}
X1
R13 {(1,2)(1,4)(2,1)(2,3)(3,2)(3,4)(4,1)(4,3)}
X3
R14 {(1,2)(1,3)(2,1)(2,3)(2,4)(3,1)(3,2)(3,4)(4,2)(4,3)}
R23 {(1,3)(1,4)(2,4)(3,1)(4,1)(4,2)}
X2
X4
R24 {(1,2)(1,4)(2,1)(2,3)(3,2)(3,4)(4,1)(4,3)}
R34 {(1,3)(1,4)(2,4)(3,1)(4,1)(4,2)}
Exemple 2: Coloriage de
graphes
Colorier une carte gographique tq. Deux rgions (pays)
adjacents soient de diffrentes couleurs
(R,V,B)
X1
X2
(R,V,B)
X3
(R,V,B)
Exemple 3 :Conception
Les contraintes sur les parties du vhicule
par-chocs
blanc (white)
toit ouvrant
rouge (red)
enjoliveurs
capot et portires
carrosserie
Exemple 3 :Conception
portires
pare-chocs
(w,p)
(w,r)
(w,b)
(p,p)
(r,r)
(b,b)
toit ouvrant
(r,b)
enjoliveurs
p, r
(p,p)
(r,r)
(b,b)
w, p, r, b
carrosserie
(p,r)
(p,b)
(r,b)
plus clair que
de la mme couleur
p, r, b
(p,p)
(r,r)
(b,b)
p, r, b
capot
+
Une arte extrieure, lobjet est sur les deux cots :
artes intrieures convexes
L
Y
+
+
+
T
+
Flche
+
-
+
+ +
+
+ +
+
+
+
CSP
Enoncs 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
X+Y=Z
Dx = {1,2};
Dy={3,4},
Dz={5,6}
Z= arg3(U)
U= {(X,Y,Z) & X+Y=Z}
X= arg1(U)
{1,2}
Y= arg2(U)
X<Y
{3,4}
Arg1(U)= arg1(V)
V= {(X,Y) & X<Y}
Arg2(U)= arg2(V)
Mthode standard de
rsolution : le backtrack
A chaque tape, linstanciation partielle courante est tendue en
instanciant un nouvelle variable par une valeur compatible avec
linstanciation courante :
X1
X2
Xk-1
Xk
d1
d2
dk-1
dk D k
X2
Xk-1
d1
d2
dk-1 Dk-1
Filtrages et prtraitements
Consistance (ou cohrence)
proprit lie la compatibilit entre valeurs de domaines et contraintes
Filtrage
limination dlments dont on est assur quils ne peuvent figurer
dans une solution (valeurs ou n-uplets de relations)
P = (X,D,C) P= (X, D, C)
1 2
C13
1
x2
C23
Arc Consistant
Inconsistant
x3
Lalgorithme AC1
Quels sont les dfaut de AC-1?
a
b
c
d
a
b
c
d
a
b
c
d
X1
X2
X3
Observation :
il nest pas ncessaire dexaminer les valeurs a, b et c de X3 (elles
admettent un autre support autre que a dans X2)
Sj...
a1
a2
a3
b1
b2
b3
<i,a1>,<i,a2>
<i,a1>
<i,a2>, <i,a3>
Dcrmenter les compteurs de ses valeurs (i.e. elles ont perdues un support)
(compteur[(i,j),a2] et compteur[(i,j),a3] )
Sj...
a1
a2
a3
b1
b2
b3
<i,a1>,<i,a2>
<i,a1>
maintient un seul support pour une valeur, le prochain support est calcul
au moment de la suppression de ce support
Algorithme DAC
1. Les arcs sont considrs dans une seule direction
2. Les variables sont ordonnes
pas de cycle dans le graphe !
procedure DAC(G)
pour j = |noeuds(G)| 1 faire
pour chaque arc (i,j) dans G tq. i<j faire
Rviser((i,j))
fin pour
fin pour
fin
XZ
{1,2}
{1,2}
Y<Z
Y {1}
XZ
{1,2}
{2}
Y<Z
Y {1}
Preuve :
chaque valeur admet un support dans les nuds fils (1.)
chaque valeur admet un support dans le nud parent (2. ),
on obtient un CSP AC
Exemple :
Le CSP est arc consistent
mais n admet aucune solution
XZ
{1,2}
{1,2}
XY
YZ
Y {1,2}
Si tout les domaines ont t rduit une seul valeur (singleton) alors on obtient une solution du
CSP
1 2
C13
Chemin
CheminInconsistant
Consistant
2
1
x2
C23
x3
DPC pour (x1, x2, x3), pas pour (x3, x2, x1)
x2
x3
Relation entre PC et AC
Est-ce que PC subsume AC ?
i.e. si un CSP est PC, est-il aussi AC?
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 = {XZ, X Y, Y Z}
Contraintes : reprsentation
matricielle
Pour supprimer des couples de valeurs
les contraintes doivent tre reprsent en extension
contraintes binaires = matrice de 0 et 1
0 - les valeurs sont incompatibles
1 - les valeurs sont compatibles
Algorithme PC1
procdure Rviser( (x, y), z) )
Algorithmes PC
Complexit en espace
V={B,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
K-consistance
Y a t il un formulation commune AC et PC?
on peut continuer
CSP 4-consistant
K-consistance forte
3-consistant mais pas 2-consistant
Dfinition : un CSP P est fortement k-consistant ssi P est j-consistant pour tout
jk.
AC = 2-consistance forte
PC = 3-consistance forte
NC
AC
PC
12
<
12
12
12
=
12
12
4-consistance
12
12
12
12
Techniques de consistance:
modifications apportes au CSP
AC
PC
4-(forte)consistance
Contrainte ternaire
pour viter un retour arrire, une variable non instanci doit tre
compatible avec les variables instancis.
Largeur du graphe 1
Ide de preuve :
Au plus w
Dautres 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.
Dfinition:
un CSP est (i,j)-consistent ssi toute instanciation consistante de i variables peut tre
tendue j nouvelles variables.
Remarque :
la consistance darc
Intrt :
a b X2
C1
R1
X2
a
a
b
X3
a
b
a
X3 a b d
abc
C2
X1
X4
C3
C2= < S2 , R2>
X2
a
b
b
R2
X3
b
a
a
X4
a
a
b
R3
X4
a
a
b
ab
a b X2
C1
R1
X2
a
a
b
X3
a
b
a
X3 a b d
abc
C2
X1
X4
C3
C2= < S2 , R2>
X2
a
b
b
R2
X3
b
a
a
X4
a
a
b
R3
X4
a
a
b
ab
Filtrages : sommaire
Diminution de lespace de recherche
Cot raisonnable pour les consistances faibles (k3)
Le filtrage par k-consistance (k>=3) peut entraner une modification de la
structure du CSP
Efficacit pratique :
Bonne dans certains cas :
Rsolution de CSP
Algorithme de base : Backtrack
Amliorer le Backtrack :
avant la recherche
filtrages (consistance darc, 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 rtrospectives (look-back) : revenir la cause dchec
Critres dvaluation :
ab
ab
X3
X4
la taille de lespace de recherche
dpend de lordre
dinstanciation choisi
X1
ab
ab
X2
Heuristiques dordonnancement
Principe du First-fail
Ordres :
vertical : choix des variables
horizontal : choix de valeurs
ordre de test des contraintes
statique : prtabli
dynamique : volue pendant la recherche
Heuristiques classiques :
choix de valeurs
Heuristiques dordonnancement
Choix de lordre des variables - un exemple [Nadel]
C23: X2 X3
s23 = 5/6
X2
12
123
X3
C34: X3 = X4+2
s34 = 1/12
C24: X2 x X4 >1
1234
s24 = 7/8
C12:
X2
sij est
le X1
taux
de satisfiabilit
1 X1de la contrainte Cij :
s12 = 1
X4
Exemple : suite
H1 29 noeuds
H1
X1
X2
X3
X4
1234
1234 1234
1234 1234
H2 32 noeuds
H2
X2
X4
X3
X1
1
1
123
123
1 2 3 1 2 31 2 3
1
123 123
Exemple : suite
H3 19 noeuds
H3
X4
X3
X2
X1
123 123
123
123
1 2
1
Objectif :
0 xi
1
2
xj
( xi )
j
H ( xi )
W ( xi )
( xi )
W ( Rij ) ( xi ) ( x j )
1
H ( xi )
( ( xi )
( xi )
x j ( xi )
(x j )
( xi )
H 0 ( xi ) ( xi )
1
H k ( xi )
( ( xi )
( xi )
( xi )
Instanciation de
( xi ) D ( xi )
dom
0
( xi )
( xi )
: H dom / deg
( xi )
( xi )
D ( xi )
D ( xi )
xj
( xi ) D ( xi )
H 1dom ( xi )
H
k 1 ( x j )
( x )
x j ( xi )
D( x j )
( xi )
, dom / deg
H
1
paramtrable
X2
X4
X3
X1
X2 x X4 >1
X2 X3
X3 = X4+2
2
3
123 123
1 2 3 1 2 31 2 3
X1 X2
123 123
X3 = X4+2
X2 X3
31 tests
On filtre : des valeurs devenues impossibles sont limines des domaines Di pour
i>k
Xk-1
.
.
Xk
Variables dj instancies
FC : schma dalgorithme
Procdure Forward-cheking (D, , k)
{D = (D1, , Dn), = (d1,,dk) }
si k = n alors est solution
sinon
pour tout Xi, i>k, 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 >k, Di alors
pour tout dk+1 de Dk+1 faire
:= (d1,,dk,dk+1)
forward-Checking(D, k+1)
fpour
fsi
fsi
Variables instancies
Backtracking
Forward Cheking
Forward cheking
Backtraking
M(AC+)
[Chmeiss & Sas 2000]
Utilisation dynamique de PC ?
Cot prohibitif !
Proprit :
Soit P ( X , D, C ) un CSP,
x i X ( xi ) 2 , Cij , Cik C , si ( x j , xk , xi ) vrifie DPC
alors P est consistant ssi,
P' (X / xi , D/Di , C/ Cij ,Cik , R/ Rij ,Rik ) est consistant
M(AC+) : un exemple
graphe de
largeur 2
arbre
Efficacit exprimentale
BT
FC
RFL
MAC
#noeuds
#tests
Compromis tablir entre filtrage et recherche
Puis ici
Revenir d abord ici
Constraint recording
[Dechter 90]
[Bruynooghe 84]
En cas dchecs, linstanciation courante constitue un ensemble
de valeurs incompatibles (une contrainte mais il est possible que
des sous instanciation soient galement incompatibles)
enregistrer les incompatibilits sous forme de contraintes
(nogoods)
Constraint recording
X1
abc
X3
ab
X4
ab
abc
ab
X2
X5
strict
Soit linstanciation : X1 = b, X2 = b, X3 = a, X4lexicographique
= b , X5 ?
Ensemble conflit :
S1 = { X1=b, X2 = b, X3=a, X4 =b}
aprs simplification :
S2 = {X3=a, X4 =b} car X1 et X2 ne sont pas connects X5
suppression dun tuple de la contrainte (X3, X4)
Autres algorithmes
Backjump [Nadel 89]
Dependency directed backtraking [Stallman 77]
Backmark [Gaching 79]
etc.
Des questions
tude dalgorithmes hybrides (filtre de puissance
variable au cours de la recherche)
plus gnralement :
choix dheuristique et dalgorithme devrait sadapter
linstance traite
Classes polynomiales et
mthodes de dcompositions
CSP binaires
CSP gnraux
X5
X3
X2
X5
X2
X4
X1
Graphe de largeur 2
Un ordre de largeur 2
Corollaire
Si le graphe de contraintes est sans cycle et le CSP vrifie la
consistance darc alors le CSP est consistant et il existe un
ordre dinstanciation glouton
Mthode
Un 2-arbre
c1
X1
X2
X4
X3
c2
X5
X2
X3
X1
c2
Hypergraphe acyclique
X2, X4
X5
X4
c3
c3
X6
c1
X4, X5
X6
2-section
Arbre de jointure
Mthode :
Mthodes de dcomposition
Bases sur la structure du (hyper)graphe de contraintes
Ide : se ramener un (hyper)graphe acyclique
3 mthodes :
Mthode :
dterminer un ensemble coupe-cycle E X
trouver une instanciation consistante des variables de E
filtrer par consistance darc le sous-problme induit par cette instanciation
si le CSP obtenu est non vide, appliquer la mthode de rsolution relative aux
arbres
complexit : exponentielle en E
Problmes :
Mthode :
Regroupement en arbre
Regroupement cyclique
Constations :
mthode mixte:
obtention dun CSP n-aire en prenant comme contraintes les cliques max
de G et les contraintes C-C
Regroupement cyclique
Extensions
CSP standard :
Extensions
Tenir compte des proprits des domaines et des contraintes - dpend des applications
:
autres mthodes de propagation
rendre plus efficaces les algorithmes existants
exemples :
Lever les obligations de satisfaire toutes les contraintes ou de connatre apriori toutes les contraintes
souvent changement dnonc
Max-CSP[Verfaillie
probabilit P.
remarque : la probabilit dune contrainte est indpendante des autres
contraintes.
Max CSP
Un Max CSP est un CSP classique pour lequel on
cherche une affectation satisfaisant le maximum de
contraintes.
Algorithme utilise :
Autres techniques de
simplifications
Substituabilit de Voisinage :[Freuder 91]
Dfinition : 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, lensemble
des valeurs de Dxj compatible avec b sont aussi compatible avec a.
a b
Thorme : 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
Thorme :
Si la taille maximum des domaines est k et si le CSP est
fortement (k+1) consistant alors le CSP est consistant et il
existe un ordre dinstanciation glouton