Abstract 1 Introduction 2 Preliminaries 3 An 𝑶(𝚫𝟐𝐥𝐨𝐠𝒏) Update Time Algorithm 4 A 𝚫𝒐(𝟏)𝐥𝐨𝐠𝒏 Update Time Algorithm References

Fully Dynamic Algorithms for Coloring Triangle-Free Graphs

Sepehr Assadi ORCID School of Computer Science, University of Waterloo, Canada    Helia Yazdanyar ORCID School of Computer Science, University of Waterloo, Canada
Abstract

A celebrated result of Johansson in graph theory states that every triangle-free graph of maximum degree Δ can be properly colored with O(Δ/lnΔ) colors, improving upon the “greedy bound” of Δ+1 coloring in general graphs. This coloring can also be found in polynomial time.

We present an algorithm for maintaining an O(Δ/lnΔ) coloring of a dynamically changing triangle-free graph that undergoes edge insertions and deletions. The algorithm is randomized and on n-vertex graphs has amortized update time of Δo(1)logn per update with high probability, even against an adaptive adversary.

A key to the analysis of our algorithm is an application of the entropy compression method that to our knowledge is new in the context of dynamic algorithms. This technique appears general and is likely to find other applications in dynamic problems and thus can be of its own independent interest.

Keywords and phrases:
Dynamic graphs - Graph coloring - Dynamic entropy compression
Category:
Track A: Algorithms, Complexity and Games
Funding:
Sepehr Assadi: Supported in part by an NSERC Discovery Grant and a Faculty of Math Research Chair grant.
Helia Yazdanyar: Supported in part by a Cheriton Scholarship from School of Computer Science, a Cotton Family Women in Mathematics Graduate Scholarship, and SA’s NSERC Discovery Grant.
Copyright and License:
[Uncaptioned image] © Sepehr Assadi and Helia Yazdanyar; licensed under Creative Commons License CC-BY 4.0
2012 ACM Subject Classification:
Theory of computation Dynamic graph algorithms
Related Version:
Full Version: https://arxiv.org/abs/2604.20648
Acknowledgements:
We are thankful to Bernhard Haupler and Thatchaphol Saranurak for illuminating discussions.
Editors:
Sayan Bhattacharya, Danupon Nanongkai, Michael Benedikt, and Gabriele Puppis

1 Introduction

Graph coloring is one of the most studied topics in graph theory with a wide range of applications in computer science. Let G=(V,E) be an n-vertex undirected graph with maximum degree Δ. For any integer c1, a (proper) c-coloring of G is an assignment of colors from {1,,c} to the vertices of the graph so that no edge is monochromatic. It is easy to see that every graph admits a (Δ+1) coloring which can be found via a simple greedy algorithm in linear time: color the vertices one by one in an arbitrary order and for each one, choose a color not assigned to any of its already colored neighbors, which always exist by the pigeonhole principle.

Nevertheless, one can almost always find a coloring with fewer colors. Brooks’ theorem [15] states that the only (connected) graphs that do need Δ+1 colors are (Δ+1)-cliques (and odd cycles only when Δ=2); all other graphs can be colored with Δ colors. As already pointed out by Vizing in [41], this result is just the tip of the iceberg and there is a vast body of work in graph theory with the general theme of coloring graphs with “fewer” than Δ colors based on how “far” they get from being a clique; see, e.g., [28, 27, 36, 38, 3, 30, 31, 4, 29, 14]. A central result here is a seminal theorem of Johansson [27] that proves that triangle-free graphs are O(Δ/lnΔ) colorable. This bound is asymptotically optimal and has been since sharpened to (1+o(1))Δ/lnΔ colors by Molloy [29] (see also [25, 35, 7, 1]).

We study coloring of triangle-free graphs in the dynamic setting, wherein the graph undergoes edge insertions and deletions and we want to maintain a proper coloring after every update. There has been extensive interest in dynamic algorithms for graph coloring problems and specifically (Δ+1) coloring [10, 12, 24, 5, 20]. The state of the art for (Δ+1) coloring are randomized algorithms with amortized expected update time of O(1) against oblivious adversaries [12, 24] and O~(n2/3) against adaptive adversaries [20]111An oblivious adversary fixes the set of updates to the graph before presenting them to the algorithm, whereas an adaptive adversary may present each update to the graph based on the output of the algorithm on previous updates; see [6, 8, 5] for more discussion on the different types of adversary.. Other variants of dynamic graph coloring have also been studied including arboricity-dependent coloring [16, 18] and edge coloring [19, 17, 11]. However, to our knowledge, there have been no prior work on dynamic algorithms for coloring triangle-free graphs. This is in contrast to related models such as static [25, 29, 1], parallel [21], distributed [35], streaming [2] and sublinear time [2] algorithms. We address this gap in our paper.

Before getting to our results, let us mention what existing static algorithms can imply for the problem in dynamic graphs. Previously, [25, 29] provided O~(nΔ2) time algorithms222Throughout, we use the standard notation O~(f):=O(fpolylogf) to suppress logarithmic factors. for O(Δ/lnΔ) coloring of triangle-free static graphs. By running this algorithm after each Θ(Δ/lnΔ) updates and using new colors in the meantime to keep a proper coloring, this implies a dynamic algorithm with O~(nΔ) update time. Using the sublinear time algorithm of [2] in place of the static algorithms can further reduce this to min(n1+o(1),n2+o(1)/Δ2) update time. It is worth comparing this state of affairs with the trivial dynamic algorithm for (Δ+1) coloring that recolors at most one vertex per update, by spending O(Δ) time to iterate over its neighbors and find an available color. This strategy however does not work for O(Δ/lnΔ) coloring of triangle-free graphs given there is no reason why one can greedily extend such a coloring to a new vertex.

1.1 Our Contributions

We present a randomized algorithm for maintaining an O(Δ/lnΔ) coloring of triangle-free graphs in Δo(1)logn amortized update time.

Result 1.

There is an algorithm that for any constant γ(0,1), maintains an Oγ(Δ/lnΔ) coloring of any n-vertex fully dynamic triangle-free graph in O(Δγlogn) amortized update time. The algorithm is randomized and works with high probability against an adaptive adversary (against an oblivious adversary, the update time improves to O(Δγ) time).

Result 1 provides the first non-trivial dynamic algorithm for coloring triangle-free graphs, and goes way below the benchmark of re-running static algorithms after a fixed number of updates. Indeed, by letting γ0, we can reduce the update time to Δo(1)logn time while maintaining an O(Δ/lnΔ) coloring of the graph. It is worth contrasting this bound with the state-of-the-art bound of O~(n2/3) amortized update time for (Δ+1) coloring of arbitrary graphs.

A key component of our main algorithm in Result 1 is a dynamic algorithm for recoloring the graph after each update analogous to the trivial O(Δ) update time algorithm for (Δ+1) coloring. Unlike greedy coloring, our algorithm is based on a local search strategy, that on average, requires spending O(Δ2logn) time per update.

Result 2.

For any constant ε(0,1), there is an algorithm for maintaining a (1+ε)Δ/lnΔ coloring of n-vertex fully dynamic triangle-free graphs with maximum degree Δ (sufficiently large as a function of ε). The algorithm is randomized and with high probability has amortized update time of O(Δ2logn) even against adaptive adversaries (against an oblivious adversary, the update time improves to O(Δ2) time).

Result 2 can be seen as a dynamic version of the Molloy’s breakthrough [29] that proves triangle-free graphs are (1+o(1))Δ/lnΔ colorable, sharpening the leading constants in the long line of work on this problem [27, 30, 25, 35, 4]. Our algorithm is inspired by Molloy’s proof of using the entropy compression method, originally introduced by Moser [32] and Moser and Tardos [33] in their seminal work on algorithmic Lovasz Local Lemma.

Our techniques

Employing Molloy’s entropy compression directly only leads to a dynamic algorithm with O(nΔ) update time (see [29]). However, we show how to make the entropy compression dynamic, which to our knowledge, is new in this context (for readers familiar with this technique, we achieve this by considering the interaction of the randomized dynamic algorithm and adversary jointly as a compression algorithm, logging the “standard” parts of the technique combined with dynamic changes to the graph as part of the compression, and design a recovery algorithm that given this log can recover the original random bits despite the dynamic changes to the graph; see Section 3.2 for more details). Beside this, Molloy uses entropy compression to reduce the problem to a list-coloring problem of Reed [37] (see also [39]). For our purpose, this reduction is not sufficient as we do not know how to solve Reed’s problem dynamically. Instead, we use (dynamic) entropy compression to reduce the problem to the (Δ+1)-coloring problem and then can use the O(Δ) update time dynamic algorithm for the problem.

To prove Result 1 from Result 2, we borrow an idea originally due to [10] for (1+o(1))Δ coloring of arbitrary dynamic graphs. The general approach is to maintain a hierarchy of vertex partitions of the graph, and ensure that at each level of the hierarchy, each vertex belongs to a partition with “few” other neighbors in its own part (roughly speaking, we would like to dynamically partition vertices into b groups in each level, so each vertex v have deg(v)/b neighbors in its group). We implement this by designing a family of recursive algorithms with improved update times whose base case is our algorithm in Result 2. This recursive approach, as opposed to the “iterative” argument of [10], allows us to better control the parameters involved and extend the argument to O(Δ/lnΔ) coloring, which in particular, is a non-linear function of vertex degrees.

Perspective: dynamic entropy compression

Entropy compression, as argued by [40] – who also coined this term for the techniques of [32, 33] – is a unique type of potential function argument. Suppose we want a coloring of a graph that satisfy a certain “local” constraint, e.g., the constraint of each vertex depends on colors of its neighbors. Then, we start with an arbitrary coloring of the graph, and then as long as we find a vertex v that violates its constraint, we randomly and locally change the colors of vertices around it. Suppose we could even say that “with large probability” this random change fixes the constraint for the vertex v. Can we also argue that repeating this process enough number of times fixes all constraints? The challenge is that fixing constraint of a single vertex may lead to many other constraints for other vertices to be violated now. Entropy compression is precisely a method to keep track of the “progress” made by this algorithm in a potential-function type argument. At its core, it argues that if we can run this process for a large number of times, we will be able to compress a truly random string to a summary of much smaller length, which is information-theoretically impossible.

Potential functions appear quite frequently in the analysis of dynamic graph algorithms. Yet, to our knowledge, entropy compression is curiously omitted from the standard toolkit in this literature. Our work shows that this technique can be naturally extended to analyze dynamic graph algorithms as well. We especially find this interesting as it allows for analyzing randomized algorithms against adaptive adversaries in a new way. Most adaptive dynamic algorithms use randomization to run fast sublinear time algorithms once every fixed number of updates (this allows them to address the correlation between randomness and adaptive adversary’s update by using fresh randomness in the analysis); see, e.g., the adaptive dynamic algorithms for (Δ+1) coloring [5, 20]. In contrast, dynamic entropy compression allows us to continuously use randomness in the algorithm and still analyze its performance against an adaptive adversary, similar to how one typically does with a potential function in a deterministic algorithm (the only other technique of this nature we are aware of is proactive resampling introduced in [9, 13] although the similarities here are more conceptual than technical). We believe that this viewpoint is an important (non-technical) contribution of our paper as it may pave the way for obtaining more efficient dynamic algorithms for other fundamental graph problems as well.

Independent and concurrent works

Parallel to us, [23] further developed the proactive resampling technique of [9, 13]. Among many other interesting results, they also presented a fully dynamic O(Δ/lnΔ) coloring algorithm for triangle free graphs with update time of n1/2+o(1) by “dynamizing” the sublinear time algorithm of [2]. Technique-wise, our work and [23] appear to be entirely disjoint.

More relatedly, [22] also observed that entropy compression gives a recipe for designing dynamic algorithms and used this to prove a wide class of local search algorithms extend as is to the fully dynamic setting. As a corollary of their techniques, they also obtained an entropy compression based dynamic algorithm for coloring triangle-free graphs similar to our Result 2. Their results are quite more general than ours in scope and span various applications of algorithmic Lovasz Local Lemma and beyond. But, for the specific problem at hand, their general framework gives an O~(Δ3) update time algorithm for 6Δ/lnΔ coloring of triangle-free graphs, which is quantitatively weaker than Result 2 (the extension of our results to Δo(1)logn update time in Result 1 is using a separate set of techniques that is missing from [22]). At a technical-level, our dynamic entropy compression works by “logging dynamic updates” whereas [22] do a union bound over all possible choices of adversary, which are different perspectives on the same general idea.

2 Preliminaries

Notation.

For any integer b1, define [b]:={1,,b}. For a graph G=(V,E), we use N(v) to denote the neighbors of vV, deg(v)=|N(v)| to denote the degree of v, and B(v,r) to denote the ball of radius r around v, i.e., all vertices that are at distance at most r from v. A partial coloring of a graph G=(V,E) is a function φ:V𝒞{}, where 𝒞 is a set of colors and denotes an uncolored vertex, also referred to as a free vertex. A partial coloring φt is said to be proper if no edge is monochromatic, however vertices assigned color are exempt, namely, are allowed to be adjacent to each other.

Dynamic graphs.

We denote the static vertex set of the underlying n-vertex graph by V:=[n]. Let 𝒢=(G0,G1,,Gt,) be the sequence of dynamic graphs presented to the algorithm: the initial graph G0 is empty and each graph Gt is obtained from the previous graph Gt1 by inserting or deleting a single edge et=(ut,vt). We use Gt:=(V,Et) to denote the graph at the t-th step; Nt(v), degt(v), and Bt(v,r) for any vV and r0 are defined analogously with respect to Gt.

As is common in this context, we assume Δ is known a priori and every vertex has degree at most Δ throughout the updates. We also assume the number of updates is Ω(n) as otherwise, there will be vertices that do not even receive a single update and are hence redundant333This is relevant when we would like to achieve a “with high probability” guarantee for some aspect of the algorithm (say, runtime). If the updates are much smaller than n, then one naturally cannot expect a probability bound based on n to hold (think of padding an arbitrary graph with “near infinitely many” vertices)..

An oblivious adversary fixes the choices of graphs in 𝒢 before presenting them to the algorithm whereas an adaptive adversary can choose each graph Gt based on the output of the algorithm on prior graphs G1,,Gt1 (in our case, we assume even the prior random coin tosses of the algorithm are available to the adversary). This adversary can be modeled as a game between the dynamic algorithm and an oracle 𝒪A that at each time step t receives the random coins used along with the current coloring and outputs the next update.

Finally, the recourse of a dynamic graph coloring algorithm is the worst-case number of vertices whose colors have changed by the algorithm after each single update.

Balls into bins

We use the following variant of balls and bins experiments. Consider a set of d balls and b bins ={B1,,Bb}. For each ball i[d], we are given a subset of bins Si. Each ball i is placed into one of the bins in Si uniformly at random.

Proposition 1 (​​[34, 29]).

For i[b], let Xi be the indicator random variable that bin Bi is non-empty in the balls-into-bins experiment above, and define X=i=1bXi. Then, for any 0<t𝔼[X], we have:

Pr(X<𝔼[X]t)<exp(t22𝔼[X]).
Proof sketch.

For each i[b], let Yi=1Xi and let Ni be the random variable denoting the number of balls placed in bin Bi. As (Ni:i[b]) has multinomial distribution, the collection {Ni}i[b] is negatively associated (NA) [26, Example 3.1].

Note that Yi is an indicator variable that is equal to 1 if Ni=0 and 0 otherwise. By the properties of NA [26], any non-increasing functions of NA variables is also NA. Therefore, {Yi}i[q] is NA. Applying the concentration bound for NA variables from [29, Lemma 3b] yields the desired bound.

Concentration Inequality

We use the following standard version of Chernoff bound.

Proposition 2 (Chernoff-Hoeffding bound; cf. [30]).

Let X1,,Xn be n independent indicator random variables. Define X:=i=1nXi. For any δ(0,1), and 𝔼[X]μ we have:

Pr(X>(1+δ)μ)exp(δ2μ3).

Entropy compression

The following lemma states that we cannot compress random bits efficiently, which forms the key concept behind the entropy compression method. This is a pretty standard result and we provide its elementary proof for completeness.

Lemma 3.

Let δ(0,1) and f:{0,1}m{0,1}t be any fixed function with the following property: if we sample x uniformly at random from {0,1}m, we can recover x from f(x) with probability at least δ. Then, we should have

tmlog(1/δ).
Proof.

Let X{0,1}m be the set of strings that are correctly recovered by f. For any two distinct x,yX, it must be that f(x)f(y); otherwise, we cannot uniquely recover x from function f. Thus, f:X{0,1}t must be injective, which implies that |X|2t.

We also know that x{0,1}m can be recovered from f(x) with probability at least δ, therefore |X|δ2m. Hence,

2t|X|δ2m,

resulting in the desired tmlog(1/δ), concluding the proof.

3 An 𝑶(𝚫𝟐𝐥𝐨𝐠𝒏) Update Time Algorithm

We now state our main technical contribution, formalizing Result 2.

Theorem 4 (Formalizing Result 2).

Let ε(0,1) be a fixed constant and Δ0 be sufficiently large as a function of ε. There is an algorithm that maintains a (1+ε)Δ/lnΔ coloring of any fully dynamic n-vertex triangle-free graph of maximum degree ΔΔ0. The algorithm is randomized and with high probability has amortized update time of O(Δ2logn) against adaptive adversaries and O(Δ2) against oblivious adversaries.

We first describe the maintained invariants and the data structures supporting dynamic updates. Next, we introduce an algorithm for maintaining a proper partial coloring of the vertices and analyze its amortized update time, which forms the core technical component of our approach. We then show how this partial coloring can be extended to a full coloring, completing the proof of Theorem 4.

3.1 Setup

Recall that Δ is a known upper bound on the maximum degree of the graph during the updates. Throughout this section, we fix ε>0 to be any arbitrarily small constant, and use the following two palettes of colors:

𝒞1:={1,,q}and𝒞2:={q+1,,(1+ε)q}whereq:=(1+ε)ΔlnΔ.

Here |𝒞1|=q and |𝒞2|=εq. We aim to use 𝒞1 to color most of the vertices and use 𝒞2 to complete the coloring through a cleanup algorithm.

For every vV, at any time t during the sequence of graphs (G0,G1,,Gt,), we define:

  • colort(v): the color in 𝒞1𝒞2 assigned to v at time t; our goal is to keep colort():V𝒞1𝒞2 as a proper coloring of Gt.

The main part of the argument is a fully dynamic algorithm PartialColor that maintains a partial coloring φt:V𝒞1{} with several important properties for us. Specifically, we define, for any vertex vV and time t:

  • Availt(v): colors in 𝒞1 that are available to v under φt, i.e., have not been assigned to any neighbor of v in Nt(v); further, set at(v):=|Availt(v)|.

  • Freet(v): neighbors of v in Nt(v) that are free, i.e., have been marked with ; further, set ft(v):=|Freet(v)|.

Lemma 5.

PartialColor maintains a partial coloring φt:V𝒞1{} after each update at time t such that for all vV:

at(v)Δε/2andft(v)εq2. (1)

Moreover, after at least n many updates, the amortized recourse and update time of PartialColor with high probability are, respectively,

  • O(Δlogn) and O(Δ2logn) against adaptive adversary,

  • O(Δ) and O(Δ2) against oblivious adversary.

We describe PartialColor in the following subsection and then provide its analysis. We then use Lemma 5 to conclude the proof of Theorem 4.

3.2 The PartialColor Algorithm

PartialColor is a simple local search algorithm: it starts with a graph Gt1 that satisfies the constraints of Lemma 5, receives an update et=(ut,vt), and simply tries to “locally fix” any vertex that no longer satisfies the guarantees of Equation 1 by resampling the colors of its neighbors and recursing. Formally, the algorithm is as follows:

Algorithm 1 PartialColor(et): Called when et=(ut,vt) is updated in Gt1 to obtain Gt.
  1. 1.

    Update the data structures Nt(), Availt(), and Freet() for vertices ut,vt.

  2. 2.

    If et is inserted and φt(ut)=φt(vt), set φt(ut)=.

  3. 3.

    while there is w{ut,vt}N(ut) with at(w)<Δε/2 or ft(w)>εq/2, run Fix(w).

Subroutine Fix(u):

  1. 1.

    If at(u)<Δε/2, run Resample(u).

  2. 2.

    If ft(u)>εq/2, then while there is vNt(u) with at(v)<Δε/2, run Fix(v).

  3. 3.

    If ft(u)>εq/2 still, run Resample(u).

Subroutine Resample(u):

  1. 1.

    For zN(u): resample φt(z) uniformly at random from Availt(z){}; update Availt() and Freet() for neighbors of z in Nt(z).

  2. 2.

    While there is wBt(u,2) with at(w)<Δε/2 or ft(w)>εq/2, run Fix(w).

PartialColor aims to eliminate all unsatisfied constraints in Equation 1 by invoking the subroutine Fix on any vertex that violates a constraint. Note that a priori, it is not at all clear that the subroutine Fix would ever terminate even. We will get to that in the main part of the proof. But before that, the following observation shows that each terminating call to Fix strictly reduces the number of unsatisfied constraints.

Observation 6.

For any uV, assuming Fix(u) terminates, the partial coloring maintained by the algorithm satisfies both constraints of Equation 1 for u. Moreover, Fix(u), upon termination, does not break any constraint that was already satisfied.

Proof.

Whenever u does not satisfy a constraint, subroutine Fix(u), assuming other calls to Fix triggered along the way terminate, triggers a call to Resample(u). Since u is in its own 2-hop neighbourhood, Resample triggers calls to Fix(u) again. Therefore, the procedure Fix(u) does not exit its while-loops as long as any of the constraints of u remain unsatisfied.

Observe that a call to Fix(v) for any vV can generate new violated constraints only when it executes Resample(v), which changes the colors of vertices in Nt(v). Such color changes can only affect the constraints of vertices in Bt(v,2). However, Resample(v) explicitly invokes Fix(w) for every vertex wBt(v,2) whose constraints may have been affected.

Consider an initial call to Fix(u). Whenever a recoloring causes a constraint violation at some vertex v, the algorithm invokes Fix(v). Assuming inductively that each invocation of Fix(v) restores all constraints of v before terminating, it follows that all constraint violations caused by the execution of Fix(u) are eventually repaired. Therefore, upon termination of Fix(u), no previously satisfied constraints will be violated.

To bound the update time of PartialColor we use the entropy compression technique. We argue that the algorithm effectively compresses the random bits used to color the vertices as part of the Resample subroutine. Consequently, if the algorithm runs for too long, it would compress the randomness beyond what is allowed by Lemma 3, leading to a contradiction. The key to this step is the following probabilistic lemma. A similar lemma also appears in [29] (although the second part is entirely different given we use a different “flaw” in the language of [29]).

Lemma 7.

At any point in time in the algorithm:

  1. 1.

    when calling Resample(u) in Line (1) of Fix(u):

    Pr(at(u)<Δε/2)2Δε/2100;
  2. 2.

    when calling Resample(u) in Line (3) of Fix(u):

    Pr(ft(u)>εq2)2εΔ50lnΔ.
Proof.

We prove each part separately.

Part 1.

The proof is by bounding 𝔼[at(u)] and applying a concentration bound. Recall that a color c𝒞1 is available for u at time t iff no neighbor vNt(u) samples color c. Since each neighbor v chooses a color uniformly at random from the set Availt(v){}, the probability that v chooses c is exactly 1/(at(v)+1) if cAvailt(v), and 0 otherwise. By the independence of these color choices (as G is triangle-free), the probability that cAvailt(u) is:

Pr(cAvailt(u))=vNt(u)cAvailt(v)(11at(v)+1).

Therefore, we have

𝔼[at(u)] =c𝒞1vNt(u)cAvailt(v)(11at(v)+1)
c𝒞1vNt(u)cAvailt(v)exp(1at(v)) (as 11/(x+1)e1/x for x>0)
=c𝒞1exp(vNt(u)cAvailt(v)1at(v))=q𝔼c𝒞1[eρ(c)],

where we define

ρ(c):=vNt(u)cAvailt(v)1at(v)for each c𝒞1.

We can see that

𝔼c𝒞1[ρ(c)]=c𝒞11qρ(c)=c𝒞11qvNt(u)cAvailt(v)1at(v)=1qvNt(u)cAvailt(v)1at(v)Δq.

This is because each vNt(u) has exactly at(v) many available colors and degt(u)Δ. Therefore, using Jensen’s inequality and convexity of ex we get

𝔼[at(u)]qexp(𝔼[ρ(c)])qexp(Δq)=(1+ε)ΔlnΔexp(lnΔ1+ε)2Δε/2, (2)

where the last inequality is true because Δ is sufficiently large.

We now prove a concentration bound for at(u). The sampling of colors here corresponds to the balls-into-bins framework described in Proposition 1, where the colors in 𝒞1 serve as the bins and the neighbors vNt(u) act as the balls. Specifically, for each ball i[degt(v)], the set of allowed bins Si in the experiment is Availt(vi){}. Therefore, we can use the same concentration inequality as in Proposition 1 to bound at(u). Using Equation 2, we get
Pr(at(u)<Δε/2)Pr(at(u)<𝔼[at(u)]2)exp(𝔼[at(u)]12)exp(Δε/212)2Δε/2100,

concluding the proof of the first part.

Part 2.

For any vNt(u), let Zv be the indicator random variable for v picking . We have

𝔼[ft(u)]=vNt(u)𝔼[Zv]=vNt(u)1at(v)+1.

By Observation 6 and since we now consider Resample(u) called in Line (3), we know that at(v)Δε/2 for all vNt(u). Hence, we have,

𝔼[ft(u)]Δ1Δε/2εq4.

Since the random variables {Zu}uNt(v) are independent, by Proposition 2, we have

Pr(ft(v)εq/2) exp(εq12)2εq502εΔ50lnΔ,

concluding the proof of the second concentration inequality.

We now define a compression scheme for compressing random bits used by the algorithm over a given sequence of updates (G0,G1,,GT) for some Tn. In the following, we focus on the case when the updates are done by an adaptive adversary (which is the more interesting case). We will then briefly describe how to handle oblivious adversaries more efficiently.

To continue, we need some definitions. At any point of time during the algorithm, define:

  • Allt(v): the set of all possible assignments of colors to neighbors u of v from Availt(u){}. This way, we have,

    |Allt(v)|=uNt(v)(at(u)+1).
  • Badt(v)Allt(v): those assignments that will lead to v having at(v)<Δε/2 or ft(v)>εq/2.

    (We shall note that the subscript t these definitions is a bit misleading since these sets and parameters can vary many times during processing of a single update; however, to avoid cluttering the notation, we stick with using subscript t here.)

The compression scheme

We maintain a log of the algorithm on (G1,,GT) that allows us to reconstruct all random bits used during its execution. At time step t, with update et=(ut,vt), we record the following information:

  1. 1.

    A single bit indicating the type of update (insertion or deletion), together with 2logn bits specifying the edge et.

  2. 2.

    A single bit indicating whether the algorithm terminates at the second line of PartialColor.

  3. 3.

    If the algorithm reaches Line 3 of PartialColor, for any vertex wNt(ut) for which Fix(w) was called, we write O(logΔ) bits to specify the vertex (we need logΔ bits instead of logn as we specify this vertex as the i-th neighbor of ut for some i[Δ]). Additionally, we use O(1) bits to indicate which constraint violation triggered the call to Fix.

  4. 4.

    For each call to Fix(u), the input u is specified before this and we have also written down the type of constraint violation. This allows us to know whether Fix(u) terminates in Line (1) or Line (3). If Fix(u) terminates in Line (1), we consider the set Badt(u), namely, the assignment of colors to neighbors of u at this point in time that will result in u having a violated constraint. Since u does have a violated constraint, the assignment of φt to Nt(u) in this step belongs to Badt(u). We will write the index |Badt(v)| to the log to specify this part of φt.

    If Fix(u) goes beyond Line (1), we again record each vNt(v) that we call Fix(v) on using O(logΔ) bits. Then, we go to Line (3) and if Fix(u) is called here, we write the index |Badt(u)| corresponding to the assignment of φt to Nt(u) at this point (which we know belongs to Badt(u)). Finally, upon completing Fix(v), we write O(1) bits to mark the end of this subroutine. This process is repeated recursively within each call to Fix.

  5. 5.

    At the end of all of the updates we also log the final choice of φt in nlogΔ bits.

This concludes the description of our compression scheme. Note that at no point in this process, we explicitly wrote down the random choices made by Resample at the time they were made. Nonetheless, the following observation allows us to argue that we can recover all those random bits from the compression.

Observation 8.

Given the log described above for a sequence of T updates and ST calls to Resample, we can recover all random bits used by Resample in the execution of the algorithm.

Proof.

In the compression scheme, the entire sequence of graphs G1,,GT is recorded explicitly. Moreover, every call to Fix is fully specified in the log by recording the index of the vertex for which Fix is invoked (in a “local” way by starting from ut of the corresponding update at time t, and using the stored logΔ-bit addresses to go to the specified neighbor and so on), together with the type of constraint violation that triggered the call. As a result, for any call to Fix(v), we can uniquely reconstruct v and the exact graph on which this call is executed.

We reconstruct the random bits in the reverse order. At time T, the compression explicitly records the final partial coloring φT. The log also specifies the last vertex v whose call to Fix triggered a call to Resample. Since Resample(v) only randomizes the colors of vertices in the neighborhood of v, the coloring φT restricted to this neighborhood uniquely determines the random bits used in this call.

Furthermore, the compression includes an index pointing to the violated constraint that caused this call to Fix. This information allows us to reconstruct the coloring of the neighborhood of v before the call to Resample(v), as the colors of all vertices outside this neighborhood remain unchanged during this step. Equivalently, from the fixed coloring outside the neighborhood we can reconstruct the set Bad(v) and hence recover the previous local coloring.

Thus, we recover both the random bits used in the S-th call to Resample and the partial coloring immediately preceding this call. By iterating this argument backwards for the remaining S1 calls, we recover all random bits used by the algorithm.

By Observation 8, we can recover all random bits used by the algorithm on a sequence of updates using the compression scheme above. We now use Lemma 7 to argue that this compression scheme does indeed compress the random bits: roughly speaking, this is because between all possible color assignments to neighborhood of a vertex, most of the resulting colorings do not violate the constraints in Equation 1 by Lemma 7. We formalize and use this in the following lemma to bound the runtime of PartialColor.

Lemma 9.

Let ST be the random variable for the number of times Resample is called after T updates. Against an adaptive adversary, we have:

Pr(STTlogn+n)nT,

and against an oblivious adversary we have

Pr(STT+n)ΔT.

(note that the main difference between the two equations are in Tlogn and T terms and the RHS).

Proof.

We first prove the inequality against an adaptive adversary. Define

g(n,T):=Tlogn+n.

Suppose, for the sake of contradiction, that there exists Tn and an adaptive adversary oracle 𝒪A that can force PartialColor to have Pr(STg(n,T))>nT.

Using the oracle 𝒪A to generate the update sequence, we execute PartialColor and obtain a string RT consisting of all random bits used by the algorithm up to the step where the number of calls to Resample reaches ST=g(n,T), at which point we halt. We also run the compression scheme above (with some minor modifications) as described below.

Let vi be the vertex triggering the i-th call to Resample at time ti. Define

𝒲i:=|Allti(v)|,

representing the number of possible colorings for the neighborhood of vi. Each call to Resample picks an integer from [𝒲i] uniformly, requiring log𝒲i random bits. Note that log𝒲iΔlogΔ since every vertex has at most Δ neighbors and less than Δ available colors. To normalize the bit-count, let i:=ΔlogΔlog𝒲i. By generating i additional random bits, each call uses exactly ΔlogΔ bits. We consider these extra bits as the randomness of the algorithm also. This way, the total number of bits generated by the algorithm is:

|RT|=i=1g(n,T)log𝒲i+i=g(n,T)ΔlogΔ.

We now describe the compression. We basically do exactly as the compression scheme described earlier except that the extra i bits are recorded without any changes. Recall that Badti(vi) is the set of “bad” colorings for the neighborhood of vi, which cause a constraint violation on this vertex. By Lemma 7, regardless of which lines of Fix is used to call Resample,

|Badti(vi)|max(2Δε/2100, 2εΔ50lnΔ)|Allti(vi)|2Δε/2100𝒲i;

the last inequality is true as Δ is sufficiently large. The compression scheme logs

log|Badti(vi)|+i+O(1)

bits per call to Resample (ignoring the recursive calls inside Resample). Summing over all calls to Resample, the length of the log written for these parts is:

i=1g(n,T)log|Badti(vi)|+i+O(1) i=1g(n,T)(log𝒲iΔε/2100+i+O(1)) (by the equation above)
=(i=1g(n,T)log𝒲i+i+O(1))g(n,T)Δε/2100
=g(n,T)ΔlogΔ+g(n,T)O(1)g(n,T)Δε/2100. (as log𝒲i+i=ΔlogΔ)

The calculations above point to the exact step wherein we are “compressing” the randomness.

Finally, note that the compression scheme also stores O(logΔ) bits per call to Fix and since the number of calls to Fix and Resample are asymptotically the same, the log also contains O(g(n,T)logΔ) many bits for handling the calls to Fix. Denoting LT as the log generated by this compression scheme (and the modifications mentioned above), we have,

|LT| T(2logn+2) (for logging the updates, their type, and if they continue to Line 3 of PartialColor)
+g(n,T)ΔlogΔ+g(n,T)O(logΔ)g(n,T)Δε/2100 (for logging the calls to Resample and Fix)
+nlogΔ. (to log the partial coloring upon halting the scheme after ST=g(n,T))

Consider the following scenario. We sample x{0,1}a for a=g(n,T)ΔlogΔ uniformly at random and use it to generate all the randomness RT in the above process. If the process fails because ST<g(n,T), we let f(x) writes “fail” in O(1) bits and otherwise, if ST=g(n,T), it will write “success” plus the log LT specified above. Thus, by our earlier (contradicting) assumption, we will generate LT with probability at least nT, from which, by Observation 8, we can correctly recover x. Thus, by Lemma 3, we should have

|LT|+O(1)|RT|log(nT).

Plugging in the bounds we have for the lengths of LT and RT above, gives us
T(2logn+2)+g(n,T)ΔlogΔ+g(n,T)O(logΔ)g(n,T)Δε/2100+nlogΔg(n,T)ΔlogΔTlogn,

which implies that (since Δε/2logΔ for large enough Δ as a function of ε),

g(n,T)200Δε/2(4Tlogn+nlogΔ)<Tlogn+n,

contradicting our definition of g(n,T). Thus, we have

Pr(ST>Tlogn+n)nT,

completing the proof for adaptive adversaries.

Improved bounds for oblivious adversaries

For oblivious adversaries, the only difference is that we do not need to explicitly write down the T updates in our log, since an oblivious adversary behaves independent of the input. Define

h(n,T)=T+n,

and now suppose towards a contradiction that there exists a sequence of T updates e1,,eT such that running PartialColor on the graphs G0,,GT leads to

Pr(STh(n,T))ΔT.

If no such fixed sequence exists, then the bound in the lemma statement immediately holds. We now show the above equation will lead to a contradiction.

We again run the same exact compression scheme but now only spend O(T) bits for updates just to write down whether or not PartialColor reached its Line 3, without specifying the updates since they are globally fixed. Using the same exact argument as before, this allows us to summarize our random bits RT of length h(n,T)ΔlogΔ, with probability at least ΔT, into a recoverable log LT of length

|LT|=O(T)+h(n,T)ΔlogΔ+h(n,T)O(logΔ)h(n,T)Δε/2100+nlogΔ.

Thus, by using Lemma 3 as before, we have |LT||RT|TlogΔ, implying that

h(n,T)200Δε/2(TlogΔ+nlogΔ)<T+n,

contradicting with the choice of h(n,T), and concluding the proof.

We are now ready to conclude the proof of Lemma 5.

Proof of Lemma 5.

The algorithm PartialColor always produces a proper partial coloring. This is because (1) if after an update (u,v), if φt(u)=φt(v) and neither are , we will make one of them , and (2) the call Resample(v) recolors the vertices in Nt(v) and since the graph is triangle-free, Nt(v) is an independent set, and thus each vertex uNt(v) can independently choose a color uniformly at random from Availt(u){} without creating a monochromatic edge. Consequently, the resulting coloring remains proper.

By induction, suppose Gt1 satisfies the properties stated in Lemma 5. Our goal is to show that after processing time step t, the algorithm PartialColor restores all constraints. The only difference between Gt and Gt1 arises from the edge et. If the corresponding constraints are violated, the subroutine Fix is invoked. By Observation 6, all violated constraints are resolved by the call to Fix, and no new violations are introduced. Therefore, after running PartialColor, for all vV we have

at(v)Δε/2andft(v)εq2.

For any Tn, when facing an adaptive adversary, by Lemma 9 we know that with probability at least 1nT, the subroutine Resample is invoked at most O(Tlogn) time. Each call to Resample(v) takes O(Δ2) times (for sampling colors for O(Δ) vertices and going over Bt(v,2) of size Δ2) and each call to Fix(v) takes O(Δ) time (to go over all neighbors of v in Line 2 if needed). Since the number of calls to Resample and Fix is asymptotically the same, the total runtime of the algorithm after T updates is O(TΔ2logn) with probability 1nT. In other words, the amortized update time of the algorithm is O(Δ2logn) with probability at least 1nT. Taking union bound for T from n to infinity, we have,

Pr(amortized update time is ever more than O(Δ2logn))T=nnT=O(nn),

namely, with (super exponentially) high probability, the amortized update time for any sequence of updates of length at least n is O(Δ2logn). The bound for the recourse can also be proven similarly to be O(Δlogn) since each call to Resample(v) has a recourse of O(Δ) at most.

Finally, switching to oblivious adversaries, using the improved bounds of Lemma 9, the same argument instead gives us

Pr(amortized update time is ever more than O(Δ2))T=nΔT=O(Δn),

which again implies the desired bounds with (exponentially) high probability.

3.3 Concluding the Proof of Theorem 4

We are now ready to conclude the proof of Theorem 4. For this, we present the following algorithm. Upon each update, we first invoke PartialColor to resolve any conflicts among vertices colored from 𝒞1. Then, any vertex that remains uncolored is assigned a color from 𝒞2 using a simple greedy procedure. Note that

|𝒞1𝒞2|=(1+2ε)ΔlnΔ.

By initially replacing ε with ε/2, this yields a (1+ε)Δ/lnΔ coloring.

Algorithm 2 Called when et=(ut,vt) is updated in Gt1 to obtain Gt.
  1. 1.

    Call PartialColor(et) and store all vertices whose color changes in a set L.

  2. 2.

    For each vL with φt(v)=, assign v an available color by checking the neighborhood of v and finding a color in 𝒞2 not assigned to any of its neighbors.

It is worth noting that when running PartialColor, any vertex u that previously received a color from 𝒞2 can be treated as having color (this way, the coloring φt of PartialColor does not look at colors of vertices in 𝒞2, nor any vertex colored from 𝒞2 in Line 2 of Algorithm 2 ever changes φt). We now use Algorithm 2 to prove Theorem 4.

Proof of Theorem 4.

At each update step t, the subroutine PartialColor maintains a proper partial coloring using the color set 𝒞1, and for every vertex v we have ft(v)εq2. Since |𝒞2|=εq, there are sufficiently many available colors to greedily color all remaining uncolored vertices using 𝒞2 in the second phase of Algorithm 2. So Algorithm 2 maintains a proper (1+ε)ΔlnΔ coloring (after rescaling εε/2).

The runtime of the first step of Algorithm 2 is exactly the same as that of PartialColor. For the second step, the runtime is O(Δ) time per vertex in L. Recall that vertices in L are the ones whose color changed by PartialColor in this step and thus are bounded by the recourse of PartialColor. This implies that the amortized update time of the algorithm, against an adaptive adversary, is O(Δ2logn)+O(Δlogn)O(Δ)=O(Δ2logn), with high probability by Lemma 5. The bound of O(Δ2) on the amortized update time follows exactly the same using the improved bound of Lemma 5 for oblivious adversaries.

4 A 𝚫𝒐(𝟏)𝐥𝐨𝐠𝒏 Update Time Algorithm

We now present our final algorithm for maintaining an O(Δ/lnΔ) coloring of triangle-free graphs with Δo(1)logn amortized update time. The following theorem formalizes Result 1.

Theorem 10 (Formalizing Result 1).

For any fixed γ(0,1), there exists an integer K=O(1/γ2) such that the following holds. There is a randomized algorithm that with high probability maintains a (KΔ/lnΔ) coloring of any triangle-free fully dynamic graph with maximum degree Δ with amortized update time of O(Δγlogn) against an adaptive adversary and O(Δγ) against an oblivious adversary.

To prove this theorem, we design a family of recursive algorithms {𝔸k}k=1 with progressively better update times. The base case of this family, 𝔸1, is Algorithm 2 which has update time Δ2. For larger values of k>1, 𝔸k achieves ΔO(1/k) amortized update time.

Lemma 11.

For any integer k1, there is a randomized algorithm that with high probability maintains an O(k2Δ/lnΔ) coloring of any fully dynamic n-vertex triangle-free graph of maximum degree Δ with amortized update time:

  • O(k!Δ22k1logn) against an adaptive adversary; and,

  • O(k!Δ22k1) against an oblivious adversary.

Theorem 10 follows from Lemma 11 immediately by setting k=Θ(1/γ) and K=O(k2) (and noting that γ is fixed independent of n and thus the k! term in the update time is suppressed in the asymptotic notation.) Note that in the limit, one can set k as large as some k=o(logΔ) to maintain an o(Δ) coloring of triangle-free graphs in ΔΘ(loglogΔlogΔ)logn amortized update time. We prove Lemma 11 in the rest of this section.

For any integer k1, algorithm 𝔸k receives an upper bound Δ on the maximum degree of the graph it will ever encounter, and the palette 𝒞 of the available colors in the initialization phase. Then, during the update phase, 𝔸k receives updates of the form (u,v,±), for u,vV, which corresponds to inserting or deleting the edge (u,v) from the underlying graph.

The algorithm 𝔸1 is our algorithm in Theorem 4. We now describe 𝔸k for any k>1 on an input dynamic graph G on vertices V with maximum degree Δ. Define the following two parameters

bk=bk(Δ):=12Δ22k1andck=ck(Δ):=(k+1)(2k1)ΔlnΔ. (3)

We require the palette 𝒞 of available colors to 𝔸k to be of size ck. This palette is further partitioned arbitrarily into bk sets 𝒞1,,𝒞bk of equal size.

For every vertex vV, the algorithm maintains the following data structures that is updated in each time step:

  • A partition of the vertex set into bk sets V1,,Vbk. For every vertex vV, we use p(v)[bk] to denote the index of the partition it belongs to. Initially, vertices are partitioned arbitrarily.

  • indeg(v): the degree of v in the induced subgraph of G on Vp(v), namely, the partition v belongs to. We refer to indeg(v) as the induced degree of v.

  • N(v,i): the neighbors of v inside the induced subgraph on Vi, denoted by G[Vi].

The goal of the algorithm is to color vertices in each set Vi using only the colors in 𝒞i. To ensure possibility of this, we maintain an invariant on the maximum degree of each G[Vi] for i[bk].

Invariant 11.

For any vertex vV, indeg(v)(1+1k)Δbk.

Equipped with Section 4, the algorithm 𝔸k runs bk copies of the algorithm 𝔸k1, one on each subgraph G[Vi] and color palette 𝒞i for i[bk] with an upper bound of Δ(G[Vi])(1+1/k)Δ/bk on the maximum degree of the subgraph. Since the palettes 𝒞i’s are disjoint, this will lead to a proper coloring of the entire graph. We can now formalize the algorithm.

Algorithm 3 [Algorithm 𝔸k of Lemma 11]
  1. 1.

    Initialization phase: Initialize bk copies of 𝔸k1, where the i-th copy, denoted by 𝔸k1[i] is given the palette 𝒞i and the promised upper bound on maximum degree (1+1/k)Δ/bk. During the updates, 𝔸k1[i] will be given the dynamic graph Gi=(V,E[Vi]), the graph with vertices V, but only edges that are between vertices of the set Vi of the partition444Setting vertices of Gi to be V instead of Vi is simply to bypass having to define operations for inserting or deleting vertices in addition to edges..

  2. 2.

    Update phase: Given an update (ut,vt,±) to G at time t:

    1. (a)

      Update N(ut,p(vt)),N(vt,p(ut)) and indeg(ut),indeg(vt) accordingly.

    2. (b)

      If Section 4 no longer holds, run the subroutine FixInvariant.

    3. (c)

      Once Section 4 continues to hold, if p(ut)p(vt), terminate, otherwise pass the update (ut,vt,±) to 𝔸k1[i], where i=p(ut)=p(vt), to update the colors.

Subroutine FixInvariant:

  1. 1.

    Let w be any vertex violating the invariant and let i=p(w).

  2. 2.

    Remove all edges of w in Gi (i.e., inside E[Vi]) by calling 𝔸k1[i] for each edge.

  3. 3.

    Find an index j[bk+1] such that |N(w,j)|Δ/bk (such an index exist by pigeonhole principle). Remove w from Vi and insert it to Vj and update p(w).

  4. 4.

    Insert all edges of w incident on E[Vj] to the graph Gj by calling 𝔸k1[j] for each edge.

  5. 5.

    If Section 4 still does not hold, call FixInvariant again.

We use a simple potential function argument to argue that the number of calls to FixInvariant (including recursive calls inside it) across a fixed number of updates will be bounded. We will use this later both in the proof of the correctness of the algorithm and to bound its runtime.

Lemma 12.

Starting from an empty graph G as input to 𝔸k, over any sequence of T updates (even by an adaptive adversary), the total number of times FixInvariant is called is O(Tkbk/Δ).

Proof.

Define the potential function:

Φ:=vVindeg(v).

Each update can increase Φ by at most two. On the other hand, whenever FixInvariant is called, one vertex w with indeg(w)>(1+1/k)Δ/bk moves from some set Vi to another Vj resulting in indeg(w)Δ/bk. Removal of w from Vi reduces indeg(w) and induced degrees of neighbors in Vi by at least 2(1+1/k)Δ/bk in total. On the other hand, including w in Vj increases the induced degrees of vertices by at most 2Δ/bk. As such, this move reduces Φ by at least 2/kΔ/bk.

Thus, over a sequence of T updates, we increase Φ to at most 2T and Φ can never become negative, thus there can be at most

2T2/kΔ/bk=TkbkΔ,

many calls to FixInvariant, as desired.

Lemma 12 ensures that the subroutine FixInvariant terminates in 𝔸k and thus we can safely assume Section 4 when running the algorithm. Using this, we can prove the correctness of the algorithm. Before that, we should note while the implementation of 𝔸k for k>1 in Algorithm 3 is deterministic, the base case algorithm, namely, 𝔸1 from Theorem 4, is a randomized algorithm. Thus, each of 𝔸k is also a randomized algorithm.

Lemma 13.

With high probability, 𝔸k computes a proper coloring of the input graph with ck colors.

Proof.

Firstly, consider the dynamic graph Gi=(V,E[Vi]) defined throughout the updates. This graph is updated through direct adversary updates to G plus updates done in FixInvariant. Here we should note that to accurately implement FixInvariant, we should technically first collect all insertion and deletion of edges decided across all calls of FixInvariant inside a single original update to the graph, and then, once FixInvariant is entirely finished do all the insertions and deletions at the end. This way, (1) all updates to the dynamic graph Gi are passed to it via 𝔸k1[i], and (2) we can assume an upper bound of (1+1/k)Δ/bk on the maximum degree of graph Gi. This means all calls to 𝔸k1[i] for i[bk] are valid throughout the execution of 𝔸k.

We know that Section 4 holds and for any i[k], 𝔸k1[i] is run entirely on the dynamic graph Gi=(V,E[Vi]) with maximum degree (1+1/k)Δ/bk. By Equation 3, this means that 𝔸k1[i] requires a palette of size

ck1((1+1/k)Δbk) =k(2k3)(1+1/k)Δbkln((1+1/k)Δ/bk) (by Equation 3 for ck1)
=(k+1)(2k3)Δbkln(2(1+1/k)Δ2k32k1) (by Equation 3 for bk)
(k+1)(2k3)2k12k3ΔbklnΔ
=ckbk. (by Equation 3 for ck)

This is precisely the size of the palette 𝒞i provided to 𝔸k1[i]. Thus, as long as 𝔸k1[i], for each i[bk], works correctly, so does 𝔸k. Finally, since V1,,Vbk is a partition of V and we are using disjoint palettes for each Vi, the union of colorings found by 𝔸k1[i]’s is also a proper coloring of the entire graph. This concludes the proof.

Finally, we can analyze the update time of the algorithm. In the following, we focus on adaptive adversaries first and then point out how to improve the runtime for oblivious adversaries. For any k1, define:

Tk(Δ): a high probability upper bound on the amortized update time of 𝔸k

on a graph of maximum degree Δ against an adaptive adversary.

We prove the following upper bound on Tk().

Lemma 14.

For any k1,

Tk(Δ)=O(k!Δ22k1logn).
Proof.

By Theorem 4, for 𝔸1, we have

T1(Δ)=O(Δ2logn),

which fits the desired bounds for k=1. This establishes the base case. We now prove the bounds for any k>1 by analyzing Algorithm 3.

The amortized update time of Algorithm 3, ignoring the time to call FixInvariant for now, is O(1) for updating the data structures, plus running one copy of 𝔸k1 on a graph of maximum degree O(Δ/bk). By induction, and the choice of bk in Equation 3, this takes

Tk1(O(Δbk))=Tk1(O(Δ2k32k1))=O((k1)!Δ22k1logn).

We now bound the runtime of the calls to FixInvariant. Firstly, in each call, it takes O(Δ) time to move the considered vertex w from one set Vi to another set Vj. Moreover, it takes another O(Δ/bk) many calls to 𝔸k1 to remove and insert edges of w. Finally, to implement FixInvariant efficiently, we can keep a list of vertices whose degree have changed in each call to FixInvariant (when we update the edge incident on that vertex) so that we can find a vertex w that violates Section 4 (if any) in O(1) time without having to search the entire graph.

Thus, a single call to FixInvariant takes

O(Δ)+O(Δ/bk)Tk1(O(Δbk))

time in total. Moreover, by Lemma 12, over a sequence of T updates, the total number of calls to FixInvariant is O(kTbk/Δ). Thus, the amortized update time of this step will be

O(kbk)+O(k)Tk1(O(Δbk)) =O(kΔ22k1)+O(k)O((k1)!Δ22k1logn)
=O(k!Δ22k1logn),

concluding the proof.

Lemmas 13 and 14 together conclude the proof of Lemma 11 for the adaptive strategies. We should note that since over a sequence of T updates, we are running Tpoly(n) many copies of 𝔸1 whereas error probability of 𝔸1 is only nT, we can do a union bound over all probabilistic guarantees required in our proof.

Finally, to prove Lemma 11 for oblivious adversaries, notice that by Theorem 4, against an oblivious adversary, 𝔸1 has an amortized update time of O(Δ2) instead. Thus, the same proof of Lemma 14, with the base case of O(Δ2logn) switched with O(Δ2), implies that the amortized update time of 𝔸k has no dependence on logn and is O(k!Δ22k1) time instead.

This fully concludes the proof of Lemma 11 and by extension Theorem 10.

References

  • [1] Dimitris Achlioptas, Fotis Iliopoulos, and Alistair Sinclair. Beyond the lovász local lemma: Point to set correlations and their algorithmic applications. In David Zuckerman, editor, 60th IEEE Annual Symposium on Foundations of Computer Science, FOCS 2019, Baltimore, Maryland, USA, November 9-12, 2019, pages 725–744. IEEE Computer Society, 2019. doi:10.1109/FOCS.2019.00049.
  • [2] 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, Virtual Conference, August 17-19, 2020, 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.
  • [3] Noga Alon, Michael Krivelevich, and Benny Sudakov. Coloring graphs with sparse neighborhoods. Journal of Combinatorial Theory, Series B, 77(1):73–82, 1999. doi:10.1006/JCTB.1999.1910.
  • [4] Nikhil Bansal, Anupam Gupta, and Guru Guruganesh. On the lovász theta function for independent sets in sparse graphs. In Rocco A. Servedio and Ronitt Rubinfeld, editors, Proceedings of the Forty-Seventh Annual ACM on Symposium on Theory of Computing, STOC 2015, Portland, OR, USA, June 14-17, 2015, pages 193–200. ACM, 2015. doi:10.1145/2746539.2746607.
  • [5] 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.
  • [6] Amos Beimel, Haim Kaplan, Yishay Mansour, Kobbi Nissim, Thatchaphol Saranurak, and Uri Stemmer. Dynamic algorithms against an adaptive adversary: generic constructions and lower bounds. 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 1671–1684. ACM, 2022. doi:10.1145/3519935.3520064.
  • [7] Anton Bernshteyn. The johansson-molloy theorem for dp-coloring. Random Structures & Algorithms, 54(4):653–664, 2019. doi:10.1002/RSA.20811.
  • [8] Aaron Bernstein, Sayan Bhattacharya, Peter Kiss, and Thatchaphol Saranurak. Deterministic dynamic maximal matching in sublinear update time. In Michal Koucký and Nikhil Bansal, editors, Proceedings of the 57th Annual ACM Symposium on Theory of Computing, STOC 2025, Prague, Czechia, June 23-27, 2025, pages 132–143. ACM, 2025. doi:10.1145/3717823.3718153.
  • [9] Aaron Bernstein, Jan van den Brand, Maximilian Probst Gutenberg, Danupon Nanongkai, Thatchaphol Saranurak, Aaron Sidford, and He Sun. Fully-dynamic graph sparsifiers against an adaptive adversary. In Mikolaj Bojanczyk, Emanuela Merelli, and David P. Woodruff, editors, 49th International Colloquium on Automata, Languages, and Programming, ICALP 2022, Paris, France, July 4-8, 2022, LIPIcs, pages 20:1–20:20. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2022. doi:10.4230/LIPIcs.ICALP.2022.20.
  • [10] 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.
  • [11] Sayan Bhattacharya, Martín Costa, Nadav Panski, and Shay Solomon. Nibbling at long cycles: Dynamic (and static) edge coloring in optimal time. In David P. Woodruff, editor, Proceedings of the 2024 ACM-SIAM Symposium on Discrete Algorithms, SODA 2024, Alexandria, VA, USA, January 7-10, 2024, pages 3393–3440. SIAM, 2024. doi:10.1137/1.9781611977912.122.
  • [12] 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.
  • [13] Sayan Bhattacharya, Thatchaphol Saranurak, and Pattara Sukprasert. Simple dynamic spanners with near-optimal recourse against an adaptive adversary. In Shiri Chechik, Gonzalo Navarro, Eva Rotenberg, and Grzegorz Herman, editors, 30th Annual European Symposium on Algorithms, ESA 2022, Berlin/Potsdam, Germany, September 5-9, 2022, LIPIcs, pages 17:1–17:19. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2022. doi:10.4230/LIPIcs.ESA.2022.17.
  • [14] Marthe Bonamy, Tom Kelly, Peter Nelson, and Luke Postle. Bounding χ by a fraction of Δ for graphs without large cliques. Journal of Combinatorial Theory, Series B, 157:263–282, 2022. doi:10.1016/J.JCTB.2022.06.002.
  • [15] Rowland Leonard Brooks. On colouring the nodes of a network. In Mathematical Proceedings of the Cambridge Philosophical Society, volume 37(2), pages 194–197. Cambridge University Press, 1941.
  • [16] Aleksander B. G. Christiansen and Eva Rotenberg. Fully-dynamic α+2 arboricity decompositions and implicit colouring. In Mikolaj Bojanczyk, Emanuela Merelli, and David P. Woodruff, editors, 49th International Colloquium on Automata, Languages, and Programming, ICALP 2022, Paris, France, July 4-8, 2022, volume 229 of LIPIcs, pages 42:1–42:20. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2022. doi:10.4230/LIPIcs.ICALP.2022.42.
  • [17] Aleksander B. G. Christiansen, Eva Rotenberg, and Juliette Vlieghe. Sparsity-parameterised dynamic edge colouring. In Hans L. Bodlaender, editor, 19th Scandinavian Symposium and Workshops on Algorithm Theory, SWAT 2024, Helsinki, Finland, June 12-14, 2024, volume 294 of LIPIcs, pages 20:1–20:18. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2024. doi:10.4230/LIPIcs.SWAT.2024.20.
  • [18] Aleksander Bjørn Grodt Christiansen, Krzysztof Nowicki, and Eva Rotenberg. Improved dynamic colouring of sparse graphs. In Barna Saha and Rocco A. Servedio, editors, Proceedings of the 55th Annual ACM Symposium on Theory of Computing, STOC 2023, Orlando, FL, USA, June 20-23, 2023, pages 1201–1214. ACM, 2023. doi:10.1145/3564246.3585111.
  • [19] Ran Duan, Haoqing He, and Tianyi Zhang. Dynamic edge coloring with improved approximation. 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 1937–1945. SIAM, 2019. doi:10.1137/1.9781611975482.117.
  • [20] Maxime Flin and Magnús M. Halldórsson. Faster dynamic (Δ+1)-coloring against adaptive adversaries. In Keren Censor-Hillel, Fabrizio Grandoni, Joël Ouaknine, and Gabriele Puppis, editors, 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.
  • [21] David A. Grable and Alessandro Panconesi. Fast distributed algorithms for {Brooks-Vizing} colourings. In Howard J. Karloff, editor, Proceedings of the Ninth Annual ACM-SIAM Symposium on Discrete Algorithms, 25-27 January 1998, San Francisco, California, USA, pages 473–480. ACM/SIAM, 1998. URL: http://dl.acm.org/citation.cfm?id=314613.314829.
  • [22] Bernhard Haeupler, Slobodan Mitrovic, Srikkanth Ramachandran, Wen-Horng Sheu, and Robert Tarjan. Dynamic construction of the lovasz local lemma. Manuscript, April 2026., 2026.
  • [23] Bernhard Haeupler and Anton Paramonov. Maintaining random assignments under adversarial dynamics. arXiv preprint arXiv:2604.05606, 2026. doi:10.48550/arXiv.2604.05606.
  • [24] Monika Henzinger and Pan Peng. Constant-time dynamic (Δ+1)-coloring. ACM Trans. Algorithms, 18(2):16:1–16:21, 2022. doi:10.1145/3501403.
  • [25] Mohammad Shoaib Jamall. A coloring algorithm for triangle-free graphs. arXiv preprint, 2011. arXiv:1101.5721.
  • [26] Kumar Joag-Dev and Frank Proschan. Negative association of random variables with applications. The Annals of Statistics, pages 286–295, 1983.
  • [27] Anders Johansson. Asymptotic choice number for triangle free graphs. Technical report, Technical report 91-5, DIMACS, 1996.
  • [28] Jeong Han Kim. On brooks’ theorem for sparse graphs. Combinatorics, Probability and Computing, 4(2):97–132, 1995. doi:10.1017/S0963548300001528.
  • [29] Michael Molloy. The list chromatic number of graphs with small clique number, 2018. arXiv:1701.09133.
  • [30] Michael Molloy and Bruce Reed. Graph colouring and the probabilistic method, volume 23. Springer Science & Business Media, 2002.
  • [31] Michael Molloy and Bruce Reed. Colouring graphs when the number of colours is almost the maximum degree. Journal of Combinatorial Theory, Series B, 109:134–195, 2014. doi:10.1016/J.JCTB.2014.06.004.
  • [32] Robin A. Moser. A constructive proof of the lovász local lemma. In Michael Mitzenmacher, editor, Proceedings of the 41st Annual ACM Symposium on Theory of Computing, STOC 2009, Bethesda, MD, USA, May 31 - June 2, 2009, pages 343–350. ACM, 2009. doi:10.1145/1536414.1536462.
  • [33] Robin A. Moser and Gábor Tardos. A constructive proof of the general lovász local lemma. J. ACM, 57(2):11:1–11:15, 2010. doi:10.1145/1667053.1667060.
  • [34] Alessandro Panconesi and Aravind Srinivasan. Randomized distributed edge coloring via an extension of the chernoff–hoeffding bounds. SIAM J. Comput., 26(2):350–368, 1997. doi:10.1137/S0097539793250767.
  • [35] Seth Pettie and Hsin-Hao Su. Fast distributed coloring algorithms for triangle-free graphs. In Fedor V. Fomin, Rusins Freivalds, Marta Z. Kwiatkowska, and David Peleg, editors, Automata, Languages, and Programming - 40th International Colloquium, ICALP 2013, Riga, Latvia, July 8-12, 2013, Proceedings, Part II, volume 7966 of Lecture Notes in Computer Science, pages 681–693. Springer, 2013. doi:10.1007/978-3-642-39212-2_59.
  • [36] Bruce Reed. ω, Δ, and χ. Journal of Graph Theory, 27(4):177–212, 1998. doi:10.1002/(SICI)1097-0118(199804)27:4\%3C177::AID-JGT1\%3E3.0.CO;2-K.
  • [37] Bruce Reed. The list colouring constants. Journal of Graph Theory, 31(2):149–153, 1999. doi:10.1002/(SICI)1097-0118(199906)31:2\%3C149::AID-JGT8\%3E3.0.CO;2-\%23.
  • [38] Bruce Reed. A strengthening of brooks’ theorem. Journal of Combinatorial Theory, Series B, 76(2):136–149, 1999. doi:10.1006/JCTB.1998.1891.
  • [39] Bruce Reed and Benny Sudakov. Asymptotically the list colouring constants are 1. Journal of Combinatorial Theory, Series B, 86(1):27–37, 2002. doi:10.1006/JCTB.2002.2110.
  • [40] Terence Tao. Moser’s entropy compression argument. https://terrytao.wordpress.com/2009/08/05/mosers-entropy-compression-argument/, 2009. Blog post on What’s New, August 5.
  • [41] Vadim G Vizing. Some unsolved problems in graph theory. Russian Mathematical Surveys, 23(6):125, 1968.