SlideShare une entreprise Scribd logo
1  sur  144
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 Par
05/01/2011                           Contraintes                           1
CHAPITRE I
  Contraintes et problèmes de satisfaction
               de contraintes

Contrainte
            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 Par
05/01/2011                        Contraintes                2
CHAPITRE I
  Contraintes et problèmes de satisfaction
               de contraintes

Définition d’une contrainte
            Définition en extension
            Définition en intention




                      Master2SII->Programmation Par
05/01/2011                      Contraintes           3
CHAPITRE I
    Contraintes et problèmes de satisfaction
                 de contraintes

Problè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 Par
05/01/2011                          Contraintes                    4
CHAPITRE I
  Contraintes et problèmes de satisfaction
               de contraintes

Instanciation 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 Par
05/01/2011                      Contraintes           5
CHAPITRE I
    Contraintes et problèmes de satisfaction
                 de contraintes

Solution 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 Par
05/01/2011                       Contraintes               6
CHAPITRE I
    Contraintes et problèmes de satisfaction
                 de contraintes

Exemple : 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 Par
05/01/2011                          Contraintes                        7
CHAPITRE I
    Contraintes et problèmes de satisfaction
                 de contraintes

Exemple : 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 Par
05/01/2011                          Contraintes                      8
CHAPITRE I
  Contraintes et problèmes de satisfaction
               de contraintes

Exemple : 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 Par
05/01/2011                      Contraintes                        9
CHAPITRE I
    Contraintes et problèmes de satisfaction
                 de contraintes

Exemple : 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 Par
05/01/2011                               Contraintes                      10
CHAPITRE II
                             CSP binaires

CSP 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 Par
05/01/2011                            Contraintes                           11
CHAPITRE II
                          CSP binaires

CSP 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 Par
05/01/2011                         Contraintes                   12
CHAPITRE II
                        CSP binaires

CSP 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 Par
05/01/2011                       Contraintes                 13
CHAPITRE II
                       CSP binaires

CSP 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 Par
05/01/2011                       Contraintes           14
CHAPITRE II
                        CSP binaires

Relations 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 Par
05/01/2011                     Contraintes                           15
CHAPITRE II
                              CSP binaires

Relations 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 Par
05/01/2011                            Contraintes                        16
CHAPITRE II
                          CSP binaires

Inverse 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 Par
05/01/2011                         Contraintes                17
CHAPITRE II
                      CSP binaires

Intersection 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 Par
05/01/2011                     Contraintes               18
CHAPITRE II
                      CSP binaires

Union 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 Par
05/01/2011                     Contraintes               19
CHAPITRE II
                           CSP binaires

Produit 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 Par
05/01/2011                          Contraintes                        20
CHAPITRE II
                                 CSP binaires

Repré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 Par
05/01/2011                                Contraintes                                       21
CHAPITRE II
                       CSP binaires

Exemple
     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 Par
05/01/2011                      Contraintes                     22
CHAPITRE II
                             CSP binaires

Exemple
       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 Par
05/01/2011                            Contraintes                               23
CHAPITRE II
                         CSP binaires

Exemple
       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 Par
05/01/2011                        Contraintes             24
CHAPITRE II
                        CSP binaires

Repré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 Par
05/01/2011                       Contraintes                    25
CHAPITRE II
                               CSP binaires

Repré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 Par
05/01/2011                              Contraintes                                        26
CHAPITRE II
                             CSP binaires

Sous-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 Par
05/01/2011                            Contraintes                          27
CHAPITRE II
                             CSP binaires

Raffinement 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 Par
05/01/2011                            Contraintes                  28
CHAPITRE III
             Résolution d’un CSP binaire

Ré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 Par
05/01/2011                   Contraintes           29
CHAPITRE III
                Résolution d’un CSP binaire
Algorithmes 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 Par
05/01/2011                              Contraintes                        30
CHAPITRE III
               Résolution d’un CSP binaire
Algorithmes 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 Par
05/01/2011                              Contraintes                                          31
CHAPITRE III
             Résolution d’un CSP binaire

Algorithmes 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 Par
05/01/2011                       Contraintes                        32
CHAPITRE III
               Résolution d’un CSP binaire

Algorithme « 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 Par
05/01/2011                              Contraintes                    33
CHAPITRE III
                 Résolution d’un CSP binaire

Algorithme GET
fonction GET(A,(X,D,C)) : booléen
début
si toutes les variables de X sont instanciées alors
     si A est solution alors retourner VRAI Sinon retourner FAUX finsi
Sinon
     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 FAUX
finsi
fin
                                Master2SII->Programmation Par
05/01/2011                                Contraintes                             34
CHAPITRE III
                Résolution d’un CSP binaire

Algorithme GET
fonction 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 Par
05/01/2011                                 Contraintes                                     35
CHAPITRE III
                  Résolution d’un CSP binaire
Algorithme 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 possibles
Algorithme 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 Par
05/01/2011                                    Contraintes                             36
CHAPITRE III
                 Résolution d’un CSP binaire
Algorithme « simple retour arrière » (SRA)
fonction SRA(A,(X,D,C)) : booléen
dé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 FAUX
fin


                               Master2SII->Programmation Par
05/01/2011                               Contraintes                                37
CHAPITRE III
                  Résolution d’un CSP binaire

Exemple : 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 Par
05/01/2011                                        Contraintes               38
CHAPITRE III
                  Résolution d’un CSP binaire

Exemple : 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 Par
05/01/2011                               Contraintes           39
CHAPITRE III
             Résolution d’un CSP binaire

Résolution du problème des quatre reines
   algorithme GET




                     Master2SII->Programmation Par
05/01/2011                     Contraintes           40
CHAPITRE III
             Résolution d’un CSP binaire

Résolution du problème des quatre reines
   algorithme SRA




                     Master2SII->Programmation Par
05/01/2011                     Contraintes           41
CHAPITRE III
             Résolution d’un CSP binaire




                   Master2SII->Programmation Par
05/01/2011                   Contraintes           42
CHAPITRE III
                  Résolution d’un CSP binaire

Algorithme 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 Par
05/01/2011                               Contraintes                43
CHAPITRE III
              Résolution d’un CSP binaire

Filtrage 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 Par
05/01/2011                          Contraintes                          44
CHAPITRE III
                   Résolution d’un CSP binaire

Consistance 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 Xi


Principe 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 Par
05/01/2011                                 Contraintes                                        45
CHAPITRE III
                   Résolution d’un CSP binaire

consistance 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 Xj

Principe 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 Par
05/01/2011                                  Contraintes                                         46
CHAPITRE III
                   Résolution d’un CSP binaire
consistance 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 Xk
Principe 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 Par
05/01/2011                                   Contraintes                                       47
CHAPITRE III
                  Résolution d’un CSP binaire

consistance 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 Par
05/01/2011                                 Contraintes                    48
CHAPITRE III
                   Résolution d’un CSP binaire
Algorithmes 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 Par
05/01/2011                                 Contraintes                               49
CHAPITRE III
               Résolution d’un CSP binaire
fonction 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 Par
05/01/2011                              Contraintes                                   50
CHAPITRE III
               Résolution d’un CSP binaire
fonction 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 Par
05/01/2011                              Contraintes            51
CHAPITRE III
                 Résolution d’un CSP binaire
fonction 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 Par
05/01/2011                               Contraintes                                     52
CHAPITRE III
                  Résolution d’un CSP binaire

Forward 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 Par
05/01/2011                                 Contraintes                                53
CHAPITRE III
                    Résolution d’un CSP binaire
fonction FC(A,(X,D,C)) : booléen
début
si toutes les variables de X sont instanciées alors retourner VRAI
sinon
      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 Xi
finsi                                  Master2SII->Programmation Par
05/01/2011
fin                                              Contraintes                                              54
CHAPITRE III
             Résolution d’un CSP binaire




                   Master2SII->Programmation Par
05/01/2011                   Contraintes           55
CHAPITRE III
                    Résolution d’un CSP binaire
fonction Look_Ahead(A,(X,D,C)) : booléen
début
si toutes les variables de X sont instanciées alors retourner VRAI
sinon
     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 Xi
finsi
fin

                                      Master2SII->Programmation Par
05/01/2011                                      Contraintes                                            56
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 Par
05/01/2011                        Contraintes                      57
CHAPITRE IV
                     CSP binaires continus

CSP 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 Par
05/01/2011                           Contraintes                    58
CHAPITRE IV
                    CSP binaires continus

CSP 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 Par
05/01/2011                            Contraintes                       59
CHAPITRE IV
                    CSP binaires continus

CSP 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 Par
05/01/2011                          Contraintes           60
CHAPITRE IV
                   CSP binaires continus

CSP 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 Par
05/01/2011                         Contraintes            61
CHAPITRE IV
                      CSP binaires continus

Repré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 Par
05/01/2011                              Contraintes                                   62
CHAPITRE IV
                      CSP binaires continus

Repré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 Par
05/01/2011                               Contraintes                           63
CHAPITRE IV
                   CSP binaires continus

CSP binaires continus
       TCSP P=(X,C)
            Inverse d’une contrainte
            Intersection de deux contraintes
            Composition de deux contraintes




                         Master2SII->Programmation Par
05/01/2011                         Contraintes           64
CHAPITRE IV
                   CSP binaires continus

CSP binaires continus
       TCSP P=(X,C)
            Nœud-consistant
            Arc-consistant




                         Master2SII->Programmation Par
05/01/2011                         Contraintes           65
CHAPITRE IV
                       CSP binaires continus

CSP 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 Par
05/01/2011                               Contraintes                       66
CHAPITRE IV
                    CSP binaires continus

CSP binaires continus
       TCSP P=(X,C)
            STP : Simple Temporal Problem
               Toutes les contraintes sont convexes




                           Master2SII->Programmation Par
05/01/2011                           Contraintes           67
CHAPITRE IV
                      CSP binaires continus

CSP 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 Par
05/01/2011                              Contraintes                           68
CHAPITRE IV
                        CSP binaires continus

Algè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 Par
05/01/2011                                Contraintes               69
CHAPITRE IV
             CSP binaires continus

Algèbre des points
 Relation                      Notation
 {}                            ∅
 {<}                           <
 {=}                           =
 {>}                           >
 {<,=}                         ≤
 {<,>}                         ≠
 {>,=}                         ≥
 {<,=,>}                       ?

                Master2SII->Programmation Par
05/01/2011                Contraintes           70
CHAPITRE IV
                    CSP binaires continus

Algè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 Par
05/01/2011                            Contraintes                     71
CHAPITRE IV
                 CSP binaires continus

Algè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 Par
05/01/2011                       Contraintes                        72
CHAPITRE IV
                    CSP binaires continus

Algèbre des points
       CSP qualitatif de points P=(X,C)
            Représentation graphique
            Représentation matricielle




                          Master2SII->Programmation Par
05/01/2011                          Contraintes           73
CHAPITRE IV
                     CSP binaires continus
Algèbre des points
     Inverse

   Relation atomique r           Inverse r-1 de r
   <                             >
   =                             =
   >                             <




                        Master2SII->Programmation Par
05/01/2011                        Contraintes           74
CHAPITRE IV
                     CSP binaires continus
Algèbre des points
     Intersection

             ∅       <   =        >       ≤      ≠       ≥   ?
   ∅         ∅       ∅   ∅        ∅       ∅      ∅       ∅   ∅
   <         ∅       <   ∅        ∅       <      <       ∅   <
   =         ∅       ∅   =        ∅       =      ∅       =   =
   >         ∅       ∅   ∅        >       ∅      >       >   >
   ≤         ∅       <   =        ∅       ≤      <       =   ≤
   ≠         ∅       <   ∅        >       <      ≠       >   ≠
   ≥         ∅       ∅   =        >       =      >       ≥   ≥
   ?         ∅       <   =        >       ≤      ≠       ≥   ?

                             Master2SII->Programmation Par
05/01/2011                             Contraintes               75
CHAPITRE IV
                CSP binaires continus

Algèbre des points
       Table de composition

                <             =                >
    <           <             <                ?
    =           <             =                >
    >           ?             >                >




                     Master2SII->Programmation Par
05/01/2011                     Contraintes           76
CHAPITRE IV
                   CSP binaires continus

Algèbre des points
   CSP qualitatif de points P=(X,C)
            Nœud-consistant
            Arc-consistant




                         Master2SII->Programmation Par
05/01/2011                         Contraintes           77
CHAPITRE IV
                       CSP binaires continus

Algè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 Par
05/01/2011                               Contraintes                       78
CHAPITRE IV
                       CSP binaires continus

Algè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 Par
05/01/2011                                 Contraintes                                               79
CHAPITRE IV
                    CSP binaires continus

Algè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 Par
05/01/2011                           Contraintes                        80
CHAPITRE IV
                          CSP binaires continus
Algè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 Par
05/01/2011                                       Contraintes                    81
CHAPITRE IV
                    CSP binaires continus

Algè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 Par
05/01/2011                            Contraintes                     82
CHAPITRE IV
                 CSP binaires continus

Algèbre des intervalles
CSP qualitatif d’intervalles P=(X,C) : Contraintes
                R(Xi,Xj), R étant une des 8192 relations de
                 l’algèbre des intervalles




                      Master2SII->Programmation Par
05/01/2011                      Contraintes               83
CHAPITRE IV
                    CSP binaires continus

Algèbre des intervalles
       CSP qualitatif d’intervalles P=(X,C)
            Représentation graphique
            Représentation matricielle




                          Master2SII->Programmation Par
05/01/2011                          Contraintes           84
CHAPITRE IV
                   CSP binaires continus

Algè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 Par
05/01/2011                         Contraintes           85
CHAPITRE IV
                   CSP binaires continus

Algèbre des intervalles
       Intersection
            R1∩R2={r : r∈R1 et r∈R2}
            Intersection ensembliste




                         Master2SII->Programmation Par
05/01/2011                         Contraintes           86
CHAPITRE IV
                    CSP binaires continus

Algè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 Par
05/01/2011                            Contraintes                   87
CHAPITRE IV
                      CSP binaires continus

Algèbre des intervalles
       Composition
            Composition faible = composition exacte

    
             R1°R2=∪     r1°r2
                  r1∈R1,r2∈R2




                          Master2SII->Programmation Par
05/01/2011                          Contraintes           88
CHAPITRE IV
                    CSP binaires continus

Algè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 Par
05/01/2011                          Contraintes                    89
CHAPITRE IV
                 CSP binaires continus

Algèbre des intervalles
        Table de composition
    °        <    …       oi              …>          eq
    <        <    …       {d,s,o,m,<}     … ?         <
    …        …    …       …               … …         …
    s        <    …       {oi,f,d}        … >         s
    …        …    …       …               … …         …
    >        ?    …       >               … >         >
    eq       <    …                       … >         eq


                      Master2SII->Programmation Par
05/01/2011                      Contraintes                90
CHAPITRE IV
                   CSP binaires continus

Algèbre des intervalles
   CSP qualitatif d’intervalles P=(X,C)
            Nœud-consistant
            Arc-consistant




                         Master2SII->Programmation Par
05/01/2011                         Contraintes           91
CHAPITRE IV
                       CSP binaires continus

Algè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 Par
05/01/2011                               Contraintes                       92
CHAPITRE IV
                     CSP binaires continus

Algè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 Par
05/01/2011                            Contraintes                               93
CHAPITRE IV
                    CSP binaires continus

Algè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 Par
05/01/2011                          Contraintes                      94
CHAPITRE IV
                       CSP binaires continus
Algèbre des directions cardinales
      Les 9 relations atomiques

Symbole            Signification      Traduction       Algèbre des
                                                       points
SW                 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
CHAPITRE IV
                    CSP binaires continus

Algè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 Par
05/01/2011                            Contraintes                     96
CHAPITRE IV
                 CSP binaires continus

Algèbre des directions cardinales

CSP 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 Par
05/01/2011                       Contraintes                       97
CHAPITRE IV
                    CSP binaires continus

Algèbre des directions cardinales
       CSP qualitatif de directions cardinales P=(X,C)
            Représentation graphique
            Représentation matricielle




                          Master2SII->Programmation Par
05/01/2011                          Contraintes           98
CHAPITRE IV
                CSP binaires continus

Algèbre des directions cardinales
     Inverse
Relation atomique r         Inverse r-1 de r
SW                          NE
W                           E
NW                          SE
S                           N
EQ                          EQ
N                           S
SE                          NW
E                           W
                      Master2SII->Programmation Par
 NE
05/01/2011                  SWContraintes             99
CHAPITRE IV
                   CSP binaires continus

Algèbre des directions cardinales
       Intersection
            R1∩R2={r : r∈R1 et r∈R2}
            Intersection ensembliste




                         Master2SII->Programmation Par
05/01/2011                         Contraintes           100
CHAPITRE IV
                  CSP binaires continus

Algè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 Par
05/01/2011                      Contraintes                  101
CHAPITRE IV
                   CSP binaires continus

Algèbre des directions cardinales
     CSP qualitatif de directions cardinales P=(X,C)
       Nœud-consistant
            Arc-consistant




                         Master2SII->Programmation Par
05/01/2011                         Contraintes           102
CHAPITRE IV
                    CSP binaires continus

Algè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 Par
05/01/2011                           Contraintes                       103
CHAPITRE IV
                     CSP binaires continus

Algè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 Par
05/01/2011                            Contraintes                              104
CHAPITRE IV
                       CSP binaires continus
Algorithmes 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 Par
05/01/2011                               Contraintes                                       105
CHAPITRE IV
                      CSP binaires continus
fonction 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 Par
05/01/2011                               Contraintes           106
CHAPITRE IV
                 CSP binaires continus
fonction 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 Par
05/01/2011                        Contraintes            107
CHAPITRE IV
                         CSP binaires continus
fonction 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 Par
05/01/2011                                  Contraintes                    108
CHAPITRE IV
                            CSP binaires continus
fonction Look_Ahead((X,C)) : booléen
début
PC3(X,C)
si (C contient des éléments vides) alors retourner FAUX finsi
si toutes les paires de variables sont instanciées alors retourner VRAI
Sinon
     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-pour
finsi
fin

                                     Master2SII->Programmation Par
05/01/2011                                     Contraintes                                 109
CHAPITRE IV
                     CSP binaires continus
Exemple 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 Par
05/01/2011                              Contraintes                         110
CHAPITRE IV
                        CSP binaires continus

Exemple 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 Par
05/01/2011                               Contraintes           111
CHAPITRE IV
                        CSP binaires continus

Exemple 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 Par
05/01/2011                               Contraintes           112
CHAPITRE IV
                        CSP binaires continus

Exemple 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 Par
05/01/2011                               Contraintes           113
CHAPITRE IV
                Programmation logique

Les termes
   Les objets manipulés par un programme (données)
        Les variables
        Les termes élémentaires (termes atomiques)
        Les termes composés




                        Master2SII->Programmation Par
05/01/2011                        Contraintes           114
CHAPITRE IV
               Programmation logique

Les 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 Par
05/01/2011                     Contraintes            115
CHAPITRE IV
                 Programmation logique

Les 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 Par
05/01/2011                          Contraintes               116
CHAPITRE IV
                Programmation logique

Les 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 Par
05/01/2011                       Contraintes           117
CHAPITRE IV
                Programmation logique

Les 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 Par
05/01/2011                   Contraintes                  118
CHAPITRE IV
               Programmation logique

Les clauses
 Une clause

        affirmation inconditionnelle (fait)
        affirmation conditionnelle (règle)




                     Master2SII->Programmation Par
05/01/2011                     Contraintes           119
CHAPITRE IV
                     Programmation logique

Les 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 Par
05/01/2011                            Contraintes                120
CHAPITRE IV
               Programmation logique

Les 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 Par
05/01/2011                     Contraintes               121
CHAPITRE IV
              Programmation logique

Les clauses
   Une variable apparaissant dans la tête d'une règle (et
    éventuellement dans son corps) est quantifiée
    universellement
   Une variable apparaissant dans le corps d'une clause
    mais pas dans sa tête est quantifiée existentiellement




                    Master2SII->Programmation Par
05/01/2011                    Contraintes              122
CHAPITRE IV
                 Programmation logique

Les 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 s'il existe un P tel que pere(P,X) et
         pere(P,Y) soient vrais




                         Master2SII->Programmation Par
05/01/2011                         Contraintes                      123
CHAPITRE IV
                   Programmation logique

Un 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 Par
05/01/2011                            Contraintes                                124
CHAPITRE IV
               Programmation logique

Un 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 Par
05/01/2011                      Contraintes             125
CHAPITRE IV
                 Programmation logique

Exé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 Par
05/01/2011                        Contraintes                     126
CHAPITRE IV
                      Programmation logique

Exé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 l'ensemble 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 Par
05/01/2011                              Contraintes                  127
CHAPITRE IV
               Programmation logique

Exé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 Par
05/01/2011                    Contraintes           128
CHAPITRE IV
                     Programmation logique

Substitution
        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 Par
05/01/2011                             Contraintes                     129
CHAPITRE IV
                      Programmation logique

Instance
        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 Par
05/01/2011                                Contraintes                130
CHAPITRE IV
               Programmation logique

Unificateur
        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 Par
05/01/2011                     Contraintes             131
CHAPITRE IV
                Programmation logique

Unificateur 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 Par
05/01/2011                       Contraintes               132
CHAPITRE IV
                     Programmation logique

Algorithme 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 Par
05/01/2011                             Contraintes                133
CHAPITRE IV
                     Programmation logique

Dé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 Par
05/01/2011                             Contraintes                     134
CHAPITRE IV
                     Programmation logique

Dé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 Par
05/01/2011                             Contraintes                      135
CHAPITRE IV
              Programmation logique

Dé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 Par
05/01/2011                     Contraintes           136
CHAPITRE IV
                Programmation logique

Dé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 Par
05/01/2011                        Contraintes                       137
CHAPITRE IV
                 Programmation logique

Dé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 Par
05/01/2011                          Contraintes                        138
CHAPITRE IV
                Programmation logique

Dé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 Par
05/01/2011                         Contraintes                  139
CHAPITRE IV
             Programmation logique

Dénotation d’un programme Prolog
   Sémantique logique




                   Master2SII->Programmation Par
05/01/2011                   Contraintes           140
CHAPITRE IV
                  Programmation logique

Sé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 Par
05/01/2011                          Contraintes                 141
CHAPITRE IV
                  Programmation logique
Sé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 Par
05/01/2011                          Contraintes                          142
CHAPITRE IV
                  Programmation logique
procedure prouver(But: liste d'atomes 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 Par
05/01/2011                            Contraintes                         143
CHAPITRE IV
    Programmation logique par contraintes
Programmation 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 Par
05/01/2011                          Contraintes                      144

Contenu connexe

Tendances

Réseaux de neurones récurrents et LSTM
Réseaux de neurones récurrents et LSTMRéseaux de neurones récurrents et LSTM
Réseaux de neurones récurrents et LSTMJaouad Dabounou
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : CassandraLilia Sfaxi
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataLilia Sfaxi
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Alexis Seigneurin
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigFelipe Sanchez Garzon
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learningQuentin Ambard
 
Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Mohamed Heny SELMI
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
Présentation PFE Hachem Selmi et Ahmed Dridi Big data
Présentation PFE Hachem Selmi et Ahmed Dridi Big data Présentation PFE Hachem Selmi et Ahmed Dridi Big data
Présentation PFE Hachem Selmi et Ahmed Dridi Big data HaShem Selmi
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4JLilia Sfaxi
 
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...Jean Rohmer
 
Intelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheIntelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheMohamed Heny SELMI
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction généraleMohamed Heny SELMI
 

Tendances (20)

Réseaux de neurones récurrents et LSTM
Réseaux de neurones récurrents et LSTMRéseaux de neurones récurrents et LSTM
Réseaux de neurones récurrents et LSTM
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
Clustering
ClusteringClustering
Clustering
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine Learnig
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learning
 
Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)Data mining - Segmentation(k-means, cah)
Data mining - Segmentation(k-means, cah)
 
Algorithmes de jeux
Algorithmes de jeuxAlgorithmes de jeux
Algorithmes de jeux
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Knn
KnnKnn
Knn
 
Présentation PFE Hachem Selmi et Ahmed Dridi Big data
Présentation PFE Hachem Selmi et Ahmed Dridi Big data Présentation PFE Hachem Selmi et Ahmed Dridi Big data
Présentation PFE Hachem Selmi et Ahmed Dridi Big data
 
clustering
clusteringclustering
clustering
 
Algorithme knn
Algorithme knnAlgorithme knn
Algorithme knn
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4J
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
 
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
Intelligence Artificielle: résolution de problèmes en Prolog ou Prolog pour l...
 
Intelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de rechercheIntelligence Artificielle - Algorithmes de recherche
Intelligence Artificielle - Algorithmes de recherche
 
Polymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraitePolymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraite
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction générale
 

En vedette

Benharratharijtp4 arbre de décision
Benharratharijtp4 arbre de décisionBenharratharijtp4 arbre de décision
Benharratharijtp4 arbre de décisionARIJ BenHarrath
 
Cours d'initiation à Photoshop
Cours d'initiation à PhotoshopCours d'initiation à Photoshop
Cours d'initiation à Photoshopaymenli
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql Yassine Badri
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexitéSana Aroussi
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision Yassine Badri
 
Exercices corrigés
Exercices corrigésExercices corrigés
Exercices corrigéshadhoum
 

En vedette (8)

Benharratharijtp4 arbre de décision
Benharratharijtp4 arbre de décisionBenharratharijtp4 arbre de décision
Benharratharijtp4 arbre de décision
 
Cours d'initiation à Photoshop
Cours d'initiation à PhotoshopCours d'initiation à Photoshop
Cours d'initiation à Photoshop
 
exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Arbre de décision
Arbre de décisionArbre de décision
Arbre de décision
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
Exercices corrigés
Exercices corrigésExercices corrigés
Exercices corrigés
 

Similaire à Programmation par contraintes

Clustering efficace avec les divergences de bregman
Clustering efficace avec les divergences de bregmanClustering efficace avec les divergences de bregman
Clustering efficace avec les divergences de bregmanMedalith Estrada
 
examen en DSP 2023.pdf
examen en DSP 2023.pdfexamen en DSP 2023.pdf
examen en DSP 2023.pdfkamouf
 
CHAPITRE VIII : Systèmes linéaires Modélisation & Simulation
CHAPITRE VIII :  Systèmes linéaires Modélisation & SimulationCHAPITRE VIII :  Systèmes linéaires Modélisation & Simulation
CHAPITRE VIII : Systèmes linéaires Modélisation & SimulationMohammed TAMALI
 
optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdfMouloudi1
 
Oral 1 CAPES Maths - L'intégration en terminale
Oral 1 CAPES Maths - L'intégration en terminaleOral 1 CAPES Maths - L'intégration en terminale
Oral 1 CAPES Maths - L'intégration en terminaleDany-Jack Mercier
 
Chapitre vi np complétude
Chapitre vi np complétudeChapitre vi np complétude
Chapitre vi np complétudeSana Aroussi
 

Similaire à Programmation par contraintes (7)

csp_sir_C1_4.pptx
csp_sir_C1_4.pptxcsp_sir_C1_4.pptx
csp_sir_C1_4.pptx
 
Clustering efficace avec les divergences de bregman
Clustering efficace avec les divergences de bregmanClustering efficace avec les divergences de bregman
Clustering efficace avec les divergences de bregman
 
examen en DSP 2023.pdf
examen en DSP 2023.pdfexamen en DSP 2023.pdf
examen en DSP 2023.pdf
 
CHAPITRE VIII : Systèmes linéaires Modélisation & Simulation
CHAPITRE VIII :  Systèmes linéaires Modélisation & SimulationCHAPITRE VIII :  Systèmes linéaires Modélisation & Simulation
CHAPITRE VIII : Systèmes linéaires Modélisation & Simulation
 
optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdf
 
Oral 1 CAPES Maths - L'intégration en terminale
Oral 1 CAPES Maths - L'intégration en terminaleOral 1 CAPES Maths - L'intégration en terminale
Oral 1 CAPES Maths - L'intégration en terminale
 
Chapitre vi np complétude
Chapitre vi np complétudeChapitre vi np complétude
Chapitre vi np complétude
 

Dernier

Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurdinaelchaine
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.docKarimKhrifech
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 

Dernier (20)

Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteur
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.doc
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 

Programmation par contraintes

  • 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 Par 05/01/2011 Contraintes 1
  • 2. CHAPITRE I Contraintes et problèmes de satisfaction de contraintes Contrainte  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 Par 05/01/2011 Contraintes 2
  • 3. CHAPITRE I Contraintes et problèmes de satisfaction de contraintes Définition d’une contrainte  Définition en extension  Définition en intention Master2SII->Programmation Par 05/01/2011 Contraintes 3
  • 4. CHAPITRE I Contraintes et problèmes de satisfaction de contraintes Problè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 Par 05/01/2011 Contraintes 4
  • 5. CHAPITRE I Contraintes et problèmes de satisfaction de contraintes Instanciation 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 Par 05/01/2011 Contraintes 5
  • 6. CHAPITRE I Contraintes et problèmes de satisfaction de contraintes Solution 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 Par 05/01/2011 Contraintes 6
  • 7. CHAPITRE I Contraintes et problèmes de satisfaction de contraintes Exemple : 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 Par 05/01/2011 Contraintes 7
  • 8. CHAPITRE I Contraintes et problèmes de satisfaction de contraintes Exemple : 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 Par 05/01/2011 Contraintes 8
  • 9. CHAPITRE I Contraintes et problèmes de satisfaction de contraintes Exemple : 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 Par 05/01/2011 Contraintes 9
  • 10. CHAPITRE I Contraintes et problèmes de satisfaction de contraintes Exemple : 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 Par 05/01/2011 Contraintes 10
  • 11. CHAPITRE II CSP binaires CSP 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 Par 05/01/2011 Contraintes 11
  • 12. CHAPITRE II CSP binaires CSP 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 Par 05/01/2011 Contraintes 12
  • 13. CHAPITRE II CSP binaires CSP 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 Par 05/01/2011 Contraintes 13
  • 14. CHAPITRE II CSP binaires CSP 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 Par 05/01/2011 Contraintes 14
  • 15. CHAPITRE II CSP binaires Relations 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 Par 05/01/2011 Contraintes 15
  • 16. CHAPITRE II CSP binaires Relations 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 Par 05/01/2011 Contraintes 16
  • 17. CHAPITRE II CSP binaires Inverse 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 Par 05/01/2011 Contraintes 17
  • 18. CHAPITRE II CSP binaires Intersection 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 Par 05/01/2011 Contraintes 18
  • 19. CHAPITRE II CSP binaires Union 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 Par 05/01/2011 Contraintes 19
  • 20. CHAPITRE II CSP binaires Produit 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 Par 05/01/2011 Contraintes 20
  • 21. CHAPITRE II CSP binaires Repré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 Par 05/01/2011 Contraintes 21
  • 22. CHAPITRE II CSP binaires Exemple  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 Par 05/01/2011 Contraintes 22
  • 23. CHAPITRE II CSP binaires Exemple  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 Par 05/01/2011 Contraintes 23
  • 24. CHAPITRE II CSP binaires Exemple  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 Par 05/01/2011 Contraintes 24
  • 25. CHAPITRE II CSP binaires Repré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 Par 05/01/2011 Contraintes 25
  • 26. CHAPITRE II CSP binaires Repré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 Par 05/01/2011 Contraintes 26
  • 27. CHAPITRE II CSP binaires Sous-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 Par 05/01/2011 Contraintes 27
  • 28. CHAPITRE II CSP binaires Raffinement 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 Par 05/01/2011 Contraintes 28
  • 29. CHAPITRE III Résolution d’un CSP binaire Ré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 Par 05/01/2011 Contraintes 29
  • 30. CHAPITRE III Résolution d’un CSP binaire Algorithmes 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 Par 05/01/2011 Contraintes 30
  • 31. CHAPITRE III Résolution d’un CSP binaire Algorithmes 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 Par 05/01/2011 Contraintes 31
  • 32. CHAPITRE III Résolution d’un CSP binaire Algorithmes 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 Par 05/01/2011 Contraintes 32
  • 33. CHAPITRE III Résolution d’un CSP binaire Algorithme « 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 Par 05/01/2011 Contraintes 33
  • 34. CHAPITRE III Résolution d’un CSP binaire Algorithme GET fonction GET(A,(X,D,C)) : booléen début si toutes les variables de X sont instanciées alors si A est solution alors retourner VRAI Sinon retourner FAUX finsi Sinon 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 FAUX finsi fin Master2SII->Programmation Par 05/01/2011 Contraintes 34
  • 35. CHAPITRE III Résolution d’un CSP binaire Algorithme GET fonction 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 Par 05/01/2011 Contraintes 35
  • 36. CHAPITRE III Résolution d’un CSP binaire Algorithme 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 possibles Algorithme 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 Par 05/01/2011 Contraintes 36
  • 37. CHAPITRE III Résolution d’un CSP binaire Algorithme « simple retour arrière » (SRA) fonction SRA(A,(X,D,C)) : booléen dé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 FAUX fin Master2SII->Programmation Par 05/01/2011 Contraintes 37
  • 38. CHAPITRE III Résolution d’un CSP binaire Exemple : 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 Par 05/01/2011 Contraintes 38
  • 39. CHAPITRE III Résolution d’un CSP binaire Exemple : 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 Par 05/01/2011 Contraintes 39
  • 40. CHAPITRE III Résolution d’un CSP binaire Résolution du problème des quatre reines  algorithme GET Master2SII->Programmation Par 05/01/2011 Contraintes 40
  • 41. CHAPITRE III Résolution d’un CSP binaire Résolution du problème des quatre reines  algorithme SRA Master2SII->Programmation Par 05/01/2011 Contraintes 41
  • 42. CHAPITRE III Résolution d’un CSP binaire Master2SII->Programmation Par 05/01/2011 Contraintes 42
  • 43. CHAPITRE III Résolution d’un CSP binaire Algorithme 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 Par 05/01/2011 Contraintes 43
  • 44. CHAPITRE III Résolution d’un CSP binaire Filtrage 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 Par 05/01/2011 Contraintes 44
  • 45. CHAPITRE III Résolution d’un CSP binaire Consistance 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 Xi Principe 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 Par 05/01/2011 Contraintes 45
  • 46. CHAPITRE III Résolution d’un CSP binaire consistance 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 Xj Principe 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 Par 05/01/2011 Contraintes 46
  • 47. CHAPITRE III Résolution d’un CSP binaire consistance 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 Xk Principe 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 Par 05/01/2011 Contraintes 47
  • 48. CHAPITRE III Résolution d’un CSP binaire consistance 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 Par 05/01/2011 Contraintes 48
  • 49. CHAPITRE III Résolution d’un CSP binaire Algorithmes 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 Par 05/01/2011 Contraintes 49
  • 50. CHAPITRE III Résolution d’un CSP binaire fonction 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 Par 05/01/2011 Contraintes 50
  • 51. CHAPITRE III Résolution d’un CSP binaire fonction 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 Par 05/01/2011 Contraintes 51
  • 52. CHAPITRE III Résolution d’un CSP binaire fonction 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 Par 05/01/2011 Contraintes 52
  • 53. CHAPITRE III Résolution d’un CSP binaire Forward 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 Par 05/01/2011 Contraintes 53
  • 54. CHAPITRE III Résolution d’un CSP binaire fonction FC(A,(X,D,C)) : booléen début si toutes les variables de X sont instanciées alors retourner VRAI sinon 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 Xi finsi Master2SII->Programmation Par 05/01/2011 fin Contraintes 54
  • 55. CHAPITRE III Résolution d’un CSP binaire Master2SII->Programmation Par 05/01/2011 Contraintes 55
  • 56. CHAPITRE III Résolution d’un CSP binaire fonction Look_Ahead(A,(X,D,C)) : booléen début si toutes les variables de X sont instanciées alors retourner VRAI sinon 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 Xi finsi fin Master2SII->Programmation Par 05/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 Par 05/01/2011 Contraintes 57
  • 58. CHAPITRE IV CSP binaires continus CSP 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 Par 05/01/2011 Contraintes 58
  • 59. CHAPITRE IV CSP binaires continus CSP 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 Par 05/01/2011 Contraintes 59
  • 60. CHAPITRE IV CSP binaires continus CSP 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 Par 05/01/2011 Contraintes 60
  • 61. CHAPITRE IV CSP binaires continus CSP 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 Par 05/01/2011 Contraintes 61
  • 62. CHAPITRE IV CSP binaires continus Repré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 Par 05/01/2011 Contraintes 62
  • 63. CHAPITRE IV CSP binaires continus Repré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 Par 05/01/2011 Contraintes 63
  • 64. CHAPITRE IV CSP binaires continus CSP binaires continus  TCSP P=(X,C)  Inverse d’une contrainte  Intersection de deux contraintes  Composition de deux contraintes Master2SII->Programmation Par 05/01/2011 Contraintes 64
  • 65. CHAPITRE IV CSP binaires continus CSP binaires continus  TCSP P=(X,C)  Nœud-consistant  Arc-consistant Master2SII->Programmation Par 05/01/2011 Contraintes 65
  • 66. CHAPITRE IV CSP binaires continus CSP 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 Par 05/01/2011 Contraintes 66
  • 67. CHAPITRE IV CSP binaires continus CSP binaires continus  TCSP P=(X,C)  STP : Simple Temporal Problem  Toutes les contraintes sont convexes Master2SII->Programmation Par 05/01/2011 Contraintes 67
  • 68. CHAPITRE IV CSP binaires continus CSP 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 Par 05/01/2011 Contraintes 68
  • 69. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 69
  • 70. CHAPITRE IV CSP binaires continus Algèbre des points Relation Notation {} ∅ {<} < {=} = {>} > {<,=} ≤ {<,>} ≠ {>,=} ≥ {<,=,>} ? Master2SII->Programmation Par 05/01/2011 Contraintes 70
  • 71. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 71
  • 72. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 72
  • 73. CHAPITRE IV CSP binaires continus Algèbre des points  CSP qualitatif de points P=(X,C)  Représentation graphique  Représentation matricielle Master2SII->Programmation Par 05/01/2011 Contraintes 73
  • 74. CHAPITRE IV CSP binaires continus Algèbre des points  Inverse Relation atomique r Inverse r-1 de r < > = = > < Master2SII->Programmation Par 05/01/2011 Contraintes 74
  • 75. CHAPITRE IV CSP binaires continus Algèbre des points  Intersection ∅ < = > ≤ ≠ ≥ ? ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ < ∅ < ∅ ∅ < < ∅ < = ∅ ∅ = ∅ = ∅ = = > ∅ ∅ ∅ > ∅ > > > ≤ ∅ < = ∅ ≤ < = ≤ ≠ ∅ < ∅ > < ≠ > ≠ ≥ ∅ ∅ = > = > ≥ ≥ ? ∅ < = > ≤ ≠ ≥ ? Master2SII->Programmation Par 05/01/2011 Contraintes 75
  • 76. CHAPITRE IV CSP binaires continus Algèbre des points  Table de composition < = > < < < ? = < = > > ? > > Master2SII->Programmation Par 05/01/2011 Contraintes 76
  • 77. CHAPITRE IV CSP binaires continus Algèbre des points  CSP qualitatif de points P=(X,C)  Nœud-consistant  Arc-consistant Master2SII->Programmation Par 05/01/2011 Contraintes 77
  • 78. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 78
  • 79. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 79
  • 80. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 80
  • 81. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 81
  • 82. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 82
  • 83. CHAPITRE IV CSP binaires continus Algèbre des intervalles CSP qualitatif d’intervalles P=(X,C) : Contraintes  R(Xi,Xj), R étant une des 8192 relations de l’algèbre des intervalles Master2SII->Programmation Par 05/01/2011 Contraintes 83
  • 84. CHAPITRE IV CSP binaires continus Algèbre des intervalles  CSP qualitatif d’intervalles P=(X,C)  Représentation graphique  Représentation matricielle Master2SII->Programmation Par 05/01/2011 Contraintes 84
  • 85. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 85
  • 86. CHAPITRE IV CSP binaires continus Algèbre des intervalles  Intersection  R1∩R2={r : r∈R1 et r∈R2}  Intersection ensembliste Master2SII->Programmation Par 05/01/2011 Contraintes 86
  • 87. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 87
  • 88. CHAPITRE IV CSP binaires continus Algèbre des intervalles  Composition  Composition faible = composition exacte  R1°R2=∪ r1°r2 r1∈R1,r2∈R2 Master2SII->Programmation Par 05/01/2011 Contraintes 88
  • 89. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 89
  • 90. CHAPITRE IV CSP binaires continus Algèbre des intervalles  Table de composition ° < … oi …> eq < < … {d,s,o,m,<} … ? < … … … … … … … s < … {oi,f,d} … > s … … … … … … … > ? … > … > > eq < … … > eq Master2SII->Programmation Par 05/01/2011 Contraintes 90
  • 91. CHAPITRE IV CSP binaires continus Algèbre des intervalles  CSP qualitatif d’intervalles P=(X,C)  Nœud-consistant  Arc-consistant Master2SII->Programmation Par 05/01/2011 Contraintes 91
  • 92. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 92
  • 93. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 93
  • 94. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 94
  • 95. CHAPITRE IV CSP binaires continus Algèbre des directions cardinales  Les 9 relations atomiques Symbole Signification Traduction Algèbre des points SW 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 continus Algè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 Par 05/01/2011 Contraintes 96
  • 97. CHAPITRE IV CSP binaires continus Algèbre des directions cardinales CSP 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 Par 05/01/2011 Contraintes 97
  • 98. CHAPITRE IV CSP binaires continus Algèbre des directions cardinales  CSP qualitatif de directions cardinales P=(X,C)  Représentation graphique  Représentation matricielle Master2SII->Programmation Par 05/01/2011 Contraintes 98
  • 99. CHAPITRE IV CSP binaires continus Algèbre des directions cardinales  Inverse Relation atomique r Inverse r-1 de r SW NE W E NW SE S N EQ EQ N S SE NW E W Master2SII->Programmation Par NE 05/01/2011 SWContraintes 99
  • 100. CHAPITRE IV CSP binaires continus Algèbre des directions cardinales  Intersection  R1∩R2={r : r∈R1 et r∈R2}  Intersection ensembliste Master2SII->Programmation Par 05/01/2011 Contraintes 100
  • 101. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 101
  • 102. CHAPITRE IV CSP binaires continus Algèbre des directions cardinales  CSP qualitatif de directions cardinales P=(X,C)  Nœud-consistant  Arc-consistant Master2SII->Programmation Par 05/01/2011 Contraintes 102
  • 103. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 103
  • 104. CHAPITRE IV CSP binaires continus Algè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 Par 05/01/2011 Contraintes 104
  • 105. CHAPITRE IV CSP binaires continus Algorithmes 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 Par 05/01/2011 Contraintes 105
  • 106. CHAPITRE IV CSP binaires continus fonction 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 Par 05/01/2011 Contraintes 106
  • 107. CHAPITRE IV CSP binaires continus fonction 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 Par 05/01/2011 Contraintes 107
  • 108. CHAPITRE IV CSP binaires continus fonction 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 Par 05/01/2011 Contraintes 108
  • 109. CHAPITRE IV CSP binaires continus fonction Look_Ahead((X,C)) : booléen début PC3(X,C) si (C contient des éléments vides) alors retourner FAUX finsi si toutes les paires de variables sont instanciées alors retourner VRAI Sinon 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-pour finsi fin Master2SII->Programmation Par 05/01/2011 Contraintes 109
  • 110. CHAPITRE IV CSP binaires continus Exemple 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 Par 05/01/2011 Contraintes 110
  • 111. CHAPITRE IV CSP binaires continus Exemple 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 Par 05/01/2011 Contraintes 111
  • 112. CHAPITRE IV CSP binaires continus Exemple 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 Par 05/01/2011 Contraintes 112
  • 113. CHAPITRE IV CSP binaires continus Exemple 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 Par 05/01/2011 Contraintes 113
  • 114. CHAPITRE IV Programmation logique Les termes  Les objets manipulés par un programme (données)  Les variables  Les termes élémentaires (termes atomiques)  Les termes composés Master2SII->Programmation Par 05/01/2011 Contraintes 114
  • 115. CHAPITRE IV Programmation logique Les 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 Par 05/01/2011 Contraintes 115
  • 116. CHAPITRE IV Programmation logique Les 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 Par 05/01/2011 Contraintes 116
  • 117. CHAPITRE IV Programmation logique Les 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 Par 05/01/2011 Contraintes 117
  • 118. CHAPITRE IV Programmation logique Les 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 Par 05/01/2011 Contraintes 118
  • 119. CHAPITRE IV Programmation logique Les clauses  Une clause  affirmation inconditionnelle (fait)  affirmation conditionnelle (règle) Master2SII->Programmation Par 05/01/2011 Contraintes 119
  • 120. CHAPITRE IV Programmation logique Les 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 Par 05/01/2011 Contraintes 120
  • 121. CHAPITRE IV Programmation logique Les 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 Par 05/01/2011 Contraintes 121
  • 122. CHAPITRE IV Programmation logique Les clauses  Une variable apparaissant dans la tête d'une règle (et éventuellement dans son corps) est quantifiée universellement  Une variable apparaissant dans le corps d'une clause mais pas dans sa tête est quantifiée existentiellement Master2SII->Programmation Par 05/01/2011 Contraintes 122
  • 123. CHAPITRE IV Programmation logique Les 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 s'il existe un P tel que pere(P,X) et pere(P,Y) soient vrais Master2SII->Programmation Par 05/01/2011 Contraintes 123
  • 124. CHAPITRE IV Programmation logique Un 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 Par 05/01/2011 Contraintes 124
  • 125. CHAPITRE IV Programmation logique Un 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 Par 05/01/2011 Contraintes 125
  • 126. CHAPITRE IV Programmation logique Exé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 Par 05/01/2011 Contraintes 126
  • 127. CHAPITRE IV Programmation logique Exé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 l'ensemble 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 Par 05/01/2011 Contraintes 127
  • 128. CHAPITRE IV Programmation logique Exé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 Par 05/01/2011 Contraintes 128
  • 129. CHAPITRE IV Programmation logique Substitution  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 Par 05/01/2011 Contraintes 129
  • 130. CHAPITRE IV Programmation logique Instance  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 Par 05/01/2011 Contraintes 130
  • 131. CHAPITRE IV Programmation logique Unificateur  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 Par 05/01/2011 Contraintes 131
  • 132. CHAPITRE IV Programmation logique Unificateur 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 Par 05/01/2011 Contraintes 132
  • 133. CHAPITRE IV Programmation logique Algorithme 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 Par 05/01/2011 Contraintes 133
  • 134. CHAPITRE IV Programmation logique Dé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 Par 05/01/2011 Contraintes 134
  • 135. CHAPITRE IV Programmation logique Dé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 Par 05/01/2011 Contraintes 135
  • 136. CHAPITRE IV Programmation logique Dé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 Par 05/01/2011 Contraintes 136
  • 137. CHAPITRE IV Programmation logique Dé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 Par 05/01/2011 Contraintes 137
  • 138. CHAPITRE IV Programmation logique Dé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 Par 05/01/2011 Contraintes 138
  • 139. CHAPITRE IV Programmation logique Dé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 Par 05/01/2011 Contraintes 139
  • 140. CHAPITRE IV Programmation logique Dénotation d’un programme Prolog  Sémantique logique Master2SII->Programmation Par 05/01/2011 Contraintes 140
  • 141. CHAPITRE IV Programmation logique Sé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 Par 05/01/2011 Contraintes 141
  • 142. CHAPITRE IV Programmation logique Sé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 Par 05/01/2011 Contraintes 142
  • 143. CHAPITRE IV Programmation logique procedure prouver(But: liste d'atomes 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 Par 05/01/2011 Contraintes 143
  • 144. CHAPITRE IV Programmation logique par contraintes Programmation 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 Par 05/01/2011 Contraintes 144

Notes de l'éditeur

  1. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  2. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  3. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  4. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  5. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  6. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  7. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  8. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  9. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  10. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  11. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  12. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  13. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  14. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  15. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  16. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  17. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  18. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  19. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  20. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  21. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  22. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  23. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  24. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  25. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  26. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  27. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  28. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  29. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  30. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  31. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  32. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  33. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  34. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  35. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  36. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  37. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  38. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  39. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  40. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  41. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  42. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  43. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  44. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  45. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  46. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  47. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  48. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  49. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  50. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  51. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  52. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  53. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  54. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  55. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  56. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  57. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  58. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  59. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  60. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  61. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  62. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  63. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  64. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  65. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  66. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  67. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  68. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  69. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  70. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  71. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  72. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  73. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  74. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  75. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  76. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  77. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  78. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  79. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  80. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  81. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  82. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  83. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  84. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  85. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  86. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  87. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  88. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  89. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  90. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  91. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  92. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  93. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  94. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  95. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  96. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  97. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  98. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  99. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  100. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  101. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  102. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  103. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  104. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  105. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  106. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  107. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  108. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  109. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  110. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  111. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  112. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  113. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  114. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  115. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  116. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  117. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  118. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  119. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  120. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  121. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  122. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  123. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  124. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  125. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  126. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  127. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  128. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  129. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  130. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  131. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  132. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  133. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  134. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  135. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  136. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  137. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  138. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  139. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  140. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  141. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  142. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  143. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI
  144. 02/12/2010 Programmation Par Contraintes Dr Amar ISLI