La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Quand le programme est un problème Propagation de contrainte et programmation automatique.

Présentations similaires


Présentation au sujet: "22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Quand le programme est un problème Propagation de contrainte et programmation automatique."— Transcription de la présentation:

1 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Quand le programme est un problème Propagation de contrainte et programmation automatique

2 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique PLAN Quelques mots dALICE Son extension : RABBIT

3 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique ALICE Un langage déclaratif pour poser les problèmes Un résolveur général incorporant des méthodes de résolution variées qui sappliquent de manière non déterminée à lavance Un niveau « méta » qui choisit à tout instant la meilleure méthode à appliquer sur le (sous-) problème à résoudre i.e. compte-tenu des choix déjà faits et des implications déjà déduites

4 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique ALICE, un exemple : trouver les solutions entières positives de léquation :x = 66 x Tout dabord, on déduit : x 3 < 66 x i.e. x 2 < 66, soit x 8 Donc x [1, 8]

5 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique x = 66 x Raisonnons sur les parités. 119 est impair, 66 x est pair x, donc x 3 est impair, donc x est impair. Doù x {1, 3, 5, 7}

6 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique On tient compte de légalité des intervalles : 66 x [120, 462] donc : x [ 120 /66, 462/66 ] Soit : x [2, 7] mais compte-tenu des valeurs possibles de x, on obtient finalement x {3, 5, 7} x = 66 x Raisonnons sur les intervalles. x [1, 7], doù léquation sur les intervalles : [1, 343] + [119, 119] = [66, 462] i.e. : [120, 462] = [66, 462]

7 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique x = 66 x Raisonnons encore sur les intervalles. On a : x [3, 7], doù : [27, 343] + [119, 119] = [198, 462] i.e. : [146, 462] = [198, 462] On tient compte de légalité des intervalles : x [198, 462] donc : x 3 [79, 343] x 3 79 x 5, donc : x [5, 7] on obtient finalement x {5, 7}

8 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique x = 66 x Raisonnons toujours sur les intervalles. On a : x [5, 7], doù : [125, 343] + [119, 119] = [330, 462] i.e. : [244, 462] = [330, 462] On tient compte de légalité des intervalles : x [330, 462] donc : x 3 [211, 343] x x 6, donc : x [6, 7] on obtient finalement la solution x {7}

9 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique x = 66 x Résolution par RABBIT. idem : x 3 < 66 x, soit x 8 Puis RABBIT déduit : x 3 15 x modulo 17 (vient de 119 = 7 17 et 66= ) Doù x 2 15 modulo 17 car x 17 (vient de x (x 2 – 15) modulo 17, avec la règle : a b modulo k se réécrit (a modulo k) ou (b modulo k) si k premier) Donc : x 2 = p et p {1, 2} puis énumération sur p

10 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique Un petit problème posé par Jean-Louis Laurière. Trois joueurs A, B, C organisent un tournoi déchecs, chaque joueur dispute 7 parties contre chacun de ses 2 adversaires. A lissue du tournoi, A déclare : je suis satisfait, car cest moi qui ai gagné le plus de parties B déclare : je suis satisfait, car cest moi qui ai perdu le moins de parties C déclare : je suis satisfait, car jai gagné le tournoi Combien C a-t-il fait de parties nulles ?

11 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique Modélisation du problème GAB, NAB, GBC, NBC, GAC, NAC [0, 7] GAB + NAB <= 7 GBC + NBC <= 7 GAC + NAC <= 7 2 GAB + GAC + NAB - GBC >= 8 GAB + 2 GAC + GBC + NBC + NAC >= 15 2 GAB - GBC + GAC - NBC + NAB + NAC <= 6 - GAB + GAC + 2 GBC + NBC >= 8 2 GAB + 2 GBC + 4 GAC + NBC + NAB + 2 NAC <= GAB + 2 GAC + 4 GBC + 2 NBC - NAB + NAC <= 13

12 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique SIREN : un système expert de génération automatique de programmes résolvant des problèmes Problème combinatoire Manipulation formelles de contraintes Propagation de contraintes Génération du programme dénumération Compilation et exécution du programme Solutions du problème combinatoire

13 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique SIREN : structure des programmes générés pour toute valeur de GAB pour toute valeur de NAB si (GAB + NAB) 7 alors pour toute valeur de GBC pour toute valeur de NBC si (GAB + NAB) 7 alors etc. pour toute valeur de GAC si contraintes résiduelles satisfaites alors écriture de la solution fin si fin pour fin si fin pour

14 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique RABBIT : extension dALICE Il existe des cas où le schéma choix + propagation nest pas efficace La résolution après propagation est bien avancée Il reste peu de contraintes mais difficiles à analyser Il faut énumérer Le domaine de recherche est encore grand Il faut énumérer de manière très efficace, donc avec un programme dénumération compilé

15 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique RABBIT : programmes générés Il faut déterminer lordre dinstanciation des variables et de prise en compte des contraintes Tant qu'il existe des contraintes Associer un poids à chaque opérateur de chacune des contraintes restantes = = != ==> autres Diviser ce poids par le nombre de variables de la contrainte. Associer une masse à chaque inconnue : masse de xi = nombre d'occurrences de xi dans l'ensemble des contraintes affectées de leur poids et du coefficient multiplicateur de xi quand il existe. Déterminer la contrainte dont la masse est la plus forte. Empiler cette contrainte et les variables qu'elle concerne dans l'ordre de leurs masses et ignorer dorénavant cette contrainte. Fin Tantque.

16 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique RABBIT : programmes générés compilation des contraintes Exemples : Cas des inégalitésHaut(i1) + Haut(i2) + Haut(i3) + 6 < hauteur est traduit en :Si ( Haut(i1) + Haut(i2) + Haut(i3) + 6 < hauteur) Cas du "Quel que soit" i [4, K] P(i) donne :Pour ( i= 4; i<= K; i++) Si !P(i) Alors échec Cas du "Il existe" i [K, K+4] P(i) donne :ok= 0; Pour ( i= K; i<= K+4; i++) Si P(i) Alors ok= 1. Si !ok Alors échec. Cas des implications V(i) < n W(V(i)) = V(i+1) devient :Si V(i) < n alors Si W(V(i)) != V(i+1) alors échec

17 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique RABBIT : extension dALICE Propagation de contraintes choix Propagation de contraintes choix Propagation de contraintes choix échec Génération dun programme échecs Génération dun programme solutions Génération dun programme Propagation de contraintes choix Propagation de contraintes solution Propagation de contraintes solution échecs Génération dun programme solution

18 22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Propagation de contrainte et programmation automatique RABBIT : parallélisation ? Propagation de contraintes choix Propagation de contraintes choix Propagation de contraintes choix échec Génération dun programme échecs Génération dun programme solutions Génération dun programme solution échecs Génération dun programme solution Génération dun programme Génération dun programme


Télécharger ppt "22 mars 2006 Journée scientifique en l'honneur de Jean-Louis LAURIERE Quand le programme est un problème Propagation de contrainte et programmation automatique."

Présentations similaires


Annonces Google