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

Compilation de Règles de réécriture et de Stratégies non-déterministes Pierre-Etienne Moreau Directeur de thèse : Hélène Kirchner.

Présentations similaires


Présentation au sujet: "Compilation de Règles de réécriture et de Stratégies non-déterministes Pierre-Etienne Moreau Directeur de thèse : Hélène Kirchner."— Transcription de la présentation:

1 Compilation de Règles de réécriture et de Stratégies non-déterministes Pierre-Etienne Moreau Directeur de thèse : Hélène Kirchner

2 2 Contexte général Preuve automatique de propriétés et de théorèmes –développer des techniques de preuve –prototyper des outils de preuve Règle de réécriture –objet sur lequel il est possible de raisonner –moyen dexprimer les algorithmes et les procédures de preuve

3 3 Contexte international De nombreux travaux : CiME, daTac, Larch Prover, Otter, ReDuX, Reve, RRL, Spike, ML, Caml, Clean,... principaux langages : terme + règle 1975CompilateurEquational Interpreter (Chicago) Interpréteur OBJ (Menlo Park) 1980Interpréteur ASF+SDF (Amsterdam) 1985Compilateur ELANInterpréteur ELAN (Nancy) Interpréteur Maude CafeOBJCompilateur Brute Compilateur ASF+SDF (Ishikawa) + stratégie

4 4 Plan ELAN : Réécriture + Stratégie Objectifs et difficultés Apports Situation actuelle et perspectives

5 5 ELAN Mécanisme de base : réécriture Règle non nommée : [] fact(1) 1 Règle conditionnelle : [] fact(n) n*fact(n-1) if n 1 Calcul fact(3) 3*fact(2) 3*2*fact(1) 3*2*1 3*2 6

6 6 Problèmes liés à la réécriture 2 règles de réécriture : [] [x,y] x [] [x,y] [x+1,y] [1,2] 1[2,2] 2[3,2] 3... Non-confluence Non-terminaison

7 7 Stratégie Règle nommée : [R1] [x,y] x [R2] [x,y] [x+1,y] Stratégie : repeat(dc one(R1,R2)) repeat(first one(R1,R2)) repeat(dk(R1,R2)) [1,2] 1[2,2] 2[3,2] 3... gestion de la non confluence Gestion de la non confluence

8 8 Stratégie Gestion de la non terminaison Ajout dune condition : [R1] [x,y] x [R2] [x,y] [x+1,y] if x y [1,2] 1[2,2] 2 Ajout dune règle : [R1] [x,y] x [R2] [x,y] [x+1,y] [check] [x,y] [x,y] if x y Stratégie : repeat(dk(R1, check ; R2))

9 9 Associatif-Commutatif Grande expressivité Associativité : x (y z) = (x y) z Commutativité : x y = y x [extract] x E x dk(extract)

10 10 Associatif-Commutatif Source de non-déterminisme Règle : [extract] x E x Sujet : Objectif : extraire un élément pair Règle : [check] x x if Pair(x) Stratégie : dk(extract) ; dc one(check) échec 22

11 11 AC + Stratégie Double non-déterminisme Une règle nommée est appliquée à la racine Mécanisme dévaluation locale [relation] x E y if Pair(x) where y:=(dk(extract)) E if Relation(x,y)

12 12 Plan ELAN : Réécriture + Stratégie Objectifs et difficultés Apports Situation actuelle et perspectives

13 13 Objectifs Poursuivre létude du formalisme Etudier les algorithmes de compilation –compilation de la réécriture –compilation du filtrage AC –compilation des stratégies Rendre ces méthodes utilisables en pratique –concevoir un outil fiable et efficace

14 14 Difficultés Gérer le double non-déterminisme proposer un mécanisme uniforme Gérer les interactions et intégrer les solutions conception globale de stratégies non-déterministes de symboles associatifs et commutatifs Compiler la réécriture En présence :

15 15 Plan ELAN : Réécriture + Stratégie Objectifs et difficultés Apports Situation actuelle et perspectives

16 16 Compilation du filtrage syntaxique Sélection efficace dune règle : –analyse de lensemble des règles –pré-construction dautomates de filtrage –génération dun programme C Travaux largement étudiés : –Hoffmann et ODonnell (1982), Gräf (1991), Sekar et al. (1992), Graf (1996), Nedjah et al. (1997) Apports Gestion du non-déterminisme Filtrage syntaxique Compilation du filtrage AC Analyse du déterminisme Compilation des stratégies Implantation Définition dun format déchange

17 17 Automate de filtrage Analyse des 3 règles f(a,g(a)) a f(g(b),g(b)) c f(x,g(c)) b f * g b g b g a g a c Sujet : f(g(a),g(c)) Automate de filtrage non-déterministe Non-déterministe : pour sélectionner un motif pour trouver tous les motifs

18 18 Automate de filtrage déterministe Analyse des 3 règles f(a,g(a)) a f(g(b),g(b)) c f(x,g(c)) b f * g b g b g a g a c c c g c * Sujet : f(g(a),g(c)) Gräf (1991) Nedjah (1997)

19 19 Automate de filtrage déterministe avec jumpNode Analyse des 3 règles f(a,g(a)) a f(g(b),g(b)) c f(x,g(c)) b Sujet : f(g(a),g(c)) f * g b g b g a g a c c c g c * * construction incrémentale taille réduite

20 20 Compilation du filtrage AC Problème connu : –Hullot (1980) –Benanav et al. (1987) –Kounalis et al. (1991) –Bachmair et al. (1993) –Lugiez et al. (1994) –Eker (1995) Prise en compte de laspect normalisation Apports Gestion du non-déterminisme Filtrage syntaxique Compilation du filtrage AC Analyse du déterminisme Compilation des stratégies Implantation Définition dun format déchange

21 21 Forme canonique ordonnée : b+(a+(b+c)) = (b+a)+(b+c) = +(a,b 2,c) 1 sujet : +(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a)) 2 règles : –+(z, f(a,x), g(a)) r 1 –+(f(a,x), f(y,g(b))) r 2 Problème à résoudre Trouver une solution au problème de filtrage AC Forme canonique ordonnée : b+(a+(b+c)) = (b+a)+(b+c) = +(a,b 2,c) 1 sujet : +(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a)) 2 règles : –+(z, f(a,x), g(a)) r 1 –+(f(a,x), f(y,g(b))) r 2

22 22 Exemple (one-to-one) sélection dune règle : +(z, f(a,x), g(a)) r 1 construction dun BG : Sujet : +(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a)) résolution du BG : calcul dune autre solution : x=a et z=+(f(a,g(b)), f(g(c),g(b))) x=g(b) et z=+(f(a,a), f(g(c),g(b))) sélection dune autre règle : tout est à refaire !

23 23 Analyse de la situation Problème La construction des BG coûte cher –appel récursif du filtrage AC one-to-one –allocation dynamique de mémoire +(f(x), *(g(y), h(z))) r(x,y,z) +(f(a), f(b), g(c), *(g(a), h(b)), *(g(b), h(c))) *(g(y), h(z)) *(g(a), h(b)) *(g(y), h(z)) *(g(b), h(c))

24 24 3 idées principales Accélérer les cas fréquents en pratique –définition dune classe de motifs Réduire le coût de construction des BG –utiliser des automates de filtrage syntaxique –définir une structure de BG compacte Intégrer filtrage et normalisation –prendre en compte les contraintes externes au filtrage AC

25 25 Classe de motifs C 0 : termes linéaires –exemple : a, x, f(x,y), … C 1 : 1 niveau de symbole AC (semi-linéaire) –2 variables directement sous le symbole AC –exemple : [+(z, y 3, f(a,x), g(a)), *(g(t), b)] C 2 : 2 niveaux de symboles AC –exemple : *(x, +(y, z 2 )) Suffisant en pratique Filtrage syntaxique des sous-termes

26 26 Approche many-to-one +(z, f(a,x), g(a)) r 1 +(f(a,x), f(y,g(b))) r 2 construction du CBG avec un automate +(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a)) sélection dune règle : extraction dun BG calcul dune solution +( f(a,x), f(y,g(b)), g(a) ) +(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a)) +( f(a,x), f(y,g(b)), g(a) ) regroupement des sous termes

27 27 Approche many-to-one +(z, f(a,x), g(a)) r 1 +(f(a,x), f(y,g(b))) r 2 construction du CBG avec un automate +(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a)) sélection dune règle : extraction dun BG calcul dune solution sélection dune autre règle : +( f(a,x), f(y,g(b)), g(a) ) +(f(a,a), f(a,g(b)), f(g(c),g(b)), g(a)) +( f(a,x), f(y,g(b)), g(a) ) extraction dun autre BG

28 28 Normalisation AC Sélection dune règle : filtrage AC Calcul dune substitution Construction et normalisation des instances –gestion de la mémoire et du partage Traitement des évaluation locales –stratégies et problèmes de filtrage imbriqués –gestion des retours arrières Maintien en forme canonique ordonnée

29 29 Résultats expérimentaux Bool3 : peu de règles mais des gros termes x + 0 x x * 0 0 x + x + x 0x * x * x x (x + y) * z (x*y) + (y*z)x * 1 x and(x,y) (x*x*y*y) + (2*x*x*y) + (2*x*y*y) + (2*x*y) or(x,y) … not(x) (2*x) + 1

30 30 Résultats expérimentaux Requête : and(a 1,…,a 6 ) = not(or(not(a 1 ),…,not(a 6 ))) CiME :>24h OBJ :>24h OTTER :>10mn (plus de mémoire) ReDuX :20mn RRL :>4h (plus de mémoire) Spike :>24h Brute :2.25 sec Maude :0.153 sec ELAN :0.332 sec

31 31 Résultats expérimentaux Nat10 : petits termes mais >100 règles CiME :294 sec OBJ :111 sec Brute :0.360 sec Maude :0.170 sec ELAN :0.163 sec

32 32 Résultats expérimentaux Somme : règles conditionnelles x faux x S set(y) vrai if x = y x S faux [S 1 set(x), S 2, y] erreur if x S 2 [S 1 set(x), S 2, y] [S 1, S 2 set(x), x+y] if x S 2

33 33 Résultats expérimentaux Requête : [ set(1) … set(100),, 0] OBJ :>24h Spike :>24h Brute :6.247 sec Maude : sec ELAN :1.326 sec Résultat : [, set(1) … set(100), 5050]

34 34 Gestion des points de choix en C Ajout de 2 primitives : –setChoicePoint (setjmp) –fail (longjmp) Apports Gestion du non-déterminisme Filtrage syntaxique Compilation du filtrage AC Analyse du déterminisme Compilation des stratégies Implantation Définition dun format déchange.eln Compilateur C Support Backtrack

35 35 Intérêts de lapproche Gestion transparente des points de choix Compilation modulaire, utilisation de paramètres et de variables locales Un seul mécanisme pour gérer le double non-déterminisme Schémas simples de compilation des stratégies

36 36 Compilation des Stratégies Apports Gestion du non-déterminisme Filtrage syntaxique Compilation du filtrage AC Analyse du déterminisme Compilation des stratégies Implantation Définition dun format déchange dk(S1, S2) résultat fin X X X S2 S1 dc one(S1, S2) résultat fin X X S1 dk(S1, S2) ; S3 résultat intermédiaire fin X X X S2 S1 S3 échec résultat intermédiaire S3 résultat résultat intermédiaire S3 échec

37 37 Analyse du déterminisme Point de choix –temps –mémoire Stratégie avec plusieurs résultats –pose de points de choix Stratégie avec un seul résultat –pas de point de choix Régimes déterministes Apports Gestion du non-déterminisme Filtrage syntaxique Compilation du filtrage AC Analyse du déterminisme Compilation des stratégies Implantation Définition dun format déchange

38 38 Algorithme Résumé Analyse des règles [] x E E if P(x) [] x E E f(x) if not(P(x)) points de choix pas de point de choix [] fact(n) 1 if n = 1 [] fact(n) n*fact(n-1) if n 1 Analyse des stratégies repeat(dc one(S))

39 39 Impact sur le code généré Contrôle géré par des sauts (goto) Amélioration des schémas de compilation : s s s s s s s s s sss Stratégie repeat(S) cas déterministecas non-déterministe Moins de points de choix

40 40 Impact sur la pose de points de choix

41 41 Impact sur lefficacité du code généré

42 42 Implantation Plateforme de développement Compilateur utilisable et diffusé Accélération des programmes Réduction de la consommation mémoire Exécution dapplications de taille réelle Apports Gestion du non-déterminisme Filtrage syntaxique Compilation du filtrage AC Analyse du déterminisme Compilation des stratégies Implantation Définition dun format déchange

43 43 Automates darbres (Thomas Genet) Environnement de calcul et de preuve Déterminisation, minimisation, intersection Terminaison, interblocage, confidentialité, modules, 100 sortes, 850 règles, 300 conditions, 55 stratégies, … 10^9 règles appliquées en 20 minutes (1 semaine avec linterpréteur)

44 44 Colette (Carlos Castro) Environnement de résolution de contraintes Conjonction, minimisation, disjonction Puzzles, coloriages, ordonnancement, modules, 40 sortes, 1000 règles, 500 conditions, 60 stratégies,... 10^10 règles appliquées en moins de 24h (6 mois avec linterpréteur)

45 45 Plan Réécriture + Stratégie Difficultés Apports Situation actuelle et perspectives

46 46 Perspectives Aujourdhui : nous avons un langage Perspective : –possibilité de plug-in –méthode dévaluation des performances –extension du filtrage AC (A, AC0, AC1) algorithme de tri : l 1 X l 2 Y l 3 l 1 Y l 2 X l 3 if Y

47 47 Perspectives Aujourdhui : nous avons une implantation Perspective : –représentation des termes –gestion mémoire –mémorisation –gestion de lespace de recherche : backjumping, forwardjumping

48 48 Perspectives Perspective : –format déchange –modularité –mise à disposition doutils –ouverture vers lextérieur Pretty-printerEditeur Interface Parseur Outil de Coordination Préprocesseur InterpréteurCompilateurDébogueur Aujourdhui : nous avons un environnement

49 49 Perspectives ELAN : calcul par réécriture Perspective : construire le terme de preuve –visualiser (expliquer) –rejouer (déboguage) –communiquer (vérifier un calcul) –comprendre (stratégie interactive) –analyser (stratégie « intelligente ») puissance et efficacité

50 50 Apports Résumé compilateur pour la réécriture intégrant : algorithme de compilation du filtrage syntaxique définition dune classe de motifs algorithme de compilation du filtrage AC méthode de gestion des points de choix algorithme danalyse du déterminisme schémas de compilation de stratégies

51 51 Résultats expérimentaux Résumé Interpréteur : 10 à réécritures/sec Compilateur : à rééc/sec plus de 10^10 règles appliquées en 24h 1 min. de calcul = 3h20 avec un interpréteur 1 jour de calcul = 6 mois 3 années de travail


Télécharger ppt "Compilation de Règles de réécriture et de Stratégies non-déterministes Pierre-Etienne Moreau Directeur de thèse : Hélène Kirchner."

Présentations similaires


Annonces Google