The MaxCliqueDyn algorithm is an
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
for finding a maximum
clique
A clique (AusE, CanE, or ; ), in the social sciences, is a small group of individuals who interact with one another and share similar interests rather than include others. Interacting with cliques is part of normative social development regardles ...
in an undirected graph.
MaxCliqueDyn is based on the MaxClique algorithm, which finds a maximum clique of bounded size. The bound is found using a
coloring algorithm
In graph theory, graph coloring is a methodic assignment of labels traditionally called "colors" to elements of a graph. The assignment is subject to certain constraints, such as that no two adjacent elements have the same color. Graph coloring ...
. MaxCliqueDyn extends MaxClique to include dynamically varying bounds.
This algorithm was designed by
Janez Konc Janez may refer to:
People:
* Janez (given name), a Slovene given name
* Janež, a Slovene surname
In music:
* Janez Detd., a Belgian rock band
May also refer to a semi-pejorative term used in the Croatian North and beyond for Slovenes
The ...
and its description was published in 2007.
[Source code]
/ref> In comparison to earlier algorithms, MaxCliqueDyn has an improved coloring algorithm (ColorSort) and applies tighter, more computationally expensive upper bounds on a fraction of the search space.[ Both improvements reduce time to find maximum clique. In addition to reducing time, the improved coloring algorithm also reduces the number of steps needed to find a maximum clique.
]
MaxClique algorithm
The MaxClique algorithm[ See also: ] is the basic algorithm from which MaxCliqueDyn is extended. The pseudocode
In computer science, pseudocode is a description of the steps in an algorithm using a mix of conventions of programming languages (like assignment operator, conditional operator, loop) with informal, usually self-explanatory, notation of actio ...
of the algorithm is:
procedure MaxClique(R, C) is
Q = Ø, Qmax = Ø
while R ≠ Ø do
choose a vertex p with a maximum color C(p) from set R
R := R\
if , Q, + C(p)>, Qmax, then
Q := Q ⋃
if R ⋂ Γ(p) ≠ Ø then
obtain a vertex-coloring C' of G(R ⋂ Γ(p))
MaxClique(R ⋂ Γ(p), C')
else if , Q, >, Qmax, then Qmax := Q
Q := Q\
else
return
end while
where ''Q'' is a set of vertices of the currently growing clique, ''Q''max is a set of vertices of the largest clique currently found, ''R'' is a set of candidate vertices, ''Γ(p)'' is the set of all vertices that are adjacent to p, and ''C'' its corresponding set of color classes. The MaxClique algorithm recursively searches for a maximum clique by adding and removing vertices to and from ''Q''.
Coloring algorithms
Approximate coloring algorithm
MaxClique uses an approximate coloring algorithm[ to obtain set of color classes ''C''. In the approximate coloring algorithm, vertices are colored one by one in the same order as they appear in a set of candidate vertices ''R'', so that if the next vertex ''p'' is non-adjacent to all vertices in the same color class, it is added to this class, and if ''p'' is adjacent to at least one vertex in every one of existing color classes, it is put into a new color class.
The MaxClique algorithm returns vertices ''R'' ordered by their colors. Vertices with colors are never added to the current clique ''Q''. Therefore, sorting those vertices by color is of no use to MaxClique algorithm.
]
ColorSort
The ColorSort algorithm improves on the approximate coloring algorithm by taking into consideration the above observation. Each vertex is assigned to a color class . If , the vertex is moved to the set ''R'' (behind the last vertex in ''R''). If , then the vertex stays in and is not moved to ''R''. At the end, all of the vertices remaining in (where ) are added to the back of ''R'' as they appear in each and in increasing order with respect to index ''''. In the ColorSort algorithm, only these vertices are assigned colors .
The pseudocode of the ColorSort algorithm is:[
procedure ColorSort(R, C) is
max_no := 1;
kmin := , Qmax, − , Q, + 1;
if kmin ≤ 0 then kmin := 1;
j := 0;
C1 := Ø; C2 := Ø;
for i := 0 to , R, − 1 do
p := R
k := 1;
while Ck ⋂ Γ(p) ≠ Ø do
k := k+1;
if k > max_no then
max_no := k;
Cmax_no+1 := Ø;
end if
Ck := Ck ⋃ ;
if k < kmin then
R := R
j := j+1;
end if
end for
C]−1
In mathematics, −1 (negative one or minus one) is the additive inverse of 1, that is, the number that when added to 1 gives the additive identity element, 0. It is the negative integer greater than negative two (−2) and less than 0.
...
:= 0;
for k := kmin to max_no do
for i := 1 to , Ck, do
R := Ck
C := k;
j := j+1;
end for
end for
Example
The graph above can be described as a candidate set of vertices ''R'' = , and used as input for both the approximate coloring algorithm and the ColorSort algorithm. Either algorithm can be used to construct the following table:
The approximate coloring algorithm returns set of vertices ''R'' = and its corresponding set of color classes ''C'' = . The ColorSort algorithm returns set of vertices ''R'' = and its corresponding set of color classes ''C'' = , where – represents unknown color class with ''k'' < 3.
MaxCliqueDyn algorithm
The MaxCliqueDyn algorithm extends the MaxClique algorithm by using the ColorSort algorithm instead of approximate coloring algorithm for determining color classes. On each step of MaxClique, the MaxCliqueDyn algorithm also recalculates the degrees of vertices in ''R'' regarding the vertex the algorithm is currently on. These vertices are then sorted by decreasing order with respect to their degrees in the graph ''G(R)''. Then the ColorSort algorithm considers vertices in ''R'' sorted by their degrees in the induced graph ''G(R)'' rather than in ''G''. By doing so, the number of steps required to find the maximum clique is reduced to the minimum. Even so, the overall running time of the MaxClique algorithm is not improved, because the computational expense of the determination of the degrees and sorting of vertices in ''R'' stays the same.
The pseudocode of the MaxCliqueDyn algorithm is:[
procedure MaxCliqueDyn(R, C, level) is
S]evel
Evel, Ével, or EVEL may refer to:
People
* Evel Knievel (1938–2007), American stunt performer
* Evel Dick (Richard Louis Donato, born 1963), American winner of the reality game show ''Big Brother 8''
Other uses
*Ével, a river in France
*EVEL, ...
:= Sevel
Evel, Ével, or EVEL may refer to:
People
* Evel Knievel (1938–2007), American stunt performer
* Evel Dick (Richard Louis Donato, born 1963), American winner of the reality game show ''Big Brother 8''
Other uses
*Ével, a river in France
*EVEL, ...
+ S evel−1− Soldevel
Evel, Ével, or EVEL may refer to:
People
* Evel Knievel (1938–2007), American stunt performer
* Evel Dick (Richard Louis Donato, born 1963), American winner of the reality game show ''Big Brother 8''
Other uses
*Ével, a river in France
*EVEL, ...
Soldevel
Evel, Ével, or EVEL may refer to:
People
* Evel Knievel (1938–2007), American stunt performer
* Evel Dick (Richard Louis Donato, born 1963), American winner of the reality game show ''Big Brother 8''
Other uses
*Ével, a river in France
*EVEL, ...
:= S evel−1
while R ≠ Ø do
choose a vertex p with maximum C(p) (last vertex) from R;
R := R\;
if , Q, + C ndex of p in R> , Qmax, then
Q := Q ⋃ ;
if R ⋂ Γ(p) ≠ Ø then
if Sevel
Evel, Ével, or EVEL may refer to:
People
* Evel Knievel (1938–2007), American stunt performer
* Evel Dick (Richard Louis Donato, born 1963), American winner of the reality game show ''Big Brother 8''
Other uses
*Ével, a river in France
*EVEL, ...
ALL STEPS < Tlimit then
calculate the degrees of vertices in G(R ⋂ Γ(p));
sort vertices in R ⋂ Γ(p) in a descending order
with respect to their degrees;
end if
ColorSort(R ⋂ Γ(p), C')
Sevel
Evel, Ével, or EVEL may refer to:
People
* Evel Knievel (1938–2007), American stunt performer
* Evel Dick (Richard Louis Donato, born 1963), American winner of the reality game show ''Big Brother 8''
Other uses
*Ével, a river in France
*EVEL, ...
:= Sevel
Evel, Ével, or EVEL may refer to:
People
* Evel Knievel (1938–2007), American stunt performer
* Evel Dick (Richard Louis Donato, born 1963), American winner of the reality game show ''Big Brother 8''
Other uses
*Ével, a river in France
*EVEL, ...
+ 1;
ALL STEPS := ALL STEPS + 1;
MaxCliqueDyn(R ⋂ Γ(p), C', level + 1);
else if , Q, > , Qmax, then Qmax := Q;
Q := Q\;
else
return
end while
Value ''T''limit can be determined by experimenting on random graphs. In the original article it was determined that algorithm works best for ''T''limit = 0.025.
References
{{Reflist
Graph algorithms
Articles with example pseudocode