Journées Graphes & Algorithmes, Novembre 2006, Orléans Enumération des cliques maximales d’un graphe, des bicliques maximales d’un graphe biparti Alain Gély, Lhouari Nourine, Bachir Sadi 10 Novembre 2006 LIMOS – Clermont-Ferrand
Problématique de l’énumération Mesure de Complexité Définitions Problématique de l’énumération Mesure de Complexité Méthodes d’énumération Enumération des Cliques Maximales Existant Graphe des transitions des cliques maximales Propriétés du graphe de Transitions Enumération des Bicliques Maximales Propriétés du graphe de transition Conclusion
Problématique de l’énumération Mesure de Complexité Définitions Problématique de l’énumération Mesure de Complexité Méthodes d’énumération Enumération des Cliques Maximales Existant Graphe des transitions des cliques maximales Propriétés du graphe de Transitions Enumération des Bicliques Maximales Propriétés du graphe de transition Conclusion
Clique maximale, Biclique maximale Définitions Clique maximale, Biclique maximale Clique Maximale x,y C (x,y) E Pour tout zC , C z n’est pas une clique 1 2 3 4 5 7 6 G = ( V , E ) G = ( U, V , E )
Clique maximale, Biclique maximale Définitions Clique maximale, Biclique maximale Clique Maximale Biclique Maximale x,y C (x,y) E Pour tout zC , C z n’est pas une clique x,y B, x U, y V (x,y) E Pour tout zB , B z n’est pas une biclique 1 2 3 4 5 7 6 1 2 3 6 4 7 5 G = ( V , E ) G = ( U, V , E )
Problématique de l’énumération Mesure de Complexité Définitions Problématique de l’énumération Mesure de Complexité Méthodes d’énumération Enumération des Cliques Maximales Existant Graphe des transitions des cliques maximales Propriétés du graphe de Transitions Enumération des Bicliques Maximales Propriétés du graphe de transition Conclusion
Algorithme d’Enumération Définition Entrée : S une structure discrète, P une propriété Sortie : Liste des configurations de S satisfaisant P S = un graphe G(V,E) P = être une clique maximale de G Sortie : Liste des cliques maximales de G Taille de l’entrée : n Taille de la sortie : N ( # Configurations )
Problématique de l’énumération Mesure de Complexité Définitions Problématique de l’énumération Mesure de Complexité Méthodes d’énumération Enumération des Cliques Maximales Existant Graphe des transitions des cliques maximales Propriétés du graphe de Transitions Enumération des Bicliques Maximales Propriétés du graphe de transition Conclusion
Algorithme d’énumération Taille de l’entrée : n Taille de la Sortie : N ( # configurations ) Complexité temporelle Polynomiale : O((n+N)k) Polynomiale par objet : O(nk N) A délai polynomial : O(nk N) C1 C2 Ci Ci-1 CN Début Fin O(nk) Complexité Spatiale Polynomiale : O(nk) Exponentielle : O(nkN) ( stockage nécessaire au traitement)
Problématique de l’énumération Mesure de Complexité Définitions Problématique de l’énumération Mesure de Complexité Méthodes d’énumération Enumération des Cliques Maximales Existant Graphe des transitions des cliques maximales Propriétés du graphe de Transitions Enumération des Bicliques Maximales Propriétés du graphe de transition Conclusion
Méthodes d’énumération (exemple : sous-ensembles de {1,2,3}) Enumération dans l’ordre lexicographique Trouver une première configuration C Calculer Suivant(C) Première configuration : Suivant() : 1 Suivant(1) : 12 Suivant(12) : 123 Suivant(123) : 13 Suivant(13) : 2 Suivant(2) : 23 Suivant(23) : 3
Méthodes d’énumération (exemple : sous-ensembles de {1,2,3}) Retour-Arrière Choisir une propriété P Enumérer les configurations qui vérifient P Enumérer les configurations qui ne vérifient pas P Contenir 1 Ne pas contenir 1 1, 12, 123 , 2, 23
Méthodes d’énumération (exemple : sous-ensembles de {1,2,3}) Code de Gray (Gray 54) - Notion de proximité entre objets à générer - « construction » d’un graphe de proximité - Recherche d’un chemin Hamiltonien 123 12 13 23 1 2 3
Méthodes d’énumération (exemple : sous-ensembles de {1,2,3}) Méthode de Recherche Locale Inverse (Avis Fukuda 96) - Fonction de voisinage - Optimisation d’un critère 123 - Inversion de la recherche 2 23 13 3 12 Ø 1
Méthodes d’énumération Dans tous les cas Utilisation d’arbre / de graphe ayant pour sommet des objets à construire 123 2 12 3 13 23 123 Ø 1 Code de Gray 12 13 23 1 2 3 Ø 2 12 3 13 23 123 Ø 1 Retour-arrière( ) Ø 1 12 123 13 2 Suivant( ) 23 3
Problématique de l’énumération Mesure de Complexité Définitions Problématique de l’énumération Mesure de Complexité Méthodes d’énumération Enumération des Cliques Maximales Existant Graphe des transitions des cliques maximales Propriétés du graphe de Transitions Enumération des Bicliques Maximales Propriétés du graphe de transition Conclusion
Enumération des cliques maximales C(G) G = ( V , E ) Existant 1 2 3 4 5 7 6 {1,2,3} C(G) exponentielle {1,5} {1,6} Prochaine clique maximale lexicographique : NP-complet {2,3,4} {2,3,7} Algorithmes : Espace polynomial Délai polynomial Ordre lexicographique {4,5} {6,7} [Tsukiyama & al 77] [Johnson & al 88]
Problématique de l’énumération Mesure de Complexité Définitions Problématique de l’énumération Mesure de Complexité Méthodes d’énumération Enumération des Cliques Maximales Existant Graphe des transitions des cliques maximales Propriétés du graphe de Transitions Enumération des Bicliques Maximales Propriétés du graphe de transition Conclusion
C(G) , Ensemble de sommets Enumération des cliques maximales Intuition Définir un graphe de proximité G = ( U , V ) C(G) C(G) , Ensemble de sommets {1,2,3} C0 1 2 3 4 5 7 6 {1,5} C1 {1,6} C2 ? Reste à déterminer L’ensemble des transitions {2,3,4} C3 {2,3,7} C4 T(G) = (C(G) ,T) Graphe des transitions des cliques max de G {4,5} C5 {6,7} C6
Enumération des cliques maximales ensemble des arcs Cx Cy j Transition utilisant un sommet j de V j n’appartient pas à Cx j appartient à Cy Soit Kj( ), un opérateur sur une clique maximale Transition ssi Cy = Kj( Cx ),
C est une clique maximale de G Enumération des cliques maximales Kj( ) ? j n 1 2 3 4 i Voisinage de J j n Est une clique Complétion (gloutonne) pour obtenir une clique maximale C C est une clique maximale de G … ou non
Plus petite clique max. de { Cx { 1, … , j } v(j) } { j , … , n} Enumération des cliques maximales Kj( ) j Cx, Kj(Cx) Plus petite clique max. de { Cx { 1, … , j } v(j) } { j , … , n} 1 2 3 4 5 7 6 Préfixe de Cx Voisinage de j dans le préfixe de Cx Labels supérieur à j
Enumération des cliques maximales K4({1,2,3}) ? { 1,2,3} { 1,…,4 } = {1,2,3} V(4) = {2,3,5} {1,2,3} {2,3,5} = {2,3} Plus petite clique maximale de {2,3} {4,…,7} 1 2 3 4 5 7 6 1 2 3 4 5 7 6 K3({1,2,3}) = {2,3,4} C(G) {1,2,3} {2,3,4} 4 Transition
Enumération des cliques maximales K3({1,6}) ? { 1,6} { 1,2,3 } = {1} V(3) = {1,2,4,7} {1} {1,2,4,7} = {1} Plus petite clique maximale de {1 } {3,…,10} 1 2 3 4 5 7 6 1 2 3 4 5 7 6 K3({1,6}) = {1,3} C(G) {1,6} ? 3 Pas de transition de label 3
T(G) Graphe des transitions de G G(V,E) T(G) Graphe des transitions de G 1 2 3 4 5 7 6 123 1 67 15 6 1 1 2 5 6 7 6 4 7 2 16 237 2 4 1 6 4 7 4 4 2 234 5 45
Problématique de l’énumération Mesure de Complexité Définitions Problématique de l’énumération Mesure de Complexité Méthodes d’énumération Enumération des Cliques Maximales Existant Graphe des transitions des cliques maximales Propriétés du graphe de Transitions Enumération des Bicliques Maximales Propriétés du graphe de transition Conclusion
T(G) est fortement connexe Propriétés de T(G) T(G) est fortement connexe Idée de la preuve : Soit C0 la plus petite clique maximale de G Il existe un chemin de C0 vers n’importe quelle Ci Il existe un chemin de Ci vers C0 C0 Ci Cj Ck Cl
T(G) Graphe de transitions de G G(V,E) T(G) Graphe de transitions de G 1 2 3 4 5 7 6 123 1 67 15 6 1 1 2 5 6 7 6 4 7 2 16 237 2 4 1 6 4 7 4 4 2 234 5 45
T(G) : Chemin de C0 vers Ci 1 2 3 4 5 6 7 1 2 3 4 5 7 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 7 6 1 2 3 4 5 7 6 1 2 3 4 5 7 6 1 Induction structurelle 12 123 123 234 123 15 234 45 123 16 15 234 6 45 123 237 16 67 15 7 234 45
1 2 3 4 5 7 6 1 2 3 4 5 7 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 7 6 1 2 3 4 5 7 6 1 12 123 4 123 234 5 5 123 15 234 45 6 6 123 16 15 16 234 45 7 7 7 123 237 16 67 15 16 234 237 45
G(V,E) T(G) 1 2 3 4 5 7 6 123 1 67 15 6 1 1 2 5 6 7 6 4 7 2 16 237 2 4 1 6 4 7 4 4 2 234 5 45
G(V,E) T(G) 1 2 3 4 5 7 6 123 1 67 15 6 1 1 2 5 6 7 6 4 7 2 16 237 2 4 1 6 4 7 4 4 2 234 5 45
T(G) : plus de chemins de C0 vers Ci que de séquences de construction 1 2 3 4 5 6 7 1 2 3 4 5 7 6 1 2 3 4 5 7 6 1 2 3 4 5 6 7 1 2 3 4 5 7 6 1 2 3 4 5 6 7 1 2 3 4 5 7 6 1 12 123 4 123 234 5 5 123 15 234 45 6 6 123 16 15 16 234 45 7 7 7 123 237 16 67 15 16 234 237 45
T(G) possède plusieurs arbres couvrant Résultat : T(G) possède plusieurs arbres couvrant enracinés en C0
T(G) Graphes de transitions de G – Algorithmes & Complexités 2 Etapes : Choisir une arborescence T(G) (enracinée en C0) (plusieurs choix) Parcourir l’arborescence recouvrante (plusieurs choix) G(V,E) |V|=n, |E|=m 1 i n C0 Construction de C0 O(m) calcule des Transitions O(m) Tester la maximalité O(m) # transitions pour une clique max. O(n) O(n.m)
Ordre quelconque – espace polynomial – Délai Polynomial Graphe de transitions [ Tsukiyama & al. 77 ] Ordre quelconque – espace polynomial – Délai Polynomial 123 237 16 67 15 234 45 237 Arbre couvrant : Chemins définis par des séquences de construction Choisir la plus petite séquence lexicographique 7 15 5 123 4 6 67 7 234 Parcours : En profondeur d’abord 16 5 45
Ordre lexicographique – espace exponentiel Graphe de transitions [Johnson & al. 88] Ordre lexicographique – espace exponentiel Délai polynomial 123 15 16 234 237 45 67 Propriété de l’arbre couvrant de Tsukiyama : If Cx atteignable depuis Cy, alors Cy < Cx 237 Parcours : Stockage et reprise 7 15 5 123 15 16 234 237 67 45 123 4 6 67 7 234 16 5 45
Classes particulières - Graphes de Comparabilité Ordre lexicographique – espace polynomial Délai polynomial [Cai, Kong, 92] 7 8 5 6 6 4 7 2 8 3 4 1 2 3 5 Hypothèse Sommets numérotés selon une extension linéaire de l’ordre 1
Classes particulières - Graphes de Comparabilité Ordre lexicographique – espace polynomial Délai polynomial 7 8 5 6 6 4 7 2 8 3 4 1 2 3 5 Résultat La séquence des cliques maximales de G dans l’ordre lexicographique forment un chemin Hamiltonien dans T(G) 1
Problématique de la génération Mesure de Complexité Définitions Problématique de la génération Mesure de Complexité Méthodes de génération Génération des Cliques Maximales Existant Graphe des transitions des cliques maximales Propriétés du graphe de Transitions Génération des Bicliques Maximales Propriétés du graphe de transition Conclusion
II. Enumération des bicliques maximales G = (U,V,E) 7 1 8 2 6 3 5
Problématique de la génération Mesure de Complexité Définitions Problématique de la génération Mesure de Complexité Méthodes de génération Génération des Cliques Maximales Existant Graphe des transitions des cliques maximales Propriétés du graphe de Transitions Génération des Bicliques Maximales Propriétés du graphe de transition Conclusion
Enumération des bicliques d’un graphe Biparti Hypothèse de numérotations Si i U , j V alors i < j n+1 n+1 m n 1 2 G = (U,V,E)
atteignables par une séquence sur V T(G) : chemin de C0 vers Ci avec des labels dans V (exclusivement) 1 Sommets de U : clique 12 123 1234 i j Cliques max. atteignables par une séquence sur V Propriété
Enumération des bicliques d’un graphe Biparti Sommets de U Sommets de V j n 1 2 3 4 i j Transition => Cx ∩ V Cy ∩ V Propriété i Cy i Cx j V
Propriétés du graphe de transitions Treillis de Galois sous graphe de T(G) Propriétés Utiliser la structure de treillis = utiliser un sous graphe de T(G) Propriété (1,5678) 5 6 1 2 3 4 (12,678) (13,578) U 6 5 (123,78) 5 6 V 5 6 7 8 7 (1234,8 )
Connexion entre algorithmes connus [Tsukiyama & al. 77] équivalent à un génération dans l’ordre lectique 123 4 5 15 6 7 234 5 237 Bicliques énumérables à partir de V seulement 16 7 45 67 Remarque Next-Closure [Ganter 84] et [Tsukiyama & al 77] énumèrent les bicliques maximales selon la même séquence
Problématique de la génération Mesure de Complexité Définitions Problématique de la génération Mesure de Complexité Méthodes de génération Génération des Cliques Maximales Existant Graphe des transitions des cliques maximales Propriétés du graphe de Transitions Génération des Bicliques Maximales Propriétés du graphe de transition Conclusion
Conclusion Perspectives Mise en place d’un cadre général d’énumération Comparaison d’algorithmes en utilisant T(G) Adaptation à la génération des bicliques maximales Algorithmes de génération des cliques et des bicliques Perspectives Propriétés supplémentaires de T(G) ? Etudes de Classes de graphes particulières
Merci