Better coloring of 3-colorable graphs

We consider the problem of coloring a 3-colorable graph in polynomial time using as few colors as possible. This is one of the most challenging problems in graph algorithms. In this paper using Blum's notion of ``progress'', we develop a new combinatorial algorithm for the following: Given any 3-colorable graph with minimum degree $\ds>\sqrt n$, we can, in polynomial time, make progress towards a $k$-coloring for some $k=\sqrt{n/\ds}\cdot n^{o(1)}$. We balance our main result with the best-known semi-definite(SDP) approach which we use for degrees below $n^{0.605073}$. As a result, we show that $\tO(n^{0.19747})$ colors suffice for coloring 3-colorable graphs. This improves on the previous best bound of $\tO(n^{0.19996})$ by Kawarabayashi and Thorup in 2017.


Introduction
Recognizing 3-colorable graphs is a classic problem, which was proved to be NP-hard by Garey, Johnson, and Stockmeyer [12] in 1976, and was one of the prime examples of NP-hardness mentioned by Karp in 1975 [18].In this paper, we also focus on 3-colorable graphs.
Given a 3-colorable graph, that is a graph with an unknown 3-coloring, we try to color it in polynomial time using as few colors as possible.The algorithm is allowed to give up if the input graph is not 3colorable.If a coloring is produced, we can always check that it is valid even if the input graph is not 3-colorable.This challenge has engaged many researchers in theoretical computer science for a long time, yet we are far from understanding it.Wigderson [23] is the first to give a combinatorial algorithm for O(n1/2 ) coloring for a 3-colorable graph with n vertices in 1982.Berger and Rompel [4] then improved this result to O((n/(log n)) 1/2 ) 1 .Blum [5] gave the first polynomial improvements, based on combinatorial algorithms, first to O(n 2/5 ) colors in 1989, and then to O(n 3/8 ) colors in 1990.
The next big step in 1998 was given by Karger, Motwani, and Sudan [17] using semi-definite programming (SDP).This improvement uses Goemans and Williamson's seminal SDP-based algorithm for the max-cut problem in 1995 [13].Formally, for a graph with maximum degree ∆ max , Karger et al. [17] were able to get down to O(∆ 1/3 max ) colors.Combining this with Wigderson's combinatorial algorithm, they got down to O(n 1/4 ) colors.Later in 1997, Blum and Karger [6] combined the SDP from [17] with Blum's [5] combinatorial algorithm, yielding an improved bound of O(n 3/14 ) = O(n 0.2142 ).Later improvements on SDP have also been combined with Blum's combinatorial algorithm.In 2006, Arora, Chlamtac, and Charikar [1] got down to O(n 0.2111 ) colors.The proof in [1] is based on the seminal result of Arora, Rao, and Vazirani [3] which gives an O( √ log n) approximation algorithm for the sparsest cut problem.Further progress in SDP is made; Chlamtac [7] got down to O(n 0.2072 ) colors.
In 2012, Kawarabayashi and Thorup [19] made the first improvements on combinatorial algorithms over Blum [5]; they showed O(n 4/11 ), improving over Blum's O(n 3/8 ) bounds from his combinatorial algorithm.They also got down to O(n 0.2049 ) colors by combining with SDP results.Finally, they [20] got down to O(n 0.19996 ) colors, by further utilizing SDP and the combinatorial algorithm in [19].
On the lower bound side, for general graphs, the chromatic number is inapproximable in polynomial time within factor n 1−ϵ for any constant ϵ > 0, unless coRP=NP [10,16].This lower bound is much higher than the above-mentioned upper bounds for 3-colorable graphs.The lower bounds known for coloring 3colorable graphs are much weaker.We know that it is NP-hard to get down to 5 colors [14,21].Dinur, Mossel and Regev [9] proved that it is hard to color 3-colorable graphs with any constant number of colors (i.e., O(1) colors) based on a variant of the Unique Games Conjecture.Same hardness was proved based on weaker conjecture in [15].Stronger hardness bounds are known if the graph is only "almost" 3-colorable [8].Some integrality gap results [11,17,22] show that the simple SDP relaxation has integrality gap at least n 0.157 but such a gap is not known for SDPs using levels of Lasserre lifting [1,2,7].

Interplay between combinatorial and SDP approaches and our main result
In this paper, we will further improve the coloring bound for 3-colorable graphs to O(n 0.19747 ) colors.However, what makes our results interesting is that we converge towards a limit for known combinatorial approaches as explained below.
To best describe our own and previous results, we need Blum's [5] notion of progress towards kcoloring.The basic idea is that if we for any 3-colorable graph can make progress towards k-coloring in polynomial time, then we can O(k)-color any 3-colorable graph.
Reductions from [1,6,20] show that for any parameter ∆, it suffices to find progress towards k-coloring for 3-colorable graphs that have either minimum degree ∆ or maximum degree ∆.High minimum degree has been good for combinatorial approaches while low maximum degree has been good for SDP approaches.The best bounds are obtained by choosing ∆ to balance between the best SDP and combinatorial algorithms.
Combinatorial algorithm for balance with SDP We now note that (1) converges to (n/∆) 1/2 from above.Balancing with a SDP bound which is as good or better than ∆ 1/3 , we would only need (1) to hold for ∆ ≥ n 3/5 .This idea was used in [20] which got (1) to hold for i = 12, but only for minimum degree ∆ ≥ n 0.61674333 .In combination with the current best SDP by Chlamtac [7], this leads them to an overall coloring bound of O(n 0.19996 ).In principle, [20] could prove (1) for even larger i, but then the minimum degree would also have to be larger, and then the balance with SDP would lead to worse overall bounds.
Our result For i → ∞, the sequence (1) approaches O((n/∆) 1/2 ).In this paper, we get arbitrarily close to this limit assuming only that ∆ ≥ √ n.More precisely, our main combinatorial result is: Theorem 1 In polynomial time, for any 3-colorable graph with n vertices with minimum degree ∆ > n 0.5 , we can make progress towards a k-coloring for some For the optimal balance with the best SDP by Chlamtac [7], we will set ∆ = n 0.605073 which is comfortably bigger than our limit ∆ > √ n.Thereby we improve the best-known bound of O(n 0.19996 ) by Kawarabayashi and Thorup [20] to color any 3-colorable n vertex graph in polynomial time, as follows.
Theorem 2 In polynomial time, for any 3-colorable graph with n vertices, we can give an O(n 0.19747 )coloring.
Then we can make progress towards O(k) coloring in polynomial time.
We note that 2c+2 4c+3 = i 2i−1 for i = 2c + 1, so the coloring bounds from [20] still follow the pattern from (1).However, the degree constraint from [20] is thus both more complicated and more restrictive than our ∆ ≥ √ n, limiting the balancing with SDP.Our Theorem 1 thus provides a both stronger and more appealing understanding.
Techniques Our coloring algorithm follows the same general pattern as that in [20], which recurses through a sequence of nested cuts, called "sparse cuts", until it finds progress.Here we go through the same recursion, but in addition to the sparse cuts, we identify a family of alternative "side cuts".Having the choice between the side cuts and the sparse cuts is what leads us to the nicer and stronger bounds from Theorem 1.To describe our new side cuts, we first have to review the algorithm from [20].

Preliminaries
In this section, we provide the notations needed in this paper.They are actually the same as those used in [20] (and indeed in [5]), but for completeness, we give here all necessary notations.
We hide log n factors, so we use the notation that We are given a 3-colorable graph G = (V, E) with |V | = n = ω(1) vertices.The (unknown) 3colorings are red, green, and blue.For a vertex v, we let N (v) denote its set of neighbors.For a vertex set , and avg d Y (X), denote the minimum, maximum, and average degree from X to Y .
For some color target k depending on n, we wish to find an O(k) coloring of G in polynomial time.We reuse several ideas and techniques from Blum's approach [5].
Progress Blum has a general notion of progress towards an O(k) coloring (or progress for short if k is understood).The basic idea is that such progress eventually leads to a full O(k) coloring of a graph.Blum presents three types of progress towards O(k) coloring: Type 0: Same color.Finding vertices u and v that have the same color in every 3-coloring.
Type 1: Large independent set.Finding an independent or 2-colorable vertex set X of size Ω(n/k).
Type 2: Small neighborhood.Finding a non-empty independent or 2-colorable vertex set X such that |N (X)| = O(k|X|).
In order to get from progress to actual coloring, we want k to be bounded by a near-polynomial function f of n where near-polynomial means that f is non-decreasing and that there are constants c, c As described in [5], this includes any function of the form f (n) = n α log β n for constants α > 0 and β.
Lemma 4 ([5, Lemma 1]) Let f be near-polynomial.If we in time polynomial in n can make progress towards an O(f (n)) coloring of either Type 0, 1, or 2, on any 3-colorable graph on n vertices, then in time polynomial in n, we can O(f (n)) color any 3-colorable graph on n vertices.
The general strategy is to identify a small parameter k for which we can guarantee progress.To apply Lemma 4 and get a coloring, we need a bound f on k where f is near-polynomial in n.As soon as we find one progress of the above types, we are done, so generally, whenever we see a condition that implies progress, we assume that the condition is not satisfied.
Our focus is to find a vertex set X, |X| > 1, that is guaranteed to be monochromatic in every 3-coloring.This will happen assuming that we do not make other progress on the way.When we have the vertex set X, we get same-color progress for any pair of vertices in X.We refer to this as monochromatic progress.
Most of our progress will be made via the results of Blum presented below using a common parameter A very useful tool we get from Blum is the following multichromatic (more than one color) test: Lemma 5 ([5, Corollary 4]) Given a vertex set X ⊆ V of size at least Ψ = n/k 2 , in polynomial time, we can either make progress towards an O(k)-coloring of G, or else guarantee that under every legal 3-coloring of G, the set X is multichromatic.
The following lemma is implicit in [5] and explicit in [20].
Lemma 6 ([20, Lemma 6]) If the vertices in a set Z on average have d neighbors in U , then the whole set Z has at least min{d/Ψ, |Z|} d/2 distinct neighbors in U (otherwise some progress is made).
Large minimum degree Our algorithms will exploit a lower bound ∆ on the minimum degree in the graph.It is easily seen that if a vertex v has d neighbors, then we can make progress towards O(d) coloring since this is a small neighborhood for Type 2 progress.For our color target k, we may therefore assume: k ≤ ∆/ log a n for any constant a.
However, combined with semi-definite programming (SDP) as in [6], we can assume a much larger minimum degree.The combination is captured by the following lemma, which is proved in [20]: Lemma 7 ([20, Proposition 17]) Suppose for some near-polynomial functions d and f , that for any n, we can make progress towards an O(f (n)) coloring for • any 3-colorable graph on n vertices with minimum degree ≥ d(n).
• any 3-colorable graph on n vertices with maximum degree ≤ d(n).
Then we can make progress towards O(f (n))-coloring on any 3-colorable graph on n vertices.
Using the SDP from [17], we can make progress towards d(n) 1/3 for graphs with degree below d(n), so by Lemma 7, we may assume We can do even better using the strongest SDP result of Chlamtac from [7]: Theorem 8 ([7, Theorem 15]) For any τ > 6  11 there is a c > 0 such that there is a polynomial time algorithm that for any 3-colorable graph G with n vertices and all degrees below ∆ = n τ finds an independent set of size Ω n/∆ 1/(3+3c) .Hence we can make Type 1 progress towards an O ∆ 1/(3+3c) = O n τ /(3+3c) -coloring.
The requirement on τ and c is that c < 1/2 and λ c,τ (α) = 7/3 Two-level neighborhood structure The most complex ingredient we get from Blum [5] is a certain regular second neighborhood structure.Let ∆ be the smallest degree in the graph G.In fact, we shall use the slightly modified version described in [20].Unless other progress is made, for some ∆ 1 = Ω(∆), in polynomial time [5,20], we can identify a 2-level neighborhood structure H 1 = (r 0 , S 1 , T 1 ) in G consisting of: • A root vertex r 0 .We assume r 0 is colored red in any 3-coloring.
• A first neighborhood S 1 ⊆ N (r 0 ) of size at least ∆ 1 .
• A second neighborhood T 1 ⊆ N (S 1 ) of size at most n/k.The sets S 1 and T 1 may overlap.
• The edges between vertices in H 1 are the same as those in G.
• The vertices in S 1 all have degrees at least ∆ 1 into T 1 .
• For some δ 1 the degrees from T 1 to S 1 are all between δ 1 and 5δ 1 .

Recursive combinatorial coloring
Our algorithm follows the same pattern as that in [20], but adds in certain side-cuts leading us to both stronger and cleaner bounds.Below we describe the algorithm, emphasizing the novel additions.
First, we will be able to have different and stronger parameters than those in [20].Given a 3-colorable graph with minimum degree ∆ ≥ √ n, we will make progress towards a k-coloring for Since Ψ = n/k 2 , this is equivalent to We will use the above 2-level neighborhood structure H 1 = (r 0 , S 1 , T 1 ), and we are going to recurse on induced subproblems (S, T ) ⊆ (S 1 , T 1 ) defined in terms of subsets S ⊆ S 1 and T ⊆ T 1 .The edges considered in the subproblem are exactly those between S and T in G.This edge set is denoted E(S, T ).
A pseudo-code for our whole algorithm is presented in Algorithm 1.Note that the algorithm has two error events: Error A and Error B. We will make sure they never happen, and that the algorithm terminates, implying that it does end up making progress.
As in [20], our algorithm will have two loops; the inner and the outer.Both are combinatorial.When we start outer loop j it is with a quadruple (S j , T j , ∆ j , δ j ) where (S j , T j ) ⊆ (S 1 , T 1 ) is regular in the sense that: • The degrees from S j to T j are at least ∆ j .
• The degrees from T j to S j are between δ j and 5δ j .
Algorithm 1: Seeking progress towards O(k) coloring let (S 1 , T 1 , ∆ 1 , δ 1 ) be the initial two-level structure from Section 2; for j ← 1, 2, ... do // outer loop, round j (S, T ) ← (S j , T j ); repeat // inner loop.Iterative version of recursive monochromatic(S j , T j ) if |S| ≤ 1 then return "Error A"; U ← {v ∈ T | d S (v) ≥ δ j /4}; if |U | < Ψ then return "Error B"; check U multichromatic with Lemma 5; // if not, progress was found and we are done if ∃v ∈ U such that cut-or-color(S, T, v) returns "sparse cut around (X(v), Y (v))" then (S, T ) ← (X, Y ) else return "S is monochromatic in every 3-coloring, so monochromatic progress found" ; We note that the root vertex r 0 is not changed, and we will always view it as red in an unknown red-greenblue coloring.In addition to regularity, we have the following two pre-conditions: Proving these pre-conditions is a non-trivial part of our later analysis.

Inner loop
The first thing we do in iteration j of the inner loop is that we enter the inner loop which is almost identical to that in [20].Within the inner loop, we say that a vertex in T has high S-degree if its degree to S is bigger than δ j /4, and we will make sure that any subproblem (S, T ) considered satisfies: (i) We have at least Ψ vertices of high S-degree in T .
This invariant implies that Error B never happens.

Cut-or-color
The most interesting part of the inner loop is the subroutine cut-or-color(S, T, t) which is taken from [20] except for a small change that will be important to us.The input to the subroutine is a problem (S, T ) ⊆ (S j , T j ) that starts with an arbitrary high S-degree vertex t ∈ T .It has one of the following outcomes: • Some progress toward a O(k)-coloring.Then we are done, so we assume that this does not happen.
• A guarantee that if r 0 and t have different colors in a 3-coloring C 3 of G, then S is monochromatic in C 3 .• Reporting a "sparse cut around a subproblem (X, Y ) ⊆ (S, T )" satisfying the following conditions: (ii) The original high S-degree vertex t has all its neighbors to S in X, that is, N S (t) ⊆ X.
(iii) All edges from X to T go to Y , so there are no edges between X and T \ Y .
We note that in [20], (v) only requires |N Y (N S (t ′ ))| < Ψ.Since S ⊆ N (r 0 ), this is a weaker requirement.This is why we say that our cuts are sparser.A pseudo code for our revised cut-or-color is presented in Algorithm 2.
Algorithm 2: cut-or-color(S, T, t) X = N S (t); Y = N T (X); loop if X = S then return "S is monochromatic in every 3-coloring where t and r 0 have different colors" Below we describe how cut-or-color works so as to satisfy the invariants, including our revision.Consider any 3-coloring C 3 of G. C 3 is not known to the algorithm.But, if the algorithm can guarantee that S is monochromatic in C 3 , then it can correctly declare that "S is monochromatic in every 3-coloring where t and r 0 have different colors".Recall that r 0 is red and assume that t is green in C 3 .The last color is blue.
The first part of cut-or-color is essentially the coloring that Blum [5, S5.2] uses for dense bipartite graphs.Specifically, let X be the neighborhood of t in S and let Y be the neighborhood of X in T .As in [5] we note that all vertices of X must be blue, and that no vertex in Y can be blue.We are going to expand X ⊆ S and Y ⊆ T preserving the following invariant: (vi) if r 0 was red and t was green in C 3 then X would be all blue and Y would have no blue.
If we end up with X = S, then invariant (vi) implies that S is monochromatic in any 3-coloring where r 0 and t have different colors.

X-extension
Now consider any vertex s ∈ S whose degree into Y is at least Ψ.Using Lemma 5 we can check that N Y (s) is multichromatic in G. Since Y ⊇ N Y (s) has no blue, we conclude that N Y (s) is red and green, hence that s is blue.Note conversely that if s was green, then all its neighbors in Y would have to be red, and then the multichromatic test from Lemma 5 would have made progress.Preserving invariant (vi), we now add the blue s to X and all neighbors of s in T to Y .We shall refer to this as an X-extension.
We now introduce Y -extensions.The important point will be that if we do not end up with X = S, and if neither extension is possible, then we have a "sparse cut" around (X, Y ) that we can use for recursion.

Y -extension Consider a vertex t
We now claim that t ′ cannot be blue.Suppose it was; then its neighborhood has no blue and N (r 0 ) is only blue and green, so X ′ = N N (r 0 ) (t ′ ) must be all green.Then the neighborhood of X ′ has no green, but Y has no blue, so N Y (X ′ ) must be all red, contradicting that N Y (X ′ ) is multichromatic.We conclude that t ′ is not blue.Preserving invariant (vi), we now add t ′ to Y .

Recursion towards a monochromatic set
Assuming cut-or-color above, we now review the main recursive algorithm from [20].Our inner loop in Algorithm 1 starts with what corresponds to an iterative version of the subroutine monochromatic from [20] which takes as input a subproblem (S, T ) with |S| > 1; otherwise we get Error A. In the first round of the inner loop, we have (S, T ) = (S j , T j ).
Let U be the set of high S-degree vertices in T .By (i) we have |U | ≥ Ψ, so we can apply Blum's multichromatic test from Lemma 5 to U in G. Assuming that we did not make progress, we know that U is multichromatic in every valid 3-coloring.We now apply cut-or-color to each t ∈ U , stopping only if a sparse cut is found or progress is made.If we make progress, we are done, so assume that this does not happen.If a sparse cut around a subproblem (X, Y ) is found, we recurse on (S, T ) = (X, Y ).
The most interesting case is when we get neither progress nor a sparse cut.Here is the important result in [20].
Lemma 9 If cut-or-color does not find progress nor a sparse cut for any high S-degree t ∈ U , then S is monochromatic in every 3-coloring of G.
Thus, unless other progress is made, or we stop for other reasons, we end up with a non-trivial set S that is monochromatic in every 3-coloring, and then monochromatic progress can be made.However, the correctness demands that we respect (i) and only proceed with a subproblem (S, T ) where T has more than Ψ high S-degree vertices (otherwise Lemma 5 cannot be applied to U ).
As proved in [20], invariant (i) must be satisfied if the average degree from Y to X is at least δ j /2.The proof exploits pre-condition (7) and that the maximal degree Y to S is at most 5δ j .If the average degree from Y to X drops below δ j /2, we terminate the inner loop.
This completes our description of the inner loop in Algorithm 1.If we have not terminated with progress, then the final sparse cut (X, Y ) = (S, T ) has average degree at most δ j /2 from Y to X.
Regularization For now, skipping our new side cuts, we finish iteration j of the outer loop as in [20] by "regularizing" the degrees of vertices.The regularization is described in Algorithm 3, and it is, in itself, fairly standard.Blum [5] used several similar regularizations.In [20] the following lemma is shown.
Lemma 10 When regularize(S, T ) in Algorithm 3 returns (S r , T r , ∆ r , δ r ) then ∆ r ≥ avg d T (S)/(30 log n) and δ r ≥ avg d S (T )/8.The sets S r ⊆ S and T r ⊆ T are both non-empty.The degrees from S r to T r are at least ∆ r and the degrees from T r to S r are between δ r and 5δ r .
To complete our explanation of Algorithm 1, we have to describe our new side cuts, which is done in the next section.We are now going to analyze outer round j.The novelty relative to [20] is the impact of side cuts together with the small tightening of cut-or-color.Our main result for iteration j will be that Since |T j+1 | ≤ |Y j |, this bound can be used recursively.
Cuts.We claim that any sparse or side cut (X, Y ) considered will satisfy In [20], this was already proved for the sparse cuts (X, Y ).More precisely, for sparse cuts, vertices in X preserve all their neighbors in T j .This follows recursively from Invariant (iii), and therefore min d Y (X) ≥ ∆ j , implying (9).Also (10) follows because X contains the neighborhood of a high S-degree vertex, which means degree at least δ j /4.Finally, [20, Eq. ( 17)] states |Y | ≥ ∆ 2 j /(2Ψ) implying (11).
Proof First, we note that (10) holds because the side cut is only defined We now observe that any vertex v ′ ∈ S \ X has at most Ψ neighbors in Y by invariant (iv).Moreover, by (7), ∆ j = ω(Ψ), so the degree from v ′ ∈ X ′ (u) to Y ′ (u) is at least ∆ j − Ψ > ∆ j /2, which implies (9).
Final sparse cut.In the rest of this section, let (X, Y ) denote the last sparse cut considered in outer iteration j.The best side cut is then found by calling best-side-cut(X, Y, S j , T j ).
Let Y ′′ ⊆ Y be the set of vertices u ∈ Y such that at least δ j /3 of the S j -neighbors of u are in S j \X.Then Y ′′ are exactly the vertices for which side cuts (X ′ (u), Y ′ (u)) are defined.By definition, the vertices from Y \ Y ′′ have less than δ j /3 edges to S j \ X amounting to a total of less than |Y |δ j /3 edges to S j \ X.Thus we must have at least We define Since Y j was a Y from a sparse or side cut (X, Y ), (11) implies µ ≥ 1/8.We now show the following key lemma, which relates to Lemma 13 in [20] (that is the most important in their analysis).

Lemma 13
The number of edges from Y ′′ to S j \X is at most Proof We have In combination with (13), this implies that We also know that all degrees from T j to S j are bounded by 5δ j and this bounds the size of X ′ (y) = N S j (y) \ X.We now get the desired bound on the number of edges from Y ′′ to S j \X as Combined with µ × We now conclude with the main result from our analysis of our new inner loop: Lemma 14 Note that if (16) is smaller than the lower bound ∆ 2 j /(8Ψ) from (11), then progress must have been made before the round finished and this is what are ultimately hoping for.
Comparison to [20].In [20], there are no side cuts and no µ, so they only had an upper bound corresponding to (14) with µ ≥ 1/8, that is, To appreciate the difference, consider the first round where we only have |T 1 | ≤ n/k.Then (16) yields |Y 1 | = O(n/k 3/2 ), gaining a factor √ k over n/k.For comparison, with (17), we gain only a factor (Ψ/∆ j ) 2 which will be subpolynomial by (6).

Figure 1 :
Figure 1: Side cuts and sparse cuts

Lemma 12
We have at least δ j |Y |/6 edges from Y ′′ to S j \X.Proof The loop over sparse cuts in Algorithm 1 only terminates because |E(S, T )| < δ j |T |/2 where (S, T ) is our (X, Y ).Therefore we must have |E(Y, S j \ X)| ≥ δ j |Y |/2.