MaxCliqueDyn is based on the MaxClique algorithm, which finds a maximum clique of bounded size.
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.
The MaxClique algorithm recursively searches for a maximum clique by adding and removing vertices to and from Q. 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.
Therefore, sorting those vertices by color is of no use to MaxClique algorithm.
In the ColorSort algorithm, only these vertices are assigned colors
Either algorithm can be used to construct the following table: 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.
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] 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.