BRON-KERBOSCH (BK)
ALGORITHM FOR MAXIMUM
CLIQUE
BY TEAM: WYD
Jun Zhai
Tianhang Qiang
Yizhen JIa
PROBLEM DEFINITION
•  Clique: A Clique in an undirected graph G = (V,E) is a subset of the vertex set
C ⊆ V, such that for every two vertices in C, there exists an edge connecting
the two.
•  Maximum Clique: A Clique of the largest
possible size in a given graph.
•  Maximal Clique: A Clique that cannot be
extended by including one more adjacent
vertex.
WHY IS THIS PROBLEM IMPORTANT?
•  Social Network
•  BioInformation
•  Computing Chemistry
HARDNESS OF PROBLEM
•  No algorithm can prove a given clique is maximum in polynomial time.
•  CSAT problem can be reduced to maximum clique problem in polynomial
time
•  NP-HARD problem
BronKerbosch1(R, P, X):
if P and X are both empty:
report R as a maximal clique
for each vertex v in P:
BronKerbosch1(R ⋃ {v}, P ⋂ N(v), X ⋂ N(v))
P := P  {v}
X := X ⋃ {v}
BASIC BK ALGORITHM OUTLINE
R: set of vertices that construct
the Maximal Clique
P: set of possible vertices may
be selected
X: set of vertices can not
construct Maximal Clique
BASIC BK ALGORITHM OUTLINE
BASIC BK ALGORITHM OUTLINE
BronKerbosch1(R, P, X):
if P and X are both empty:
report R as a maximal clique
choose a pivot vertex u in P ⋃ X
for each vertex v in P  N(u):
BronKerbosch1(R ⋃ {v}, P ⋂ N(v), X ⋂ N(v))
P := P  {v}
X := X ⋃ {v}
BK ALGORITHM WITH PIVOT
u: pivot vertex in P
N(u): neighbor vertices of u
BK ALGORITHM WITH PIVOT
TIME COMPLEXITY
•  Any n-vertex graph has at most 3n/3 Maximal Cliques.
•  The worst-case running time of the Bron-Kerbosch algorithm (with a pivot
strategy that minimizes the number of recursive calls made at each step) is
O(3n/3)
UPPER AND LOWER BOUND
•  The upper bound is when the graph had the most maximal cliques. So the
upper bound should be c*3n/3.
•  The lower bound is when the graph is a maximal clique. So the lower bound
should be c.
REFERENCES
https://en.wikipedia.org/wiki/Bron%E2%80%93Kerbosch_algorithm
https://tuongphuongtn.files.wordpress.com/2012/11/baocaoseminar2012.pdf
https://snap.stanford.edu/class/cs224w-readings/tomita06cliques.pdf
https://www.youtube.com/watch?v=132XR-RLNoY

Bron Kerbosch Algorithm - Presentation by Jun Zhai, Tianhang Qiang and Yizhen Jia