cliques & bicliques maximales vers une présentation unifiée des algorithmes dénumération...
TRANSCRIPT
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 maximales & fouille de données Bio-Informatique Web Mining
Bicliques maximales & fouille de données Itemset fermés (fréquent ou non) Utile pour les règles d’implications…
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
X
X
X
X
X
X
X
X X
, A, AB, ABC, AC,
D, DE, ABCDE
E
D
C
B
A
54321
X
X
X
X
X
X
X
X
X X
D
DE
ACAB
ABC
A
ABCDE
Entrée Sortie
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
Pourquoi juste énumérer ? Délai polynomial Utile en «pipe line »
Construction / TraitementEnumération
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
Fouille de données
CHARM CLOSET, CLOSET+ LCM, LCM v2 Apriori
Analyse de concepts formel
Lindig (Fast Concept Analysis) Vatchev et al. Godin et al.
Algorithmique des systèmes de fermeture Ganter (Next-closure) Nourine-Raynaud
Analyse de données / problèmes matriciels
Algorithme de Chein Algorithme de Bordat
Algorithmes de graphe
Enumération des cliques maximalesAlgorithme de Tsukiyama et alAlgorithme de Johnson et alAlgorithmes de Makino et Uno…
Cliques & bicliques maximales
Transformation classique
Graphe de transition : Cas des bicliques maximales
Comparaisons des
algorithmes ?
Comparaisons des algorithmes ?
Pour un algorithme…
Etudier la complexité au pire
Comportement sur Benchmark
Influence de l’implémentation
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 ?
Graphe de transition des cliques maximales d’un graphe
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 ]
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
1
5
4
3
2
Graphe de transition entre bicliques
1
5
4
3
2
Next-Closure & Ordre Lectique
, {A1}
Pomme/Apple , {A2}
Orge/Barley , {A3}
Litchi/Lychee , {A4}
Légume/Vegetable ,
Même structure de treillis
Mais
Un comportement différent des algorithmes
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
{1123}4 C(14)=1234 1<41234 Non (invalide)
{12}3 C(13)=123 <3123 Non (invalide)
{11}2 C(12)=12 1<212 Oui
{12123}4 C(124)=1234 12<41234 Non (invalide)
{1212}3 C(123)=123 12<3123 Oui
{123123}4 C(1234)=1234 123<41234 Oui
10 Calculs de ferm
eture
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
{412}3 C(3)=34 4<334 Oui
{341}2 C(2)=234 34<2234 Oui
{234}1 C(1234)=234 123<11234 Oui
4 Calculs de ferm
eture
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
X
X
3
X2
1
A4A3A2A1
↑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
X
X
3
X2
1
A4A3A2A1
•D’un élément vers un prédécesseur
Algorithmes parcourant le graphe de couverture
• Approche « top-down »
•Test d’unicité
A
Parcours de graphes en profondeur
1 2 3 4 5
A X X X
B X X
C X X
D X X
E X
D/3
E/5
C/2B/1
4
A
B C D E
2 31 4 5
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
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)
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
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)
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)
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)
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
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-irreductible n’est pas un bon choix
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
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 ?