Is it possible to find the maximum clique in general graphs?

Reading time: 6 minute
...

📝 Original Info

  • Title: Is it possible to find the maximum clique in general graphs?
  • ArXiv ID: 1110.5355
  • Date: 2019-03-14
  • Authors: : Bomze, Immanuel M.; Deffuant, Guillaume; Mertikopoulos, Paul; Tsaknakis, Alexandros

📝 Abstract

Finding the maximum clique is a known NP-Complete problem and it is also hard to approximate. This work proposes two efficient algorithms to obtain it. Nevertheless, the first one is able to fins the maximum for some special cases, while the second one has its execution time bounded by the number of cliques that each vertex belongs to.

💡 Deep Analysis

Figure 1

📄 Full Content

Finding cliques in graphs is a well known problem, mainly the maximum clique was found to be a NP-Complete problem [Karp, 1972]. Indeed, from any vertex, to discover the maximum clique to which it belongs, we should take all combinations of k neighbors and verify whenever they are mutually adjacent, which yields an exponential time as a function of the vertex degree. Moreover, [Johnson, 1973] shows that there exists no sublinear approximation algorithm. This problem was largely treated and an extensive survey can be found in [Bomze et al., 1999]. In this work, we present two algorithms to find maximum cliques. We decompose the graph vertex by vertex until no vertices remain; then, we re-build the graph restoring each of the vertices, one by one, in an inverted order computing maximal cliques at each step. Next section is devoted to present the algorithms and the theorems showing their correctness. A section showing the algorithms applied to real graphs is presented to illustrate how they works. The paper is concluded with a discussion about the complexity of the problem.

Let G = (V, E) be a simple undirected graph with n = |V | vertices and m = |E| ≤ |V | × |V | edges. The neighborhood of a vertex is the set composed by vertices directly connected to it, i.e., w ∈ N (v) such as {v, w} ∈ E. Then, the degree of vertex v is denoted as

Attributes a v are list of sets, each of one a clique, and they are computed by the proposed algorithms. For Algorithm 2, we denote an element of the list as a set L ∈ a x v , its initialization with set L as a x v ← {L}, and the append of set L as a v ← {a v , L} and the elimination of a set L as a v ← {a v \ L}. The elements of this list can also interpreted as a i v for i ∈ N (v) (see Algorithm 1). A list of maximal cliques is stated by Definition 1.

Definition 1. Given a vertex v and the list l v where its elements are sets S i having v, i.e., S i ⊃ v. These sets S i ∈ l v are maximal if for all i = j they verify the following properties:

Therefore, lists a v have the properties presented in the following Definition 2.

Definition 2. Let a vertex v ∈ V the a v be a list composed by sets of vertices A i , such that the following properties hold:

where |a v | refers to the length of a v list.

Notice, firstly, each set A i is maximal in the sense that there not exist other set B ⊇ A i ; secondly sets A i ∈ a v are maximal cliques at the time that they are computed (see Algorithm 2), but at any later time can exist other clique maximal containing the A i . As we demonstrate, computing Equation 1 when Algorithm 2 finished leads to obtain the maximum clique. We analyze it cost later.

We introduce first an algorithm of low complexity that could find the maximum clique in certain cases, this is the Algorithm 1. Theorem 1. Algorithm 1 ends if G = (V, E) has finite size, computing the attributes a x v for all vertices v ∈ V and their corresponding neighbors, according to the property (i) in Definition 2.

Proof. Let us start with the winding phase of the recursion, that is, steps 1, 1 and 1 are executed until we reach an empty graph G ′ (see 1). At this step, the end of recursion (step 1) is found because each call to find cliques(G ′ ) function is done with a reduced set of vertices |V ′ | = |V -1| (and its induced graph), and G has finite size; i.e., the recursion is done n times.

From there, we analyze the unwinding phase. Let’s start when steps 1 and 1 are executed for the first time: the return of the function will carry a graph with just the vertex v, no edges and a v = ∅ (step 1), that is H = ({v}, ∅, a v ). Then, the following instance(s) can add vertices of degree zero until one instance begins to add the first edges (edge), getting a star with leaves (one leaf), because the degree is an increasing function (the winding phase was carried out taking the maximum degree at step 1, so the unwinding one reconnects vertices with the same degree or greater one). At this instance, steps 1 and 1 are executed and step 1 yields L = {v, x} because a x is empty (the vertex x has no registered neighbors until now). The following conditional sentence is true (step 1 assures a x v = ∅) setting each neighbor as a clique, on both sides, the neighbor vertex a v x = {v, x} and the local one a x v = {v, x} (see 1, 1 and 1, we consider objects a w as mutable). From this point of the algorithm execution any one of the next vertices could build a K s /s ∈ N (e.g., s = 3) because a new vertex joining former vertices constituting a K s-1 could appear. It is worth remarking that it is not possible to build

for each x ∈ M do 1.9

for each set a i x , or

a K s+1 at this stage (e.g., s + 1 = 4). The reason why it is not possible is that there are only K s-1 and a new vertex just adds edges between this new vertex and the present vertices, although this new vertex will never add an edge between the present vertices. In this way, the size of new cliques is an increasing function (either the maximum

📸 Image Gallery

cover.png

Reference

This content is AI-processed based on open access ArXiv data.

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut