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

Petko Valtchev DIRO Université de Montréal Algorithmes de construction de treillis de Galois pour la résolution de problèmes.

Présentations similaires


Présentation au sujet: "Petko Valtchev DIRO Université de Montréal Algorithmes de construction de treillis de Galois pour la résolution de problèmes."— Transcription de la présentation:

1 Petko Valtchev DIRO Université de Montréal Algorithmes de construction de treillis de Galois pour la résolution de problèmes en génie logiciel Petko Valtchev DIRO Université de Montréal Février 2002

2 Identification automatique dabstractions Analyse Formelle de Concepts (AFC) approche algébrique pour la formation dabstractions potentiellement utiles a b c d e X X X X X X X X X O P ObjetsObjets Propriétés X XXXXXX X X ConceptsTreillis 4 X X X X Notre problématique: algorithmique flexible de construction X X X X X X X a b c d e O P K L L+L+ 5 6 X X X a b c d e O P K L

3 Plan de la présentation Plan de la présentation Motivations Lexistant Approche pour lassemblage de treillis Retombées algorithmiques 3

4 Pourquoi sy intéresser? Formation de groupes cohérents en génie logiciel (GL) Toutes les étapes du cycle de vie concernées, surtout la ré-ingénierie Ex. Entités = Variables, Objets (instances), Classes; Ex. Propriétés = Procédures globales, Attributs/méthodes de classe; Ex. Groupes = Modules/Structures dobjets, Classes, Classes abstraites; Ex. Problèmes = Migration de code (semi-)automatique, Modularisation, Restructuration de hiérarchies de classes, Reconfiguration de fichiers source, etc. Avantages de lapproche par treillis groupe = concept formel, fondé mathématiquement propriétés intéressantes de la structure = bornes inf et sup solution exhaustive = tous les groupes 4

5 5 Exemple: réingénierie de hiérarchies de classes OO Object at atPut Collection isEmpty size includes add remove SequenceableColl. atAllPut first last remove ArrayedColl. add LinkedList addFirst addLast atAllPut atPut remove Set minus atPut at Bag addWithOcc atPut at Dictionary keys remove values Les collections dans ObjectWorks en Smalltalk

6 6 Exemple : les Collections* de SmallTalk * Classes de collections de la librarie ObjectWorks de (sous-ensemble) [Godin et al. 98] SetBagDictionaryLinked ListArray isEmpty size includes add remove minus addWithOccurences at atPut atAllPut first last adFirst addLast keys values X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) Method Selectorscode

7 7 Le treillis de Galois (de concepts) D A L S B A,D D,L A,L D,S L,B,S D,L,B,S A,D,L A,D,L,B,S Indexed Extensible Collection

8 Motivations du travail Constat: les outils algorithmiques des treillis ne répondent pas aux caractéristiques du processus de production de logiciel Ex. multiples acteurs, grands volumes de données, profusion des résultats intermédiaires (décomposition et recomposition), évolution des paramètres, etc. algorithmes actuels [ Ganter 84 ], [ Bordat 86 ], [ Nourine&Reynaud 99 ]: traitement par lot, centralisé, génération du treillis entier Objectif: conception dalgorithmes flexibles pour étendre la porté de AFC premiers pas: algos incrémentaux [ Godin 86 ], élagage [ Dicky et al. 96 ], Notre approche: « opérationaliser » les constructions de lAFC divers produits / décompositions de treillis fragmentation/concaténation de relations binaires 8

9 Un problème concret: lintégration de perspectives Cadre: « separation of concerns » dans les systèmes OO complexes « perspective » = ensemble de fonctionnalités inter-connectées transcendant le découpage en classes Approches: sujets [ Harisson 93 ], aspects [ Kiszales 97 ], vues [ Mili 99 ], etc. Perspectives du domaine : séparation du comportement des objets Ex. Collections: sujets Consultation (size,…) et Modification (add,…) hiérarchie de classes propre au sujet Intégration de sujets/aspects = fusion de hiérarchies Problème algorithmique: va et vient entre hiérarchies partielles (sujet) et globale (système) « assemblage » de treillis partiels / décomposition du treillis global 9

10 Plan de la présentation Plan de la présentation Motivations Lexistant Approche pour lassemblage de treillis Retombées algorithmiques 10

11 Contextes Formels & Correspondances de Galois Formal Context [Wille82] relation dincidence objets - attributs 11 (O) (P) g f f(X) = {y P x X, x y } = X' g(Y) = {x O y Y, x y } = Y' 123 X X X X X X X a b c d 456 X X X X X X X X X 7 X X X 8 X X X P O Ex. {5, 7}' = {a, d}{b, d}' = {5, 6} correspondance de Galois Y f(X) iff X g(Y) {a, d}' = {5, 6, 7, 8} operateurs de ferméture X'' = g º f(X) Y'' = f º g(Y) {5, 7}'' = {5, 6, 7, 8} {b, d}'' = {a, b, d} Ensembles fermés X = X'',Y = Y'' {a, d}'' = {a, d}{5, 6}'' = {5, 6} K= (O, P, )

12 Treillis de Concepts Formels 12 Concept Formel (X,Y) X O, Y P; X'' = X, Y'' = Y X = Y', Y = X' Ordre Partiel (X 1, Y 1 ) (X 2, Y 2 ) iff X 1 X 2 ( Y 2 Y 1 ) (sub-concept of) Ex. (57, ad) nest pas un concept X - extent, Y - intent (5678, ad) est un concept Operateurs de treillis Basic FCA theorem [Wille 82] meet - j J (X j, Y j ) = ( j J X j, ( j J Y j )'') join - j J (X j, Y j ) = (( j J X j )'', j J Y j ) (6,abcd) (56,abd) (678,acd) (36,abc) (12356,ab) (34678,ac) (5678,ad) ( ,a) (6,abcd) (36,abc) (56,abd) (34678,ac) (5678,ad) (12356,ab) ( ,a) (678,acd) B (O,P, )

13 Algorithmes Construisant le Treillis Bordat 13 Godin Nourine & Raynaud StartNext T ( L ) = ( O '', O ' ) (X,Y) génère les lower covers (X 1,Y 1 ) … (X j,Y j ) X j – sous-ens. de X maximaux fermés ({o},{o} ' ) 1 a b c d e X X X O P (Ø,P) L K 4 X X X X X X X X X X X a b c d e O P K L F i+1 = F i { {o i+1 }' Y | Y F i } 2. ( L ) = ( A ', A '' ) F 0 = Ø 1. B (X,Y) génère les upper covers (X 1,Y 1 ) … (X j,Y j ) Y j - {o}' Y ( o O/X)

14 14 Fragmentation de contextes Apposition = reconstitue le contexte après éclatement abc defgh i x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x xx K= (O, P, ) K 1 = (O, P 1, O P 1 ) P1P1 L1L1 K 2 = (O, P 2, O P 2 ) P2P2 L2L2 K= K 1 | K 2

15 15 Visualisation par diagrammes imbriqués L1L1 L2L2 treillis partiels nœuds vide nœuds image L 1 L 2 a d b c g h 4 i f e #1 #2 #3 #6 #8 #7 #4 #5 L treillis global

16 Résultats existant 16 L 1 L 2 L Aucun algorithme connu (fusion, construction diagramme imbriqué) Deux homorphismes liant L 1 L 2 avec L : ((X,Y)) = (((Y P 1 )' Y P 1 ((Y P 2 )' Y P 2 )) : L L 1 L 2 ; « projection » de lintent Y sur P 1 et P 2 (nœuds pleins) ((X 1,Y 1 ), (X 2,Y 2 )) = ((X 1 X 2 ) (X 1 X 2 ) ' ) : L 1 L 2 L ; intersection des extents X 1 et X 2

17 Plan de la présentation Plan de la présentation Motivations Lexistant Approche pour lassemblage de treillis Retombées algorithmiques 17

18 18 Construction en trois étapes L L 1 L 2 Identifier concepts ac Calculer intents & extents Détecter enfants immédiats

19 19 Étape un & deux #2 #6 #4 abdf Prop. (X,Y) = ((X 1,Y 1 ),(X 2,Y 2 )) Y = Y 1 Y 2 et X = X 1 X 2 c Prop. ( c 1,c 2 ) -1 ( c ) R ( c 1,c 2 ) = Ext (c) Ex. c #3 =(56,abd) c #6 =(568,f) [ (c #3,c #6 ) ] R = -1 ( c ) = { (c #3,c #6 ), (c #1,c #6 ), (c #3,c #2 ) } R ( c 1,c 2 ) = 56 Def. R: L 1 L 2 (O) R ( c 1,c 2 ) = Ext (c 1 ) Ext (c 2 ) Prop. ( c 1,c 2 ) = (c) {( c 1,c 2 )} = Min( -1 ( c ))

20 20 Étape trois #3 #7 #5 ac c acde acdf acgh acd abc (LowerCovers( c 1, c 2 )) Prop. (CN) ĉ c ( c 1, c 2 ) LowerCovers( ( c )), ( c 1, c 2 ) = ĉ. Prop. (CNS) ĉ c ĉ Max( (LowerCovers( ( c ))). Max

21 Algorithme dassemblage de treillis Procedure Build_Global_Lattice Input: L 1 = B 1 1, L 2 = B 2 2 /* Couple of lattices */ Output: L = B /* The lattice of apposition context */ B := Ø 1. SORT( B 1 ) ; SORT( B 2 ) /* sort of concept sets in an ascending order */ 2. For each couple ( c i, c j ) in B 1 x B E := Ext ( c i ) Ext ( c j ) /* computation of R */ 2.2. c := Find_Psi( E, c i, c j ) /* tentative retrieval of based on R */ 2.3. If c = NULL then c := Make_Concept( E, Int ( c i ) Int ( c j ) ) B := B { c } Find_LowerCovers ( c, c i, c j ) /* detection of predecessors in L */ 21

22 Plan de la présentation Plan de la présentation Motivations Lexistant Approche pour lassemblage de treillis Retombées algorithmiques 22

23 Algorithmes dérivés: construction du treillis 23 Incrémentale (améliore [Godin et al. 95]) Hybride (incrémentale/par lot) a b c d e X X X X X X X X X O P X X X X XXXXXX XX XXX X... « Diviser-pour-régner » 4 X X X X X X X X X X X a b c d e O P K L L+L+ 5 6 X X X a b c d e O P K L

24 Algorithmes dérivés (suite) Maintien de treillis par incrémentation fine Inversion de case de la table (ajout/enlèvement dun (o,a) à I) 24 Construction directe du diagramme imbriqué 4 X X X X X X X X X X a b c d e O P K L L1L1 L2L2 Extraction de treillis partiels dun treillis global L X

25 ComplexitéComplexité 25 d(L) - degré dun nœud k - nb dobjets, |O| m - nb dattributs, |P| O(d(L 1 ) + d(L 2 )) O(l 1 + l 2 ) Assemblage Total Parcours du produit Construction treillis Recherche success. Recherche valeur Psi Tri OrdreÉtape O(d(L 1 ) + d(L 2 ))m) O(d(L 1 )+ d(L 2 )) m l ) O(d(L 1 )+ d(L 2 ) + k ) l 1 l 2 ) O( k ( l 1 l 2 + l m ) ) l - nb de concepts L l i - nb de concepts L i Hypothèse : croissance linéaire de l sur k ( |L|= O( |O| ) ) Assemblage : O( |L|. |O|. |P| ) ( meilleur algo ) Méthode « D&C » : O( |L|. |O|. |P|. log|P| ) (alg. moyen O( |L|. |O| 2. |P| ) ) Problème Estimer l 1 l 2 Sur l m ( Pb. # P-complet)

26 ExpérimentationsExpérimentations 26

27 Quelques projets applicatifs Analyse du panier du consommateur: « Construction incrémentale dune base non-redondante de règles dassociation » Conception OO: « Restructuration de hiérarchies de classes Java en temps réel » Migration de code procédural vers OO: « Conception d'outils interactifs de détection de structures d'objets dans un code source procédural » 27

28 BilanBilan Stratégie dassemblage de treillis bien adaptée : aux problèmes dintégration de vues partielles sur un domaine à la fragmentation des données et à la distribution du traitement Cadre pour la conception/test de nouvelles méthodes pour: construction, exploration, composition/décomposition de treillis. 28 I1I1 I2I2 I3I3 L K= (O, P, I) L1L1 L3L3 L2L2

29 La suite... Nombreux problèmes algorithmiques fusion de treillis de types dans les LPOO a typage dynamique extraction de points de vue pertinents dun treillis global? étude dautres opérateurs de produit de treillis (sub-direct, tensoriel) construction efficace de tri-lattices (relations ternaires) Étude et réalisation doutils basés sur les techniques de treillis analyse et restructuration pour la re-ingénierie détection de points de vues à partir de code source/spécifications extraction et factorisation dinformation diagrammes UML, documents XML (suite travail de thèse) moteurs de recherche contextuelle sur la Toile (the Web) vérification de systèmes dynamiques détection de états stables dans le temps (tri-concepts temporisés) 29


Télécharger ppt "Petko Valtchev DIRO Université de Montréal Algorithmes de construction de treillis de Galois pour la résolution de problèmes."

Présentations similaires


Annonces Google