listing all maximal cliques in sparse graphs in near
play

Listing All Maximal Cliques in Sparse Graphs in Near-Optimal Time - PowerPoint PPT Presentation

Listing All Maximal Cliques in Sparse Graphs in Near-Optimal Time Darren Strash Department of Computer Science UC Irvine Joint work with David Eppstein and Maarten L offler What is a Maximal Clique? A clique that cannot be extended by


  1. Listing All Maximal Cliques in Sparse Graphs in Near-Optimal Time Darren Strash Department of Computer Science UC Irvine Joint work with David Eppstein and Maarten L¨ offler

  2. What is a Maximal Clique? A clique that cannot be extended by adding more vertices

  3. What is a Maximal Clique? A clique that cannot be extended by adding more vertices Maximal, Maximal Not Maximal Not Clique Maximum

  4. Goal: Design an algorithm to list all maximal cliques

  5. Goal: Design an algorithm to list all maximal cliques

  6. Motivation

  7. Motivation Features in ERGM

  8. Motivation Features in ERGM Detect structural motifs from similarities between proteins

  9. Motivation Features in ERGM Detect structural motifs from similarities between proteins Determine the docking regions between biomolecules

  10. Motivation Features in ERGM Detect structural motifs from similarities between proteins Determine the docking regions between biomolecules Document clustering for information retrieval

  11. There may be many maximal cliques.

  12. There may be many maximal cliques.

  13. There may be many maximal cliques.

  14. There may be many maximal cliques.

  15. There may be many maximal cliques.

  16. There may be many maximal cliques.

  17. There may be many maximal cliques.

  18. There may be many maximal cliques. 3 ∗ 3 ∗ 3 ∗ 3

  19. There may be many maximal cliques. 3 n/ 3 maximal cliques

  20. There may be many maximal cliques. 3 n/ 3 maximal cliques (Moon–Moser bound)

  21. Maximal Clique Listing Algorithms Author Year Running Time Bron and Kerbosch 1973 ??? Tsukiyama et al. 1977 O ( nmµ ) Chiba and Nishizeki 1985 O ( αmµ ) O (∆ 4 µ ) Makino and Uno 2004 n = number of vertices m = number of edges µ = number of maximal cliques α = arboricity ∆ = maximum degree of the graph

  22. Tomita et al. (2006)

  23. Tomita et al. (2006) Worst-case optimal running time O (3 n/ 3 )

  24. Tomita et al. (2006) Worst-case optimal running time O (3 n/ 3 ) Computational experiments:

  25. Tomita et al. (2006) Worst-case optimal running time O (3 n/ 3 ) Computational experiments: fast! slow

  26. The Bron–Kerbosch Algorithm Easy to understand Easy to implement There are many heuristics, which make it faster Its variations work well in practice. Confirmed through computational experiments Johnston (1976), Koch (2001), Baum (2003) One variation is worst-case optimal ( O (3 n/ 3 ) time) Tomita et al. (2006)

  27. The Bron–Kerbosch Algorithm Easy to understand Easy to implement There are many heuristics, which make it faster Its variations work well in practice. Confirmed through computational experiments Johnston (1976), Koch (2001), Baum (2003) One variation is worst-case optimal ( O (3 n/ 3 ) time) Tomita et al. (2006)

  28. Finding one maximal clique

  29. Finding one maximal clique

  30. Finding one maximal clique

  31. Finding one maximal clique

  32. Finding one maximal clique

  33. Finding one maximal clique

  34. Finding one maximal clique

  35. The Bron–Kerbosch Algorithm

  36. The Bron–Kerbosch Algorithm

  37. The Bron–Kerbosch Algorithm

  38. The Bron–Kerbosch Algorithm

  39. The Bron–Kerbosch Algorithm

  40. The Bron–Kerbosch Algorithm

  41. The Bron–Kerbosch Algorithm

  42. The Bron–Kerbosch Algorithm

  43. The Bron–Kerbosch Algorithm

  44. The Bron–Kerbosch Algorithm

  45. The Bron–Kerbosch Algorithm

  46. The Bron–Kerbosch Algorithm

  47. The Bron–Kerbosch Algorithm

  48. The Bron–Kerbosch Algorithm

  49. The Bron–Kerbosch Algorithm

  50. The Bron–Kerbosch Algorithm proc BronKerbosch( P , R , X ) 1: if P ∪ X = ∅ then report R as a maximal clique 2: 3: end if 4: for each vertex v ∈ P do BronKerbosch( P ∩ Γ( v ) , R ∪ { v } , X ∩ Γ( v ) ) 5: P ← P \ { v } 6: X ← X ∪ { v } 7: 8: end for

  51. The Bron–Kerbosch Algorithm

  52. The Bron–Kerbosch Algorithm

  53. The Bron–Kerbosch Algorithm

  54. The Bron–Kerbosch Algorithm

  55. The Bron–Kerbosch Algorithm

  56. The Bron–Kerbosch Algorithm

  57. The Bron–Kerbosch Algorithm

  58. The Bron–Kerbosch Algorithm with Pivoting proc BronKerboschPivot( P , R , X ) 1: if P ∪ X = ∅ then report R as a maximal clique 2: 3: end if 4: choose a pivot u ∈ P ∪ X 5: for each vertex v ∈ P \ Γ( u ) do BronKerboschPivot( P ∩ Γ( v ) , R ∪ { v } , X ∩ Γ( v ) ) 6: P ← P \ { v } 7: X ← X ∪ { v } 8: 9: end for

  59. The Bron–Kerbosch Algorithm with Pivoting proc BronKerboschPivot( P , R , X ) 1: if P ∪ X = ∅ then report R as a maximal clique 2: 3: end if 4: choose a pivot u ∈ P ∪ X to minimize | P \ Γ( u ) | 5: for each vertex v ∈ P \ Γ( u ) do BronKerboschPivot( P ∩ Γ( v ) , R ∪ { v } , X ∩ Γ( v ) ) 6: P ← P \ { v } 7: X ← X ∪ { v } 8: 9: end for

  60. The Bron–Kerbosch Algorithm with Pivoting proc BronKerboschPivot( P , R , X ) 1: if P ∪ X = ∅ then report R as a maximal clique 2: 3: end if 4: choose a pivot u ∈ P ∪ X to maximize | P ∩ Γ( u ) | 5: for each vertex v ∈ P \ Γ( u ) do BronKerboschPivot( P ∩ Γ( v ) , R ∪ { v } , X ∩ Γ( v ) ) 6: P ← P \ { v } 7: X ← X ∪ { v } 8: 9: end for

  61. The Bron–Kerbosch Algorithm with Pivoting k { kT ( n − k ) } + O ( n 2 ) T ( n ) ≤ max

  62. The Bron–Kerbosch Algorithm with Pivoting k { kT ( n − k ) } + O ( n 2 ) T ( n ) ≤ max T ( n ) = O (3 n/ 3 )

  63. The Bron–Kerbosch Algorithm

  64. The Bron–Kerbosch Algorithm

  65. The Bron–Kerbosch Algorithm All cliques in planar graphs may be listed in time O ( n ) Chiba and Nishizeki (1985), Chrobak and Eppstein (1991)

  66. The Bron–Kerbosch Algorithm Want to characterize the running time with a parameter. Let p be our parameter of choice. An algorithm is fixed-parameter tractable with parameter p if it has running time f ( p ) n O (1) The key is to avoid things like n p .

  67. Parameterize on Sparsity

  68. Parameterize on Sparsity degeneracy:

  69. Parameterize on Sparsity degeneracy: The minimum integer d such that every subgraph of G has a vertex of degree d or less.

  70. Degeneracy

  71. Degeneracy d = 1

  72. Degeneracy degeneracy: The minimum integer d such that there is an ordering of the vertices where each vertex has at most d neighbors later in the ordering.

  73. h

  74. h

  75. d = 1 h

  76. Planar graphs have degeneracy at most 5

  77. Degeneracy is easy to compute

  78. d -degenerate graphs...

  79. d -degenerate graphs... cannot contain cliques with more than d + 1 vertices

  80. d -degenerate graphs... cannot contain cliques with more than d + 1 vertices

  81. d -degenerate graphs... cannot contain cliques with more than d + 1 vertices

  82. d -degenerate graphs... cannot contain cliques with more than d + 1 vertices > d later neighbors.

  83. d -degenerate graphs... cannot contain cliques with more than d + 1 vertices > d later neighbors.

  84. d -degenerate graphs...

  85. d -degenerate graphs... have fewer than dn edges.

  86. d -degenerate graphs... have fewer than dn edges. ≤ d later neighbors.

  87. A few more facts about degeneracy... Degeneracy is within a constant factor of other popular sparsity measures.

  88. A few more facts about degeneracy... Degeneracy is within a constant factor of other popular sparsity measures. Graphs generated by the preferential attachment mechanism of Barab´ asi and Albert have low degeneracy.

Recommend


More recommend