f évrier 2002

29
Algorithmes de construction de treillis de Galois pour la résolution de problèmes en génie logiciel Petko Valtchev Petko Valtchev DIRO DIRO Université de Montréal Université de Montréal e-mail: [email protected] e-mail: [email protected] Février 2002

Upload: chancellor-hendrix

Post on 15-Mar-2016

39 views

Category:

Documents


3 download

DESCRIPTION

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 e-mail: [email protected]. F évrier 2002. X X X X. X X X. X X. P. a b c d e. X X X X. O. P. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: F évrier  2002

Algorithmes de construction de treillis de Galois

pour la résolution de problèmes en génie logiciel

Petko ValtchevPetko Valtchev

DIRODIROUniversité de MontréalUniversité de Montréal

e-mail: [email protected]: [email protected]

Février 2002

Page 2: F évrier  2002

Identification aIdentification automatiqueutomatique d’abstractions d’abstractions

Analyse Formelle de Concepts (AFC) approche algébrique pour la formation d’abstractions potentiellement utiles.

2

1 2 3 4

a b c d eX X XX X X X XX X X X

O PObjets

Propriétés

X X

XXX

X XX X

X X X X

Concepts Treillis

4 X X X X

Notre problématique: algorithmique flexible de construction

1 2 3

X X XX X X X X

a b c d eO P K L L+

5 6

X X X X X X

a b c d eO P K L

Page 3: F évrier  2002

Plan de la présentationPlan de la présentation

Motivations

L’existant

Approche pour l’assemblage de treillis

Retombées algorithmiques

3

Page 4: F évrier  2002

Pourquoi s’y intéresser?Pourquoi s’y 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 d’objets, 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 l’approche 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

Page 5: F évrier  2002

5Exemple: réingénierie de hiérarchies de Exemple: réingénierie de hiérarchies de classes OO classes OO

ObjectatatPutCollection

isEmptysizeincludesaddremove

SequenceableColl.atAllPutfirstlastremove

ArrayedColl.add

LinkedListaddFirstaddLast

atAllPutatPutremove

Setminus

atPutat

BagaddWithOcc

atPutat

Dictionarykeys

removevalues

Les collections dans ObjectWorks en Smalltalk

Page 6: F évrier  2002

6Exemple : les Collections* de Exemple : les Collections* de SmallTalkSmallTalk

* Classes de collections de la librarie ObjectWorks de (sous-ensemble) [Godin et al. 98]

Set Bag Dictionary Linked List ArrayisEmptysizeincludesaddremoveminusaddWithOccurencesatatPutatAllPutfirstlastadFirstaddLastkeysvalues

XXXXXX

XXXXX X

XXXX X XX XX

XXXXX X X X XX

XXX XXXX X

(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)(16)

Method Selectors code

Page 7: F évrier  2002

7Le treillis de Galois (de concepts)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

Page 8: F évrier  2002

Motivations du travailMotivations 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 d’algorithmes 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 l’AFC

divers produits / décompositions de treillis

fragmentation/concaténation de relations binaires

8

Page 9: F évrier  2002

Un problème concret: l’intégration de Un problème concret: l’intégration de perspectives 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

Page 10: F évrier  2002

Plan de la présentationPlan de la présentation

Motivations

L’existant

Approche pour l’assemblage de treillis

Retombées algorithmiques

10

Page 11: F évrier  2002

Contextes Formels Contextes Formels && Correspondances de Galois Correspondances de Galois

Formal Context [Wille82] relation d’incidence objets - attributs

11

(O) (P)

gf

f(X) = {y P x X, x y } = X'g(Y) = {x O y Y, x y } = Y'

1 2 3XX

XX

XXX

abcd

4 5 6X

X

XX

X

XXXX

7X

XX

8X

XX

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, )

Page 12: F évrier  2002

Treillis de Concepts FormelsTreillis de Concepts Formels 12

Concept Formel (X,Y)

X O, Y P; X'' = X, Y'' = Y X = Y', Y = X'

Ordre Partiel

(X1, Y1) (X2, Y2) iff X1 X2

( Y2 Y1)

(sub-concept of)

Ex.(57, ad) n’est pas un concept

X - extent, Y - intent

(5678, ad) est un concept

Operateurs de treillisBasic FCA theorem [Wille 82]

meet - jJ (Xj, Yj) = (jJXj, (jJ Yj)'')

join - jJ(Xj, Yj) = ((jJXj)'', jJ Yj)(6,abcd)

(56,abd)(678,acd)(36,abc)

(12356,ab)(34678,ac)

(5678,ad)

(12345678,a)

(6,abcd)

(36,abc) (56,abd)(34678,ac) (5678,ad)

(12356,ab)

(12345678,a)

(678,acd)

B(O,P,)

Page 13: F évrier  2002

Algorithmes Construisant le Treillis Algorithmes Construisant le Treillis

Bordat

13

Godin

Nourine & Raynaud

Start Next

T(L) = (O'',O') (X,Y) génère les lower covers

(X1,Y1) … (Xj,Yj) Xj – sous-ens. de X maximaux fermés

({o},{o}')

1

a b c d e

X X XO P

(Ø,P)LK

4 X X X X

1 2 3

X X XX X X X X

a b c d eO P K L

Fi+1= Fi { {oi+1}' Y | Y Fi }

2. (L) = (A',A'')

F0= Ø1. B

(X,Y) génère les upper covers

(X1,Y1) … (Xj,Yj) Yj - {o}' Y (o O/X)

Page 14: F évrier  2002

14Fragmentation de contextesFragmentation de contextesApposition =

reconstitue le contexte

après éclatement

a b c1234

d e f g h

5678

ixxxxxxxx

xxx

xx

xx

xxx

xxxx

x

xx

x

xxxx

xxx x

K= (O, P, )

(6,abcd)

(56,abd) (678,acd)(36,abc)

(12356,ab) (34678,ac) (5678,ad)

(12345678,a) #1

#2#3

#4

#5#6

#7

#8

K1= (O, P1, OP1)

P1

L1

(4,ghi)

(234,gh)

(1234,g)

(568,f)(7,e)

#1

#4

#3#2#5

#6

#7 ( ,efghi)

(12345678, )

K2= (O, P2, OP2)

P2

L2

K= K1 | K2

Page 15: F évrier  2002

15Visualisation par diagrammes imbriquésVisualisation par diagrammes imbriqués

L1 L2

treillis partiels

nœuds vide

nœuds image

L1 L2

a

db c

gh

4i

21

3

6

5 7 8

f

e

#1

#2#3

#6

#8

#7

#4

#5

L

treillis global

Page 16: F évrier  2002

Résultats existantRésultats existant 16

L1 L2

L

Aucun algorithme connu (fusion, construction diagramme imbriqué)

Deux homorphismes liant L1 L2 avec L :

((X,Y)) = (((YP1)'YP1((YP2)'YP2))

: L L1 L2; « projection » de l’intent Y sur P1 et P2 (nœuds pleins)

((X1,Y1), (X2,Y2)) = ((X1X2)(X1X2)')

: L1 L2 L ; intersection des extents X1 et X2

Page 17: F évrier  2002

Plan de la présentationPlan de la présentation

Motivations

L’existant

Approche pour l’assemblage de treillis

Retombées algorithmiques

17

Page 18: F évrier  2002

18Construction en trois étapes Construction en trois étapes

L L1

L2

Identifier concepts

ac

Calculer intents & extents Détecter enfants immédiats

Page 19: F évrier  2002

19Étape un & deuxÉtape un & deux#2

#6

#4

abdf

Prop. (X,Y) = ((X1,Y1),(X2,Y2))

Y = Y1 Y2 et X = X1 X2

c

Prop. (c1,c2) -1(c)

R(c1,c2) = 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(c1,c2) = 56

Def. R: L1 L2 (O)

R(c1,c2) = Ext(c1) Ext(c2)

Prop. (c1,c2) = (c) {(c1,c2)} = Min( -1(c))

Page 20: F évrier  2002

20Étape troisÉtape trois

#3

#7#5

ac

c

acde

acdf

acgh acd

abc

(LowerCovers(c1, c2))

Prop. (CN) ĉ c (c1, c2) LowerCovers( (c)), (c1, c2) = ĉ.

Prop. (CNS) ĉc ĉ Max( (LowerCovers( (c))).

Max

Page 21: F évrier  2002

Algorithme d’assemblage de treillis Algorithme d’assemblage de treillis

Procedure Build_Global_Lattice

Input: L1= B1 1 , L2= B2 2 /* Couple of lattices */Output: L = B /* The lattice of apposition context */

B := Ø

1. SORT(B1) ; SORT(B2) /* sort of concept sets in an ascending order */2. For each couple (ci, cj) in B1 x B2

2.1. E := Ext(ci) Ext(cj) /* computation of R */

2.2. c := Find_Psi(E, ci, cj) /* tentative retrieval of based on R */

2.3. If c = NULL then

c := Make_Concept(E, Int(ci) Int(cj))B := B {c}

Find_LowerCovers (c, ci, cj) /* detection of predecessors in L */

21

Page 22: F évrier  2002

Plan de la présentationPlan de la présentation

Motivations

L’existant

Approche pour l’assemblage de treillis

Retombées algorithmiques

22

Page 23: F évrier  2002

Algorithmes dérivés: construction du treillisAlgorithmes dérivés: construction du treillis 23

Incrémentale (améliore [Godin et al. 95])

Hybride

(incrémentale/par lot)

1 2 3 4

a b c d e

X X XX X X X XX X X X

O P

X XX X X XX X

X

XX X

X

XX

XX X

. . . . . .

« Diviser-pour-régner »

4 X X X X

1 2 3

X X XX X X X X

a b c d eO P K L L+

5 6

X X X X X X

a b c d eO P K L

Page 24: F évrier  2002

Algorithmes dérivés (suite)Algorithmes dérivés (suite)

Maintien de treillis par incrémentation fine Inversion de case de la table

(ajout/enlèvement d’un (o,a) à I)

24

Construction directe du diagramme imbriqué

4 X X X

1 2 3

X X XX X X X X

a b c d eO P K L

L1

L2

Extraction de treillis partiels

d’un treillis global

L

X

Page 25: F évrier  2002

ComplexitéComplexité 25

d(L) - degré d’un nœud k - nb d’objets, |O|m - nb d’attributs, |P|O(d(L1) + d(L2))

O(l1 + l2)

Assemblage TotalParcours du produit

Construction treillis

Recherche success.

Recherche valeur Psi

Tri

OrdreÉtape

O(d(L1) + d(L2))m)

O(d(L1)+ d(L2)) m l )

O(d(L1)+ d(L2) + k ) l1 l2)

O( k ( l1 l2 + l m ) )

l - nb de concepts Lli - nb de concepts Li

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 l1 l2

Sur l m( Pb. # P-complet)

Page 26: F évrier  2002

ExpérimentationsExpérimentations 26

CPU Time over Concepts Count, DB-Like Files, 30 Att.

0

20

40

60

80

100

120

140

160

180

1000 2000 3000 4000 5000

Object Count

CPU

Tim

e in

Sec

.

Nourine & Raynaud

Bordat

Divide&Conquer

Page 27: F évrier  2002

Quelques projets applicatifsQuelques projets applicatifs Analyse du panier du consommateur:

« Construction incrémentale d’une base non-redondante de règles d’association »

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

Page 28: F évrier  2002

BilanBilan

Stratégie d’assemblage de treillis bien adaptée: aux problèmes d’inté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

I1

I2

I3

LK= (O, P, I)

L1L3

L2

Page 29: F évrier  2002

La suite...La suite... Nombreux problèmes algorithmiques

fusion de treillis de types dans les LPOO a typage dynamique extraction de points de vue pertinents d’un treillis global? étude d’autres opérateurs de produit de treillis (sub-direct, tensoriel) construction efficace de tri-lattices (relations ternaires)

Étude et réalisation d’outils 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 d’information

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