Cours de Programmation Par Contraintes
Cours de Programmation Par Contraintes
Cours de Programmation Par Contraintes
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Plan du cours 2
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Bibliographie
Livres : K. Marriott and P. Stuckey. Programming with constraints. 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 universit Lyon e I : http ://bat710.univ-lyon1.fr/ csolnon/Site-PPC/ Roman Bartak Charles university : http ://kti.m.cuni.cz/ bartak/constraints/
Odile PAPINI Programmation par contraintes
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
R2 X3 0 1 R3 X2 1 X3 0
Programmation par contraintes
X4 1 0
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Modlisation dun probl`me e e identier les variables : les inconnues identier les domaines de valeur de ces variables identier les contraintes souvent plusieurs modlisations possibles, crit`res de choix : e e simplicit dexpression e ecacit : taille de lespace de recherche de solutions e
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Exemple : le probl`me des 4 reines e Placer 4 reines sur chiquier 4 4 de telle sorte quaucune ne soit e en prise (pas sur la mme ligne, pas sur la mme colonne, pas sur e e la mme diagonale) e X = ? D = ? C = ?
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Modlisation ecace e
Odile PAPINI Programmation par contraintes
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Intrt des CSP par rapport ` la programmation mathmatique ee a e la reprsentation des CSP est plus proche des probl`mes e e originaux, la formulation est plus simple les algorithmes de rsolution des CSP sont relativement e simples et sont plus rapides que ceux de la programmation en nombres entiers
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
toute contrainte n-aire peut sexprimer en termes de contraintes binaires tout CSP peut se reprsenter comme un CSP binaire e un CSP binaire peut tre reprsent comme un graphe de e e e contraintes exemples
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
hypoth`se : domaines nis e algorithmes gnriques de rsolution de CSP e e e algorithmes complets algorithmes incomplets Autres algorithmes pour : CSP numriques linaires sur les rels e e e CSP numriques linaires sur les entiers e e CSP numriques non linaires e e
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
techniques de ltrage
consistance de noeud (NC), darc (AC), de chemin (PC)
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
principe
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
exemple X = {X1 , X2 , X3 , X4 } D = {D1 , D2 , D3 , D4 } avec D1 = D2 = D3 = D4 = {0, 1} C = {X1 = X2 , X3 = X4 , X1 + X3 < X2 } R = {R1 , R2 , R3 } Recherche de solutions de ce CSP par lalgorithme GET
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Techniques de ltrage
principe
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Techniques de ltrage
consistance de noeud Un CSP (X , D, C , R) est consistant de noeud si pour toute variable Xi de X , et pour toute valeur v de Di , laectation partielle {(Xi , v )} satisfait toutes les contraintes unaires de C . principe ltrage des domaines pour chaque variable Xi , on enl`ve de Di toute valeur v telle e que laectation partielle {(Xi , v )} viole les contraintes unaires.
Odile PAPINI Programmation par contraintes
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Techniques de ltrage
consistance darc Un CSP (X , D, C , R) est consistant darc si tout couple de variables (Xi , Xj ) de X , et pour toute valeur vi de Di , il existe une valeur vj appartenant Dj telle que laectation partielle {(Xi , vi ), (Xj , vj )} satisfasse toutes les contraintes binaires de C . principe ltrage des domaines pour chaque variable Xi , on enl`ve de Di toute valeur vi telle e quil existe une variable Xj pour laquelle, pour toute valeur vj de Dj , laectation partielle {(Xi , vi ), (Xj , vj )} viole les contraintes binaires.
Odile PAPINI Programmation par contraintes
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
plusieurs algorithmes AC ou REVISE : rduit la taille des domaines, supprime les e valeurs qui violent les contraintes binaires AC1 : rapplique REVISE chaque fois quun domaine est e chang e AC3 : ne rapplique REVISE que le nombre de fois ncessaires e e
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
fonction REVISE((Xi , Xj ),(X,D,C)) : boolen e dbut e DELETE FAUX pour tous les Vi de Di faire si il ny a pas de Vj dans Dj qui satisfasse les contraintes binaires entre Xi et Xj alors supprimer Vi de Di DELETE VRAI nsi n pour retourner DELETE n
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
fonction AC1((X,D,C)) dbut e Q {(Xi , Xj ) /il existe une contrainte entre Xi et Xj } rpter R FALSE pour tous les (Xi , Xj ) de Q faire R (R ou REVISE((Xi , Xj ),(X,D,C))) n pour jusqu non R retourner (X,D,C) n
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
fonction AC3((X,D,C)) dbut e Q {(Xi , Xj ) /il existe une contrainte entre Xi et Xj } tantque Q = 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 = Xi et Xk = Xj } nsi n tantque retourner (X,D,C) n
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Un CSP (X , D, C , R) est consistant de noeud si pour toute variable Xi de X , et pour toute valeur v de Di , laectation partielle {(Xi , v )} satisfait toutes les contraintes unaires de C . principe : anticipation + consistance de noeud anticipation dune tape laectation e pour chaque variable Xi non aecte dans A, on enl`ve de Di e e toute valeur v telle que A {(Xi , v )} est inconsistante.
Odile PAPINI Programmation par contraintes
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Algorithme Anticipation : FC
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Odile PAPINI
Dnition dun CSP e Modlisation en termes de CSP e Rsolution dun CSP e Algorithmes de rsolution e
Heuristiques
Odile PAPINI