45
efinition d’un CSP Mod´ elisation en termes de CSP 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

Cours de Programmation par contraintes

Embed Size (px)

DESCRIPTION

Ce cours est fortement conseillé pour s'initier à la programmation par contraintes.

Citation preview

Page 1: 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

Page 2: Cours de 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

Page 3: Cours de 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

Page 4: Cours de 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

Page 5: Cours de 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

Page 6: Cours de 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

Page 7: Cours de 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

Page 8: Cours de 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

Page 9: Cours de 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

Page 10: Cours de 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

Page 11: Cours de 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

Page 12: Cours de 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

Page 13: Cours de 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

Page 14: Cours de 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

Page 15: Cours de 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

Page 16: Cours de 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

Page 17: Cours de 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

Page 18: Cours de 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

Page 19: Cours de 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

Page 20: Cours de 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

Page 21: Cours de 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

Page 22: Cours de 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

Page 23: Cours de 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

Page 24: Cours de Programmation par contraintes

Definition d’un CSPModelisation en termes de CSP

Resolution d’un CSPAlgorithmes de resolution

Odile PAPINI Programmation par contraintes

Page 25: Cours de 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

Page 26: Cours de 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

Page 27: Cours de 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

Page 28: Cours de Programmation par contraintes

Definition d’un CSPModelisation en termes de CSP

Resolution d’un CSPAlgorithmes de resolution

Odile PAPINI Programmation par contraintes

Page 29: Cours de 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

Page 30: Cours de 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

Page 31: Cours de 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

Page 32: Cours de 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

Page 33: Cours de 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

Page 34: Cours de 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

Page 35: Cours de 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

Page 36: Cours de 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

Page 37: Cours de 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

Page 38: Cours de 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

Page 39: Cours de 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

Page 40: Cours de 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

Page 41: Cours de 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

Page 42: Cours de 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

Page 43: Cours de 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

Page 44: Cours de 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

Page 45: Cours de 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