fbpx
Wikipedia

MaxCliqueDyn algorithm

The MaxCliqueDyn algorithm is an algorithm for finding a maximum clique in an undirected graph.

Developers:Insilab (National Institute of Chemistry Slovenia)
Development status:Active
Written in:C++
Type:graph theory, maximum clique algorithm, clique problem
License:GNU General Public License
Website:insilab.org/maxclique/

MaxCliqueDyn is based on the MaxClique algorithm, which finds a maximum clique of bounded size. The bound is found using a coloring algorithm. MaxCliqueDyn extends MaxClique to include dynamically varying bounds.

This algorithm was designed by Janez Konc and its description was published in 2007.[1] 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.[1] 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 edit

The MaxClique algorithm[2] is the basic algorithm from which MaxCliqueDyn is extended. The pseudocode 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\{p} if |Q| + C(p)>|Qmax| then  Q := Q ⋃ {p}  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\{p} else  return end while 

where Q is a set of vertices of the currently growing clique, Qmax is a set of vertices of the largest clique currently found, R is a set of candidate vertices, 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 edit

Approximate coloring algorithm edit

MaxClique uses an approximate coloring algorithm[2] 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 edit

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:[1]

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[i]; {the i-th vertex in 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 ⋃ {p}; if k < kmin then  R[j] := R[i];  j := j+1; end if end for C[j−1] := 0; for k := kmin to max_no do for i := 1 to |Ck| do  R[j] := Ck[i];  C[j] := k;  j := j+1; end for end for 

Example

 

The graph above can be described as a candidate set of vertices R = {7(5), 1(4), 4(4), 2(3), 3(3), 6(3), 5(2), 8(2)}, and used as input for both the approximate coloring algorithm and the ColorSort algorithm. Either algorithm can be used to construct the following table:

k Ck
1 7(5), 5(2)
2 1(4), 6(3), 8(2)
3 4(4), 2(3), 3(3)

The approximate coloring algorithm returns set of vertices R = {7(5), 5(2), 1(4), 6(3), 8(2), 4(4), 2(3), 3(3)} and its corresponding set of color classes C = {1,1,2,2,2,3,3,3}. The ColorSort algorithm returns set of vertices R = {7(5), 1(4), 6(3), 5(2), 8(2), 4(4), 2(3), 3(3)} and its corresponding set of color classes C = {–,–,–,–,–,3,3,3}, where – represents unknown color class with k < 3.

MaxCliqueDyn algorithm edit

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:[1]

procedure MaxCliqueDyn(R, C, level) is S[level] := S[level] + S[level−1] − Sold[level]; Sold[level] := S[level−1]; while R ≠ Ø do choose a vertex p with maximum C(p) (last vertex) from R; R := R\{p}; if |Q| + C[index of p in R] > |Qmax| then  Q := Q ⋃ {p};  if R ⋂ Γ(p) ≠ Ø then  if S[level]/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')  S[level] := S[level] + 1;  ALL STEPS := ALL STEPS + 1;  MaxCliqueDyn(R ⋂ Γ(p), C', level + 1);  else if |Q| > |Qmax| then Qmax := Q;  Q := Q\{p}; else  return end while 

Value Tlimit can be determined by experimenting on random graphs. In the original article it was determined that algorithm works best for Tlimit = 0.025.

References edit

  1. ^ a b c d Janez Konc; Dusanka Janezic (2007). "An improved branch and bound algorithm for the maximum clique problem" (PDF). MATCH Communications in Mathematical and in Computer Chemistry. 58 (3): 569–590. Source code
  2. ^ a b Tomita, Etsuji; Seki, Tomokazu (2003). (PDF). In Calude, C. S.; Dinneen, M. J.; Vajnovszki, V. (eds.). DMTCS 2003. LNCS. pp. 278–289. See also: E. Tomita; T. Seki (2007). "An Efficient Branch-and-Bound Algorithm for Finding a Maximum Clique". J Glob Optim. 37: 95–111. doi:10.1007/s10898-006-9039-7.

maxcliquedyn, algorithm, algorithm, finding, maximum, clique, undirected, graph, developers, insilab, national, institute, chemistry, slovenia, development, status, activewritten, type, graph, theory, maximum, clique, algorithm, clique, problemlicense, general. The MaxCliqueDyn algorithm is an algorithm for finding a maximum clique in an undirected graph Developers Insilab National Institute of Chemistry Slovenia Development status ActiveWritten in C Type graph theory maximum clique algorithm clique problemLicense GNU General Public LicenseWebsite insilab wbr org wbr maxclique wbr This article includes a list of general references but it lacks sufficient corresponding inline citations Please help to improve this article by introducing more precise citations October 2023 Learn how and when to remove this message MaxCliqueDyn is based on the MaxClique algorithm which finds a maximum clique of bounded size The bound is found using a coloring algorithm MaxCliqueDyn extends MaxClique to include dynamically varying bounds This algorithm was designed by Janez Konc and its description was published in 2007 1 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 1 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 Contents 1 MaxClique algorithm 2 Coloring algorithms 2 1 Approximate coloring algorithm 2 2 ColorSort 3 MaxCliqueDyn algorithm 4 ReferencesMaxClique algorithm editThe MaxClique algorithm 2 is the basic algorithm from which MaxCliqueDyn is extended The pseudocode of the algorithm is procedure MaxClique R C is Q O Qmax O while R O do choose a vertex p with a maximum color C p from set R R R p if Q C p gt Qmax then Q Q p if R G p O then obtain a vertex coloring C of G R G p MaxClique R G p C else if Q gt Qmax then Qmax Q Q Q p else return end while where Q is a set of vertices of the currently growing clique Qmax is a set of vertices of the largest clique currently found R is a set of candidate vertices 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 editApproximate coloring algorithm edit MaxClique uses an approximate coloring algorithm 2 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 v R displaystyle v in R nbsp with colors C v lt Q m a x Q 1 displaystyle C v lt Q max Q 1 nbsp are never added to the current clique Q Therefore sorting those vertices by color is of no use to MaxClique algorithm ColorSort edit The ColorSort algorithm improves on the approximate coloring algorithm by taking into consideration the above observation Each vertex is assigned to a color class C k displaystyle C k nbsp If k lt Q m a x Q 1 displaystyle k lt Q max Q 1 nbsp the vertex is moved to the set R behind the last vertex in R If k Q m a x Q 1 displaystyle k geq Q max Q 1 nbsp then the vertex stays in C k displaystyle C k nbsp and is not moved to R At the end all of the vertices remaining in C k displaystyle C k nbsp where k Q m a x Q 1 displaystyle k geq Q max Q 1 nbsp are added to the back of R as they appear in each C k displaystyle C k nbsp and in increasing order with respect to index k displaystyle k nbsp In the ColorSort algorithm only these vertices are assigned colors C v k displaystyle C v k nbsp The pseudocode of the ColorSort algorithm is 1 procedure ColorSort R C is max no 1 kmin Qmax Q 1 if kmin 0 then kmin 1 j 0 C1 O C2 O for i 0 to R 1 do p R i the i th vertex in R k 1 while Ck G p O do k k 1 if k gt max no then max no k Cmax no 1 O end if Ck Ck p if k lt kmin then R j R i j j 1 end if end for C j 1 0 for k kmin to max no do for i 1 to Ck do R j Ck i C j k j j 1 end for end for Example nbsp The graph above can be described as a candidate set of vertices R 7 5 1 4 4 4 2 3 3 3 6 3 5 2 8 2 and used as input for both the approximate coloring algorithm and the ColorSort algorithm Either algorithm can be used to construct the following table k Ck 1 7 5 5 2 2 1 4 6 3 8 2 3 4 4 2 3 3 3 The approximate coloring algorithm returns set of vertices R 7 5 5 2 1 4 6 3 8 2 4 4 2 3 3 3 and its corresponding set of color classes C 1 1 2 2 2 3 3 3 The ColorSort algorithm returns set of vertices R 7 5 1 4 6 3 5 2 8 2 4 4 2 3 3 3 and its corresponding set of color classes C 3 3 3 where represents unknown color class with k lt 3 MaxCliqueDyn algorithm editThe 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 O R 2 displaystyle O R 2 nbsp of the determination of the degrees and sorting of vertices in R stays the same The pseudocode of the MaxCliqueDyn algorithm is 1 procedure MaxCliqueDyn R C level is S level S level S level 1 Sold level Sold level S level 1 while R O do choose a vertex p with maximum C p last vertex from R R R p if Q C index of p in R gt Qmax then Q Q p if R G p O then if S level ALL STEPS lt Tlimit then calculate the degrees of vertices in G R G p sort vertices in R G p in a descending order with respect to their degrees end if ColorSort R G p C S level S level 1 ALL STEPS ALL STEPS 1 MaxCliqueDyn R G p C level 1 else if Q gt Qmax then Qmax Q Q Q p else return end while Value Tlimit can be determined by experimenting on random graphs In the original article it was determined that algorithm works best for Tlimit 0 025 References edit a b c d Janez Konc Dusanka Janezic 2007 An improved branch and bound algorithm for the maximum clique problem PDF MATCH Communications in Mathematical and in Computer Chemistry 58 3 569 590 Source code a b Tomita Etsuji Seki Tomokazu 2003 An Efficient Branch and Bound Algorithm for Finding a Maximum Clique PDF In Calude C S Dinneen M J Vajnovszki V eds DMTCS 2003 LNCS pp 278 289 See also E Tomita T Seki 2007 An Efficient Branch and Bound Algorithm for Finding a Maximum Clique J Glob Optim 37 95 111 doi 10 1007 s10898 006 9039 7 Retrieved from https en wikipedia org w index php title MaxCliqueDyn algorithm amp oldid 1185128499, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.