D´ efinition d’un CSP Mod´ elisation en termes de CSP R´ esolution d’un CSP Algorithmes de r´ esolution Programmation par contraintes Cours 2 : Probl´ emes de Satisfaction de Contraintes CSP Odile PAPINI ESIL Universit´ e de la m´ editerran´ ee [email protected]http://pages-perso.esil.univmed.fr/∼papini/ Odile PAPINI Programmation par contraintes
Ce cours est fortement conseillé pour s'initier à la programmation par contraintes.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Programmation par contraintesCours 2 : Problemes de Satisfaction de Contraintes
identifier les domaines de valeur de ces variables
identifier les contraintes
souvent plusieurs modelisations possibles, criteres de choix :
simplicite d’expression
efficacite : taille de l’espace de recherche de solutions
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Modelisation de problemes en termes de CSP
Exemple : le probleme des 4 reines
Placer 4 reines sur echiquier 4 × 4 de telle sorte qu’aucune ne soiten prise (pas sur la meme ligne, pas sur la meme colonne, pas surla meme diagonale)
X = ?
D = ?
C = ?
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Modelisation de problemes en termes de CSP
Exemple : le probleme des 4 reines
Placer 4 reines sur echiquier 4 × 4 de telle sorte qu’aucune ne soiten prise (pas sur la meme ligne, pas sur la meme colonne, pas surla meme diagonale)
C = {CLI ,CDA,CDD} avecCLI = {Xi 6= Xj , i 6= j , i ∈ {1, 2, 3, 4}, j ∈ {1, 2, 3, 4}}CDA = {Xi + i 6= Xj + j , i 6= j , i ∈ {1, 2, 3, 4}, j ∈ {1, 2, 3, 4}}CDD = {Xi − i 6= Xj − j , i 6= j , i ∈ {1, 2, 3, 4}, j ∈ {1, 2, 3, 4}}
Modelisation efficace
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Resolution d’un CSP
Resolution : affectation de valeurs aux variables de telle sorte quetoutes les contraintes soient satisfaites
affectation : instanciation des variables sur les domaines
affectation totale : affectation de toutes les variables
affectation partielle : affectation de certaines variables
affectation consistante : affectation qui ne viole aucunecontrainte
affectation inconsistante : affectation qui viole au moins unecontrainte
solution : affectation totale et consistante
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Resolution d’un CSP
Exemple
X = {X1, X2, X3, X4}
D = {D1, D2, D3, D4} avec D1 = D2 = D3 = D4 = {0, 1}
C = {X1 6= X2, X3 6= X4, X1 + X3 < X2}
A = {(X2, 0), (X3, 1)} affectation
A = {(X1, 0), (X2, 0), (X3, 0), (X4, 0)} affectation totale
A = {(X1, 0), (X2, 0)} affectation partielle
A = {(X1, 0), (X2, 0)} affectation inconsistante
A = {(X3, 0), (X4, 1)} affectation consistante
A = {(X1, 0), (X2, 1), (X3, 0), (X4, 1)} solution
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Resolution d’un CSP
Resolution : affectation de valeurs aux variables de telle sorte quetoutes les contraintes soient satisfaitescomplexite : en general probleme NP-difficilesolution : affectation totale et consistante
On peut chercher :
une solution, n’importe laquelle
toutes les solutions
une solution optimale ou au moins une bonne solution selonune fonction de cout ou d’objectif (Probleme d’Optimisationde Contraintes (COP))
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Interet des CSP
Interet des CSP par rapport a la programmation mathematique
la representation des CSP est plus proche des problemesoriginaux, la formulation est plus simple
les algorithmes de resolution des CSP sont relativementsimples et sont plus rapides que ceux de la programmation ennombres entiers
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Binarisation des contraintes
Les contraintes peuvent etre n-aires : 2 cas particuliers
les contraintes unaires
peuvent etre traitees par un pre-traitement sur les domaines
les contraintes binaires
si toutes les contraintes sont binaires : representation par ungraphe dont les sommets sont les variables et les arcs sont lescontraintes.
toute contrainte n-aire peut s’exprimer en termes decontraintes binaires
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Binarisation des contraintes
toute contrainte n-aire peut s’exprimer en termes decontraintes binaires
tout CSP peut se representer comme un CSP binaire
un CSP binaire peut etre represente comme un graphe decontraintes
exemples
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Binarisation d’un CSP
Methode 1 : conservation de variables initiales
creation d’une variable encapsulee U
domaine de U : produit cartesien des variables encapsulees
application des contraintes sur les variables encapsulees pourreduire le domaine
ajout d’une binaire entre la variable originale et la variableencapsulee : Xi = posi(U)
i eme position de Xi dans U : posi (U)
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Binarisation d’un CSP
Methode 1 : exemple
X = {X1, X2, X3}
D = {D1, D2, D3} avec D1 = {1, 2}, D2 = {3, 4},D3 = {5, 6}
C = {X1 + X2 = X3,X1 < X2}
CSP binaire : X ′ = {X1, X2, X3 U}, D ′ = {D1, D2, D3,D′
U}creation de la variable U = {(X1,X2,X3), tq {X1 + X2 = X3},DU = D1 × D2 × D3
reduction de domaine : D ′
U
nouvel ensemble de containtes : C ′
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Binarisation d’un CSP
Methode 2 : sans conservation de variables initiales
creation de variables encapsulees
domaine : produit cartesien des variables qu’elles encapsulent
application des contraintes sur les variables encapsulees pourreduire le domaine
ajout d’une binaire entre la variable originale et la variableencapsulee : Xi = posi(U)
i eme position de la variable encapsulee U est la j eme positionde la variable encapsulee V : posi(U) = posj(V )
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Binarisation d’un CSP
Methode 2 : exemple
X = {X1, X2, X3}
D = {D1, D2, D3} avec D1 = {1, 2}, D2 = {3, 4},D3 = {5, 6}
C = {X1 + X2 = X3,X1 < X2}
CSP binaire : X ′ = {U, V }, D ′ = {D ′
U ,D ′
V }, C ′
creation de 2 variable U = {(X1,X2,X3), tq {X1 + X2 = X3}, etV = {(X1,X2), tq {X1 < X2} DU = D1 × D2 × D3 etDV = D1 × D2
reduction de domaine : D ′
U et D ′
V
nouvel ensemble de containtes : C ′
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Resolution d’un CSP
hypothese : domaines finis
algorithmes generiques de resolution de CSP
algorithmes complets
algorithmes incomplets
Autres algorithmes pour :
CSP numeriques lineaires sur les reels
CSP numeriques lineaires sur les entiers
CSP numeriques non lineaires
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Algorithmes de resolution d’un CSP
algorithmes generiques de resolution de CSP
recherche systematiquegenere et teste (GET)retour arriere (SRA) ou (backtracking (BT))
techniques de filtrageconsistance de noeud (NC), d’arc (AC), de chemin (PC) · · ·
techniques de propagation de contraintesforward checking (FC)look ahead (LH)
techniques basees sur l’ordre des variables et des valeursheuristiques
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Approche Genere Et Teste
principe
Recherche systematique d’une solution
generation d’un affectation totale
test de la satisfaction de toutes les contraintes
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Algorithme Genere et Teste : GET
fonction GET(A,(X,D,C)) : booleendebutsi toutes les variables de X sont affectees alors
si A est consistante alorsretourner VRAI
sinonretourner FAUX
finsisinon
choisir une variable Xi de X qui n’est pas encore affecteepour toute valeur Vi appartenant a Di faire
dans la construction d’une affectation partielle consistante :filtrage a priori
filtrer le domaine des variables en enlevant les valeurslocalement inconsistantesfiltrage a differents niveaux : noeud, arc, chemin, · · ·
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Techniques de filtrage
consistance de noeud
Un CSP (X ,D,C ,R) est consistant de noeud si pour toutevariable Xi de X , et pour toute valeur v de Di , l’affectationpartielle {(Xi , v)} satisfait toutes les contraintes unaires de C .
principe
filtrage des domaines
pour chaque variable Xi , on enleve de Di toute valeur v telleque l’affectation partielle {(Xi , v)} viole les contraintesunaires.
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Techniques de filtrage
consistance d’arc
Un CSP (X ,D,C ,R) est consistant d’arc si tout couple devariables (Xi ,Xj) de X , et pour toute valeur vi de Di , il existe unevaleur vj appartenant Dj telle que l’affectation partielle{(Xi , vi ), (Xj , vj)} satisfasse toutes les contraintes binaires de C .
principe
filtrage des domaines
pour chaque variable Xi , on enleve de Di toute valeur vi tellequil existe une variable Xj pour laquelle, pour toute valeur vj
de Dj , l’affectation partielle {(Xi , vi), (Xj , vj )} viole lescontraintes binaires.
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Techniques de filtrage : consistance d’arc
plusieurs algorithmes
AC ou REVISE : reduit la taille des domaines, supprime lesvaleurs qui violent les contraintes binaires
AC1 : reapplique REVISE chaque fois qu’un domaine estchange
AC3 : ne reapplique REVISE que le nombre de fois necessaires
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Algorithme Consistance D’Arc : AC
fonction REVISE((Xi , Xj),(X,D,C)) : booleendebutDELETE ← FAUXpour tous les Vi de Di faire
si il n’y a pas de Vj dans Dj qui satisfasse les contraintes binaires entre Xi
et Xj alorssupprimer Vi de Di
DELETE ← VRAIfinsi
fin pourretourner DELETEfin
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Algorithme Consistance D’Arc : AC1
fonction AC1((X,D,C))debutQ ← {(Xi , Xj) /il existe une contrainte entre Xi et Xj }rpter
R ← FALSEpour tous les (Xi , Xj) de Q faire
R ← (R ou REVISE((Xi , Xj),(X,D,C)))fin pour
jusqu’ non Rretourner (X,D,C)fin
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Algorithme Consistance D’Arc : AC3
fonction AC3((X,D,C))debutQ ← {(Xi , Xj) /il existe une contrainte entre Xi et Xj }tantque Q 6= ∅ faire
Q ← Q ∪{(Xk , Xi ) /il existe une contrainte entre Xk et Xi et Xk 6= Xi
et Xk 6= Xj}finsi
fin tantqueretourner (X,D,C)fin
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Techniques de filtrage : consistance locale
plusieurs notions
1- consistance : consistance de noeud
2- consistance : consistance d’arc
3-consistance : consistance de cheminun ensemble {Xi ,Xj} est consistant de chemin par rapport ala variable Xk de X , si pour toute affectation partielle{(Xi , vi ), (Xj , vj)}, il existe une valeur vk appartenant Dk
telle que {(Xi , vi ), (Xk , vk)} est consistant et{(Xk , vk), (Xj , vj)} est consistant.· · ·k-consistance : considerer les valeurs d’une variable parrapport a la combinaison de k − 1 valeurs des autres variables.
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Techniques de propagation de contraintes
principe
Forward checking et Look-ahead
Combinaison du filtrage et du retour-arriere : filtrage au coursde la resolution
Forward checking : Apres chaque affectation d’une varible Xi ,filtrer le domaine de la variable Xj non encore affectees dontles valeurs violent les contraintes contenant Xi et Xj .
Look ahead : Apres chaque affectation d’une varible Xi , filtrerle domaine de toutes les variable non encore affectees dont lesvaleurs violent les contraintes contenant Xi et ces variables.
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Techniques de propagation de contraintes
consistance de noeud
Un CSP (X ,D,C ,R) est consistant de noeud si pour toutevariable Xi de X , et pour toute valeur v de Di , l’affectationpartielle {(Xi , v)} satisfait toutes les contraintes unaires de C .
principe : anticipation + consistance de noeud
anticipation d’une etape l’affectation
pour chaque variable Xi non affectee dans A, on enleve de Di
toute valeur v telle que A ∪ {(Xi , v)} est inconsistante.
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Algorithme anticipation : forward checkingfonction FC(A,(X,D,C)) : booleendebutsi toutes les variables de X sont affectees alors
retourner VRAIsinon
choisir une variable Xi de X qui n’est pas encore affecteepour toute valeur Vi appartenant a Di faire
pour toute variable Xj de X qui n’est pas encore affectee faireD
′
j ← {Vj element de Dj | A ∪{(Xi , Vi ), (Xj , Vj )} est consistante }si D
′
j est vide alorsretourner FAUX
finsifin poursi FC(A ∪{(Xi , Vi )},(X,D’,C))= VRAI alors
retourner VRAIfinsi
fin pourretourner FAUX
finsifin Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Algorithme Anticipation : FC
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Techniques de propagation de contraintes
consistance d’arc
Un CSP (X ,D,C ,R) est consistant d’arc si tout couple devariables (Xi ,Xj) de X , et pour toute valeur vi de Di , il existe unevaleur vj appartenant Dj telle que l’affectation partielle{(Xi , vi ), (Xj , vj)} satisfasse toutes les contraintes binaires de C .
principe : anticipation + consistance d’arc
anticipation de deux etapes l’affectation
pour chaque variable Xi non affectee dans A, on enleve de Di
toute valeur vi telle quil existe une variable Xj non affecteepour laquelle, pour toute valeur vj de Dj , l’affectationA ∪ {(Xi , vi), (Xj , vj )} est inconsistante.