Programmation par contraintes

2 674 vues

Publié le

Cours de master 1 du module programmation sous contraintes de la spécialité SII (système informatique intéligent)

Publié dans : Formation
  • Soyez le premier à commenter

Programmation par contraintes

  1. 1. Programmation Par Contraintes Cours du Master “Systèmes Informatiques Intelligents” 2ème année Dr Amar ISLI Département d’Informatique Faculté d’Electronique et d’Informatique Université des Sciences et de la Technologie Houari Boumediène BP 32, El-Alia, Bab Ezzouar DZ-16111 ALGER Nouvelle page : http://www.usthb.dz/perso/info/aisli Ancienne page : http://www.usthb.dz/fei-deptinfo/perso/aisli/amarisli.htm Master2SII->Programmation Par05/01/2011 Contraintes 1
  2. 2. CHAPITRE I Contraintes et problèmes de satisfaction de contraintesContrainte  Une contrainte est une relation sur un nombre fini de variables (inconnues)  Une variable admet un domaine (d’instanciation) : l’ensemble où elle prend ses valeurs  Une contrainte restreint les valeurs que peuvent prendre simultanément les variables qu’elle relie Master2SII->Programmation Par05/01/2011 Contraintes 2
  3. 3. CHAPITRE I Contraintes et problèmes de satisfaction de contraintesDéfinition d’une contrainte  Définition en extension  Définition en intention Master2SII->Programmation Par05/01/2011 Contraintes 3
  4. 4. CHAPITRE I Contraintes et problèmes de satisfaction de contraintesProblème de satisfaction de contraintes CSP : Constraint Satisfaction Problem Triplet P=(X,D,C) :  X ensemble fini de variables : X={X1, …,Xn}  D fonction associant à chaque variable Xi un domaine D(Xi)  C ensemble fini de contraintes sur les variables de P : C={C1, …,Cm} Master2SII->Programmation Par05/01/2011 Contraintes 4
  5. 5. CHAPITRE I Contraintes et problèmes de satisfaction de contraintesInstanciation d’un CSP Une instanciation est un élément du produit cartésien D(X1)x…xD(Xn)  une instanciation associe à chacune des variables du CSP un élément de son domaine, le ième élément étant la valeur associée à la variable Xi Master2SII->Programmation Par05/01/2011 Contraintes 5
  6. 6. CHAPITRE I Contraintes et problèmes de satisfaction de contraintesSolution d’un CSP Une solution est une instanciation satisfaisant chacune des contraintes du CSP  pour chacune des contraintes, si on remplace chacune des variables sur lesquelles elle porte par la valeur que lui associe l’instanciation, ladite contrainte s’évalue à vrai Master2SII->Programmation Par05/01/2011 Contraintes 6
  7. 7. CHAPITRE I Contraintes et problèmes de satisfaction de contraintesExemple : le problème de coloriage d’un graphe Description :  Un graphe et une fonction cl associant à chaque nœud un ensemble de couleurs permises Question :  Peut-on colorier les nœuds du graphe, chacun avec une couleur de l’ensemble que lui associe la fonction cl, de telle sorte que deux noeuds adjacents (i.e., reliés par une arête) n’aient pas la même couleur ? Master2SII->Programmation Par05/01/2011 Contraintes 7
  8. 8. CHAPITRE I Contraintes et problèmes de satisfaction de contraintesExemple : le problème de coloriage d’un graphe Le graphe peut être vu comme une représentation graphique d’une carte géographique à colorier :  Les nœuds du graphe sont les différents pays de la carte  Les couleurs associées à un nœud sont celles avec lesquelles le pays correspondant peut être colorié (drapeau)  Deux nœuds sont adjacents si et seulement si les pays correspondants sont limitrophes (voisins) l’un de l’autre Master2SII->Programmation Par05/01/2011 Contraintes 8
  9. 9. CHAPITRE I Contraintes et problèmes de satisfaction de contraintesExemple : une instance du problème de coloriage d’un graphe G=<V,E>  V={R,S,T,U}  E={(R,S),(R,T),(R,U),(S,U)} cl(R)=cl(S)={c1,c2} ; cl(T)={c1} ; cl(U)={c2} Master2SII->Programmation Par05/01/2011 Contraintes 9
  10. 10. CHAPITRE I Contraintes et problèmes de satisfaction de contraintesExemple : modélisation de l’instance avec un CSP CSP P=(X,D,C) avec :  X={X1,X2,X3,X4}  D(X1)=D(X2)={c1,c2} ; D(X3)={c1} ; D(X4)={c2}  C={X1≠X2,X1≠X3,X1≠X4,X2≠X4} Le CSP admet quatre instanciations possibles, qui sont tous les éléments du produit cartésien des domaines  (c1,c1,c1,c2), (c1,c2,c1,c2), (c2,c1,c1,c2), (c2,c2,c1,c2) Le CSP n’admet néanmoins aucune solution Master2SII->Programmation Par05/01/2011 Contraintes 10
  11. 11. CHAPITRE II CSP binairesCSP binaires Chacune des contraintes porte sur au plus deux variables  Une contrainte unaire est un cas particulier de contrainte binaire  Un CSP binaire peut donc être vu comme un CSP dont chacune des contraintes porte exactement sur deux variables CSP discrets  On se restreint aux domaines finis  Un sous-ensemble fini de IN : Pairs_10={0,2,4,6,8,10}  Un ensemble fini de couleurs : Couleurs={Blanc,Rouge,Vert}  Un ensemble de personnes : Cadets= {Hacène,Kamélia,Lilia,Ouerdouche,Younès} Master2SII->Programmation Par05/01/2011 Contraintes 11
  12. 12. CHAPITRE II CSP binairesCSP binaires CSP binaires continus  Le domaine de chacune des variables est continu  L’ensemble continu des points du temps modélisé par IR  L’ensemble continu des points du plan modélisé par IR2  Le sous-ensemble de IR2 constituant les intervalles de temps : toutes les paires (d,f) de IR2 vérifiant d<f Master2SII->Programmation Par05/01/2011 Contraintes 12
  13. 13. CHAPITRE II CSP binairesCSP binaires CSP continus  CSP quantitatifs  TCSP : Temporal Constraint Satisfaction Problems  CSP qualitatifs  « make only as many distinctions as necessary »  L’algèbre des points  L’algèbre des intervalles  L’algèbre des directions cardinales Master2SII->Programmation Par05/01/2011 Contraintes 13
  14. 14. CHAPITRE II CSP binairesCSP binaire discret P=(X,D,C)  X={X1, …,Xn}  D={D(X1), …,D(Xn)} : tous les domaines sont discrets finis  C={C1, …,Cm} : toutes les contraintes sont binaires Master2SII->Programmation Par05/01/2011 Contraintes 14
  15. 15. CHAPITRE II CSP binairesRelations associées à une contrainte Soit P=(X,D,C) un CSP binaire discret, Ck une contrainte de P, et Xi et Xj les variables de P sur lesquelles porte Ck Les relations binaires associées à Ck, notées Rk(Xi,Xj) et Rk(Xj,Xi), sont définies comme suit :  Rk(Xi,Xj)={(a,b)∈D(Xi)xD(Xj) : (Xi,Xj)=(a,b) satisfait Ck}  Rk(Xj,Xi)={(a,b)∈D(Xj)xD(Xi) : (Xj,Xi)=(a,b) satisfait Ck} Master2SII->Programmation Par05/01/2011 Contraintes 15
  16. 16. CHAPITRE II CSP binairesRelations associées à une contrainte Si un CSP binaire est discret, les relations Rk(Xi,Xj) et Rk(Xj,Xi) associées à la contrainte Ck peuvent être représentées, respectivement, par les matrices booléennes Mk(Xi,Xj) et Mk(Xj,Xi) suivantes :  Mk(Xi,Xj) a |D(Xi)| lignes et |D(Xj)| colonnes  Mk(Xi,Xj)[p,q]=1 si (Xi,Xj)=(ap,bq) satisfait Ck, 0 sinon  Mk(Xj,Xi) a |D(Xj)| lignes et |D(Xi)| colonnes  Mk(Xj,Xi)[p,q]=1 si (Xj,Xi)=(ap,bq) satisfait Ck, 0 sinon Master2SII->Programmation Par05/01/2011 Contraintes 16
  17. 17. CHAPITRE II CSP binairesInverse d’une matrice L’inverse d’une matrice M à m lignes et n colonnes est la matrice à n lignes et m colonnes notée M-1 définie comme suit : Pour tout i=1..n, pour tout j=1..m, M-1[i,j]=M[j,i]  Les matrices booléennes Mk(Xi,Xj) et Mk(Xj,Xi) représentant les relations associées à la contrainte Ck d’un CSP binaire discret sont inverses l’une de l’autre Master2SII->Programmation Par05/01/2011 Contraintes 17
  18. 18. CHAPITRE II CSP binairesIntersection de deux matrices booléennes L’intersection de deux matrices M et N, à m lignes et n colonnes chacune, est la matrice booléenne à m lignes et n colonnes notée P=M∩N définie comme suit : Pour tout i=1..m, pour tout j=1..n : P[i,j]=1 si M[i,j]=1 et N[i,j]=1, 0 sinon Master2SII->Programmation Par05/01/2011 Contraintes 18
  19. 19. CHAPITRE II CSP binairesUnion de deux matrices booléennes L’union de deux matrices booléennes M et N, à m lignes et n colonnes chacune, est la matrice booléenne à m lignes et n colonnes notée P=M∪N définie comme suit : Pour tout i=1..m, pour tout j=1..n : P[i,j]=1 si M[i,j]=1 ou N[i,j]=1, 0 sinon Master2SII->Programmation Par05/01/2011 Contraintes 19
  20. 20. CHAPITRE II CSP binairesProduit de deux matrices booléennes Le produit de deux matrices booléennes M et N, M à m lignes et n colonnes, et N à n lignes et p colonnes, est la matrice booléenne à m lignes et p colonnes notée P=M°N définie comme suit : Pour tout i=1..m, pour tout j=1..p :  P[i,j]=1 s’il existe k=1…n tel que M[i,k]=1 et N[k,j]=1  P[i,j]=0 sinon Master2SII->Programmation Par05/01/2011 Contraintes 20
  21. 21. CHAPITRE II CSP binairesReprésentation graphique d’un CSP binaire La représentation graphique d’un CSP discret P=(X,D,C) est un graphe orienté étiqueté GP=(X,E,l) défini comme suit :  L’ensemble des sommets de GP est l’ensemble X des variables de P  Pour toutes variables Xi et Xj, si P admet une contrainte portant sur Xi et Xj, alors GP contient un et un seul des deux arcs (Xi,Xj) et (Xj,Xi)  Pour toutes variables Xi et Xj, si P n’admet aucune contrainte portant sur Xi et Xj, alors GP ne contient ni l’arc (Xi,Xj) ni l’arc (Xj,Xi)  Pour tout arc (Xi,Xj) de GP, l’étiquette l(Xi,Xj) de (Xi,Xj) est l’intersection de toutes les matrices booléennes Mk(Xi,Xj) représentant les relations Rk(Xi,Xj) associées aux différentes contraintes Ck de P portant sur Xi et Xj Master2SII->Programmation Par05/01/2011 Contraintes 21
  22. 22. CHAPITRE II CSP binairesExemple Kamélia est moins de huit ans plus jeune que Hacène, qui lui n’a pas le même âge que Younès Younès, à son tour, est plus jeune que Lilia, qui elle a le même âge que Hacène Ouerdouche est plus de dix ans plus jeune que Hacène La différence d’âge entre Ouerdouche et Hacène est impaire et n’est pas multiple de trois Tous les âges varient entre onze et vingt-quatre ans Master2SII->Programmation Par05/01/2011 Contraintes 22
  23. 23. CHAPITRE II CSP binairesExemple Cinq variables : X1 (Hacène), X2 (Kamélia), X3 (Lilia), X4 (Ouerdouche), X5 (Younès) Kamélia est moins de huit ans plus jeune que Hacène, qui lui n’a pas le même âge que Younès  0<X1-X2<8 (C1), X1≠X5 (C2) Younès, à son tour, est plus jeune que Lilia, qui elle a le même âge que Hacène  X3-X5>0 (C3), X3=X1 (C4) Ouerdouche est plus de dix ans plus jeune que Hacène  X1-X4>10 (C5) La différence d’âge entre Ouerdouche et Hacène est impaire et n’est pas multiple de trois  |X1-X4| impair (C6), |X1-X4| non multiple de 3 (C7) Master2SII->Programmation Par05/01/2011 Contraintes 23
  24. 24. CHAPITRE II CSP binairesExemple Tous les âges varient entre onze et vingt-quatre ans  D(X1)=D(X2)=D(X3)=D(X4)=D(X5)={11,12,…,24} Master2SII->Programmation Par05/01/2011 Contraintes 24
  25. 25. CHAPITRE II CSP binairesReprésentation graphique d’un CSP binaire Un CSP binaire est également appelé réseau de contraintes :  Parce que facilement représentable sous forme d’un graphe orienté étiqueté  CSP binaire discret mais également CSP binaire continu Master2SII->Programmation Par05/01/2011 Contraintes 25
  26. 26. CHAPITRE II CSP binairesReprésentation matricielle d’un CSP binaire La représentation matricielle d’un CSP discret P=(X,D,C) est une matrice carrée de matrices, notée MP, à |X| lignes et |X| colonnes définie comme suit :  Pour toute variable Xi, MP[i,i] est la matrice carrée identité à | D(Xi)| lignes et |D(Xi)| colonnes  Pour toutes variables distinctes Xi et Xj, telles que (Xi,Xj) est arc de GP, Mp[i,j] est l’étiquette de l’arc (Xi,Xj) et Mp[j,i] est l’inverse de Mp[i,j]  Pour toutes les autres paires (Xi,Xj) de variables :  Mp[i,j] est la matrice universelle à |D(Xi)| lignes et |D(Xj)| colonnes  Mp[j,i] est la matrice universelle à |D(Xj)| lignes et |D(Xi)| colonnes Master2SII->Programmation Par05/01/2011 Contraintes 26
  27. 27. CHAPITRE II CSP binairesSous-CSP d’un CSP binaire Soit P=(X,D,C) un CSP binaire discret et X’ un sous-ensemble de X Le sous-CSP de P sur les variables appartenant à X’ est le CSP (X’,D’,C’) défini comme suit :  D’={D(Xi) : Xi∈X’}  C’ est l’ensemble des contraintes de C portant exclusivement sur les variables appartenant à X’ Une instanciation d’un sous-CSP strict de P est une instanciation partielle de P Une solution d’un sous-CSP strict de P est une solution partielle de P Master2SII->Programmation Par05/01/2011 Contraintes 27
  28. 28. CHAPITRE II CSP binairesRaffinement d’un CSP binaire Soit P=(X,D,C) un CSP binaire discret Un raffinement de P est un CSP P’ de la forme (X,D’,C’) vérifiant  D’(Xi)⊆D(Xi), pour toute variable Xi  C ⊆ C’ Une instanciation d’un raffinement de P est une instanciation de P Une solution d’un raffinement de P est une solution de P Un raffinement de P est strict si son ensemble de solutions est strictement inclus dans l’ensemble des solutions de P Master2SII->Programmation Par05/01/2011 Contraintes 28
  29. 29. CHAPITRE III Résolution d’un CSP binaireRésolution d’un CSP binaire Le CSP admet-il des solutions ? Le CSP admet-il des solutions ? Si oui, en exhiber une Le CSP admet-il des solutions ? Si oui, les exhiber toutes Master2SII->Programmation Par05/01/2011 Contraintes 29
  30. 30. CHAPITRE III Résolution d’un CSP binaireAlgorithmes de résolution Algorithmes complets naïfs (recherche systématique d’une solution)  Générer et tester (GET)  Simple retour arrière (SRA) Algorithmes de propagation de contraintes  Consistance locale : incomplets en général  Consistance de nœud : consistance des sous-CSP de taille 1  consistance d’arc : consistance des sous-CSP de taille 2  consistance de chemin : consistance des sous-CSP de taille 3  Complets pour certaines classes de CSP Master2SII->Programmation Par05/01/2011 Contraintes 30
  31. 31. CHAPITRE III Résolution d’un CSP binaireAlgorithmes de résolution Algorithmes complets intelligents  Quand une variable est instanciée, propager le changement aux variables non encore instanciées  À toutes les contraintes portant sur la variable venant d’être instanciée et les variables non encore instanciées (forward-checking)  à toutes les contraintes dont au moins une des variables sur lesquelles elles portent est non encore instanciée (look-ahead)  Instancier-et-propager Master2SII->Programmation Par05/01/2011 Contraintes 31
  32. 32. CHAPITRE III Résolution d’un CSP binaireAlgorithmes de résolution d’un CSP binaire Heuristiques  Ordre d’instanciation des variables (statique, dynamique)  Ordre sur les valeurs du domaine de la variable en cours d’instanciation (statique, dynamique) Master2SII->Programmation Par05/01/2011 Contraintes 32
  33. 33. CHAPITRE III Résolution d’un CSP binaireAlgorithme « générer et tester » (GET) n Initialement, aucune instanciation n’est marquée n Considérer une instanciation i=(e1,…,en) non marquée n Marquer i n Si i satisfait toutes les contraintes du CSP :  Retourner i 5. Si toutes les instanciations sont marquées  Retourner « échec : le CSP n’admet pas de solution » 6. Aller en 2. Master2SII->Programmation Par05/01/2011 Contraintes 33
  34. 34. CHAPITRE III Résolution d’un CSP binaireAlgorithme GETfonction GET(A,(X,D,C)) : booléendébutsi toutes les variables de X sont instanciées alors si A est solution alors retourner VRAI Sinon retourner FAUX finsiSinon choisir une variable Xi de X qui n’est pas encore instanciée pour toute valeur Vi du domaine D(Xi) faire si GET(A ∪ {(Xi,Vi )}, (X,D,C)) alors retourner VRAI finsi finpour retourner FAUXfinsifin Master2SII->Programmation Par05/01/2011 Contraintes 34
  35. 35. CHAPITRE III Résolution d’un CSP binaireAlgorithme GETfonction GET(A,(X,D,C)) : Au niveau de la racine de l’arbre de recherche (niveau 0):  A vaut l’ensemble vide : aucune variable n’est instanciée Au niveau d’un noeud de niveau i≥1 :  A est de cardinal i, et est de la forme {(X1,V1),…,(Xi,Vi)}  A représente une instanciation du sous-CSP de (X,D,C) sur les variables X1,…,Xi  A est une instanciation partielle du CSP (X,D,C) Master2SII->Programmation Par05/01/2011 Contraintes 35
  36. 36. CHAPITRE III Résolution d’un CSP binaireAlgorithme GET : inconvénient majeur  Si inexistence de solution ou unique solution consistant en la toute dernière instanciation  Parcours exhaustif de toutes les 2n instanciations possiblesAlgorithme GET : amélioration  Instancier pas à pas les variables (selon ordre préétabli)  Si l’instanciation de la variable en cours ne permet plus de satisfaire toutes les contraintes portant exclusivement sur les variables déjà instanciées  Instancier avec une autre valeur du domaine si possible  Si toutes les valeurs déjà essayées  Retourner échec si toute première variable  Retourner à la variable précédente  Si toute dernière variable retourner “succès” sinon passer à la variable suivante Master2SII->Programmation Par05/01/2011 Contraintes 36
  37. 37. CHAPITRE III Résolution d’un CSP binaireAlgorithme « simple retour arrière » (SRA)fonction SRA(A,(X,D,C)) : booléendébut si A n’est pas solution partielle alors retourner FAUX finsi si toutes les variables de X ont été instanciées alors retourner VRAI finsi choisir une variable Xi non encore instanciée pour toute valeur Vi du domaine D(Xi) faire si SRA(A ∪ {(Xi ,Vi )}, (X,D,C)) alors retourner VRAI finsi finpour retourner FAUXfin Master2SII->Programmation Par05/01/2011 Contraintes 37
  38. 38. CHAPITRE III Résolution d’un CSP binaireExemple : le problème des quatre reines  Echiquier de 16 cases (4x4)  4 lignes L1, L2, L3 et L4  4 colonnes C1, C2, C3 et C4  4 reines R1, R2, R3 et R4 :  La reine R1 se déplace sur la colonne C1  La reine R2 se déplace sur la colonne C2  La reine R3 se déplace sur la colonne C3  La reine R4 se déplace sur la colonne C4 Master2SII->Programmation Par05/01/2011 Contraintes 38
  39. 39. CHAPITRE III Résolution d’un CSP binaireExemple : le problème des quatre reines Modélisation à l’aide d’un CSP P=(X,D,C)  X = {X1, X2, X3, X4}  D = {D(X1),D(X2),D(X3),D(X4)} avec  D(X1)=D(X2)=D(X3)=D(X4)}={1,2,3,4}  C=CLI∪CDA∪CDD  CLI={Xi≠Xj,i≠j,i∈{1,2,3,4},j∈{1,2,3,4}}  CDA={Xi+i≠Xj+j,i≠j,i∈{1,2,3,4},j∈{1,2,3,4}}  CDD={Xi−i≠Xj−j,i≠j,i∈{1,2,3,4},j∈{1,2,3,4}} Master2SII->Programmation Par05/01/2011 Contraintes 39
  40. 40. CHAPITRE III Résolution d’un CSP binaireRésolution du problème des quatre reines algorithme GET Master2SII->Programmation Par05/01/2011 Contraintes 40
  41. 41. CHAPITRE III Résolution d’un CSP binaireRésolution du problème des quatre reines algorithme SRA Master2SII->Programmation Par05/01/2011 Contraintes 41
  42. 42. CHAPITRE III Résolution d’un CSP binaire Master2SII->Programmation Par05/01/2011 Contraintes 42
  43. 43. CHAPITRE III Résolution d’un CSP binaireAlgorithme SRA : inconvénient majeur Améliore l’algorithme GET  Réduction de l’espace de recherche Mais la détection des conflits reste tardive Solution : dans la construction pas à pas d’une instanciation consistante  Dès qu’une nouvelle variable est instanciée, propager le changement aux variables non encore instanciées  Consistance de nœud  Consistance d’arc  Consistance de chemin Master2SII->Programmation Par05/01/2011 Contraintes 43
  44. 44. CHAPITRE III Résolution d’un CSP binaireFiltrage durant la recherche récursive d’une solution : Filtrage à priori  Prétraitement  Avant le début effectif de la recherche  Aucune variable n’est encore instanciée  Réduction de l’espace de recherche  CSP surcontraint et inconsistant : inconsistance généralement détectée par le prétraitement Filtrage après chaque instanciation d’une nouvelle variable  Instancier puis propager Master2SII->Programmation Par05/01/2011 Contraintes 44
  45. 45. CHAPITRE III Résolution d’un CSP binaireConsistance de nœud (node-consistency) Un CSP P=(X,D,C) est consistant de noeud si pour toute variable Xi de X, et pour toute valeur v de D(Xi), l’instanciation partielle {(Xi,v)} satisfait toutes les contraintes unaires de C portant sur XiPrincipe d’un algorithme de consistance de noeud filtrage des domaines  pour chaque variable Xi  enlever de D(Xi) toute valeur v telle que l’affectation partielle {(Xi,v)} viole les contraintes unaires portant exclusivement sur Xi Master2SII->Programmation Par05/01/2011 Contraintes 45
  46. 46. CHAPITRE III Résolution d’un CSP binaireconsistance d’arc (arc-consistency) Un CSP P=(X,D,C) est consistant d’arc si pour tout couple (Xi,Xj) de variables, et pour toute valeur vi de D(Xi) , il existe une valeur vj de D(Xj) telle que l’instanciation partielle {(Xi,vi),(Xj,vj)} satisfait toutes les contraintes binaires de C portant exclusivement sur Xi et XjPrincipe d’un algorithme de consistance d’arc filtrage des domaines  pour chaque variable Xi  enlever de D(Xi) toute valeur vi telle qu’il existe une variable Xj pour laquelle, pour toute valeur vj de D(Xj), l’instanciation partielle {(Xi,vi), (Xj,vj)} viole les contraintes binaires portant exclusivement sur Xi et Xj Master2SII->Programmation Par05/01/2011 Contraintes 46
  47. 47. CHAPITRE III Résolution d’un CSP binaireconsistance de chemin (path-consistency) Un CSP P=(X,D,C) est consistant de chemin si pour tout triplet (Xi,Xj,Xk) de variables, et pour toute paire de valeurs (vi,vj) de D(Xi)x D(Xj) , il existe une valeur vk de D(Xk) telle que l’instanciation partielle {(Xi,vi),(Xj,vj),(Xk,vk)} satisfait toutes les contraintes binaires de C portant exclusivement sur Xi, Xj et XkPrincipe d’un algorithme de consistance de chemin filtrage des paires de valeurs permises  pour chaque paire (Xi,Xj) de variables  enlever de Mp[i,j) toute paire (vi,vj) de valeurs telle qu’il existe une variable Xk pour laquelle, pour toute valeur vk de D(Xk)  l’instanciation partielle {(Xi,vi),(Xk,vk)} viole les contraintes binaires portant exclusivement sur Xi et Xk  ou l’instanciation partielle {(Xk,vk),(Xj,vj)} viole les contraintes binaires portant exclusivement sur Xk et Xj Master2SII->Programmation Par05/01/2011 Contraintes 47
  48. 48. CHAPITRE III Résolution d’un CSP binaireconsistance de chemin (path-consistency) Pour les CSP binaires discrets, la consistance de chemin est généralement jugée trop coûteuse  On se restreint aux consistances de noeud et d’arc  Un CSP binaire discret dont les domaines sont des singletons  Si arc-consistant alors consistant CSP temporels et CSP spatiaux  Vérifient les propriétés de consistance de noeud et de consistance d’arc  La consistance de chemin prend toute son importance Master2SII->Programmation Par05/01/2011 Contraintes 48
  49. 49. CHAPITRE III Résolution d’un CSP binaireAlgorithmes de consistance d’arc AC ou REVISE :  réduit la taille des domaines  supprime les valeurs qui violent les contraintes binaires AC1 : 1. appliquer REVISE à tous les arcs sur lesquels il y a une contrainte 2. Si aucun domaine n’a été modifié, la procédure prend fin 3. Sinon aller à 1  Inconvénient : réapplique REVISE à tous les arcs sur les lesquels il y a une contrainte :  Même aux arcs non modifiés par la passe précédente  jusqu’à fermeture AC3 :  ne réapplique REVISE qu’aux arcs modifés Master2SII->Programmation Par05/01/2011 Contraintes 49
  50. 50. CHAPITRE III Résolution d’un CSP binairefonction REVISE((Xi , Xj ),(X,D,C)) : booléen début DELETE ← FAUX pour tous les Vi de D(Xi) faire si il n’y a pas de Vj dans D(Xj) telle que {(Xi,vi),(Xj,vj)} satisfait les contraintes binaires entre Xi et Xj alors supprimer Vi de D(Xi) DELETE ← VRAI finsi fin pour retourner DELETE fin Master2SII->Programmation Par05/01/2011 Contraintes 50
  51. 51. CHAPITRE III Résolution d’un CSP binairefonction AC1((X,D,C)) début Q ← {(Xi,Xj) : il existe une contrainte entre Xi et Xj } répéter R ← FALSE pour tous les (Xi,Xj) de Q faire R ← (R ou REVISE((Xi,Xj),(X,D,C))) fin pour jusqu’à non R retourner (X,D,C) fin Master2SII->Programmation Par05/01/2011 Contraintes 51
  52. 52. CHAPITRE III Résolution d’un CSP binairefonction AC3((X,D,C)) début Q ← {(Xi,Xj ) : il existe une contrainte entre Xi et Xj } tantque Q≠∅ faire Prendre une paire (Xi,Xj) de variables de Q supprimer la paire de Q : 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} finsi fin-tantque retourner (X,D,C)fin Master2SII->Programmation Par05/01/2011 Contraintes 52
  53. 53. CHAPITRE III Résolution d’un CSP binaireForward checking et Look-ahead  Combinaison du filtrage et du retour-arrière :  filtrage durant la résolution : Quand une variable est instanciée, propager le changement aux variables non encore instanciées  Forward checking :  Propager le changement à toutes les contraintes portant sur la variable venant d’être instanciée et les variables non encore instanciées  Look ahead :  Propager le changement à toutes les contraintes dont au moins une des variables sur lesquelles elles portent n’est pas encore instanciée Master2SII->Programmation Par05/01/2011 Contraintes 53
  54. 54. CHAPITRE III Résolution d’un CSP binairefonction FC(A,(X,D,C)) : booléendébutsi toutes les variables de X sont instanciées alors retourner VRAIsinon choisir une variable Xi de X qui n’est pas encore instanciée pour toute valeur Vi de D(Xi) faire non_instanciees={Xj∈X : Xj non encore instanciée} domaine_vide=faux D’=D //D’(Xj)=D(Xj), pour toute variable Xj tantque (non_instanciees≠∅) et (domaine_vide=faux) faire considérer une variable Xj de l’ensemble non_instanciees non_instanciees=non_instanciees{Xj} D’(Xj)={Vj∈D(Xj)|A∪{(Xi,Vi),(Xj,Vj)} est consistante } si D’(Xj) vide alors domaine_vide=vrai finsi fin-tantque si (domaine_vide=faux) alors si FC(A ∪{(Xi,Vi)},(X,D’,C)) alors retourner VRAI finsi finsi fin-pour retourner FAUX //l’instanciation partielle A ne peut pas être étendue à la variable Xifinsi Master2SII->Programmation Par05/01/2011fin Contraintes 54
  55. 55. CHAPITRE III Résolution d’un CSP binaire Master2SII->Programmation Par05/01/2011 Contraintes 55
  56. 56. CHAPITRE III Résolution d’un CSP binairefonction Look_Ahead(A,(X,D,C)) : booléendébutsi toutes les variables de X sont instanciées alors retourner VRAIsinon choisir une variable Xi de X qui n’est pas encore instanciée pour toute valeur Vi de D(Xi) faire D’(Xi)={Vi} D’=(D{D(Xi)})∪{D’(Xi)} AC3(X,D’,C) si (aucun domaine de D’ n’est vide) alors si Look_Ahead(A ∪{(Xi,Vi)},(X,D’,C)) alors retourner VRAI finsi finsi fin-pour retourner FAUX //l’instanciation partielle A ne peut pas être étendue à la variable Xifinsifin Master2SII->Programmation Par05/01/2011 Contraintes 56
  57. 57. CHAPITRE IV CSP binaires continus CSP binaires continus  Le domaine de chacune des variables est continu  L’ensemble continu des points du temps modélisé par IR  L’ensemble continu des points du plan modélisé par IR2  Le sous-ensemble de IR2 constituant les intervalles de temps : toutes les paires (d,f) de IR2 vérifiant d<f Master2SII->Programmation Par05/01/2011 Contraintes 57
  58. 58. CHAPITRE IV CSP binaires continusCSP binaires continus  CSP quantitatifs  TCSP : Temporal Constraint Satisfaction Problems  CSP qualitatifs  « make only as many distinctions as necessary »  L’algèbre des points  L’algèbre des intervalles  L’algèbre des directions cardinales Master2SII->Programmation Par05/01/2011 Contraintes 58
  59. 59. CHAPITRE IV CSP binaires continusCSP binaires continus TCSP : Temporal Constraint Satisfaction Problems Paire P=(X,C) :  X ensemble fini de variables : X={X1, …,Xn}  C ensemble fini de contraintes sur les variables de P  Le domaine de chacune des variables est l’ensemble IR des réels ou l’ensemble Q des rationnels  Le domaine commun des variables sera noté D(P) Master2SII->Programmation Par05/01/2011 Contraintes 59
  60. 60. CHAPITRE IV CSP binaires continusCSP binaires continus TCSP P=(X,C) : Contraintes  Contraintes binaires  (Xj-Xi)∈Cij, avec Cij⊆D(P)  Contraintes unaires  Xi ∈Ci, Ci⊆D(P) Master2SII->Programmation Par05/01/2011 Contraintes 60
  61. 61. CHAPITRE IV CSP binaires continusCSP binaires continus TCSP P=(X,C) : ajout d’une variable X0 origine du monde  X={X0,X1, …,Xn}  Contraintes unaires transformées en contraintes binaires  Xi ∈Ci devient (Xi-X0)∈C0i  C0i =Ci Master2SII->Programmation Par05/01/2011 Contraintes 61
  62. 62. CHAPITRE IV CSP binaires continusReprésentation graphique d’un TCSP La représentation graphique d’un TCSP P=(X,C) est un graphe orienté étiqueté GP=(X,E,l) défini comme suit :  L’ensemble des sommets de GP est l’ensemble X des variables de P  Pour toutes variables Xi et Xj, si P admet une contrainte portant sur Xi et Xj, alors GP contient un et un seul des deux arcs (Xi,Xj) et (Xj,Xi)  Pour toutes variables Xi et Xj, si P n’admet aucune contrainte portant sur Xi et Xj, alors GP ne contient ni l’arc (Xi,Xj) ni l’arc (Xj,Xi)  Pour tout arc (Xi,Xj) de GP, l’étiquette l(Xi,Xj) de (Xi,Xj) est tirée de la contrainte (Xj-Xi)∈Cij de P portant sur Xi et Xj : l(Xi,Xj)= Cij Master2SII->Programmation Par05/01/2011 Contraintes 62
  63. 63. CHAPITRE IV CSP binaires continusReprésentation matricielle d’un TCSP La représentation matricielle d’un TCSP P=(X,C) est une matrice carrée notée MP, à |X| lignes et |X| colonnes définie comme suit :  Pour toute variable Xi, MP[i,i]={0}  Pour toutes variables distinctes Xi et Xj, telles que (Xi,Xj) est arc de GP :  Mp[i,j] est l’étiquette de l’arc (Xi,Xj)  Mp[j,i] est l’inverse de Mp[i,j]  Pour toutes les autres paires (Xi,Xj) de variables :  Mp[i,j]=Mp[j,i]=D(P) Master2SII->Programmation Par05/01/2011 Contraintes 63
  64. 64. CHAPITRE IV CSP binaires continusCSP binaires continus TCSP P=(X,C)  Inverse d’une contrainte  Intersection de deux contraintes  Composition de deux contraintes Master2SII->Programmation Par05/01/2011 Contraintes 64
  65. 65. CHAPITRE IV CSP binaires continusCSP binaires continus TCSP P=(X,C)  Nœud-consistant  Arc-consistant Master2SII->Programmation Par05/01/2011 Contraintes 65
  66. 66. CHAPITRE IV CSP binaires continusCSP binaires continus TCSP P=(X,C)  Consistance de chemin : répéter jusqu’à fermeture  Pour tout triplet (Xi,Xj,Xk) de variables ne vérifiant pas Cij⊆Cik°Ckj  Cij=Cij∩Cik°Ckj Master2SII->Programmation Par05/01/2011 Contraintes 66
  67. 67. CHAPITRE IV CSP binaires continusCSP binaires continus TCSP P=(X,C)  STP : Simple Temporal Problem  Toutes les contraintes sont convexes Master2SII->Programmation Par05/01/2011 Contraintes 67
  68. 68. CHAPITRE IV CSP binaires continusCSP binaires continus TCSP P=(X,C) : résolution  Recherche d’un raffinement convexe chemin-consistant  Ordre d’instanciation sur les paires de variables  Une paire de variables est instanciée avec les blocs convexes constituant son étiquette  A chaque fois qu’une nouvelle paire est instanciée  Filtrage : consistance de chemin  Si inconsistance détectée : échec (retour arrière)  Si instanciation avec succès de toutes les paires de variables  raffinement convexe chemin-consistant (consistant) Master2SII->Programmation Par05/01/2011 Contraintes 68
  69. 69. CHAPITRE IV CSP binaires continusAlgèbre des points Objets et relations  Objets : les points de la droite réelle (temps)  Relations qualitatives sur des paires de points :  Relations atomiques : < = >  Relations générales (disjonctives) :  Sous-ensembles de {<,=,>} Master2SII->Programmation Par05/01/2011 Contraintes 69
  70. 70. CHAPITRE IV CSP binaires continusAlgèbre des points Relation Notation {} ∅ {<} < {=} = {>} > {<,=} ≤ {<,>} ≠ {>,=} ≥ {<,=,>} ? Master2SII->Programmation Par05/01/2011 Contraintes 70
  71. 71. CHAPITRE IV CSP binaires continusAlgèbre des points CSP qualitatif de points Paire P=(X,C) :  X ensemble fini de variables : X={X1, …,Xn}  C ensemble fini de contraintes binaires sur des paires de variables de P  Le domaine de chacune des variables est l’ensemble IR des réels ou l’ensemble Q des rationnels  Le domaine commun des variables sera noté D(P) Master2SII->Programmation Par05/01/2011 Contraintes 71
  72. 72. CHAPITRE IV CSP binaires continusAlgèbre des points CSP qualitatif de points P=(X,C) : Contraintes  R(Xi,Xj), R étant une des huit relations de l’algèbre des points Master2SII->Programmation Par05/01/2011 Contraintes 72
  73. 73. CHAPITRE IV CSP binaires continusAlgèbre des points CSP qualitatif de points P=(X,C)  Représentation graphique  Représentation matricielle Master2SII->Programmation Par05/01/2011 Contraintes 73
  74. 74. CHAPITRE IV CSP binaires continusAlgèbre des points Inverse Relation atomique r Inverse r-1 de r < > = = > < Master2SII->Programmation Par05/01/2011 Contraintes 74
  75. 75. CHAPITRE IV CSP binaires continusAlgèbre des points Intersection ∅ < = > ≤ ≠ ≥ ? ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ < ∅ < ∅ ∅ < < ∅ < = ∅ ∅ = ∅ = ∅ = = > ∅ ∅ ∅ > ∅ > > > ≤ ∅ < = ∅ ≤ < = ≤ ≠ ∅ < ∅ > < ≠ > ≠ ≥ ∅ ∅ = > = > ≥ ≥ ? ∅ < = > ≤ ≠ ≥ ? Master2SII->Programmation Par05/01/2011 Contraintes 75
  76. 76. CHAPITRE IV CSP binaires continusAlgèbre des points Table de composition < = > < < < ? = < = > > ? > > Master2SII->Programmation Par05/01/2011 Contraintes 76
  77. 77. CHAPITRE IV CSP binaires continusAlgèbre des points CSP qualitatif de points P=(X,C)  Nœud-consistant  Arc-consistant Master2SII->Programmation Par05/01/2011 Contraintes 77
  78. 78. CHAPITRE IV CSP binaires continusAlgèbre des points CSP qualitatif de points P=(X,C)  Consistance de chemin : répéter jusqu’à fermeture  Pour tout triplet (Xi,Xj,Xk) de variables ne vérifiant pas Cij⊆Cik°Ckj  Cij=Cij∩Cik°Ckj Master2SII->Programmation Par05/01/2011 Contraintes 78
  79. 79. CHAPITRE IV CSP binaires continusAlgèbre des points CSP qualitatif de points P=(X,C)  L’algèbre des points est un formalisme polynomial  La consistance de chemin, qui est de complexité cubique, décide la consistance d’un CSP qualitatif de points :  Si la consistance de chemin ne rencontre pas la relation ∅ alors le CSP en entrée est consistant  Il y a même mieux pour l’algèbre des points :  Il y a un algorithme quadratique pour le problème de consistance d’un CSP qualitatif de points Master2SII->Programmation Par05/01/2011 Contraintes 79
  80. 80. CHAPITRE IV CSP binaires continusAlgèbre des intervalles Objets et relations  Objets : les intervalles de la droite réelle (temps)  Relations qualitatives sur des paires d’intervalles :  Relations atomiques : 13  Relations générales (disjonctives) :  Sous-ensembles de relations atomiques : 213=8192 Master2SII->Programmation Par05/01/2011 Contraintes 80
  81. 81. CHAPITRE IV CSP binaires continusAlgèbre des intervalles Les 13 relations atomiques Symbole Signification Traduction < before avant m meets rencontre o overlaps chevauche fi finished-by terminé-par di contains contient s starts commence eq equals égale si started-by commencé-par d during durant f finishes termine oi overlapped-by chevauché-par mi met-by rencontré-par > after après Master2SII->Programmation Par05/01/2011 Contraintes 81
  82. 82. CHAPITRE IV CSP binaires continusAlgèbre des intervalles CSP qualitatif d’intervalles Paire P=(X,C) :  X ensemble fini de variables : X={X1, …,Xn}  C ensemble fini de contraintes binaires sur des paires de variables de P  Le domaine de chacune des variables est l’ensemble {(d,f)∈IR2 : d<f} ou l’ensemble {(d,f)∈Q2 : d<f}  Le domaine commun des variables sera noté D(P) Master2SII->Programmation Par05/01/2011 Contraintes 82
  83. 83. CHAPITRE IV CSP binaires continusAlgèbre des intervallesCSP qualitatif d’intervalles P=(X,C) : Contraintes  R(Xi,Xj), R étant une des 8192 relations de l’algèbre des intervalles Master2SII->Programmation Par05/01/2011 Contraintes 83
  84. 84. CHAPITRE IV CSP binaires continusAlgèbre des intervalles CSP qualitatif d’intervalles P=(X,C)  Représentation graphique  Représentation matricielle Master2SII->Programmation Par05/01/2011 Contraintes 84
  85. 85. CHAPITRE IV CSP binaires continusAlgèbre des intervalles Inverse r r-1 r r-1 < > > < m mi mi m o oi oi o s si si s d di di d f fi fi f eq eq Master2SII->Programmation Par05/01/2011 Contraintes 85
  86. 86. CHAPITRE IV CSP binaires continusAlgèbre des intervalles Intersection  R1∩R2={r : r∈R1 et r∈R2}  Intersection ensembliste Master2SII->Programmation Par05/01/2011 Contraintes 86
  87. 87. CHAPITRE IV CSP binaires continusAlgèbre des intervalles Composition  La composition faible de deux relations R1 et R2 est la plus petite relation R telle que pour tous intervalles I, J et K de la droite réelle :  Si R1(I,K) et R2(K,J) alors R(I,J)  R coïncide avec la composition exacte R1°R2 si pour tous intervalles I et J tels que R(I,J), il existe un intervalle K tel que R1(I,K) et R2(K,J) Master2SII->Programmation Par05/01/2011 Contraintes 87
  88. 88. CHAPITRE IV CSP binaires continusAlgèbre des intervalles Composition  Composition faible = composition exacte  R1°R2=∪ r1°r2 r1∈R1,r2∈R2 Master2SII->Programmation Par05/01/2011 Contraintes 88
  89. 89. CHAPITRE IV CSP binaires continusAlgèbre des intervalles Table de composition  Table 13x13 dont les lignes et les colonnes sont indicées par les relations atomiques  L’élément (r1,r2) donne la composition r1°r2 de r1 et r2 Master2SII->Programmation Par05/01/2011 Contraintes 89
  90. 90. CHAPITRE IV CSP binaires continusAlgèbre des intervalles Table de composition ° < … oi …> eq < < … {d,s,o,m,<} … ? < … … … … … … … s < … {oi,f,d} … > s … … … … … … … > ? … > … > > eq < … … > eq Master2SII->Programmation Par05/01/2011 Contraintes 90
  91. 91. CHAPITRE IV CSP binaires continusAlgèbre des intervalles CSP qualitatif d’intervalles P=(X,C)  Nœud-consistant  Arc-consistant Master2SII->Programmation Par05/01/2011 Contraintes 91
  92. 92. CHAPITRE IV CSP binaires continusAlgèbre des intervalles CSP qualitatif d’intervalles P=(X,C)  Consistance de chemin : répéter jusqu’à fermeture  Pour tout triplet (Xi,Xj,Xk) de variables ne vérifiant pas Cij⊆Cik°Ckj  Cij=Cij∩Cik°Ckj Master2SII->Programmation Par05/01/2011 Contraintes 92
  93. 93. CHAPITRE IV CSP binaires continusAlgèbre des intervalles CSP qualitatif d’intervalles P=(X,C)  L’algèbre des intervalles est un formalisme NP-complet  La consistance de chemin, qui est de complexité cubique, décide la consistance d’un CSP qualitatif atomique d’intervalles :  Si la consistance de chemin ne rencontre pas la relation ∅ alors le CSP en entrée est consistant  Pour résoudre un CSP général d’intervalles :  Utiliser la consistance de chemin comme algorithme de validation  Choix (non-déterminisme) d’une relation atomique sur chacun des arcs disjonctifs  Appliquer la consistance de chemin au CSP atomique résultant Master2SII->Programmation Par05/01/2011 Contraintes 93
  94. 94. CHAPITRE IV CSP binaires continusAlgèbre des directions cardinales Objets et relations  Objets : les points du plan (espace 2-dimensionnel)  Relations qualitatives sur des paires de points :  Relations atomiques : 9  Relations générales (disjonctives) :  Sous-ensembles de relations atomiques : 29=512 Master2SII->Programmation Par05/01/2011 Contraintes 94
  95. 95. CHAPITRE IV CSP binaires continusAlgèbre des directions cardinales Les 9 relations atomiquesSymbole Signification Traduction Algèbre des pointsSW South-West sud-ouest (<,<)W West ouest (<,=)NW North-West nord-ouest (<,>)S South sud (=,<)EQ Equal Egal (=,=)N North nord (=,>)SE South-East sud-est (>,<)E East est (>,=) Master2SII->Programmation Par NE North-East nord-est (>,>)05/01/2011 Contraintes 95
  96. 96. CHAPITRE IV CSP binaires continusAlgèbre des directions cardinales CSP qualitatif de directions cardinales Paire P=(X,C) :  X ensemble fini de variables : X={X1, …,Xn}  C ensemble fini de contraintes binaires sur des paires de variables de P  Le domaine de chacune des variables est l’ensemble IR2 ou l’ensemble Q2  Le domaine commun des variables sera noté D(P) Master2SII->Programmation Par05/01/2011 Contraintes 96
  97. 97. CHAPITRE IV CSP binaires continusAlgèbre des directions cardinalesCSP qualitatif de directions cardinales P=(X,C) : Contraintes  R(Xi,Xj), R étant une des 512 relations de l’algèbre des directions cardinales Master2SII->Programmation Par05/01/2011 Contraintes 97
  98. 98. CHAPITRE IV CSP binaires continusAlgèbre des directions cardinales CSP qualitatif de directions cardinales P=(X,C)  Représentation graphique  Représentation matricielle Master2SII->Programmation Par05/01/2011 Contraintes 98
  99. 99. CHAPITRE IV CSP binaires continusAlgèbre des directions cardinales InverseRelation atomique r Inverse r-1 de rSW NEW ENW SES NEQ EQN SSE NWE W Master2SII->Programmation Par NE05/01/2011 SWContraintes 99
  100. 100. CHAPITRE IV CSP binaires continusAlgèbre des directions cardinales Intersection  R1∩R2={r : r∈R1 et r∈R2}  Intersection ensembliste Master2SII->Programmation Par05/01/2011 Contraintes 100
  101. 101. CHAPITRE IV CSP binaires continusAlgèbre des directions cardinales Table de composition ° SW … N … NE EQ SW SW … {SW,W,NW … ? SW … … … } … … … … S SW … {S,EQ,N} … {SW,W,NW S } … … … … … … … NE ? … NE … NE NE EQ SW … N … NE EQ Master2SII->Programmation Par05/01/2011 Contraintes 101
  102. 102. CHAPITRE IV CSP binaires continusAlgèbre des directions cardinales CSP qualitatif de directions cardinales P=(X,C)  Nœud-consistant  Arc-consistant Master2SII->Programmation Par05/01/2011 Contraintes 102
  103. 103. CHAPITRE IV CSP binaires continusAlgèbre des directions cardinales CSP qualitatif de directions cardinales P=(X,C)  Consistance de chemin : répéter jusqu’à fermeture  Pour tout triplet (Xi,Xj,Xk) de variables ne vérifiant pas Cij⊆Cik°Ckj  Cij=Cij∩Cik°Ckj Master2SII->Programmation Par05/01/2011 Contraintes 103
  104. 104. CHAPITRE IV CSP binaires continusAlgèbre des directions cardinales CSP qualitatif de directions cardinales P=(X,C)  L’algèbre des directions cardinales est un formalisme NP-complet  La consistance de chemin, qui est de complexité cubique, décide la consistance d’un CSP qualitatif atomique de directions cardinales :  Si la consistance de chemin ne rencontre pas la relation ∅ alors le CSP en entrée est consistant  Pour résoudre un CSP général de directions cardinales :  Utiliser la consistance de chemin comme algorithme de validation  Choix (non-déterminisme) d’une relation atomique sur chacun des arcs disjonctifs  Appliquer la consistance de chemin au CSP atomique résultant Master2SII->Programmation Par05/01/2011 Contraintes 104
  105. 105. CHAPITRE IV CSP binaires continusAlgorithmes de consistance de chemin REVISE :  réduit les éléments de la représentation matricielle (les étiquettes des arcs de la représentation matricielle)  supprime des paires de valeurs permises par une contrainte binaire, et qui n’ont pas de correspondant dans au moins une troisième variable PC1 : 1. appliquer REVISE à tous les triplets de variables 2. Si aucune étiquette n’a été modifiée, la procédure prend fin 3. Sinon aller à 1  Inconvénient : réapplique REVISE à tous les triplets de variables :  jusqu’à fermeture PC3 :  ne réapplique REVISE qu’aux triplets présentant une étiquette modifiée Master2SII->Programmation Par05/01/2011 Contraintes 105
  106. 106. CHAPITRE IV CSP binaires continusfonction REVISE((Xi,Xk,Xj),(X,D,C)) : booléen début temp=Cik Cik=Cik∩Cij°Cjk si temp=Cik alors retourner FAUX sinon{ Cki=(Cik)-1 retourner VRAI } finsi fin Master2SII->Programmation Par05/01/2011 Contraintes 106
  107. 107. CHAPITRE IV CSP binaires continusfonction PC1((X,D,C)) début Q ← {(Xi,Xk,Xj) : i<k et j∉{i,k}} répéter R ← FALSE pour tous les (Xi,Xk,Xj) de Q faire R ← (R ou REVISE((Xi,Xk,Xj),(X,D,C))) fin pour jusqu’à non R retourner (X,D,C) fin Master2SII->Programmation Par05/01/2011 Contraintes 107
  108. 108. CHAPITRE IV CSP binaires continusfonction PC3((X,C)) début Q ← {(Xi,Xj) : (i<j) et il existe une contrainte entre Xi et Xj} tantque Q≠∅ faire Prendre une paire (Xi,Xj) de variables de Q supprimer la paire de Q : Q ← Q{(Xi,Xj)} pour toute variable Xk différente de Xi et de Xj faire si REVISE((Xi,Xk,Xj),(X,C)) alors Q←Q∪{(Xk,Xi)} finsi si REVISE((Xj,Xk,Xi),(X,C)) alors Q←Q∪{(Xk,Xi)} finsi fait fin-tantque retourner (X,C) fin Master2SII->Programmation Par05/01/2011 Contraintes 108
  109. 109. CHAPITRE IV CSP binaires continusfonction Look_Ahead((X,C)) : booléendébutPC3(X,C)si (C contient des éléments vides) alors retourner FAUX finsisi toutes les paires de variables sont instanciées alors retourner VRAISinon choisir une paire (Xi,Xj) de variables qui n’est pas encore instanciée pour tout élément r de C[i,j] faire //r bloc convexe si TCSP C’=C //r relation atomique si CSP qualitatif C’[i,j]=r C’[j,i]=r-1 Look_Ahead((X,C’)) fin-pourfinsifin Master2SII->Programmation Par05/01/2011 Contraintes 109
  110. 110. CHAPITRE IV CSP binaires continusExemple 1 : TCSP Le problème de fragmentation Remède : consistance de chemin faible Xk [-2,-1]∪[5,6] [-4,-3]∪[10,15] Xi Xj [-7,-1]∪[1,20] [-6,-4]∪[1,3]∪[8,14]∪[15,20] Master2SII->Programmation Par05/01/2011 Contraintes 110
  111. 111. CHAPITRE IV CSP binaires continusExemple 2 : CSP qualitatif de directions cardinales  Béjaia est à l’est d’Alger  Oran est à l’ouest d’Alger  Le bâteau est au nord-est d’Alger  satellite 1 à l’instant t  Le bâteau est au nord ou au nord-est d’Oran  satellite 2 au même instant t Master2SII->Programmation Par05/01/2011 Contraintes 111
  112. 112. CHAPITRE IV CSP binaires continusExemple 3 : CSP qualitatif de directions cardinales  Béjaia est à l’est d’Alger  Oran est à l’ouest d’Alger  Le bâteau est au au nord ou au nord-est d’Alger  satellite 1 à l’instant t  Le bâteau est au nord-est d’Oran  satellite 2 au même instant t Master2SII->Programmation Par05/01/2011 Contraintes 112
  113. 113. CHAPITRE IV CSP binaires continusExemple 4 : CSP qualitatif de directions cardinales  Béjaia est à l’est d’Alger  Oran est à l’ouest d’Alger  Le bâteau est au nord-ouest d’Alger  satellite 1 à l’instant t  Le bâteau est au nord-est de Béjaia  satellite 2 au même instant t Master2SII->Programmation Par05/01/2011 Contraintes 113
  114. 114. CHAPITRE IV Programmation logiqueLes termes Les objets manipulés par un programme (données)  Les variables  Les termes élémentaires (termes atomiques)  Les termes composés Master2SII->Programmation Par05/01/2011 Contraintes 114
  115. 115. CHAPITRE IV Programmation logiqueLes variables  Chaîne alphanumérique commençant par une majuscule (Var, X, Var_longue_2) ou par un souligné (_objet, _100)  La variable anonyme est notée "_" Master2SII->Programmation Par05/01/2011 Contraintes 115
  116. 116. CHAPITRE IV Programmation logiqueLes termes élémentaires (termes atomiques) Les nombres  entiers ou flottants Les identificateurs (aussi appelés atomes)  chaîne alphanumérique commençant par une minuscule  Exemples : alger bureau226 bab_ezzouar Les chaînes de caractères entre guillemets  Exemples : "#{@" "alger" "2010’’ Master2SII->Programmation Par05/01/2011 Contraintes 116
  117. 117. CHAPITRE IV Programmation logiqueLes termes composés :  foncteur(t1,…,tn)  foncteur : chaine alphanumérique commençant par une minuscule  t1, …,tn : termes  n : arité du terme  Exemples  adresse(18,"rue de la dignité",Ville)  cons(a,cons(X,nil)) Master2SII->Programmation Par05/01/2011 Contraintes 117
  118. 118. CHAPITRE IV Programmation logiqueLes relations ou atomes logiques symbole_de_prédicat(t , ..., t ) 1 n symbole_de_prédicat : chaîne alphanumérique commençant par une minuscule t1, …, tn : termes Exemples  pere(rachid,ines)  habite(X,adresse(1,"rue de la dignité",alger)) Master2SII->Programmation Par05/01/2011 Contraintes 118
  119. 119. CHAPITRE IV Programmation logiqueLes clauses Une clause  affirmation inconditionnelle (fait)  affirmation conditionnelle (règle) Master2SII->Programmation Par05/01/2011 Contraintes 119
  120. 120. CHAPITRE IV Programmation logiqueLes clauses fait : atome logique A  la relation définie par A est vraie (sans condition)  Exemple  pere(rachid,ines)  la relation "rachid est le père de ines" est vraie (sans condition) Master2SII->Programmation Par05/01/2011 Contraintes 120
  121. 121. CHAPITRE IV Programmation logiqueLes clauses règle : A0 :- A1,…,An.  A0,A1,…,An : atomes logiques  La relation A0 est vraie si les relations A1, …,An sont vraies  A0 : tête de clause  A1,…,An : corps de clause Master2SII->Programmation Par05/01/2011 Contraintes 121
  122. 122. CHAPITRE IV Programmation logiqueLes clauses Une variable apparaissant dans la tête dune règle (et éventuellement dans son corps) est quantifiée universellement Une variable apparaissant dans le corps dune clause mais pas dans sa tête est quantifiée existentiellement Master2SII->Programmation Par05/01/2011 Contraintes 122
  123. 123. CHAPITRE IV Programmation logiqueLes clauses : exemple meme_pere(X,Y) :- pere(P,X), pere(P,Y). pour tout X et pour tout Y  meme_pere(X,Y) est vrai sil existe un P tel que pere(P,X) et pere(P,Y) soient vrais Master2SII->Programmation Par05/01/2011 Contraintes 123
  124. 124. CHAPITRE IV Programmation logiqueUn programme prolog Suite de clauses regroupées en paquets L’ordre dans lequel sont définis les paquets n’est pas significatif Paquet :  Suite de clauses ayant le même atome de tête  L’arité de l’atome de tête (d’un même paquet) est la même au niveau de toutes les clauses du paquet  Un paquet définit un prédicat (dont le nom est l’atome de tête du paquet)  Un paquet définit une disjonction de clauses  L’ordre des clauses dans un paquet est donc important, voire crucial  L’efficacité de la résolution en dépend Un programme prolog définit une conjonction de paquets Master2SII->Programmation Par05/01/2011 Contraintes 124
  125. 125. CHAPITRE IV Programmation logiqueUn programme prolog : exemple personne(X) :- homme(X). personne(X) :- femme(X). Un paquet à deux clauses pour tout X  personne(X) est vrai si homme(X) est vrai ou femme(X) est vrai Master2SII->Programmation Par05/01/2011 Contraintes 125
  126. 126. CHAPITRE IV Programmation logiqueExécution d’un programme prolog Exécuter un programme prolog revient à poser une question à l’interprète PROLOG Question (également appelée but ou activant)  Suite d’atomes logiques séparés par des virgules Réponse de l’interprète PROLOG à une question  yes si la question est une conséquence logique du programme  no sinon (si la question n’est pas une conséquence logique du programme) Master2SII->Programmation Par05/01/2011 Contraintes 126
  127. 127. CHAPITRE IV Programmation logiqueExécution d’un programme prolog une question peut inclure des variables, qui sont alors quantifiées existentiellement  La réponse de Prolog à une telle question est lensemble des valeurs des variables pour lesquelles la question est une conséquence logique du programme  Toutes les instanciations satisfaisant la formule "programme implication-logique question" Master2SII->Programmation Par05/01/2011 Contraintes 127
  128. 128. CHAPITRE IV Programmation logiqueExécution d’un programme prolog ?- pere(rachid,X), pere(X,Y). Existe-t-il un X et un Y tels que pere(rachid,X) et pere(X,Y) soient vrais Réponse de prolog :  enfants et petits-enfants de rachid si rachid est grand-père Master2SII->Programmation Par05/01/2011 Contraintes 128
  129. 129. CHAPITRE IV Programmation logiqueSubstitution  Fonction s de l’ensemble des variables dans l’ensemble des termes  s={XY,Zf(a,Y)} est la substitution remplaçant X par Y et Z par f(a,Y), et laisse inchangées les autres variables  Une substitution peut être appliquée à un atome :  s(p(X,f(Y,Z)))=p(s(X),f(s(Y),s(Z))=P(Y,f(Y,f(a,Y))) Master2SII->Programmation Par05/01/2011 Contraintes 129
  130. 130. CHAPITRE IV Programmation logiqueInstance  Une instance d’un atome logique A est l’atome s(A) obtenu par application d’une substitution s à A  L’atome pere(rachid, ines) est une instance de l’atome pere(rachid,X) :  Appliquer, par exemple, la substituion s={Xines} Master2SII->Programmation Par05/01/2011 Contraintes 130
  131. 131. CHAPITRE IV Programmation logiqueUnificateur  Un unificateur de deux atomes logiques A1 et A2 est une substitution s telle que s(A1)=s(A2)  s={Xa,Zf(a,Y)} est un unificateur des deux atomes A1=p(X,f(X,Y)) et A2=p(a,Z)  s(A1)=s(A2)=p(a,f(a,Y)) Master2SII->Programmation Par05/01/2011 Contraintes 131
  132. 132. CHAPITRE IV Programmation logiqueUnificateur plus général  Un unificateur s de deux atomes logiques A1 et A2 est dit unificateur le plus général (upg) si pour tout autre unificateur s’, il existe une substitution s’’ telle que s’=s’’(s)  s={XY} est un upg des deux atomes p(X,b) et p(Y,b)  s’={Xa,Ya} est un unificateur de p(X,b) et p(Y,b) mais pas un upg Master2SII->Programmation Par05/01/2011 Contraintes 132
  133. 133. CHAPITRE IV Programmation logiqueAlgorithme d’unification de Robinson  Entrée : deux atomes A1 et A2  Sortie :  un upg de A1 et A2 si A1 et A2 sont unifiables  Échec sinon Master2SII->Programmation Par05/01/2011 Contraintes 133
  134. 134. CHAPITRE IV Programmation logiqueDénotation d’un programme Prolog  La dénotation d’un programme Prolog P est l’ensemble de tous les atomes logiques A qui sont des conséquences logiques de P  Lorsqu’on exécute un programme Prolog P en posant une question (ou but) Q :  La réponse de Prolog est l’ensemble des instances de la question Q qui font partie de la dénotation de P Master2SII->Programmation Par05/01/2011 Contraintes 134
  135. 135. CHAPITRE IV Programmation logiqueDénotation d’un programme Prolog  La dénotation d’un programme Prolog P peut être calculée par une approche ascendante (en chaînage avant)  Partir des faits  Appliquer les règles pour déduire de nouveaux faits, jusqu’à fermeture Master2SII->Programmation Par05/01/2011 Contraintes 135
  136. 136. CHAPITRE IV Programmation logiqueDénotation d’un programme Prolog parent(rachid,ines). parent(ines,mohamed). parent(ali,younes). parent(younes,said). homme(rachid). homme(ali). pere(X,Y):-parent(X,Y),homme(X). gdpere(X,Y):-pere(X,Z),parent(Z,Y). Master2SII->Programmation Par05/01/2011 Contraintes 136
  137. 137. CHAPITRE IV Programmation logiqueDénotation d’un programme Prolog L’ensemble des faits de P (relations vraies sans condition) :  E0={parent(rachid,ines), parent(ines,mohamed), parent(ali,younes), parent(younes,said), homme(rachid), homme(ali)} On applique les règles de P à E0 pour obtenir :  E1={pere(rachid,ines), pere(ali,younes)} Master2SII->Programmation Par05/01/2011 Contraintes 137
  138. 138. CHAPITRE IV Programmation logiqueDénotation d’un programme Prolog On applique les règles de P à E0∪E1 pour obtenir :  E2={gdpere(rachid,mohamed), gdpere(ali,said)}  L’application des règles de P à E0∪E1∪E2 ne permet pas de déduire de nouveaux faits  La dénotation de P est donc E0∪E1∪E2 ={parent(rachid,ines),parent(ines,mohamed), parent(ali,younes),parent(younes,said), homme(rachid),homme(ali), pere(rachid,ines),pere(ali,younes), gdpere(rachid,mohamed), gdpere(ali,said)} Master2SII->Programmation Par05/01/2011 Contraintes 138
  139. 139. CHAPITRE IV Programmation logiqueDénotation d’un programme Prolog La dénotation d’un programme peut être infinie : plus(0,X,X). plus(succ(X),Y,Z):-plus(X,Y,Z). E={plus(0,X,X), plus(succ(0),X,succ(X)), plus(succ(succ(0)),X,succ(succ(X))), plus(succ(succ(succ(0))),X,succ(succ(succ(X)))), …} Master2SII->Programmation Par05/01/2011 Contraintes 139
  140. 140. CHAPITRE IV Programmation logiqueDénotation d’un programme Prolog Sémantique logique Master2SII->Programmation Par05/01/2011 Contraintes 140
  141. 141. CHAPITRE IV Programmation logiqueSémantique opérationnelle L’ensemble de toutes les conséquences logiques d’un programme (dénotation) ne peut donc pas toujours être calculé MAIS on peut montrer si une but (question) est une conséquence logique d’un programme  But : suite d’atomes logiques (conjonction d’atomes) Master2SII->Programmation Par05/01/2011 Contraintes 141
  142. 142. CHAPITRE IV Programmation logiqueSémantique opérationnelle Pour prouver si un but B=A1,…,An est une conséquence logique d’un programme P :  Approche descendante (en chaînage arrière)  Commencer par prouver que A1 est une conséquence logique de P  Chercher une clause règle de P dont l’atome de tête s’unifie avec A1 C0:-C1,…,Cm telle que upg (A1,C0)=s  Le nouveau but à prouver est But=s(C1),…,s(Cm),s(A2),…,s(An)  Réitérer le processus jusqu’à ce que le but à prouver devienne vide Master2SII->Programmation Par05/01/2011 Contraintes 142
  143. 143. CHAPITRE IV Programmation logiqueprocedure prouver(But: liste datomes logiques ) si But = [] alors /* le but initial est prouvé */ /* afficher les valeurs des variables du but initial */ sinon soit But = [A1, A2, .., An] pour toute clause (C0 :- C1, C2, ..,Cm) du programme: (où les variables ont été renommées) s=upg(A1 ,C0) si s != echec alors prouver([s(C1), s(C2), .. s(Cm), s(A2), .. s(An)]) finsi finpour finsi Master2SII->Programmation Par05/01/2011 Contraintes 143
  144. 144. CHAPITRE IV Programmation logique par contraintesProgrammation logique  Programmation logique par contraintes : Fixer une structure d’interprétation S représentant l’univers du discours Distinguer dans un programme les deux choses suivantes :  Le langage de contraintes défini sur S, supposé décidable  Le langage des prédicats défini par des formules logiques Les formules logiques permettant de définir des prédicats sont restreintes aux clauses de Horn de la forme : A:-c1,…,cm,A1,…,An. CLP(S) Master2SII->Programmation Par05/01/2011 Contraintes 144

×