Cours de Programmation par contraintes
-
Upload
nabil-loutfi -
Category
Documents
-
view
129 -
download
2
description
Transcript of Cours de Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Programmation par contraintesCours 2 : Problemes de Satisfaction de Contraintes
CSP
Odile PAPINI
ESILUniversite de la [email protected]
http://pages-perso.esil.univmed.fr/∼papini/
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Plan du cours 2
1 Definition d’un CSP
2 Modelisation en termes de CSP
3 Resolution d’un CSP
4 Algorithmes de resolution
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Bibliographie
Livres :
K. Marriott and P. Stuckey. Programming withconstraints. MIT Press 1998
F. Fages. Programming Logique par contraintes. Ellipes,1996
K. R. Apt. Principles in Constraint Programming.Cambridge Univ Press, 2003
Supports de cours :
Support de cours : Christine SOLNON universite LyonI : http ://bat710.univ-lyon1.fr/ csolnon/Site-PPC/
Roman Bartak Charles university :http ://kti.mff.cuni.cz/ bartak/constraints/
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Problemes de Satisfaction de Contraintes (CSP)
Definition
un CSP est un probleme modelise sous forme de contraintes poseessur des variables prenant valeur dans un domaine
un CSP est quadruplet (X ,D,C ,R) ou :
X = {X1, · · · ,Xn} : un ensemble de variables
D = {D1, · · · ,Dn} : un ensemble de domaines,
Xi ∈ Di , 1 ≤ i ≤ n
C = {C1, · · · ,Cm} : un ensemble de contraintes,
R = {R1, · · · ,Rm} : un ensemble de relations,
a chaque contrainte Cj est associee une relation Rj , 1 ≤ j ≤ m
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Problemes de Satisfaction de Contraintes (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}R = {R1, R2, R3}
Les relations asociees aux contraintes de C :
R1
X1 X2
0 11 0
R2
X3 X4
0 11 0
R3
X1 X2 X3
0 1 0
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
Modelisation d’un probleme
identifier les variables : les inconnues
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)
X = {X1, X2, X3, X4}
D = {D1, D2, D3, D4} avecD1 = D2 = D3 = D4 = {1, 2, 3, 4}
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
si GET(A ∪ {(Xi ,Vi )}, (X,D,C)) = VRAI alorsretourner VRAI
finsifin pourretourner FAUX
finsifin
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Algorithme Genere Et Teste : GET
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}
R = {R1, R2, R3}
Recherche de solutions de ce CSP par l’algorithme GET
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Algorithme Genere Et Teste : GET
inconvenients
sur l’espace de recherche
ensemble des affectations completes
inconsistance decouverte au dernier moment
croissance exponentielle de la taille de l’espace de recherche
ameliorations
ne developper que des affectations partielles consistantes
reduire la taille des domaines
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Approche Simple retour arriere
principe
Construction d’une solution
generation d’un affectation partielle consistante
extension de l’affectation partielle avec l’affection d’unenouvelle variable
si cette extension est inconsistante on retourne en arriere onmodifie l’affectation de la nouvelle variable
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Algorithme Simple Retour Arriere : SRA
fonction SRA(A,(X,D,C)) : booleendebutsi A n’est pas consistante alors retourner alors
retourner FAUXfinsisi 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
si SRA(A ∪ {(Xi ,Vi )}, (X,D,C)) = VRAI alorsretourner VRAI
finsifin pourretourner FAUX
finsifin
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Algorithme Simple Retour Arriere : SRA
exemple du probleme des 4 reines
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Algorithme Algorithme Simple Retour Arriere : SRA
avantages
reduction de l’espace de recherche
ameliore GET en espace et en temps d’execution
inconvenients
pas d’identification des cause de conflit
redondance
detection tardive des conflits
alternatives : backjumping, backmarking
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Techniques de filtrage
principe
filtrage des domaines
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 \(Xi , Xj )si REVISE((Xi , Xj),(X,D,C)) alors
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.
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Algorithme Look ahead : LH
Odile PAPINI Programmation par contraintes
Definition d’un CSPModelisation en termes de CSP
Resolution d’un CSPAlgorithmes de resolution
Heuristiques
ordre des variables
statiquedynamique
ordre des valeurs
Odile PAPINI Programmation par contraintes