Programmation par contraintes
Upcoming SlideShare
Loading in...5
×
 

Programmation par contraintes

on

  • 1,018 views

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

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

Statistics

Views

Total Views
1,018
Views on SlideShare
1,018
Embed Views
0

Actions

Likes
0
Downloads
20
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  • 02/12/2010 Programmation Par Contraintes Dr Amar ISLI

Programmation par contraintes Presentation Transcript

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. CHAPITRE III Résolution d’un CSP binaire Master2SII->Programmation Par05/01/2011 Contraintes 42
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. CHAPITRE III Résolution d’un CSP binaire Master2SII->Programmation Par05/01/2011 Contraintes 55
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. CHAPITRE IV CSP binaires continusCSP binaires continus TCSP P=(X,C)  Nœud-consistant  Arc-consistant Master2SII->Programmation Par05/01/2011 Contraintes 65
  • 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. 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. 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. 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. CHAPITRE IV CSP binaires continusAlgèbre des points Relation Notation {} ∅ {<} < {=} = {>} > {<,=} ≤ {<,>} ≠ {>,=} ≥ {<,=,>} ? Master2SII->Programmation Par05/01/2011 Contraintes 70
  • 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. 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. 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. 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. CHAPITRE IV CSP binaires continusAlgèbre des points Intersection ∅ < = > ≤ ≠ ≥ ? ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ < ∅ < ∅ ∅ < < ∅ < = ∅ ∅ = ∅ = ∅ = = > ∅ ∅ ∅ > ∅ > > > ≤ ∅ < = ∅ ≤ < = ≤ ≠ ∅ < ∅ > < ≠ > ≠ ≥ ∅ ∅ = > = > ≥ ≥ ? ∅ < = > ≤ ≠ ≥ ? Master2SII->Programmation Par05/01/2011 Contraintes 75
  • 76. CHAPITRE IV CSP binaires continusAlgèbre des points Table de composition < = > < < < ? = < = > > ? > > Master2SII->Programmation Par05/01/2011 Contraintes 76
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. CHAPITRE IV Programmation logiqueLes clauses Une clause  affirmation inconditionnelle (fait)  affirmation conditionnelle (règle) Master2SII->Programmation Par05/01/2011 Contraintes 119
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. CHAPITRE IV Programmation logiqueDénotation d’un programme Prolog Sémantique logique Master2SII->Programmation Par05/01/2011 Contraintes 140
  • 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. 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. 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. 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