Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to find the size of maximal clique or clique number?

Given an undirected graph G = G(V, E), how can I find the size of the largest clique in it in polynomial time? Knowing the number of edges, I could put an upper limit on the maximal clique size with

https://cs.stackexchange.com/questions/11360/size-of-maximum-clique-given-a-fixed-amount-of-edges

, and then I could iterate downwards from that upper limit to 1. Since this upper cap is O(sqrt(|E|)), I think I can check for the maximal clique size in O(sqrt(|E|) * sqrt(|E|) * sqrt(|E|)) time.

Is there a more efficient way to solve this NP-complete problem?

like image 539
dangerChihuahua007 Avatar asked Dec 15 '25 01:12

dangerChihuahua007


1 Answers

Finding the largest clique in a graph is the clique number of the graph and is also known as the maximum clique problem (MCP). This is one of the most deeply studied problems in the graph domain and is known to be NP-Hard so no polynomial time algorithm is expected to be found to solve it in the general case (there are particular graph configurations which do have polynomial time algorithms). Maximum clique is even hard to approximate (i.e. find a number close to the clique number).

If you are interested in exact MCP algorithms there have been a number of important improvements in the past decade, which have increased performance in around two orders of magnitude. The current leading family of algorithms are branch and bound and use approximate coloring to compute bounds. I name the most important ones and the improvement:

  • Branching on color (MCQ)
  • Static initial ordering in every subproblem (MCS and BBMC)
  • Recoloring: MCS
  • Use of bit strings to encode the graph and the main operations (BBMC)
  • Reduction to maximum satisfiability to improve bounds (MaxSAT)
  • Selective coloring (BBMCL)

and others. It is actually a very active line of research in the scientific community. The top algorithms are currently BBMC, MCS and I would say MaxSAT. Of these probably BBMC and its variants (which use a bit string encoding) are the current leading general purpose solvers. The library of bitstrings used for BBMC is publicly available.

like image 153
chesslover Avatar answered Dec 16 '25 22:12

chesslover



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!