38
Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély – LIMOS – Clermont-Ferrand GDR fouille de données – Lyon - 21 Novembre 2005

Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Cliques & BicliquesMaximales

Vers une présentation unifiée des algorithmes d’énumération

Alain Gély – LIMOS – Clermont-Ferrand

GDR fouille de données – Lyon - 21 Novembre 2005

Page 2: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Cliques maximales & fouille de données � Bio-Informatique� Web Mining

Page 3: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Bicliques maximales & fouille de données � Itemset fermés (fréquent ou non)� Utile pour les règles d’implications…

Page 4: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Enumération vs Construction

GENERATION

CONSTRUCTION

• Graphe de couverture

•Complexité théorique O(n²).|C|

• Enumération des fermés• Espace polynomial• Complexité théorique O(n3).|C|

• Taille exponentielle

E

D

C

B

A

54321

X

XX

XX

X

X

X

X X

∅, A, AB, ABC, AC,

D, DE, ABCDE

E

D

C

B

A

54321

X

XX

XX

X

X

X

X X

D

DE

ACAB

ABC

A

ABCDE

Entrée Sortie

Page 5: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Generation vs Construction

E

D

C

B

A

54321

X

X

X

X

X

X

X

X

X X ∅, A, AB, ABC,

AC, D, DE, ABCDE

Entrée Sortie

Page 6: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Pourquoi juste énumérer ?� Délai polynomial� Utile en «pipe line »

Construction / TraitementEnumération

Page 7: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Plusieurs sources d’algorithmes

� Fouille de données� Analyse de Concept Formel� Algorithmique des systèmes de fermeture� Analyse de données / problèmes

matriciels� Algorithmes de graphes

Page 8: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Fouille de données

� CHARM� CLOSET, CLOSET+� LCM, LCM v2� Apriori

Page 9: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Analyse de concepts formel

� Lindig (Fast Concept Analysis)� Vatchev et al.� Godin et al.

Page 10: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Algorithmique des systèmes de fermeture� Ganter (Next-closure)� Nourine-Raynaud

Page 11: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Analyse de données / problèmes matriciels

� Algorithme de Chein� Algorithme de Bordat

Page 12: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Algorithmes de graphe

� Enumération des cliques maximales�Algorithme de Tsukiyama et al�Algorithme de Johnson et al�Algorithmes de Makino et Uno�…

Page 13: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Cliques & bicliques maximales

� Transformation classique

Page 14: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Graphe de transition : Cas des bicliques maximales

Page 15: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Comparaisons des

algorithmes ?

Page 16: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Comparaisons des algorithmes ?

Pour un algorithme…

Etudier la complexité au pire

Comportement sur Benchmark

Influence de l’implémentation

Page 17: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Comparaisons des algorithmes ?Deux questions

Peut-on expliquer les différences de comportement des algorithmes par des Propriétés structurelles ?

Les structures de données peuvent jouer un rôle important sur l’efficacité.

Y-a-t-il d’autres facteurs influençant les performances ?

Page 18: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Graphe de transition des cliques maximales d’un graphe

Page 19: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Unifier la présentation des algorithmes existants ?

� Structure élémentaire� Briques élémentaires sur cette structure

�Passage d’un élément à un autre �Vérification d’appartenance

[ Graphe ]

[ arêtes ]

[ arbre couvrant ]

Page 20: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Graphe de transition des bicliques maximales

� Cas particulier des graphes� Propriétés particulières de numérotation

� G(U,V,E)� Hypothèse : U > V

� Partitionnement sur les éléments de V� Transitions « lexicographique »� Graphe de couverture contenu dans le graphe de

transition

Page 21: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

1

5

4

3

2

Graphe de transition entre bicliques

1

5

4

3

2

Page 22: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Next-Closure & Ordre Lectique

∅ , {A1}

Pomme/Apple , {A2}

Orge/Barley , {A3}

Litchi/Lychee , {A4}

Légume/Vegetable , ∅

Même structure de treillisMais

Un comportement différent des algorithmes

Page 23: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Données « En français »

• Next-Closure(∅)=1B C(B) F<iC(B) Réponse

{∅∩123}∪4 C(4)=1234 ∅<41234 Non (invalide)

• Next-Closure(1)=12

• Next-Closure(12)=123

• Next-Closure(123)=1234

{∅∩123}∪4 C(3)=123 ∅<3 123 Non (invalide)

{∅∩123}∪4 C(2)=12 ∅<2 12 Non (invalide)

{∅∩∅∩∅∩∅∩123}∪∪∪∪4 C(2)=12 ∅∅∅∅<1 1 Oui

{1∩123}∪4 C(14)=1234 1<41234 Non (invalide)

{∅∩12}∪3 C(13)=123 ∅<3123 Non (invalide)

{1∩∩∩∩1}∪∪∪∪2 C(12)=12 1<212 Oui

{12∩123}∪4 C(124)=1234 12<41234 Non (invalide)

{12∩∩∩∩12}∪∪∪∪3 C(123)=123 12<3123 Oui

{123∩∩∩∩123}∪∪∪∪4 C(1234)=1234 123<41234 Oui

10C

alculs de fermeture

Page 24: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Données « En anglais »

• Next-Closure(∅)=4B C(B) F<iC(B) Réponse

• Next-Closure(4)=34

• Next-Closure(34)=234

• Next-Closure(123)=1234

{∅∩∅∩∅∩∅∩123}∪∪∪∪4 C(4)=4 ∅∅∅∅<4 4 Oui

{4∩∩∩∩12}∪∪∪∪3 C(3)=34 4<334 Oui

{34∩∩∩∩1}∪∪∪∪2 C(2)=234 34<2234 Oui

{234∩∅∩∅∩∅∩∅}∪∪∪∪1 C(1234)=234 123<11234 Oui

4C

alculs de fermeture

Page 25: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

2 3 4

123

C(1234)=1234

C(4)=1234C(3)=123C(2)=12

C(1)=1

1

13 14C(14)=1234C(14)=1234

124C(124)=1234

12C(12)=12

C(123)=123

Exécution de Next-closure

1

12

123

1234

XXX

4

XX

3

X2

1

A4A3A2A1

Page 26: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

�12=34

�1=234

Exécution de Next-closure - Amélioration

123

C(1234)=1234

2 3 4C(4)=1234C(3)=123C(2)=12

C(1)=1

1

13 14C(14)=1234C(14)=1234

124C(124)=1234

12C(12)=12

C(123)=123∅

1

12

123

1234

XXX

4

XX

3

X2

1

A4A3A2A1

Page 27: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

•D’un élément vers un prédécesseur

Algorithmes parcourant le graphe de couverture

• Approche « top-down »

•Test d’unicité

Page 28: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

A

Parcours de graphes en profondeur

XE

XXD

XXC

XXB

XXXA

54321

D/3

E/5

C/2B/1

4

A

B C D E

2 31 4 5

Page 29: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Connaître une arête de l’arbre couvrant ?

A B C D E

2 31 4 5

A B C D E

21 43 5

A B C D E

2 31 4 5

D/3

E/5

C/2B/1

4

A

B/1

4

D/3

E/5

Page 30: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Enumérer les ensembles fermés

Choisir un élément a de J

Calculer C(a)

GENERER(R)

R1�(J, a’,I1) ; GENERER (R1)

R2�(J\�a,M,I2) ; GENERER (R2)

Afficher C(a)

Page 31: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Systèmes de fermeture résultant

A B C D

2 31 4

A,1 B,2 C,3 D,4 C,3

A B C D

3

A B D

21 4

Page 32: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Méthode générique d’énumération

Choisir un élément a de J

Calculer C(a)

GENERER(R)

R1�(J, a’,I1) ; GENERER (R1)

R2�(J\�a,M,I2) ; GENERER (R2)

Si C(a) est valide

Afficher C(a)

Page 33: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Next-closure (ordre lectique)

Choisir a, élément de plus petit label de J

Calculer C(a)

GENERER(R)

R2�(J\�a,M,I2) ; GENERER (R2)

R1�(J, a’,I1) ; GENERER (R1)

Si C(a)est valide

Afficher C(a)

Page 34: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Next-closure (ordre lexicographique)

Choisir j élément de plus petit label de J

Calculer C(a)

GENERER(R)

R2�(J\�a,M,I2) ; GENERER(R2)

R1�(J, a’,I1) ; GENERER(R1)

Si C(a)est valide

Afficher C(a)

Page 35: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Algorithme parcourant le graphe de couverture

Choisir a, élément minimal de J

Calculer C(a)

GENERER(R)

R1�(J, j’,I1) ; GENERER(R1)

R2�(J\�j,M,I2) ; GENERER(R2)

Si C(a)est valide

Page 36: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Choix d’un élément non irréductible

d

fe

g

a

b c

d

b

a

c

d

e f

g

Pour séparer le système de fermeture

Un élément non Sup-irreductiblen’est pas un bon choix

Page 37: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Heuristique de choix d’élément

• Elément de plus petit label (Next Closure)

• Elément minimal (parcours du graphe de couverture)

• Elément maximal (de l’ordre induit par J)

• …

• Au hasard

Page 38: Cliques & Bicliques Maximalesponcelet/GDRI3FD/Reunion211105/ResumeGD… · Cliques & Bicliques Maximales Vers une présentation unifiée des algorithmes d’énumération Alain Gély

Conclusion

Trouver un compromis entre :

• La complexité de la fonction choix

• Le nombre de fermeture calculé (#invalide)

Perspectives :

• methode de comparaison d’algorithmes

• Etude de l’influence pratique de fonctions choix

• Fonctions choix spécifiques à certaines situations ?