petko valtchev diro université de montréal e-mail: [email protected] algorithmes de...

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: aglae-maillot

Post on 04-Apr-2015

104 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

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]

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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Identification aIdentification automatiqueutomatique d’abstractions d’abstractionsIdentification 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 e

X 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 PK L L+

5 6

X X X X X X

a b c d eO P K

L

Page 3: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Plan de la présentationPlan de la présentation Plan de la présentationPlan de la présentation

Motivations

L’existant

Approche pour l’assemblage de treillis

Retombées algorithmiques

3

Page 4: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Pourquoi s’y intéresser?Pourquoi s’y intéresser?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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

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

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

Object

atatPutCollection

isEmptysizeincludesaddremove

SequenceableColl.

atAllPutfirstlastremove

ArrayedColl.add

LinkedList

addFirstaddLast

atAllPutatPutremove

Set

minus

atPutat

Bag

addWithOcc

atPutat

Dictionary

keys

removevalues

Les collections dans ObjectWorks en Smalltalk

Page 6: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

6Exemple : les Collections* de Exemple : les Collections* de SmallTalkSmallTalkExemple : 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 Array

isEmptysizeincludesaddremoveminusaddWithOccurencesatatPutatAllPutfirstlastadFirstaddLastkeysvalues

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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

7Le treillis de Galois (de concepts)Le treillis de Galois (de concepts)Le 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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Motivations du travailMotivations du travailMotivations 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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Un problème concret: l’intégration de Un problème concret: l’intégration de perspectives perspectives

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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Plan de la présentationPlan de la présentation Plan de la présentationPlan de la présentation

Motivations

L’existant

Approche pour l’assemblage de treillis

Retombées algorithmiques

10

Page 11: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

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

Formal Context [Wille82] relation d’incidence 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'

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} correspondancede 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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Treillis de Concepts FormelsTreillis de Concepts FormelsTreillis 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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Algorithmes Construisant le Treillis Algorithmes Construisant le Treillis 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 X

OP

(Ø,P)LK

4 X X X X

1 2 3

X X XX X X X X

a b c d eO PK 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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

14Fragmentation de contextesFragmentation de contextesFragmentation de contextesFragmentation de contextes

Apposition =

reconstitue le contexte

après éclatement

a b c

1234

d e f g h

5678

i

xxxxxxxx

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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

15Visualisation par diagrammes imbriquésVisualisation par diagrammes imbriquésVisualisation 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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Résultats existantRésultats existantRé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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Plan de la présentationPlan de la présentation Plan de la présentationPlan de la présentation

Motivations

L’existant

Approche pour l’assemblage de treillis

Retombées algorithmiques

17

Page 18: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

18

Construction en trois étapes Construction en trois étapes Construction en trois étapes Construction en trois étapes

L L1

L2

Identifier concepts

ac

Calculer intents & extents Détecter enfants immédiats

Page 19: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

19Étape un & deuxÉtape un & deuxÉ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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

20Étape troisÉtape troisÉ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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Algorithme d’assemblage de treillis Algorithme d’assemblage de treillis 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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Plan de la présentationPlan de la présentation Plan de la présentationPlan de la présentation

Motivations

L’existant

Approche pour l’assemblage de treillis

Retombées algorithmiques

22

Page 23: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Algorithmes dérivés: construction du treillisAlgorithmes dérivés: construction du treillisAlgorithmes 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 PK L L+

5 6

X X X X X X

a b c d eO P K

L

Page 24: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Algorithmes dérivés (suite)Algorithmes dérivés (suite)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 PK L

L1

L2

Extraction de treillis partiels

d’un treillis global

L

X

Page 25: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

ComplexitéComplexité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 Total

Parcours 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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

ExpérimentationsExpérimentationsExpé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

CP

U T

ime

in S

ec

.

Nourine & Raynaud

Bordat

Divide&Conquer

Page 27: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

Quelques projets applicatifsQuelques projets applicatifsQuelques 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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

BilanBilanBilanBilan

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: Petko Valtchev DIRO Université de Montréal e-mail: valtchev@IRO.UMontreal.CA Algorithmes de construction de treillis de Galois pour la résolution de problèmes

La suite...La suite...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