Given a graph G=(V,E) with n=|V| vertices, the graph coloring problem is defined as Find a color vectorC=(c(v)), where c(v)∈{1,2,…,n} denotes the color of vertex v∈V, such that no monochromatic edge exists in G and the span, the total number of distinct colors in C, is minimized. Since the problem is NP-complete, a greedy coloring is commonly used for solving it. Greedy coloring visits the vertices of G following an order S, and while visiting a vertex v, it puts the minimum color absent in all neighbors of v. We show that the orders producing span ≤k, where k≤n is a positive integer, can be partitioned into disjoint subsets of equivalent orders. Next, we propose a selective search (SS) algorithm, which takes ρ as an input parameter, selects ≥ρ orders each from a different set of equivalent orders with high probability, applies greedy coloring on them, and returns the color vector with minimum span. We analytically show that SS performs better than greedy coloring with high probability by evaluating the same number of orders. We propose an incremental search heuristic (ISH), which ρ1 times execute SS with parameter ρ2 and returns the color vector with minimum span. A parallel version of ISH called PISH is also proposed, executing ρ1 SS calls in parallel. We show that ISH hits an optimum coloring for a graph G=(V,E) with χ(G)(Δ(G)+1)≤ne in expected O(|V|+|E|) time and space complexities. We have evaluated ISH and PISH on 136 challenging benchmarks and shown that they significantly outperform 10 existing state-of-the-art algorithms. Finally, we validated our theoretical findings by evaluating ISH and greedy coloring on random graphs.
Read full abstract