Abstract 1 Introduction 2 Technical Introduction 3 Preliminaries 4 The Streaming Algorithm 5 The Coloring Algorithm 6 Lower bound for (𝚫𝒌)-Coloring in Semi-Streaming References

Beyond Brooks: (Δ1)-Coloring in Semi-Streaming

Maxime Flin ORCID Aalto University, Espoo, Finland    Magnús M. Halldórsson ORCID Reykjavik University, Iceland
Abstract

Reed [J. Comb. Theory B, 1999] showed that graphs of maximum degree Δ1014 without Δ-cliques are (Δ1)-colorable. We design a one-pass semi-streaming algorithm for computing such a coloring. Additionally, we prove that any one-pass (Δk)-coloring algorithm for 0k<(Δ+1)/2 requires Ω(n(k+1)) space.

Keywords and phrases:
Graph coloring, streaming algorithm
Category:
Track A: Algorithms, Complexity and Games
Funding:
Maxime Flin: Supported in part by the Research Council of Finland, Grants 359104 and 363558. Part of this work was done while M. Flin was working at Reykjavik University, funded by the Icelandic Research Fund, Grant 2310015-053.
Magnús M. Halldórsson: Supported by the Icelandic Research Fund, Grant 2511609.
Copyright and License:
[Uncaptioned image] © Maxime Flin and Magnús M. Halldórsson; licensed under Creative Commons License CC-BY 4.0
2012 ACM Subject Classification:
Theory of computation Streaming, sublinear and near linear time algorithms
Related Version:
Full Version: https://doi.org/10.48550/arXiv.2605.07774 [30]
Editors:
Sayan Bhattacharya, Danupon Nanongkai, Michael Benedikt, and Gabriele Puppis

1 Introduction

Graph coloring is a central problem in combinatorics and theoretical computer science. Given a graph G=(V,E) and an integer q1, a q-coloring assigns a color from {1,,q} to each vertex so that adjacent vertices receive different colors. Coloring has been extensively studied in diverse computational models, including the classical RAM [45, 41], distributed message-passing [43, 10, 36, 19], sublinear models [3, 18, 22, 7], dynamic algorithms [13, 37, 14, 11], communication complexity [31, 20], and streaming models [3, 1, 12, 2, 17, 4, 7]. In semi-streaming, the algorithm must produce a coloring after processing the edges of an n-vertex graph one at a time in an adversarial order while using O(npolylogn) space.

In this work, we study the streaming complexity of coloring with fewer than Δ colors, where Δ is the maximum degree. We give the first one-pass semi-streaming algorithm that outputs a (Δ1)-coloring for graphs with large enough degree and no Δ-clique.

Coloring With 𝚫+𝟏 or 𝚫 Colors.

The classic (Δ+1)-coloring problem is easy sequentially because one can always extend a partial solution to a full solution. Notwithstanding, the greedy approach does not work in semi-streaming; thus to (Δ+1)-color in semi-streaming, Assadi, Chen, and Khanna [3] had to invent the influential palette sparsification technique: if one samples O(logn) colors from {1,2,,Δ+1} independently for each vertex, then with high probability, all vertices can be colored with a color from their list. It has been further leveraged in sublinear algorithms [1, 4, 7], distributed algorithms [34, 27], dynamic algorithms [11], and discrete mathematics [39, 40, 23].

By a theorem of Brooks [16], Δ colors always suffice except for (Δ+1)-cliques or odd cycles. Assadi, Kumar, and Mittal [4] gave a semi-streaming algorithm for Δ-coloring, in spite of the fact that palette sparsification provably fails [3, Proposition C.2] and such an algorithm only exists when each edge appears at most once in the stream [4]. To that end, they introduced the novel sketching technique of sparse recovery.

In the scale of things, Δ-coloring is conceptually easy. It has spawned a great many solutions, starting with [46, 44], including newer linear-time algorithms [8, 52]; see comprehensive treatments in [21] and the book of [53]. Modulo a single vertex, it can be greedily colored, as there is an order under which it suffices to assign each node an arbitrary available color. The (Δ1)-coloring problem does not have such a greedy or near-greedy property.

Beyond Brooks: (𝚫𝟏)-Coloring.

In [51], Reed showed that Brooks barely scratched the surface: in fact, as the size of the largest clique decreases, so does the chromatic number. Borodin and Kostochka [15] conjectured that every graph of maximum degree Δ9 without a Δ-clique is (Δ1)-colorable. Reed [50] proved the conjecture for Δ1014. The conjecture is otherwise open, but holds for claw-free graphs [21]. Despite significant advances in (Δ+1)- and even Δ-coloring, going further in the semi-streaming model has remained elusive.

Unsurprisingly, Reed’s result is an order of magnitude more involved than the many simple proofs of Brooks’ theorem. Reed’s approach – based on technical structural observations and the probabilistic method – is highly non-trivial and remains (effectively) the only one known. As such, Reed’s theorem is not merely a quantitative improvement but an exhibit for the existence of a conceptual leap between (Δ1)-coloring and Δ-coloring. Indeed, unlike proofs of Brooks’ Theorem (including that of [4]), Reed’s argument is far from being greedy: it begins by transforming the graph – specifically, by adding edges. Given the already strenuous effort necessary to obtain a (Δ+1)-coloring and Δ-coloring in semi-streaming and the technical depth of Reed’s theorem, it is natural to ask if Δ-coloring is the best we can hope for in semi-streaming:

Does there exist a (one-pass) semi-streaming algorithm to color with fewer than Δ colors any given graph of maximum degree Δ (large enough) and no Δ-cliques?

Even if such an algorithm exists, the concern is that removing one more color may require an explosion of cases, considering, e.g., the much larger number of cases in the Δ-coloring algorithms [4, 26] than for (Δ+1)-coloring [3, 35].

1.1 Our Contributions

The main technical contribution of this paper is a semi-streaming algorithm for (Δ1)-coloring graphs of sufficiently high degree. Concretely, we prove the following.

Theorem 1.

There exists a universal constant Δ0 for which the following holds. There exists a randomized one-pass semi-streaming algorithm that given any graph G=(V,E) with maximum degree ΔΔ0 and containing no Δ-clique, outputs a (Δ1)-coloring of G with high probability.

During the streaming pass, akin to [4], our algorithm samples poly(logn)-sized random lists and stores only the edges of the sparsified graph, meanwhile using their sparse recovery technique to learn about the densest regions of the graph. The coloring algorithm differs substantially: we begin by transforming the graph – both removing extremely dense subgraphs and carefully adding edges – and then leverage various kinds of probabilistic coloring arguments to construct a coloring.

Clearly, the impossibility results highlighted in [4] also apply to us. We therefore assume that each edge appears at most once in the stream. It is also worth noting that randomness is essential, as Assadi, Chen, and Sun [2] demonstrated that any deterministic semi-streaming algorithm requires exp(Δo(1)) colors.

As a final remark on Theorem 1, we observe that Δ0 is in fact the smallest universal constant for which graphs of maximum degree ΔΔ0 and no Δ-clique admit a (Δ1)-coloring. Reed proved in [50] that Δ01014. For graphs of maximum degree Δ1014, all edges O(nΔ)=O(n) in the graph can be stored, and an optimal coloring can be computed (although, not in polynomial time). We have not tried to reduce this constant; in [50, Section 5], Reed claims that Δ0=106 also works with more care, while Δ0<100 would need different techniques.

Using Fewer Colors.

A natural follow-up question from Theorem 1 is to what extent this can be pushed further. Molloy and Reed [48] gave a characterization of (Δk)-colorable graphs in terms of forbidden local subgraphs, for all kΔ. This generalizes Reed’s result and suggests an alternative approach. However, their structural decomposition is delicate and obtained through phases of contracting vertices and computing optimal partitions. We prove that, in fact, computing a (Δk)-coloring requires Ω(n(k+1)) space, prohibiting semi-streaming algorithms for (Δk)-coloring unless k is polylogarithmic.

Theorem 2.

Let Δ,c>0 be non-negative integers such that (Δ+1)/2<cΔ. Any (possibly randomized) one-pass streaming algorithm that outputs a c-coloring of given c-colorable n-vertex graph of maximum degree Δ requires Ω(n(Δc+1)) space.

Very recently, Assadi, Sundaresan, and Yazdanyar [5] studied the problem of distinguishing graphs of low chromatic number (e.g., constant) from those with a large chromatic number (e.g., n). They proved, amongst other things, that it requires n2o(1) space in adversarial streams. Theorem 2 is orthogonal to (and much simpler than) their results since it considers graphs whose chromatic number is one less than their clique number.

1.2 Organization of the Paper

In Section 2, we give an overview of the challenges and technical ideas necessary to obtain Theorem 1. At the end of Section 2, we also provide a more detailed comparison with [4, 29]. In Section 4, we detail the information stored during the streaming pass and describe the coloring algorithm in Section 5. Theorem 2 is presented in Section 6.

2 Technical Introduction

We give an overview of the ideas behind Theorem 1. First, we present the three components for constructing (Δ1)-colorings, followed by a description of the high-level algorithm that combines them. We then explain how to implement these components in semi-streaming. For a complete step-by-step description, see Section 5. In this introduction, various concepts are simplified to aid intuition.

Pre-/Post-Processing.

We start by identifying subgraphs in the graph that are easily colorable regardless of the coloring in the rest of the graph. During pre-processing, we remove those subgraphs and only color them at the very end during post-processing.

For instance, consider the (Δ+1)-clique missing two disjoint edges, as illustrated in Figure 1(a). In any (Δ1)-coloring of such a subgraph, both endpoints of each anti-edge must be assigned the same color. Once these pairs of vertices are colored the same, the remaining vertices can be colored greedily. In general, the subgraphs shown in Figure 1 are such that any coloring of the outer vertices can be extended to a coloring of the inner vertices as well (they are, in fact, (deg1)-choosable). This property allows us to defer their coloring to the very end of the algorithm.

To detect these subgraphs, during pre-processing, we decompose the graph into (locally) sparse vertices – which have many missing edges in their neighborhood – and almost-cliques – sets of vertices that can be turned into (Δ+1)-cliques by modifying an ε-fraction of their edges and vertices. We look for those choosable subgraphs only in the densest almost-cliques, as the other vertices can be colored by other means. We then distinguish two main types of choosable components: the solitary ones are inscribed inside an almost-clique (as on Figures 1(a) and 1(b)), and the popular ones for which the choosable component contains some vertices outside the almost-clique (as on Figure 1(c)).

(a)
(b)
(c)
Figure 1: The three types of subgraphs G[X] such that any coloring of G[VX] can be extended to a coloring of G. The vertices inside the gray circle are in the almost-clique. Figure 1(a) represent an almost-clique with an induced 2-anti-matching. Figure 1(b) represents an almost-clique with a 3-independent set. Figure 1(c) represents a (Δ1)-clique with two vertices sharing a neighbor in the clique, each with a different anti-neighbor in the clique. To color each such graph, we must ensure that the highlighted pairs of vertices are same-colored, which is unlikely to occur through randomized coloring arguments.

For the remainder of this technical introduction, we focus on the case of Δ-regular nodes in disjoint (Δ1)-cliques, as this already captures the main challenges and intuition for (Δ1)-coloring.

Generating Slack Probabilistically.

Rather than directly attempting to color all vertices, many coloring algorithms begin by coloring a few vertices randomly. The hope is that uncolored vertices have neighbors that pick the same color, which increases the flexibility when completing the coloring.

Consider the following random coloring process. Each vertex flips a coin and, if it is heads, randomly picks a color. A vertex keeps its color only if no neighbor selects the same one. If v is a vertex in a (Δ1)-clique such as the one in Figure 2(a), basic probabilistic analysis shows that v has a constant probability of saving two colors – meaning that v remains inactive, and both of its external neighbors retain colors used elsewhere in the clique. We say that v was successful.

For a (Δ1)-clique with all (or most) of its external neighbors distinct, one can show that with high probability it contains two successful vertices. Then, we can defer the coloring of successful vertices and color the rest of the clique greedily. This technique generalizes to any almost-clique without an external node connected to most of its internal vertices.

Reed Transform.

The most difficult case occurs when a (Δ1)-clique C has an external vertex – called a friend – with numerous neighbors in C, yet lacks any structure that yields probabilistic slack or choosability. To illustrate the challenge, consider the situation where the vertices are adjacent to either s1 or s2, but not both. If the probabilistic coloring procedure colors s1 and s2 the same (an event with probability 1/Δ), then the coloring cannot be extended to the rest of C (see Figure 2(b)). It is crucial to note that recoloring vertices might convert successful vertices into unsuccessful ones, rendering the approach infeasible.

To handle such cliques, we apply the Reed Transform, based on a construction from [50]. Identify a specific substructure in C (vertices s,x,y,u,v as in Figure 2(c)), delete C from the graph, and add a single edge xy (in dashed gray in Figure 2(c)). Once the rest of the graph is colored – forcing x and y to have distinct colors – we reinsert and color C by coloring v as x and s as some anti-neighbor zCN(s). Naturally, x and y must be chosen carefully to avoid creating a Δ-clique when we connect them.

(a)
(b)
(c)
Figure 2: A (Δ1)-clique in different configurations. On Figure 2(a) it has many different external neighbors. On Figure 2(b), all vertices are either adjacent to s1 on the left or s2 on the right. If slack generation colors s1 and s2 the same, there is no way to extend the coloring. On Figure 2(c), a representation of the Reed Transform: the clique is removed, and the dashed edge added to the graph; the coloring can be later extended by same coloring the s vertex with some vertex of the clique and the v-vertex like the x-vertex. The edge added between the x- and y-vertex ensures this is possible.

The Coloring Algorithm.

With this, we now describe the high-level structure of our (Δ1)-coloring algorithm. Despite our intricate analysis, each step is conceptually simple:

  1. 1.

    Identify and remove choosable components (solitary and popular as in Figure 1);

  2. 2.

    Apply the Reed Transform to troublesome (Δ1)-cliques;

  3. 3.

    Use probabilistic slack to color the remaining graph greedily;

  4. 4.

    Invert the Reed transform to color the removed cliques;

  5. 5.

    Complete the coloring of the choosable components.

Note how the steps pair with each other and correspond to one of the aforementioned three ideas. For the remainder of this technical introduction, we outline how each step can be implemented in semi-streaming, discuss the challenges, and present our solutions.

Streaming Implementation.

We focus here on the implementation of our coloring algorithm after the streaming pass is done, for the streaming algorithm itself largely follows from [3, 4]: running palette sparsification and computing linear sketches. See Section 4.4 for a summary of the information recovered by the algorithm after the streaming pass.

First, we observe that we may focus on the densest almost-cliques, for the other ones can be colored by palette sparsification. Using the sparse-recovery technique of [4], we recover almost all the edges incident to the densest almost-cliques. In particular, it allows us to identify the choosable subgraphs and the (Δ1)-cliques that need to be removed by the Reed Transform. Implementing the Reed Transform requires that we avoid the creation of a Δ-clique and that we preserve invertibility for later steps. We must also ensure that we do not densify sparse neighborhoods, as this could inadvertently create the dense subgraphs we sought to isolate in Step (1). Remarkably, simple downsampling suffices: it limits the number of edges added per vertex while preserving enough flexibility to avoid creating a Δ-clique.

We avoid monochromatic edges by keeping a serene coloring: a coloring for which each node uses a color from its random list unless all its incident edges have been recovered, in which case it may choose its color freely. We frequently combine palette sparsification with sparse-recovery. For instance, when coloring popular almost-cliques, some nodes are colored using their random lists, while others are colored greedily, as in the classical setting. Overall, our algorithm makes significantly more use of the edges recovered by sparse recovery than [4]. Though subtle, this difference proves consequential: it frees us to focus more deeply on the graph’s structural properties.

The second major challenge is a technical one: proving concentration on the probabilistic guarantees of the randomized coloring procedure described earlier. Indeed, to invert the Reed Transform, we require that each friend has at least Δ/poly(logn) edges into the clique. Consequently, we can no longer guarantee that most external neighbors are distinct. At a high level, this undermines the apparent randomness of colors sampled outside the almost-clique – they may originate from too few vertices to provide sufficient diversity. Unfortunately, standard concentration inequalities fall short in capturing this behavior. Instead, we rely on a case analysis that combines multiple forms of slack-based concentration, sometimes even blending probabilistic and temporal slack to recover the guarantees we need.

Comparison with [4].

In [4], the authors design a semi-streaming algorithm for Δ-coloring and, in particular, introduces the sparse-recovery technique used by our algorithm. In contrast, while [4] would use it to recover edges incident on at most two vertices for each of the densest cliques (see Definitions 4.6 and 4.7 of [4]), we heavily use that we can recover all edges incident on the densest cliques, most notably for implementing and inverting the Reed Transform.

Coloring with fewer than (𝚫𝟏)-colors.

Molloy and Reed [48] generalized Reed’s result to (Δk)-colorable graphs, for all values of k up to roughly Δ. As shown in [9, 29], this can be obtained in the LOCAL model [43, 38] in a near-optimal round complexity of poly(loglogn). The lower bound of Theorem 2 proves that (Δk)-coloring is not attainable in semi-streaming unless k=poly(logn).

Our work leaves open the question of (Δk)-coloring in the streaming model for k2, specifically whether it can be achieved in npoly(k,logn) space. Conceptually, as k increases, the number of cases involving dense cliques grows rapidly, as it no longer suffices to track two anti-edges per dense clique.

To avoid this combinatorial explosion, the main alternative is to follow the approach of [48], which provides a systematic treatment for arbitrary k via a generalization of the Reed transform. This framework starts from a coarse structural decomposition (akin to the almost-clique decomposition) and progressively refines it through increasingly intricate local transformations. These transformations appear to require the full knowledge of the local topology as they rely, among other things, on the optimal coloring of dense induced subgraphs. While it is conceivable that, using the sparse recovery technique with poly(k)-sparse vectors (thus, npoly(k,logn) space), one could recover most of the edges necessary to implement this intricate transformation, the feasibility of this approach remains open.

3 Preliminaries

Notation.

For an integer k1, we use [k] to denote {1,2,,k}. For sets A and B, we write AB={aA:aB}. For succinctness, we abuse notation slightly and write Ax and A+x for A{x} and A{x} respectively. For a function f:XY, let f(A)={f(a):aA} and f1(B)={x:f(x)B} where AX and BY respectively. We abuse notation slightly and occasionally write f1(y) instead of f1({y}) when yY.

Let G=(V,E) be a simple graph. We denote by n=|V| and m=|E| its respective number of vertices and edges. For a set SV, the induced subgraph G[S] is the graph on vertex set S and all edges of E between pairs of vertices in S. The neighborhood of vV is NG(v)={uV:{u,v}E} and deg(v,G)=|NG(v)|. The closed neighborhood of v is NG[v]=NG(v)+v. When G is clear from context, we write N(v) and deg(v). The maximum degree of G is denoted by Δ. We refer to a pair {u,v} as a non-edge or an anti-edge when no edge connects u and v. A k-anti-matching is a set of k anti-edges such that each vertex belongs to at most one anti-edge. A k-independent set is a set of k vertices that are not connected by any edge.

For an integer q1, a partial q-coloring is a mapping φ:V[q]{} such that φ(u)φ(v) or {φ(u),φ(v)} for all {u,v}E. The set of colored vertices is the domain domφ={vV:φ(v)}. Given a partial coloring φ, the uncolored degree of v is degφ(v,G)=|NG(v)domφ|. Throughout the paper, we denote by Lφ(v)=[Δ1]φ(N(v)) the set of colors unused by neighbors of v with respect to a (possibly partial) coloring φ. We say that a coloring ψ is an extension of φ if ψ(v)=φ(v) for all vdomφ.

We say that an event occurs with high probability (in n) if it occurs with probability at least 1nc, for a desirably large constant c>0. An event occurs with exponentially high probability in x if it occurs with probability at least 1exp(Ω(x)). We abridge “with probability”, “with high probability” and “with exponentially high probability” as “w.p.”, “w.h.p.” and “w.e.h.p.” respectively.

3.1 Sparse-Dense Decomposition

We use the variant of the sparse-dense decomposition from [36, 3, 6, 4] (inspired by [51, 47]). It partitions vertices between (locally) sparse vertices – with many anti-edges in their neighborhood – and dense vertices clustered in almost-cliques – subgraphs that resemble a (Δ+1)-clique.

Definition 3.

A vertex v is ζ-sparse in G if G[N(v)] contains at most (Δ2)ζΔ edges.

Definition 4.

A set CV is an (ε,δ)-almost-clique if

  1. 1.

    (1ε/2)Δ|C|(1+ε/2)Δ,

  2. 2.

    |CN[v]|,|N(v)C|εΔ for all vC, and

  3. 3.

    every vC has |CN(v)|δΔ.

We stress that (3) is not always included as part of the definition of almost-clique (e.g., in [36, 3]). It is however essential for us that nodes outside an almost-clique have δΔ non-neighbor inside the almost-clique (we will always have δ=Ω(ε)).

Let v be a vertex in some almost-clique C. We call external neighbors E(v)=N(v)C its e(v)=|E(v)| neighbors outside C. The vertices of C that are not adjacent to v are its anti-neighbors A(v)=CN[v]; let a(v)=|A(v)| be the anti-degree of v. Part (2) in Definition 4 means that e(v),a(v)εΔ.

Definition 5.

For ε,η(0,1), an (η,ε,δ)-almost-clique decomposition of G is a vertex-partition Vsparse,C1,C2,,Ck such that

  1. 1.

    every vVsparse is ηε2Δ-sparse;

  2. 2.

    for every i[k], the set Ci is an (ε,δ)-almost-clique.

Vertices of Vsparse are called sparse, and those of VVsparse are called dense. It follows almost directly from the definitions that dense vertices have sparsity proportional to their anti-degree and external-degree. For a proof, we refer readers to [33, Lemma 6.2] for the bound in terms of anti-degrees and to [28, Lemma 3.6] for the bound in terms of external degrees111In contrast to our definition, which includes sparse vertices as external neighbors, in [33], the authors count as external neighbors only vertices from other almost-cliques. The original proof of Lemma 6 is in a technical report [35]..

Lemma 6.

If Vsparse,C1,,Ck is an (η,ε,δ)-almost-clique decomposition, then every vCi with e(v)2/(ηε2) is max{ηε2/4e(v),(13ε)/2a(v)}-sparse.

A semi-streaming algorithm for computing an almost-clique decomposition exists, as given by [4, Proposition 3.5].

Proposition 7.

There are universal constants η,ε0(0,1) such that the following holds. For any 0<ε<ε0, there is a streaming algorithm using O(ε2nlogn) space that computes an (η,ε,ε)-almost-clique decomposition.

3.2 Palette Sparsification

Our streaming algorithm uses the palette sparsification technique from [3] to color some almost-cliques. Assadi, Chen and Khanna view the coloring of an almost-clique as a perfect matching in a bipartite graph, where one side of the bipartition represents vertices and the other side the colors. An edge exists between a vertex and a color in this graph if the color is available to the vertex with respect to the current coloring. When we apply palette sparsification, each edge is retained in the graph independently with some probability, and they prove that, under the right assumptions, it is possible to match all vertices with high probability.

We use the following formulation of the statement, from [4, Lemma 3.10], in a black-box manner. We refer readers to [3, Section 3.5] for a detailed proof. We say that a matching is an -perfect matching iff it matches all vertices of .

Lemma 8.

Let 𝒢=(,E) be a bipartite graph with the following properties:

  1. 1.

    k=|| and k||2k;

  2. 2.

    every vertex v has deg(v,)2k/3; and

  3. 3.

    for every set S with |S|k/2 we have that vSdeg(v,)|S|kk/4.

For any δ(0,1), the subgraph obtained by sampling each edge in 𝒢 independently with probability at least 20k(logk+log(1/δ)) contains an -perfect matching with probability at least 1δ.

As observed by [4], every almost-clique C such that G[C] contains at least 107εΔ anti-edges (they call them holey) can be colored using palette sparsification. Note that the extension exists with high probability regardless of the coloring outside C.

Lemma 9.

Let C be an almost-clique inducing at least 107εΔ anti-edges and let 𝐋(v) be a list of Oε(logn) random colors in [Δ1] for each vC. For any partial (Δ1)-coloring φ outside C (i.e., Cdomφ=), there exists, w.h.p., an extension ψ of the coloring to C such that ψ(v)𝐋(v) for every vC.

We stress that Lemma 9 assumes that C is uncolored. Since the proof is almost verbatim that of [4, Lemma 5.10] or [3], we skip details and refer interested readers to [4, Appendix B.3].

3.3 Concentration

We use the classic Chernoff Bound on sums of independent random variables:

Proposition 10 (Chernoff bounds, [24, Theorem 1.10.1 and 1.10.5]).

Let X1,,Xn be a family of independent random variables with values in [0,1], and let X=i[n]Xi. Suppose μ𝖫𝐄𝐱𝐩[X]μ𝖧, then

for all δ0, we have that 𝐏𝐫[X>(1+δ)μ𝖧] exp(δ22+δμ𝖧). (1)
for all δ(0,1), we have that 𝐏𝐫[X<(1δ)μ𝖫] exp(δ22μ𝖫). (2)

Let Y1,,Yn be boolean random variables (with values in {0,1}). We say they form a read-k family if they can be expressed as a function of independent random variables X1,,Xm such that each Xj influences at most k variables Yi. More formally, there are sets Pi[m] for each i[n] such that: (1) for each i[n], the variable Yi is a function of {Xj:jPi} and (2) |{i:jPi}|k for each j[m].

Proposition 11 (read-k bound, [32]).

Let Y1,,Yn be a read-k family of boolean variables, and let Y be their sum. Then, for any δ>0,

𝐏𝐫[|Y𝐄𝐱𝐩[Y]|>δn]2exp(2δ2nk).

4 The Streaming Algorithm

In this section, we describe the information we collect during the streaming pass. This amounts to the almost-clique decomposition (Proposition 7), the sparsified graph (Section 4.1) and some linear sketches to recover edges in the densest regions of the graph (Section 4.3). Overall, we use O~(n) space with high probability. In Section 4.2, we introduce structural definitions essential to our coloring algorithm.

Parameters.

Let us define some parameters:

α=150 a conveniently large constant,
ε=108 the parameter of the almost-clique decomposition in Proposition 7
ρ=clognε2 the sparsity threshold above which palette sparsification works,

where the constant c is large enough to have exp(Ω(ε2ρ))1/poly(n). We use the dependency on ε of ρ in Section 5.4 to ensure that all dense vertices have two same-colored neighbors. At a high-level, the parameter ρ is chosen so that we can color nodes with greater sparsity using palette sparsification, and those with less sparsity using information recovered from vectors with O(ρ) non-zero values. By choosing ρ=Θ(ε2logn), the algorithm uses O~(nρ)=O~(n) space while the probabilistic guarantees from slack generation and palette sparsification hold with high probability.

Assumption on 𝚫.

We assume Δ is known in advance and that Δ2αρ3 so that exp(Ω(Δ/ρ2)) and exp(Ω(Δ/ρ)) are at most 1/poly(n). When Δ is not known in advance, we run the algorithm logn times in parallel with Δ set to each power of two. After the streaming pass, we know Δ and we thus use the information from the streaming pass corresponding to the largest power of two smaller than Δ. When Δρ3, we can afford to store all edges of the graph and use that, by [50], a (Δ1)-coloring exists for ΔΔ0, for some large enough universal constant Δ0.

4.1 Palette Sampling

To avoid storing all edges, our algorithm uses palette sparsification to color some of the vertices. Similarly to [3, 4], we partition the list of colors 𝐋(v) sampled by v into multiple independent random lists. This is done to simplify the analysis by removing dependencies between the successive coloring steps. The exact sampling process for each of the 𝐋i(v) is therefore chosen to be convenient in the analysis of Section 5, where the index i corresponds to the step at which the coloring algorithm uses 𝐋i(v). For each vertex vV, let

  • 𝐋2(v): sample one color in [Δ1] uniformly at random,

  • 𝐋3(v): each color of [Δ1] is sampled w.p. ρ/Δ,

  • 𝐋4(v): each color of [Δ1] is sampled independently w.p. ρ/Δ,

  • 𝐋5(v): each color of [Δ1] is sampled independently w.p. ρ2/Δ,

  • 𝐋6(v): each color of [Δ1] is sampled independently w.p. ρ3/Δ.

and 𝐋(v) is the union of those lists. The random lists of colors are sampled before the beginning of the streaming pass.

During the streaming pass, we store all the edges of the sparsified graph.

Definition 12.

For a graph G=(V,E) and random lists 𝐋, the sparsified graph is the subgraph of G with vertex set V and all edges {u,v}E such that 𝐋(u)𝐋(v) is not empty.

The following lemma is direct by applications of the Chernoff Bound. We refer readers to [3, Lemma 4.1] for details. In particular, it shows that w.h.p. the sparsified graph requires only O~(n) space to store.

Lemma 13.

W.h.p., each 𝐋(v) contains at most O(ρ3) colors and the sparsified graph contains at most O(nρ6) edges.

4.2 Structural Decomposition

First, partition almost-cliques based on their size.

Definition 14.

We say the almost-clique C is large if |C|Δ+1, small if |C|Δ+1ρ and critical otherwise.

Our algorithm focuses almost entirely on coloring critical almost-cliques. The large will be easy to color because they always contain some anti-edges. This motivates the following definition.

Definition 15.

The core of C is a KC such that G[K] is a clique of maximal size. We say C is solitary iff the core of C has size at most |C|2.

If the largest clique of G[C] is not unique, we pick an arbitrary one as the core of C. When C is not solitary, the core is uniquely defined unless G[C] contains exactly one anti-edge. We call core-critical the vertices in the core of a critical almost-clique. When we have an almost-clique decomposition Vsparse,C1,C2,,Ck, we write Ki for the core of Ci for all i[k]. Since G does not contain a Δ-clique, a large almost-clique is solitary. What makes the solitary almost-cliques easy to color is the following fact.

Fact 15.

C is solitary iff G[C] contains a 2-anti-matching or a 3-independent set.

Solitary almost-cliques are such that any coloring of VC can be extended to C (see Figures 1(a) and 1(b)). The second criteria that determines how we color almost-cliques relates to how they are connected to the vertices outside (see Figure 1(c) for an example of a popular clique and Figures 2(b) and 2(c) for examples of friendly cliques, where s1, s2 and s are friends).

Definition 16.

Let C be a non-solitary almost-clique with core K, vN(C)K and k>0. We say v is a k-friend of C if it has at least Δ/k neighbors in K and at least one non-neighbor in K.

If C has two k-friend u and v with a shared neighbor in K and there exists uvK such that {u,u} and {v,v} are not edges, we say that C is k-popular.

If C has at least one k-friend but is not k-popular, we say that C is k-friendly.

4.3 Sparse Recovery

To color the densest regions of the graph, it is necessary to recover some of their structure. For a solitary C, the information contained in the solitary helper structure allows us to extend any coloring of VC to C.

Definition 17.

Let C be a solitary almost-clique. A solitary helper structure for C is one of the two following types of tuple:

  • (u1,v1,u2,v2,NG(u1),NG(u2)) such that {u1v1,u2v2} is a 2-anti-matching of G[C]; or

  • (u1,u2,v,NG(u1),NG(u2)) such that {u1,u2,v} is a 3-independent set in G[C].

We do not define other types of helper structure, for we can implicitly recover all the edges incident to the remaining dense vertices. Formally, we recover the following:

Lemma 18.

W.h.p., sparse-recovery uses O~(n) memory and after the streaming pass, we recover

  • the sets A(v) and E(v) for every vertex vVsparse with a(v)+e(v)4ρ, and

  • a solitary helper structure for every non-small solitary almost-clique.

We say that “we know NG(v)” if we can iterate over the neighbors uNG(v) in time O(deg(v)) and poly(logn) space after the streaming pass. So, we know NG(u1) and NG(u2) where u1 and u2 are vertices from the solitary helper structure described in Definition 17. Lemma 18 implies that, w.h.p., we also know NG(v) for every dense vertex such that a(v)+e(v)4ρ. Indeed, to iterate over the neighbors of vC, it suffices to iterate over E(v) and then CA(v), which is possible since C, E(v) and A(v) are stored in memory. We remark that we only store NG(v) implicitly, and hence the space usage remains O~(n).

Since the sparse recovery is almost verbatim that of [4, Section 4.4], we skip details here and refer readers to [30, Appendix A]. Observe how using Lemma 18 allows us to recover all relevant information for non-small and popular almost-cliques.

Corollary 19.

Let C with core K be critical and not solitary. From sparse-recovery, we recover K and N(v)K for all vertices vV.

4.4 Summary of the Information Collected by the Algorithm

Before moving on with the analysis of our coloring algorithm, we recapitulate all the information gathered during the streaming pass. With high probability, at the end of the stream, we have the following information available:

  • the random lists of colors 𝐋(v) as described in Section 4.1,

  • all the edges of the sparsified graph defined in Definition 12,

  • a vertex partition Vsparse,C1,,Ck as in Definition 5 (by Proposition 7),

  • the sets A(v) and E(v) for all vC with a(v)+e(v)4ρ (by Lemma 18),

  • a solitary-helper structure for every non-small solitary almost-clique (by Lemma 18),

  • the core of every critical and not solitary almost-clique (by Corollary 19),

  • the sets of critical k-popular and k-friendly almost-cliques for all k>0.

It is an easy observation that the set of k-popular critical almost-cliques can be inferred, such cliques are not solitary and all the edges incident to their core are known.

It should also be clear that the algorithm uses O~(n) space as the sparsified graph contains O(nlog6n) edges (by Lemma 13), and sparse recovery uses O~(n) space (by Lemma 18).

5 The Coloring Algorithm

In this section, we explain how to color the graph after the streaming pass. We have two means to ensure that we do not create monochromatic edges when we color vertices. Either they use a color from their random list 𝐋(v), and we can check for conflicts by looking at the edges of the sparsified graph (Definition 12). Or we color a vertex with a color that is not from its random list 𝐋(v), in which case we must be able to iterate over all its neighbors. To emphasize that aspect, we define the notion of serene coloring and maintain that our coloring is one.

Definition 20.

We say that a (possibly partial) coloring φ is serene if for all vertices v with φ(v), either φ(v)𝐋(v) or we know NG(v) after the streaming pass.

Detailed Overview.

Let us explain the steps of our coloring algorithm.

  • Step 1: Reed Transform. First, we remove all non-small solitary and non-small αρ2-popular almost-cliques from G and obtain the graph G. Then, we remove all 2ρ-friendly almost-cliques with a (Δ1)-clique, possibly adding some extra edges to the graph. The resulting graph is called H and has the same almost-clique decomposition (apart from those that got removed), but contains no large, critical solitary, or critical ρ-popular almost-clique, and the almost-cliques with a core of size Δ1 are not ρ-friendly.

  • Step 2: Slack Generation. Every vertex in H gets activated with constant probability and samples a uniform color in [Δ1]. If that color was sampled by no neighbor, we color the vertex with it.

  • Step 3: Coloring Critical Almost-Cliques of H. Recall that all edges incident to the core of critical almost-cliques are known. Hence, we color those vertices serenely without using palette sparsification. We argue that after slack generation, all critical almost-cliques have two vertices whose coloring can be delayed, because (1) they have two pairs of same-colored neighbors, or (2) they have one pair of same-colored neighbor and an uncolored neighbor whose coloring can be deferred even further. Because the coloring of some vertices must be delayed, we actually color critical almost-cliques in two steps.

  • Step 4: Coloring Sparse Vertices & Small Almost-Cliques. After Step 3, all critical almost-cliques have been colored. Observe that in Step 1, we removed all large almost-cliques from H, because they are solitary. So it remains to color the small almost-cliques and the sparse vertices. The sparse vertices are colored as in [3]. Each dense vertex from this set gets Ω(logn) pairs of same-colored neighbors from slack generation. As such, they can be colored using palette sparsification.

  • Step 5: Inverse Reed Transform. Steps 3 and 4 colored all vertices of H. From a proper coloring of H, we construct a coloring of G. Step 5 focuses on inverting the Reed Transform, during which we removed 2ρ-friendly almost-cliques with a (Δ1)-core from the graph, and possibly added some edge. By same-coloring two pairs of vertices manually, we can extend the coloring to all such almost-cliques. Note that, from then on, we may recolor vertices. In particular, the pairs of same-colored neighbors produced by slack generation are no longer guaranteed to exist.

  • Step 6: Coloring Non-Small Popular & Non-Small Solitary. We complete the coloring by handling the solitary and friendly almost-cliques removed during the phase 1 of the Reed Transform. Structurally, those almost-cliques have pairs of vertices that, if same-colored, allow us to extend the coloring greedily (recall Figure 1). Thanks to sparse recovery, we can identify those pairs and same-color them with colors from their random lists. Then, they can be colored using either a greedy algorithm or palette sparsification.

Table 1: For each type of almost-clique, the step of the algorithm at which it is colored. We stress that popular almost-cliques are not solitary and that the “Friendly with a (Δ1) Core” are neither solitary nor popular.
Solitary Popular Friendly with a (Δ1) Core Others
Small Step 4 Step 4
Large Step 6
Critical Step 6 Step 6 Step 5 Step 3

5.1 Step 1: Preprocessing and the Reed Transform

This first step removes from the graph all vertices that cannot be colored with slack generation. To ensure that the almost-cliques removed from the graph can be colored later, we may add some edges. The resulting graph is called H.

Concretely, we construct the graph H in two phases. First, a preprocessing phase computes the graph G by removing from G all almost-cliques that are either large, critical solitary, or critical αρ2-popular. This step is obvious from the information gathered during the streaming pass (Section 4.4) and needs not further discussion. Then, the Reed Transform computes the graph H by removing from G all 2ρ-friendly almost-cliques that contain a (Δ1)-clique and adding selected edges. We choose the edges to add to H in Algorithm 1.

Algorithm 1 Reed Transform.

Input: a graph G with no large, critical solitary, or critical αρ2-popular almost-cliques.

Output: a graph H such that: a) almost-cliques with |Ki|=Δ1 are not ρ-friendly and b) solitary and αρ2-popular almost-cliques are small.

For each 2ρ-friendly almost-cliques Ci with a (Δ1)-core (i.e., |Ki|=Δ1), do:

  1. i)

    Let si be a (2ρ)-friend of Ci; if CiKi, take si inside Ci.

  2. ii)

    Let Di=NG(si)Ci be the set of neighbors of si in Ci.

  3. iii)

    For each uDi, let f(u) denote the external neighbor of u that is not si, if any.

  4. iv)

    Sample each vertex into the set ART independently w.p. pRT=1/10.
    Let Si={uDiART:f(u)ART}.

  5. v)

    If all nodes of Di are of degree Δ and f(Si) is an independent set then

    1. (a)

      Sample each vertex of Si into a set Ti w.p. pds=1/ρ.

    2. (b)

      Let uivi be any pair of nodes in Ti such that xi=f(ui) and yi=f(vi) are distinct, and not members of the same critical almost-clique.

    3. (c)

      Add the pair {xi,yi} to the set Enew and add i into the set I.

Return the graph H where V(H)=V(G)iICi and E(H)=G[V(H)]Enew.

 Remark 21.

Some important observations about Algorithm 1 before we analyze it:

  • the random set ART is introduced in Algorithm 1 to break-symmetry and simplify the inversion of the Reed Transform; it ensures that an x- or y-vertex is not selected as a u- or v-vertex for some other almost-clique and vice versa;

  • the algorithm can be implemented after the streaming pass because the decomposition is known (Proposition 7) and the core as well as all edges incident to core vertices of non-small almost-cliques are known (Corollary 19).

Lemma 22.

Assume that Δαρ3 and εmax{8/ρ,42/ηρ}. Let G be a graph with an (η,ε,ε)-almost-clique decomposition Vsparse,C1,C2, , Ck that has no large, critical solitary, or critical αρ2-popular almost-cliques. W.h.p., the graph H produced by Algorithm 1 with the same vertex-partition restricted to V(H) is such that:

  1. (RT.1)

    it is an (η/2,ε,ε/2)-almost-clique decomposition;

  2. (RT.2)

    all solitary or ρ-popular almost-cliques in H are small;

  3. (RT.3)

    no almost-clique in H with a (Δ1)-core is ρ-friendly; and

  4. (RT.4)

    H has maximum degree Δ and does not contain a Δ-clique.

Proof.

We first verify that each uDi of degree Δ has exactly one external neighbor f(u) different from si. Indeed, u is in the (Δ1)-clique Ki, thus has Δ2 core neighbors. Since u is of degree Δ, it has one additional neighbor besides si, which must be external because si is the only vertex of CiKi (when CiKi).

Fact 22.

Every uDi with degree Δ has exactly one external neighbor f(u) other than si.

We need that a constant fraction of uDi belong to Si, i.e., are in ART while their external neighbor f(u) is not. We show that this is a high probability event.

Claim 23.

W.h.p. over the randomness of ART, we have |Si||Di|/24.

Proof of claim.

For uDi, let Xu be the indicator random variable of the event that uART and f(u)ART. We have 𝐄𝐱𝐩[Xu]=pRT(1pRT) and by the linearity of expectation their sum has expectation μ=pRT(1pRT)|Di||Di|/12. The activation of u affects only Xu and the activation of a vertex in f(Di) affects at most Δ/αρ2 other vertices in Di, for Ci would otherwise be αρ2-popular. So we may use the read-k bound (Proposition 11) with k=Δ/(αρ2) and δ=1/24 to show concentration as

𝐏𝐫[|uDiXuμ||Di|/24]exp(Ω(|Di|k))exp(Ω(ρ))1/poly(n),

where we use that |Di|Δ/(2ρ).

Henceforth, fix ART such that Claim 23 holds and let S=iISi.

In Item va, vertices are downsampled to ensure that the algorithm does not add an excessive number of edges to any single vertex.

Claim 24.

After Item va, over the randomness T=iTi, we have that

  1. i)

    For each Ci, we have that |Ti|Δ/(50ρ2) w.p. exp(Ω(Δ/ρ2)).

  2. ii)

    For each node uV(G), we have that |f1(u)T|2Δ/ρ w.p. exp(Ω(Δ/ρ)).

  3. iii)

    For each Ci, we have that |f(T)Ki|4Δ/ρ w.p. exp(Ω(Δ/ρ)).

Proof of claim.

Consider an almost-clique Ci. Observe that |Ti| is the sum of independent binary variables over the nodes in Si, each with probability pds. By linearity of expectation, 𝐄𝐱𝐩[|Ti|]=|Si|pds|Di|/241/ρΔ/(48ρ2), using Claim 23 and that |Di|Δ/(2ρ). By Chernoff, |Ti|Δ/(50ρ2), w.p. exp(Ω(Δ/ρ2)), establishing i).

Consider an arbitrary vertex u of the graph. Each neighbor vf1(u)S, independently joins T w.p. pds=1/ρ. Hence, by linearity of expectation, we have 𝐄𝐱𝐩[|f1(u)T|]Δ/ρ. By Chernoff, we get that |f1(u)T| is at most 2Δ/ρ w.p. exp(Ω(Δ/ρ)), establishing ii).

Each vertex of Ki has at most two external neighbors, so |E(Ki)|2(Δ+1). Each vertex of E(Ki) joins T independently with probability at most 1/ρ so 𝐄𝐱𝐩[|E(Ki)T|]2(Δ+1)/ρ. By Chernoff, at most 4Δ/ρ vertices of E(Ki) join T w.p. exp(Ω(Δ/ρ)). It implies iii) because each external neighbor in T maps to at most one vertex of Ki through f, i.e., |f(T)Ki||E(Ki)T|.

We deduce that the algorithm is well-defined.

Claim 25.

W.h.p., for each Ci, there is a pair ui,vi as required in Item vb of Algorithm 1.

Proof of claim.

Let ui be any node in Ti. If xi=f(ui) is in a critical almost-clique Cj, then f(Si) includes at most one other vertex zCjf(Si) because f(Si) is an independent set and Cj is not small, hence not solitary. Both xi and z (if it exists) have at most Δ/αρ2 neighbors in Di, for otherwise Ci would be αρ2-popular. From Claim 24-i), we have that |Ti|Δ/(50ρ2), w.h.p. Thus, if we exclude from consideration the nodes in Ti that map by f to either xi or z, we are left with |Ti|2Δ/(αρ2)Δ/(αρ2)ρ suitable candidates (using that α150). Any of these can be chosen as vi, thereby establishing the claim.

It is now easy to verify that RT.1 to RT.3 of Lemma 22 hold. It is immediate from Claim 24-ii) that at most 2Δ/ρ edges are added into H that are incident on any given vertex. So, a vertex vVsparse gains at most 2Δ/ρ new neighbors and each of its previous neighbors gains at most 2Δ/ρ incident edges (by Claim 24-ii). So the sparsity of v decreases by at most 4Δ/ρ, staying above ηε2Δ4Δ/ρ(η/2)ε2Δ. Similarly, we add few enough edges to ensure that Item 3 of Definition 5 continues to hold, up to a constant factor.

Using the properties of the almost-clique decomposition RT.1, we deduce that H contains no Δ-clique.

Claim 26.

The graph H has maximum degree Δ and contains no Δ-clique.

Proof of claim.

The maximum degree remains at most Δ, for each edge added incident to v, another edge incident to v is removed. So we focus on proving that H contains no Δ-clique.

A Δ-clique in H must be within an almost-clique, since its nodes must be dense, and it can’t involve nodes from different almost-cliques (by Definition 4 (2)). But the almost-clique decomposition did not change RT.1 and no edges were added inside critical almost-cliques (by Item vb), so the Δ-clique would have to have been contained in G, a contradiction. This concludes the proof of Lemma 22.

5.2 Step 2: Slack Generation

Formally, when we color some graph, the slack of a vertex is the difference between the number of colors it has available and its number of (uncolored) neighbors. For (Δ1)-coloring, vertices start with 1 slack and each time we same-color a pair of neighbors, we increase the slack by one. We use a well-known technique for generating pairs of same-colored neighbors: let vertices pick random colors. The algorithm is as follows; recall that we run it on the graph H obtained from Step 1.

Algorithm 2 slack-generation.

Input: a graph H

Output: a proper partial (Δ1)-coloring

  1. i)

    vertices join ASG w.p. pSG=1/10.

  2. ii)

    vertices222For consistency, set χ(v)= for every vASG.of ASG sample χ(v) uniformly at random in [Δ1].

  3. iii)

    if χ(v)χ(N(v)), then set φ(v) to χ(v) and otherwise let v uncolored, i.e., φ(v)=.

To implement Algorithm 2 after the streaming pass, each vertex uses the one color from 𝐋2 as the random color χ(v). It therefore suffices to look at the edges of the sparsified graph to know if a vertex retains its color.

The activation probability ensures that not too many vertices get colored by slack generation.

Fact 26.

After Algorithm 2, w.h.p., every Ci contains at most Δ/5 colored vertices.

We use three flavors of slack generations. First, we have the well-known result (see, e.g., [47, 25, 33]) that ζ-sparse vertices (cf. Definition 3) receive Ω(ζ) slack w.e.h.p. in ζ. This explains why sparse vertices and small almost-cliques can be colored easily.

Proposition 27 ([33, Lemma 6.1]).

There exists a universal constant γ(0,1) for which the following holds. Suppose H is a graph of maximal degree Δ1. If φ is the coloring produced by Algorithm 2, then a ζ-sparse vertex v with ζ1 has that

|Lφ(v)|degφ(v,H)+γζ

with probability at least 1exp(Ω(ζ)).

In very dense critical almost-cliques, the sparsity of individual vertices is too small for Proposition 27 to provide vertices with extra colors (by same-coloring neighbors) with high enough probability. However, when the almost-clique has many different external neighbors, a very similar argument shows that many vertices of the almost-clique get one external neighbor colored the same as a vertex inside the almost-clique. For simplicity, we state the result for a clique K, rather than an almost-clique.

Proposition 28 (Rephrasing Lemma 5.4 in [26]).

Let K be a clique and M a matching between K and N(K)K. After Algorithm 2, w.e.h.p. in |M|, at least Ω(|M|) vertices in V(M)K have two non-adjacent neighbors colored the same, i.e., one unit of slack.

We conclude this anthology of results about slack generation with one from Reed’s original paper on (Δ1)-coloring. It serves the same purpose as Proposition 28 except that it counts vertices that receive two units of slack. Consequently, instead of asking for a matching between C and N(C)C, we require a one-to-two matching. Formally, we define a triple for C as a tuple (u,v,w) such that vC, uwE(v). We say that a set of triples is disjoint if no vertex belongs to more than one.

Proposition 29 ([50, Section 4] or [47, Chapter 11.3]).

For every ε,δ(0,1/10), there is a universal constant γ=γ(ε,δ,pSG) for which the following holds. Let C be an (ε,δ)-almost-clique and {(ui,vi,wi)}i=1t be a set of disjoint triples for C. Let Z be the random variable counting number of triples for which vi is uncolored, and ui and wi are colored the same as some vertex in C by slack generation. Then,

𝐏𝐫[Zγt]exp(Θ(t2Δ))

Note that the concentration from Proposition 29 is effective only when t is asymptotically larger than Δ. This is a consequence of the fact that, contrary to Propositions 27 and 28, counting colors does not suffice to count the number of vertices with two-units of slack.

5.3 Step 3: Coloring Critical Cliques in 𝑯

In this step, we prove that all critical almost-cliques of H can be colored after slack generation. Since the formal argument is involved, let us provide first a bird’s-eye view of the proof. It is in three parts:

  • Firstly, we argue that if a subgraph of H induced by a set of critical almost-cliques is such that each almost-clique has two adjacent vertices with respectively one and two units of slack, we can serenely color that subgraph greedily.

  • Then we analyze how the critical vertices of H get slack from slack generation (Algorithm 2). The analysis is three-fold: when many low-degree vertices exist, or when many vertices have external neighbors with few edges to the almost-clique, or finally when most of the vertices have degree Δ and external neighbors with many edges to the almost-clique. In the first two cases, we show that w.h.p. at least two vertices get slack. For the last case, we argue that w.h.p. the almost-clique has many vertices with one pair of same-colored neighbors and one uncolored external neighbor with 2ρ edges to the almost-clique.

  • Finally, we color the critical vertices of H in two stages. That is to ensure that, in the last type of critical almost-cliques, the uncolored external neighbors with 2ρ neighbors in the almost-clique C remain inactive while we color C, thereby providing one more unit of slack. The trick is that such external neighbors, if dense, must have 2ρ external neighbors. However, critical almost-cliques of H, since they are not solitary, contain at most one such vertex.

In the end, we get the following result. For the proof, we refer the readers to the full version [30, Section 5.3].

Lemma 30.

Let H be the graph obtained from Step 1 and φ be the coloring produced by Algorithm 2 in Step 2. With high probability over the randomness of 𝐋2(V) and 𝐋3(V), there exists a serene extension of φ to all critical almost-cliques of H.

5.4 Step 4: Coloring Sparse Vertices & Small Almost-Cliques

We color the non-critical vertices of H in the following order: first, the sparse vertices; second, the small almost-cliques with fewer than 107εΔ anti-edges; last, the small almost-cliques with at least 107εΔ anti-edges. The treatment of sparse vertices and almost-cliques with many missing edges is the same as in [3]. For the small almost-clique with few missing edges, we observe that their nodes must be Ω(ρ)-sparse, and hence they can be colored by palette sparsification. We refer readers to [30, Section 5.4] for more details.

5.5 Step 5: Inverting the Reed Transform

In this step, we take the coloring of H computed thus far and inverse the Reed Transform from Algorithm 1 to deduce a coloring of G, i.e., of the all vertices except those in non-small solitary or non-small αρ2-popular almost-cliques. We emphasize that we may change colors given by slack generation (Algorithm 2), thus guarantees of Propositions 27, 28, and 29 do not apply henceforth.

The algorithm same-color two pairs of vertices in each almost-clique removed by the Reed Transform. This guarantees that the remaining vertices can be serenely colored (recall that we know the neighborhood of core-critical vertices). We argue that the pairs can be same-colored greedily, in fact they always have Ω(Δ/ρ) colors available. When certain pairs of vertices to same-color overlap, then we same-color entire independent sets at once.

Lemma 31.

Let H be the graph from Algorithm 1. Suppose φ is a total proper serene coloring of H. With high probability, we compute a serene coloring of G, i.e., of the graph G where all non-small solitary and non-small αρ2-popular almost-cliques are removed.

Proof.

The goal is to same-color all pairs of vertices xivi and sizi, where zi is an anti-neighbor of si in Ki. Then the coloring can be serenely extended to all 2ρ-friendly critical almost-cliques with a (Δ1)-clique, by [30, Claim 5.14]. If a vertex in Di does not have degree Δ, we do not have any vertices xi and yi; same-coloring the sizi pair suffices. If f(Si) is not an independent set, we pick any pair uiviSi such that xi=f(ui) and yi=f(vi) are adjacent in G.

Denote by 𝒮, 𝒳, 𝒴, 𝒰 and 𝒱 the set vertices respectively containing all si, xi, yi, ui and vi. Recall that Algorithm 1 chooses 𝒳 and 𝒱 disjoint (because 𝒱ART while 𝒳ART=). For w, call S(w) the set of iI for which w=si. First, let us explain how we select the zi vertices. The proof can be found in the full version of this paper, see [30, Section 5.5].

Claim 32.

If |S(w)|1, then there exist vertices ziKiN(w) for all iS(w) and such that

(w):={w}{zi:w=si}{vi:w=xi or zj=xi for some jS(w)}

is an independent set.

Call zi the vertex given by Claim 32 in Ci and call 𝒵 the set of all zi vertices. Note that 𝒳 can overlap with 𝒮 and 𝒵. The nodes in 𝒵,𝒱 are core-critical but not those in 𝒮. We same-color the pairs in the following order:

  1. 1.

    uncolor all vertices of 𝒮,

  2. 2.

    color all vi with φ(xi) where xi is colored,

  3. 3.

    color all pairs sizi and xivi where xi𝒮𝒵, and finally

  4. 4.

    color all remaining pairs xivi, i.e., where xi𝒮𝒵 and xiCj with jI.

Step (2) cannot create a color conflict because vi has at most one colored external neighbor yi (after uncoloring S) and H (from the Reed Transform) contained an edge between xi and yi.

Let us explain how we perform Step (3). We form a virtual graph Q1 by contracting sets of vertices in G. More precisely, for a set of disjoint sets of vertices 2V(G), denote by G/ the graph with vertex set and an edge between two vertices if the corresponding sets contain adjacent vertices in G. Let 1 be the sets of (w) for all wS and Q1=G/1. For a vertex of Q1 (i.e., 1), let L() be the intersection of the lists of available colors in G overall the vertices in , i.e., L()=wLφ(w).

Since each (w) is an independent set, a coloring of Q1 using lists L(I) induces a proper extension of the coloring to G where vertices from the same (w)1 are colored the same. Since each si has at least Δ/ρ uncolored neighbors, while each element (si) other than si gives rises to O(1) edges, we do obtain a (deg+Ω(Δ/ρ))-list-coloring instance. The proof can be found in the full version of this paper, see [30, Section 5.5].

Claim 33.

For all 1, we have that |L()|deg(,Q1)+Δ/4ρ.

To implement this in streaming, recall that we know all edges incident to core-critical vertices, which include 𝒵 and 𝒱. In particular, we can compute the sets (w) described in Claim 32, which thereby implies that we know Q1. We color vertices of Q1 greedily. When it comes to =(w) with wS, we claim that we can color with some color from 𝐋5(w) with high probability. Indeed, by Claim 33, for any partial coloring of Q1, the vertex still has Ω(Δ/ρ) available colors, thus

𝐏𝐫[𝐋5(w)L()=](1ρ2Δ)Δ4ρexp(Ω(ρ))1/poly(n).

In particular, when we color vertices of with that color, the coloring remains serene because (1) w is the only non-core-critical vertex of this set, and it gets a color from its random list, and (2) we know the neighborhood of all other vertices from sparse recovery.

The pairs that remain to be same-colored are of the form xivi such that xi𝒮𝒵 and xiCj for some jI. As such, it has at least ΔO(ρ) available colors and at most two external neighbors. It can be that xi=xj=x, in which case we must same color the three vertices x, vi and vj. Note that vi and vj cannot be adjacent as 𝒱 is an independent set. Since the uncolored vertices in 𝒳 and 𝒱 belong to (Δ1)-cliques of which at most two vertices are colored, the vertices to same-color share at least ΔO(1) available colors.

Claim 24-iii) implies that |𝒳Ci|4Δ/ρ for all iI because 𝒳f(T). Hence, the degree of virtual vertices is at most 12Δ/ρ, and we can use (deg+1)-list-coloring. Recall that all the xi that remains are core-critical, hence we know their neighborhood and can serenely color them with any color.

5.6 Step 6: Post-processing

Finally, we assume that φ is a serene coloring of G, i.e., of all the vertices except for the non-small solitary and non-small αρ2-popular almost-cliques. We iterate over such almost-cliques and apply either [30, Lemma 5.22] or [30, Lemma 5.23]. The full statement and proofs can be found in the full version of this paper, see [30, Section 5.6]. They start by same coloring some pairs of vertices (recall Figure 1) using colors from their random lists, w.h.p., and serenely extend the coloring to the rest of the almost-clique.

6 Lower bound for (𝚫𝒌)-Coloring in Semi-Streaming

Recall that by a result of Molloy and Reed [48], graphs of maximum degree Δ (larger than some sufficiently large constant) that do not have certain forbidden local subgraphs can be (Δk)-colored for all k such that (k+1)(k+2)Δ. Very recently, [29] proved that such a (Δk)-coloring can be computed in poly(loglogn) rounds of Local for all such k but the largest one (for which the problem requires Ω(n/Δ) rounds).

In this section, we show that such a result cannot be obtained in semi-streaming. See 2

The proof is via a reduction to the one-way communication complexity of the 𝖨𝖭𝖣𝖤𝖷m problem. In this problem, Alice is given a bit-string x=(x1,x2,,xm) and Bob is given an index i[m]. Alice sends one message to Bob and so that Bob correctly outputs xi with probability at least 2/3. It is well-known that Alice needs to send Ω(m) bits to Bob (see [42, Theorem 3.7] or [49, Chapter 6] for a more recent treatment).

We construct a gadget with Θ(Δ) vertices such that Bob can infer the value of xi from a proper c-coloring of that graph. The graph induced by C is a (c3)-clique, and the graph induced by AB will be the complement of that induced by A¯B¯. We select m pairs e1,e2,,em between A and B, but Alice includes the edge ej iff xj=1 (and the corresponding edge between A¯ and B¯ is added iff xj=0). Then Bob connects the endpoints of ei in AB, and he connects all the vertices of C and the endpoints of ei to the endpoints of ei in A¯B¯. See Figure 3. The key observation is that the graph induced by C plus the endpoints of ei in AB and A¯B¯ form a (c+1)-clique minus one of the edge in AB or A¯B¯, depending on whether xi=0 or xi=1. Since any c-coloring of this graph must same-color the endpoints of this missing edge, Bob recovers the value of xi from a proper c-coloring of this gadget. It follows that c-coloring this gadget requires Ω(Δ(Δc+1)) bits. To obtain Theorem 2, we create g=mΔ(Δc+1) parallel gadgets, each encoding a different contiguous block of Δ(Δc+1) bits from x. A formal proof of Theorem 2 can be found in [30, Section 6].

Figure 3: One gadget from the lower bound with Δ=7 and c=6. In black are the edges of C, known to both players, and in gray the pairs used to encode the bits of x. The edges known/added by Alice are represented in red, and the edges known/added by Bob are represented in blue. Here x=10101011011000 as read on the right with the edges between A and B, and i=1 since the edges of Bob are incident to the first gray pair.

References

  • [1] Noga Alon and Sepehr Assadi. Palette sparsification beyond (Δ+1) vertex coloring. In Jaroslaw Byrka and Raghu Meka, editors, Approximation, Randomization, and Combinatorial Optimization. Algorithms and Techniques, APPROX/RANDOM 2020, August 17-19, 2020, Virtual Conference, volume 176 of LIPIcs, pages 6:1–6:22. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2020. doi:10.4230/LIPIcs.APPROX/RANDOM.2020.6.
  • [2] Sepehr Assadi, Andrew Chen, and Glenn Sun. Deterministic graph coloring in the streaming model. In Stefano Leonardi and Anupam Gupta, editors, STOC ’22: 54th Annual ACM SIGACT Symposium on Theory of Computing, Rome, Italy, June 20 - 24, 2022, pages 261–274. ACM, 2022. doi:10.1145/3519935.3520016.
  • [3] Sepehr Assadi, Yu Chen, and Sanjeev Khanna. Sublinear algorithms for (Δ + 1) vertex coloring. In Timothy M. Chan, editor, Proceedings of the Thirtieth Annual ACM-SIAM Symposium on Discrete Algorithms, SODA 2019, San Diego, California, USA, January 6-9, 2019, pages 767–786. SIAM, 2019. doi:10.1137/1.9781611975482.48.
  • [4] Sepehr Assadi, Pankaj Kumar, and Parth Mittal. Brooks’ theorem in graph streams: A single-pass semi-streaming algorithm for Δ-coloring. TheoretiCS, 2, 2023. doi:10.46298/theoretics.23.9.
  • [5] Sepehr Assadi, Janani Sundaresan, and Helia Yazdanyar. Coloring graphs with few colors in the streaming model. In Kasper Green Larsen and Barna Saha, editors, Proceedings of the 2026 Annual ACM-SIAM Symposium on Discrete Algorithms, SODA 2026, pages 6065–6132. SIAM, 2026. doi:10.1137/1.9781611978971.217.
  • [6] Sepehr Assadi and Chen Wang. Sublinear time and space algorithms for correlation clustering via sparse-dense decompositions. In Mark Braverman, editor, 13th Innovations in Theoretical Computer Science Conference, ITCS 2022, January 31 - February 3, 2022, Berkeley, CA, USA, volume 215 of LIPIcs, pages 10:1–10:20. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2022. doi:10.4230/LIPIcs.ITCS.2022.10.
  • [7] Sepehr Assadi and Helia Yazdanyar. Simple sublinear algorithms for (Δ + 1) vertex coloring via asymmetric palette sparsification. In Ioana Oriana Bercea and Rasmus Pagh, editors, 2025 Symposium on Simplicity in Algorithms, SOSA 2025, New Orleans, LA, USA, January 13-15, 2025, pages 1–8. SIAM, 2025. doi:10.1137/1.9781611978315.1.
  • [8] Bradley Baetz and David R Wood. Brooks’ vertex-colouring theorem in linear time, 2014. doi:10.48550/arXiv.1401.8023.
  • [9] Étienne Bamas and Louis Esperet. Distributed coloring of graphs with an optimal number of colors. In Rolf Niedermeier and Christophe Paul, editors, 36th International Symposium on Theoretical Aspects of Computer Science, STACS 2019, March 13-16, 2019, Berlin, Germany, volume 126 of LIPIcs, pages 10:1–10:15. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2019. doi:10.4230/LIPIcs.STACS.2019.10.
  • [10] Leonid Barenboim, Michael Elkin, Seth Pettie, and Johannes Schneider. The locality of distributed symmetry breaking. J. ACM, 63(3):20:1–20:45, 2016. doi:10.1145/2903137.
  • [11] Soheil Behnezhad, Rajmohan Rajaraman, and Omer Wasim. Fully dynamic (Δ + 1)-coloring against adaptive adversaries. In Yossi Azar and Debmalya Panigrahi, editors, Proceedings of the 2025 Annual ACM-SIAM Symposium on Discrete Algorithms, SODA 2025, New Orleans, LA, USA, January 12-15, 2025, pages 4983–5026. SIAM, 2025. doi:10.1137/1.9781611978322.169.
  • [12] Anup Bhattacharya, Arijit Bishnu, Gopinath Mishra, and Anannya Upasana. Even the easiest(?) graph coloring problem is not easy in streaming! In James R. Lee, editor, 12th Innovations in Theoretical Computer Science Conference, ITCS 2021, January 6-8, 2021, Virtual Conference, volume 185 of LIPIcs, pages 15:1–15:19. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2021. doi:10.4230/LIPIcs.ITCS.2021.15.
  • [13] Sayan Bhattacharya, Deeparnab Chakrabarty, Monika Henzinger, and Danupon Nanongkai. Dynamic algorithms for graph coloring. In Artur Czumaj, editor, Proceedings of the Twenty-Ninth Annual ACM-SIAM Symposium on Discrete Algorithms, SODA 2018, New Orleans, LA, USA, January 7-10, 2018, pages 1–20. SIAM, 2018. doi:10.1137/1.9781611975031.1.
  • [14] Sayan Bhattacharya, Fabrizio Grandoni, Janardhan Kulkarni, Quanquan C. Liu, and Shay Solomon. Fully dynamic (Δ +1)-coloring in O(1) update time. ACM Trans. Algorithms, 18(2):10:1–10:25, 2022. doi:10.1145/3494539.
  • [15] Oleg V Borodin and Alexandr V Kostochka. On an upper bound of a graph’s chromatic number, depending on the graph’s degree and density. Journal of Combinatorial Theory, Series B, 23(2-3):247–250, 1977. doi:10.1016/0095-8956(77)90037-5.
  • [16] Rowland Leonard Brooks. On colouring the nodes of a network. Mathematical Proceedings of the Cambridge Philosophical Society, 37(2):194–197, 1941. doi:10.1017/S030500410002168X.
  • [17] Amit Chakrabarti, Prantar Ghosh, and Manuel Stoeckl. Adversarially robust coloring for graph streams. In Mark Braverman, editor, 13th Innovations in Theoretical Computer Science Conference, ITCS 2022, January 31 - February 3, 2022, Berkeley, CA, USA, volume 215 of LIPIcs, pages 37:1–37:23. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2022. doi:10.4230/LIPIcs.ITCS.2022.37.
  • [18] Yi-Jun Chang, Manuela Fischer, Mohsen Ghaffari, Jara Uitto, and Yufan Zheng. The complexity of (Δ+1) coloring in congested clique, massively parallel computation, and centralized local computation. In Peter Robinson and Faith Ellen, editors, Proceedings of the 2019 ACM Symposium on Principles of Distributed Computing, PODC 2019, Toronto, ON, Canada, July 29 - August 2, 2019, pages 471–480. ACM, 2019. doi:10.1145/3293611.3331607.
  • [19] Yi-Jun Chang, Wenzheng Li, and Seth Pettie. Distributed (Δ+1)-coloring via ultrafast graph shattering. SIAM J. Comput., 49(3):497–539, 2020. doi:10.1137/19M1249527.
  • [20] Yi-Jun Chang, Gopinath Mishra, Hung Thuan Nguyen, and Farrel D. Salim. Round and communication efficient graph coloring. In Alkida Balliu and Fabian Kuhn, editors, Proceedings of the ACM Symposium on Principles of Distributed Computing, PODC 2025, Hotel Las Brisas Huatulco, Huatulco, Mexico, June 16-20, 2025, pages 360–371. ACM, 2025. doi:10.1145/3732772.3733508.
  • [21] Daniel W. Cranston and Landon Rabern. Coloring claw-free graphs with delta-1 colors. SIAM J. Discret. Math., 27(1):534–549, 2013. doi:10.1137/12088015X.
  • [22] Artur Czumaj, Peter Davies, and Merav Parter. Simple, deterministic, constant-round coloring in congested clique and MPC. SIAM J. Comput., 50(5):1603–1626, 2021. doi:10.1137/20M1366502.
  • [23] Abhishek Dhawan. Palette sparsification for graphs with sparse neighborhoods. arXiv preprint arXiv:2408.08256, 2024. doi:10.48550/arXiv.2408.08256.
  • [24] Benjamin Doerr. Probabilistic tools for the analysis of randomized optimization heuristics. In Benjamin Doerr and Frank Neumann, editors, Theory of Evolutionary Computation - Recent Developments in Discrete Optimization, Natural Computing Series, pages 1–87. Springer, 2020. doi:10.1007/978-3-030-29414-4_1.
  • [25] Michael Elkin, Seth Pettie, and Hsin-Hao Su. (2Δ - l)-edge-coloring is much easier than maximal matching in the distributed setting. In Piotr Indyk, editor, Proceedings of the Twenty-Sixth Annual ACM-SIAM Symposium on Discrete Algorithms, SODA 2015, San Diego, CA, USA, January 4-6, 2015, pages 355–370. SIAM, 2015. doi:10.1137/1.9781611973730.26.
  • [26] Manuela Fischer, Magnús M. Halldórsson, and Yannic Maus. Fast distributed brooks’ theorem. In Nikhil Bansal and Viswanath Nagarajan, editors, Proceedings of the 2023 ACM-SIAM Symposium on Discrete Algorithms, SODA 2023, Florence, Italy, January 22-25, 2023, pages 2567–2588. SIAM, 2023. doi:10.1137/1.9781611977554.ch98.
  • [27] Maxime Flin, Mohsen Ghaffari, Magnús M. Halldórsson, Fabian Kuhn, and Alexandre Nolin. A distributed palette sparsification theorem. In Proceedings of the 2024 ACM-SIAM Symposium on Discrete Algorithms, SODA 2024, Alexandria, VA, USA, January 7-10, 2024. SIAM, 2024. doi:10.1137/1.9781611977912.142.
  • [28] Maxime Flin and Magnús M. Halldórsson. Faster dynamic (Δ+1)-coloring against adaptive adversaries. In 52nd International Colloquium on Automata, Languages, and Programming, ICALP 2025, Aarhus, Denmark, July 8-11, 2025, volume 334 of LIPIcs, pages 79:1–79:21. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2025. doi:10.4230/LIPIcs.ICALP.2025.79.
  • [29] Maxime Flin, Magnús M. Halldórsson, Manuel Jakob, and Yannic Maus. Sublogarithmic distributed vertex coloring with optimal number of colors, 2026. To appear at STOC 2026. doi:10.48550/arXiv.2603.28637.
  • [30] Maxime Flin and Magnús M. Halldórsson. Beyond brooks: (Δ-1)-coloring in semi-streaming, 2026. arXiv:2605.07774.
  • [31] Maxime Flin and Parth Mittal. (Δ + 1) vertex coloring in o(n) communication. Distributed Comput., 38(1):19–29, 2025. doi:10.1007/s00446-024-00475-3.
  • [32] Dmitry Gavinsky, Shachar Lovett, Michael E. Saks, and Srikanth Srinivasan. A tail bound for read-k families of functions. Random Struct. Algorithms, 47(1):99–108, 2015. doi:10.1002/rsa.20532.
  • [33] Magnús M. Halldórsson, Fabian Kuhn, Yannic Maus, and Tigran Tonoyan. Efficient randomized distributed coloring in CONGEST. In Samir Khuller and Virginia Vassilevska Williams, editors, STOC ’21: 53rd Annual ACM SIGACT Symposium on Theory of Computing, Virtual Event, Italy, June 21-25, 2021, pages 1180–1193. ACM, 2021. doi:10.1145/3406325.3451089.
  • [34] Magnús M. Halldórsson, Fabian Kuhn, Alexandre Nolin, and Tigran Tonoyan. Near-optimal distributed degree+1 coloring. In Stefano Leonardi and Anupam Gupta, editors, STOC ’22: 54th Annual ACM SIGACT Symposium on Theory of Computing, Rome, Italy, June 20 - 24, 2022, pages 450–463. ACM, 2022. doi:10.1145/3519935.3520023.
  • [35] Magnús M. Halldórsson, Alexandre Nolin, and Tigran Tonoyan. Ultrafast distributed coloring of high degree graphs, 2021. doi:10.48550/arXiv.2105.04700.
  • [36] David G. Harris, Johannes Schneider, and Hsin-Hao Su. Distributed (Δ +1)-coloring in sublogarithmic rounds. J. ACM, 65(4):19:1–19:21, 2018. doi:10.1145/3178120.
  • [37] Monika Henzinger and Pan Peng. Constant-time dynamic (Δ +1)-coloring. ACM Trans. Algorithms, 18(2):16:1–16:21, 2022. doi:10.1145/3501403.
  • [38] Juho Hirvonen and Jukka Suomela. Distributed Algorithms. Aalto University, 2020. URL: https://jukkasuomela.fi/da2020/.
  • [39] Jeff Kahn and Charles Kenney. Asymptotics for palette sparsification. arXiv preprint arXiv:2306.00171, 2023. doi:10.48550/arXiv.2306.00171.
  • [40] Jeff Kahn and Charles Kenney. Asymptotics for palette sparsification from variable lists. arXiv preprint arXiv:2407.07928, 2024. doi:10.48550/arXiv.2407.07928.
  • [41] Sanjeev Khanna, Nathan Linial, and Shmuel Safra. On the hardness of approximating the chromatic number. Combinatorica, 20(3):393–415, 2000. doi:10.1007/s004930070013.
  • [42] Ilan Kremer, Noam Nisan, and Dana Ron. On randomized one-round communication complexity. Comput. Complex., 8(1):21–49, 1999. doi:10.1007/s000370050018.
  • [43] Nathan Linial. Locality in distributed graph algorithms. SIAM J. Comput., 21(1):193–201, 1992. doi:10.1137/0221015.
  • [44] László Lovász. Three short proofs in graph theory. Journal of Combinatorial Theory, Series B, 19(3):269–271, 1975. doi:10.1016/0095-8956(75)90089-1.
  • [45] Carsten Lund and Mihalis Yannakakis. On the hardness of approximating minimization problems. J. Assoc. Comput. Mach., 41(5):960–981, 1994. doi:10.1145/185675.306789.
  • [46] L. S. Melnikov and V. G. Vizing. New proof of brooks’ theorem. Journal of Combinatorial Theory, 7(4):289–290, 1969. doi:10.1016/S0021-9800(69)80057-8.
  • [47] Michael Molloy and Bruce Reed. Graph colouring and the probabilistic method, volume 23 of Algorithms and Combinatorics. Springer, 2002. doi:10.1007/978-3-642-04016-0.
  • [48] Michael Molloy and Bruce A. Reed. Colouring graphs when the number of colours is almost the maximum degree. J. Comb. Theory B, 109:134–195, 2014. doi:10.1016/j.jctb.2014.06.004.
  • [49] Anup Rao and Amir Yehudayoff. Communication Complexity: and Applications. Cambridge University Press, 2020. doi:10.1017/9781108671644.
  • [50] Bruce Reed. A strengthening of brooks’ theorem. Journal of Combinatorial Theory, Series B, 76(2):136–149, 1999. doi:10.1006/jctb.1998.1891.
  • [51] Bruce A. Reed. ω, Δ, and χ. J. Graph Theory, 27(4):177–212, 1998. doi:10.1002/(SICI)1097-0118(199804)27:4\%3C177::AID-JGT1\%3E3.0.CO;2-K.
  • [52] Gopalan Sajith and Sanjeev Saxena. On brooks’ theorem, 2022. doi:10.48550/arXiv.2208.02186.
  • [53] Michael Stiebitz and Bjarne Toft. Brooks’ theorem. In Lowell W. Beineke and Robin J. Wilson, editors, Topics in Chromatic Graph Theory, pages 36–55. Cambridge University Press, 2015. doi:10.1017/CBO9781139519793.005.