1 / 39

Utiliser les contraintes sans rien y comprendre

Utiliser les contraintes sans rien y comprendre. Christian Bessiere LIRMM (CNRS/U. Montpellier). Qu’est-ce que les “CSP” ? (CSP = problème de satisfaction de contraintes). Des variables Des domaines finis pour ces variables

zulema
Download Presentation

Utiliser les contraintes sans rien y comprendre

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Utiliser les contraintes sans rien y comprendre Christian Bessiere LIRMM (CNRS/U. Montpellier)

  2. Qu’est-ce que les “CSP” ?(CSP = problème de satisfaction de contraintes) • Des variables • Des domaines finis pour ces variables • Des contraintes sur les combinaisons de valeurs autorisées sur certaines variables

  3. Faire un plan de maison Appartement 5 pièces (Chambre, Bain, Cuisine, Salon, Salle-à-Manger) sur un emplacement à 6 pièces • Cuisine et salle à • manger communiquent • SdeB et cuisine ont un mur en commun • SdeB éloignée de salon • Salon et SàM sont une même pièce nord-ouest nord-est nord sud-ouest sud-est sud

  4. no n ne se s so Plan de maison • Variables : • C (chambre), • B (salle de bain), • K (cuisine), • S (salon), • M (salle à manger) • Domaines : {no,n,ne,so,s,se}

  5. no n ne se s so Plan de maison • Contraintes : • X ≠ Y, X = Y • A-cote(X,Y) = { (no,n),(no,so),(n,no),(n,ne),(n,s), (ne,n),(ne,se),(so,no),(so,s),(s,so), (s,n),(s,se),(se,s),(se,ne) } • Loin(X,Y) = { (no,ne),(no,s),(no,se),(n,so),(n,se), (ne,no),(ne,so),(ne,s),(so,n),(so,ne), (so,se),(s,no),(s,ne),(se,no),(se,n),(se,so) }

  6. K C M a-cote nw,n,ne,sw,s,se nw,n,ne,sw,s,se nw,n,ne,sw,s,se K B a-cote a-cote S M C B nw,n,ne,sw,s,se S nw,n,ne,sw,s,se loin Alldiff(K,B,M,S,C) Chambre à l’est Salon au sud Client : Réseau de contraintes

  7. Variables Domains Constraints ??? Programmation par contraintes modelling Problem Solution solving

  8. Modélisation(“it’s an art, not a science”) • Longtemps considéré comme trivial • le zèbre de Lewis Carroll ou les problèmes aléatoires • Mais sur les “vrais” problèmes : • Quelles variables ? Quels domaines ? • Quelles contraintes pour coder le problème ? • Et l’efficacité ? • Quelles contraintes pour que le solveur aille vite ? • Contraintes globales, symétries…  Tout tient au savoir-faire de l’expert

  9. Et si on n’est pas expert ? • Choix des variables/domaines • Acquisition des contraintes • Améliorer un modèle de base

  10. B S M K M S C C R K M K C S S Choix des variables/domaines(prémodèles) • A partir d’historiques des solutions passées • Solutions décrites par des tables

  11. XSdB {nw,n,ne,sw,s,se} Room, position …. XSalon {nw,n,ne,sw,s,se} Room Position  Extraire des prémodèles

  12. Room, position Room Position  Extraire des prémodèles • Deux prémodèles : • XB,…,XS  {nw,n,ne,sw,s,se} • Xnw,…,Xse  {B,C,K,M,S,} • Des prémodèles triviaux : • X1,…,X5 {B-nw,B-n,B-sw,…, S-s,S-se} • XB-nw,…,XS-se {0,1}

  13. Connecter les prémodèles • PM1: XB,…,XS  {nw,n,ne,sw,s,se} • PM2: Xnw,…,Xse  {B,C,K,M,S,} • Contraintes de connexion : • XB = nw  Xnw = B • “nw” n’est pris qu’au plus une fois dans PM1 • alldiff(XB,…,XS) est une contrainte de M1

  14. Application: sudoku L C V XLC=V XLV=C XCV=L

  15. Et si on n’est pas expert ? • Choix des variables/domaines • Acquisition des contraintes • Espace des réseaux • Redondance • Requêtes • Améliorer un modèle de base

  16. Acquérir les contraintes • L’utilisateur ne sait pas spécifier des contraintes • Il sait reconnaître les solutions des non-solutions • Ex: maison valide ou pas • Utilisation de techniques d’apprentissage • Interaction par des exemples (e+) ou contre-exemples (e-) • Acquisition du réseau de contraintes exprimant son problème

  17. Espace des réseaux possibles ? ? XK XM Négatifs acceptés ? ? XC ? ? ? XB XS ? • Langage : • ?  { =, ≠, a-cote, loin} • Biais : • XS=XB; a-cote(XS,XB);… …; XK≠XM; loin(XK,XM) Positifs rejetés

  18. Codage compact en SAT Négatifs acceptés • Une formule SAT K qui code tous les réseaux possibles : • Chaque contrainte ci • un littéral bi • Modèles(K) = espace des versions • Exemple e- rejeté par {ci,cj,ck} une clause (bi bj bk) • Exemple e+ rejeté par ci • une clauses (bi) • m models(K)  (m) = {ci  m(bi)=1} accepte tous les exemples positifs et rejette tous les exemples négatifs Positifs rejetés

  19. M e+1 e-2 C K K K K B e+3 C S C S S M B B B M e-4 S C M M Réduire l’espace C(XK,XM): , =, loin, a-cote C(XM,XS): , =, loin, a-cote C(XK,XS): , =, loin, a-cote a-cote(XM,XS)  loin(XK,XS)

  20. K M S Redondance • Les contraintes ne sont pas indépendantes • “a-cote(XK,XM)  a-cote(XM,XS) loin(XK,XS)” • Voir consistances locales en CSP • Différent de l’apprentissage attribut-valeur

  21. K M Redondance • La redondance empêche la convergence  Ensemble Rde règles de redondance : alldiff(X1,…,Xn) Xi≠Xj, i,j a-cote(XK,XM)  a-cote(XM,XS) loin(XK,XS) • Dans K il y a • a-cote(XM,XS)  loin(XK,XS) • a-cote(XK,XM) • On déduit loin(XK,XS) de K+R • Espace des versions = Modèles(K+R) • Bonnes propriétés quand R est complet S

  22. Requêtes • Les exemples fournis apportent parfois peu d’information nouvelle (plan négatif avec la cuisine loin de la salle à manger) • Le système peut proposer des exemples (requêtes) pour accélérer la convergence • Exemple e rejeté par k contraintes de l’espace • e positif  k contraintes retirées de l’espace • e négatif  une clause de taille k • Bonne requête = exemple qui réduit beaucoup l’espace quelle que soit la réponse

  23. K+R b1…bk NPhard Requêtes • Exemple e1 négatif :  cle1 = b1…bkK+R • Trouver m models(K+R) tel qu’un seul littéral bi de cle1 soit faux • Trouver e2  sol((m)) :  e2 ne viole que la contrainte ci  bi ou bi ira dans K • Si sol((m))= : tout conflict-set est une nouvelle règle de redondance!  Convergence rapide m contient bi (m) e2 sol((m)) Requête: “e2” ?

  24. Et si on n’est pas expert ? • Choix des variables/domaines • Acquisition des contraintes • Améliorer le modèle de base

  25. Variables BT-search + propagation Domains Constraints Améliorer le modèle modelling • Modèle de base M1 : solve(M1) ≈ ∞  Les experts ajoutent des contraintes implicites qui augmentent la quantité de propagation • Une contrainte implicite ne change pas l’ensemble de solutions  On va apprendre des contraintes globales implicites Problem Solution solving The globalest is the best

  26. Modèle M1: Il n’y a pas plus de deux 1 par solution M1+{card[#1≤2](X1..Xn)}: mêmes solutions que M1 Mais solve(M1+ card) est plus rapide que solve(M1) X1 … Xn 112345 332223 551554 124135 ….. sol(M1): Contraintes globales implicites Card[..]+card[..]+card[..] = gcc[P] gcc = propagation avec un algorithme de flot

  27. Très difficile Très facile M1 M2 M1+ gcc[P’](X1..Xn) gcc[P’](X1..Xn) Facile gcc[P](X1..Xn) Apprendre les paramètres P de gcc[P](X1..Xn) Sol(M2) Sol(M1)

  28. Affectation de tâches • Projets à affecter à des étudiants d’IUT en minimisant la déception • Modèle M1 construit par des étudiants d’IUT (2h de formation CP) : • optimize(M1) > 12h

  29. Possibles(P) obligatoires(P) Affectation de tâches Pi • Lancer optimize(M1) pendant 1 sec. • Solution s0 de coût F0 • M2 = M1+(cost<F0) • obligatoires(P)  cardinalités(s0); possibles(P)  Z • choisir Pi possibles(P) \ obligatoires(P) • s  solve(M2 + gcc[Pi ](X1..Xn) ) • Si s= alorspossibles(P)  possibles(P) \ Pi • Sinonobligatoires(P)  obligatoires(P) + cardinalités(s) • optimize(M1 + gcc[possibles(P)](X1..Xn)) •  solution optimale en 43mn au lieu de >12h

  30. Illustration: modélisation automatique d’actions élémentaires en robotique Mathias PAULIN paulin@lirmm.fr www.lirmm.fr/~paulin

  31. Acquisition automatique des actions élémentaires CONACQ Mission Couche décisionnelle {(Xi, D, Ci)} Planificateur plan Supervision Couche exécutive données capteurs commandes Couche physique Robot Architecture de supervision Contexte • Abstraire les actions élémentaires sous la forme de CSP • Combiner les CSP à l’aide d’outils de planification • Contrôler l’exécution d’une tâche, en corrigeant les écarts éventuels entre les prévisions et la réalité, via les mécanismes de propagation.

  32. Prec(ai) modélise la pré condition de ai, Action(ai) modélise le comportements des actionneurs, Post(ai) modélise les effets de ai. Modélisation automatique d’une action ai  Pour chaque action ai, on cherche à déterminer :  Données fournies à CONACQ : (1I,…, pI, 1,…, q, 1F,…, pF, étiquette) {1I, …, pI} = valeurs initiales des descripteurs (capteurs) du robot {1, …, q} = tensions appliquées sur les actionneurs (moteurs) {1F, …, pF} = valeurs finales des descripteurs  Objectif : Trouver les contraintes sur {1I,…, pI, 1,…, q, 1F,…, pF} consistantes avec les données d’entraînement.

  33.  Tribot Mindstorms NXT :  3 servomoteurs  4 capteurs (pression, son, lumière, ultrasons) Expérimentation : Tribot Mindstorms (1) • 5 actions : Trouver une cible, Avancer, Avancer avec précision, Ouvrir & Fermer la pince. • Discrétisation des variables descripteurs • Originalité : Ce n’est pas un utilisateur qui classe les exemples. C’est un simulateur ou le robot lui-même (échec, chute, etc.)

  34. Expérimentation : Tribot Mindstorms (2)  Modélisation automatique par CONACQ  Implémentation en CHOCO du planificateur CSP-Plan [Lopez2003]  Commande du robot via le langage URBI  Objectif : Saisie d’un objet par le robot Tribot!

  35. Perspectives • Prises en compte de la connaissance de base (ontologies) pour renforcer le biais • Techniques d’apprentissage résistant au bruit (erreurs de l’utilisateur) • Plateforme de test pour novice (outils de visualisation, etc.) • Reconnaissance de motifs pour cibler les contraintes implicites

  36. Many thanks to...

  37. Bibliographie C. Bessiere, R. Coletta, T. Petit. "Learning Implied Global Constraints” Proceedings IJCAI'07, Hyderabad, India, pages 50-55. C. Bessiere, R. Coletta, B O'Sullivan, M. Paulin. "Query-driven Constraint Acquisition” Proceedings IJCAI'07, Hyderabad, India, pages 44-49. C. Bessiere, R. Coletta, F. Koriche, B. O'Sullivan. "Acquiring Constraint Networks using a SAT-based Version Space Algorithm” Proceedings AAAI'06, Nectar paper, Boston MA, pages 1565-1568. C. Bessiere, J. Quinqueton, G. Raymond. "Mining historical data to build constraint viewpoints” Proceedings CP'06 Workshop on Modelling and Reformulation, Nantes, France, pages 1-16. C. Bessiere, R. Coletta, F. Koriche, B. O'Sullivan. "A SAT-Based Version Space Algorithm for Acquiring Constraint Satisfaction Problems” Proceedings ECML'05, Porto, Portugal, pages 23-34. C. Bessiere, R. Coletta, E. Freuder, B. O'Sullivan. "Leveraging the Learning Power of Examples in Automated Constraint Acquisition” Proceedings CP'04, Toronto, Canada, pages 123-137. R. Coletta, C. Bessiere, B. O'Sullivan, E. Freuder, S. O'Connell and J. Quinqueton. "Constraint Acquisition as Semi-Automatic Modelling” Proceedings AI-2003, Cambridge, UK, pages 111--124. Projet ANR blanc CANAR, Univ. Caen, Ecole des Mines de Nantes, Univ. Orléans, Univ Montpellier.

  38. X+Y+Z10 or Optimistic e5=(3,3,3) • e5=(3,3,3) violates the two constraints XZ and YZ • e5 positive • remove 3/4 of the possible CSPs • e5 negative • remove 1/4 of the possible CSPs • Works well when the target CSP is under-constrained X=Y? YZ? XZ? XY=Z

  39. X+Y+Z10 Optimal e6=(1,2,3) • e6=(1,2,3) only violates the constraint X=Y • e6 positive • remove 1/2 of the possible CSPs • e6 negative • remove 1/2 of the possible CSPs • Divides the number of candidate networks by half whatever the answer of the user X=Y? YZ? XZ? XY=Z

More Related