L’objectif de ce memoire est d’etudier les niveaux deconsistance forte existante pour les contraintes binaires et les contraintes non-binaires.Des algorithmes de propagation pour les di
Trang 1Memoire de stage de Master 2
Au-dela de la consistance de domaine
Superviseurs :
Auteur :
Yves Deville
KHONG Minh Thanh
Jean Baptiste Mairy
Memoire pour l’obtention du Master 2
Janvier 2015
Trang 2Je tiens a remercier en tout premier lieu mes deux superviseurs Yves Deville et JeanBaptiste Mairy qui ont dirige ce travail de recherche de Master Je les remercie pourtout ce qu’ils m’ont apporte, pour leurs conseils, leur presence, leur patience, pourm’avoir fait con ance et m’avoir laisse la libert necessaire a l’accomplissement demes travaux, tout en y gardant un oeil critique et avise.
Je remercie egalement Christophe Lecoutre, Centre de Recherche en Informatique, versit d’Artois, l’auteur du solveur Abscon pour m’avoir aide a etudier l’architecture de cesolveur et m’avoir donne des conseils Je suis egalement reconnaissance envers lesbeCools Ils m’ont aide et partage les experiences de travails
Uni-Finalement, un grand merci au mes parents pour leur gentillesse et leur soutienincon-ditionnel et constant, pour m’avoir donne du courage et de l’espoir
i
Trang 3Solving a problem in constraint programming is based on propagation and search.Propa-gation aims at removing impossible values in the domain of the variables, byexamining their consistency with constraints In recent years, several notions ofconsistency stron-ger than domain consistency have been proposed The objective ofthis master thesis is to study existing stronger consistency levels for both binaryconstraints and non-binary constraints.
Algorithms of propagation for di erent consistencies associated with non-binary
constraint have been studied and implemented in the AbsCon solver More particularly,
we imple-mented algorithms for MaxRPWC, rPIC and RPWC Experimental results show that in some classes of problems these consistencies are e cient since they can prune more than domain consistency
ii
Trang 4La resolution d’un probleme en programmation par contrainte est basee sur la gation et la recherche La propagation vise a enlever les valeurs impossibles dans ledomaines des variables, par l’examen de leur coherence avec la contrainte Cesdernieres annees, plusieurs notions de consistance plus forte que la consistance dedomaine ont et proposees L’objectif de ce memoire est d’etudier les niveaux deconsistance forte existante pour les contraintes binaires et les contraintes non-binaires.Des algorithmes de propagation pour les di erentes consistances fortes associes a
propa-contrainte non binaire ont et etudies et mis en uvre dans le solveur AbsCon Plus
particulierement, nous avons implement des algorithmes pour MaxRPWC, rPIC et RPWC Les resultats experimentaux montrent que ces consistances sont e caces dans certaines classes de problemes car elles peuvent elaguer plus que la consistance de domaine
iii
Trang 5Abstract
Resum
Table des matieres
Table des gures
Liste des tableaux
2.4 Les consistance plus faibles que DC
2.4.12.4.2
3 Consistances plus fortes que DC
3.1 Consistances plus fortes que DC pour contraintes binaires
3.1.13.1.23.1.33.1.43.2 Consistances plus fortes que DC pour contraintes non binaires
3.2.13.2.23.2.33.2.43.2.53.2.63.2.73.2.8
iv
Trang 63.2.9 3.2.10
4 Algorithmes de ltrage pour contraintes non binaires
4.1 Algorithme generique
4.2 Max-RPWC-1
4.3 rPIC-1
4.4 RPWC-1
4.5 Max-RPWC-2
4.6 Max-RPWC-3
4.7 Resum
5 Achitecture d’AbsCon 5.1 Les paquets dans AbsCon
5.2 Representation d’un CSP
5.3 Resolution d’un CSP
5.4 La propagation dans AbsCon
5.5 DC 33
5.6 SAC
5.7 PWC+GAC
6 Implementation et experimentation 6.1 Implementation
6.2 Experimentation
7 Conclusion
Bibliographie
Trang 72.1 La resolution d’un CSP : propagation + recherche .
3.1 Un exemple de CSP sur lequel RPC enleve plus de valeurs que DC : (x n’est pas RPC tandis que ce CSP est DC
3.2 Un exemple de CSP sur lequel PIC enleve plus de valeurs que RPC : (xi; 1) n’est pas PIC tandis que ce CSP est RPC
3.3 Un exemple de CSP sur lequel Max-RPC enleve plus de valeurs que PIC : (xi; 1) n’est pas Max-RPC tandis que ce CSP est PIC
3.4 Un exemple de CSP sur lequel NIC enleve plus de valeurs que Max-RPC : (xi; 1) n’est pas NIC tandis que ce CSP est Max-RPC
3.5 Un exemple de CSP sur lequel SAC enleve plus de valeur que Max-RPC : (xi; 2) n’est pas SAC tandis que ce CSP est Max-RPC
3.6 Resum de la comparaison entre les consistances
3.7 MaxRPWC vs rPIC
3.8 PWC+GAC vs Max-RPWC
3.9 Resum de la comparaison entre les consistances basees sur le domaine pour les contraintes non binaires
4.1 Applique Max-RPWC-1 et Max-RPWC-2 sur un CSP non-binaire 5.1 AbsCon : Representation d’un CSP [1]
5.2 AbsCon : Resolution d’un CSP [1]
vi
Trang 84.1 Resum des algorithmes avec leur complexit de temps et d’espace 6.1 Resultat experimental sur les instances du probleme modi ed renault 6.2 Resultat experimental sur les instances du probleme random-fcd
vii
Trang 9La programmation par contraintes est un paradigme puissant pour resoudre desproblemes combinatoires qui s’appuient sur un large eventail de techniques del’intelligence arti - cielle et de la recherche operationnelle La programmation parcontraintes est actuelle-ment appliquee avec succes a de nombreux domaines, tels que laplani cation, le routage de vehicule, la con guration, les reseaux, et la bio-informatique [2
L’idee de base en programmation par contraintes est que l’utilisateur indique les contraintes,
le probleme et un solveur de contrainte qui est utilise pour les resoudre La contrainte est une relations entre les variables, un probleme de satisfaction de contraintes (un CSP) speci
e quelles relations doivent tenir entre les variable de decision donnees Par exemple, dans
la plani cation des activites d’une entreprise, les variables de decision peuvent ^etre les heures de debut et les contraintes peuvent ^etre sur la disponibilite des ressources et sur leur utilisation pour un nombre limite d’activites a un moment
Un solveur de contrainte prend un probleme, ce probleme est represent en terme devariables de decision et de contraintes et s’emploie a trouver une assignation atoutes les variables tout en satisfaisant les contraintes Le solveur de contraintescherche la solution dans l’espace de recherche soit systematiquement, comme avecretour en arriere (backtracking) L’espace de recherche est un arbre car les valeurs dierentes peuvent ^etre choisies pour les di erentes variables La taille de l’arbre derecherche est exponen-tielle Il est donc necessaire de reduire la taille de l’arbre derecherche et de detecter les inconsistances (ou l’echec) des solutions partielles desque possible Cette methode est appelee propagation
Le framework de programmation par contraintes combine la propagation et la recherche.L’objectif de la propagation est de reduire la taille de l’espace de recherche sans enlever
la solution du probleme La propagation detecte egalement les echecs, et termine les
1
Trang 10branches de l’arbre de recherche, economise l’exploration inutile de l’espace de recherche Dierents niveaux d’elagage peuvent ^etre atteints Ceux-ci sont generalement de nies par unepropriet de consistance satisfaite par le CSP apres la propagation.
La consistance de domaine est la consistance standard atteinte par un algorithme depro-pagation Les contraintes sont considerees individuellement, une contrainte estdomaine consistant si toutes les valeurs de chacune de ses variables participent a unesolution de cette contrainte Les valeur qui ne satisfont pas cette propriet sont enlevees.Quand un algorithme de propagation pour la consistance de domaine est applique, leCSP resultant est plus facile a resoudre Cependant, atteindre la consistance de domaine
a un co^ut Les consistances plus faibles ont et de nies tels que forward checking oubound consistency Elles enlevent moins de valeur mais l’etape de propagation est plusrapide Les consis-tances plus fortes ont egalement et de nies Bien qu’elles soit plusco^uteuses a atteindre, leur puissance d’elagage est particulierement adaptee pour desproblemes combinatoires complexes tels que ceux gurant dans la vie reelle
Dans ce memoire, pour la partie theorique, nous etudions les di erents niveaux deconsis-tance plus forte qui reduisent le domaine des variables pour les contraintesbinaire et les contraintes non-binaires Pour les contraintes binaires, nous abordonsles di erentes consistances tels que : Restricted Path Consistency (RPC), PathInverse Consistency (PIC), Max Restricted Path consistency (MaxRPC),Neighborhood Inverse Consistency (NIC), Singleton Arc Consistency (SAC) Cesconsistances seront etendues pour les contraintes non-binaires PIC a et etendu arPIC, RPC a RPWC, et MaxRPC a MaxRPWC Dans [3], NIC est etendu a rNIC.Pour la partie pratique, les algorithmes de propagation pour les di erentesconsistances associees avec les contraintes non-binaires ont et etudies et implementdans le solveur AbsCon Plus particulierement, nous avons implement lesalgorithmes pour MaxRPWC, rPIC, et RPWC Les resultats experimentaux montrentque ces consistances sont e - caces dans certaines classes de problemes car ellespeuvent elaguer plus que la consistance de domaine
Le reste de la these est structure comme suit Le chapitre 2 presente le contexte etles de nitions necessaires Dans le chapitre 3, nous etudions les di erentesconsistances pour les contraintes binaires et non-binaires Dans le chapitre 4, lesalgorithmes pour atteindre les consistances plus fortes pour les contraintes non-binaires seront presentes Dans le chapitre 5, nous presentons la structure dusolveur AbsCon et l’implementation de ces algorithmes Le chapitre 6 donne desresultats experimentaux En n, nous donnons la conclusion et le travail futur
Trang 11Notions de base
Dans ce chapitre, nous presentons les connaissances de base de la programmation parcontrainte : la formulation d’un CSP, comment resoudre un CSP Quelque notions deconsistance de base sont aussi presentees : la consistance de domaine (DC) et les consis-tances plus faibles que DC tel que forward checking (FC) and bound consistency (BC)
2.1 Preliminaires
Un probleme de satisfaction de contraintes vise a trouver la solution pour un reseau
de contraintes, concretement, l’assignation des valeurs aux variables doit satisfairetoutes les contraintes Une contrainte de nit une relation entre les variables, elle signi
e les combinaisons autorisees des valeurs d’un sous ensemble des variables
De nition 2.1 (CSP) Un probleme de satisfaction de contrainte (CSP) (X; D(X); C)est compose par :
{ un ensemble X = fx1; : : : ; xng de n variables,
{ un domaine D(X) = D(x1)D(xn) qui est le produit Cartesien des domaines des variables de X,
{ un ensemble de contraintes C = fc1; : : : ; ceg et vars(ci) 2 X(1 i e)
Un CSP est binaire ssi ses contraintes sont binaires Pour un CSP, on denote : n =
#X; e = #C; d = max1i n(#(D(x))) et k comme l’arite maximum des contraintes
De nition 2.2 (Contrainte) Une contrainte c(x1; ::; xk) est une relation de nie sur lesvariables x1; : : : ; xk La contrainte c est denot par (vars(c); rel(c)) ou vars(c) = fx1; : : : ;
xkg et rel(c) contient des combinaisons autorisees de valeur pour les variables dansvars(c) k est l’arite de cette contrainte Une contrainte avec k = 2 est une
contrainte binaire
3
Trang 12Une contrainte peut ^etre de nie extensionnellement en donnant une table pour rel(c)
ou intentionnellement par une formule ou une expression decrivant rel(c) Deuxcontraintes ci; cj sont intersectees ssi vars(ci) \ vars(cj) 6= ;
Exemple 2.1 La contrainte c(x1; x2; x3) = f(2; 2; 3); (2; 3; 2); (2; 3; 3); (3; 2; 2); (3; 2;3); (3; 3; 2)g est de nie extensionnellement, elle autorise des tuples qui n’ont que lesvaleurs 2 et 3 Dans ce cas, vars(c) = (x1; x2; x3) et (2; 2; 3) 2 rel(c)
La contrainte allDi erent(x1; x2; x3) (x1 6= x2) ^ (x2 6= x3) ^ (x3 6= x1) est de nieintentionnellement, elle autorise des tuples qui ont des valeurs di erentes pourchaque variable
De nition 2.3 (Tuple) Pour une contrainte c(x1; : : : ; xk) 2 C
{ Un tuple 2 rel(c) est une liste des valeurs en ordre (a1; : : : ; ak) est consider
comme une assignation des variables f(x1; a1); : : : ; (xk; ak)g
{ 2 rel(c) est valide ssi toutes les valeurs dans le tuple sont presentees dans le
domaine des variables correspondantes
{ Pour un sous ensemble vars0 of vars( ), [vars0] est un sous tuple de qui ne contient que l’assgination aux variables dans vars0
{ Pour deux tuples et 0 sur vars(c) = (x1; : : : ; xk), on peut faire une comparaison
lexicographique entre eux : <l0 ssi il existe une sous sequence (x1; : : : ; xj) de
vars(c) tel que [x1; : : : ; xj] = 0[x1; : : : ; xj] et [xj+1] <l0[xj+1]
De nition 2.4 (Assignation et solution) Etant donne un CSP (X; D(X); C),
{ Une assignation s sur vars(s) = fx1; : : : ; xkg X est presentee par f(x1; a1); : : : ; (xk; ak)g
ou xi = ai et ai 2 D(xi)(1 i k)
{ Une solution partielle est une assignation s telle que 8c 2 C; vars(c) = fx1; : : : ; xkg vars(s), c(a1; : : : ; ak) est satisfaite Une solution partielle est aussi appelee une assi-gnation localement consistante
{ Une solution est une solution partielle s avec vars(s) = X L’ensemble de solutions est denot sol(X; D(X); C)
2.2 Resolution d’un CSP : Propagation et Recherche
Pour la resolution d’un CSP, on combine deux techniques : propagation et recherche Lapropagation enleve les valeurs impossibles dans la solution, et la recherche trouve la solution
A chaque iteration, l’algorithme de recherche choisit une variable et assigne une valeurappropriee a cette variable (branch) Ensuite, la propagation est utilisee pour reduire l’espace
de recherche Cette procedure continue jusqu’a une solution ou un echec Si cetteassignation ne rend pas une solution, on doit revenir en arriere (backtracking) et continuercette procedure en assignant une autre valeur a cette variable La resolution
Trang 13nit quand l’espace de recherche est totalement exploitee ou on trouve une solution(ou toutes les solutions).
Figure 2.1: La resolution d’un CSP : propagation + recherche
2.2.1 Propagation
Pour resoudre e cacement un CSP, nous utilisons la propagation La propagationenleve les valeurs impossibles du domaine de variables pour la solution Elle permetdonc de reduire l’espace de recherche sans enlever la solution La propagationdetecte egalement les echecs, et termine les branches de l’arbre de recherche,economise l’exploration inutile de l’espace de recherche
Exemple 2.2 Etant donne : D(x) = D(y) = f1; 2; 3; 4; 5g et c(x; y) = x y + 3
Un propagateur pour la contraint c(x; y) = x y + 2 peut enlever les valeurs 1, 2, 3 de xparce que x y + 2 4 Les valeurs 3, 4, 5 de y sont egalement enlevees parce que x y+ 3 ) y x 3 2 On obtient un CSP equivalent : D(x) = f4; 5g; D(y) = f1; 2g et c(x; y) = x
y + 3
Di erents niveaux d’elagage peuvent ^etre atteints Ceux-ci sont generalement de niespar une propriet de consistance satisfaite par le CSP apres la propagation Un algo-rithme pour atteindre cette propriet de consistance est utilise pendant la resolution Lesvaleurs qui ne satisfont pas cette propriet sont enlevees par cette algorithme Si unepropriet permet d’enlever plus de valeur, les algorithmes pour elle ont normalement unecomplexit temporelle plus grande Il faut trouver un compromis entre les deux
2.2.2 Recherche
Les problemes CSP a resoudre sont souvent NP-di cile, la propagation n’est donc pas assez pour ces problemes Quand la propagation atteint le but pour chaque n ud (il
Trang 14n’enleve plus de valeur dans le domaine de variables), la recherche trouve unevariable et assigne une valeur a cette variable pour continuer.
La recherche est de nie par un arbre de recherche et un algorithme pour exploiter cetarbre Le n ud racine represente le CSP original Les descendants d’un noeud donnesont obtenus en divisant le CSP, par exemple, la branche binaire : un noeudrepresente un CSP avec x = a et un autre represente un CSP avec x 6= a Un noeud
en echec est un noeud de l’arbre ou le CSP a un domaine vide Un noeud de solutionest un noeud de l’arbre ou tous les domaine de variables du CSP ont une uniquevaleur et les contraintes sont satisfaites
L’algorithme pour exploiter l’arbre de recherche utilise souvent depth rst searchstrategie parce que la complexit de cette strategie est lineaire avec le nombre devariable Le CP frammework donc fournit un support pour backtracking Quand lapropagation detecte un noeud en echec (en supprimant des valeurs du domaine devariable), on doit retourner en arriere au noeud precedant et continue exploiter l’arbre
de recherche L’exploitation est arr^etee quand on trouve la solution
Code 2.1: Resolution d’un CSP : propagation + recherche
Le code au dessus montre un algorithme pour resoudre un CSP (X; D(X); C) Cetalgorithme est recursif et il combine deux etapes : propagation et recherche Son entr est
un CSP, cet algorithme nous permet de savoir si ce CSP a une solution D’abord, si tousles domaines de variables contienne une seul valeur, on trouve une solution (ligne 2-3)
Si non, la propagation est appliquee pour enlever les valeurs impossibles Quand lapropagation detecte un domaine vide, la branche est terminee (ligne 5-6) Puis, on fait
Trang 15la recherche (ligne 8-10) Une variable est choisie et une valeur pour cette variableest egalement choisie (ligne 8-9) Le choix de variable et de valeur peut ^etre realispar une heuristique L’algorithme d’exploitation est une branche binaire : x = a ou x6= a (ligne 10).
2.3 Consistance de domaine (DC)
Dans la propagation, la consistance la plus utilisee est la consistance de domaine (DC)
Cette section presente quelques consistances telles que DC
De nition 2.5 Pour une contrainte c 2 C avec x 2 vars(c) Les ensembles de valeurinconsistante et valide pour x dans c par rapport a D(X) sont de nis comme suit :{ Inc(c; x) = f(x; a)ja 2 D(x) ^ 8v 2 D(vars(c))x=a : :c(v)g
{ V alid(c; x) = f(x; a)ja 2 D(x) ^ 8v 2 D(vars(c))x=a : c(v)g
Nous de nissons ensuite :
S
{ Inc(c) = x2vars(c) Inc(c; x)
et de m^eme pour l’autre ensemble
De nition 2.6 Domain consistency (DC) ou la consistance de domaine
{ Une contrainte c est domain consistency (DC) par rapport a D(X) ssi Inc(c) = ; et 8x
Exemple 2.3 Etant donne D(x) = D(y) = f1; 2; 3; 4; 5g et c(x; y) = x y 2
Alors, on obtient : Inc(c; x) = f(x; 4); (x; 5)g; Inc(c; y) = f(y; 1); (y; 2)g; V alid(c) = ;
Si D(x) = f1; 2; 3g et D(y) = f3; 4; 5g, la contrainte c est DC V alid(c) = f(x; 1); (y; 5)g
Pour obtenir DC, plusieurs algorithmes sont proposes Pour les contraintes binaires,
un des algorithmes le plus e cace est AC2001 avec une complexit temporelle deO(ed2) et une complexit d’espace en O(ed) Pour les contraintes non binaires, un desalgorithmes le plus e cace est GAC2001/3.1 avec une complexit temporelle deO(ek2dk) et une complexit d’espace en O(ekd) [4
Trang 16De nition 2.7 (Consistance de domaine global) Un CSP (X; D(X); C) est consistent
de domaine global ssi : 8xk 2 X; 8ak 2 D(xk); 9 une solution f(x1; a1); : : : ; (xn; an)g 2Sol(X; D(X); C) ou xk = ak
L’idee de consistance de domaine global est que chaque valeur de variable appartient a
au moins une solution Imposer la consistance de domaine global est un probleme NP-dicile Au lieu de considerer tous les contraintes, on considere quelques contraintes lo-calement et accomplit la consistance dans ce sous groupe de contraintes Naturellement,
on prend chaque contrainte separement, et on revise la consistance sur cette contrainte.Dans ce cas, la meilleure propriet de consistance est la consistance de domaine (DC)
2.4 Les consistance plus faibles que DC
Pour certains problemes, obtenir la consistance de domaine (DC) est co^uteux, onpeut considerer la consistance plus faible que DC La puissance d’elagage de cetteconsistance est moins forte que celle de DC, par contre, on peut atteindre ecacement cette consis-tance Dans cette section, nous presentons deuxconsistances : forward checking et bound consistency
Une consistance C est plus forte que l’autre consistance C0 (ou C0 est plus faible que C)ssi un CSP est C ) il est aussi C0 Par consequence, si C est plus forte que C0, unalgorithme quelconque pour C enleve au moins les valeurs qu’un algorithme pour C0enleve Une consistance C est strictement plus forte que l’autre consistance C0 (ou C0est strictement plus faible que C), s’il existe un CSP qui est C0 mais il n’est pas C [5
2.4.1 Forward Checking (FC)
De nition 2.8 (Forward Checking) Une contrainte c(x1; : : : ; xk) est Forward Checking
(FC) par rapport a D(X) ssi 9y 2 vars(c); 8x 2 vars(c) n fyg : #D(x) = 1 ) c est domaineconsistant (DC) Un CSP (X; D(X); C) est Forward Checking (FC) ssi toutes sescontraintes sont FC par rapport a D(X)
Un CSP est FC si les valeurs assignees sont une solution partielle, et toutes lescontraintes que ses variables sont assignees sauf une sont DC Pour obtenir FC, unalgorithme est propose dans [6] avec une complexit temporelle de O(ed) et complexitd’espace en O(e) Un algorithme pour FC est normalement plus rapide que celui pour
DC Dans le cas ou atteindre DC est co^uteux, on peut considerer FC
Trang 17Exemple 2.4 Etant donne la contraint c = 3x 2y
f1; 2g; D(z) = f3g, alors c est FC Si D(x) = f1; 2; 3g; D(y) = f1g; D(z) = f3g, alors cn’est pas FC L’application de FC : D(x) = f1; 2g; D(y) = f1g; D(z) = f3g
2.4.2 Bound Consistency (BC)
De nition 2.9 Etant donne un CSP (X; D(X); C), on de nit D (X) = D (x1)
: : : D (xn), avec D (x) = [min(D(x)); max(D(x))]
De nition 2.10 (Bound Consistency) Une contrainte c(x1; : : : ; xk) est Bound tency (BC) par rapport a D(X) ssi 8x 2 vars(c), 8a 2 fmin(D(x)); max(D(x))g : (x; a) 2=Inc(c; x; D (X)) Un CSP (X; D(X); C) est Bound Consistency (BC) ssi toutes sescontraintes sont BC par rapport a D(X)
Consis-BC consiste a detecter les valeurs inconsistances dans la borne (min et max) dudomaine de variables BC assure que les valeurs minimum et maximum d’undomaine d’une variable peuvent satisfaire des contraintes portant sur cette variable.Pour obtenir BC, dans [6], l’auteur a decrit un algorithme avec une complexittemporelle de O((d )2), d est la taille la plus grande du domaine D
Exemple 2.5 Etant donne les domaines : D(x) = f2; 3; 4g; D(y) = D(z) = f2; 4g Lacontrainte c = x + y + z = 10 est BC mais n’est pas DC car (x; 3) n’a pas de support
Trang 18Consistances plus fortes que DC
La conception de consistance locale est au c ur de la programmation par contraintes
La consistance locale est utilisee pendant la recherche pour reduire l’espace derecherche en decouvrant les inconsistances Dans ce chapitre, nous abordons lesconsistances plus fortes que DC pour les contraintes binaires et non binaires.D’abord, nous presentons les consistances pour les contraintes binaires, lacomparaison entre elles Puis, nous passons aux consistances pour les contraintesnon-binaires En fait, ces consistances sont inspirees par les consistances pour lescontraintes binaires La comparaison entre ces consistances est aussi examinee
3.1 Consistances plus fortes que DC pour contraintes
bi-naires
Dans cette section, les consistances les plus importantes dans la litterature pour lescontraintes binaires sont abordees D’abord les consistances se basant sur les triplets devariables (RPC, PIC, Max-RPC) sont presentees Puis nous presentons les consistances
se basant sur les variables voisines d’une variable (elles sont liees par une contrainte)(NIC) ou se basant sur l’assignation hypothetique d’une valeur a une variable (SAC)
3.1.1 Consistances a base de triangle
De nition 3.1 (Restricted Path Consistency (RPC)) Un CSP binaire (X; D(X); C) estrestricted path consistent (RPC) ssi il est DC et 8xi 2 X; 8a 2 D(xi); 8cij(xi; xj) 2 C telleque (xi; a) a un seul support (xj; b) sur cij(xi; xj), alors 8xk 2 X lie a la fois xi; xj parcontrainte, il existe c 2 D(xk) telle que cik(a; c) ^ cjk(b; c)
10
Trang 19RPC est strictement plus fort que DC [5] Un CSP que RPC enleve plus de valeurque DC est montre dans la gure 3.1 L’algorithme optimal pour RPC est l’algorithmeRPC2, il est propose dans [7] avec une complexit temporelle de O(en + ed2 + cd2),une complexit d’espace en O(ed + cd) ou c est le nombre de triples de variables (xi;
xj; xk) avec cij; cjk; cki 2 C
Figure 3.1: Un exemple de CSP sur lequel RPC enleve plus de valeurs que DC : (xi; 1) n’est
pas RPC tandis que ce CSP est DC
De nition 3.2 (Path Inverse Consistency (PIC)) Un CSP binaire (X; D(X); C) est pathinverse consistent (PIC) ssi 8xi 2 X; 8a 2 D(xi); 8xj; xk 2 X, il existe b 2 D(xj); c 2 D(xk)telle que cij(a; b) ^ cik(a; c) ^ cjk(b; c)
Un algorithme optimal pour PIC est propose dans [8] avec complexit temporelle de O(en+ ed2 + cd3), une complexit d’espace en O(ed + cd) ou c est le nombre de triples devariables (xi; xj; xk) avec cij; cjk; cki 2 C PIC est strictement plus fort que RPC [5] UnCSP que PIC enleve plus de valeur que RPC est montre dans la gure 3.2
Figure 3.2: Un exemple de CSP sur lequel PIC enleve plus de valeurs que RPC :
(xi; 1) n’est pas PIC tandis que ce CSP est RPC
De nition 3.3 (Max-restricted Path Consistency) Un CSP binaire (X; D(X); C) estmax-restricted-path consistent (Max-RPC) ssi 8xi 2 X; 8a 2 D(xi); 8cij(xi; xj) 2 C, ilexiste b 2 D(xj) telle que cij(a; b) et 8xk 2 X, il existe c 2 D(xk) telle que cij(a; b) ^ cik(a;c) ^ cjk(b; c)
Trang 20Pour Max-RPC, l’algorithme Max-RPC1 est propose dans [7] Il est optimal avec unecomplexit temporelle de O(en + ed2 + cd3), une complexit d’espace en O(ed + cd) ou
c est le nombre de triples de variables (xi; xj; xk) avec cij; cjk; cki 2 C Max-RPC estprouve plus fort que PIC [5] La gure 3.3 montre un CSP sur lequel MaxRPC enleveplus de valeur que PIC
Figure 3.3: Un exemple de CSP sur lequel Max-RPC enleve plus de valeurs que PIC :
(xi; 1) n’est pas Max-RPC tandis que ce CSP est PIC
3.1.2 Consistance selon le voisinage
De nition 3.4 (Neighborhood Inverse Consistency (NIC)) Un CSP binaire (X; D(X); C) est neighborhood inverse consistent (NIC) ssi 8xi 2 X; 8a 2 D(xi), (xi; a) peut ^etre etendu a une instanciation consistante de toutes les variables dans le voisinage de xi(les variables liees avec xi dans une contrainte)
Un algorithme pour NIC est propose dans [9] dont la complexit temporelle estO(g2(n+ ed)dg+1), la complexit d’espace est O(n) ou g est le maximum nombre devariable voisine d’une variable (elle sont liees par une contrainte) dans le CSP [5
NIC est strictement plus fort que MaxRPC Un exemple est montre dans la gure 3.4
Figure 3.4: Un exemple de CSP sur lequel NIC enleve plus de valeurs que Max-RPC :
(xi; 1) n’est pas NIC tandis que ce CSP est Max-RPC
Trang 21de valeur que MaxRPC est montre dans 3.5 SAC et NIC sont incomparable [5
Figure 3.5: Un exemple de CSP sur lequel SAC enleve plus de valeur que Max-RPC :
(xi; 2) n’est pas SAC tandis que ce CSP est Max-RPC
3.1.4 Resum
Nous avons present les consistances plus fortes que DC pour la contrainte binaire Lagure ci-dessous 3.6 montre la comparaison entre ces consistances La eche montre quetelle consistance est plus forte que l’autre Le tiret montre qu’elles sont incomparable.Dans l’article [5], l’auteur a montre une demonstration complete pour cette comparaison
Figure 3.6: Resum de la comparaison entre les consistances
Trang 223.2 Consistances plus fortes que DC pour contraintes non
binaires
Dans cette section, nous allons presenter les consistances fortes pour les contraintesnon binaires qui sont inspirees par les consistances precedentes (RPC, PIC, Max-RPC, .) RPC, PIC et Max-RPC speci ent que chaque valeur dans un domained’une variable doit ^etre extensible a une deuxieme variable, et cette valeur peuxs’etendre aux troisieme variable selon des conditions Pour les contraintes nonbinaires, chaque valeur dans un domaine d’une variable doit avoir un GAC-supportpour chaque contrainte, et ce GAC-support peut s’etendre a une autre contrainteselon les conditions precisees dans les consistances
3.2.1 Restricted Pairwise Consistency (RPWC)
De nition 3.6 (Restricted Pairwise Consistency) Un CSP non-binaire (X; D(X); C) estrestricted pairwise consistent (RPWC) ssi 8xi 2 X; toutes les valeurs dans D(xi) estGAC et, 8a 2 D(xi); 8cj 2 C; xi 2 vars(cj); telle que il existe un seul tuple valide
2 rel(cj) avec [xi] = a alors 8ck 2 C; vars(cj) \ vars(ck) 6= ;; 9 0 2 rel(ck); telle que [vars(cj) \ vars(ck)] = 0[vars(cj) \ vars(ck)] et 0 et valide
La de nition de RPWC est inspiree par la de nition de RPC D’abord GAC est plique, ensuite, RPWC enleve des valeurs de la variable xi qui ont un seul tuple(GAC-support) dans la contrainte cj et que ce support ne peut pas s’etendre a untuple valide 0 dans chacune des contraintes intersectees avec cj Par de nition,RPWC est strictement plus fort que GAC Un exemple ci-dessous montre cettepropriet Pour ob-tenir RPWC, l’algorithme RPWC1 est propose dans [10] avec unecomplexit temporelle de O(ne2k2dk) et une complexit d’espace en O(ekd)
ap-Exemple 3.1 D(x1) = D(x2) = D(x3) = f1; 2; 3g, c1 = allDif f erent(x1; x2; x3), c2 = x1 =
x2 Ce CSP est GAC mais il n’est pas RPWC parce que (x1; 1); (x1; 2); (x1; 3); (x2; 1),(x2; 2); (x2; 3) ne sont pas RPWC
3.2.2 relational Path Inverse Consistency (rPIC)
De nition 3.7 (relational Path Inverse Consistency) Un CSP non-binaire (X; D(X); C)est relational path inverse consistent (rPIC) ssi 8xi 2 X; 8cj 2 C; xi 2 vars(cj), et 8ck 2C; vars(cj) \ vars(ck) 6= ;; alors 9 2 rel(cj) telle que [xi] = a, est valide, et 9 0 2 rel(ck)telle que [vars(cj) \ vars(ck)] = 0[vars(cj) \ vars(ck)] et 0 est valide
Trang 23rPIC est inspire par PIC Quand on applique rPIC pour un CSP, on considere unpaire de contrainte cj; ck et voit si une valeur a 2 D(xi); xi 2 vars(cj) a un GAC-supportdans cj telle que ce support peut ^etre extensible au tuple 0 dans ck Dans le cas ou
on ne trouve aucun , alors la valeur a est enlevee rPIC est montre strictement plusfort que RPWC dans [10] L’idee est que dans le cas ou une valeur a plus qu’unGAC-support ( 2 supports), rPIC est plus fort que RPWC et dans le cas ou une valeurn’a qu’un GAC-support, rPIC est egale RPWC Dans l’exemple ci-dessous, le CSPest RPWC mais il n’est pas rPIC L’algorithme pour rPIC est propose dans [10] dont
la complexit temporelle est O(e2k2dp) et la complexit d’espace est O(e2kd) ou p est lenombre maximum de variables impliquees dans deux contraintes
Exemple 3.2 Etant donne un CSP : D(x1) = D(x2) = D(x3) = f0; 1; 2g, D(x4) = f0; 1g
c1 = allDi erent(x1; x2; x3); c2 = allDi erent(x2; x3; x4) Ce CSP est RWPC car lesvaleurs dans le domaine de variables ont au moins deux GAC-supports Cependant,
ce CSP n’est pas rPIC car les GAC-supports de (x1; 2) dans c1 : (2, 1, 0), (2, 0, 1) nepeuvent pas s’etendre a c2
3.2.3 Max Restrited Pairwise Consistency (Max-RPWC)
De nition 3.8 (Max Restrited Pairwise Consistency) Un CSP non-binaire (X; D(X); C)est max restricted pairwise consistent (Max-RPWC) ssi 8xi 2 X; 8a 2 D(xi); 8cj 2 C; ou
xi 2 vars(cj); alors 9 2 rel(cj) telle que [xi] = a, est valide, et 8ck 2 C; vars(cj) \ vars(ck)6= ;; alors 9 0 2 rel(ck); [vars(cj) \ vars(ck)] = 0[vars(cj) \ vars(ck)] et 0 est valide Dans
ce cas, 0 est PW-support de
La de nition de RPWC est inspiree par la de nition de RPC Dans Max-RPWC, onpar-court chaque valeur a 2 D(xi); xi 2 vars(cj) pour examiner si elle a un GAC-support qui est extensible aux toutes les contraintes intersectees avec cj Si on ne letrouve pas, alors cette valeur est enlevee Max-RPWC est prouve strictement plusfort que rPIC [10] L’exemple ci-dessous montre un CSP qui est rPIC mais n’est pasMax-RPWC Pour appli-quer Max-RPWC, des algorithmes sont proposes tels queMax-RPWC1, Max-RPWC2, Max-RPWC3 [10] Max-RPWC2 a une meilleurecomplexit temporelle O(e2k2dk) mais la complexit d’espace est grande (O(e2kdf )) Lacomplexit temporelle de Max-RPWC1 et Max-RPWC3 est O(e2k2dp) Mais enpratique, Max-RPWC3 est souvent plus e cace que Max-RPWC1
Exemple 3.3 Etant donne un CSP : D(x1) = D(x2) = D(x3) = f0; 1g, D(x4) = D(x5) =f0g Les contraintes c1; c2; c3 sont presentees dans la gure 3.7 Ce CSP est rPICmais il n’est pas MaxRPWC Par exemple, la valeur 0 de x1 est rPIC car pour deuxcontraintes c1; c2, le GAC-support (0; 0; 0) de (x1; 0) dans c1 peut s’etendre a
Trang 24Figure 3.7: MaxRPWC vs rPIC
(0; 0; 0) dans c2, pour deux contraintes c1; c3, le GAC-support (0; 1; 1) de (x1; 0)dans c1 peut s’etendre a (1; 1; 0) dans c3 Mais cette valeur n’est pas Max-RPWCcar aucun de ses GAC-supports ne peut s’etendre a la fois c2; c3
3.2.4 Max Restricted 3-wise Consistency (Max-R3WC)
De nition 3.9 (Max Restricted 3-wise Consistency) Un CSP non binaire (X; D(X); C)est max restricted 3-wise consistent (Max-R3WC) ssi 8xi 2 X; 8a 2 D(xi); 8cj 2 C; ou
xi 2 vars(cj); 9 2 rel(cj) telle que [xi] = a; est valide, et 8ck; cl 2 C, il existe des tuplesvalides 0 2 rel(ck); 00 2 rel(cl) telle que [vars(cj) \ vars(ck)] = 0[vars(cj) \ vars(ck)];[vars(cj) \ vars(cl)] = 00[vars(cj) \ vars(cl)]; 0[vars(ck) \ vars(cl)] =
3.2.5 Max Restricted k-wise Consistency (Max-RkWC)
De nition 3.10 (Max Restricted k-wise Consistency) Un CSP non binaire (X; D(X); C)est max restricted k-wise consistent (Max-RkWC) ssi
Trang 25Max-RkWC est une generalisation de Max-R3WC Si Max-RkWC est applique sur lavariable xi, il enleve la valeur a 2 D(xi) telle que pour les contraintes cj que xiparticipe, aucun GAC-support de (xi; a) ne peut s’etendre aux tous les ensembles de
k 1 autres contraintes
3.2.6 PWC+GAC
De nition 3.11 (Pairwise Consistency) Un CSP (X; D(X); C) est Pairwise Consistent(PWC) ssi 8 2 rel(ci), est valide, alors peut s’etendre a chacune de contraintesintersectees avec ci
De nition 3.12 (PWC+GAC) Un CSP (X; D(X); C) est PWC+GAC ssi il est PWC etGAC
Pour la consistance PWC+GAC, PWC enleve les tuples a partir de la relation decontrainte GAC est applique pour le ltrage de domaine : la valeur qui n’a pas de supportdans une contrainte est enlevee Dans [10], on montre que PWC+GAC est plus fort queMax-RPWC Ci-dessous un CSP qui est RPWC mais n’est pas PWC+GAC
Figure 3.8: PWC+GAC vs Max-RPWC
Exemple 3.4 Etant donne un CSP : D(x1) = D(x2) = D(x3) = D(x4) = D(x5) = f0; 1g;D(x6) = f0g Les trois contraintes c1; c2; c3 sont presentees dans la gure ci-dessus
La valeur 0 de x1 a un GAC-support (0; 0; 0) dans c1 Ce tuple peut s’etendre autuple (0; 0; 0; 0) dans c2 (x1; 0) est donc MaxRPWC (aussi pour les autres valeurs).Cependant, le tuple (0; 0; 0; 0) dans c2 ne peut pas s’etendre a c3, ce tuple est enlevpar PWC+GAC Par consequence, on doit enlever (0; 0; 0) dans c1, alors (x1; 0) estsupprimee car elle n’a plus de GAC-support
3.2.7 kWC+GAC
De nition 3.13 (k-Wise Consistency (kWC)) Un CSP (X; D(X); C) est k-Wise tency (kWC) ssi 8cj 2 C; 8 inrel(cj) : est valide, et pour un ensemble quelconque de
Consis-k 1 contraintes additionnelles c1; : : : ; ck 1, peut s’etendre a une valide instanciation
sur les variables S