New Deterministic Approximation Algorithms for Fully Dynamic
Matching∗

arXiv:1604.05765v1 [] 19 Apr 2016

Sayan Bhattacharya†

Monika Henzinger‡

Danupon Nanongkai§

April 21, 2016

Abstract
We present two deterministic dynamic algorithms for the maximum matching problem. (1) An algorithm that maintains a (2+ ε )-approximate maximum matching in general graphs with O(poly(log n, 1/ε ))
update time. (2) An algorithm that maintains an αK approximation of the value of the maximum matching with O(n2/K ) update time in bipartite graphs, for every sufficiently large constant positive integer
K. Here, 1 ≤ αK < 2 is a constant determined by the value of K. Result (1) is the first deterministic
algorithm that can maintain an o(log n)-approximate maximum matching with polylogarithmic update
time, improving the seminal result of Onak et al. [STOC 2010]. Its approximation guarantee almost
matches the guarantee of the best randomized polylogarithmic update time algorithm [Baswana et al.
FOCS 2011]. Result (2) achieves a better-than-two approximation with arbitrarily small polynomial update time on bipartite graphs. Previously the best update time for this problem was O(m1/4 ) [Bernstein
et al. ICALP 2015], where m is the current number of edges in the graph.

∗A

preliminary version of this paper will appear in STOC 2016.
Institute of Mathematical Sciences, Chennai, India. Email: bsayan@imsc.res.in
‡ Faculty of Computer Science, University of Vienna, Austria. Email: monika.henzinger@univie.ac.at. This work was done in
part while the author was visiting the Simons Institute for the Theory of Computing. The research leading to this work has received
funding from the European Union’s Seventh Framework Programme (FP7/2007-2013) under grant agreement number 317532 and
from the European Research Council under the European Union’s Seventh Framework Programme (FP7/2007-2013)/ERC grant
agreement number 340506.
§ KTH Royal Institute of Technology, Sweden. Email: danupon@gmail.com. Supported by Swedish Research Council grant
2015-04659.
† The

i

Contents

I EXTENDED ABSTRACT
1 Introduction
1.1 Notations and preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1
3

2 General Graphs
2.1 Maintaining a large fractional matching . . . . . . . . . . . . . . . . . . . .
2.2 An overview of our approach . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 An ideal skeleton . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2 A degree-splitting procedure . . . . . . . . . . . . . . . . . . . . . .
2.3 From ideal to approximate skeleton . . . . . . . . . . . . . . . . . . . . . .
2.4 Maintaing an approximate skeleton: Proof of Theorem 2.9 . . . . . . . . . .
2.4.1 Handling the insertion/deletion of an edge . . . . . . . . . . . . . . .
2.4.2 The subroutine TERMINATE-PHASE(.) . . . . . . . . . . . . . . .
2.4.3 Correctness. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.4 Analyzing the amortized update time. . . . . . . . . . . . . . . . . .
2.5 Approximation guarantee from approximate skeletons: Proof of Theorem 2.7
2.5.1 Proof of Claim 2.15 . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.2 Proof of Claim 2.16 . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.3 Proof of Claim 2.17 . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

3
. 3
. 4
. 4
. 5
. 6
. 7
. 8
. 8
. 8
. 8
. 9
. 12
. 13
. 14

3 Bipartite graphs
√
3.1 (2 + ε )-approximation in O( n/ε 2 ) update time
3.1.1 Proof of Lemma 3.3 . . . . . . . . . . .
3.2 Better than 2-approximation . . . . . . . . . . .
3.2.1 The main framework: Residual edges . .
3.2.2 Proof of Lemma 3.11 . . . . . . . . . . .
3.3 Extensions . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

17
17
18
19
19
20
23

4 Open Problems

23

References

24

II DYNAMIC ALGORITHM FOR GENERAL GRAPHS: FULL DETAILS

26

5 Preliminaries
27
5.1 Setting some parameter values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.2 Skeleton of a graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6 Deriving the approximation guarantee: Proof of Theorem 5.8
6.1 Some basic notations . . . . . . . . . . . . . . . . . . . .
6.2 Proof of Lemma 6.2 . . . . . . . . . . . . . . . . . . . . .
6.3 Proof of Lemma 6.3 . . . . . . . . . . . . . . . . . . . . .
6.4 Proof of Lemma 6.4 . . . . . . . . . . . . . . . . . . . . .
6.5 Proof of Lemma 6.5 . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

30
33
33
34
35
36

6.6
6.7

Proof of Lemma 6.6 . . . . .
Proof of Lemma 6.8 . . . . .
6.7.1 Outline of the proof .
6.7.2 The complete proof .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

36
37
38
38

7 Maintaining the edge-set of a skeleton: Proof of Theorem 5.7
7.1 A high level overview of our approach . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 Critical and laminar structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3 Two basic subroutines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.1 Proof of Lemma 7.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4 Our algorithm for maintaining critical and laminar structures . . . . . . . . . . . . .
7.4.1 Initial conditions in the beginning of a phase . . . . . . . . . . . . . . . . .
7.4.2 Handling edge insertion/deletions in the middle of a phase . . . . . . . . . .
7.4.3 Terminating a phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.4 Some useful properties of our algorithm . . . . . . . . . . . . . . . . . . . .
7.4.5 Proof of Lemma 7.23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5 Maintaining the edge-set of an skeleton . . . . . . . . . . . . . . . . . . . . . . . .
7.6 Bounding the amortized update time of our algorithm . . . . . . . . . . . . . . . . .
7.6.1 A few notations and terminologies . . . . . . . . . . . . . . . . . . . . . . .
7.6.2 Roadmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.6.3 A simple bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.6.4 Analyzing the running time of a single call to REBUILD( j) . . . . . . . . .
7.6.5 Bounding the amortized update time of the subroutine REVAMP() . . . . . .
7.6.6 Bounding the amortized update time of REBUILD( j) in the middle of a phase
7.6.7 Proof of Lemma 7.38 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

43
44
44
47
49
51
52
52
54
55
56
57
60
60
60
60
61
61
65
67

III DYNAMIC ALGORITHM FOR BIPARTITE GRAPHS: FULL DETAILS

70

8 Notations and Preliminaries
71
8.1 An important technical theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
9 Invariants maintained by our algorithm
9.1 An overview of the structures maintained by our algorithm
9.2 Invariants for levels i ∈ {2, . . . , K} . . . . . . . . . . . . .
9.3 Feasibility of the structures for levels {2, . . . , K} . . . . . .
9.3.1 Proof of Lemma 9.15 . . . . . . . . . . . . . . . .
9.3.2 Proof of Lemma 9.17 . . . . . . . . . . . . . . . .
9.4 Invariants for level i = 1 . . . . . . . . . . . . . . . . . .
9.5 Feasibility of the structures for level one . . . . . . . . . .
9.5.1 Proof of Lemma 9.22 . . . . . . . . . . . . . . . .
9.6 Some useful properties . . . . . . . . . . . . . . . . . . .
9.7 Feasibility of the solution . . . . . . . . . . . . . . . . . .
9.7.1 Proof of Lemma 9.29 . . . . . . . . . . . . . . . .
9.7.2 Proof of Lemma 9.30 . . . . . . . . . . . . . . . .
9.7.3 Proof of Lemma 9.31 . . . . . . . . . . . . . . . .
9.7.4 Proof of Theorem 9.4 . . . . . . . . . . . . . . . .
9.8 Approximation Guarantee of the Solution . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

74
75
77
79
80
82
83
83
83
85
86
87
88
90
91
92

9.8.1
9.8.2
9.8.3
9.8.4

Proof of Theorem 9.32
Proof of Lemma 9.35 .
Proof of Lemma 9.36 .
Proof of Lemma 9.37 .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

93
97
99
100

10 The algorithm
10.1 Data structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.2 Handling the insertion/deletion of an edge (u, v) in the input graph G = (V, E)
10.2.1 The subroutine FIX-STRUCTURES(i), where i ∈ {2, . . . , K}. . . . .
10.3 Analyzing the amortized update time . . . . . . . . . . . . . . . . . . . . . .
10.3.1 Rules governing the bank accounts . . . . . . . . . . . . . . . . . . .
10.3.2 Proof of Lemma 10.21 . . . . . . . . . . . . . . . . . . . . . . . . .
10.4 Maintaining the size of the fractional assignment w∗1 . . . . . . . . . . . . . .
10.5 Maintaining a (1 + ε )-approximation to the size of wr . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

102
103
104
104
108
109
111
113
114

Part I

EXTENDED ABSTRACT

1 Introduction
In this paper, we consider the dynamic maximum cardinality matching problem. In this problem an algorithm
has to quickly maintain an (integral) maximum-cardinality matching or its approximation, when the n-node
input graph is undergoing edge insertions and deletions. We consider two versions of this problem: In the
matching version, the algorithm has to output the change in the (approximate) matching, if any, after each
edge insertion and deletion. In the value version, the algorithm only has to output the value of the matching.
(Note that an algorithm for the matching version can be used to solve the value version within the same
time.) When stating the running time below, we give the time per update1 . If not stated otherwise, these
results hold for both versions.
The state of the art for maintaining an exact solution for the value version of this problem is a randomized O(n1.495 )-time algorithm [16]. This is complemented by various hardness results which rules out
polylogarithmic update time [1, 8, 11]. As it is desirable for dynamic algorithms to have polylogarithmic
update time, the recent work has focused on achieving this goal by allowing approximate solutions. The
first paper that achieved this is by Onak and Rubinfeld [13], which gave a randomized O(1)-approximation
O(log2 n)-time algorithm and a deterministic O(log n) approximation O(log2 n)-time algorithm. As stated
in the two open problems in [13], this seminal paper opened up the doors for two research directions:
1. Designing a (possibly randomized) polylogarithmic time algorithm with smallest approximation ratio.
2. Designing a deterministic polylogarithmic time algorithm with constant approximation ratio.
The second question is motivated by the fact that randomized dynamic approximation algorithms only fulfill
their approximation guarantee when used by an oblivious adversary, i.e., an adversary that gives the next update without knowing the outputs of the algorithm resulting from earlier updates. This limits the usefulness
of randomized dynamic algorithms. In contrast, deterministic dynamic algorithms fulfill their approximation guarantee against any adversary, even non-oblivous ones. Thus, they can be used, for example, as a
“black box” by any other (potentially static) algorithm, while this is not generally the case for randomized
dynamic algorithms. This motivates the search for deterministic fully dynamic approximation algorithms,
even though a randomized algorithm with the same approximation guarantee might exists.
Up to date, the best answer to the first question is the randomized 2 approximation O(log n) update time
algorithm from [2]. It remains elusive to design a better-than-two approximation factor with polylogarithmic
update time. Some recent works have focused on achieving such approximation factor with lowest update
time possible. The current best update time is O(m1/4 /ε 2.5 ) [3, 4], which is deterministic and guarantees a
(3/2 + ε ) approximation factor.
For the second question, deterministic polylogarithmic-time (1 + ε )-approximation algorithms were known
for the special case of low arboricity graphs [11, 12, 15]. On general graphs, the paper [5] achieved a
deterministic (3 + ε )-approximation polylogarithmic-time algorithm by maintaining a fractional matching;
this algorithm however works only for the value version. No deterministic o(log n) approximation algorithm
with polylogarithmic update time was known for the matching version. (There were many deterministic
constant approximation algorithms with o(m) update time for the matching version (e.g. [3–5, 7, 12]). The
fastest among them requires O(m1/4 /ε 2.5 ) update time [4].)
Our Results. We make progress on both versions of the problem as stated in Theorems 1.1 and 1.2.
Theorem 1.1. For every ε ∈ (0, 1), there is a deterministic algorithm that maintains a (2 + ε )-approximate
maximum matching in a graph in O(poly(log n, 1/ε )) update time, where n denotes the number of nodes.
1 In this discussion, we ignore whether the update time is amortized or worst-case as this is not the focus of this paper. The
update time of our algorithm is amortized.

1

Theorem 1.1 answers Onak and Rubinfeld’s second question positively. In fact, our approximation
guarantee almost matches the best (2-approximation) one provided by a randomized algorithm [2].2 Our
algorithm for Theorem 1.1 is obtained by combining previous techniques [5, 7, 15] with two new ideas that
concern fractional matchings. First, we dynamize the degree splitting process previously used in the parallel
and distributed algorithms literature [9] and use it to reduce the size of the support of the fractional matching
maintained by the algorithm of [5]. This helps us maintain an approximate integral matching cheaply using
the result in [7]. This idea alone already leads to a (3 + ε )-approximation deterministic algorithm. Second,
we improve the approximation guarantee further to (2 + ε ) by proving a new structural lemma that concerns
the ratio between (i) the maximum (integral) matching in the support of a maximal fractional matching and
(ii) the maximum (integral) matching in the whole graph. It was known that this ratio is at least 1/3. We can
improve this ratio to 1/2 with a fairly simple proof (using Vizing’s theorem [18]). We note that this lemma
can be used to improve the analysis of an algorithm in [5] to get the following result: There is a deterministic
algorithm that maintains a (2 + ε ) approximation to the size of the maximum matching in a general graph
in O(m1/3 /ε 2 ) amortized update time.
Theorem 1.2. For every sufficiently large positive integral constant K, we can maintain an αK -approximation
to the value of the maximum matching3 in a bipartite graph G = (V, E), where 1 ≤ αK < 2. The algorithm
is deterministic and has an amortized update time of O(n2/K ).
We consider Theorem 1.2 to be a step towards achieving a polylogarithmic time (randomized or deterministic) fully dynamic algorithm with an approximation ratio less than 2, i.e., towards answering Onak
and Rubinfeld’s first question. This is because, firstly, it shows that on bipartite graphs the better-than-two
approximation factor can be achieved with arbitrarily small polynomial update time, as opposed to the previous best O(m1/4 ) time of [3]. Secondly, it rules out a natural form of hardness result and thus suggests that a
polylogarithmic-time algorithm with better-than-two approximation factor exists on bipartite graphs. More
precisely, the known hardness results (e.g. those in [1, 8, 11, 14]) that rule out a polylogarithmic-time α approximation algorithm (for any α > 0) are usually in the form “assuming some conjecture, there exists a
constant δ > 0 such that for any constant ε > 0, there is no (1 − ε )α -approximation algorithm that has nδ −ε
update time”; for example, for dynamically 2-approximating graph’s diameter, this statement was proved
for α = 2 and δ = 1/2 in [8], implying that any better-than-two approximation algorithm for this problem
will require an update time close to n1/2 . Our result in 1.2 implies that a similar statement cannot be proved
for α = 2 for the bipartite matching problem since, for any constant δ > 0, there is a (2 − ε )-approximation
algorithm with update time, say, O(nδ /2 ) for some ε > 0.
To derive an algorithm for Theorem 1.2, we use the fact that in a bipartite graph the size of the maximum
fractional matching is the same as the size of the maximum integral matching. Accordingly, a maximal
fractional matching (which gives 2-approximation) can be augmented by a fractional b-matching, for a
carefully chosen capacity vector b, to obtain a better-than-two approximate fractional matching. The idea
of “augmenting a bad solution” that we use here is inspired by the approach in the streaming setting by
Konrad et al. [10]. But the way it is implemented is different as [10] focuses on using augmenting paths
while we use fractional b-matchings.
Organization. In Section 1.1, we define some basic concepts and notations that will be used throughout
the rest of this paper. In Section 2, we give an overview of our algorithm for Theorem 1.1. In Section 3,
we highlight the main ideas behind our algorithm for Theorem 1.2. Finally, we conclude with some open
problems in Section 4. All the missing details can be found in Part II and Part III of the paper.
combining our result with the techniques of [6] in a standard way, we also obtain a deterministic (4 + ε )-approximation
O(poly log npoly(1/ε ) logW )-time for the dynamic maximum-weight matching problem, where W is the ratio between the largest
and smallest edge weights.
3 We can actually maintain an approximate fractional matching with the same performance bounds.
2 By

2

1.1

Notations and preliminaries

Let n = |V | and m = |E| respectively denote the number of nodes and edges in the input graph G = (V, E).
Note that m changes with time, but n remains fixed. Let degv (E ′ ) denote the number of edges in a subset
E ′ ⊆ E that are incident upon a node v ∈ V . An (integral) matching M ⊆ E is a subset of edges that do
not share any common endpoints. The size of a matching is the number of edges contained in it. We are
also interested in the concept of a fractional matching. Towards this end, we first define the notion of a
fractional assignment. A fractional assignment w assigns a weight w(e) ≥ 0 to every edge e ∈ E. We
let Wv (w) = ∑(u,v)∈E w(u, v) denote the total weight received by a node v ∈ V under w from its incident
edges. Further, the support of w is defined to be the subset of edges e ∈ E with w(e) > 0. Given two
fractional assignments w, w′ , we define their addition (w + w′ ) to be a new fractional assignment that assigns
a weight (w + w′ )(e) = w(e) + w′ (e) to every edge e ∈ E. We say that a fractional assignment w forms a
fractional matching iff we have Wv (w) ≤ 1 for all nodes v ∈ V . Given any subset of edges E ′ ⊆ E, we define
w(E ′ ) = ∑e∈E ′ w(e). We define the size of a fractional matching w to be w(E). Given any subset of edges
E ′ ⊆ E, we let Opt f (E ′ ) (resp. Opt(E ′ )) denote the maximum possible size of a fractional matching with
support E ′ (resp. the maximum possible size of an integral matching M ′ ⊆ E ′ ). Theorem 1.3 follows from
the half-integrality of the matching polytope in general graphs and its total unimodularity in bipartite graphs.
Theorem 1.3. Consider any subset of edges E ′ ⊆ E in the graph G = (V, E). We have: Opt(E ′ ) ≤
Opt f (E ′ ) ≤ (3/2) · Opt(E ′ ). Further, if the graph G is bipartite, then we have: Opt f (E ′ ) = Opt(E ′ ).
Gupta and Peng [7] gave a dynamic algorithm that maintains a (1 + ε )-approximate maximum matching
√
in O( m/ε 2 ) update time. A simple modification of their algorithm gives the following result.

Theorem 1.4. [7] If the maximum degree in a dynamic graph never exceeds some threshold d, then we can
maintain a (1 + ε )-approximate maximum matching in O(d/ε 2 ) update time.
We say that a fractional matching w is α -maximal, for α ≥ 1, iff Wu (w) +Wv (w) ≥ 1/α for every edge
(u, v) ∈ E. Using LP-duality and complementary slackness conditions, one can show the following result.

Lemma 1.5. Opt f (E) ≤ 2α · w(E) for every α -maximal fractional matching w in a graph G = (V, E).

2 General Graphs
We give a dynamic algorithm for maintaining an approximate maximum matching in a general graph. We
consider the following dynamic setting. Initially, the input graph is empty. Subsequently, at each time-step,
either an edge is inserted into the graph, or an already existing edge is deleted from the graph. The nodeset of the graph, however, remains unchanged. Our main result in this section is stated in Theorem 1.1.
Throughout this section, we will use the notations and concepts introduced in Section 1.1.
2.1

Maintaining a large fractional matching

Our algorithm for Theorem 1.1 builds upon an existing dynamic data structure that maintains a large fractional matching. This data structure was developed in [5], and can be described as follows. Fix a small
constant ε > 0. Define L = ⌈log(1+ε ) n⌉, and partition the node-set V into L + 1 subsets V0 , . . . ,VL . We say
that the nodes belonging to the subset Vi are in “level i”. We denote the level of a node v by ℓ(v), i.e., v ∈ Vi
iff ℓ(v) = i. We next define the “level of an edge” (u, v) to be ℓ(u, v) = max(ℓ(u), ℓ(v)). In other words,
the level of an edge is the maximum level of its endpoints. We let Ei = {e ∈ E : ℓ(e) = i} denote the set of
edges at level i, and define the subgraph Gi = (V, Ei ). Thus, note that the edge-set E is partitioned by the
subsets E0 , . . . , EL . For each level i ∈ {0, . . . , L}, we now define a fractional assignment wi with support Ei .
The fractional assignment wi is uniform, in the sense that it assigns the same weight wi (e) = 1/di , where
di = (1 + ε )i , to every edge e ∈ Ei in its support. In contrast, wi (e) = 0 for every edge e ∈ E \ Ei . Throughout
the rest of this section, we refer to this structure as a “hierarchical partition”.
3

Theorem 2.1. [5] We can maintain a hierarchical partition dynamically in O(log n/ε 2 ) update time. The
algorithm ensures that the fractional assignment w = ∑Li=0 wi is a (1 + ε )2 -maximal matching in G = (V, E).
Furthermore, the algorithm ensures that 1/(1 + ε )2 ≤ Wv (w) ≤ 1 for all nodes v ∈ V at levels ℓ(v) > 0.
Corollary 2.2. The fractional matching w in Theorem 2.1 is a 2(1 + ε )2 -approximation to Opt f (E).

Proof. Follows from Lemma 1.5 and Theorem 2.1.
Corollary 2.3. Consider the hierarchical partition in Theorem 2.1. There, we have degv (Ei ) ≤ di for all
nodes v ∈ V and levels 0 ≤ i ≤ L.
Proof. The corollary holds since 1 ≥ Wv (w) ≥ Wv (wi ) = ∑(u,v)∈Ei wi (u, v) = (1/di ) · degv (Ei ).
Accordingly, throughout the rest of this section, we refer to di as being the degree threshold for level i.
2.2

An overview of our approach

We will now explain the main ideas that are needed to prove Theorem 1.1. Due to space constraints, we
will focus on getting a constant approximation in O(poly log n) update time. See the full version of the
paper for the complete proof of Theorem 1.1. First, we maintain a hierarchical partition as per Theorem 2.1.
This gives us a 2(1 + ε )2 -approximate maximum fractional matching (see Corollary 2.2). Next, we give
a dynamic data structure that deterministically rounds this fractional matching into an integral matching
without losing too much in the approximation ratio. The main challenge is to ensure that the data structure
has O(poly log n) update time, for otherwise one could simply use any deterministic rounding algorithm that
works well in the static setting.
2.2.1

An ideal skeleton

Our dynamic rounding procedure, when applied on top of the data structure used for Theorem 2.1, will
output a low-degree subgraph that approximately preserves the size of the maximum matching. We will
then extract a large integral matching from this subgraph using Theorem 1.4. To be more specific, recall
that w is the fractional matching maintained in Theorem 2.1. We will maintain a subset of edges E ′ ⊆ E in
O(poly log n) update time that satisfies two properties.
There is a fractional matching w′ with support E ′ such that w(E) ≤ c · w′ (E ′ ) for some constant c ≥ 1. (1)
degv (E ′ ) = O(poly log n) for all nodes v ∈ V. (2)

Equation 1, along with Corollary 2.2 and Theorem 1.3, guarantees that the subgraph G′ = (V, E ′ ) preserves
the size of the maximum matching in G = (V, E) within a constant factor. Equation 2, along with Theorem 1.4, guarantees that we can maintain a matching M ′ ⊆ E ′ in O(poly log n/ε 2 ) update time such that
Opt(E ′ ) ≤ (1 + ε ) · |M ′ |. Setting ε to be some small constant (say, 1/3), these two observations together
imply that we can maintain a O(1)-approximate maximum matching M ′ ⊆ E in O(poly log n) update time.
To carry out this scheme, we note that in the hierarchical partition the degree thresholds di = (1 + ε )i
get smaller and smaller as we get into lower levels (see Corollary 2.3). Thus, if most of the value of w(E)
is coming from the lower levels (where the maximum degree is already small), then we can easily satisfy
′
equations 1, 2. Specifically, we fix a level 0 ≤ L′ ≤ L with degree threshold dL′ = (1 + ε )L = Θ(poly log n),
SL′
and define the edge-set Y = j=0 E j . We also define w+ = ∑i>L′ wi and w− = ∑i≤L′ wi . Note that w(E) =
w+ (E) + w−(E). Now, consider two possible cases.
Case 1. w− (E) ≥ (1/2) · w(E). In other words, most of the value of w(E) is coming from the levels [0, L′ ].
′
By Corollary 2.3, we have degv (Y ) ≤ ∑Lj=0 d j ≤ (L′ + 1) · dL′ = Θ(poly log n) for all nodes v ∈ V . Thus, we
can simply set w′ = w+ and E ′ = Y to satisfy equations 1, 2.

4

Case 2. w+ (E) > (1/2) · w(E). In other words, most of the value of w(E) is coming from the levels [L′ +
1, L]. To deal with this case, we introduce the concept of an ideal skeleton. See Definition 2.4. Basically,
this is a subset of edges Xi ⊆ Ei that scales down the degree of every node by a factor of di /dL′ . We will
later show how to maintain a structure akin to an ideal skeleton in a dynamic setting. Once this is done, we
can easily construct a new fractional assignment ŵi that scales up the weights of the surviving edges in Xi
by the same factor di /dL′ . Since wi (e) = 1/di for all edges e ∈ Ei , we set ŵi (e) = 1/dL′ for all edges e ∈ Xi .
To ensure that Xi is the support of the fractional assignment ŵi , we set ŵi (e) = 0 for all edges e ∈ E \ Xi . Let
X = ∪i>L′ Xi and ŵ = ∑i>L′ ŵi . It is easy to check that this transformation preserves the weight received by a
node under the fractional assignment w+ , that is, we have Wv (ŵ) = Wv (w+ ) for all nodes v ∈ V . Accordingly,
Lemma 2.5 implies that if we set w′ = ŵ and E ′ = X , then equations 1, 2 are satisfied.
Definition 2.4. Consider any level i > L′ . An ideal skeleton at level i is a subset of edges Xi ⊆ Ei such
that deg(v, Xi ) = (dL′ /di ) · deg(v, Ei ) for all nodes v ∈ V . Define a fractional assignment ŵi on support Xi
by setting ŵi (e) = 1/dL′ for all e ∈ Xi . For every other edge e ∈ E \ Xi , set ŵi (e) = 0. Finally, define the
S
edge-set X = i>L′ Xi and the fractional assignment ŵ = ∑ j>L′ ŵ j .

Lemma 2.5. We have: degv (X ) = O(poly log n) for all nodes v ∈ V , and ŵ(E) = w+ (E). The edge-set X
and the fractional assignment ŵ are defined as per Definition 2.4.

Proof. Fix any node v ∈ V . Corollary 2.3 and Definition 2.4 imply that: degv (X ) = ∑ j>L′ degv (X j ) =
∑ j>L′ (dL′ /d j ) × degv (E j ) ≤ ∑ j>L′ (dL′ /d j )d j = (L − L′ )dL′ = O(poly log n).
To prove the second part, consider any level i > L′ . Definition 2.4 implies that Wv (ŵi ) = (1/dL′ ) ·
degv (Xi ) = (1/di ) · degv (Ei ) = Wv (wi ). Accordingly, we infer that: Wv (ŵ) = ∑i>L′ Wv (ŵi ) = ∑i>L′ Wv (wi ) =
Wv (w+ ). Summing over all the nodes, we get: ∑v∈V Wv (ŵ) = ∑v∈V Wv (w+ ). It follows that ŵ(E) = w+ (E).
2.2.2

A degree-splitting procedure

It remains to show to how to maintain an ideal skeleton. To gain some intuition, let us first consider the problem in a static setting. Fix any level i > L′ , and let λi = di /dL′ . An ideal skeleton at level i is simply a subset
of edges Xi ⊆ Ei that scales down the degree of every node (w.r.t. Ei ) by a factor λi . Can we compute such a
subset Xi in O(|Ei | · poly log n) time? Unless we manage to solve this problem in the static setting, we cannot
expect to get a dynamic data structure for the same problem with O(poly log n) update time. The SPLIT(Ei)
subroutine described below answers this question in the affirmative, albeit for λi = 2. Specifically, in linear
time the subroutine outputs a subset of edges where the degree of each node is halved. If λi > 2, then to
get an ideal skeleton we need to repeatedly invoke this subroutine log2 λi times: each invocation of the subroutine reduces the degree of each node by a factor of two, and hence in the final output the degree of each
node is reduced by a factor of λi .4 This leads to a total runtime of O(|Ei | · log2 λi ) = O(|Ei | · log n) since
λi = di /dL′ ≤ di ≤ n.
The SPLIT(E ) subroutine, where E ⊆ E. To highlight the main idea, we assume that (1) degv (E ) is even
for every node v ∈ V , and (2) there are an even number of edges in E . Hence, there exists an Euler tour
on E that visits each edge exactly once. We construct such an Euler tour in O(|E |) time and then collect
alternating edges of this Euler tour in a set H . It follows that (1) H ⊆ E with |H | = |E |/2, and (2)
degv (|H |) = (1/2) · degv (|E |) for every node v ∈ V . The subroutine returns the set of edges H . In other
words, the subroutine runs in O(|E |) time, and returns a subgraph that halves the degree of every node.
4 To

highlight the main idea, we assume that λi is a power of 2.

5

2.3

From ideal to approximate skeleton

We now shift our attention to maintaining an ideal skeleton in a dynamic setting. Specifically, we focus on
the following problem: We are given an input graph Gi = (V, Ei ), with |V | = n, that is undergoing a sequence
of edge insertions/deletions. The set Ei corresponds to the level i edges in the hierarchical partition (see
Section 2.1). We always have degv (Ei ) ≤ di for all nodes v ∈ V (see Corollary 2.3). There is a parameter
1 ≤ λi = di /dL′ ≤ n. In O(poly log n) update time, we want to maintain a subset of edges Xi ⊆ Ei such that
degv (Xi ) = (1/λi ) · degv (Ei ) for all nodes v ∈ V . The basic building block of our dynamic algorithm will be
the (static) subroutine SPLIT(E ) from Section 2.2.2.
Unfortunately, we will not be able to achieve our initial goal, which was to reduce the degree of every node by exactly the factor λi in a dynamic setting. For one thing, there might be some nodes v with
degv (Ei ) < λi . It is clearly not possible to reduce their degrees by a factor of λi (otherwise their new degrees
will be between zero and one). Further, we will need to introduce some slack in our data structures if we
want to ensure polylogarithmic update time.
We now describe the structures that will be actually maintained by our dynamic algorithm. We maintain
a partition of the node-set V into two subsets: Bi ⊆ V and Ti = V \ B. The nodes in Bi (resp. Ti ) are called
“big” (resp. “tiny”). We also maintain a subset of nodes Si ⊆ V that are called “spurious”. Finally, we
maintain a subset of edges Xi ⊆ Ei . Fix two parameters ε , δ ∈ (0, 1). For technical reasons that will become
clear later on, we require that:
(3)
ε = 1/100, and δ = ε 2 /L
We ensure that the following properties are satisfied.
degv (Ei ) ≥ ε di /L for all nodes v ∈ Bi \ Si .

degv (Ei ) ≤ 2ε di /L for all nodes v ∈ Ti \ Si .

|Si | ≤ δ · |Bi |

(1 + ε )
(1 − ε )
· degv (Ei ) ≤ degv (Xi ) ≤
· degv (Ei )
λi
λi
for all nodes v ∈ Bi \ Si .
degv (Xi ) ≤ (1/λi ) · (2ε di /L) for all nodes v ∈ Ti \ Si .
degv (Xi ) ≤ (1/λi ) · di for all nodes v ∈ Si .

(4)
(5)
(6)

(7)
(8)
(9)

Equation 4 implies that all the non-spurious big nodes have large degrees in Gi = (V, Ei ). On a similar
note, equation 5 implies that all the non-spurious tiny nodes have small degrees in Gi . Next, by equation 6,
the number of spurious nodes is negligibly small in comparison with the number of big nodes. By equation 7,
the degrees of the non-spurious big nodes are scaled by a factor that is very close to λi . Thus, the nonspurious big nodes satisfy an approximate version of the degree-splitting property required by Definition 2.4.
Moving on, by equation 8, the degrees of the non-spurious tiny nodes in Xi are at most (1/λi )·(2ε di /L) =
2ε dL′ /L. Since each edge in Xi receives weight 1/dL′ under the assignment ŵi (see Definition 2.4), we infer
that Wv (ŵi ) = (1/dL′ ) · degv (Xi ) ≤ 2ε /L for all nodes v ∈ Ti \ Si . Since there are at most (L − L′ ) relevant
levels in a hierarchical partition, we infer that:

∑

i>L′ :v∈Ti \Si

Wv (ŵi ) ≤ L · (2ε /L) = 2ε

(10)

Since for a non-spurious tiny node v ∈ Ti \ Si we have degv (Ei ) ≤ 2ε di /L (see equation 5) and Wv (wi ) =
(1/di ) · degv (Ei ) ≤ 2ε /L, an exactly similar argument gives us:

∑

i>L′ :v∈Ti \Si

Wv (wi ) ≤ L · (2ε /L) = 2ε
6

(11)

Equations 10, 11 have the following implication: The levels where v is a non-spurious tiny node contribute
a negligible amount towards the weights Wv (w+ ) and Wv (ŵ) (see Section 2.2.1). Hence, although we are no
longer guaranteed that the degrees of these nodes will be scaled down exactly by the factor λi , this should
not cause too much of a problem – the sizes of the fractional assignments w+ (E) and ŵ(E) should still be
close to each other as in Section 2.2.1.
Finally, Corollary 2.3 states that the degree of a node in Ei is at most di . Hence, according to the
definition of an ideal skeleton (see Definition 2.4), the degree of a node in Xi ought not to exceed (1/λi )·di =
dL′ . Equation 9 ensures that the spurious nodes satisfy this property.
If the set of edges Xi satisfies the conditions described above, then we say that we have an approximateskeleton at our disposal. This is formally stated as follows.
Definition 2.6. Fix any level i > L′ , and suppose that there is a partition of the node-set V into two subsets
Bi ⊆ V and Ti = V \ Bi . Further, consider another subset of nodes Si ⊆ V and a subset of edges Xi ⊆ Ei . The
tuple (Bi , Ti , Si , Xi ) is an approximate-skeleton iff it satisfies equations (4) – (9).
One may object at this point that we have deviated from the concept of an ideal skeleton (see Definition 2.4) so much that it will impact the approximation ratio of our final algorithm. To address this concern,
we now state the following theorem whose proof appears in Section 2.5.
Theorem 2.7. For each level i > L′ , consider an approximate skeleton as per Definition 2.6. Let X = i>L′ Xi
S
denote the set of edges from these approximate-skeletons. Let Y = i≤L′ Ei denote the set of edges from the
remaining levels in the hierarchical partition. Then we have:
1. There is a fractional matching w′ on support X ∪Y such that w(E) ≤ O(1) · w′ (X ∪Y ). Here, w is the
fractional matching given by Theorem 2.1.
2. degv (X ∪Y ) = O(poly log n) for all v ∈ V .
In other words, the set of edges X ∪Y satisfies equations 1, 2.
S

As per the discussion immediately after equations 1, 2, we infer the following guarantee.
Corollary 2.8. Suppose that for each level i > L′ there is a dynamic algorithm that maintains an approximateskeleton in O(poly log n) update time. Then we can also maintain a O(1)-approximate maximum matching
in the input graph G in O(poly log n) update time.
It remains to show how to maintain an approximate skeleton efficiently in a dynamic setting. Accordingly, we state the following theorem whose proof appears in Section 2.4.
Theorem 2.9. Consider any level i > L′ . In O(poly log n) update time, we can maintain an approximateskeleton at level i as per Definition 2.6.
Corollary 2.8 and Theorem 2.9 imply that we can maintain a O(1)-approximate maximum matching in
a dynamic graph in O(poly log n) update time.
2.4

Maintaing an approximate skeleton: Proof of Theorem 2.9

Fix a level i > L′ . We will show how to efficiently maintain an approximate skeleton at level i under the
assumption that λi = 2. In the full version of the paper, if λi > 2, then we iteratively apply the algorithm
presented here O(log2 λi ) = O(log2 (di /dL′ )) = O(log n) times, and each iteration reduces the degrees of the
nodes by a factor of two. Hence, after the final iteration, we get a subgraph that is an approximate skeleton
as per Definition 2.6.
We maintain the set of edges EBi = {(u, v) ∈ Ei : {u, v} ∩ Bi 6= 0}
/ that are incident upon the big nodes.
Further, we associate a “status bit” with each node v ∈ V , denoted by S TATUS [v] ∈ {0, 1}. We ensure that
they satisfy two conditions: (1) If S TATUS [v] = 1, then degv (Ei ) ≥ ε di /L (which is the threshold for nonspurious big nodes in equation 4). (2) If S TATUS [v] = 0, then degv (Ei ) ≤ 2ε di /L (which is the threshold for
7

non-spurious tiny nodes in equation 5). Whenever an edge incident upon v is inserted into (resp. deleted
from) Ei , we update the status bit of v in a lazy manner (i.e., we flip the bit only if one of the two conditions
is violated). We define an “epoch” of a node v to be the time-interval between any two consecutive flips of
the bit S TATUS [v]. Since there is a gap of ε di /L between the thresholds in equations 4, 5, we infer that:
In any epoch of a node v, at least ε di /L edge insertions/deletions incident upon v takes place in Ei . (12)
Our dynamic algorithm runs in “phases”. In the beginning of a phase, there are no spurious nodes, i.e., we
have Si = 0.
/ During a phase, we handle the insertion/deletion of an edge in Ei as follows.
2.4.1

Handling the insertion/deletion of an edge

Consider the insertion/deletion of an edge (u, v) in Ei . To handle this event, we first update the set Ei and
the status bits of u, v. If {u, v} ∩ Bi 6= 0/ , then we also update the edge-set EBi . Next, for every endpoint
x ∈ {u, v} \ Si , we check if the node x violates any of the equations 4, 5, 7. If yes, then we set Si ←
Si ∪ {x}. Finally, we check if |Si | > δ · |Bi |, and if yes, then we terminate the phase by calling the subroutine
TERMINATE-PHASE(.).
2.4.2

The subroutine TERMINATE-PHASE(.)

We scan through the nodes in Si . For each such node v ∈ Si , if S TATUS [v] = 1, then we set Bi ← Bi ∪{v}, Ti ←
Ti \ {v}, and ensure that all the edges (u, v) ∈ Ei incident upon v are included in EBi . Else if S TATUS [v] = 0,
then we set Ti ← Ti ∪ {v}, Bi ← Bi \ {v}, and ensure that all the edges (u, v) ∈ Ei incident upon v are
excluded from EBi . Finally, we set Si ← 0/ and Xi ← SPLIT(EBi ) (see Section 2.2.2). From the next edge
insertion/deletion in Ei , we begin a new phase.
2.4.3

Correctness.

At the start of a phase, clearly all the properties hold. This fact, along with the observation that an edge is
never inserted into Xi during the middle of a phase, implies that equations 8, 9 hold all the time. Whenever a
node violates equations 4, 5, 7, we make it spurious. Finally, whenever equation 6 is violated, we terminate
the phase. This ensures that all the properties hold all the time.
2.4.4

Analyzing the amortized update time.

Handling an edge insertion/deletion in Ei in the middle of a phase needs O(1) update time. Just before a
phase ends, let b and s respectively denote the number of big and spurious nodes. Since a phase ends only
when equation 6 is violated, we have s ≥ δ · b. In the subroutine TERMINATE-PHASE(.), updating the
edge-set EBi requires O(s · di ) time, since we need to go through all the s nodes in S, and for each such node,
we need to check all the edges incident upon it (and a node can have at most di edges incident upon it by
Corollary 2.3). At this stage, the set Bi consists of at most (s+ b) nodes, and so the set EBi consists of at most
(s + b)di edges. Hence, the call to the subroutine SPLIT(EBi ) takes O((s + b)di ) time. Accordingly, the total
time taken to terminate the phase is O((s + b)di ) = O((s + s/δ )di ) = O(sdi /δ ). We thus reach the following
conclusion: The total time spent on a given phase is equal to O(sdi /δ ), where s is the number of spurious
nodes at the end of the phase. Since Si = 0/ in the beginning of the phase, we can also interpret s as being
the number of nodes that becomes spurious during the phase. Let C denote a counter that is initially set to
zero, and is incremented by one each time some node becomes spurious. From the preceding discussion,
it follows that the total update time of our algorithm, across all the phases, is at most O(Cdi /δ ). Let t be
the total number of edge insertions/deletions in Ei . We will show that C = O(tL/(ε 2 di )). This will imply
an amortized update time of O((1/t) ·Cdi /δ ) = O(L/ε 2 δ ) = O(poly log n). The last equality holds due to
equation 3.
Note that during a phase a node v becomes spurious because of one of two reasons: (1) It violated
equations 4 or 5. In this case, the node’s status bit is flipped. Hence, by equation 12, between any two

8

such events, at least ε di /L edge insertions/deletions occur incident upon v. (2) It violates equation 7. In this
event, note that in the beginning of the phase we had v ∈ Bi , degv (Xi ) = (1/2) · degv (Ei ) = (1/λi ) · degv (Ei )
and degv (Ei ) ≥ ε di /L. The former guarantee holds since we set Xi ← SPLIT(EBi ) at the end of the previous
phase, whereas the latter guarantee follows from equation 4. On the other hand, when the node v violates
equation 7, we find that degv (Xi ) differs from (1/λi )·degv (Ei ) by at least (ε /λi )·degv (Ei ) = (ε /2)·degv (Ei ).
Accordingly, during this time-interval (that starts at the beginning of the phase and ends when equation 7
is violated), at least Ω(ε 2 di /L) edge insertions/deletions incident upon v must have taken place in Ei . To
summarize, for each unit increment in C, we must have Ω(ε 2 di /L) edge insertions/deletions in Ei . Thus, we
have C = O(t/(ε 2 di /L)) = O(tL/(ε 2 di )).
2.5

Approximation guarantee from approximate skeletons: Proof of Theorem 2.7

We devote this section to the complete proof of Theorem 2.7. At a high level, the main idea behind the
proof remains the same as in Section 2.2.1. We will have to overcome several intricate obstacles, however,
because now we are dealing with the relaxed notion of an approximate skeleton as defined in Section 2.3.
We start by focussing on the second part of Theorem 2.7, which states that the degree of every node in
X ∪Y is at most O(poly log n). This is stated and proved in Lemma 2.10.
Lemma 2.10. Consider the subsets of edges X ⊆ E and Y ⊆ E as per Theorem 2.7. Then we have degv (X ∪
Y ) = O(poly log n) for every node v ∈ V .
Proof. We first bound the degree of a node v ∈ V in X . Towards this end, consider any level i > L′ . By
equation 9, we have that degv (Xi ) ≤ (1/λi ) · di = dL′ for all spurious nodes v ∈ Si . By equation 8, we have
degv (Xi ) ≤ (1/λi )·(2ε di /L) = 2ε dL′ /L ≤ dL′ for all non-spurious tiny nodes v ∈ Ti \Si . Finally, by equation 7
and Corollary 2.3, we have that degv (Xi ) ≤ ((1 + ε )/λi ) · degv (Ei ) ≤ (1 + ε ) · (di /λi ) = (1 + ε ) · dL′ for all
non-spurious big nodes v ∈ Bi \ Si . By Definition 2.6, a node belongs to exactly one of the three subsets – Si ,
Ti \ Si and Bi \ Si . Combining all these observations, we get: degv (Xi ) ≤ (1 + ε ) · dL′ = O(poly log n) for all
nodes v ∈ V . Now, summing over all i > L′ , we get: degv (X ) = ∑i>L′ degv (Xi ) ≤ (L − L′ ) · O(poly log n) =
O(poly log n) for all the nodes v ∈ V .
Next, we bound the degree of a node v ∈ V in Y . Note that the degree thresholds in the levels [0, L′ ]
are all at most dL′ . Specifically, for all i ≤ L′ and v ∈ V , Corollary 2.3 implies that degv (Ei ) ≤ di ≤ dL′ =
O(poly log n). Hence, for every node v ∈ V , we have degv (Y ) = ∑i≤L′ degv (Ei ) ≤ (L′ + 1) · O(poly log n) =
O(poly log n).
To summarize, the maximum degree of a node in the edge-sets X and Y is O(poly log n). Hence, for
every node v ∈ V , we have: degv (X ∪Y ) = degv (X ) + degv (Y ) = O(poly log n). This concludes the proof of
the lemma.
We now focus on the first part of Theorem 2.7, which guarantees the existence of a large fractional
matching with support X ∪ Y . This is stated in the lemma below. Note that Lemma 2.10 and Lemma 2.11
together imply Theorem 2.7.
Lemma 2.11. Consider the subsets of edges X ⊆ E and Y ⊆ E as per Theorem 2.7. Then there exists a
fractional matching w′ on support X ∪Y such that w(E) ≤ O(1) · w′ (E). Here, w is the fractional matching
given by Theorem 2.1.
We devote the rest of this section to the proof of Lemma 2.11. As in Section 2.2.1, we start by defining
two fractional assignments w+ = ∑i>L′ wi and w− = ∑i≤L′ wi . In other words, w+ captures the fractional
weights assigned to the edges in levels [L′ + 1, L] by the hierarchical partition, whereas w− captures the
fractional weights assigned to the edges in the remaining levels [0, L′ ]. The fractional assignment w+ has
support ∪i>L′ Ei , whereas the fractional assignment w− has support ∪i≤L′ Ei = Y . We have w = w+ + w−
and w(E) = w+ (E) + w− (E). If at least half of the value of w(E) is coming from the levels [0, L′ ], then
9

there is nothing to prove. Specifically, suppose that w− (E) ≥ (1/2) · w(E). Then we can set w′ = w− and
obtain w(E) ≤ 2 · w− (E) = 2 · w− (Y ) = 2 · w′ (Y ) = 2 · w′ (X ∪ Y ). This concludes the proof of the lemma.
Accordingly, from this point onward, we will assume that at least half of the value of w(E) is coming from
the levels i > L′ . Specifically, we have:
w(E) ≤ 2 · w+ (E)
(13)
Given equation 13, we will construct a fractional matching with support X whose size is within a constant
factor of w(E).5 We want to follow the argument applied to ideal skeletons in Section 2.2.1 (see Definition 2.4). Accordingly, for every level i > L′ we now define a fractional assignment ŵi with support Xi .
ŵi (e) = 1/dL′ for all edges e ∈ Xi
= 0

for all edges e ∈ E \ Xi .

(14)

∑ ŵi

(15)

We next define the fractional assignment ŵ.
ŵ =

i>L′

In Section 2.2.1 (see Lemma 2.5), we observed that ŵ is a fractional matching with support X whose
size is exactly the same as w+ (E). This observation, along with equation 13, would have sufficed to prove
Lemma 2.11. The intuition was that at every level i > L′ , the degree of a node v ∈ V in Xi is exactly
(1/λi ) times its degree in Ei . In contrast, the weight of an edge e ∈ Xi under ŵi is exactly λi times its
weight under wi . This ensured that the weight of node remained unchanged as we transitioned from wi
to ŵi , that is, Wv (wi ) = Wv (ŵi ) for all nodes v ∈ V . Unfortunately, this guarantee no longer holds for
approximate-skeletons. It still seems natural, however, to compare the weights a node receives under these
two fractional assignments wi and ŵi . This depends on the status of the node under consideration, depending
on whether the node belongs to the set Bi \ Si , Ti \ Si or Si (see Definition 2.6). Towards this end, we derive
Claims 2.12, 2.13, 2.14. The first claim states that the weight of a non-spurious big node under ŵi is close
to its weight under wi . The second claim states that the weight of a non-spurious tiny node under ŵi is very
small (less than 2ε /L). The third claim states that the weight of a spurious node under ŵi is at most one.
Claim 2.12. For all i > L′ and v ∈ Bi \ Si , we have:
(1 − ε ) ·Wv (wi ) ≤ Wv (ŵi ) ≤ (1 + ε ) ·Wv (wi ).
Proof. Fix any level i > L′ and any node v ∈ Bi \ Si . The claim follows from equation 7 and the facts below:
(1) λi = di /dL′ .

(2) Wv (ŵi ) = (1/dL′ ) · degv (Xi ). See equation 14.
(3) Wv (wi ) = (1/di ) · degv (Ei ). See Section 2.1.
Claim 2.13. For all levels i > L′ and non-spurious tiny nodes v ∈ Ti \ Si , we have Wv (ŵi ) ≤ 2ε /L.
Proof. Fix any level i > L′ and any node v ∈ Ti \ Si . The claim follows from equation 8 and the facts below:
(1) λi = di /dL′ .

(2) Wv (ŵi ) = (1/dL′ ) · degv (Xi ). See equation 14.
Claim 2.14. For all i > L′ and v ∈ Si , we have Wv (ŵi ) ≤ 1.
5 Recall

that w is the fractional matching given by the hierarchical partition. See Section 2.1.

10

Proof. Fix any level i > L′ and any node v ∈ Si . The claim follows from equation 9 and the facts below:
(1) λi = di /dL′ .

(2) Wv (ŵi ) = (1/dL′ ) · degv (Xi ). See equation 14.
Unfortunately, the fractional assignment ŵ need not necessarily be a fractional matching, the main reason
being that at a level i > L′ the new weight Wv (ŵi ) of a spurious node v ∈ Si can be much larger than its original
weight Wv (wi ). Specifically, Claim 2.14 permits that Wv (ŵi ) = 1 for such a node v ∈ Si . If there exists a
node v ∈ V that belongs to Si at every level i > L′ , then we might have Wv (ŵ) = ∑i>L′ Wv (ŵi ) = ∑i>L′ 1 =
(L − L′ ) >> 1 ≥ Wv (w).
To address this concern regarding the weights of the spurious nodes, we switch from ŵ to a new fractional
assignment w′′ , which is defined as follows. For every level i > L′ , we construct a fractional assignment w′′i
that sets to zero the weight of every edge in Xi that is incident upon a spurious node v ∈ Si . For every other
edge e, the weight w′′i (e) remains the same as ŵi (e). Then we set w′′ = ∑i>L′ w′′i .
w′′i (u, v) = ŵi (u, v) if (u, v) ∈ Xi and {u, v} ∩ Si = 0/
= 0 if (u, v) ∈ Xi and {u, v} ∩ Si 6= 0.
/

= 0 else if (u, v) ∈ E \ Xi
w′′ =

∑ w′′i

(16)
(17)

i>L′

The above transformation guarantees that Wv (w′′i ) = 0 for every spurious node v ∈ Si at level i > L′ .
Thus, the objection raised above regarding the weights of spurious nodes is no longer valid for the fractional
assignment w′′i . We now make three claims on the fractional assignments ŵ and w′′ .
Claim 2.15 bounds the maximum weight of a node under w′′ . Its proof appears in Section 2.5.1.
Claim 2.15. We have Wv (w′′ ) ≤ 1 + 3ε for all v ∈ V .

Claim 2.16 states that the size of w′′ is close to the size of ŵ. Its proof appears in Section 2.5.2.

Claim 2.16. We have w′′ (E) ≥ ŵ(E) − 4ε · w+ (E).

Claim 2.17 states that the size of ŵ is within a constant factor of the size of w+ . Its proof appears in
Section 2.5.3.

Claim 2.17. We have ŵ(E) ≥ (1/8) · w+ (E).

Corollary 2.18. We have w′′ (E) ≥ (1/8 − 4ε ) · w+ (E).
Proof. Follows from Claims 2.16 and 2.17.

To complete the proof of Lemma 2.11, we scale down the weights of the edges in w′′ by a factor of
(1 + 3ε ). Specifically, we define a fractional assignment w′ such that:
w′ (e) =

w′′ (e)
for all edges e ∈ E.
(1 + 3ε )

Since w′′ has support X , the fractional assignment w′ also has support X , that is, w′ (e) = 0 for all edges
e ∈ E \ X . Claim 2.15 implies that Wv (w′ ) = Wv (w′′ )/(1 + 3ε ) ≤ 1 for all nodes v ∈ V . Thus, w′ is fractional
matching on support X . Since the edge-weights are scaled down by a factor of (1 + 3ε ), Corollary 2.18
implies that:
(1/8 − 4ε ) +
w′′ (E)
≥
· w (E).
(18)
w′ (E) =
(1 + 3ε )
(1 + 3ε )
Equations 13 and 18 imply that w(E) ≤ O(1) · w′ (E). This concludes the proof of Lemma 2.11.
11

2.5.1

Proof of Claim 2.15

Throughout the proof, we fix any given node v ∈ V . We will show that Wv (w′′ ) ≤ 1 + 3ε . We start by making
a simple observation:
Wv (w′′i ) ≤ Wv (ŵi ) for all levels i > L′ .
(19)

Equation 19 holds since we get the fractional assignment w′′i from ŵi by setting some edge-weights to zero
and keeping the remaining edge-weights unchanged (see equation 16).
By Definition 2.6, at every level i > L′ the node v is part of exactly one of the three subsets – Ti \Si , Bi \Si
and Si . Accordingly, we can classify the levels into three types depending on which of these subsets v belongs
to at that level. Further, recall that Wv (w′′ ) = ∑i>L′ Wv (w′′i ). We will separately bound the contributions from
each type of levels towards the node-weight Wv (w′′ ).
We first bound the contribution towards Wv (w′′ ) from all the levels i > L′ where v ∈ Ti \ Si .
Claim 2.19. We have:

∑

i>L′ :v∈Ti \Si

Wv (w′′i ) ≤ 2ε .

Proof. Claim 2.13 implies that:

∑

i>L′ :v∈Ti \Si

Wv (ŵi ) ≤

∑

i>L′ :v∈Ti \Si

(2ε /L) ≤ 2ε .

(20)

The claim follows from equations 19 and 20.
We next bound the contribution towards Wv (w′′ ) from all the levels i > L′ where v ∈ Bi \ Si .
Claim 2.20. We have:

∑

i>L′ :v∈Bi \Si

Wv (w′′i ) ≤ 1 + ε .

Proof. Let LHS = ∑i>L′ :v∈Bi \Si Wv (w′′i ). We have:
LHS ≤
≤

∑

Wv (ŵi )

(21)

∑

(1 + ε ) ·Wv (wi )

(22)

i>L′ :v∈Bi \Si
i>L′ :v∈Bi \Si

L

≤ (1 + ε ) · ∑ Wv (wi ) = (1 + ε ) ·Wv (w)
i=0

≤ (1 + ε )

(23)

Equation 21 holds because of equation 19. Equation 22 follows from Claim 2.12. Finally, equation 23 holds
since w is a fractional matching (see Section 2.1).
Finally, we bound the contribution towards Wv (w′′ ) from all the levels i > L′ where v ∈ Si .
Claim 2.21. We have:

∑

Wv (w′′i ) = 0.

i>L′ :v∈Si

Proof. Consider any level i > L′ where v ∈ Si . By equation 16, every edge in Xi incident upon v has zero
weight under w′′i , and hence Wv (w′′i ) = 0. The claim follows.

12

Adding up the bounds given by Claims 2.19, 2.20 and 2.21, we get:
Wv (w′′ ) =

∑ Wv (w′′i )

i>L′

=

∑

i>L′ :v∈Ti \Si

+

∑

Wv (w′′i ) +

∑

i>L′ :v∈B

Wv (w′′i )

Wv (w′′i )
i \Si

i>L′ :v∈Si

≤ 2ε + (1 + ε ) + 0 = 1 + 3ε .
This concludes the proof of Claim 2.15.
2.5.2

Proof of Claim 2.16

For any given fractional assignment, the some of the node-weights is two times the sum of the edge-weights
(since each edge has two endpoints). Keeping this in mind, instead of relating the sum of the edge-weights
under the fractional assignments w′′ , ŵ and w+ as stated in Claim 2.16, we will attempt to relate the sum of
the node-weights under w′′ , ŵ and w+ .
As we switch from the fractional assignment ŵi to the fractional assignment w′′i at some level i > L′ , all
we do is to set to zero the weight of any edge incident upon a spurious node in Si . Hence, intuitively, the
difference between the sum of the node-weights under w′′ = ∑i>L′ w′′i and ŵ = ∑i>L′ ŵi should be bounded
by the sum of the weights of the spurious nodes across all the levels i > L′ . This is formally stated in the
claim below.
Claim 2.22. We have:

∑ Wv (w′′ ) ≥ ∑ Wv (ŵ) − ∑ ∑ 2 ·Wv (ŵi ).

v∈V

i>L′ v∈Si

v∈V

Proof. The left hand side (LHS) of the inequality is exactly equal to two times the sum of the edge-weights
under w′′ . Similarly, the first sum in the right hand side (RHS) is exactly equal to two times the sum of
the edge-weights under ŵ. Finally, we can also express the second sum in the RHS as the sum of certain
edge-weights under ŵ.
Consider any edge (x, y) ∈ E. We will show that the contribution of this edge towards the LHS is at least
its contribution towards the RHS, thereby proving the claim.
Case 1. (x, y) ∈
/ Xi for all i > L′ . Then the edge (x, y) contributes zero to the left hand side (LHS) and zero
to the right hand side (RHS).
Case 2. (x, y) ∈ Xi at some level i > L′ , but none of the endpoints of the edge is spurious, that is, {x, y} ∩ Si =
0.
/ In this case, by equation 16, the edge (x, y) contributes 2 · w′′i (x, y) to the LHS, 2 · ŵi (x, y) to the first sum
in the RHS, and zero to the second sum in the RHS. Further, we have w′′i (x, y) = ŵi (x, y). Hence, the edge
makes exactly the same contribution towards the LHS and the RHS.
Case 3. (x, y) ∈ Xi at some level i > L′ , and at least one endpoint of the edge is spurious, that is, {x, y}∩Si 6= 0.
/
In this case, by equation 16, the edge (x, y) contributes zero to the LHS, 2 · ŵ(x, y) to the first sum in the
RHS, and at least 2 · ŵ(x, y) to the second sum in the RHS. Hence, the net contribution towards the RHS
is at most zero. In other words, the contribution towards the LHS is at least the contribution towards the
RHS.
At every level i > L′ , we will now bound the sum of the weights of the spurious nodes v ∈ Si under ŵ by
the sum of the node-weights under wi . We will use the fact that each spurious node gets weight at most one
(see Claim 2.14), which implies that ∑v∈Si Wv (ŵi ) ≤ |Si |. By equation 6, we will upper bound the number
of spurious nodes by the number of non-spurious big nodes. Finally, by equation 7, we will infer that each
13

non-spurious big node has sufficiently large degree in Ei , and hence its weight under wi is also sufficiently
large.
Claim 2.23. For every level i > L′ , we have:

∑ Wv (ŵi) ≤ (2δ L/ε ) · ∑ Wv (wi).
v∈V

v∈Si

Proof. Fix any level i > L′ . Claim 2.14 states that Wv (ŵi ) ≤ 1 for all nodes v ∈ Si . Hence, we get:

∑ Wv (ŵi ) ≤ |Si |

(24)

v∈Si

Equation 6 implies that |Si | ≤ δ ·|Bi | ≤ δ ·(|Bi \Si |+|Si |). Rearranging the terms, we get: |Si | ≤ 1−δ δ ·|Bi \Si |.
Since δ < 1/2 (see equation 3), we have:

From equations 24 and 25, we get:

|Si | ≤ 2δ · |Bi \ Si |

(25)

∑ Wv (ŵi) ≤ 2δ · |Bi \ Si |

(26)

v∈Si

Now, equation 4 states that degv (Ei ) ≥ (ε di /L) for all nodes v ∈ Bi \ Si . Further, in the hierarchical partition
we have Wv (wi ) = (1/di ) · degv (Ei ) for all nodes v ∈ V (see Section 2.1). Combining these two observations,
we get: Wv (wi ) ≥ ε /L for all nodes v ∈ Bi \ Si . Summing over all nodes v ∈ V , we get:

∑ Wv (wi) ≥ ∑

v∈V

v∈Bi \Si

Wv (wi ) ≥ (ε /L) · |Bi \ Si |

(27)

The claim follows from equations 26 and 27.
Corollary 2.24. We have:

∑ ∑ Wv (ŵi) ≤ (2δ L/ε ) · ∑ Wv (w+).

i>L′ v∈Si

v∈V

Proof. Follows from summing Claim 2.23 over all levels i > L′ , and noting that since w+ = ∑i>L′ wi , we
have Wv (w+ ) = ∑i>L′ Wv (wi ) for all nodes v ∈ V .
From Claim 2.22 and Corollary 2.24, we get:

∑ Wv (w′′) ≥ ∑ Wv (ŵ) − (4δ L/ε ) · ∑ Wv (w+ )

v∈V

(28)

v∈V

v∈V

Since δ = ε 2 /L (see equation 3) and since the sum of the node-weights in a fractional assignment is
exactly two times the sum of the edge-weights, Claim 2.16 follows from equation 28.
2.5.3

Proof of Claim 2.17

Every edge (u, v) ∈ X = ∪i>L′ Xi has at least one endpoint at a level i > L′ (see Definition 2.6). In other
words, every edge in X has at least one endpoint in the set V ∗ as defined below.
Definition 2.25. Define V ∗ = {v ∈ V : ℓ(v) > L′ } to be the set of all nodes at levels strictly greater than L′ .
Thus, under any given fractional assignment, the sum of the node-weights in V ∗ is within a factor of 2
of the sum of the edge-weights in X . Since both the fractional assignments ŵ and w+ have support X , we
get the following claim.
14

Claim 2.26. We have:
2 · w+ (E) ≥

∑ Wv (w+ ) ≥ w+ (E).

v∈V ∗

2 · ŵ(E) ≥

∑ Wv (ŵ) ≥ ŵ(E).

v∈V ∗

Since we want to compare the sums of the edge-weights under ŵ and w+ , by Claim 2.26 it suffices to
focus on the sum of the node-weights in V ∗ instead. Accordingly, we first lower bound the sum ∑v∈V ∗ Wv (ŵ)
in Claim 2.27. In the proof, we only use the fact that for each level i > L′ , the weight of a node v ∈ Bi \ Si
remains roughly the same under the fractional assignments ŵi and wi (see Claim 2.12).
Claim 2.27. We have:

∑

∑ Wv (ŵ) ≥ (1 − ε ) · ∑

v∈V ∗

Wv (wi ).

v∈V ∗ i>L′ :v∈Bi \Si

Proof. Fix any node v ∈ V ∗ . By Claim 2.12, we have: Wv (ŵi ) ≥ (1 − ε ) ·Wv (wi ) at each level i > L′ where
v ∈ Bi \ Si . Summing over all such levels, we get:

∑

i>L′ :v∈Bi \Si

Since ŵ = ∑i>L′ ŵi , we have:

Wv (ŵi ) ≥ (1 − ε ) ·

Wv (ŵ) ≥

∑

∑

Wv (wi )

(29)

i>L′ :v∈Bi \Si

Wv (ŵi ).

i>L′ :v∈Bi \Si

Hence, equation 29 implies that:
Wv (ŵ) ≥ (1 − ε ) ·

∑

Wv (wi ).

i>L′ :v∈Bi \Si

We now sum the above inequality over all nodes v ∈ V ∗ .
It remains to lower bound the right hand side (RHS) in Claim 2.27 by ∑v∈V ∗ Wv (w+ ). Say that a level
i > L′ is of Type I, II or III for a node v ∈ V ∗ if v belongs to Bi \ Si , Si or Ti \ Si respectively. By Definition 2.6,
for every node v ∈ V ∗ , the set of levels i > L′ is partitioned into these three types. The sum in the RHS of
Claim 2.27 gives the contribution of the type I levels towards ∑v∈V ∗ Wv (w+ ). In Claims 2.29 and 2.30,
we respectively show that the type II and type III levels make negligible contributions towards the sum
∑v∈V ∗ Wv (w+ ). Note that the sum of these contributions from the type I, type II and type III levels exactly
equals ∑v∈V ∗ Wv (w+ ). Specifically, we have:

∑

v∈V ∗

∑

i>L′ :v∈B

Wv (wi ) +

∑ ∑

Wv (wi ) +

i \Si

∑

v∈V ∗

v∈V ∗ i>L′ :v∈Si

∑

Wv (wi ) =

i>L′ :v∈Ti \Si

∑ Wv (w+)

(30)

v∈V ∗

Hence, equation 30, Claim 2.29 and Claim 2.30 lead to the following lower bound on the right hand side
of Claim 2.27.
Corollary 2.28. We have:

∑

∑

v∈V ∗ i>L′ :v∈Bi \Si

Wv (wi ) ≥ (1 − 40ε ) ·

15

∑ Wv (w+).

v∈V ∗

From Claim 2.27, Corollary 2.28 and equation 3, we get:

∑ Wv (ŵ) ≥ (1/4) · ∑ Wv (w+ )

v∈V ∗

(31)

v∈V ∗

Finally, from Claim 2.26 and equation 31, we infer that:
ŵ(E) ≥ (1/2) ·

∑ Wv (ŵ) ≥ (1/8) · ∑ Wv (w+ ) ≥ (1/8) · w+ (E)
v∈V ∗

v∈V ∗

This concludes the proof of Claim 2.17. Accordingly, we devote the rest of this section to the proofs of
Claims 2.29 and 2.30.
Claim 2.29. We have:

∑ ∑

v∈V ∗ i>L′ :v∈Si

Wv (wi ) ≤ 8ε ·

∑ Wv (w+ ).

v∈V ∗

Proof. The proof of this claim is very similar to the proof of Claim 2.23 and Corollary 2.24. Going through
that proof, one can verify the following upper bound on the number of spurious nodes across all levels i > L′ .

∑ |Si | ≤ (2δ L/ε ) · ∑ Wv (w+ )

i>L′

(32)

v∈V

Since each wi is a fractional matching (see Section 2.1), we have Wv (wi ) ≤ 1 for all nodes v ∈ V and all
levels i > L′ . Hence, we get:
(33)
∑ ∑ Wv (wi) ≤ ∑ |Si |
v∈V ∗ i>L′ :v∈Si

i>L′

From equations 32 and 33, we infer that:

∑ ∑

v∈V ∗ i>L′ :v∈Si

Wv (wi ) ≤ (2δ L/ε ) · ∑ Wv (w+ )

(34)

v∈V

Since the sum of the node-weights under any fractional assignment is equal to twice the sum of the edgeweights, Claim 2.26 implies that:

∑ Wv (w+ ) = 2 · w+(E) ≤ 4 · ∑ Wv (w+ )

(35)

v∈V ∗

v∈V

Claim 2.29 follows from equations 3, 34 and 35.
Claim 2.30. We have:

∑

∑

v∈V ∗ i>L′ :v∈Ti \Si

Wv (wi ) ≤ 32ε ·

∑ Wv (w+ ).

v∈V ∗

Proof. Fix any node v ∈ V ∗ . By equation 5, we have degv (Ei ) ≤ (2ε di /L) at each level i > L′ where
v ∈ Ti \ Si . Further, the fractional matching wi assigns a weight 1/di to every edge in its support Ei (see
Section 2.1). Combining these two observations, we get: Wv (wi ) = (1/di ) · degv (Ei ) ≤ 2ε /L at each level
i > L′ where v ∈ Ti \ Si . Summing over all such levels, we get:

∑

Wv (wi ) ≤ 2ε

(36)

Wv (wi ) ≤ 2ε · |V ∗ |

(37)

i>L′ :v∈Ti \Si

If we sum equation 36 over all v ∈ V ∗ , then we get:

∑

v∈V ∗

∑

i>L′ :v∈Ti \Si

16

A node v ∈ V ∗ has level ℓ(v) > L′ . Hence, all the edges incident upon this node also have level at least L′ + 1.
This implies that such a node v receives zero weight from the fractional assignment w− = ∑i≤L′ wi , for any
edge in the support of w− is at level at most L′ . Thus, we have: Wv (w) = Wv (w+ ) +Wv (w− ) = Wv (w+ ) for
such a node v. Now, applying Theorem 2.1, we get:
1/(1 + ε )2 ≤ Wv (w+ ) for all nodes v ∈ V ∗ .

(38)

Summing equation 38 over all nodes v ∈ V ∗ and multiplying both sides by (1 + ε )2 , we get:
|V ∗ | ≤ (1 + ε )2 ·

∑ Wv (w+ )

(39)

v∈V ∗

Since (1 + ε )2 ≤ 4 and V ∗ ⊆ V , equations 37, 39 imply that:

∑

∑

v∈V ∗ i>L′ :v∈Ti \Si

Wv (wi ) ≤ 8ε · ∑ Wv (w+ )

(40)

v∈V

The claim follows from equations 35 and 40.

3 Bipartite graphs
Ideally, we would like to present a dynamic algorithm on bipartite graphs that proves Theorem 1.2. Due to
space constraints, however, we will only prove a weaker result stated in Theorem 3.1 and defer the complete
proof of Theorem 1.2 to the full version. Throughout this section, we will use the notations and concepts
introduced in Section 1.1.
Theorem 3.1. There is a randomized dynamic algorithm that maintains a 1.976 approximation to the max√
imum matching in a bipartite graph in O( n log n) expected update time.
In Section 3.1, we present a result from [5] which shows how to maintain a (2 + ε )-approximation to the
√
maximum matching in bipartite graphs in O( n/ε 2 ) update time. In Section 3.2, we build upon this result
and prove Theorem 3.1. In Section 3.3, we allude to the extensions that lead us to the proof of Theorem 1.2
in the full version of the paper.
√
3.1 (2 + ε )-approximation in O( n/ε 2 ) update time
The first step is to define the concept of a kernel. Setting ε = 0, d = 1 in Definition 3.2, we note that the
kernel edges in a (0, 1)-kernel forms a maximal matching – a matching where every unmatched edge has at
least one matched endpoint. For general d, we note that the kernel edges in a (0, d)-kernel forms a maximal
d-matching – which is a maximal subset of edges where each node has degree at most d. In Lemma 3.3
and Corollary 3.4, we show that the kernel edges in any (ε , d)-kernel preserves the size of the maximum
matching within a factor of 2/(1 − ε ). Since d is the maximum degree of a node in an (ε , d)-kernel, a
(1 + ε )-approximation to the maximum matching within a kernel can be maintained in O(d/ε 2 ) update
time using Theorem 1.4. Lemma 3.5 shows that the set of kernel edges themselves can be maintained in
√
O(n/(ε d)) update time. Setting d = n and combining all these observations, we get our main result in
Corollary 3.6.
Definition 3.2. Fix any ε ∈ (0, 1), d ∈ [1, n]. Consider any subset of nodes T ⊂ V in the graph G = (V, E),
and any subset of edges H ⊆ E. The pair (T, H) is called an (ε , d)-kernel of G iff: (1) degv (H) ≤ d for all
nodes v ∈ V , (2) degv (H) ≥ (1 − ε )d for all nodes v ∈ T , and (3) every edge (u, v) ∈ E with both endpoints
u, v ∈ V \ T is part of the subset H. We define the set of nodes T c = V \ T , and say that the nodes in T (resp.
T c ) are “tight” (resp. “non-tight”). The edges in H are called “kernel edges”.

17

Lemma 3.3. Consider any integral matching M ⊆ E and let (T, H) be any (ε , d)-kernel of G = (V, E) as
per Definition 3.2. Then there is a fractional matching w′′ in G with support H such that ∑v∈V Wv (w′′ ) ≥
(1 − ε ) · |M|.
The proof of Lemma 3.3 appears in Section 3.1.1.
Corollary 3.4. Consider any (ε , d)-kernel as per Definition 3.2. We have Opt(H) ≥ (1/2) · (1 − ε ) · Opt(E).
Proof. Let M ⊆ E be a maximum cardinality matching in G = (V, E). Let w′′ be a fractional matching with
support H as per Lemma 3.3. Since in a bipartite graph the size of the maximum cardinality matching is
the same as the size of the maximum fractional matching (see Theorem 1.3), we get: Opt(H) = Opt f (H) ≥
w′′ (H) = (1/2) · ∑v∈V Wv (w′′ ) ≥ (1/2) · (1 − ε ) · |M| = (1/2) · (1 − ε ) · Opt(E).
Lemma 3.5. In the dynamic setting, an (ε , d)-kernel can be maintained in O(n/(ε d)) amortized update
time.
Proof. (Sketch) When an edge (u, v) is inserted into the graph, we simply check if both its endpoints are
non-tight. If yes, then we insert (u, v) into H. Next, for each endpoint x ∈ {u, v}, we check if degx (H) has
now become equal to d due to this edge insertion. If yes, then we delete the node x from T c and insert it into
T . All these operations can be performed in constant time.
Now, consider the deletion of an edge (u, v). If both u, v are non-tight, then we have nothing else to
do. Otherwise, for each tight endpoint x ∈ {u, v}, we check if degx (H) has now fallen below the threshold
(1 − ε )d due to this edge deletion. If yes, then we might need to change the status of the node x from tight
to non-tight. Accordingly, we scan through all the edges in E that are incident upon x, and try to insert as
many of them into H as possible. This step takes Θ(n) time in the worst case since the degree of the node x
can be Θ(n). However, the algorithm ensures that this event occurs only after ε d edges incident upon x are
deleted from E. This is true since we have a slack of ε d between the largest and smallest possible degrees
of a tight node. Thus, we get an amortized update time of O(n/(ε d)).
Corollary 3.6. In a bipartite graph, one can maintain a (2 + 6ε )-approximation to the size of the maximum
√
matching in O( n/ε 2 ) amortized update time.
√
√
Proof. (Sketch) We set d = n and maintain an (ε , d)-kernel (T, H) as per Lemma 3.5. This takes O( n/ε )
√
update time. Next, we note that the maximum degree of a node in H is d = n (see Definition 3.2).
Accordingly, we can apply Theorem 1.4 to maintain a (1 + ε )-approximate maximum matching MH ⊆ H
√
in O( n/ε 2 ) update time. Hence, by Corollary 3.4, this matching MH is a 2(1 + ε )/(1 − ε ) ≤ (2 + 6ε )approximation to the maximum matching in G = (V, E).
3.1.1

Proof of Lemma 3.3

First, define a fractional assignment w as follows. For every edge (u, v) ∈ H incident on a tight node, we set
w(e) = 1/d, and for every other edge (u, v) ∈ E, set w(u, v) = 0. Since each node v ∈ V has degv (H) ≤ d, it
is easy to check that Wv (w) ≤ 1 for all nodes v ∈ V . In other words, w forms a fractional matching in G.
Next, we define another fractional assignment w′ . First, for every node v ∈ T c , we define a “capacity”
b(v) = 1 − Wv (w) ∈ [0, 1]. Next, for every edge (u, v) ∈ H ∩ M whose both endpoints are non-tight, set
w′ (u, v) = min(b(u), b(v)). For every other edge (u, v) ∈ E, set w′ (u, v) = 0.
We finally define w′′ = w + w′ . Clearly, the fractional assignment w′′ has support H, since for every edge
(u, v) ∈ E \ H, we have w(u, v) = w′ (u, v) = 0. Hence, the lemma follows from Claims 3.7 and 3.8.
Claim 3.7. We have Wv (w′′ ) ≤ 1 for all nodes v ∈ V , that is, w′′ is a fractional matching in G.

18

Proof. If a node v is tight, that is, v ∈ T , then we have Wv (w′′ ) = Wv (w) +Wv (w′ ) = Wv (w) ≤ 1. Hence, for
the rest of the proof, consider any node from the remaining subset v ∈ T c = V \ T . There are two cases to
consider here.
Case 1. If v is not matched in M, then we have Wv (w′ ) = 0, and hence Wv (w′′ ) = Wv (w) +Wv (w′ ) = Wv (w) ≤
1.
Case 2. If v is matched in M, then let u be its mate, i.e., (u, v) ∈ M. Here, we have Wv (w′ ) = w′ (u, v) =
min(1 −Wu (w), 1 −Wv (w)) ≤ 1 −Wv (w). This implies that Wv (w′′ ) = Wv (w) +Wv (w′ ) ≤ 1. This concludes
the proof.
Claim 3.8. We have ∑v∈V Wv (w′′ ) ≥ (1 − ε ) · |M|.
Proof. Throughout the proof, fix any edge (u, v) ∈ M. We will show that Wu (w′′ ) +Wv (w′′ ) ≥ (1 − ε ). The
claim will then follow if we sum over all the edges in M.
Case 1. The edge (u, v) has at least one tight endpoint. Let u ∈ T . In this case, we have Wu (w′′ ) +Wv (w′′ ) ≥
Wu (w′′ ) = Wu (w) +Wu (w′ ) ≥ Wu (w) = (1/d) · degu (H) ≥ (1 − ε ).
Case 2. Both the endpoints of (u, v) are non-tight. Without any loss of generality, let Wu (w) ≥ Wv (w). In
this case, we have Wu (w′′ ) + Wv (w′′ ) ≥ Wu (w′′ ) = Wu (w) + Wu (w′ ) = Wu (w) + w′ (u, v) = Wu (w) + min(1 −
Wu (w), 1 −Wv (w)) = Wu (w) + (1 −Wu (w)) = 1. This concludes the proof.
3.2

Better than 2-approximation

The approximation guarantee derived in Section 3.1 follows from Claim 3.8. Looking back at the proof
of this claim, we observe that we actually proved a stronger statement: Any matching M ⊆ E satisfies the
property that Wu (w′′ )+Wv (w′′ ) ≥ (1− ε ) for all matched edges (u, v) ∈ M, where w′′ is a fractional matching
with support H that depends on M. In the right hand side of this inequality, if we replace the term (1 − ε ) by
anything larger than 1, then we will get a better than 2 approximation (see the proof of Corollary 3.4). The
reason it was not possible to do so in Section 3.1 is as follows. Consider a matched edge (u, v) ∈ M with
u ∈ T and v ∈ T c . Since u is tight, we have 1 − ε ≤ Wu (w) = Wv (w′′ ) ≤ 1. Suppose that Wu (w′′ ) = 1 − ε .
In contrast, it might well be the case that Wv (w) is very close to being zero (which will happen if degv (H)
is very small). Let Wv (w) ≤ ε . Also note that Wv (w′′ ) = Wv (w) + Wv (w′ ) = Wv (w) ≤ ε since no edge that
gets nonzero weight under w′ can be incident on v (for v is already incident upon an edge in M whose other
endpoint is tight). Hence, in this instance we will have Wu (w′′ )+Wv (w′′ ) ≤ (1− ε )+ ε = 1, where (u, v) ∈ M
is a matched edge with one tight and one non-tight endpoint.
The above discussion suggests that we ought to “throw in” some additional edges into our kernel – edges
whose one endpoint is tight and the other endpoint is non-tight with a very small degree in H. Accordingly,
we introduce the notion of residual edges in Section 3.2.1. We show that the union of the kernel edges
and the residual edges preserves the size of the maximum matching within a factor of strictly less than 2.
Throughout the rest of this section, we set the values of two parameters δ , ε as follows.

δ = 1/20, ε = 1/2000
3.2.1

(41)

The main framework: Residual edges

We maintain an (ε , d)-skeleton (T, H) as in Section 3.1. We further partition the set of non-tight nodes
T c = V \ T into two subsets: B ⊆ T c and S = T c \ B. The set of nodes in B (resp. S) are called “big” (resp.
“small”). They satisfy the following degree-thresholds: (1) degv (H) ≤ 2δ d/(1 − δ ) for all small nodes
v ∈ S, and (2) degv (H) ≥ (2δ − ε )d/(1 − δ ) for all big nodes v ∈ B. Let E r = {(u, v) ∈ E : u ∈ T, v ∈ S} be
the subset of edges joining the tight and the small nodes. We maintain a maximal subset of edges M r ⊆ E r
subject to the following constraints: (1) degv (M r ) ≤ 1 for all tight nodes v ∈ T and (2) degv (M r ) ≤ 2 for all
19

small nodes v ∈ S. The edges in M r are called the “residual edges”. The degree of a node in M r is called its
“residual degree”. The corollary below follows from the maximality of the set M r ⊆ E r .
Corollary 3.9. If an edge (u, v) ∈ E r with u ∈ T , v ∈ S is not in M r , then either degv (M r ) = 1 or degu (M r ) =
2.
Lemma 3.10. We can maintain the set of kernel edges H and the residual edges M r in O(n log n/(ε d))
update time.
Proof. (Sketch) We maintain an (ε , d)-kernel as per the proof of Lemma 3.5. We maintain the node-sets
B, S ⊆ T c and the edge-set E r in the same lazy manner: A node changes its status only after Ω(ε d) edges
incident upon it are either inserted into or deleted from G (since δ is a constant), and when that happens
we might need to make Θ(n) edge insertions/deletions in E r . This gives the same amortized update time of
O(n/(ε d)) for maintaining the edge-set E r .
In order to maintain the set of residual edges M r ⊆ E r , we use a simple modification of the dynamic
algorithm of Baswana et al. [2] that maintains a maximal matching in O(log n) update time. This holds since
M r is a maximal b-matching in E r where each small node can have at most two matched edges incident upon
it, and each tight node can have at most one matched edge incident upon it.
Lemma 3.11. Fix any (ε , d) kernel (T, H) as in Section 3.1, any set of residual edges M r as in Section 3.2.1, and any matching M ⊆ E. Then we have a fractional matching w′′ on support H ∪ M r such
that ∑v∈V Wv (w′′ ) ≥ (1 + δ /4) · |M|.
Roadmap for the rest of this section. The statement of Lemma 3.11 above is similar to that of Lemma 3.3
in Section 3.1. Hence, using a similar argument as in Corollary 3.4, we infer that the set of edges M r ∪
H preserves the size of the maximum matching within a factor of 2/(1 + δ /4). Since degv (M r ∪ H) =
degv (H) + degv (M r ) ≤ d + 2 for all nodes v ∈ V (see Definition 3.2), we can maintain a (1 + ε )-approximate
maximum matching in H ∪ M r using Theorem 1.4 in O(d/ε 2 ) update time. This matching will give a
2(1 + ε )/(1 + δ /4) = 1.976-approximation to the size of maximum matching in G (see equation 41). The
√
√
total update time is O(d/ε 2 + n log n/(ε d)), which becomes O( n log n) if we set d = n and plug in the
value of ε . This concludes the proof of Theorem 3.1.
It remains to prove Lemma 3.11, which is done in Section 3.2.2.
3.2.2

Proof of Lemma 3.11

We will define four fractional assignments w, wr , w′ , w′′ . It might be instructive to contrast the definitions of
the fractional assignments w, w′ and w′′ here with Section 3.1.1.
The fractional assignment w: Set w(e) = (1 − δ )/d for every edge e ∈ H incident upon a tight node. Set
w(e) = 0 for every other edge e ∈ E. Hence, we have Wv (w) = ((1 − δ )/d) · degv (H) for all nodes v ∈ V .
Accordingly, recalling the bounds on degv (H) for various types of nodes (see Definition 3.2, Section 3.2.1),
we get:
Wv (w) ≤ (1 − δ ) for all nodes v ∈ V.

Wv (w) ≤ 2δ for all small nodes v ∈ S.

Wv (w) ≥ (1 − δ )(1 − ε ) for all tight nodes v ∈ T.

Wv (w) ≥ 2δ − ε for all big nodes v ∈ B.

(42)
(43)
(44)
(45)

The fractional assignment wr : Set wr (e) = δ for every residual edge e ∈ M r . Set wr (e) = 0 for every other
edge e ∈ E.
20

The fractional assignment w′ : For every node v ∈ T c , we define a “capacity” b(v) as follows. If v ∈ B ⊆ T c ,
then b(v) = 1 −Wv (w). Else if v ∈ S = T c \ B, then b(v) = 1 − 2δ −Wv (w). Hence, equations 42, 43 imply
that:
b(v) ≥ δ for all big nodes v ∈ B.

b(v) ≥ 1 − 4δ for all small nodes v ∈ S.

(46)
(47)

For every edge (u, v) ∈ M with u, v ∈ T c = V \ T , we set w′ (u, v) = min(b(u), b(v)). For every other edge
e ∈ E, we set w′ (e) = 0. By Definition 3.2, every edge whose both endpoints are non-tight is a kernel edge.
Hence, an edge gets nonzero weight under w′ only if it is part of the kernel.
The fractional assignment w′′ : Define w′′ = w + wr + w′ .
Roadmap for the rest of the proof. Each of the fractional assignments w, wr , w′ assigns zero weight to
every edge e ∈ E \ (H ∪ M r ). Hence, the fractional assignment w′′ = w + wr + w′ has support H ∪ M r . In
Claim 3.12, we show that w′′ is a fractional matching in G. Moving on, in Definition 3.13, we partition the
set of matched edges in M into two parts. The subset M1 ⊆ M consists of those matched edges that have one
tight and one small endpoints, and the subset M2 = M \ M1 consists of the remaining edges. In Claims 3.14
and 3.15, we relate the node-weights under w, w′ , wr with the sizes of the matchings M1 and M2 . Adding up
the bounds from Claims 3.14 and 3.15, Corollary 3.16 lower bounds the sum of the node-weights under w′′
by the size of the matching M. Finally, Lemma 3.11 follows from Claim 3.12 and Corollary 3.16.
Claim 3.12. We have Wv (w′′ ) ≤ 1 for all nodes v ∈ V .
Proof. Consider any node v ∈ V . By equation 42, we have: Wv (w) ≤ 1 − δ . Also note that Wv (wr ) ≤ δ
for all tight nodes v ∈ T , Wv (wr ) ≤ 2δ for all small nodes v ∈ S, and Wv (wr ) = 0 for all big nodes v ∈ B.
This holds since the degree (among the edges in M r ) of a tight, small and big node is at most one, two and
zero respectively. Next, note that for all nodes v ∈ T c , we have Wv (w′ ) ≤ b(v). This holds since there is at
most one edge in M ∩ H incident upon v (since M is a matching). So at most one edge incident upon v gets
a nonzero weight under w′ , and the weight of this edge is at most b(v). Finally, note that every edge with
nonzero weight under w′ has both the endpoints in T c . Hence, we have Wv (w′ ) = 0 for all tight nodes v ∈ T .
To complete the proof, we now consider three possible cases.
Case 1. v ∈ T . Here, Wv (w′′ ) = Wv (w)+Wv (wr )+Wv (w′ ) = Wv (w)+Wv (wr ) ≤ Wv (w)+ δ ≤ (1− δ )+ δ = 1.

Case 2. v ∈ S. Here, Wv (w′′ ) = Wv (w) +Wv (wr ) +Wv (w′ ) ≤ Wv (w) + 2δ + b(v) = Wv (w) + 2δ + (1 − 2δ −
Wv (w)) = 1.

Case 3. v ∈ B. Here, Wv (w′′ ) = Wv (w) + Wv (wr ) + Wv (w′ ) = Wv (w) + Wv (w′ ) ≤ Wv (w) + b(v) = Wv (w) +
(1 −Wv (w)) = 1.
Definition 3.13. Partition the set of edges in M into two parts: M1 = {(u, v) ∈ M : u ∈ T, v ∈ S} and
M2 = M \ M1 .
Claim 3.14. Recall Definition 3.13. We have:

∑

(u,v)∈M2

Wu (w + w′ ) +Wv (w + w′) ≥ (1 + δ /4) · |M2 |.

Proof. Fix any edge (u, v) ∈ M2 , and let LHS = Wu (w + w′ ) + Wv (w + w′ ). We will show that LHS ≥
(1 + δ /4). The claim will then follow if we sum over all such edges M2 . We recall equation 41 and consider
four possible cases.

21

Case 1. Both endpoints are tight, that is, u, v ∈ T . Here, from equation 44 we get: LHS ≥ 2 · (1 − δ − ε +
δ ε ) ≥ (1 + δ /4).

Case 2. One endpoint is tight, and one endpoint is big, that is, u ∈ T , v ∈ B. Here, from equations 44, 45 we
get: LHS ≥ (1 − δ − ε + δ ε ) + (2δ − ε ) ≥ (1 + δ − 2ε ) ≥ 1 + δ /4.
Case 3. Both endpoints are non-tight, that is, u, v ∈ B ∪ S. Without any loss of generality, let b(u) ≥ b(v).
Note that (u, v) ∈ H since both u, v ∈ T c , and hence (u, v) ∩ M2 ∩ H. Thus, we have Wu (w′ ) = Wv (w′ ) =
w′ (u, v) = b(v) since at most one matched edge can be incident upon a node. Now, either v ∈ B or v ∈ S.
In the former case, from equation 47 we get: LHS ≥ Wu (w′ ) +Wv (w′ ) = 2 · b(v) ≥ 2(1 − 4δ ) ≥ (1 + δ /4).
In the latter case, from equation 46 we get: LHS ≥ (Wv (w) +Wv (w′ )) +Wu (w′ ) = (b(v) +Wv (w)) + b(v) =
1 + b(v) ≥ 1 + δ ≥ 1 + δ /4.
Claim 3.15. Recall Definition 3.13. We have:

∑

(u,v)∈M1

(Wu (w) +Wv (w)) + ∑ Wv (wr ) ≥ (1 + δ /4) · |M1 |.
v∈V

Proof. Every edge (u, v) ∈ M1 has one endpoint u ∈ T . Thus, Applying equation 44 we get: Wu (w) +
Wv (w) ≥ Wu (w) ≥ 1 − δ − ε . Summing over all such edges, we get:

∑

(u,v)∈M1

Wu (w) +Wv (w) ≥ (1 − δ − ε ) · |M1|

(48)

Recall that degu (M r ) ≤ 1 for every tight node u ∈ T . Accordingly, we classify each tight node as being either
“full” (in which case degu (M r ) = 1) or “deficient” (in which case degu (M r ) = 0). Further, recall that each
edge (u, v) ∈ M1 has one tight and one small endpoints. We say that an edge (x, y) ∈ M1 is deficient if the
tight endpoint of the edge is deficient. Now, consider any deficient edge (x, y) ∈ M1 where x ∈ T and y ∈ S.
Since degx (M r ) = 0, it follows that (x, y) ∈ E r \ M r . From the maximality of M r , we infer that degy (M r ) = 2.
Accordingly, there must be two edges (x′ , y), (x′′ , y) ∈ M r with x′ , x′′ ∈ T . It follows that both the nodes x′ , x′′
are full. We say that the tight nodes x′ , x′′ are conjugates of the deficient edge (x, y) ∈ M1 . In other words,
we have shown that every deficient edge in M1 has two conjugate tight nodes. Further, the same tight node x′
cannot be a conjugate of two different deficient edges in M1 , for otherwise each of those deficient edges will
contribute one towards degx′ (M r ), and we will get degx′ (M r ) ≥ 2, which is a contradiction. Thus, a simple
counting argument implies that the number of conjugate tight nodes is exactly twice the number of deficient
matched edges in M1 . Let D(M1 ), F,C respectively denote the set of deficient matched edges in M1 , the set
of full tight nodes and the set of conjugate tight nodes. Thus, we get:
T ⊇ F ⊇ C, D(M1 ) ⊆ M1 , and |C| = 2 · |D(M1 )|

(49)

Now, either |D(M1 )| ≤ (1/3) · |M1 | or |D(M1 )| > (1/3) · |M1 |. In the former case, at least a (2/3)rd fraction
of the edges in M1 are not deficient, and each such edge has one tight endpoint that is full. Thus, we get
|F| ≥ (2/3) · |M1 |. In the latter case, from equation 49 we get |F| ≥ |C| = 2 · |D(M1 )| > (2/3) · |M1 |. Thus,
in either case we have |F| ≥ (2/3) · |M1 |. Since each node v ∈ F ⊆ T has degv (M r ) = 1, and since each
edge e ∈ M r has weight wr (e) = δ , it follows that Wv (wr ) = δ for all nodes v ∈ F ⊆ T . Hence, we get
∑v∈T Wv (wr ) ≥ δ · |F| ≥ (2δ /3) · |M1 |. Next, we note that each edge in M r contributes the same amount δ
towards the weights of both its endpoints – one tight and the other small. Thus, we have:

∑ Wv (wr ) = ∑ Wv (wr ) ≥ (2δ /3) · |M1 |.

v∈S

v∈T

Since B ∪ S ⊆ V and B ∩ S = 0,
/ we get:

∑ Wv (wr ) ≥ ∑

v∈V

v∈B∪S

Wv (wr ) ≥ (4δ /3) · |M1 |.
22

This inequality, along with equation 48, gives us:

∑

(u,v)∈M1

(Wu (w) +Wv (w)) + ∑ Wv (wr )
v∈V

≥ (1 − δ − ε ) · |M1| + (4δ /3) · |M1 | = (1 + δ /3 − ε ) · |M1|

≥ (1 + δ /4) · |M1 |.

The last inequality follows from equation 41.
Corollary 3.16. We have:

∑ Wv (w′′ ) ≥ (1 + δ /4) · |M|.

v∈V

Proof. Since |M| = |M1 | + |M2 |, the corollary follows from adding the inequalities stated in Claims 3.14
and 3.15, and noting that no node-weight under w′′ is counted twice in the left hand side.
3.3

Extensions

We gave a randomized algorithm for maximum bipartite matching that maintains a better than 2 approxi√
mation in O( n log n) update time. In the full version of the paper, we derandomize this scheme using the
following idea. Instead of applying the randomized maximal matching algorithm from [2] for maintaining
the set of residual edges M r , we maintain a residual fractional matching using the deterministic algorithm
from [5] (see Theorem 2.1). To carry out the approximation guarantee analysis, we have to change the proof
of Lemma 3.11 (specifically, the proof of Claim 3.15).
To get arbitrarily small polynomial update time, we maintain a partition of the node-set into multiple
levels. The top level consists of all the tight nodes (see Definition 3.2). We next consider the subgraph
induced by the non-tight nodes. Each edge in this subgraph is a kernel edge (see Definition 3.2). Intuitively,
we split the node-set of this subgraph again into two parts by defining a kernel within this subgraph. The
tight nodes we get in this iteration forms the next level in our partition of V . We keep doing this for K levels,
where K is a sufficiently large integer. We show that (a) this structure can be maintained in O(n2/K ) update
time, and (b) by combining the fractional matchings from all these levels, we can get an αK approximate
maximum fractional matching in G, where 1 ≤ αK < 2. By Theorem 1.3, this gives αK -approximation to
the size of the maximum integral matching in G. See the full version of the paper for the details.

4 Open Problems
In this paper, we presented two deterministic dynamic algorithms for maximum matching. Our first algorithm maintains a (2 + ε )-approximate maximum matching in a general graph in O(poly(log n, 1/ε )) update
time. The exponent hidden in the polylogorithmic factor of the update time, however, is rather huge. It
will be interesting to bring down the update time of this algorithm to O(log n/ε 2 ) without increasing the
approximation factor. This will match the update time in [5] for maintaining a fractional matching.
We also showed how to maintain a better than 2 approximation to the size of the maximum matching
on bipartite graphs in O(n2/K ) update time, for every sufficiently large integer K. The approximation ratio
approaches 2 as K becomes large. The main open problem here is to design a dynamic algorithm that gives
better than 2 approximation in polylogarithmic update time. This remains open even on bipartite graphs and
even if one allows randomization.

23

References
[1] Amir Abboud and Virginia Vassilevska Williams. Popular conjectures imply strong lower bounds for
dynamic problems. In 55th Annual IEEE Symposium on Foundations of Computer Science, FOCS
2010, October 18-21, 2014, Philadelphia, PA, USA, pages 434–443, 2014. 1, 2
[2] Surender Baswana, Manoj Gupta, and Sandeep Sen. Fully dynamic maximal matching in O(log n)
update time. SIAM J. Comput., 44(1):88–113, 2015. Announced at FOCS 2011. 1, 2, 20, 23
[3] Aaron Bernstein and Cliff Stein. Fully dynamic matching in bipartite graphs. In ICALP, pages 167–
179, 2015. 1, 2
[4] Aaron Bernstein and Cliff Stein. Faster fully dynamic matchings with small approximation ratios. In
SODA, 2016. to appear. 1
[5] Sayan Bhattacharya, Monika Henzinger, and Giuseppe F. Italiano. Deterministic fully dynamic data
structures for vertex cover and matching. CoRR, abs/1412.1318, 2014. 1, 2, 3, 4, 17, 23, 27, 115
[6] Michael Crouch and Daniel S. Stubbs. Improved streaming algorithms for weighted matching, via
unweighted matching. In Klaus Jansen, José D. P. Rolim, Nikhil R. Devanur, and Cristopher Moore,
editors, Approximation, Randomization, and Combinatorial Optimization. Algorithms and Techniques,
APPROX/RANDOM 2014, September 4-6, 2014, Barcelona, Spain, volume 28 of LIPIcs, pages 96–
104. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 2014. 2
[7] Manoj Gupta and Richard Peng. Fully dynamic (1 + ε )-approximate matchings. In 54th IEEE Symposium on Foundations of Computer Science, pages 548–557, 2013. 1, 2, 3, 28, 114
[8] Monika Henzinger, Sebastian Krinninger, Danupon Nanongkai, and Thatchaphol Saranurak. Unifying
and strengthening hardness for dynamic problems via the online matrix-vector multiplication conjecture. STOC, pages 21–30, 2015. 1, 2
[9] Amos Israeli and Y. Shiloach. An improved parallel algorithm for maximal matching. Information
Processing Letters, 22:57–60, 1986. 2, 48
[10] Christian Konrad, Frédéric Magniez, and Claire Mathieu. Maximum matching in semi-streaming with
few passes. In APPROX-RANDOM, volume 7408 of Lecture Notes in Computer Science, pages 231–
242. Springer, 2012. 2
[11] Tsvi Kopelowitz, Seth Pettie, and Ely Porat. Higher lower bounds from the 3SUM conjecture. In
SODA, 2016. to appear. 1, 2
[12] Ofer Neiman and Shay Solomon. Simple deterministic algorithms for fully dynamic maximal matching. In 45th ACM Symposium on Theory of Computing, pages 745–754, 2013. 1
[13] Krzysztof Onak and Ronitt Rubinfeld. Maintaining a large matching and a small vertex cover. In 42nd
ACM Symposium on Theory of Computing, pages 457–464, 2010. 1
[14] Mihai Patrascu. Towards polynomial lower bounds for dynamic problems. In Leonard J. Schulman,
editor, STOC, pages 603–610. ACM, 2010. 2
[15] David Peleg and Shay Solomon. Dynamic (1 + δ )-approximate matchings: A density-sensitive approach. In SODA, 2016. to appear. 1, 2

24

[16] Piotr Sankowski. Faster dynamic matchings and vertex connectivity. In 18th ACM-SIAM Symposium
on Discrete Algorithms, pages 118–126, 2007. 1
[17] V. G. Vizing. On an estimate of the chromatic class of a p-graph. Diskret. Analiz., 3:25 – 30, 1964. 38,
39, 42
[18] V. G. Vizing. The chromatic class of a multigraph. Kibernetika, 3:29–39, 1965. 2, 38, 39, 42

25

Part II

DYNAMIC ALGORITHM FOR GENERAL
GRAPHS: FULL DETAILS

26

5 Preliminaries
In this part of the writeup, we will show how to maintain a (2 + ε )-approximate maximum matching in a
general graph with O(poly(log n, 1/ε )) update time.
Notations.
A “matching” M ⊆ E in a graph G = (V, E) is a subset of edges that do not share any common endpoints.
The “size” of a matching is the number of edges contained in it. We will also be interested in the concept of
a “fractional matching”. Towards this end, consider any weight function w : E → [0, 1] that assigns fractional
weights to the edges in the graph. Given any such weight function, we let W (v, E ′ ) = ∑(u,v)∈E ′ w(u, v) denote
the total weight a node v ∈ V receives from its incident edges in E ′ ⊆ E. We also define w(E ′ ) = ∑e∈E ′ w(e)
to be the sum of the weights assigned to the edges in E ′ ⊆ E. Now, the weight function w is a “fractional
matching” iff we have W (v, E) ≤ 1 for all v ∈ V . The “value” of this fractional matching w is given by w(E).
Given a graph G = (V, E), we will let O PT G (resp. O PT Gf ) denote the maximum “size of a matching” (resp.
“value of a fractional matching”) in G. Then it is well known that O PT G ≤ O PT Gf ≤ (3/2) · O PT G . To see
an example where the second inequality is tight, consider a triangle-graph and assign a weight 1/2 to each
edge in this triangle. This gives a fractional matching of value 3/2, whereas every matching in this graph is
of size one. We say that a fractional matching w is “λ -maximal”, for λ ≥ 1, iff for every edge (u, v) ∈ E, we
have W (u, E) +W (v, E) ≥ 1/λ . The value of a λ -maximal fractional matching in G is a 2λ -approximation
to O PT Gf . Throughout the paper, we will use the symbol deg(v, E ′ ) to denote the number of edges in a subset
E ′ ⊆ E that are incident upon a node v ∈ V .
Maintaining a large fractional matching:
The paper [5] maintains a (2 + ε )-approximate maximum fractional matching in O(log n/ε 2 ) update time.
We will now summarize their result. Consider an input graph G = (V, E) with |V | = n nodes and |E| = m
edges. Fix any two constants α , β ≥ 1 and define L = ⌈logβ (n/α )⌉. An “(α , β )-partition” of the input
graph G = (V, E) partitions the node-set V into (L + 2) subsets {Vi }, i ∈ {−1, 0, 1, . . . , L}. We say that the
nodes belonging to the subset Vi are in “level i”. We denote the level of a node v by ℓ(v), i.e., v ∈ Vi iff
ℓ(v) = i. We next define the “level of an edge” (u, v) to be ℓ(u, v) = max(ℓ(u), ℓ(v)). In other words, the
level of an edge is the maximum level of its endpoints. We let Ei = {e ∈ E : ℓ(e) = i} denote the set of
edges at level i, and define the subgraph Gi = (V, Ei ). This partitions the edge-set E into (L + 2) subsets
{Ei }, i ∈ {−1, 0, 1, . . . , L}. Finally, for each level i, we define the value di = β i · (αβ ), and assign a weight
w(e) = 1/di to all the edges e ∈ Ei . We require that an (α , β )-partition satisfy the invariants below.
Invariant 5.1. For every edge e ∈ E, we have ℓ(e) ≥ 0. In other words, every edge has at least one endpoint
v at level ℓ(v) ≥ 0, or, equivalently E−1 = 0.
/ This means that V \V−1 forms a vertex cover in G.
Invariant 5.2. We have W (v, E) ∈ [1/(αβ ), 1] for all nodes v ∈ V \ V−1 , and W (v, E) ≤ 1 for all nodes
v ∈ V−1 . This, along with Invariant 5.1, means that w is an (αβ )-maximal fractional matching in G.
Corollary 5.3. In an (α , β )-partition, every node v ∈ V has deg(v, Ei ) ≤ di for all levels i ∈ [0, L]. Thus, we
refer to di as being the “degree-threshold” of level i.
Proof. Invariant 5.1 implies that W (v, Ei ) = deg(v, Ei ) · (1/di ) ≤ 1
Theorem 5.4. [5] Set α = 1 + 3ε and β = 1 + ε , which means L = O(log n/ε ). We can maintain the nodesets {Vi }, the edge-sets {Ei } and the edge-weights {w(e)} in an (α , β )-partition of G in O(log n/ε 2 ) update
time. Hence, the edge-weights form a (2αβ )-approximate maximum fractional matching in G.

27

Maintaining a near-optimal matching in a bounded degree graph:
√
Gupta and Peng [7] maintains a (1 + ε )-approximate maximum matching in O( m/ε 2 ) time. The next
theorem follows as an immediate consequence of their algorithm.
Theorem 5.5. If we are guaranteed that the maximum degree in a graph G = (V, E) never exceeds some
threshold d, then we can maintain a (1 + ε )-approximate maximum matching in G in O(d/ε 2 ) update time.
Problem definition.
The input graph G = (V, E) is changing via a sequence of “edge-updates”, where the term “edge-update”
refers to the insertion/deletion of an edge in E. The node-set V remains fixed. In the beginning, we have an
empty graph, i.e., E = 0.
/ We will show how to maintain a (2 + ε )-approximate maximum matching in G in
O(poly(log n, 1/ε )) amortized update time, where n = |V | is the number of nodes in the input graph.
5.1

Setting some parameter values

Throughout this paper, we will be dealing with the parameters defined below. We let n = |V | denote the
number of nodes in the input graph. Basically, we treat ε and γ as small positive constants, and δ =
Θ(1/poly log n). It should be clear to the reader that as long as the number of nodes n is sufficiently large,
all the equations stated below will be satisfied. We will use these equations throughout the rest of the paper.
0<ε <1

(50)

α = 1 + 3ε
β = 1+ε
L = ⌈logβ (n/α )⌉

(51)

L is a positive integer and L = O(log n/ε ) and ⌊L /2⌋ ≥ L /4 ≥ (1/ε ).
4

4

(52)
(53)
(54)

0<δ <1

(55)

4

(56)

d is a positive integer and L ≤ d ≤ n.

 4 
2L
′
L = logβ
αβ

 
d
Ld = log2
L4
d
2Ld =
where 1/2 ≤ λd ≤ 1.
λd L 4
L = O(log n/ε ) and Ld ≤ L

δ < 1/2

(57)
(58)
(59)
(60)
(61)

L ≥ Ldi for all i ∈ [L′ , L]

(62)

L ≥ 3αβ

(64)

L ≥ 4/ε

(63)

L≥3

(65)

L ≥ 4Ld /γ

(67)

2

Ld ≥ γ

(66)

L ≥ (8e Ld )/(εγλd )

(68)

2

γ

We next define the parameters h0 , h1 , h2 . Note that for all k ∈ [0, 2], we have hk ≤ 1, and, furthermore,
hk can be made very close to one if the parameters δ , ε , γ are sufficiently small and K is sufficiently large.
28

h0 = e−γ · (1 + 4ε )−1

1/2 ≤ h0 ≤ (1 + 4ε )

(69)

−1

−γ

h1 = h0 · e

· ((αβ )

−1

(70)
− 3ε )

(71)

h2 = (1 − 32δ L /ε ) · (h1 − ε − 1/K) where K is a large positive integer.

5.2

4

2

(72)

Skeleton of a graph

Set the parameter values as in Section 5.1. Throughout the paper, we consider an (α , β )-partition (see
Section 5) of the graph G = (V, E). Below, we introduce the concept of a skeleton of a graph.
Definition 5.6. Consider a graph G = (V, E) with n nodes and maximum degree d, that is, deg(v, E) ≤ d for
all v ∈ V . A tuple (B, T, S, X ) with B, T, S ⊆ V and X ⊆ E, is a “skeleton” of G if and only if:
1. We have B ∪ T = V and B ∩ T = 0.
/ In other words, the node-set V is partitioned into subsets B and T .
The nodes in B are called “big”, whereas the nodes in T are called “tiny”.
2. For every big node v ∈ B, we have deg(v, E) > ε d/L2 , where L is the same as in the (α , β ) partition.
3. For every tiny node v ∈ T , we have deg(v, E) < 3ε d/L2 .
4. We have |S| ≤ 4δ · |B|. The nodes in S are called “spurious”.
5. Recall equations 56, 58 and 59. For every big, non-spurious node v ∈ B \ S, we have:
e−γ · (λd L4 /d) · deg(v, E) ≤ deg(v, X ) ≤ eγ · (λd L4 /d) · deg(v, E).

6. For every node v ∈ V , we have deg(v, X ) ≤ λd L4 + 2.
7. For every tiny, non-spurious node v ∈ T \ S, we have deg(v, X ) ≤ 3ελd L2 + 2.
Thus, in a skeleton (B, T, S, X ) of a graph G = (V, E), each node is classified as being either “big” or “tiny”,
but not both. Barring a few exceptions (which are called “spurious” nodes), the big nodes have large degrees
and the tiny nodes have small degrees. The number of spurious nodes, however, is negligible in comparison
with the number of big nodes. In a skeleton, the degrees of the big, non-spurious nodes are scaled down
by a factor very close to (λd L4 /d), where d is the maximum degree of a node in G. Further, the maximum
degree of any node in a skeleton is λd L4 + 2. Finally, the maximum degree of any tiny, non-spurious node
in the skeleton is 3ελd L2 + 2. The next theorem shows that we can efficiently maintain the edge-set of a
skeleton of a graph.
Theorem 5.7. Given a graph G = (V, E) with n nodes, we can maintain the edges e ∈ H of a skeleton
(B, T, S, H) of G under a sequence of edge insertions/deletions in E. We assume that E = 0/ in the beginning.
Our algorithm is deterministic and has an amortized update time of O(L2 L3d /(εγδ )). See equation 58.
The next theorem will be helpful in deriving the approximation guarantee of our algorithm.
Theorem 5.8. Consider an (α , β )-partition of the graph G = (V, E). For every level i ∈ [L′ , L], let (Bi , Ti , Si , Xi )
S ′ −1
S
Ei . Then the following conbe a skeleton of Gi = (V, Ei ). Define the edge-sets X = Li=L′ Xi , and Y = Li=0
ditions are satisfied.
1. For every node v ∈ V , we have deg(v, X ∪Y ) = O(L5 ).
2. The size of the maximum cardinality matching in G(X ∪Y ) = (V, X ∪Y ) is a (2/h2 )·(1+ ε )-approximation
to the size of the maximum cardinality matching in G = (V, E). See equation 72.
Our main result is summarized in Theorem 5.9, which follows from Theorems 5.7 and 5.8.
Theorem 5.9. In a dynamic setting, we can deterministically maintain a (2 + ε )-approximate maximum
matching in a graph G = (V, E) in O(poly (log n, ε −1 )) amortized update time.
29

Proof. We set the parameters γ and δ as follows.

γ = ε , δ = ε 3 /L4 .
The input graph G = (V, E) changes via a sequence of edge-updates in E. In this setting, we maintain the
edge-sets {Ei } of an (α , β )-partition of G as per Theorem 5.4. This requires O(log n/ε 2 ) update time. Next,
for each level i ∈ [L′ , L], we maintain the edge-set Xi ⊆ Ei as per Theorem 5.7. By equation 60, this requires
O(poly (log n, (εγδ )−1 )) = O(poly (log n, ε −1 )) update time. Finally, by Theorem 5.8, the maximum degree
of a node in the subgraph G(X ∪Y ) is O(L4 ). Hence, we maintain a (1+ ε )-approximate maximum matching
M ′ ⊆ (X ∪ Y ) in the subgraph G(X ∪ Y ) as per Theorem 5.5. This also requires O(poly(log n, ε −1 )) time.
Accordingly, the total update time of the algorithm is O(poly(log n, ε −1 )).
By Theorem 5.8, the maximum matching in G(X ∪ Y ) is a (2/h2 ) · (1 + ε )-approximation to the maximum matching in G. Recall that our algorithm maintains M ′ , which is a (1 + ε )-approximation to the
maximum matching in G(X ∪Y ). Thus, M ′ is a (2/h2 ) · (1 + ε )2 -approximation to the maximum matching
in G. Since δ = ε 3 /L4 and γ = ε , equations 69, 71 and 72 imply that (1/h2 ) · (1 + ε )2 = 1 + O(ε ) for
sufficiently small ε .
To summarize, we maintain a matching M ′ ⊆ X ∪Y ⊆ E. The size of this matching M ′ is a (2 + O(ε ))approximation to the size of the maximum cardinality matching in G. Further, our algorithm for maintaining
M ′ requires O(poly (log n, ε −1 )) update time. This concludes the proof of Theorem 5.9.
In Section 6 we prove Theorem 6, and in Section 7 we prove Theorem 5.7.

6 Deriving the approximation guarantee: Proof of Theorem 5.8
The first part of the theorem, which upper bounds the maximum degree a node can have in X ∪Y , is relatively
easy to prove. The basic idea is that for any given level i ∈ [0, L], the degree of a node is O(L4 ) among the
level-i edges in X ∪Y . This is true for the levels i ≥ L′ because of the condition (6) in Definition 5.6. On the
other hand, for i < L′ , every edge e ∈ Ei has weight w(e) = Ω(1/L4 ). Thus, the degree of a node cannot be
too high among those edges, for otherwise the total weight received by the node would exceed one. This is
summarized in the lemma below.
Lemma 6.1. We have deg(v, X ∪Y ) = O(L5 ) for all nodes v ∈ V .
Proof. Consider any node v ∈ V . By Definition 5.6, we have deg(v, Xi ) = O(L4 ) for all levels i ∈ [L′ , L].
′
Next, note that at every level i < L′ , we have di ≤ dL′ = β L · (αβ ) = O(L4 ). The last equality follows from
equation 57. Hence, from Corollary 5.3, we infer that deg(v, Ei ) ≤ di = O(L4 ) for all levels i < L′ as well.
S ′ −1
Since Y = Li=0
Ei , summing over all the levels i ∈ [0, L], we infer that deg(v, X ∪Y ) = O(L5 ).

Accordingly, we devote the rest of this section towards proving the second part of Theorem 5.8. But,
before proceeding any further, we need to introduce the following notations.
• Let VX = {v ∈ V : ℓ(v) ≥ L′ } denote the set of nodes lying at levels L′ or above in the (α , β )-partition.
Similarly, we let VY = {v ∈ V : ℓ(v) < L′ } denote the set of nodes lying at levels (L′ − 1) or below.
Clearly, the node-set V is partitioned by these two subsets VX ⊆ V and VY = V \ VX . Furthermore,
note that the level of any edge (u, v) in the (α , β )-partition is defined as the maximum level among its
S ′ −1
endpoints. Hence, any edge e ∈ Y = Li=0
Ei has both of its endpoints in VY . On the other hand, any
edge e ∈ Ei with i ≥ L′ has at least one of its endpoints in VX . As a corollary, every edge e ∈ X has at
least one endpoint in VX . We will use these observations throughout the rest of this section.
We will now try to explain why we consider these node-sets VX and VY . For this we need to look back at the
reason behind constructing the sets {Xi } in the first place. Consider any node v ∈ VX . Such a node belongs
to a level ℓ(v) ≥ L′ in the (α , β )-partition. In an ideal scenario, for each i ≥ L′ , we want the degree of v to
drop by a factor of (L4 /di ) as we switch from the edge-set Ei to the edge-set Xi ⊆ Ei (see the condition (5) in
30

Definition 5.6). If we succeed in this goal, then we can increase the weight of every edge in Xi by the inverse
factor (di /L4 ). As a consequence, the total weight received by the node v from the level-i edges will remain
the same as before. To continue with the discussion, recall that every edge e ∈ Ei had a weight w(e) = 1/di
in the (α , β )-partition. Let w′ (e) = w(e) · (di /L4 ) = 1/L4 denote the scaled up weight of the surviving edges
e ∈ Xi ⊆ Ei . Thus, we expect to see that W (v, Ei ) = W ′ (v, Xi ) at every level i ∈ [L′ , L]. Since v ∈ VX , every
edge incident upon v belongs to some Ei with i ≥ L′ . Accordingly, summing over all the levels i ∈ [L′ , L],
we expect to get the following guarantee.
W (v, E) =

L

L

i=L′

i=L′

∑ W (v, Ei ) = ∑ W ′(v, Xi ) = W ′ (v, X ) ≥ (αβ )−1 .

The last inequality is supposed to hold due to Invariant 5.2 (recall that ℓ(v) ≥ L′ ). Thus, in an ideal scenario,
if we assign a weight w′ (e) = L−4 to every edge e ∈ X , then we should get a fractional matching where
every node in VX gets a weight very close to one. In other words, such a matching will be “nearly maximal”
in the graph induced by the edges e ∈ E with ℓ(e) ≥ L′ (this holds since every such edge will have at least
one endpoint in VX ). Thus, there exists a near-maximal fractional matching w′ in the subgraph (V, X ) that is
S
also near-maximal in (V, i≥L′ Ei ). Since maximal matchings are 2-approximations to maximum matchings,
S
intuitively, as we switch from the edge-set i≥L′ Ei to the edge-set X , we loose roughly a factor of 2 in the
S
approximation ratio (albeit in the fractional world). All the remaining edges i<L′ Ei go to the set Y , and
we ought to loose nothing there in terms of the approximation guarantee. Thus, intuitively, there should be
a matching defined on the edge-set X ∪ Y that is a good approximation to the maximum matching in the
original graph G = (V, E).
• It is now high time to emphasize that none of the above observations are exactly true to begin with.
For example, as the Definition 5.6 states, there will be spurious nodes whose degrees might not drop
by much as we go from from the edge-set Ei to the edge-set Xi , i ∈ [L′ , L]. There might be tiny nodes
whose degrees might drop by more than we bargained for during the same transition. And even the
degrees of the big, non-spurious nodes might not drop exactly by the factor (L4 /di ). Nevertheless, we
will try to carry out the plan outlined above, hoping to avoid all the roadblocks that we might come
across while writing the formal proof.
Along these lines, we now formally define the weight function w′ : X → [0, 1] in equation 73.
w′ (u, v) = h0 · (λdi L4 )−1 for every edge (u, v) ∈ Xi, i ∈ [L′ , L].

(73)

Note that λdi lies between 1/2 and 1, and h0 is very close to one (see equations 59, 69). Thus, although w′
might assign different weights to different edges, none of these weights are too far away from 1/L4 (this is
consistent with our preliminary discussion above). Not surprisingly, the next lemma shows that under w′ ,
every node v ∈ VX gets a weight that is lower bounded by a value very close to one. The proof of Lemma 6.2
appears in Section 6.2.
Lemma 6.2. We have W ′ (v, X ) ≥ h1 for all nodes v ∈ VX . In other words, for every node v at level ℓ(v) ∈
[L′ , L] in the (α , β )-partition, the weight received by v under w′ is very close to one.
Unfortunately, however, the weights {w′ (e)}, e ∈ X , do not give us a fractional matching. For example,
consider any node v ∈ VX that is spurious at every level i ≥ L′ , i.e., v ∈ Si for all i ∈ [L′ , L]. At each level
i ≥ L′ , the node v can have deg(v, Xi ) = Θ(L4 ) (see the condition (6) in Definition 5.6), and its weight from
) · L−4 can be as large as Θ(1). So the total weight it receives from
this level W ′ (v, Xi ) = deg(v, Xi ) · (h0 λd−1
i
all the levels can be as large as (L − L′ ) · Θ(1) = Θ(L). The next lemma shows that this actually is the worst
possible scenario. The proof of Lemma 6.3 appears in Section 6.3.
Lemma 6.3. We have W ′ (v, X ) ≤ 2L for every node v ∈ V .
31

Since the spurious nodes are the ones that are preventing w′ from being a fractional matching, we assign
zero weight to any edge that is incident upon a spurious node, and leave the weights of the remaining edges
as in w′ . Accordingly, we define the weight function w′′ : X → [0, 1] in equation 74.
(
S
w′ (u, v) if {u, v} ∩ S = 0,
/ where S = i≥L′ Si ;
′′
(74)
w (u, v) =
0
otherwise.
We highlight an important fact here. Consider an edge (u, v) ∈ Xi , i ≥ L′ . It might very well be the case
that one of its endpoints, say v, is non-spurious at level i but spurious at some other level i′ ∈ {L′ , . . . , L} \ {i}
(i.e., v ∈
/ Si and v ∈ Si′ ). Even under this situation, w′′ assigns zero weight to the edge (u, v). Although this
seems to be a stringent condition, it turns out not to affect our proof in any way.
As expected, the new weights {w′′ (e)}, e ∈ X , actually defines a fractional matching. This is shown in
Lemma 6.4, and the proof of this lemma appears in Section 6.4.
Lemma 6.4. We have W ′′ (v, X ) ≤ 1 for all nodes v ∈ V . In other words, the weight function w′′ defines a
fractional matching in the subgraph induced by the edges in X .
To take stock of the situation, we have constructed two weight functions w′ : X → [0, 1] and w′′ : X →
[0, 1]. The former nearly saturates all the nodes in VX , in the sense that each such node receives a total weight
that is at least η , for some η very close to one (see Lemma 6.2). But w′ is not a fractional matching. The
weight function w′′ , on the other hand, is a fractional matching (see Lemma 6.4) but might not saturate all
the nodes in VX . Our goal is to get the best of the both these worlds. As a first step towards this goal, in
Lemma 6.5 we show that the nodes that are spurious at some level (a.k.a, the “troublemakers”) are negligibly
small in numbers compared to the size of the set VX . The proof of Lemma 6.5 appears in Section 6.5.
Lemma 6.5. The number of nodes that are spurious at some level is negligibly small compared to the
number of nodes v at levels ℓ(v) ≥ L′ in the (α , β )-partition. Specifically, we have:
|S| ≤ (8δ L3 /ε ) · |VX |.

If we switch from the weight function w′ to the weight function w′′ , the only difference we see is that the
edges incident upon the nodes in S have been “turned off”. Let these specific edges be called “transient”.
Under w′ , each node in S receives a total weight of at most 2L (see Lemma 6.3). Thus, we get an upper
bound of 2L · |S| on the total weight assigned by w′ to all the transient edges. Since each edge is incident
upon two nodes, as we switch from w′ to w′′ the total weight of the nodes in VX drops by at most 4L · |S|.
Consequently, by a simple counting argument, at most (4L/ε ) · |S| many nodes in VX can experience a larger
than ε drop in their weights due to this transition. Since every node in VX has weight at least h1 under w′
(see Lemma 6.2), we get the following lemma. The proof of Lemma 6.6 appears in Section 6.6.
Lemma 6.6. Under w′′ , only a negligible fraction of the nodes in VX do not receive large weights. Specifically, define the set of nodes QX = {v ∈ VX : W ′′ (v, X ) < h1 − ε }. Then we have:
|QX | ≤ (32δ L4 /ε 2 ) · |VX |.

Corollary 6.7. We have: |VX | ≤ (1 − 32δ L4 /ε 2 )−1 · |VX \ QX |.
Proof. Follows from Lemma 6.6.
S

Recall that every edge in i≥L′ Ei has at least one endpoint in VX . In lieu of our high level discussions at
S
the start of this section, we see that w′′ is a “nearly-maximal” fractional matching in i≥L′ Ei in the following
sense: It “nearly saturates” “almost all” the nodes in VX (see Lemmas 6.4 and 6.6). Remaining faithful to our
initial plan, in Lemma 6.8 we now show the existence of a large matching in M ∗ ⊆ X ∪Y . The construction
of this matching M ∗ will crucially rely on the properties of the weight function w′′ . The proof of Lemma 6.8
appears in Section 6.7.
32

Lemma 6.8. Let X ∗ = {(u, v) ∈ X : w′′ (u, v) > 0} be the set of edges that receive nonzero weights under w′′ ,
and let E ∗ = X ∗ ∪Y . Define G∗ = (V, E ∗ ) to be the subgraph of G = (V, E) induced by the edges in E ∗ . Then
for every matching M ⊆ E in G, there is a matching M ∗ ⊆ E ∗ in G∗ such that |M| ≤ (2/h2 ) · (1 + ε ) · |M ∗ |.
Theorem 5.8 now follows from Lemmas 6.1 and 6.8.
6.1

Some basic notations

Here, we quickly recall some basic notations introduced earlier. We also introduce a few notations. All these
notations will be used throughout the rest of this section.
S
• Define B = Li=L′ Bi to be the set of nodes that are big at some level i ≥ L′ .
S
• Define S = Li=L′ Si to be the set of nodes that are spurious at some level i ≥ L′ .
S
• Define T = Li=L′ Ti to be the set of nodes that are tiny at some level i ≥ L′ .
• Given any node v ∈ V , let Lv (B) be the levels in [L′ , L] where it is big. Thus, a level i ∈ [L′ , L] belongs
to the set Lv (B) iff v ∈ Bi .
• Given any node v ∈ V , let Lv (T ) be the levels in [L′ , L] where it is tiny. Thus, a level i ∈ [L′ , L] belongs
to the set Lv (T ) iff v ∈ Ti .
• Given any node v ∈ V , let Lv (S) be the levels in [L′ , L] where it is spurious. Thus, a level i ∈ [L′ , L]
belongs to the set Lv (S) iff v ∈ Si .
• Since a node is either big or tiny (but not both) at each level, it follows that for every node v ∈ V the
set {L′ , . . . , L} is partitioned by the three subsets Lv (S), Lv (B) \ Lv (S) and Lv (T ) \ Lv (S).
• Recall the notations VX and VY introduced right after the proof of Lemma 6.1.
6.2

Proof of Lemma 6.2

• Throughout this proof, we will use the notations defined in Section 6.1.
Throughout this section, fix any node v ∈ VX . Thus, the node v is at level ℓ(v) ≥ L′ in the (α , β )-partition.
Claim 6.9. Under w, the node v gets negligible weight from all the levels i ∈ [L′ , L] where it is tiny. Specifically, we have:
∑ W (v, Xi ) ≤ 3ε .
i∈Lv (T )

Proof. Consider any level i ∈ Lv (T ) where the node v is tiny. By the condition (2) in Definition 5.6, we
have deg(v, Ei ) < 3ε di /L2 . Since each edge in Ei received a weight 1/di under w, we get:
W (v, Ei ) = deg(v, Ei ) · (1/di ) ≤ 3ε /L2

(75)

Since there are at most L levels in the range [L′ , L], summing equation 75 over all i ∈ Lv (T ), we get:

∑

i∈Lv (T )

W (v, Ei ) ≤ |Lv (T )| · (3ε /L2 ) ≤ 3ε /L ≤ 3ε .

The last inequality holds since L ≥ 1 (see equation 65).
Corollary 6.10. Under w, the node v receives close to one weight from the levels i ∈ [L′ , L] where it is big.
Specifically, we have:
∑ W (v, Ei ) ≥ (αβ )−1 − 3ε .
i∈Lv (B)

Proof. Since v ∈ VX , the node v belongs to a level ℓ(v) ≥ L′ in the (α , β )-partition. Hence, every edge
(u, v) ∈ E incident upon v has level ℓ(u, v) = max(ℓ(u), ℓ(v)) ≥ L′ . Thus, from Invariant 5.2 we get:
L

∑ W (v, Ei ) = W (v, E) ≥ (αβ )−1

i∈L′

33

(76)

At any level in the (α , β )-partition the node v is either big or tiny, but it cannot be both at the same time.
In other words, the set of levels {L′ , . . . , L} is partitioned into two subsets: Lv (B) and Lv (T ). Hence, the
corollary follows from equation 76 and Claim 6.9.
Claim 6.11. Consider the weight received by the node v under w′ from the levels in [L′ , L] where it is big.
This weight is nearly equal to the weight it receives under w from the same levels. Specifically, we have:

∑

i∈Lv (B)

W ′ (v, Xi ) ≥ (h0 e−γ ) ·

∑

W (v, Ei ).

i∈Lv (B)

Proof. Consider any level i ∈ Lv (B) where the node v is big. By the condition (5) of Definition 5.6, the
degree of v drops roughly by a multiplicative factor of (λdi L4 /di ) as we go from Ei to Xi . Thus, we have:
deg(v, Xi ) ≥ e−γ · (λdi L4 /di ) · deg(v, Ei )

(77)

Each edge in Xi receives exactly h0 · (λdi L4 )−1 weight under w′ . Hence, equation 77 implies that:
W ′ (v, Xi ) = h0 · (λdi L4 )−1 · deg(v, Xi ) ≥ (h0 e−γ ) · (1/di ) · deg(v, Ei )

(78)

Since each edge in Ei receives 1/di weight under w, equation 78 implies that:
W ′ (v, Xi ) ≥ (h0 e−γ ) ·W (v, Ei )

(79)

The claim follows if we sum equation 79 over all levels i ∈ Lv (B).
Under w′ , the total weight received by the node v is at least the weight it receives from the levels i ∈ [L′ , L]
where it is big. Thus, from Corollary 6.10 and Claim 6.11, we infer that:
W ′ (v, X ) ≥

∑

i∈Lv (B)

W ′ (v, Xi ) ≥ (h0 e−γ ) · ((αβ )−1 − 3ε ) = h1 .

The last equality follows from equation 71. This concludes the proof of the lemma.
6.3

Proof of Lemma 6.3

Fix any node v ∈ V . We will first bound the weight received by the node v under w′ from any given
level i ∈ [L′ , L]. Towards this end, note that by the condition (6) in Definition 5.6, we have deg(v, Xi ) ≤
λdi · L4 + 2 ≤ 2λdi L4 . The last inequality holds since 1/2 ≤ λdi ≤ 1 (see equation 59) and L4 ≥ 4 (see
equation 65). Since every edge in Xi receives a weight h0 · (λdi L4 )−1 under w′ , equation 70 gives us:
W ′ (v, Xi ) = deg(v, Xi ) · h0 · (λdi L4 )−1 ≤ 2h0 ≤ 2
Summing the above inequality over all levels i ∈ [L′ , L], we get:
W ′ (v, X ) =

L

∑ W ′ (v, Xi ) ≤ 2(L − L′ + 1) ≤ 2L.

i=L′

This concludes the proof of the lemma.

34

6.4

Proof of Lemma 6.4

• Throughout this proof, we will use the notations defined in Section 6.1.
Throughout this section, we fix any node v ∈ V . Recall that the set of levels {L′ , . . . , L} is partitioned into
three subsets: Lv (S), Lv (T ) \ Lv (S) and Lv (B) \ Lv (S). Thus, we have:
W ′′ (v, X ) =

∑

∑

W ′′ (v, Xi ) +

W ′′ (v, Xi ) +

i∈Lv (T )\Lv (S)

i∈Lv (S)

∑

W ′′ (v, Xi )

(80)

i∈Lv (B)\Lv (S)

We separately bound the weights received by the node v under w′′ from these three different types of
levels. The lemma follows by adding up the bounds from Claims 6.12, 6.13 and 6.14.
Claim 6.12. The node v gets zero weight under w′′ from all the levels i ∈ [L′ , L] where it is spurious. Specifically, we have ∑i∈Lv (S) W ′′ (v, Ei ) = 0.
Proof. If the node v is spurious at some level i, then each of its incident edges in Xi gets zero weight under
w′′ (see equation 74). The claim follows.
Claim 6.13. The node v gets negligible weight under w′′ from all the levels i ∈ [L′ , L] where it is tiny but
non-spurious. Specifically, we have:

∑

i∈Lv (T )\Lv (S)

W ′′ (v, Xi ) ≤ (1 + 4ε )−1 · (4ε ).

Proof. Consider any level i ∈ Lv (T ) \ Lv (S) where the node v is tiny but non-spurious. Note that λdi ≥ 1/2
(see equation 59). Hence, Definition 5.6 and equation 63 imply that:
deg(v, Xi ) ≤ 3ελdi L2 + 2 ≤ 4ελdi L2

(81)

W ′′ (v, Xi ) ≤ h0 · (λdi L4 )−1 · deg(v, Xi ) ≤ 4ε h0 L−2 ≤ (1 + 4ε )−1 · (4ε /L2 )

(82)

Each edge in Xi receives at most h0 · (λdi L4 )−1 weight under w′′ . Thus, equations 81 and 70 imply that:
Since there are at most L levels in the range

∑

i∈Lv (T )\Lv (S)

[L′ , L],

summing equation 82 over all i ∈ Lv (T ) \ Lv (S) gives:

W ′′ (v, Xi ) ≤ (1 + 4ε )−1 · (4ε /L)

(83)

This claim follows from equation 83 and the fact that L ≥ 1 (see equation 65).

Claim 6.14. The node v receives at most (1 + 4ε )−1 weight under w′′ from all the levels i ∈ [L′ , L] where it
is big and non-spurious. Specifically, we have:

∑

i∈Lv (B)\Lv (S)

W ′′ (v, Xi ) ≤ (1 + 4ε )−1 .

Proof. Consider any level i ∈ Lv (B) \ Lv (S) where the node v is big but non-spurious. By the condition (5)
of Definition 5.6, the degree of v drops roughly by a multiplicative factor of (λdi L4 /di ) as we go from Ei to
Xi . Specifically, we have:
(84)
deg(v, Xi ) ≤ eγ · (λdi L4 /di ) · deg(v, Ei )
Each edge in Xi receives at most h0 · (λdi L4 )−1 weight under w′′ . Hence, equations 69, 84 imply that:
W ′′ (v, Xi ) ≤ h0 · (λdi L4 )−1 · deg(v, Xi ) ≤ (1 + 4ε )−1 · (1/di ) · deg(v, Ei )

(85)

Since each edge in Ei receives 1/di weight under w, equation 85 implies that:
W ′′ (v, Xi ) ≤ (1 + 4ε )−1 ·W (v, Ei )

(86)

The claim follows if we sum equation 86 over all levels i ∈ Lv (B)\Lv (S), and recall that the sum ∑iLv (B)\Lv (S) W (v, Ei )
itself is at most one (for w is a fractional matching in G).
The lemma follows from equation 80 and Claims 6.12, 6.13, 6.14.
35

6.5

Proof of Lemma 6.5

• Throughout this proof, we will use the notations defined in Section 6.1.
We first show that the number of nodes that are spurious at some level is negligibly small compared to the
number of nodes that are big at some level. Towards this end, recall the condition (4) in Definition 5.6.
For each level i ∈ [L′ , L], this implies that |Si | ≤ 4δ · |Bi | ≤ 4δ · |B|. The last inequality holds since Bi ⊆ B.
Hence, summing over all the levels i ∈ [L′ , L], we get:
|S| =

L
[

L

i=L′

Si ≤

∑ |Si | ≤ (L − L′ + 1) · 4δ · |B| ≤ (4δ L) · |B|

(87)

i=L′

It remains to upper bound the size of the set B in terms of the size of the set VX . Towards this end, we
first show that every node in B receives sufficiently large weight under w. Specifically, fix any node v ∈ B.
By definition, we have v ∈ Bi at some level i ∈ [L′ , L]. Hence, the condition (1) in Definition 5.6 implies
that deg(v, Ei ) > ε di /L2 . Since each edge in Ei receives a weight 1/di under w, we get: W (v, Ei ) = (1/di ) ·
deg(v, Ei ) > ε /L2 . To summarize, we have the following guarantee.
L

∑ W (v, Ei ) ≥ ε /L2

i=L′

for all nodes v ∈ B.

(88)

Recall that the level of an edge (u, v) in the (α , β )-partition is given by ℓ(u, v) = max(ℓ(u), ℓ(v)). Further,
S
the set Ei is precisely the set of those edges e ∈ E with ℓ(e) = i. Hence, each edge (u, v) ∈ Li=L′ Ei has at
least one endpoint in VX = {x ∈ V : ℓ(v) ∈ [L′ , L]}. Thus, a simple counting argument gives us:
L

L

∑ ∑ W (v, Ei ) ≤ 2 · ∑ ∑ W (v, Ei )

(89)

v∈VX i=L′

v∈B i=L′

The above inequality holds for the following reason. Consider any edge (u, v) ∈ Li=L′ Ei . Either both the
endpoints u, v belong to VX , or exactly one of the endpoints u, v belong to VX . In the former case, the edge
(u, v) contributes at most 2 · w(u, v) to the left hand side, and exactly 4 · w(u, v) to the right hand side. In the
latter case, the edge (u, v) contributes at most 2 · w(u, v) to the left hand side, and exactly 2 · w(u, v) to the
right hand side. Thus, the contribution of every relevant edge to the left hand side is upper bounded by its
contribution to the right hand side.
Next, recall that w defines a fractional matching in G, and so we have W (v, E) ≤ 1 for every node v ∈ V .
Accordingly, from equations 88 and 89, we infer that:
S

|B| · (ε /L2 ) ≤

L

L

∑ ∑ W (v, Ei ) ≤ 2 · ∑ ∑ W (v, Ei ) ≤ 2 · |VX |.
v∈VX i=L′

v∈B i=L′

Rearranging the terms of the above inequality, we get our desired upper bound on |B|.
|B| ≤ (2L2 /ε ) · |VX |

(90)

Finally, from equations 87, 90, we infer that |S| ≤ (8δ L3 /ε ) · |VX |. This concludes the proof of the lemma.
6.6

Proof of Lemma 6.6

• Throughout this proof, we will use the notations VX and VY defined right after the proof of Lemma 6.1.
The weights w′′ are constructed from w′ by switching off the nodes in S and the edges incident upon them
(see equations 73, 74). Since each node in S has at most 2L weight under w′ (see Lemma 6.3), and since
each edge is incident upon two nodes, the transition from w′ to w′′ decreases the sum of the node-weights in
VX by at most 4L · |S|. This insight is formally stated in the claim below.
36

Claim 6.15. We have:

∑ W ′′ (v, X ) ≥ ∑ W ′(v, X ) − 4L · |S|.

v∈VX

v∈VX

Proof. To prove the claim, we first show that:

∑ W ′′(v, X ) + 2 · ∑ W ′(v, X ) ≥ ∑ W ′(v, X )

v∈VX

(91)

v∈VX

v∈S

Equation 91 follows from a simple counting argument. Consider any edge (u, v) ∈ X that has at least one
endpoint in VX . These are the edges that contribute towards the right hand side of the above inequality. Now,
there are two possible cases to consider.
• Case 1. At least one of the endpoints u, v belong to S. In this case, we have w′′ (u, v) = 0. However,
due to the term 2 · ∑v∈S W ′ (v, S), the edge (u, v) contributes at least 2w′ (u, v) towards the left hand side.
And clearly, the edge (u, v) can contribute at most 2w′ (u, v) towards the right hand side.
• Case 2. None of the endpoints u, v belong to S. In this case, we have w′ (u, v) = w′′ (u, v), and so the
contribution of the edge (u, v) towards the left hand side is at least as much as its contribution towards
the right hand side.
Next, we recall that W ′ (v, X ) ≤ 2L for every node v ∈ V (see Lemma 6.3). Thus, we have:
4L · |S| ≥ 2 · ∑ W ′ (v, X )

(92)

∑ W ′′ (v, X ) + 4L · |S| ≥ ∑ W ′(v, X )

(93)

v∈S

From equations 91 and 92, we infer that:
v∈VX

v∈VX

The claim follows from equation 93.
As we make a transition from w′ to w′′ , the total weight of the nodes in VX drops by at most 4L · |S|
(see Claim 6.15). Hence, by a simple counting argument, due to this transition at most (4L/ε ) · |S| nodes
can experience their weights dropping by more than ε . Next, recall that under w′ , every node v ∈ VX has
weight W ′ (v, X ) ≥ h1 (see Lemma 6.2). Thus, every node in QX has experienced a drop of ε due to the
transition from w′ to w′′ . Accordingly, the size of the set QX cannot be larger than (4L/ε ) · |S|. Since
|S| ≤ (8δ L3 /ε ) · |VX |, we infer that |QX | ≤ (32δ L4 /ε 2 ) · |VX |. This concludes the proof of the lemma.
6.7

Proof of Lemma 6.8

• Throughout this proof, we will use the notations VX and VY defined right after the proof of Lemma 6.1.
We begin by noting that under w′′ , the weights of the edges in X ∗ are very close to one another.
Observation 6.16. Let c = ⌊(L4 /2)⌋. Then we have 1/(8c) ≤ w′′ (e) ≤ 1/c for every edge e ∈ X ∗ .
Proof. Consider any edge (u, v) ∈ X ∗ . This edge belongs to some level i ∈ [L′ , L], and since (u, v) ∈ X ∗ ,
by definition the edge has nonzero weight under w′′ . Hence, equations 73 and 74 implies that w′′ (u, v) =
(h0 /λdi ) · L−4 . Since 1/2 ≤ h0 , λdi ≤ 1 (see equations 59, 70), we get: 1/(2L4 ) ≤ w′′ (u, v) ≤ 2/L4 . The
observation now follows from the fact that c = ⌊(L4 /2)⌋ ≥ (L4 /4). See equation 54.
As an important corollary, we get an upper bound on the maximum degree of a node in GX ∗ = (V, X ∗ ).
Corollary 6.17. We have deg(v, X ∗ ) ≤ 8c for every node v ∈ V .
Proof. The corollary holds since 1 ≥ W ′′ (v, X ) = W ′′ (v, X ∗ ) ≥ deg(v, X ∗ ) · (1/c) for all nodes v ∈ V . The
first inequality follows from Lemma 6.4. The last inequality follows from Observation 6.16.
37

6.7.1

Outline of the proof

Before proceeding any further, we give a high level overview of our approach. Suppose that we make two
simplifying assumptions (which will be relaxed in Section 6.7.2).
Assumption 1. Each edge e ∈ X ∗ receives exactly the same weight 1/c′′ under w′′ , for some integer c′′ .
Thus, we have w′′ (e) = 1/c′′ for all e ∈ X ∗ . By Observation 6.16, the weights {w′′ (e)}, e ∈ X ∗ , are already
very close to one another. Here, we take this one step further by assuming that they are exactly equal. We
also assume that these edge-weights are inverse of some integer value.
Assumption 2. There is no edge (u, v) ∈ E in the (α , β )-partition at level ℓ(u, v) < L′ . In other words, we
are assuming that the edge-set Y is empty.
By Lemma 6.4, w′′ defines a fractional matching in the graph G = (V, E). We will now see that under
the above two assumptions, we can say something more about w′′ . Towards this end, first note that as Y = 0/
(see Observation 2), every edge (u, v) ∈ E has level ℓ(u, v) = max(ℓ(u), ℓ(v)) ≥ L′ in the (α , β )-partition.
Since VX is precisely the set of nodes v ∈ V with levels ℓ(v) ≥ L′ , we infer the following fact.
Fact 1. Every edge (u, v) ∈ E has at least one endpoint in VX .
On the other hand, by Lemma 6.6, an overwhelming fraction of the nodes in VX receive weights that
are close to one under w′′ . This, along with Fact 1, implies that w′′ is a “near-maximal” matching in G, in
the sense that almost all the edges in G have at least one nearly tight endpoint under w′′ . Hence, the value
of w′′ , given by w′′ (E) = ∑e∈E w′′ (e), is very close to being a 2-approximation to the size of the maximum
cardinality matching in G. We will now show that there exists a matching M ∗ ⊆ X ∗ whose size is very close
to w′′ (E). This will imply the desired guarantee we are trying to prove.
We now bound the value of the fractional matching w′′ . Since each edge in X ∗ receives 1/c′′ weight
under w′′ (see Assumption 1), and since every other edge gets zero weight, we have w′′ (E) = |X ∗ |/c′′ . This
is summarized as a fact below.
Fact 2. We have w′′ (E) = |X ∗ |/c′′ .
It remains to show the existence of a large matching in GX ∗ of size very close to w′′ (E). Towards this end,
we first note that c′′ is an upper bound on the maximum degree of a node in GX ∗ = (V, X ∗ ). This holds since
W ′′ (v, X ∗ ) = (1/c′′ ) · deg(v, X ∗ ) ≤ 1 for all v ∈ V (see Lemma 6.4). Thus, by Vizing’s theorem [17, 18], there
is a proper edge-coloring of the edges in GX ∗ using only c′′ + 1 colors. Recall that a proper edge-coloring
assigns one color to every edge in the graph, while ensuring that the edges incident upon the same node get
different colors. We take any c′′ + 1 edge-coloring in GX ∗ as per Vizing’s theorem. By a simple counting
argument, there exists a color that is assigned to at least |X ∗ |/(c′′ + 1) edges in X ∗ . The edges that receive
this color constitute a matching in GX ∗ (for they cannot share a common endpoint). In other words, there
exists a matching M ∗ ⊆ X ∗ of size |X ∗ |/(c′′ + 1). From Fact 2, we infer that |M ∗ | ≥ w′′ (E) · (c′′ /(c′′ + 1)).
Since c′′ = Θ(poly L) = Θ(poly log n), the size of the matching M ∗ is indeed very close to the value w′′ (E).
This gives us the desired bound.
6.7.2

The complete proof

Unfortunately, while giving a complete proof, we cannot rely on the simplifying assumptions from Section 6.7.1. Since Assumption 1 no longer holds, a natural course of action is to discretize the edge-weights
under w′′ into constantly many buckets, without loosing too much of the value of the fractional matching
defined by w′′ . This will at least ensure that the number of different weights is some constant, and we hope
to extend our proof technique from Section 6.7.1 to this situation.

38

We pick some sufficiently large constant integer K, and round down the weights under w′′ to the nearest
multiples of 1/(8Kc). Let w∗ be these rounded weights. Specifically, for every edge e ∈ X ∗ , we have:
w∗ (e) =

τ ∗ (e)
τ ∗ (e)
τ ∗ (e) + 1
, where τ ∗ (e) is a positive integer such that
≤ w′′ (e) <
.
8Kc
8Kc
8Kc

(94)

As usual, given any subset of edges E ′ ⊆ E and node v ∈ V , we define W ∗ (v, E ′ ) to be the total weight
received by v from its incident edges in E ′ , and w∗ (E ′ ) to be the total weight of all the edges in E ′ . We now
list down some basic properties of the weights w∗ , comparing them against the weights w′′ .
Observation 6.18. For all e ∈ X ∗ , we have (8c)−1 ≤ w∗ (e) ≤ w′′ (e) ≤ (c)−1 and K ≤ τ ∗ (e) ≤ 8K.
Proof. Follows from Observation 6.16 and equation 94.
Observation 6.19. For every node v ∈ V , we have W ′′ (v, X ∗ ) − 1/K ≤ W ∗ (v, X ∗ ) ≤ W ′′ (v, X ∗ ).
Proof. Fix any node v ∈ V . It has at most 8c edges incident upon it in GX ∗ = (V, X ∗ ) (see Corollary 6.17).
As we make a transition from w′′ to w∗ , each of these edges incurs a weight-loss of at most 1/(8Kc) (see
equation 94). Hence, the total loss in the weight received by the node v from its incident edges is at most
(8c) · 1/(8Kc) = 1/K. Accordingly, we have W ∗ (v, X ∗ ) ≥ W ′′ (v, X ∗ ) − 1/K.
Roadmap. The rest of the section is organized as follows.
1. Recall that M ⊆ E is a matching in the graph G = (V, E) we want to compete against. We first construct
two multi-graphs GX ∗ = (V, EX ∗ ) and GM∩Y = (V, EM∩Y ). The multi-edges in EX ∗ are constructed from
the edge-set X ∗ . Similarly, as the notation suggests, the multi-edges in EM∩Y are constructed from the
edge-set M ∩Y (which consists of the matched edges in M with both endpoints at a level less than L′
in the (α , β )-partition). We also define G = (V, E ) to be the union of the two multi-graphs GX ∗ and
GM∩Y , so that E = EX ∗ ∪ EM∩Y .
2. Next, we construct a fractional matching wE : E → [0, 1] in the multi-graph G . This fractional matching is “uniform”, in the sense that it assigns exactly the same weight to every multi-edge. This is
a significant property, since the fractional matching we had to deal with in the simplified proof of
Section 6.7.1 was also uniform, and this fact was used while comparing the value of the fractional
matching against the size of the integral matching constructed out of Vizing’s theorem [17, 18]. As
in Section 6.7.1, we will show that the value of the fractional matching wE (E ) = ∑e∈E wE (e) is very
close to being a 2-approximation to the size of M ⊆ E (the matching in G we are competing against).
3. Finally, we construct a matching M ∗ ⊆ X ∗ ∪ Y whose size is very close to wE (E ). To construct this
matching M ∗ , we use a generalized version of Vizing’s theorem for multi-graphs.
4. Steps 2 and 3 imply that the size of the matching M ∗ is very nearly within a factor of 2 of |M|. This
concludes the proof of Lemma 6.8.
Step I: Constructing the multi-graphs GX ∗ = (V, EX ∗ ), GM∩Y = (V, EM∩Y ) and G = (V, E ).
We create τ ∗ (e) copies of each edge e ∈ X ∗ , and let EX ∗ denote the collection of these multi-edges. Next, we
create max (0, 8Kc − deg(u, EX ∗ ) − deg(v, EX ∗ )) copies of every edge (u, v) ∈ M ∩Y , and let EM∩Y denote the
collection of these multi-edges. We also define E = EX ∗ ∪ EM∩Y . We will be interested in the multi graphs
GX ∗ = (V, EX ∗ ), GM∩Y = (V, EM∩Y ) and G = (V, E ). We now state three simple observations that will be
useful later on.
Observation 6.20. In the multi-graph G , the degree of every node v ∈ V is at most 8Kc.

39

Proof. Throughout the proof, fix any node v ∈ V . We first bound the degree of this node among the multiedges in EX ∗ . Accordingly, consider an edge (u, v) ∈ X ∗ that contributes to deg(v, EX ∗ ). Under w∗ , this edge
has weight w∗ (u, v) = τ ∗ (u, v)/(8Kc). While constructing the multi-graph G , we simply created τ ∗ (u, v)
copies of this edge. Thus, summing over all such edges (u, v) ∈ X ∗ , we get:
deg(v, EX ∗ ) =
=

∑

τ ∗ (u, v)

∑

w∗ (u, v) · (8Kc)

(u,v)∈X ∗
(u,v)∈X ∗
∗
∗

= W (v, X ) · (8Kc)

≤ 8Kc

(95)

The last inequality holds since X ∗ ⊆ X is the set of edges in X that receive nonzero weights under w′′ , and
hence, we have W ∗ (v, X ∗ ) ≤ W ′′ (v, X ∗ ) = W ′′ (v, X ) ≤ 1 (see Observation 6.19 and Lemma 6.4).
Now, we have two cases to consider.
Case 1. v ∈ VX . In this case, all the multi-edges in G that are incident upon it originate from the edge-set
X ∗ . Thus, we have deg(v, E ) = deg(v, EX ∗ ). The observation now follows from equation 95.
Case 2. v ∈ VY . In this case, note that the node v can be incident upon at most one edge in M ∩Y (for M is
a matching). Thus, by our construction of the multigraph, at most (8Kc − deg(v, EX ∗ )) multi-edges incident
upon v are included in EM∩Y . We therefore conclude that:
deg(v, E ) = deg(v, EX ∗ ) + deg(v, EM∩Y ) ≤ deg(v, EX ∗ ) + 8Kc − deg(v, EX ∗ ) = 8Kc.

Observation 6.21. In the multi-graph GX ∗ , there are at most 8K multi-edges joining any two given nodes.
Proof. Consider any two nodes u, v ∈ V . If (u, v) ∈
/ X ∗ , then by our construction, there cannot be any multiedge between u and v in GX ∗ . Hence, we assume that (u, v) ∈ X ∗ . Recall that w∗ (u, v) = τ ∗ (u, v)/(8Kc)
and that τ ∗ (u, v) copies of the edge (u, v) are added to the multi-graph GX ∗ . Thus, it remains to show that
τ ∗ (u, v) ≤ 8K, which clearly holds since w∗ (u, v) ≤ 1/c (see Observation 6.18).
Observation 6.22. In multi-graph G , we have deg(u, E ) + deg(v, E ) ≥ 8Kc for each edge (u, v) ∈ M ∩Y .
Proof. If deg(u, EX ∗ )+deg(v, EX ∗ ) ≥ 8Kc, then there is nothing more to prove. So let deg(u, EX ∗ )+deg(v, EX ∗ ) =
8Kc − µ for some integer µ ≥ 1. In this case, by our construction, µ copies of the edge (u, v) get added to
EM∩Y , and hence to E = EX ∗ ∪ EM∩Y . Thus, we again get: deg(u, E ) + deg(v, E ) ≥ 8Kc.
Step II: Constructing the fractional matching wE : E → [0, 1] in G .
We assign a weight wE (e) = (8Kc)−1 to every multi-edge e ∈ E . Since every node in G has degree at most
8Kc, we infer that:
WE (v, E ) = deg(v, E ) · 1/(8Kc) ≤ 1.
This shows that the weights {wE (e)}, e ∈ E , constitute a fractional matching in the multi-graph G . We now
state an easy bound on the value of this fractional matching.
Observation 6.23. We have ∑e∈E wE (e) = |E |/(8Kc).
40

As an aside, we intimate the reader that in Step III we will construct a matching M ∗ ⊆ X ∗ ∪Y of size at
least |E |/(8K(c + 1)). Thus, Observation 6.23 will imply that the size of M ∗ is a (1 + 1/c)-approximation
to the value of wE . At the present moment, however, our goal is to compare the value of wE against the size
of the matching M. We now make two simple observations that will be very helpful in this regard.
Observation 6.24. For every edge (u, v) ∈ M ∩Y , we have WE (u) +WE (v) ≥ 1.

Proof. Fix any edge (u, v) ∈ M ∩ Y . Since (u, v) ∈ Y , both u and v are at levels less than L′ in the (α , β )partition. This means that u, v ∈
/ VX . So there can be no multi-edge in EX ∗ between u and v. We consider two
possible cases.
• Case 1. deg(u, EX ∗ ) + deg(v, EX ∗ ) ≥ 8Kc. Note that every multi-edge in EX ∗ gets a weight 1/(8Kc)
under wE . Since no such multi-edge joins u and v, we have:
W ∗ (u, E ) +W ∗ (v, E ) ≥ W ∗ (u, EX ∗ ) +W ∗ (v, EX ∗ )

= (deg(u, EX ∗ ) + deg(v, EX ∗ )) · (8Kc)−1

≥ 1

• Case 2. deg(u, EX ∗ ) + deg(v, EX ∗ ) = 8Kc − µ , where µ > 0 (say). In this case, we also make µ copies
of the edge (u, v) and include them in EM∩Y . Note that every multi-edge in E = EX ∗ ∪ EM∩Y gets a
weight 1/(8Kc) under wE . Since there is no multi-edge between u and v in EX ∗ , we get:
W ∗ (u, E ) +W ∗ (v, E ) ≥ W ∗ (u, EX ∗ ) +W ∗ (v, EX ∗ ) +W ∗ (u, EM∩Y )

= (deg(u, EX ∗ ) + deg(v, EX ∗ ) + µ ) · (8Kc)−1

≥ 1

Observation 6.25. We have WE (v) ≥ h1 − ε − (1/K) for every node v ∈ VX \ QX (see Lemma 6.6).
Proof. Consider any node v ∈ VX \ QX . Consider any edge (u, v) ∈ X ∗ incident upon v. This edge has weight
w∗ (u, v) = τ ∗ (u, v)/(8Kc) under w∗ (see equation 94). Under wE , on the other hand, we create τ ∗ (u, v)
copies of this edge and assign a weight 1/(8Kc) to each of these copies. The total weight assigned to all
these copies, therefore, remains exactly equal to τ ∗ (u, v)/(8Kc). Next, note that since v ∈ VX , there cannot
be any edge in Y that is incident upon v. Thus, we have:
WE (v, E ) = WE (v, EX ∗ ) = W ∗ (v, X ∗ ) ≥ W ′′ (v, X ∗ ) − (1/K) ≥ h1 − ε − (1/K).
The second-last inequality follows from Observation 6.19. The last inequality follows from Lemma 6.6.
We will now bound the sum of the node-weights under wE by the size of the matching M.
Claim 6.26. We have |M| ≤ (1/h2 ) · ∑v∈V WE (v, E ).

Proof. Every edge (u, v) ∈ M \Y has at least one endpoint at level L′ or higher in the (α , β )-partition. In
other words, every edge (u, v) ∈ M \Y has at least one endpoint in VX . Since each node in VX can get matched
by at most one edge in M, we have:
|M \Y | ≤ |VX |
(96)
Each edge (u, v) ∈ M ∩ Y , on the other hand, has WE (u, E ) + WE (v, E ) ≥ 1 (see Observation 6.24). Since
both these endpoints u, v belong to the node-set VY = V \VX , summing over all edges in M ∩Y , we get:
|M ∩Y | ≤

∑ WE (v, E )

v∈VY

41

(97)

Since |M| = |M ∩Y | + |M \Y |, equations 96 and 98 give us the following upper bound on |M|.
|M| ≤

∑ WE (v, E ) + |VX |

(98)

v∈VY

To complete the proof, we will now upper bound the size of the set VX by the sum ∑v∈VX WE (v, E ). The main
idea is simple. Lemma 6.6 shows that only a negligible fraction of the nodes in VX belong to the set QX , and
Observation 6.25 shows that for every other node v ∈ VX \ QX , the weight WE (v, E ) is very close to one. To
be more specific, we infer that:
|VX | ≤ (1 − 32δ L4 /ε 2 )−1 · |VX \ QX |
≤ (1 − 32δ L /ε )

2 −1

4

= h−1
2 ·
≤ h−1
2 ·

∑

(99)

· (h1 − ε − 1/K)

−1

·

∑

WE (v, E )

(100)

v∈VX \QX

WE (v, E )

(101)

v∈VX \QX

∑ WE (v, E )

(102)

v∈VX

Equation 99 follows from Corollary 6.7. Equation 100 follows from Observation 6.25. Equation 101 follows
from equation 72.
Since the node-set V is partitioned by the subsets VX and VY , from equations 102 and 98 we infer that:
|M| ≤

∑ WE (v, E ) + h−1
2 · ∑ WE (v, E )

v∈VY

≤ h2−1 ·
=

h2−1 ·

v∈VX

!

∑ WE (v, E ) + ∑ WE (v, E )

v∈VY

v∈VX

∑ WE (v, E )

v∈V

This concludes the proof of the claim.
As an immediate corollary, we get a bound on |M| in terms of the value of the fractional matching wE .
Corollary 6.27. We have |M| ≤ (2/h2 ) · ∑e∈E wE (e).
Proof. Follows from Claim 6.26 and the fact that each multi-edge is incident upon two nodes.
Step III: Constructing the matching M ∗ ⊆ X ∗ ∪Y .
Every node in the multigraph GX ∗ has degree at most 8Kc (see Observation 6.20), and any two given nodes in
GX ∗ have at most 8K multi-edges between them (see Observation 6.21). Hence, by Vizing’s theorem [17, 18],
there is a proper edge-coloring in GX ∗ that uses only 8Kc + 8K = 8K(c + 1) colors. Let λ → {1, . . . , 8K(c +
1)} be such a coloring, where λ (e) denotes the color assigned to the multi-edge e ∈ EX ∗ . By definition, two
multi-edges incident upon the same node get different colors under λ .
We use λ to get a proper edge-coloring λE : E → {1, . . . , 8K(c + 1)} of the multi-graph G with the same
number of colors. This is done as follows.
• First, we set λE (e) = λ (e) for every multi-edge e ∈ EX ∗ . This ensure that two multi-edges in EX ∗
incident upon the same node get different colors under λE , for λ is already a proper coloring of GX ∗ .

42

• It remains to assign a color to every multi-edge in GM∩Y . Towards this end, recall that each multiedge in GM∩Y originates from some edge in M ∩Y . Consider any edge (u, v) ∈ M ∩Y . There are two
possible cases.
– Case 1. deg(u, EX ∗ ) + deg(v, EM∩Y ) ≥ 8Kc.
In this case, we do not have any copy of the edge (u, v) in GM∩Y . There is nothing to be done as
far as the coloring λE is concerned.
– Case 2. deg(u, EX ∗ ) + deg(v, EM∩Y ) = 8Kc − µ , for some integer µ ≥ 1.
In this case, there are µ copies of the edge (u, v) in GM∩Y . While assigning colors to these copies,
we only need to ensure that they do not come into conflict with the colors that have already been
assigned to the multi-edges in EX ∗ incident upon u and v. But, we are guaranteed that there are
exactly (8Kc − µ ) of these potentially troubling edges. Since we have a palette of (8Kc + 8K)
colors to begin with, even after assigning the colors to the edges in EX ∗ , we are left with at least
(8Kc + 8K) − (8Kc − µ ) = 8K + µ colors that have not been used on any multi-edge incident
upon u or v. Using these leftovers, we can easily color all the µ copies of the edge (u, v) without
creating any conflict with the colors assigned to the multi-edges in EX ∗ .
Thus, there exists a proper coloring of G = (V, E ) using 8K(c + 1) colors. Since each multi-edge is assigned
one color, one of these 8K(c + 1) colors will hit at least |E |/(8K(c + 1)) multi-edges, and those multi-edges
will surely constitute a matching (for they cannot share a common endpoint). This shows the existence of a
matching M ∗ ⊆ X ∗ ∪Y of size at least |E |/(8K(c + 1)). Thus, we get the following claim.
Claim 6.28. There exists a matching M ∗ ⊆ X ∗ ∪Y of size at least |E | /(8K(c + 1)).
Step IV: Wrapping things up (The approximation guarantee)
By Claim 6.28, there exists a matching M ∗ ⊆ X ∗ ∪ Y of size at least |E | /(8K(c + 1)). By Claim 6.27,
the size of the matching M is at most (2/h2 ) times the value of the fractional matching wE defined on
G = (V, E ). Finally, by Observation 6.23, the value of the fractional matching wE is exactly |E | /(8Kc).
Thus, we conclude that:
|M| ≤ (2/h2 ) ·

|E |

∑ we(E ) = (2/h2 ) · (8Kc) ≤ (2/h2 ) · (1 + 1/c) · |M ∗| ≤ (2/h2 ) · (1 + ε ) · |M ∗|.

e∈E

The last inequality holds since c = ⌊(L4 /2)⌋ ≥ (1/ε ) (see Observation 6.16 and equation 54). In other
words, there exists a matching M ∗ ⊆ X ∗ ∪Y whose size is a (2/h2 ) · (1 + ε )-approximation to the size of the
matching M. This concludes the proof of Lemma 6.8.

7 Maintaining the edge-set of a skeleton: Proof of Theorem 5.7
In this section, we consider the following dynamic setting. We are given an input graph G = (V, E) with
|V | = n nodes. In the beginning, the edge-set E is empty. Subsequently, at each time-step, an edge is inserted
into (or deleted from) the graph G. However, at each time-step, we know for sure that the maximum degree
of any node in G is at most d. Thus, we have the following guarantee.
Lemma 7.1. We have deg(v, E) ≤ d for all nodes v ∈ V .
We will present an algorithm for maintaining the edge-set X of a skeleton of G (see Definition 5.6).

43

Roadmap. The rest of this section is organized as follows.
• In Section 7.1, we present a high level overview of our approach.
• In Section 7.2, we define the concepts of a “critical structure” and a “laminar structure” that will be
used in later sections. We also motivate the connection between these two concepts and the notion of
a skeleton of the graph.
• In Section 7.3, we describe two subroutines that will be crucially used by our algorithm.
• In Section 7.4, we present our algorithm for dynamically maintaining critical and laminar structures
and analyze some of its basic properties.
• In Section 7.5, we show that our algorithm in Section 7.4 gives us the edge-set of some skeleton of G.
See Theorem 7.26.
• In Section 7.6, we analyze the amortized update time of our algorithm. See Theorem 7.27.
• Finally, Theorem 5.7 follows from Theorem 7.26 and Theorem 7.27.
7.1

A high level overview of our approach

We begin by introducing the concepts of a “critical structure” (see Definition 7.2) and a “laminar structure”
(see Definition 7.4). Broadly speaking, in a critical structure we classify each node v ∈ V as being either
“active” or “passive”. Barring a few outliers that are called “c-dirty” nodes, every active (resp. passive) node
has degree larger (resp. smaller) than ε d/L2 (resp. 3ε d/L2 ). While the c-dirty nodes are too few in numbers
to have any impact on the approximation ratio of our algorithm, the flexibility of having such nodes turns
out to be very helpful if we want to maintain a critical structure in the dynamic setting.
The edge-set H ⊆ E of a critical structure consists of all the edges incident upon active nodes, and a
laminar structure consists of a family of (Ld + 1) subsets of these edges H = H0 ⊇ H1 ⊇ · · · ⊇ HLd , where
Ld = ⌈log2 (d/L4 )⌉ (see equation 58). The set H j is identified as the “layer j” of the laminar structure.
Ignoring some low level details, our goal is to reduce the degree of each active node by a factor of half
across successive layers. Thus, the degree of an active node v in the last layer HLd will be very close to 2−Ld
times its degree among the edges in H. Since every edge incident upon an active node is part of H, we get
deg(v, HLd ) ≃ 2−Ld · deg(v, H) = 2−Ld · deg(v, E) = (λd L4 /d) · deg(v, E) for every active node v ∈ V . The last
equality holds since Ld is chosen in such a way that 2Ld = λd d/L4 (see equation 59).
We will also try to ensure that the degree of every node (not necessarily active) reduces by at least a
factor of half (it is allowed to reduce by more) across successive layers. This will imply that deg(v, HLd ) is
at most 2−Ld · deg(v, H) = (λd L4 /d) · deg(v, H) ≤ (λd L4 /d) · deg(v, E) for every node v ∈ V . Finally, recall
that deg(v, E) ≤ d for every node v ∈ V (see Lemma 7.1), and that deg(v, E) < 3ε d/L2 for the passive nodes
v. Thus, roughly speaking, we will have deg(v, HLd ) ≤ λd L4 for all nodes v ∈ V , and deg(v, HLd ) ≤ 3ελd L2
for all passive nodes v.
The main purpose of the preceding discussion was to show the link between the concepts of critical
and laminar structures on the one hand, and the notion of a skeleton of a graph on the other. Basically,
ignoring the small number of c-dirty nodes, (a) the set of active (resp. passive) nodes correspond to the set
of big (resp. tiny) nodes in Definition 5.6, and (b) the edges in the last layer HLd of the laminar structure
correspond to the edge-set X in Definition 5.6. This shows that in order to maintain the edge-set X of a
skeleton of G, it suffices to maintain a critical structure (A, P, Dc , H) and a corresponding laminar structure,
where the symbols A, P, Dc ⊆ V respectively denote the sets of active, passive and c-dirty nodes.
7.2

Critical and laminar structures

We first define the concept of a “critical structure”.
Definition 7.2. A tuple (A, P, Dc , H), where A, P, Dc ⊆ V and H ⊆ E, is called a “critical structure” of
G = (V, E) iff the following five conditions are satisfied:
1. We have deg(v, E) > ε d/L2 for all nodes v ∈ A \ Dc .
2. We have deg(v, E) < 3ε d/L2 for all nodes v ∈ P \ Dc .
44

3. We have:
|Dc | ≤ (δ /(Ld + 1)) · |A|.

(103)

4. We have H = {(u, v) ∈ E : either u ∈ A or v ∈ A}.
5. We have P = V \ A. Thus, the node-set V is partitioned by the subsets A and P.
The nodes in A (resp. P) are called “active” (resp. “passive”). The nodes in Dc (resp. V \ Dc ) are called
“c-dirty” (resp. “c-clean”), where the symbol “c” stands for the term “critical”.
Intuitively, the above definition says that (a) the active nodes have large degrees in G, (b) the passive
nodes have small degrees in G, (c) some nodes (which are called c-dirty) can violate the previous two
conditions, but their number is negligibly small compared to the number of active nodes, and (d) the edgeset H consists of all the edges in E with at least one active endpoint. Roughly speaking, the nodes in
A \ Dc will belong to the set of big nodes B in the skeleton, and the nodes in P \ Dc will belong to the
set of tiny nodes T (see Definition 5.6). In Section 7.4, we present an algorithm for maintaining a critical
structure (A, P, Dc , H). Below, we highlight one important property of a critical structure that follows from
Definition 7.2, namely, all the edges in E that are incident upon an active node are part of the set H.
Observation 7.3. In a critical structure (A, P, Dc , H), we have deg(v, H) = deg(v, E) for all v ∈ A.
We next define the concept of a “laminar structure”.
Definition 7.4. Consider a critical structure (A, P, Dc , H) as per Definition 7.2. A laminar structure w.r.t.
(A, P, Dc , H) consists of (Ld + 1) “layers” 0, . . . , Ld . Each layer j ∈ [0, Ld ] is associated with a tuple
(Cl j , Dl j , H j ) where Cl j , Dl j ⊆ A and H j ⊆ H. The nodes in Cl j (resp. Dl j ) are called l-clean (resp. ldirty) at layer j, where “l” stands for the term “laminar”.
We will be interested in a laminar structure that satisfies the four invariants described below.
The first invariant states that the edge-sets corresponding to successive layers are contained within one
another. In other words, the edge-sets H0 , . . . , HLd form a laminar family. Furthermore, we have H = H0 .
Invariant 7.5. H = H0 ⊇ H1 ⊇ · · · ⊇ HLd .
The second invariant states that at each layer j ∈ [0, Ld ], each active node is classified as either l-dirty or
l-clean. In other words, the set of active nodes is partitioned by the subsets of l-clean and l-dirty nodes at
each layer j. Next, just like the edge-sets H j , the sets of l-clean nodes are also contained within one another
across successive layers. The sets C0 , . . . ,Cl,Ld also form a laminar family. However, unlike the edge-set H0 ,
which is always equal to H, the set C0 can be properly contained within the set of active nodes A. To be
more precise, we define Dl0 = A ∩ Dc to be the set of active nodes that are also c-dirty, and Cl0 = A \ Dl0 to
be the set of active nodes that are c-clean.
Invariant 7.6. The following conditions hold.
1. Dl0 = A ∩ Dc.
2. Dl j ∩Cl j = 0/ and Dl j ∪Cl j = A for every layer j ∈ [0, Ld ].
3. Dl0 ⊆ Dl1 ⊆ · · · ⊆ Dl,Ld , and accordingly, A ⊇ C0 ⊇ C1 ⊇ · · · ⊇ Cl,Ld .
Recall the discussion in Section 7.1. In an ideal scenario, we would like to reduce the degree of every
active node by a factor of 1/2 across successive layers. Specifically, we would like to have deg(v, H j ) =
(1/2) · deg(v, H j−1 ) for every active node v ∈ A and layer j ∈ [1, Ld ]. Such a structure, however, is very difficult to maintain in a dynamic setting. Accordingly, we introduce some slack, and we are happy as long as
deg(v, H j ), instead of being exactly equal to (1/2)·deg(v, H j−1 ), lies in the range [1/(2η ) · deg(v, H j−1 ), (η /2) · deg(v, H j−1 )]
for η = (1 + γ /Ld ). We want every node in the set Cl j ⊆ A to satisfy this approximate degree-splitting condition at all the layers j′ ≤ j. In other words, if an active node v is l-clean at layer j, then its degree ought
to have been split roughly by half across successive layers in the interval [0, j]. This motivates our third
invariant.
45

Invariant 7.7. For every layer j ∈ [1, Ld ] and every node v ∈ Cl j , we have:
(1 + γ /Ld )−1 ·

deg(v, H j−1 )
deg(v, H j−1 )
≤ deg(v, H j ) ≤ (1 + γ /Ld ) ·
.
2
2

At this point, the reader might object that the above invariant only specifies the approximate degreesplitting condition at layer j for the nodes in Cl j , whereas our declared goal was to enforce this condition at
all the layers in the interval [0, j]. Fortunately for us, Invariant 7.6 comes to our rescue, by requiring that a lclean node at layer j must also l-clean at every layer j′ ≤ j. Hence, Invariants 7.6 and 7.7 together imply the
desired guarantee, namely, that the degree of a node v ∈ Cl j is split approximately by half across successive
layers in the entire range [0, j]. The next lemma states this simple observation in a formal language.
Lemma 7.8. A laminar structure has for each layer j ∈ [1, Ld ] and each node v ∈ Cl j :
deg(v, E)
2 j · (1 + γ /L

d

)j

≤ deg(v, H j ) ≤ (1 + γ /Ld ) j ·

deg(v, E)
.
2j

Proof. Consider any layer j ∈ [1, Ld ] and any node v ∈ Cl j . Since Cl j ⊆ Clk for all k ∈ [1, j] (see Invariant 7.6),
we have v ∈ Clk for every layer k ∈ [1, j]. Hence, by Invariant 7.7 we have:
deg(v, Hk−1 )
deg(v, Hk−1 )
≤ deg(v, Hk ) ≤ (1 + γ /Ld ) ·
for all k ∈ [1, j].
2 · (1 + γ /Ld )
2

(104)

From equation 104 we infer that:
deg(v, H0 )
deg(v, H0 )
≤ deg(v, H j ) ≤ (1 + γ /Ld ) j ·
.
2 j · (1 + γ /Ld ) j
2j

(105)

Since Cl j ⊆ A (see Invariant 7.6) and v ∈ Cl j , we have v ∈ A. Hence, Observation 7.3 and Invariant 7.5 imply
that deg(v, H0 ) = deg(v, H) = deg(v, E). The lemma now follows from equation 105.
We now bound the degree of a l-clean node in the last layer Ld in terms of its degree in the graph G.
Corollary 7.9. For each node v ∈ Cl,Ld in a laminar structure, we have:
e−γ · (λd L4 /d) · deg(v, E) ≤ deg(v, HLd ) ≤ eγ · (λd L4 /d) · deg(v, E).
Proof. Fix any node v ∈ Cl,Ld . Setting j = Ld in Lemma 7.8, we get:
deg(v, E)
deg(v, E)
≤ deg(v, H j ) ≤ (1 + γ /Ld )Ld ·
.
2 j · (1 + γ /Ld )Ld
2j
The corollary now follows from equation 59 and the fact that (1 + γ /Ld )Ld ≤ eγ .
We want to ensure that the edge-set HLd corresponds to the edge-set X of the skeleton in Definition 5.6.
Comparing the guarantee stated in Corollary 7.9 with the condition (5) in Definition 5.6, it becomes obvious
that each l-clean node in the last layer Ld will belong to the set of big, non-spurious nodes B \ S in a
skeleton. Furthermore, pointing towards the similarities between the conditions (1), (2) in Definition 7.2
and the conditions (2), (3) in Definition 5.6, we hope to convince the reader that every active, c-clean node
will belong to the set B, and that every passive, c-clean node will belong to the set T . This, however, is not
the end of the story, for the condition (1) in Definition 5.6 requires that the sets B and T actually partition the
set of all nodes V , whereas we have not yet assigned the c-dirty nodes to either B or T . There is an easy fix

46

for this. We will simply assign all the c-dirty nodes with deg(v, E) > ε d/L2 to B, and the remaining c-dirty
nodes to T . This will take care of the conditions (1), (2), (3) in Definition 5.6.
By Invariant 7.6, we have A \Dc = A \Dl0 = Cl0 . Hence, at this point the reader might raise the following
objection: So far we have argued that the nodes in A \ Dc = Cl0 will belong to the set B and that the nodes in
Cl,Ld will belong to the set B \ S. Intuitively, this alludes to the fact that the nodes in Cl0 \Cl,Ld = Dl,Ld \ Dl0
will belong to the set S of spurious nodes. As we will see in Section 7.5, this is indeed going to be the case.
But the condition (4) in Definition 5.6 places an upper bound on the maximum number of spurious nodes
we can have.6 Till now, we have not stated any such analogous upper bound on the maximum number of
nodes in Dl,Ld . To alleviate this concern, we introduce our fourth and final invariant.
Invariant 7.10. We have:
Dl j ≤

( j + 1)δ
· |A| for every layer j ∈ [0, Ld ].
(Ld + 1)

Note that the invariant places an upper bound on the number of l-dirty nodes at every layer j ∈ [0, Ld ]. At
first glance, this might seem to be too stringent a requirement, for all that we initially asked for was an upper
bound on the number of l-dirty nodes in layer Ld . However, as we shall see in later sections, this invariant
will be very helpful in bounding the amortized update time of our algorithm for maintaining critical and
laminar structures.
The remaining two conditions (6) and (7) in Definition 5.6 cannot be derived from the Definitions 7.2, 7.4
and the four invariants stated above. Instead, they will follow from some specific properties of our algorithm
for maintaining the critical and laminar structures. Ignoring some low level details, these properties are:
1. Most of the time during the course of our algorithm, the layers in the range [1, Ld ] keep losing edges
(i.e., no edge is inserted into H j for j ≥ 1) and hence the degrees of the nodes in these layers keep
decreasing. We emphasize that this property is not true for j = 0.
2. Consider a time-instant t where we see an exception to the rule (1), i.e., an edge is inserted into some
layer j ∈ [1, Ld ] by our algorithm. Then there exists a layer j′ ∈ [1, j − 1] with the following property:
Just after the time-instant t, the degree of every node drops roughly by a factor of 2 across successive
layers in the interval [ j′ , Ld ].
3. Using (1) and (2), we upper bound the maximum degree a node can have in any layer j ∈ [1, Ld ].
As a corollary, we can show that deg(v, HLd ) ≤ λd L4 + 2 for all nodes v ∈ V , and that deg(v, HLd ) ≤
3ελd L2 + 2 for all nodes v ∈ P \ Dc . As we will see later on, these two bounds will respectively
correspond to the conditions (6) and (7) in Definition 5.6.
To conclude this section, we note that these crucial properties of our algorithm are formally derived and
stated in Section 7.4.4 (see Lemmas 7.22, 7.23 and Corollary 7.24).
7.3

Two basic subroutines

In this section, we describe two subroutines that will be heavily used by our algorithm in Section 7.4.
SPLIT(E ). The first subroutine is called SPLIT(E ) (see Figure 1). This takes as input an edge-set E
defined over the nodes in V . Roughly speaking, its goal is to reduce the degree of every node by a factor of
half, and it succeeds in its goal for all the nodes with degree at least three. To be more precise, the output of
the subroutine is a subset of edges E ′ ⊆ E that satisfies the two properties stated in Figure 1. The subroutine
runs in O(|E |) time, and can be implemented as follows:
• Create a new node v∗ . For every node v ∈ V with odd degree deg(v, E ), create a new edge (v∗ , v). Let
Enew denote the set of newly created edges, and let V ∗ = V ∪ {v∗ } and E ∗ = E ∪ Enew . It is easy to
6 The

reader might point out that the condition (3) in Definition 7.2 places an upper bound on the number of c-dirty nodes.
However, it is easy to check that the size of the set Dl,Ld can potentially be much larger than that of Dc .

47

check that every node in the graph G∗ = (V, E ∗ ) has an even degree. Hence, in O(|E ∗ |) time, we can
compute an Euler tour in G∗ . We construct the edge-set E ′ by first selecting the alternate edges in this
Euler tour, and then discarding those selected edges that are part of Enew . The subroutine returns the
edge-set E ′ and runs in O(|E ∗ |) = O(|E |) time. See the paper [9] for details.
1.

The input is a set of edges E defined over the nodes in V .

2.

The output is a subset E ′ ⊆ E , with the following property:
)
− 1 ≤ deg(v, E ′ ) ≤
For every node v ∈ V , we have deg(v,E
2

3.

deg(v,E )
2

+ 1.

The subroutine runs in O(|E |) time.
Figure 1: SPLIT(E ).

REBUILD( j). The second subroutine is called REBUILD( j), where j ∈ [1, Ld ]. We will ensure that
during the course of our algorithm, the conditions stated in Figure 2 are satisfied just before every call to
REBUILD( j). As the name suggests, the subroutine REBUILD( j) will then rebuild the layers k ∈ [ j, Ld ]
from scratch. See Figure 3 for details. We will show that at the end of the call to REBUILD( j), the
Invariants 7.5, 7.6, 7.7 will continue to hold, and Invariant 7.10 will hold for all layers j′ ∈ [0, Ld ]. We will
also derive some nice properties of this subroutine that will be useful later on.
1. The tuple (A, P, Dc , H) is a critical structure as per Definition 7.2.
2. The corresponding laminar structure (see Definition 7.4) satisfies Invariants 7.5, 7.6 and 7.7.
3. Invariant 7.10 holds at every layer j′ ∈ [0, j − 1].
4. Invariant 7.10 is violated at layer j.
Figure 2: Initial conditions just before a call to REBUILD( j), j ∈ [1, Ld ].
1.
2.
3.
4.

F OR k = j to Ld
Hk ← SPLIT(Hk−1 ).
Dl,k ← Dl,k−1 .
Cl,k ← Cl,k−1 .

Figure 3: REBUILD( j), j ∈ [1, Ld ]. Just before a call to this subroutine, the conditions in Figure 2 hold.
The subroutine SPLIT(E ) outputs a subset of edges E ′ ⊆ E where the degree of each node is half
times its original degree, plus-minus one (see Figure 1). Since the subroutine REBUILD( j) iteratively sets
Hk ← SPLIT(Hk−1 ) for k = j to Ld (see Figure 3), we can get a nearly tight bound on the degree of a node
in a layer k ∈ [ j, Ld ] when the subroutine REBUILD( j) finishes execution.
Lemma 7.11. Fix any j ∈ [1, Ld ]. At the end of a call to the subroutine REBUILD( j), we have:
deg(u, Hk−1 )
deg(u, Hk−1 )
− 1 ≤ deg(u, Hk ) ≤
+ 1 for all u ∈ V, k ∈ [ j, Ld ].
2
2
48

The next lemma follows directly from the descriptions in Figures 2 and 3.
Lemma 7.12. Consider any call to the subroutine REBUILD( j) during the course of our algorithm.
• The call does not alter the sets A, P, Dc and H. By Figure 2, the tuple (A, P, Dc , H) is a critical structure
(see Definition 7.2) just before the call, and it continues to remain so at the end of the call.
• The call does not alter the layers k < j, i.e., the sets {Dlk ,Clk , Hk }, k ∈ [0, j − 1], do not change.
• Finally, at the end of the call we have: Dlk = Dl, j−1 and Clk = Cl, j−1 for all layers k ∈ [ j, Ld ].
The proof of the next lemma appears in Section 7.3.1.
Lemma 7.13. At the end of a call to REBUILD( j), Invariants 7.5, 7.6, 7.7 and 7.10 are satisfied.
7.3.1

Proof of Lemma 7.13

Throughout this section, we fix a layer j ∈ [1, Ld ] and a given call to the subroutine REBUILD( j). We let
tstart denote the point in time just before the call to REBUILD( j), whereas we let tend denote the point in time
just after the call to REBUILD( j). We consider all the four invariants one after another.
Proof for Invariant 7.5.
By Figure 2, we have H = H0 ⊇ H1 ⊇ · · · ⊇ H j−1 at time tstart . The call to REBUILD( j) does not change any
of the sets H, H0 , . . . , H j−1 , and it iteratively sets Hk ← SPLIT(Hk−1 ) for k = j to Ld . Hence, by Figure 1, we
have H j−1 ⊇ H j ⊇ · · · ⊇ HLd at time tend . Putting all these observations together, we have H = H0 ⊇ H1 ⊇
· · · ⊇ HLd at time tend . This shows that Invariant 7.5 is satisfied at time tend .
Proof for Invariant 7.6.
By Figure 2, at time tstart we have:
• Dl0 = Dc ∩ A.
• Dlk ∩Clk = 0/ and Dlk ∪Clk = A for all layers k ∈ [1, j − 1].
• Dl0 ⊆ Dl1 ⊆ · · · ⊆ Dl, j−1 and A ⊇ Cl0 ⊇ Cl1 ⊇ · · · ⊇ Cl, j−1 .
The call to REBUILD( j) does not change the sets Dc and A. The sets {Dlk ,Clk }, k < j, are also left untouched. Finally, it is guaranteed that at time tend we have:
• Dlk = Dl, j−1 and Clk = Cl,k−1 for all layers k ∈ [ j, Ld ].
From all these observations, we infer that Invariant 7.6 holds at time tend .
Proof for Invariant 7.10.
By Figure 2 (item 3), at time tstart we have:
|Dlk | ≤

δ (k + 1)
· |A| at every layer k ∈ [0, j − 1].
(Ld + 1)

The call to REBUILD( j) does not change the set A. Neither does it change the sets {Dlk }, k < j. It is also
guaranteed that at time tend we have Dlk = Dl, j−1 for all layers k ∈ [ j, Ld ]. Thus, at time tend we have:
|Dlk | = |Dl, j−1 | ≤

δj
δ (k + 1)
· |A| <
· |A| at every layer k ∈ [ j, Ld ].
(Ld + 1)
(Ld + 1)

From all these observations, we infer that Invariant 7.10 holds at time tend .

49

Proof for Invariant 7.7.
Invariant 7.7 holds at time tstart , and a call to REBUILD( j) does not alter the layers k < j. Thus, we have:
Invariant 7.7 holds at time tend for every layer k ∈ [1, j − 1] and node u ∈ Cl,k .

(106)

Accordingly, we only need to focus on the layers k ∈ [ j, Ld ]. Since the set Cl, j−1 does not change during
the call to REBUILD( j), we will refer to Cl, j−1 without any ambiguity. Further, the call to REBUILD( j)
ensures that Cl,k = Cl, j−1 for all k ∈ [ j, Ld ] at time tend . Thus, in order to prove that Invariant 7.7 holds at
time tend in the remaining layers k ∈ [ j, Ld ], it suffices to show Claim 7.14.
Claim 7.14. Consider any node v ∈ Cl, j−1 . At time tend , we have:
(1 + γ /L)−1 ·

deg(v, Hk−1 )
deg(v, Hk−1 )
≤ deg(v, Hk ) ≤ (1 + γ /L) ·
at every layer k ∈ [ j, Ld ].
2
2

Throughout the rest of this section, we fix a node v ∈ Cl, j−1 , and focus on proving Claim 7.14 for the
node v. The main idea is very simple: The call to REBUILD( j) ensures that upon its return, deg(v, Hk ) is
very close to (1/2) · deg(v, Hk−1 ) for all layers k ∈ [ j, Ld ] (see Lemma 7.11). Barring some technical details,
this is sufficient to show that deg(v, Hk ) is within the prescribed range at each layer k ∈ [ j, Ld ].
Claim 7.15. At time tend , we have:
deg(v, Hk−1 )
deg(v, Hk−1 )
− 1 ≤ deg(v, Hk ) ≤
+ 1 at every layer k ∈ [ j, Ld ].
2
2
Proof. Follows from Lemma 7.11.
Claim 7.16. At time tend , we have deg(v, Hk ) ≥ L at every layer k ∈ [ j − 1, Ld ].
Proof.
Claim 7.17. Consider any number x ≥ L. We have:
• x/2 − 1 ≥ (x/2) · (1 + γ /Ld )−1 , and
• x/2 + 1 ≤ (x/2) · (1 + γ /Ld ).
Proof. To prove the first part of the claim, we infer that:
(x/2) − (x/2) · (1 + γ /Ld )

−1

=
≥
≥
≥

 x   γ /L 
d
·
2
1 + γ /Ld

 

Lγ
1
·
2Ld
1 + γ /Ld
Lγ
4Ld
1

(107)
(108)

Equation 107 follows from equation 66. Equation 108 follows from equation 67.
To prove the second part of the claim, we infer that:
(x/2) · (1 + γ /Ld ) − (x/2) = (x/2) · (γ /Ld )
Lγ
≥
2Ld
≥ 1
Equation 109 follows from equation 67.
50

(109)

Claim 7.18. At time tend , we have
(1 + γ /L)−1 ·

deg(v, Hk−1 )
deg(v, Hk−1 )
≤ deg(v, Hk ) ≤ (1 + γ /L) ·
at every layer k ∈ [ j, Ld ].
2
2

Proof. Consider any layer k ∈ [ j, Ld ]. Let x be the value of deg(v, Hk−1 ) at time tend . Hence, at time tend , the
value of deg(v, Hk ) lies in the range [x/2−1, x/2+1] (see Claim 7.15). Since
 x ≥ L (see Claim 7.16), we infer 
that the range [x/2−1, x/2+1] is completely contained within the range (1 + γ /L)−1 · (x/2), (1 + γ /L) · (x/2)

(see Claim 7.17). Thus, at time tend , the value of deg(v, Hk ) also falls within the range (1 + γ /L)−1 · (x/2), (1 + γ /L) · (x/2) .
This concludes the proof of the claim.
Claim 7.14 follows from Claim 7.18.
7.4

Our algorithm for maintaining critical and laminar structures

We use the term “edge-update” to refer to the insertion/deletion of an edge in the graph G = (V, E). Thus,
in a dynamic setting the graph G = (V, E) changes due to a sequence of edge-updates. In this section, we
present an algorithm that maintains a critical structure and a laminar structure in such a dynamic setting, and
ensures that all the invariants from Section 7.2 are satisfied. Before delving into technical details, we first
present a high level overview of our approach.
A brief outline of our algorithm. Our algorithm works in “phases”, where the term “phase” refers to a
contiguous block of edge-updates. In the beginning of a phase, there are no dirty nodes, i.e., we have Dc = 0/
and Dl j = 0/ for all j ∈ [0, Ld ], and all the four invariants from Section 7.2 are satisfied.
The algorithm in the middle of a phase. We next describe how to modify the critical structure after an
edge-update in the middle of a phase. Towards this end, consider an edge-update that corresponds to the
insertion/deletion of the edge (u, v) in G = (V, E). This edge-update changes the degrees of the endpoints
u, v, and this might lead to some node x ∈ {u, v} violating one of the first two conditions in Definition 7.2.
But this can happen only if the node x was c-clean before the edge-update. Hence, the easiest way to fix the
problem, if there is one, is to change the status of the node to c-dirty. And we do exactly the same. Next, we
ensure that H remains the set of edges incident upon the active nodes. Towards this end, we check if either
of the endpoints u, v is active. If the answer is yes, then the edge (u, v) is inserted into (resp. deleted from)
H along with the insertion (resp. deletion) of (u, v) in G = (V, E).
From the above discussion, it is obvious that the sets of active and passive nodes do not change in the
middle of a phase. And we ensure that H remains the set of edges incident upon the active nodes. In
contrast, as the phase goes on, we see more and more c-clean nodes becoming c-dirty. The set of c-dirty
nodes, accordingly, keeps getting larger along with the passage of time. The phase terminates when the size
of the set Dc exceeds the threshold (δ /(Ld + 1)) · |A|, thereby violating the condition (3) in Definition 7.2.
We next show how to maintain the laminar structure in the middle of a phase.
1. Whenever an edge (u, v) is inserted into H, we set H0 ← H0 ∪ {(u, v)}, and whenever an edge (u, v)
is deleted from the graph, we set H j ← H j \ {(u, v)} for all layers j ∈ [0, Ld ]. This ensures that we
always have H = H0 ⊇ H1 ⊇ · · · ⊇ HLd . Furthermore, whenever an active node v becomes c-dirty, we
set Dl j ← Dl j ∪ {v} for all layers j ∈ [0, Ld ]. This ensures that Invariant 7.6 is satisfied.
2. Whenever we see a node v ∈ Cl, j violating Invariant 7.7 at layer j ∈ [1, Ld ], we set Dl,k ← Dl,k ∪{v} and
Cl,k ← Cl,k \ {v} for all layers k ∈ [ j, Ld ]. This restores the validity of Invariant 7.7 without tampering
with Invariant 7.6.
3. Whenever Invariant 7.10 gets violated, we find the smallest index j at which |Dl j | > (δ ( j + 1)/(Ld +
1)) · |A|, and call the subroutine REBUILD( j) (see Figure 3).
Fix any layer j ∈ [1, Ld ]. A call to REBUILD( j′ ) with j′ > j does not affect the layers in the range [0, j].
Consequently, the set Dl j (resp. Cl j ) keeps getting bigger (resp. smaller) till the point arrives where

51

REBUILD( j′ ) is called for some j′ ≤ j.7 To be more specific, in the middle of a phase, a node v can
switch from Dl j to Cl j only if REBUILD( j′ ) is called for some j′ ≤ j. In a similar vein, an edge gets inserted into H j only if REBUILD( j′ ) is called for some j′ ≤ j; and at other times in the middle of a phase the
set H j can only keep shrinking (see item (1) above). To summarize, the reader should note that the algorithm
satisfies some nice monotonicity properties. These will be very helpful in our analysis in later sections.
Dealing with the termination of a phase. When a phase terminates, we need to do some cleanup work
before starting the next phase. Specifically, recall that a phase terminates when the number of c-dirty nodes
goes beyond the acceptable threshold. At this stage, we shift some active c-dirty nodes v ∈ A ∩ Dc from the
set A to the set P, shift some passive c-dirty nodes v ∈ P ∩ Dc from the set P to the set A, and finally set
Dc = 0.
/ At the end of these operations, we have Dc = 0,
/ and we perform these operations in such a way
that Definition 7.2 is satisfied. Next, we construct the entire laminar structure from scratch by calling the
subroutine REBUILD(1) (see Figure 3). Subsequently, we start the next phase.
Roadmap. We will now present the algorithm in details. The rest of this section is organized as follows.
• In Section 7.4.1, we state the initial conditions that hold in the beginning of a phase.
• In Section 7.4.2, we describe our algorithm in the middle of a phase.
• In Section 7.4.3, we describe the cleanup that needs to be performed at the end of a phase.
• In Section 7.4.4, we derive some useful properties of our algorithm.
7.4.1

Initial conditions in the beginning of a phase

Just before the first edge insertion/deletion of a phase, the following conditions are satisfied.
1. There are no c-dirty nodes, i.e., Dc = 0.
/
2. There are no l-dirty nodes at any layer j ∈ [0, Ld ], i.e., Dl j = 0/ for all j ∈ [0, Ld ].
In the beginning of the very first phase, the graph G = (V, E) has an empty edge-set. At that instant, every
node is passive and the conditions (1) and (2) are satisfied.
By induction hypothesis, suppose that the conditions (1) and (2) are satisfied when the kth phase is about
to begin, for some integer k ≥ 1. We will process the edge insertions/deletions in G during the kth phase
using the algorithm described in Sections 7.4.2 and 7.4.3. This algorithm will ensure that the conditions (1)
and (2) are satisfied at the start of the (k + 1)th phase.
7.4.2

Handling edge insertion/deletions in the middle of a phase

Suppose that an edge (u, v) is inserted into (resp. deleted from) the graph G = (V, E) in the middle of a
phase. In this section, we will show how to handle this edge-update.
Step I: Updating the critical structure.

We update the critical structure (A, P, Dc , H) as follows.

• If the edge (u, v) has at least one active endpoint, i.e., if {u, v} ∩ A 6= 0,
/ then:
– If we are dealing with the insertion of the edge (u, v) into G, then set H ← H ∪ {(u, v)}.
Else if we are dealing with the deletion of the edge (u, v) from G, then set H ← H \ {(u, v)}.
This ensures that the condition (4) in Definition 7.2 remain satisfied.
Next, note that the edge-update changes the degrees of the endpoints u, v. Hence, to satisfy the conditions
(1) and (2) in Definition 7.2, we perform the following operations on each node x ∈ {u, v}.
• If x ∈ P \ Dc and deg(x, E) ≥ 3ε d/L2 , then set Dc ← Dc ∪ {x}.
Else if x ∈ A \ Dc and deg(x, E) ≤ ε d/L2 , then set Dc ← Dc ∪ {x}.
At this point, the conditions (1), (2), (4) and (5) in Definition 7.2 are satisfied. But, we cannot yet be sure
about the remaining condition (3). The next step in our algorithm will resolve this issue.
7 For j = 0, we have D = D ∩ A. Since the set A remains unchanged and the set D keeps getting bigger along with the passage
c
c
l0
of time in the middle of a phase, we conclude that the same thing happens with the set Dl0 .

52

Step II: Deciding if we have to terminate the phase.
Step I of the algorithm might have made changed the status of one or both the endpoints u, v from c-clean
to c-dirty. If this is the case, then this increases the number of c-dirty nodes. To find out if this violates the
condition (3) in Definition 7.2, we check if |Dc | > (δ /(Ld + 1)) · |A|.
• If |Dc | > (δ /(d + 1)) · |A|, then the number of c-dirty nodes have increased beyond the acceptable
threshold, and so we terminate the current phase and move on to Section 7.4.3. Else if |Dc | ≤ (δ /(Ld +
1)) · |A|, then all the conditions in Definition 7.2 are satisfied, and we move on to Step III.
Step III: Updating the laminar structure. If we have reached this stage, then we know for sure that the
critical structure (A, P, Dc , H) now satisfies all the conditions in Definition 7.2. It only remains to update the
laminar structure, which is done as follows.
1. For each x ∈ {u, v}:
• If x ∈ A and Step I has converted the node x from c-clean to c-dirty, then:
For all k ∈ [0, Ld ], set Dlk ← Dlk ∪ {x} and Clk ← Clk \ {x}.
This ensures that Dl0 remains equal to Dc ∩ A and that Invariant 7.6 continues to hold.
2. If Step I inserts the edge (u, v) into H, then set H0 ← H0 ∪ {(u, v)}.
Else if Step I deletes the edge (u, v) from H, then set H j ← H j \ {(u, v)} for all layers j ∈ [0, Ld ].
This ensures that Invariant 7.5 is satisfied. Also note that if the edge-update under consideration is an
insertion, this does not affect the edges in the layers j ≥ 1.
3. The previous operations might have changed the degree of some endpoint x ∈ {u, v} in the laminar
structure, and hence, we have ensure that no node x ∈ {u, v} violates Invariant 7.7. Accordingly, we
call the subroutine CLEANUP(x) for each node x ∈ {u, v}. See Figure 4. The purpose of these calls
is to restore Invariant 7.7 without affecting Invariant 7.6.
Due to the calls to CLEANUP(u) and CLEANUP(v), the sets Dl j get bigger and the set Cl j gets
smaller. In other words, a node that is l-dirty at some layer j never becomes l-clean at layer j due to
these calls. This monotonicity property will be very helpful in the analysis of our algorithm.
4. The calls to CLEANUP(u) and CLEANUP(v) might have increased the number of l-dirty nodes at
some layers, and hence, Invariant 7.10 might get violated at some layer j ∈ [0, Ld ].
Next, note that since we gone past Step II, we must have |Dc | ≤ δ /(Ld + 1) · |A|. Since Dl0 = Dc ∩ A
(see item (1) above), we have |Dl0 | ≤ |Dc | ≤ δ /(Ld + 1) · |A|. In other words, we only need to be
concerned about Invariant 7.10 for layers j > 0.
To address this concern, we now call the subroutine VERIFY(). See Figure 5.
Lemma 7.19 shows that Invariant 7.10 holds for all layers j ∈ [0, Ld ] at the end of the call to VERIFY().
At this stage all the invariants hold, and we are ready to handle the next edge-update in G.
1.
2.
3.
4.

F OR j = 1 to Ld :
I F x ∈ Cl j and the node x violates Invariant 7.7 at layer j, T HEN
Set Dl j′ ← Dl j′ ∪ {x} and Cl j′ ← Cl j′ \ {x} for all j′ ∈ [ j, Ld ].
RETURN.
Figure 4: CLEANUP(x).

Lemma 7.19. At the end of a call to VERIFY(), Invariant 7.10 holds for all layers j ∈ [0, Ld ].
Proof. Since we have gone past Step II, we must have |Dc | ≤ δ /(Ld + 1) · |A|. Since Dl0 = Dc ∩ A (see item
(1) in Step III), we have |Dl0 | ≤ |Dc | ≤ δ /(Ld + 1) · |A|. In other word, Invariant 7.10 holds for j = 0 at the
end of the call to VERIFY(). Henceforth, we focus on the layers j > 0.
53

1.
2.
3.
4.

F OR j = 1 to Ld :
I F |Dl j | > (δ ( j + 1)/(Ld + 1)) · |A|, T HEN
Call the subroutine REBUILD( j). See Figure 3.
RETURN.
Figure 5: VERIFY().

If the subroutine VERIFY() does not make any call to REBUILD( j′ ) with j′ ∈ [1, Ld ] during its execution, then clearly Invariant 7.10 holds for all layers j ∈ [1, Ld ]. Otherwise, let k ∈ [1, Ld ] be the index such
that the subroutine REBUILD(k) is called during the execution of VERIFY().
Since the subroutine REBUILD( j) was not called for any j ∈ [1, k − 1], it means that Invariant 7.10
was already satisfied for layers j ∈ [1, k − 1]. Next, note that the subroutine REVAMP() is terminated after
REBUILD(k) finishes execution. Hence, Lemma 7.12 ensures that Cl j = Ck−1 for all j ∈ [k, Ld ] at the end
of the call to REVAMP(). So at that instant we have |Dl j | = |Dl,k−1 | for all j ∈ [k, Ld ]. Since Invariant 7.10
holds for j = k − 1, we infer that Invariant 7.10 also holds for all j ∈ [k, Ld ] at that instant.
7.4.3

Terminating a phase

We terminate the current phase when the number of c-dirty nodes becomes larger than (δ /(Ld + 1)) times
the number of active nodes. To address this concern, we call the subroutine REVAMP() as described below.
REVAMP().
1. We will first modify the critical structure (A, P, Dc , H). Let V ′ ← Dc be the set of c-dirty nodes at the
time REVAMP() is called. We run the F OR loop described below.
F OR ALL nodes v ∈ V ′ :
• Set Dc ← Dc \ {v}. So the node v is no longer c-dirty, and it might violate the conditions (1) and
(2) in Definition 7.2. To address this concern, we perform the following operations.
• If v ∈ A and deg(v, E) < 3ε d/L2 , then set A ← A \ {v}, P ← P ∪ {v}, and H ← H \ {(u, v) ∈ E :
u ∈ P}. In other words, we change the status of the node from active to passive, which satisfies
the conditions (1) and (2) in Definition 7.2. Next, to satisfy the condition (4) in Definition 7.2,
we delete from the set H those edges whose one endpoint is v and other endpoint is some passive
node.
• Else if v ∈ P and deg(v, E) > ε d/L2 , then set A ← A ∪ {v}, P ← P \ {v}, and H ← H ∪ {(u, v) ∈
E}. In other words, we change the status of the node from active to passive, which satisfies
the first and second conditions in Definition 7.2. Next, to satisfy the fourth condition in Definition 7.2, we ensure that all the edges incident upon v belong to H.
At the end of the For loop, there are no c-dirty nodes, i.e., Dc = 0/ and all the conditions in Definition 7.2 are satisfied. Thus, at this stage (A, P, Dc , H) is a critical structure with no c-dirty nodes.
2. Next, we update our laminar structure as follows.
• Set H0 ← H, and H j ← 0/ for all j ∈ [1, Ld ].
• Set Dl0 ← 0/ and Dl j ← A for all j ∈ [1, Ld ].
• Set Cl0 ← A and Cl j ← 0/ for all j ∈ [1, Ld ].
At this stage, all the conditions stated in Figure 2 are satisfied for j = 1. Accordingly, we call the
subroutine REBUILD(1). This constructs the layers j ∈ [1, Ld ] of the laminar structure from scratch.
By Lemma 7.13, at the end of the call to REBUILD(1), all the four invariants from Section 7.2 are satisfied.
Furthermore, Lemma 7.12 implies that Dl j = Dl0 = Dc = 0/ for all j ∈ [1, Ld ]. Hence, both the conditions
(1) and (2) stated in Section 7.4.1 hold at this time. So we start a new phase from the next edge-update.

54

7.4.4

Some useful properties of our algorithm

In this section we derive some nice properties of our algorithm that will be used in later sections. In
Lemma 7.20, we note that our algorithm satisfies all the four invariants from Section 7.2. Next, in Lemma 7.21
(resp. Lemma 7.22), we summarize the way the critical (resp. laminar) structure changes with the passage
of time within a given phase. The proofs of these three lemmas follow directly from the description of our
algorithm, and are omitted.
Lemma 7.20. Suppose that we maintain a critical structure and a laminar structure as per our algorithm.
Then Invariants 7.5, 7.6, 7.7 and 7.10 are satisfied after each edge-update in the graph G = (V, E).
Lemma 7.21. Consider the maintenance of the critical structure in any given phase as per our algorithm.
• In the beginning of the phase, there are no c-dirty nodes (i.e., Dc = 0).
/
• In the middle of a phase, a node can change from being c-clean to c-dirty, but not the other way round.
• The sets of active and passive nodes do not change in the middle of the phase.
• The phase ends when the number of c-dirty nodes exceeds the threshold (δ /(Ld + 1)) · |A|, and at this
point the subroutine REVAMP() is called. At the end of the call to REVAMP(), the next phase begins.
Lemma 7.22. Consider the maintenance of the laminar structure in any given phase as per our algorithm.
• In the beginning of the phase, there are no l-dirty nodes, i.e., Dl j = 0/ for all j ∈ [0, Ld ].
• Consider any layer j ∈ [1, Ld ], and focus on any time interval in the middle of the phase where no call
is made to REBUILD(k) with k ∈ [1, j]. During such a time interval:
– No edge gets inserted into the set H j . In other words, the edge-set H j keeps shrinking. Furthermore, an edge e ∈ H j gets deleted from H j only if it gets deleted from the graph G = (V, E).
– No node v ∈ A gets moved from Dl j to Cl j . In other words, the node-set Dl j (resp. Cl j ) keeps
growing (resp. shrinking).
• At layer j = 0, we have H0 = H and Dl0 = A ∩ Dc . Thus, by Lemma 7.21, the node-set Dl0 (resp. Cl0 )
keeping growing (resp. shrinking) throughout the duration of the phase.
Next, we upper bound the maximum degree a node can have in a given layer j ∈ [1, Ld ]. We emphasize
that the bounds in Lemma 7.23 are artifacts of the specific algorithm we have designed. In other words,
these bounds cannot be derived only by looking at the definitions and the invariants stated in Section 7.2.
Specifically, we exploit two important properties of our algorithm.
• Consider any layer j ∈ [1, Ld ]. In a given phase, the degree of a node v ∈ V in this layer can increase
only during a call to REBUILD(k) for some k ∈ [1, j]. See Lemma 7.22.
• Roughly speaking, just after the end of a call to REBUILD(k), the degree of each node v ∈ V drops
by at least a factor of 2 across successive layers in the range [k, Ld ]. See Lemma 7.11.
The proof of Lemma 7.23 appears in Section 7.4.5.
Lemma 7.23. Suppose that we maintain a critical structure and a laminar structure as per our algorithm,
and let j ∈ [0, Ld ] be any layer in the laminar structure. Then we always have:
j−1

deg(v, H j ) ≤ d · 2− j +
deg(v, H j ) ≤ (3ε d/L ) · 2
2

−j

∑ 2− j

j′ =0

j−1

+

∑ 2− j

j′ =0

′

′

for all nodes v ∈ V.

(110)

for all nodes v ∈ P \ Dc .

(111)

Corollary 7.24. Suppose that we maintain a critical structure and a laminar structure as per our algorithm.
Then we always have:
1. deg(v, HLd ) ≤ λd L4 + 2 for all nodes v ∈ V.
55

2. deg(v, HLd ) ≤ 3ελd L2 + 2 for all nodes v ∈ P \ Dc .
Proof. Follows from Lemma 7.23 and equation 59.
7.4.5

Proof of Lemma 7.23

Proof of equation 110.
We prove equation 110 for a given node v ∈ V , using induction on the number of edge-updates seen so far.
• Base step. Equation 110 holds for node v after the t th edge-update in G, for t = 0.
The base step is true since initially the graph G is empty and deg(v, H j ) = 0 for all j ∈ [0, Ld ].
• Induction step. Suppose that equation 110 holds for node v after the t th edge-update in G, for some
integer t ≥ 0. Given this induction hypothesis, we will show that equation 110 continues to hold for
node v after the (t + 1)th edge-update in G.
From this point onwards, we focus on proving the induction step. There are two possible cases to consider.
Case 1. The (t + 1)th edge-update in G resulted in the termination of a phase.
In this case, the following conditions hold after our algorithm handles the (t + 1)th update in G.
deg(v, H0 ) ≤ d
deg(v, Hk−1 )
deg(v, Hk ) ≤
+ 1 at every layer k ∈ [1, Ld ].
2

(112)
(113)

Equation 112 holds since d is the maximum degree a node can have in the graph G = (V, E) (see Lemma 7.1)
and H0 ⊆ E. Equation 113 holds since the (t + 1)th edge-update marks the termination of a phase. Hence,
our algorithm calls the subroutine REBUILD(1) while handling the (t + 1)th edge-update (see item (2) in
Section 7.4.3). At the end of this call to REBUILD(1), the degree of any node in a layer k ∈ [1, Ld ] is (1/2)
times its degree in the previous layer, plus-minus one (see Lemma 7.11).
By equations 112 and 113, we get the following guarantee after the (t + 1)th edge-update in G.
j−1

deg(v, H j ) ≤ d · 2− j +

∑ 2− j

′

j′ =0

at every layer j ∈ [0, Ld ].

(114)

This concludes the proof of the induction step.
Case 2. The (t + 1)th edge-update in G does not result in the termination of a phase.
In this case, the (t + 1)th edge-update falls in the middle of a phase, and is handled by the algorithm in
Section 7.4.2. Specifically, the edge-sets H0 , . . . , HLd are modified by the procedure described in Step III
(see Section 7.4.2). There are two operations performed by this procedure that concern us, for they are the
only ones that tamper with the edge-sets H0 , . . . , HLd .
• (a) In item (2) of Step III (Section 7.4.2), we might change some of the edge-sets H0 , . . . , HLd .
• (b) In item (4) of Step III (Section 7.4.2) we call VERIFY(), which in turn might call REBUILD( j)
for some layer j ∈ [1, Ld ]. And a call to REBUILD( j) reconstructs the edge-sets H j , . . . , HLd .
Operation (a) never inserts an edge into a layer j > 0. Thus, due to this operation deg(v, H j ) can only
decrease, provided j > 0. This ensures that for each layer j > 0, deg(v, H j ) continues to satisfy the desired
upper bound of equation 110 after operation (a). The value of deg(v, H0 ), however, can increase due to
operation (a). But this does not concern us, for we always have deg(v, H0 ) ≤ deg(v, E) ≤ d (see Lemma 7.1).
So the upper bound prescribed by equation 110 for layer j = 0 is trivially satisfied all the time.
Operation (b) tampers with the edge-sets H0 , . . . , HLd only if the subroutine REBUILD( j), for some
j ∈ [1, Ld ], is called during the execution of VERIFY(). We focus on this call to REBUILD( j). Just before
56

the call begins, equation 110 holds for node v. The call to REBUILD( j) does not alter the layers j′ ∈ [0, j −1]
(see Lemma 7.12). Accordingly, at the end of the call to REBUILD( j), we have:
deg(v, Hk ) ≤ d · 2−k +

k−1

∑ 2− j

′

at every layer k ∈ [0, j − 1].

j′ =0

(115)

Furthermore, the call to REBUILD( j) ensures that the degree of a node at any layer k ∈ [ j, Ld ] is half of
its degree in the previous layer, plus-minus one (see Lemma 7.11). Accordingly, at the end of the call to
REBUILD( j), we have:
deg(v, Hk ) ≤

deg(v, Hk−1 )
+ 1 at every layer k ∈ [ j, Ld ].
2

(116)

By equations 115 and 116, at the end of the call to REBUILD( j) we have:
deg(v, Hk ) ≤ d · 2−k +

k−1

∑ 2− j

′

j′ =0

at every layer k ∈ [ j, Ld ].

(117)

Equations 115 and 117 conclude the proof of the induction step.
Proof of equation 111.
Throughout the proof, fix any node v ∈ V . We will show that the node satisfies equation 111 in every “phase”
(see Section 7.4). Accordingly, fix any phase throughout the rest of the proof. Also recall Lemma 7.21,
which summarizes the way the critical structure changes along with the passage of time within a given
phase. Since the node-set V is partitioned into the subsets A and P, there are two cases to consider.
• Case 1. The node v is active (i.e., part of the set A) in the beginning of the phase. Here, the node
continues to remain active throughout the duration of the phase. So the lemma is trivially true for v.
• Case 2. The node v is passive (i.e., part of the set P) in the beginning of the phase. Here, the node
continues to remain passive till the end of the phase. We will consider two possible sub-cases.
– Case 2a. The node never becomes c-dirty during the phase. In this case, we have v ∈ P \ Dc
and deg(v, E) ≤ (3ε d/L2 ) throughout the duration of the phase (see Definition 7.2). Hence, we
can adapt the proof of equation 110 by replacing d with (3ε d/L2 ) as an upper bound on the
maximum degree of the node, and get the following guarantee: Throughout the duration of the
′
j−1
phase, we have deg(v, H j ) ≤ (3ε dL−2 )/2 j + ∑ j′ =0 1/2 j for every layer j ∈ [0, Ld ].
– Case 2b. The node becomes c-dirty at some time t in the middle of the phase, and from that point
onwards, the node remains c-dirty till the end of the phase. In this case, the lemma is trivially
true for the node from time t till the end of the phase. Hence, we consider the remaining time
interval from the beginning of the phase till time t. During this interval, we have v ∈ P \ Dc , and
we can apply the same argument as in Case 2a. We thus conclude that the lemma holds for the
node v throughout the duration of the phase.
7.5

Maintaining the edge-set of an skeleton

In Section 7.2, we defined the concepts of a critical structure and a laminar structure in the graph G = (V, E).
In Section 7.4, we described our algorithm for maintaing these two structures in a dynamic setting. In this
section, we will show that the edges e ∈ HLd (i.e., the edges from the last layer of the laminar structure)
constitute the edge-set X of a skeleton of the graph G (see Definition 5.6). Towards this end, we define the

57

node-sets B, T, S ⊆ V and the edge-set X ⊆ E as follows.
S = Dc ∪ Dl,Ld

B = (A \ S) ∪ v ∈ S : deg(v, E) > ε d/L2

T = (P \ S) ∪ v ∈ S : deg(v, E ≤ ε d/L2

X

= HLd

(118)
(119)
(120)
(121)

The next lemma shows that the node-sets B, T, S ⊆ V and the edge-set X ⊆ E as defined above satisfies
all the seven properties stated in Definition 5.6. This lemma implies the main result of this section, which
is summarized in Theorem 7.26. As far as the proof of Lemma 7.25 is concerned, the reader should note
that the conditions (1) – (5) follow directly from Definitions 7.2, 7.4 and the four invariants stated in Section 7.2. In other words, all the critical and laminar structures that satisfy these invariants will also satisfy
the conditions (1) – (5). In sharp contrast, we need to use a couple of crucial properties of our algorithm
(see Corollaries 7.24 and 7.24) to prove the remaining two conditions (6) and (7). And it is not difficult to
see that there are instances of critical and laminar structures that satisfy the four invariants from Section 7.2
but do not satisfy the conditions (6) and (7).
Lemma 7.25. Suppose that a critical structure (A, P, Dc , H) and a laminar structure (H1 , . . . , HLd ) are maintained as per the algorithm in Section 7.4. Also suppose that the node-sets B, T, S ⊆ V and the edge-set X ⊆ E
are defined as in equations 118, 119, 120 and 121. Then the following conditions hold.
1. We have B ∪ T = V and B ∩ T = 0.
/
2. For every node v ∈ B, we have deg(v, E) > ε d/L2 .
3. For every node v ∈ T , we have deg(v, E) < 3ε d/L2 .
4. We have |S| ≤ 4δ · |B|.
5. For every node v ∈ B \ S, we have:
e−γ · (λd L4 /d) · deg(v, E) ≤ deg(v, X ) ≤ eγ · (λd L4 /d) · deg(v, E).
6. For every node v ∈ V , we have deg(v, X ) ≤ λd L4 + 2.
7. For every node v ∈ T \ S, we have deg(v, X ) ≤ 3ελd L2 + 2.
Proof.
1. Recall that A ⊆ V and P = V \ A (see Definition 7.2). Since S ⊆ V (see equation 118 and Definitions 7.2, 7.4), we infer that the node-set V is partitioned into three subsets: A \ S, P \ S and S. Hence,
from equations 119 and 120, we get: B ∪ T = V and B ∩ T = 0.
/
2. Definition 7.2 implies that deg(v, E) > ε d/L2 for all nodes v ∈ A\Dc . Since Dc ⊆ S (see equation 118),
we get: deg(v, E) > ε d/L2 for all nodes v ∈ A \ S. Hence, equation 119 implies that deg(v, E) > ε d/L2
for all nodes v ∈ B.
3. Definition 7.2 implies that deg(v, E) < 3ε d/L2 for all nodes v ∈ P \ Dc . Since Dc ⊆ S (see equation 118), we get: deg(v, E) < 3ε d/L2 for all nodes v ∈ P \ S. Hence, equation 120 implies that
deg(v, E) < 3ε d/L2 for all nodes v ∈ T .
4. The basic idea behind the proof of condition (4) is as follows. Equation 103 implies that |Dc | ≤ δ · |A|.
Since S = Dc ∪ Dl,Ld , Invariant 7.10 implies that |S| ≤ 2δ · |A|. So the size of the set S is negligible
in comparison with the size of the set A. Hence, the size of the set S is negligible even in comparison
with the (smaller) set A \ S. Since A \ S ⊆ B, it follows that |S| is negligible in comparison with |B| as
well. Specifically, we can show that |S| ≤ 4δ · |B|. Below, we present the proof in full details.
Recall that Dl,Ld ⊆ A (see Invariant 7.6). Hence, we have:
|A| = |Dl,Ld | + |A \ Dl,Ld |
58

(122)

Invariant 7.10 states that:
|Dl,Ld | ≤ δ · |A|

(123)

Recall that δ < 1/2 (see equation 61). Hence, equations 122 and 123 imply that:
|A| ≤

1
· |A \ Dl,Ld | ≤ 2 · |A \ Dl,Ld |
(1 − δ )

(124)

Equations 123 and 124 imply that:
|Dl,Ld | ≤ 2δ · |A \ Dl,Ld |

(125)

Next, Definition 7.2 implies that |Dc | ≤ δ · |A|. Accordingly, from equation 124 we get:
|Dc | ≤ 2δ · |A \ Dl,Ld |

(126)

Equations 125 and 126 imply that:
|Dc ∪ Dl,Ld | ≤ 4δ · |A \ Dl,Ld |

(127)

Since S = Dc ∪ Dl,Ld (see equation 118) and Dl0 = Dc ∩ A ⊆ Dl,Ld (see Invariant 7.6), we have:
A \ S = A \ Dl,Ld

(128)

From equations 118, 119, 127 and 128, we conclude that:
|S| ≤ 4δ · |B|.
5. Equations 118, 119 and Invariant 7.6 imply that:
B \ S = A \ S ⊆ A \ Dl,Ld = Cl,Ld .

(129)

Corollary 7.9 and equations 121, 129 imply that for all nodes v ∈ B \ S, we have:
e−γ · (λd L4 /d) · deg(v, E) ≤ deg(v, X ) ≤ eγ · (λd L4 /d) · deg(v, E).
6. Since X = HLd (see equation 121), Corollary 7.24 implies that deg(v, X ) ≤ λd L4 + 2 for all v ∈ V .
7. Equations 118 and 120 imply that:
T \ S = P \ S ⊆ P \ Dc

(130)

By Corollary 7.24 and equations 121, 130, for all nodes v ∈ T \ S, we have: deg(v, X ) ≤ 3ελd L2 + 2.
Below, we summarize the main result of this section.
Theorem 7.26. Suppose that a critical structure (A, P, Dc , H) and a laminar structure (H1 , . . . , HLd ) are
maintained as per the algorithm in Section 7.4. Then the edges in the last layer HLd form the edge-set of a
skeleton of G = (V, E).
Proof. Follows from Definition 5.6 and Lemma 7.25.

59

7.6

Bounding the amortized update time of our algorithm

We implement our algorithm using the most obvious data structures. To be more specific, we maintain a
doubly linked list for each of the node-sets A, P, Dc , {Dl j } and {Cl j }. Further, we maintain counters that store
the sizes of each of these sets. We also maintain the edge-sets E, H and {H j } using standard adjacency list
data structures, and we maintain the degree of each node in each of these edge-sets. Whenever an “element”
(an edge or a node) appears in some linked list, we store a pointer from that element to its position in the
linked list. Using these pointers, an element can be added to (or deleted from) a list in constant time.
7.6.1

A few notations and terminologies

Recall that initially the graph G = (V, E) has zero edges. We will use the term “edge-update” to denote the
insertion/deletion of an edge in G = (V, E). Thus, in the dynamic setting, the graph G = (V, E) changes
via a sequence of edge-updates. For any integer t ≥ 0, we will use the term “edge-update t” to refer to
the t th edge-update in this sequence. Each phase corresponds to a contiguous block of edge-updates (see
Section 7.4). We can, therefore, identify a phase by an interval [t,t ′ ], where t < t ′ are positive integers. Such
a phase begins with the edge-update t and ends just after the edge-update t ′ . The next phase starts with the
edge-update t ′ + 1.
7.6.2

Roadmap

The rest of this section is organized as follows.
• In Section 7.6.3, we show that excluding the calls to the subroutines REVAMP() and REBUILD( j),
our algorithm handles each edge-update in O(Ld ) time in the worst case.
• In Section 7.6.4, we bound the time taken by a single call to REBUILD( j).
• In Section 7.6.5, we show that the subroutine REVAMP() runs in O(L2 Ld /(εδ )) amortized time (see
Lemma 7.33). This includes the time taken by the calls to REBUILD(1) at the end of a phase.
• Finally, in Section 7.6.6, we show that for a given layer j ∈ [1, Ld ], the amortized time taken by a call
to REBUILD( j) in the middle of a phase is O(L2 L2d /(εγδ )) (see Lemma 7.40). Since there are Ld
possible values of j, the total amortized time of all the calls to REBUILD(.) in the middle of a phase
is given by O(L2 L3d /(εγδ )).
Summing over all these running times, we get our main result.
Theorem 7.27. Our algorithm for maintaining a critical and a laminar structure handles an edge insertion/deletion in G = (V, E) in O(L2 L3d /(εγδ )) amortized time.
7.6.3

A simple bound

We devote this section to the proof of the following lemma.
Lemma 7.28. Excluding the calls made to the REVAMP() and REBUILD( j) subroutine, our algorithm
handles an edge-update in G = (V, E) in O(Ld ) time.
Proof. Recall the description of our algorithm in Section 7.4. For the purpose of this lemma, we only need
to concern ourselves with Section 7.4.2, for Section 7.4.1 only states the initial conditions in the beginning
of a phase and Section 7.4.3 describes the REVAMP() subroutine. Accordingly, we analyze the time taken
by the Steps I, II and III from Section 7.4.2, one after the other.
• Running time of Step I.
Here, at most one edge is inserted into (or deleted from) the set H, and at most two nodes become
c-dirty. It is easy to check that these operations can be implemented in O(1) time.
• Running time of Step II.
This step only asks us to compare the number of c-dirty nodes against the number of active nodes.
Hence, this can be implemented in O(1) time.
60

• Running time of Step III.
Here, we bound the time taken by each of the items (1), (2), (3) and (4) in Step III.
1. Item (1) moves at most two nodes from Dlk to Clk for all k ∈ [0, Ld ], and requires O(Ld ) time.
2. Item (2) inserts/deletes an edge from at most (Ld + 1) edge-sets {H j }, and requires O(Ld ) time.
3. Item (3) makes two calls to CLEANUP(x). Each of these calls runs in O(Ld ) time.
4. Item (4) calls VERIFY(), which requires O(Ld ) time excluding the call to REBUILD( j).
Hence, the total time taken by Step III is O(Ld ).
Hence, excluding the calls to REBUILD( j) and REVAMP(), handling an edge-update requires O(Ld ) time.
7.6.4

Analyzing the running time of a single call to REBUILD( j)

We will bound the running time of a call to the subroutine REBUILD( j) as described in Figure 3. But first,
recall the initial conditions stated in Figure 2 and the properties of the subroutine stated in Lemma 7.12.
Lemma 7.29. Consider any layer j ∈ [1, Ld ], and note that the subroutine REBUILD( j) does not change the
set of active nodes. A call to the subroutine REBUILD( j) runs in O(|A| · d · 2− j ) time.

Proof. The call to REBUILD( j) does not affect the layers j′ < j. Instead, the subroutine iteratively sets
H j′ ← SPLIT(H j′ −1 ) for j′ = j to Ld . See Figure 3.
Consider the first iteration of the For loop in Figure 3, where we set H j ← SPLIT(H j−1 ). Since H j−1 ⊆ H
(see Definition 7.4), and H is the set of edges incident upon active nodes (see Definition 7.2), each edge in
H j−1 has at least one endpoint in the set A. Also by Lemma 7.23, the maximum degree of a node in a layer
′
j′ is O(d · 2− j ). Hence, there are at most O(|A| · d · 2−( j−1) ) edges in H j−1 . Thus, we have:
|H j−1 | = O(|A| · d · 2−( j−1) ).

(131)

By Figure 1, we can implement the subroutine SPLIT(H j−1) in O(|H j−1 |) time. After setting H j ←
SPLIT(H j−1 ), we have to perform the following operations: (a) Dl, j ← Dl, j−1 and (b) Cl, j ← Cl, j−1 . Since
both the sets Dl, j−1 and Cl, j−1 are contained in A (see Invariant 7.6), these operations can be performed
in O(|A|) time. Since j ≤ Ld , we have d · 2−( j−1) ≥ 1 (see equation 58). Thus, the time taken by the first
iteration of the For loop in Figure 3 is O(|H j−1 | + |A|) = O(|A| · d · 2−( j−1) ).
Applying the same argument by which we arrived at equation 131, immediately after setting H j ←
SPLIT(H j−1 ), we have the following guarantee:
|H j | = O(|A| · d · 2− j )

(132)

Accordingly, the second iteration of the For loop in Figure 3, where we set H j+1 ← SPLIT(H j ), can be
implemented in O(|A| · d · 2− j ) time. In general, it can be shown that setting Hk ← SPLIT(Hk−1 ) will take
O(|A| · d · 2−(k−1) ) time for k ∈ [ j, Ld ]. So the runtime of the subroutine REBUILD( j) is given by:
Ld




−(k−1)
= O |A| · d · 2− j .
O
|A|
·
d
·
2
∑

k= j

This concludes the proof of Lemma 7.29.
7.6.5

Bounding the amortized update time of the subroutine REVAMP()

Recall the notations and terminologies introduced in Section 7.6.1. Our algorithm works in “phases” (see the
discussion in the beginning of Section 7.4). For every integer k ≥ 1, suppose that the phase k starts with the
edge-update tk . Thus, we have t1 = 1 and tk < tk+1 for every integer k ≥ 1, and each phase k corresponds to
the interval [tk ,tk+1 − 1]. Next, note that a call is made to the subroutine REVAMP() at the end of each phase
(sec Section 7.4.3). So the kth call to the subroutine REVAMP() occurs while processing the edge-update
tk+1 − 1.
61

• Throughout the rest of this section, we will use the properties of our algorithm outlined in Lemma 7.21.
We introduce the following notations.
• In the beginning of a phase k ≥ 1, we have Dc = 0.
/ As the phase progresses, the set Dc keeps
getting bigger and bigger. Finally, due to the edge-update tk+1 − 1, the size of the set Dc exceeds the
threshold (δ /(Ld + 1)) · |A|. Let D+
c (k) denote the status of the set Dc precisely at this instant. Note
that immediately afterwords, a call is made to the subroutine REVAMP(), and when the subroutine
finishes execution we again find that the set Dc is empty. Then we initiate the next phase.
+
• The indicator variable D IRTY +
c (v, k) ∈ {0, 1} is set to one iff v ∈ Dc (k). Thus, we have:
D+
c (k) =

∑ D IRTY+c (v, k)

(133)

v∈V

• The sets A and P do not change in the middle of a phase. Hence, without any ambiguity, we let A(k)
and P(k) respectively denote the status of the set A (resp. P) during phase k ≥ 1.
• Consider a counter Uv . Initially, the graph G = (V, E) is empty and Uv = 0. Subsequently, whenever
an edge-update occurs in the graph G = (V, E), if the edge being inserted/deleted is incident upon the
node v, then we set Uv ← Uv + 1.
• Let Uv (t) denote the status of Uv after the edge-update t ≥ 0. Note that Uv (0) = 0, and in general,
Uv (t) gives the number of edge-updates that are incident upon v among the first t edge-updates.
Roadmap. In Lemma 7.30 and Corollary 7.31, we bound the time taken by the call to REVAMP() at
−1 )
the end of a given phase k ≥ 1. Specifically, we show that such a call runs in O(|D+
c (k)| · d · Ld · δ
−2
time. In Lemma 7.32, we show that on average, a node v can become c-dirty only after Ω(ε dL ) edgeupdates incident upon v have taken place in the graph G = (V, E). By Corollary 7.31, processing a cdirty node at the end of the phase requires O(dLd δ −1 ) time. Hence, we get an amortized update time of
O((dLd δ −1 )/(ε dL−2 )) = O(L2 Ld /(εδ )) for the subroutine REVAMP(). This is proved in Lemma 7.33.
Lemma 7.30. The call to REVAMP() at the end of phase k runs in O(|D+
c (k) ∪ A(k)| · d) time.
Proof. Recall the description of the subroutine REVAMP() in Section 7.4.3. The node-set V ′ in the For loop
is given by the set D+
c (k). We first bound the running time of this For loop (see item (1) in Section 7.4.3).
During a single iteration of the For loop, we pick one c-dirty node v and make it c-clean. Next, we
might have to change the status of the node from active to passive (or vice versa) and remove (resp. add)
the edges incident upon v from (resp. to) the set H. Since the node v has at most d edges incident upon it
(see Lemma 7.1), one iteration of the For loop can be implemented in O(d) time. Since the For loop runs
+
for D+
c (k) iterations, the total time taken by the For loop is O(|Dc (k)| · d).
Next, we bound the time taken to implement item (2) in Section 7.4.3. In the beginning of the For loop,
we had |A(k)| many active nodes. In the worst case, the For loop can potentially change the status of every
+
passive node in D+
c (k) to active. Thus, there are at most |Dc (k) ∪ A(k)| many active nodes at the end of the
For loop. So the first part of item (2), where we update the edge-sets {H j } and the node-sets {Dl j ,Cl j }, can
be implemented in O(|D+
c (k) ∪ A(k)| · d) time. Next, by Lemma 7.29, the call to REBUILD(1) also takes
(k)
∪
A
|
·
d)
time.
O(|D+
k
c
Thus, the total time taken by call to REVAMP() at the end of phase k is O(|D+
c (k) ∪ A(k)| · d).
Corollary 7.31. The call to REVAMP() at the end of phase k runs in O(|D+
c (k)| · d · (Ld /δ )) time.
Proof. Follows from Lemma 7.30 and the fact that |A(k)| = O((Ld /δ ) · |D+
c (k)|) (see Lemma 7.21).
We now explain the statement of Lemma 7.32. First, note that a node can change its status from cclean to c-dirty at most once during the course of a single phase (see Lemma 7.21). Accordingly, consider
′
any node v ∈ V , and let ψ (k) = ∑kk′ =1 D IRTY +
c (v, k ) be the number of times the node v becomes c-dirty
62

during the first k phases, where k ≥ 1 is an integer. Then at least (2ε d/L2 ) · ψ (k) edge-updates in the first k
phases were incident upon v. To summarize, this lemma shows that on average one needs to have (2ε d/L2 )
edge-updates incident upon v before the node v changes its status from c-clean to c-dirty.
Lemma 7.32. Fix any node v ∈ V and any positive integer k. We have:
Uv (tk+1 − 1) ≥



2ε d
L2



k

·

∑ D IRTY+c (v, k′ )

(134)

k′ =1

′
Proof. We will use induction on the value of the sum ψ (k) = ∑kk′ =1 D IRTY +
c (v, k ). Specifically, throughout
′
the proof we fix a phase k ≥ 1. Next, we define ψ (k) = ∑kk′ =1 D IRTY +
c (v, k ), and consider the last edgeupdate t in the interval [t1 ,tk+1 − 1] where the node v becomes c-dirty from c-clean. We will show that
Uv (t) ≥ (2ε d/L2 ) · ψ (k). Since tk+1 − 1 ≥ t, this will imply that Uv (tk+1 − 1) ≥ Uv (t) ≥ (2ε d/L2 ) · ψ (k).

The base step. ψ (k) = 1.
In the beginning of phase one, the graph G = (V, E) is empty, deg(v, E) = 0, and the node v is passive and
c-clean. Since ψ (k) = 1, there is exactly one phase k′ ∈ [1, k] such that v ∈ D+
c (k). Recall the description
of our algorithm in Section 7.4.2. It follows that deg(v, E) was less than the threshold (3ε d/L2 ) from the
start of phase one till the end of phase (k′ − 1). It was only after the edge-update t in the middle of phase
k′ that we saw deg(v, E) reaching the threshold (3ε d/L2 ), which compelled us to classify the node v as
c-dirty at that instant. Since deg(v, E) was initially zero, at least (3ε d/L2 ) edges incident upon v must have
been inserted into G = (V, E) during the first t edge-updates. Hence, we must have Uv (t) ≥ (3ε d/L2 ) =
(3ε d/L2 ) · ψ (k) > (2ε d/L2 ) · ψ (k).
The inductive step. ψ (k) ≥ 2.

Consider the phase k∗ < k where the node v becomes c-dirty for the (ψ (k) − 1)th time. Specifically, let
′
∗
∗
k∗ = min{k′ ∈ [1, k − 1] : ∑kj=1 D IRTY +
c (v, j) = ψ (k) − 1}. Let t be the edge-update in phase k due to
which the node v becomes c-dirty from c-clean. By induction hypothesis, we have:


2ε d
∗
Uv (t ) ≥
· (ψ (k) − 1)
(135)
L2
Consider the interval [tk∗ +1 ,tk+1 − 1] from the start of phase (k∗ + 1) till the end of phase k. Let t be the
unique edge-update in this interval where the node v becomes c-dirty from c-clean. We will show that at
least (2ε d/L2 ) edge-updates incident upon v took place during the interval [t ∗ + 1,t]. Specifically, we will
prove the following inequality.


2ε d
∗
(136)
Uv (t) − Uv (t ) ≥
L2
Equations 135 and 136 will imply that Uv (t) ≥ (2ε d/L2 ) · ψ (k). To proceed with the proof of equation 136,
note that there are two possible ways by which the node v could have become c-dirty at edge-update t ∗ , and
accordingly, we consider two possible cases.
• Case 1. In the beginning of phase k∗ , the node v was passive and c-clean, with deg(v, E) < (3ε d/L2 ).
Then with the edge-update t ∗ in the middle of phase k∗ , we saw deg(v, E) reaching the threshold
(3ε d/L2 ), which forced us to classify the node v as c-dirty at that instant.
In this instance, we need to consider two possible sub-cases.
– Case 1a. At the end of phase k∗ , i.e., immediately after edge-update (tk∗ +1 − 1), the degree of the
node v is at most (ε d/L2 ).

63

In this case, during the interval [t ∗ ,tk∗ +1 − 1] itself the degree of the node v has changed from
(3ε d/L2 ) to (ε d/L2 ). This can happen only if (3ε d/L2 ) − (ε d/L2 ) = (2ε d/L2 ) edges incident
upon v was deleted from the graph during this interval. Since tk∗ +1 − 1 < t, we get:


2ε d
∗
∗
∗
Uv (t) − Uv (t ) ≥ Uv (tk +1 − 1) − Uv (t ) ≥
.
L2
– Case 1b. At the end of phase k∗ , i.e., immediately after edge-update (tk∗ +1 − 1), the degree of the
node v is greater than (ε d/L2 ).
In this case, the node v is classified as active in phase k∗ + 1 (see Section 7.4.3). Further, the
node v is c-clean at the start of phase k∗ + 1 (see Lemma 7.21) and remains c-clean throughout
the interval [tk∗ +1 ,t − 1] (this follows from our choice of t). Accordingly, the node remains active
throughout the interval [tk∗ +1 ,t − 1] (see Section 7.4.3). To summarize, the node remains active
and c-clean from the start of phase k∗ + 1 till the edge-update t − 1.
By definition, after the edge-update t the node v becomes c-dirty again. An active node becomes
c-dirty only if its degree reaches the threshold (ε d/L2 ). Thus, we must have deg(v, E) = ε d/L2
after edge-update t. Since deg(v, E) = (3ε d/L2 ) after edge-update t ∗ , we infer that deg(v, E) has
dropped by (3ε d/L2 ) − (ε d/L2 ) = (2ε d/L2 ) during the interval [t ∗ ,t]. This can happen only
if at least (2ε d/L2 ) edges incident upon v were deleted from the graph G = (V, E) during the
interval [t ∗ ,t]. Thus, we get:
Uv (t) − Uv(t ∗ ) ≥ (2ε d/L2 ).

• Case 2. In the beginning of phase k∗ , the node v was active and c-clean, with deg(v, E) > (ε d/L2 ).
Then with the edge-update t ∗ in the middle of phase k∗ , we saw deg(v, E) reaching the threshold
(ε d/L2 ), which forced us to classify the node v as c-dirty at that instant.
We can easily modify the proof of Case 1 for this case. Basically, the roles of the active and passive
nodes are interchanged, and so are the roles of the thresholds (3ε d/L2 ) and (ε d/L2 ).
We are now ready to bound the amortized update time of the subroutine REVAMP().
Lemma 7.33. The subroutine REVAMP() has an amortized update time of O(L2 Ld /(εδ )).
Proof. Recall that Uv (t) denotes the number of edge-updates incident upon v among the first t edge-updates
in G = (V, E). Since each edge is incident upon two nodes, we have t = (1/2) · ∑v∈V Uv (t) for every integer
t ≥ 1. Hence, we have the following guarantee at the end of every phase k ≥ 1.
tk+1 − 1 = (1/2) ·

∑ Uv(tk+1 − 1)

v∈V

≥ (ε d/L2 ) · ∑

k

∑ D IRTY +c (v, k′ )

(137)

v∈V k′ =1
k

= (ε d/L2 ) ·

∑ ∑ D IRTY +c (v, k′ )

=

∑

k′ =1 v∈V
k
′
D+
(ε d/L2 ) ·
c (v, k )
′
k =1

(138)

Equation 137 follows from Lemma 7.32. Equation 138 follows from equation 133. From equation 138 and
Corollary 7.31, we get the following guarantee.

64

• The total time spent on the calls to the subroutine REVAMP() during the first k phases is given by:
k

∑ O(|D+c (k)| · d · (Ld /δ )) = (tk+1 − 1) · O(L2Ld /(εδ )).

k′ =1

Note that by definition, there are (tk+1 − 1) edge-updates in the graph G = (V, E) during the first k phases.
Accordingly, we infer that the subroutine REVAMP() has an amortized update time of O(L2 Ld /(εδ )).
7.6.6

Bounding the amortized update time of REBUILD( j) in the middle of a phase

Throughout this section, we fix any layer j ∈ [1, Ld ]. We will analyze the amortized running time of a call
made to the subroutine REBUILD( j). Note that such a call can be made under two possible circumstances.
• While processing an edge-update in the middle of a phase, a call to REBUILD( j) can be made by the
subroutine VERIFY() in Figure 5. This happens only if there are too many l-dirty nodes at layer j.
• While processing the last edge-update of a phase, the subroutine REVAMP() calls REBUILD( j) with
j = 1. The total running time of these calls to REBUILD(1) is subsumed by the total running time of
all the calls to REVAMP(), which in turn has already been analyzed in Section 7.6.5.
Accordingly, in this section we focus on the calls made to REBUILD( j) from a given phase.
• Throughout the rest of this section, we will use the properties outlined in Lemmas 7.21 and 7.22.
Further, since we are considering a fixed layer j ∈ [1, Ld ], we will sometimes omit the symbol “ j”
from the notations introduced in this section.
Before proceeding any further, we need to introduce the concept of an “epoch”.


Definition 7.34. An epoch τ 0 , τ 1 consists of a contiguous block of edge-updates in the middle of a phase,
where τ 0 (resp. τ 1 ) denotes the first (resp. last) edge-update in the epoch. Specifically, we have:
• While processing the edge-update (τ 0 − 1), a call is made to REBUILD( j′ ) with j′ ∈ [1, j].
• While processing the edge-updates t ∈ τ 0 , τ 1 − 1 , no call is made to REBUILD( j′) with j′ ∈ [1, j].
• While processing the edge-update τ 1 , a call is made to REBUILD( j).
We say that the epoch “begins” at the time instant just before the edge-update τ 0 , and “ends” at the time
instant just before the call to REBUILD( j) while processing the edge-update τ 1 .


For the rest of this section, we fix a given epoch τ 0 , τ 1 in the middle of the phase under consideration.
By Lemma 7.29, the call to REBUILD( j) after edge-update τ 1 takes O(|A| · d · 2− j ) time. We will show that
the epoch lasts for Ω(εγδ · (Ld L)−2 · |A| · (d/2 j )) edge-updates (see Corollary 7.39). Note that by definition,
no call is made to REBUILD( j) during the epoch. Hence, dividing the running time of the call that ends the
epoch by the number of edge-updates in the epoch gives us an amortized bound of O(L2d L2 /εγδ ).
Thus, the main challenge is to lower bound the number of edge-updates in the epoch. Towards this end,
we take a closer look at how the sets of l-dirty nodes at layers j′ ∈ [0, j] evolve with the passage of time. First,
note the properties of the laminar structure specified by Invariant 7.6. Since a call was made to REBUILD( j′ )
with j′ ∈ [1, j] after the edge-update (τ 0 − 1), Lemma 7.12 implies that Dl0 ⊆ Dl1 ⊆ · · · ⊆ Dl, j−1 = Dl, j ⊆ A
when the epoch begins. In the middle of the epoch, the sets {Dl,k }, k ∈ [0, j], can only get bigger with the
passage of time (see Lemma 7.22), but they always remain contained within one another as a laminar family.
To be more specific, suppose that while processing some edge-update in the epoch, we have to change the
sets Dl0 , . . . , Dl j . This change has to be one of the following two types.
• (a) Some node v ∈ A becomes c-dirty, and to satisfy Invariant 7.6 we move the node v from Clk to Dlk
at all layers k ∈ [0, j]. See item (1) in Step III of Section 7.4.2.
• (b) Some node v ∈ Cl j′ becomes l-dirty at layer j′ ∈ [1, j], and we move the node v from Clk to Dlk at
all layers k ∈ [ j′ , j]. See the call to CLEANUP(x) in Step III of Section 7.4.2.

65

To summarize, during the epoch the l-dirty sets Dl0 ⊆ Dl1 ⊆ · · · ⊆ Dl j keep getting bigger and bigger with
the passage of time, without violating the laminar property. In other words, no node is ever deleted from
one of these sets while the epoch is still in progress.
The epoch ends because a call is made to REBUILD( j) after edge-update τ 1 . This can happen only if at
the end of the epoch, Invariant 7.10 is violated at layer j but satisfied at all the layers k ∈ [0, j − 1]. See the
call to the subroutine VERIFY() in Step III (Figure 5) of Section 7.4.2. Thus, at the end of the epoch, we
have |Dl j | > (δ ( j + 1)/(Ld + 1)) · |A| and |Dl, j−1 | ≤ (δ j/(Ld + 1)) · |A|. Since Dl, j−1 ⊆ Dl, j , we get:


Lemma 7.35. At the end of the epoch τ 0 , τ 1 , we have |Dl j \ Dl, j−1 | ≥ (δ /(Ld + 1)) · |A|.
Next, note that if a node v belongs to Dl j \ Dl, j−1 at the end of the epoch, then the node v must have
been part of the set Cl j in the beginning of the epoch. This follows from the three observations stated below,
which, in turn, follow from our discussion preceding Lemma 7.35.
1. We always have Dl, j−1 ⊆ Dl j ⊆ A and Cl j = A \ Dl j . The set A does not change during the epoch.
2. In the beginning of the epoch, we have Dl, j−1 = Dl j .
3. During the epoch, a node is never deleted from either of the sets Dl, j−1 and Dl, j .
We formally state our observation in Lemma 7.36.


Lemma 7.36. If a node v belongs to Dl j \ Dl, j−1 at the end of the epoch τ 0 , τ 1 , then the node v must have
belonged to Cl j in the beginning of the epoch.
The next lemma follows directly from Lemmas 7.35 and 7.36.
 0 1
Lemma 7.37. There are at least Ω(δ · L−1
begins and
d · |A|) nodes that belong to Cl j when the epoch τ , τ
belong to Dl j \ Dl, j−1 when the epoch ends.
Next, we will show that a node v moves from Cl j to Dl j \ Dl, j−1 only after a large number of edgeupdates incident upon v. The complete proof of Lemma 7.38 appears in Section 7.6.7. The main idea
behind the proof, however, is simple. Consider a node v that belongs to Cl j when the epoch begins. Since a
call was made to REBUILD( j′ ) with j′ ∈ [1, j] just before the start of the epoch, Lemma 7.11 implies that
deg(v, H j ) is very close to (1/2) · deg(v, H j−1 ) at that moment. On the other hand, the node v moves from
Cl j to Dl j \ Dl, j−1 only if somewhere in the middle of the epoch it violates Invariant 7.7 in layer j, and this
means that at that moment deg(v, H j ) is very far away from (1/2) · deg(v, H j−1 ). So deg(v, H j ) moves from
being close to (1/2) · deg(v, H j−1 ) to being far away from (1/2) · deg(v, H j−1 ) within the given epoch. This
can happen only if either deg(v, H j ) or deg(v, H j−1 ) changes by a large amount during the epoch. In either
case, we can show that a large number of edge-updates incident upon v takes place during the epoch.


Lemma 7.38. Take any node v that is part of Cl j when the epoch τ 0 , τ 1 begins, and is part of Dl j \ Dl, j−1
when the epoch ends. At least Ω(εγ · (Ld L2 )−1 · (d/2 j )) edge-updates in the epoch are incident upon v.


Corollary 7.39. The epoch τ 0 , τ 1 lasts for at least Ω(εγδ · (Ld L)−2 · (d/2 j ) · |A|) edge-updates.
Proof. Let C∗ be the set of nodes that are part of Cl j when the epoch begins and part of Dl j \ Dl, j−1 when
−2 · |A| · d · 2− j ) edge-updates in the epoch are
the epoch ends. By Lemmas 7.37, 7.38, at least Ω(εγδ · L−2
d ·L
incident upon the nodes in C∗ . This lower bounds the total number of edge-updates during the epoch.
We are now ready to derive the main result of this section.
Lemma 7.40. The amortized update time of REBUILD( j) in the middle of a phase is O(L2 L2d /εγδ ).
Proof. Note that no call is made to REBUILD( j) during the epoch, and the call to REBUILD( j) after edgeupdate τ 1 requires O(|A| · d · 2− j ) time (see Lemma 7.29). The lemma now follows from Corollary 7.39.
66

7.6.7

Proof of Lemma 7.38

Notations. We introduce some notations that will be used throughout the proof.
• Let xk be the value of deg(v, Hk ), for k ∈ [0, Ld ], when the epoch begins. Similarly, let x be the value
of deg(v, E) when the epoch begins.
• Consider the unique time-instant in the epoch when the node v is moved from Cl, j to Dl j \ Dl, j−1 . For
k ∈ [0, Ld ], let xk + ∆k be the value of deg(v, Hk ) at this time-instant, where ∆k is some integer.

Two simple observations. Just before the epoch begins, a call is made to REBUILD( j′ ) for some j′ ∈
[1, j]. At the end of the call, deg(v, H j ) equals 1/2 times deg(v, H j−1 ), plus-minus one (see Lemma 7.11).
Thus, we have:
x 
x 
j−1
j−1
− 1 ≤ xj ≤
+1
(139)
2
2
Consider the unique time-instant in the epoch when the node v is moved from Cl j to Dl j \ Dl, j−1 . This
event can take place only if the node v was violating Invariant 7.7 at layer j at that instant. Thus, we have:





x j−1 + ∆ j−1
−1 x j−1 + ∆ j−1
, (1 + γ /Ld )
(140)
xj + ∆j ∈
/ (1 + γ /Ld )
2
2

The main idea. When the epoch begins, equation 139 implies that deg(v, H j ) is very close to (1/2) ·
deg(v, H j−1 ). In contrast, equation 140 implies that somewhere in the middle of the epoch, deg(v, H j ) is
quite far away from (1/2) · deg(v, H j−1 ). Intuitively, this can happen only if either deg(v, H j ) or deg(v, H j−1 )
has changed by a large amount during this interval, i.e., either |∆ j | or |∆ j−1 | is large. This is shown in
Claim 7.43 and Corollary 7.44. Finally, in Claim 7.45 and Corollary 7.46, we show that this can happen
only if the degree of v in the graph G = (V, E) itself has changed by a large amount, which means that
a large number of edge-updates incident upon v have taken place during the interval under consideration.
Lemma 7.38 follows from Corollary 7.46.
To prove Claim 7.43 and Corollary 7.44, we first need to show that x j−1 is not much smaller than d/2 j .
Claim 7.41. We have x j−1 ≥ (2ε · e−γ L−2 ) · (d/2 j ).
Proof. When the epoch begins, the node v belongs to the set Cl j , and we know that Cl j ⊆ Cl, j−1 (see Invariant 7.6). Hence, when the epoch begins, the node v is part of Cl, j−1 . Accordingly, by Lemma 7.8:
x j−1 ≥

x
2 j−1 · (1 + γ /Ld ) j−1

(141)

We now lower bound x. When the epoch begins, the node v belongs to the set Cl j , and we know that
Cl j ⊆ A \ Dl0 = A \ Dc (see Invariant 7.6). Hence, by the condition (1) in Definition 7.2:
x > ε d/L2

(142)

From equations 141 and 142 we infer that:
x j−1 ≥

ε ·d

2 j−1 · (1 + γ /L

d)

j−1 · L2

Since (1 + γ /Ld ) j−1 < (1 + γ /Ld )Ld ≤ eγ , equation 143 implies that:
 ε   d   2ε   d 
=
·
x j−1 ≥ γ 2 ·
e L
2 j−1
eγ L2
2j
This concludes the proof of the claim.
67

(143)

Corollary 7.42. We have x j−1 ≥ 8Ld /γ .
Proof. Form Claim 7.41, we infer that:
x j−1 ≥
≥
=
≥

 ε   d 
·
eγ L2
2 j−1


 ε 
d
· L
eγ L2
2 d
2
ε · λd · L
eγ
8Ld
γ

(144)
(145)
(146)

Equation 144 holds since j ≤ Ld . Equation 145 follows from equation 59. Equation 146 follows from
equation 68.
Claim 7.43. Either |∆ j | ≥ γ · (16Ld )−1 · x j−1 or |∆ j−1 | ≥ γ · (16Ld )−1 · x j−1 .

Proof. Throughout the proof, we set µ = (1 + γ /Ld ). Looking at equation 140, we consider two cases.
Case 1. x j + ∆ j > (1/2) · µ · (x j−1 + ∆ j−1 ) .

In this case, since x j ≤ x j−1 /2 + 1 (see equation 139), we get:

 
x 
x j−1 + ∆ j−1
µ · ∆ j−1
x j−1 
j−1
−1 ≥
−1
+ (µ − 1) ·
−
∆j ≥ µ ·
2
2
2
2
Rearranging the terms in the above inequality, we get:
∆j −

µ · ∆ j−1
2

≥ (µ − 1) ·
≥ (µ − 1) ·
= (µ − 1) ·

x

j−1



x 2 
j−1

x 2 
j−1

−1
− (µ − 1) ·

x

j−1

4



(147)

(148)
4
Equation 147 holds since x j−1 > 8Ld /γ (see Corollary 7.42) and (µ − 1) = γ /Ld . Thus, from equation 148,
we infer that:
x 
µ · ∆ j−1
j−1
|∆ j | +
(149)
≥ (γ /Ld ) ·
2
4
Hence, either |∆ j | is at least 1/2 times the right hand side of equation 149, or else |∆ j−1 | is at least 1/µ
times the right hand side of equation 149. The claim follows since µ = 1 + γ /Ld ≤ 2.
Case 2. x j + ∆ j < (1/2) · (1/µ ) · (x j−1 + ∆ j−1 ).

In this case, since x j ≥ x j−1 /2 − 1 (see equation 139), we get:
 



x 
∆ j−1
x j−1 
x j−1 + ∆ j−1
j−1
−
+1 ≤
+ (1/µ − 1) ·
+1
∆j ≤
2µ
2
2µ
2

Rearranging the terms in the above inequality, we get:


x 
∆ j−1
j−1
−1
− ∆ j ≥ (1 − 1/µ ) ·
2µ
2


x 
µ − 1  x j−1 
j−1
≥
− (µ − 1) ·
·
µ
2
4


µ − 1  x j−1 
≥
·
µ
4
68

(150)
(151)

Equations 150 and 151 hold since µ = 1 + γ /Ld and x j−1 > 8Ld /γ = 8/(µ − 1) (see Corollary 7.42). From
equation 151, we infer that:




∆ j−1
x j−1
µ − 1  x j−1 
= (γ /Ld ) ·
|∆ j | +
≥
·
(152)
2µ
µ
4
4µ
Since µ = 1 + γ /Ld ≤ 2, from equation 152 we have:
|∆ j | +

x 
∆ j−1
j−1
≥ (γ /Ld ) ·
2µ
8

(153)

Hence, either |∆ j | is at least 1/2 times the right hand side of equation 149, or else |∆ j−1 | is at least µ times
the right hand side of equation 149. The claim follows since µ = 1 + γ /Ld ≥ 1.
Corollary 7.44. Either |∆ j | ≥ εγ · (8eγ Ld L2 )−1 · (d/2 j ) or |∆ j−1 | ≥ εγ · (8eγ Ld L2 )−1 · (d/2 j ).
Proof. Follows from Claims 7.41 and 7.43.


Claim 7.45. At least max(|∆ j |, |∆ j−1 |) edge-updates in the epoch τ 1 , τ 0 are incident upon the node v.

Proof. The proof consists of two steps.
• Step 1. We show that at least |∆ j | edge-updates in the epoch are incident upon the node v.
To prove this step, note that j ∈ [1, Ld ]. By definition, no call is made to REBUILD( j′ ) with j′ ∈ [1, j]
during the epoch. Hence, no edge is inserted into H j during the epoch. Further, during the epoch,
an edge e ∈ H j can get deleted from H j only if the edge gets deleted from the graph G = (V, E)
itself (see Lemma 7.22). Thus, during any interval within the epoch deg(v, H j ) can only decrease,
and furthermore, the absolute value of this change in deg(v, H j ) is at most the number edge-updates
incident upon v.
• Step 2. We show that at least |∆ j−1 | edge-updates in the epoch are incident upon the node v.
Here, we consider two possible cases.
– Case 1. j − 1 ∈ [1, Ld ].
In this case, the argument is exactly similar to Case 1.
– Case 2. j − 1 = 0.
In this case, since the node v is active, we have deg(v, H0 ) = deg(v, H) = deg(v, E) throughout
the duration of the epoch. Hence, during any interval within the epoch, the absolute value of the
change in deg(v, H0 ) is at most the number edge-updates incident upon v.


Corollary 7.46. At least Ω(εγ · (Ld L2 )−1 · (d/2 j )) edge-updates in the epoch τ 0 , τ 1 are incident upon v.

Proof. Note that eγ ∈ (1, e) since γ ∈ (0, 1). The corollary now follows from Corollary 7.44 and Claim 7.45.

69

Part III

DYNAMIC ALGORITHM FOR BIPARTITE
GRAPHS: FULL DETAILS

70

8 Notations and Preliminaries
This part of the writeup presents our dynamic algorithm for bipartite graphs for maintaining a better than 2
approximation to the size of the maximum matching. The main result is summarized in Theorem 8.2.
Notations. We now define some notations that will be used throughout this half of the paper. Let G =
(V, E) denote the input graph with n = |V | nodes and m = |E| edges. Given any subset of edges E ′ ⊆ E and
any node v ∈ V , we let Nv (E ′ ) = {u ∈ V : (u, v) ∈ E ′ } denote the set of neighbors of v that are connected
to v via an edge in E ′ . Furthermore, we let degv (E ′ ) = |Nv (E ′ )| denote the number of edges in E ′ that are
incident upon v. Finally, for any subset of edges E ′ ⊆ E, we let V (E ′ ) = {v ∈ V : degv (E ′ ) > 0} denote the
set of endpoints of the edges in E ′ .
Fractional assignments. A “fractional assignment” is a function w : E → R+ . It assigns a nonnegative
“weight” w(e) to every edge e ∈ E in the input graph G = (V, E). The set of edges Support(w) = {e ∈ E :
w(e) > 0} with positive weights is called the “support” of the fractional assignment w. The “weight” of a
node v ∈ V under w is given by Wv (w) = ∑(u,v)∈E w(u, v). In other words, Wv (w) denotes the total weight
received by v from its incident edges, under the fractional assignment w. We now define the “addition” of two
fractional assignments. Given any two fractional assignments w, w′ , we say that w + w′ is a new fractional
assignment such that (w + w′ )(e) = w(e) + w′ (e) for every edge e ∈ E. It is easy to check that this addition
operation is commutative and associative, i.e., we have w + w′ = w′ + w and w + (w′ + w′′ ) = (w + w′ ) + w′′
for any three fractional assignments w, w′ , w′′ defined on the same graph. Given any subset of edges E ′ ⊆ E
and any fractional assignment w, we let w(E ′ ) = ∑e∈E ′ w(e) denote the sum of the weights of the edges in
E ′ under w. The “size” of a fractional assignment w is defined as w(E) = ∑e∈E w(e).
Fractional b-matchings. Suppose that we assign a “capacity” bv ≥ 0 to each node v ∈ V in the input graph
G = (V, E). A fractional assignment w is called a “fractional-b-matching” with respect to these capacities
iff Wv (w) ≤ bv for every node v ∈ V . The size of this fractional b-matching is given by w(E) = ∑e∈E w(e),
and its support is defined as Support(w) = {e ∈ E : w(e) > 0}. We say that a fractional b-matching w is
“maximal” iff for every edge (u, v) ∈ E, either Wv (w) = bv or Wu (w) = bu .
“Extending” a fractional b-matching. During the course of our algorithm, we will often consider some
subgraph G′ = (V ′ , E ′ ) of the input graph G = (V, E), with V ′ ⊆ V and E ′ ⊆ E, and define a fractional
b-matching w′ : E ′ → R+ on G′ with respect to the node-capacities {b′ (v)}, v ∈ V ′ . In such cases, to ease
notation, we will often pretend that w′ is a fractional b-matching on G itself. We will do this by setting
w′ (e) = 0 for all edges e ∈ E \ E ′ and b′ (v) = 0 for all nodes v ∈ V \V ′ . With this notational convention, we
will be able to “add” two fractional assignments w′ , w′′ defined on two different subgraphs G′ , G′′ of G.
Fractional matchings. A fractional assignment w in the input graph G = (V, E) is called a “fractional
matching” iff we have Wv (w) ∈ [0, 1] for all nodes v ∈ V . In other words, this is a fractional b-matching
where every node has capacity one. The “size” of this fractional matching is given by w(E) = ∑e∈E w(e),
and its support is defined as Support(w) = {e ∈ E : w(e) > 0}. We say that a fractional matching w is
“maximal” iff for every edge (u, v) ∈ E, either Wv (w) = 1 or Wu (w) = 1.

(Integral) matchings. In the input graph G = (V, E), an (integral) matching M ⊆ E is a subset of edges
that have no common endpoints. This can be thought of as a fractional matching wM : E → [0, 1] with
Support(wM ) = M such that wM (e) = 1 for all edges e ∈ M. The size of this matching is given by |M| =
wM (E). We say that the matching M is “maximal” iff for every edge (u, v) ∈ E \ M, at least one of its
endpoints {u, v} is matched under M. This is equivalent to the condition that the corresponding fractional
matching wM is maximal. We will need the following theorem, which shows that the maximum size of a
fractional matching is no more than the maximum size of an integral matching in a bipartite graph.
Theorem 8.1. In an input graph G = (V, E), consider any fractional matching w with support E ′ ⊆ E. If
the graph G is bipartite, then there is a matching M ⊆ E ′ of size at least w(E).
71

Our result. In Section 9, we first fix three parameters ε , δ , K as per equations 163 — 169 (we assume
that the number of nodes n in the input graph is sufficiently large). Then we describe some invariants that
define three fractional assignments w, wr , w∗1 in G = (V, E). In Theorem 9.4, we show that (w + wr + w∗1 )
forms a fractional matching in G = (V, E). In Theorem 9.5, we show that the size of (w + wr + w∗1 ) is a
(1/ f )-approximation to the maximum possible size of a fractional matching in G = (V, E), where:


(1 + δ /3)
− 4K ε .
f = (1/2) ·
(1 + ε )

In Section 10, we show how to maintain a (1 + ε )2 -approximation to the size of (w + wr + w∗1 ) with κ (n) =
O((10/ε )K+8 · n2/K ) amortized update time (see Theorem 10.5). This implies that we can maintain a (1 +
ε )2 / f -approximation to the size of the maximum fractional matching in G with κ (n) update time. By
Theorem 8.1, the size of the maximum fractional matching in G equals the size of the maximum cardinality
(integral) matching in G. Thus, we reach the following conclusion.
• In O((10/ε )K+8 · n2/K ) amortized update time, we can maintain a (1 + ε )2 / f -approximation to the
size of the maximum matching in G.
We now set the values of ε , δ , and define two new parameters αK , βK as follows.

αK =

2 · (1 + ε )3
1
and βK = (10/ε )K+8 , where ε =
and δ = 104 · K ε .
(1 + δ /3) − 4K ε (1 + ε )
36K · 10K+4

(154)

It is easy to check that this setting of values satisfies equations 163 – 169. Further, note that αK = (1+ ε )2 / f .
Thus, we get the following theorem:
Theorem 8.2. Fix any positive integer K and define αK , βK as per equation 154. In a dynamic setting, we
can maintain a αK -approximation to the value of the maximum matching in a bipartite graph G = (V, E)
with O(βK · n2/K ) amortized update time. Note that 1 ≤ αK < 2 for every sufficiently large integer K.
8.1

An important technical theorem

We devote this section to the proof of the following theorem. This result will be crucially used later on in
the design and analysis of our dynamic algorithm.
Theorem 8.3. Consider a bipartite graph G = (V, E), where the node-set V is partitioned into two subsets
A ⊆ V and B = V \ A such that every edge e ∈ E has one endpoint in A and another endpoint in B. Fix any
number λ ∈ [0, 1/2], and suppose that each node v ∈ B has a capacity b(v) = 2λ . Furthermore, suppose that
each node u ∈ A has a capacity b(u) ∈ [0, λ ]. Let w be a maximal fractional b-matching in the graph G with
respect to these capacities. Thus, for every edge (u, v) ∈ E, we have either Wu (w) = b(u) or Wv (w) = b(v).
Further, for every node v ∈ V , we have 0 ≤ Wv (w) ≤ b(v).
Let M ⊆ E be a matching in G, i.e., no two edges in M share a common endpoint. Finally, let A(M) =
{u ∈ A : degM (u) = 1} and B(M) = {v ∈ B : degM (v) = 1} respectively denote the set of nodes from A and
B that are matched under M. Then we have:

∑ Wv (w) ≥ (4/3) · ∑

v∈V

b(u).

u∈A(M)

Proof of Theorem 8.3.
For each node u ∈ A(M), define ∆u (w) = b(u) −Wu (w) to be the “slack” at node u with respect to w. Since
for all nodes u ∈ A(M), we have 0 ≤ Wu (w) ≤ b(u) ≤ λ , we infer that ∆u (w) ∈ [0, λ ] for all nodes u ∈ A(M).
We will show that:
(155)
∑ ∆u(w) ≤ (1/2) · ∑ Wu (w)
u∈A

u∈A(M)

We claim that equation 155 implies Theorem 8.3. To see why this is true, consider two possible cases.
72

• Case 1. ∑u∈A(M) ∆u (w) ≤ (1/3) · ∑u∈A(M) b(u).
In this case, we have:

∑

Wu (w) =

∑

(b(u) − ∆u (w))

∑

b(u) −

∑

b(u) − (1/3) ·

u∈A(M)

u∈A(M)

=

u∈A(M)

≥

u∈A(M)

= (2/3) ·

∑

∑

∆u (w)

u∈A(M)

∑

b(u)

u∈A(M)

b(u)

(156)

u∈A(M)

Now, since an edge e ∈ E contributes the same amount w(e) to each of the sums ∑u∈A Wu (w) and
∑v∈B Wv (w), we have ∑u∈A Wu (w) = ∑v∈B Wv (w). Thus, we get:

∑ Wv (w)

v∈V

= 2 · ∑ Wu (w)
u∈A

≥ 2·

∑

Wu (w)

(157)

∑

(158)

u∈A(M)

≥ (4/3) ·

b(u)

u∈A(M)

Equation 157 holds since A(M) ⊆ A. Equation 158 follows from equation 156. The theorem follows
from equation 158.
• Case 2. ∑u∈A(M) ∆u (w) > (1/3) · ∑u∈A(M) b(u).
In this case, we have:

∑ Wu (w)

u∈A

≥ 2·

∑

∆u (w)

(159)

∑

(160)

u∈A(M)

> (2/3) ·

b(u)

u∈A(M)

Equation 159 follows from equation 155. Next, just as in Case 1, we argue that an edge e ∈ E
contributes the same amount w(e) to each of the sums ∑u∈A Wu (w) and ∑v∈B Wv (w). So we have:
∑u∈A Wu (w) = ∑v∈B Wv (w). Thus, we get:

∑ Wv (w)

v∈V

= 2 · ∑ Wu (w)
u∈A

> (4/3) ·

∑

b(u)

(161)

u∈A(M)

Equation 161 follows from equation 160. The theorem follows from equation 161.
Thus, in order to prove the theorem, it suffices to prove equation 155. This is shown below.
• Proof of equation 155.
Let A∗ (M) = {u ∈ A(M) : ∆u (w) > 0} denote the subset of nodes in A(M) that have nonzero slack
under w. For each node u ∈ A(M), let u(M) ∈ B(M) denote the node u is matched to under M.
Since w is a maximal fractional b-matching with respect to the capacities {b(v)}, v ∈ V , we infer that
Wu(M) (w) = b(u(M)) = 2λ for all nodes u ∈ A∗ (M). Further, we note that ∆u (w) = b(u) − Wu (w) ≤
b(u) ≤ λ for all nodes u ∈ A∗ (M) ⊆ A. Thus, we get:
∆u (w) ≤ (1/2) ·Wu(M) (w) for all nodes u ∈ A∗ (M).
73

(162)

From equation 162, we infer that:

∑

∑

∆u (w) =

∆u (w) +

∑

=

u∈A∗ (M)

≤ (1/2) ·

∑

∆u (w)

u∈A∗ (M)

u∈A(M)\A∗ (M)

u∈A(M)

∆u (w)

∑

Wu(M) (w)

u∈A∗ (M)

≤ (1/2) · ∑ Wv (w)
v∈B

= (1/2) · ∑ Wu (w)
u∈A

The last equality holds since each edge e ∈ E contributes the same amount w(e) towards the sums
∑v∈B Wv (w) and ∑u∈A Wu (w), and so these two sums are equal. This concludes the proof of equation 155.

9 Invariants maintained by our algorithm
Throughout the rest of this half of the paper, we fix a sufficiently large integral constant K ≥ 10, and sufficiently small constants ε , δ ∈ (0, 1). We will assume that K, ε , δ satisfy the following guarantees.
1
.
36 · 10K−2
ε ≪ δ , and δ is an integral multiple of ε .
1
δ<
13 · 10K
ε ≫ 1/n1/K , where n = |V | is the number of nodes in the input graph.

ε = 1/N for some positive integer N ≫ K, and δ <

(163)
(164)
(165)
(166)

1/K

(167)

∑ n j/K ≤ 2 · ni/K for all i ∈ {1, . . . , K}.

(168)

log n ≤ n1/K .

(169)

K<n

i

j=0

We maintain a family of K subgraphs G1 , . . . , GK of the input graph G = (V, E). For 1 ≤ i ≤ K, let Zi and Ei
respectively denote the node-set and the edge-set of the ith subgraph, i.e., Gi = (Zi , Ei ). We ensure that:
(a) V = ZK ⊇ ZK−1 ⊇ · · · ⊇ Z1 .

(b) For 1 ≤ i ≤ K, the set Ei = {(u, v) ∈ E : u, v ∈ Zi } consists of the edges with both endpoints in Zi .

We define the “level” of a node v ∈ V to be the minimum index i ∈ {1, . . . , K} such that v ∈ Zi . We denote
the level of a node v by ℓ(v). Thus, we have:
ℓ(v) = min {v ∈ Zi } for all nodes v ∈ V.
i∈[1,K]

The corollary below follows from our definition of the level of a node.
Corollary 9.1. Consider any node v ∈ V with level ℓ(v) = i ∈ {1, . . . , K}. We have:
v ∈ Z j for all j ∈ {i, . . . , K}, and v ∈
/ Z j for all j ∈ {1, . . . , i − 1}.
74

(170)

9.1

An overview of the structures maintained by our algorithm

For each index i ∈ {2, . . . , K}, our algorithm will maintain the following structures.
1. The subgraph Gi = (Zi , Ei ).
2. For each node v ∈ Zi , two capacities bi (v), bri (v) ≥ 0. The former is called the “normal” capacity of
the node at level i, whereas the latter is called the “residual” capacity of the node at level i.
3. A fractional b-matching wi in the subgraph Gi = (Zi , Ei ) with respect to the normal capacities {bi (v)},
v ∈ Zi . This is called the “normal” fractional assignment at level i. The support of wi will be denoted
by Hi = {e ∈ Ei : wi (e) > 0}. The fractional assignment wi will be “uniform”, in the sense that every
edge e ∈ Hi gets the same weight wi (e) = 1/di , where di = n(i−1)/K .
To ease notation, we will often extend wi to the input graph G = (V, E) as described in Section 8.
Thus, bi (v) = 0 for all v ∈ V \ Zi and wi (e) = 0 for all e ∈ E \ Ei . Accordingly, if a node v does not
belong to Zi , then Wv (wi ) = 0.
4. For each node v ∈ Zi , a “discretized node-weight” Wv (wi ) ≤ bi (v) that is an integral multiple of ε and
gives a close estimate of the normal node-weight Wv (wi ) = ∑(u,v)∈Ei wi (u, v). Intuitively, one can think
of Wv (wi ) as follows: It “rounds up” the value of Wv (wi ) to a multiple of ε , while ensuring that the
rounded value (1) does not exceed bi (v), and (2) does not differ too much from the actual value. The
second property will be used in the analysis of our algorithm.
We will often extend this notation to the entire node-set V by assuming that Wv (wi ) = 0 for all nodes
v ∈ V \ Zi . We will also set Wv (w) = ∑Kj=2 Wv (w j ) for all nodes v ∈ V (see equation 171 below).
5. A fractional b-matching wri in the subgraph Gi = (Zi , Ei ) with respect to the residual capacities
{bri (v)}, v ∈ Zi . This is called the “residual” fractional assignment at level i.
To ease notation, we will often extend wri to the input graph G = (V, E) as described in Section 8.
Thus, bri (v) = 0 for all v ∈ V \ Zi and wri (e) = 0 for all e ∈ E \ Ei . Accordingly, we also set Wv (wri ) = 0
for all nodes v ∈ V \ Zi .
6. A partition of the node-set Zi into three subsets: Ti , Bi , Si . The nodes in Ti , Bi and Si will be respectively called “tight”, “big” and “small” at level i.
We will often use the phrase “structures for level i” while describing our algorithm. This is defined below.
Definition 9.2. For every i ∈ {2, . . . , K}, the phrase “structures for level i” refers to the subgraph Gi =
(Zi , Ei ), the node-capacities {bi (v), bri (v)}, v ∈ Zi , the fractional assignments wi , wri , the discretized nodeweights {Wv (wi )}, v ∈ Zi , and the partition of the node-set Zi into subsets Ti , Bi , Si .
Next, our algorithm will maintain the following structures for level one.
1. The subgraph G1 = (Z1 , E1 ).
2. For each node v ∈ Z1 , a capacity b∗1 (v) ≥ 0.

75

3. A fractional b-matching w∗1 in G1 = (Z1 , E1 ) with respect to the node-capacities {b∗1 (v)}, v ∈ Z1 . To
ease notation, we will often extend w∗1 to the input graph G = (V, E) as described in Section 8. So we
will set b∗1 (v) = 0 for all v ∈ V \ Z1 and w∗1 (e) = 0 for all e ∈ E \ E1 .
Definition 9.3. The phrase “structures for level 1” will refer to the subgraph G1 = (Z1 , E1 ), the nodecapacities {b∗1 (v)}, v ∈ Z1 , and the fractional assignment w∗1 .
Our algorithm will ensure the following property.
• Fix any 1 ≤ i ≤ K. The structures for level i depend only on the structures for levels i + 1 ≤ j ≤ K.
Equivalently, the structures for a level j < i do not influence the structures for level i.
We will define two fractional assignments – w and wr – as follows.
K

w=

∑ w j and wr =

j=2

K

∑ wrj

(171)

j=2

We will show that the fractional assignment (w + w∗1 + wr ) forms a fractional matching in the input graph
G = (V, E). Further, the size of this fractional matching is strictly within a factor of 2 of the size of the
maximum cardinality matching in G. Our main results are thus summarized in the two theorems below.
Note that equations 163 and 164 guarantee that f > 1/2 (see Theorem 9.5).
Theorem 9.4. The fractional assignment (w + w∗1 + wr ) is a fractional matching in the graph G = (V, E).
Theorem 9.5. The size of the fractional assignment (w + w∗1 + wr ) is at least f times the size of the maximum
cardinality matching in the input graph G = (V, E), where


(1 + δ /3)
f = (1/2) ·
− 4K ε .
(1 + ε )
Organization for the rest of this section.
• In Section 9.2, we describe the invariants that are used to define the structures for levels j ∈ {2, . . . , K}.
• In Section 9.3, we show that the above invariants are “consistent” in the following sense: There is a
way to construct the structures for all levels j > 1 that satisfy these invariants.
• In Section 9.4, we describe the invariants that are used to define the structures for level one.
• In Section 9.5, we again prove the “consistency” of these invariants. Specifically, we show that there
is a way to construct the structures for level one that satisfy the invariants.
• In Section 9.6, we derive some properties from the invariants that will be useful later while analyzing
the update time of our algorithm.
• In Section 9.7, we prove Theorem 9.4 by showing that the fractional assignment (w + w∗1 + wr ) forms
a fractional matching in the input graph G = (V, E).
• Finally, in Section 9.8, we bound the size of the fractional assignment (w + w∗1 + wr ) and prove the
required approximation guarantee as stated in Theorem 9.5.
Before moving on to Section 9.2, we introduce a notation that will be used multiple times. For every i ∈
{1, . . . , K − 1}, we define the “small-index” si (v) of a node v ∈ Zi to be the minimum level j ∈ {i + 1, . . . , K}
where the node is small (i.e., v ∈ S j ). If i = K or if v ∈
/ S j for all j ∈ {i + 1, . . . , K}, then we define si (v) = ∞.
(
∞
if i = K or v ∈
/ S j ∀ j ∈ {i + 1, . . . , K};

si (v) =
(172)
min j ∈ {i + 1, . . . , K} : v ∈ S j
otherwise.
Intuitively, si (v) captures the notion of the “most recent” level larger than i where v is small.
76

9.2

Invariants for levels i ∈ {2, . . . , K}

Fix any level i ∈ {2, . . . , K}, and recall Definition 9.2. Suppose we are given the structures for all the levels
j ∈ {i + 1, . . . , K}. Given this input, we present the invariants that determine the structures for level i.
First, in Definition 9.6, we specify how to derive the subgraph Gi = (Zi , Ei ). It states that if i < K, then
the node-set Zi consists of all the “non-tight” nodes (see Section 9.1) at level i + 1. Else if i = K, then the
set Zi consists of all the nodes in the input graph G = (V, E). Further, the set Ei consists of the edges in G
with both endpoints in Zi . In other words, Gi is the subgraph of G induced by the subset of nodes Zi ⊆ V .
Definition 9.6. For all i ∈ {2, . . . , K}, the node-set Zi is defined as follows.
(
V
for i = K;
Zi =
Zi+1 \ Ti+1 for i ∈ {1, . . . , K − 1}.
Further, we define Ei = {(u, v) ∈ E : u, v ∈ Zi } to be the set of edges in E with both endpoints in Zi .
In Definition 9.7, we specify how to derive the normal node-capacity of a node v ∈ Zi . This is determined
by two quantities: (1) the total discretized weight received by the node from the levels larger than i; and
(2) the value of the index si (v). From equation 172, it follows that the value of si (v) is determined by
the partitions of the node-sets {Z j } into subsets {T j , S j , B j } for all i < j ≤ K. Thus, the node-capacities
{bi (v)}, v ∈ Zi , are uniquely determined by the structures for levels j ∈ {i + 1, . . . , K}.
Definition 9.7. Fix any level i ∈ {2, . . . , K} and any node v ∈ Zi . The capacity bi (v) is defined as follows.

K
if si (v) = ∞;

1 − δ − ∑ j=i+1 Wv (w j )
(173)
bi (v) =


K
(K−s
(v)+1)
i
1 − 5 · 10
· δ − ∑ j=i+1 Wv (w j ) else if si (v) ∈ {i + 1, . . . , K}.

Note that by equation 164, δ is an integral multiple of ε . Furthermore, we have 1 = N · ε for some integer
N (see equation 163). In Section 9.1, while describing the structures for a level, we stated that the discretized
weight of a node is also an integral multiple of ε . Thus, for every node v ∈ Zi , we infer that Wv (w j ) is an
integral multiple of ε for all levels j > i. Hence, Definition 9.7 implies that bi (v) is an integral multiple
of ε for all nodes v ∈ Zi . In Section 9.3, we show that bi (v) > 0 for every node v ∈ Zi (see Lemma 9.15).
Accordingly, we get: bi (v) ≥ ε for every node v ∈ Zi .
In Definition 9.8 and Invariant 9.9, we describe how to construct the fractional b-matching wi in Gi =
(Zi , Ei ) with respect to the capacities {bi (v)}. Every edge in the support of wi gets a weight 1/di . Further,
this weight 1/di is negligibly small compared to the smallest node-capacity ε (see equation 166). Hence, it
is indeed possible to construct a nontrivial fractional matching wi with nonempty support Hi in this manner.
Definition 9.8. We define di = n(i−1)/K for all i ∈ {1, . . . , K}.
Invariant 9.9. Consider any level 2 ≤ i ≤ K. We maintain a fractional b-matching in Gi with respect to the
node-capacities {bi (v)}, v ∈ Zi , and denote this fractional b-matching by wi . Thus, we have: Wv (wi ) ≤ bi (v)
for all nodes v ∈ Zi . We define Hi = {e ∈ Ei : wi (e) > 0} to be the support of wi . We ensure that wi (e) = 1/di
for all e ∈ Hi . In other words, the fractional assignment wi is “uniform”, in the sense that it assigns the
same weight to every edge in its support.
After constructing the fractional assignment wi , as per Invariant 9.10 we give each node v ∈ Zi a discretized weight Wv (wi ) that is an integral multiple of ε . These discretized weights serve as estimates of
actual node-weights {Wv (wi )}. In Section 9.3, we show that it is indeed possible to satisfy Invariant 9.10.
77

Invariant 9.10. Consider any level i ∈ {2, . . . , K}. For every node v ∈ Zi , we maintain a value 0 ≤ Wv (wi ) ≤
bi (v) so that Wv (wi ) − 2ε < Wv (wi ) ≤ Wv (wi ). Further, Wv (wi ) is an integral multiple of ε .
Invariant 9.12 implies that wi is “maximal” with respect to the discretized node-weights {Wv (wi )}. To
be more specific, the node-set Zi is partitioned into three subsets Ti , Bi and Si . The nodes in Ti , Bi and
Si are respectively called “tight”, “big” and “small” at level i (see Definition 9.11). A node v is tight iff
Wv (wi ) = bi (v). For a tight node v, if we take an edge (u, v) from Ei \ Hi and insert it into Hi , then the
weights Wv (wi ), Wv (wi ) might exceed the capacity bi (v) – thereby violating Invariant 9.10. But this issue
does not arise if the node v is non-tight. Accordingly, the invariant requires every edge in Ei \ Hi to have at
least one non-tight endpoint.
In Section 9.3, we show that the subsets Si , Ti ⊆ Zi are mutually disjoint (see Lemma 9.17). This implies
that the node-set Zi is indeed partitioned into three subsets – Ti , Si and Bi – as claimed in the invariant
below. Intuitively, this claim holds since δ is sufficiently small. To be more specific, consider a node v ∈ Ti .
By Definition 9.11, we have Wv (wi ) = bi (v) for such a node v. Hence, from Definition 9.7, we infer that
either Wv (wi ) = bi (v) = 1 − δ − ∑ j>i Wv (w j ), or Wv (wi ) = bi (v) = 1 − 5 · 10K−si (v)+1 · δ − ∑ j>i Wv (w j ).
Rearranging the terms, we get: either ∑ j≥i Wv (w j ) = 1 − δ or ∑ j≥i Wv (w j ) = 1 − 5 · 10K−si (v)+1 · δ . In either
case, if δ is sufficiently small, then we can infer that ∑ j≥i Wv (w j ) > 8 · 10K−i · δ , which implies that v ∈
/ Si
/
by Definition 9.11. In other words, a tight node can never be small, which guarantees that Si ∩ Ti = 0.
Definition 9.11. At each level 2 ≤ i ≤ K, the node-sets Ti , Bi , Si ⊆ Zi are defined as follows.
Ti = {v ∈ Zi : Wv (wi ) = bi (v)}
(
K

Si =

v ∈ Zi : ∑ Wv (w j ) ≤ 8 · 10K−i · δ
j=i

Bi = Zi \ (Ti ∪ Si )

(174)
)

(175)
(176)

Invariant 9.12. At each level i ∈ {2, . . . , K}, the node-set Zi is partitioned by the subsets Ti , Bi , Si . Further,
for every edge (u, v) ∈ Ei with u, v ∈ Zi \ Ti , we have (u, v) ∈ Hi . In other words, every edge between two
non-tight nodes belongs to the support of wi .
The next definition specifies how to derive the residual capacity of a node v ∈ Zi based on (a) the partition
of the node-set Zi into subsets Ti , Si , Bi and (b) the value of si (v). From equation 172, it follows that the value
of si (v), in turn, depends on the partitions of {Z j } into subsets {T j , S j , B j } for all j > i.
Definition 9.13. Fix any level i ∈ {2, . . . , K} and any node v ∈ Zi . The capacity bri (v) is defined as follows.


0
if v ∈
/ (Si ∪ Ti);



8 · 10(K−i) · δ
else if v ∈ Si ;
(177)
bri (v) =

δ
else if v ∈ Ti and si (v) = ∞;



4 · 10(K−si (v)+1) · δ else if v ∈ T and s (v) ∈ {i + 1, . . . , K}.
i
i

Note that bri (v) ≥ 0 for all nodes v ∈ Zi . Further, note that bri (v) is nonzero only if v ∈ Ti ∪ Si . We define
a subgraph Gri = (Ti ∪ Si , Eir ) of Gi where the edge-set Eir = {(u, v) ∈ Ei : u ∈ Ti , v ∈ Si } consists of those
edges in Ei that have one tight and one small endpoints. The edges in Eir are called “residual edges in level
i”. Similarly, the subgraph Gri is called the “residual subgraph” in level i. The next invariant states how to
construct the residual fractional matching wri on the residual subgraph Gri .
Invariant 9.14. For all i ∈ [2, K], let Eir = {(u, v) ∈ Ei : u ∈ Ti , v ∈ Si } be the set of edges in Ei with one tight
and one small endpoints. Let Gri = (Ti ∪ Si , Eir ) be the subgraph of Gi = (Zi , Ei ) induced by these edges. The
78

fractional assignment wri is a maximal fractional b-matching in Gri with respect to the residual capacities
{bri (v)}, v ∈ Ti ∪ Si . Thus, for every edge (u, v) ∈ E r , either Wv (wri ) = bri (v) or Wu (wri ) = bri (u). We refer to
Eir , Gri and wri as residual edges, residual subgraph and residual fractional matching at level i respectively.
We implicitly assume that wri (e) = 0 for all edges e ∈ Ei \ Eir . This ensures that wri is also a valid fractional
b-matching in Gi with respect to the residual capacities described in Definition 9.13.
We now explain the link between Invariant 9.14 and Theorem 8.3. Suppose that λ = 4 · 10(K−i) · δ .
Recall Definition 9.13. Consider any node v ∈ Ti . If si (v) = ∞, then we have bri (v) = δ ≤ λ . On the other
hand, if si (v) ∈ {i + 1, . . . , K}, then we also have bri (v) = 4 · 10(K−si (v)+1) · δ ≤ 4 · 10(K−i) · δ ≤ λ . Thus, we
have bri (v) ∈ [0, λ ] for all tight nodes v ∈ Ti . In contrast, we have bri (v) = 8 · 10(K−i) · δ = 2λ for all small
nodes v ∈ Si . We therefore reach the following conclusion: If we set λ = 4 · 10(K−i) · δ , A = Ti , B = Si ,
E = Eir and G = Gri , then we can apply Theorem 8.3 on the residual fractional matching wri .
9.3

Feasibility of the structures for levels {2, . . . , K}

Recall Definition 9.2. We will show that there is a way to satisfy all the invariants described so far. In other
words, we will show that we can build the structures for levels {2, . . . , K} in a way that does not violate any
invariant. We will prove this by induction. For the rest of this section, fix any i ∈ {2, . . . , K}, and suppose
that we have already built the structures for levels {i + 1, . . . , K} without violating any invariant. It remains
show how to build the structures for level i. Towards this end, we first construct the subgraph Gi = (Zi , Ei ).
• Following Definition 9.6, we set Zi = Zi+1 \ Ti+1 if i < K. Otherwise, we set Zi = ZK = V .
• We define Ei = {(u, v) ∈ E : u, v ∈ Zi } to be the set of edges in E with endpoints in Zi .
Next, we define the node-capacities {bi (v)}, v ∈ Zi as per Definition 9.7. In Lemma 9.15 we show that every
node v ∈ Zi has a positive capacity bi (v) > 0. The complete proof of the lemma involves some case-analysis
and is deferred to Section 9.3.1. The intuition behind the proof, however, can be summarized as follows.
• If i = K, then we have bi (v) = 1 − δ > 0. Else if i < K, then v ∈ Zi , and hence v ∈ Zi+1 \ Ti+1 .
Thus, Definition 9.11 and Invariant 9.12 (applied to level i + 1) implies that Wv (wi+1 ) < bi+1 (v). This
positive gap between bi+1 (v) and Wv (wi+1 ) translates into a positive value for bi (v) at level i.
Lemma 9.15. For every node v ∈ Zi , with i ∈ {2, . . . , K}, we have bi (v) > 0.
Next, we build a fractional b-matching wi in the subgraph Gi = (Zi , Ei ) with respect to the nodecapacities {bi (v)}, v ∈ Zi . We let Hi = {e ∈ Ei : wi (e) > 0} denote the support of the fractional assignment
wi . We ensure that wi is uniform, in the sense that wi (e) = 1/di = 1/n(i−1)/K for all e ∈ Ei . In other words,
wi assigns the same weight to every edge in its support. This satisfies Invariant 9.9.
We now observe a crucial property. Since δ is a multiple of ε (see equation 164), 1 = N · ε for some
integer N (see equation 163), and the discretized node-weights {Wv (w j )} for levels j ∈ {i + 1, . . . , K} are
also multiples of ε (apply Invariant 9.10 to levels j > i), Definition 9.7 implies that all the node-capacities
{bi (v)} are also multiples of ε .
Observation 9.16. For every node v ∈ Zi , with i ∈ {2, . . . , K}, the capacity bi (v) is an integral multiple of ε .
Now, suppose that for every node v ∈ Zi , we define Wv (wi ) = ⌈Wv (wi )/ε ⌉ · ε to be the smallest multiple
of ε that is no less than Wv (wi ). Then the discretized weights {Wv (wi )} clearly satisfy: Wv (wi ) − 2ε ≤
Wv (wi ) ≤ Wv (wi ). Further, since bi (v) is also an integral multiple of Wv (wi ), we get: Wv (wi ) ≤ bi (v) for all
v ∈ Zi . We conclude that the discretized weights {Wv (wi )} at level i satisfy Invariant 9.10.
79

We now proceed towards verifying the consistency of Invariant 9.12. First, we need to show that the
subsets Ti and Si from Definition 9.11 are mutually disjoint. This is shown in Lemma 9.17. The proof of
Lemma 9.17 appears in Section 9.3.2. For an intuition behind the proof, recall the discussion immediately
before Definition 9.11.
Lemma 9.17. For i ∈ {2, . . . , K}, the subsets Ti , Si ⊆ Zi are mutually disjoint.
Next, we ensure that the fractional b-matching wi is maximal with respect to the discretized capacities
{Wv (wi )}. To gain a better understanding of this concept, consider an edge (u, v) ∈ Ei \ Hi that receives
zero weight under wi , and suppose that both its endpoints are non-tight (i.e., u, v ∈ Zi \ Ti ). By Definition 9.11, this means that Wu (wi ) < bi (u) and Wv (wi ) < bi (v). Since each of these quantities are integral multiples of ε (see Observation 9.16 and Invariant 9.10), we infer that Wu (wi ) ≤ Wu (wi ) ≤ bi (u) − ε
and Wv (wi ) ≤ Wv (wi ) ≤ bi (v) − ε . Now, what will happen if we insert this edge (u, v) into Hi by setting
wi (u, v) = 1/di ? To answer this question, we make the following observations.
• Since 1/di ≤ 1/n1/K for i ≥ 2 (see Definiton 9.8) and since every edge in Hi gets a weight of 1/di ,
equation 166 implies that Wu (wi ) (resp. Wv (wi )) will increase by at most ε . Accordingly, Wu (wi ) (resp.
Wv (wi )) will increase by at most ε . Hence, we will still have Wu (wi ) ≤ bi (u) and Wv (wi ) ≤ bi (v).
In other words, if both the endpoints of an edge in Ei \ Hi are non-tight, then we can insert that edge into
Hi without violating any of the invariants. But we cannot reach the same conclusion if at least one of
the endpoints is tight. Accordingly, the second part of Invariant 9.12 states that every edge in Ei \ Hi will
have at least one tight endpoint. In this sense, the fractional assignment wi is “maximal with respect to the
discretized node-capacities”.
Next, we define the residual node-capacities {bri (v)}, v ∈ Zi as per Definition 9.13. Clearly, all these
residual capacities are nonnegative. Finally, we compute a maximal fractional b-matching wri with respect
to these residual node-capacities {bri (v)} as per Invariant 9.14. At this stage, we have finished constructing
the structures for level i.
9.3.1

Proof of Lemma 9.15

Fix any level i ∈ {2, . . . , K} and any node v ∈ Zi . If i = K, then equation 172 implies that si (v) = ∞, and
hence Definition 9.7 guarantees that bi (v) = 1 − δ > 0. Thus, for the rest of the proof, we suppose that
i ∈ {2, . . . , K − 1}. Further, by induction hypothesis, we assume that:
b j (v) > 0 for all j ∈ {i + 1, . . . , K}.

(178)

We now consider three possible cases, depending on the value of si (v).
• Case 1. si (v) = ∞.
In this case, equation 172 implies that si+1 (v) = ∞. Accordingly, by Definition 9.7 we get:
bi+1 (v) = 1 − δ −
bi (v) = 1 − δ −

K

∑

Wv (w j )

(179)

Wv (w j )

(180)

j=i+2
K

∑

j=i+1

Since v ∈ Zi , Definition 9.6 states that v ∈ Zi+1 \ Ti+1 . Hence, applying Definition 9.11 we get:
Wv (wi+1 ) < bi+1 (v)
80

(181)

From equations 179 and 181, we get:
Wv (wi+1 ) < 1 − δ −

K

∑

Wv (w j )

j=i+2

Rearranging the terms in the above inequality, we get:
K

∑

j=i+1

Wv (w j ) < 1 − δ

(182)

bi (v) > 0

(183)

From equations 182 and 180, we get:
The lemma follows from equation 183.
• Case 2. si (v) ∈ {i + 2, . . . , K}.
In this case, equation 172 implies that si (v) = si+1 (v). Accordingly, by Definition 9.7 we get:
bi+1 (v) = 1 − 5 · 10(K−si (v)+1) · δ −
bi (v) = 1 − 5 · 10(K−si (v)+1) · δ −

K

∑

Wv (w j )

(184)

Wv (w j )

(185)

j=i+2
K

∑

j=i+1

Since v ∈ Zi , Definition 9.6 states that v ∈ Zi+1 \ Ti+1 . Hence, applying Definition 9.11 we get:
Wv (wi+1 ) < bi+1 (v)

(186)

From equations 184 and 186, we get:
Wv (wi+1 ) < 1 − 5 · 10(K−si (v)+1) · δ −

K

∑

Wv (w j )

j=i+2

Rearranging the terms in the above inequality, we get:
K

∑

j=i+1

Wv (w j ) < 1 − 5 · 10(K−si (v)+1) · δ

(187)

From equations 185 and 187, we get:
bi (v) > 0

(188)

The lemma follows from equation 188.
• Case 3. si (v) = i + 1.
In this case, applying Definition 9.7 we get:
bi (v) = 1 − 5 · 10(K−i) · δ −

81

K

∑

j=i+1

Wv (w j )

(189)

Since si (v) = i + 1, equation 172 implies that v ∈ Si+1 . Hence, applying Definition 9.11 we get:
K

∑

j=i+1

Wv (w j ) ≤ 8 · 10(K−i−1) · δ

(190)

From equations 189 and 190 we get:
bi (v) ≥ 1 − 5 · 10(K−i) · δ − 8 · 10(K−i−1) · δ
≥ 1 − 5 · 10K · δ − 8 · 10K · δ
= 1 − 13 · 10K · δ
> 0

(191)

Equation 191 follows from equation 165. The lemma follows from equation 191.
9.3.2

Proof of Lemma 9.17

We first describe a small technical claim.
Claim 9.18. Consider any level 2 ≤ i ≤ K and any node v ∈ Zi . We have:
bi (v) ≥ 1 − 5 · 10(K−2) · δ −

K

∑

Wv (w j ).

j=i+1

Proof. Follows from Definition 9.7 and the fact that i ≥ 2.
We now proceed with the proof of Lemma 9.17. For the sake of contradiction, suppose that there is a
node v ∈ Ti ∩ Si . Since the node v belongs to Ti , Definition 9.11 and Claim 9.18 imply that:
Wv (wi ) = bi (v)
≥ 1 − 5 · 10(K−2) · δ −

K

∑

Wv (w j )

j=i+1

Rearranging the terms in the above inequality, we get:
K

∑ Wv (w j ) ≥ 1 − 5 · 10(K−2) · δ

(192)

j=i

On the other hand, since the node v belongs to Si and since 2 ≤ i ≤ K, Definition 9.11 implies that:
K

∑ Wv (w j ) ≤ 8 · 10K−2 · δ

(193)

j=i

From equations 192 and 193 we derive that:
8 · 10K−2 · δ ≥ 1 − 5 · 10K−2 · δ
Rearranging the terms in the above inequality, we get:
13 · 10K−2 · δ ≥ 1

(194)

But equation 194 cannot be true as long as equation 163 holds. This leads to a contradiction. Thus, the sets
Ti and Si have to be mutually disjoint. This concludes the proof of the lemma.
82

Invariants for level i = 1

9.4

Recall Definitions 9.2 and 9.3. Suppose that we are given the structures for all the levels j ∈ {2, . . . , K}.
Given this input, in this section we show how to derive the structures for level one. The definition below
specifies the subgraph G1 = (Z1 , E1 ). Note that this is exactly analogous to Definition 9.6.
Definition 9.19. We define Z1 = Z2 \ T2 . Further, the set E1 = {(u, v) ∈ E : u, v ∈ Z1 } consists of all the
edges with both endpoints in Z1 .
The definition below shows how to derive the capacity b∗1 (v) of any node v ∈ Z1 .
Definition 9.20. Consider any node v ∈ Z1 . The capacity b∗1 (v) is defined as follows.
b∗1 (v)

=

if s1 (v) = ∞;


K

1 − ∑ j=2 Wv (w j )



(195)

1 − 10(K−s1 (v)+1) · δ − ∑Kj=2 Wv (w j )

else if s1 (v) ∈ {2, . . . , K}.

In Section 9.6, we show that b∗1 (v) > 0 for every node v ∈ Z1 (see Lemma 9.22). We now specify how
to derive the fractional assignment w∗1 .
Invariant 9.21. The fractional assignment w∗1 forms a fractional b-matching in G1 = (Z1 , E1 ) with respect
to the node-capacities {b∗1 (v)}, v ∈ Z1 . Further, the size of w∗1 is at least 1/(1 + ε )-times the size of every
other fractional b-matching in G1 with respect to the same node-capacities.
9.5

Feasibility of the structures for level one

The next lemma states that if a node v participates in the subgraph G1 = (Z1 , E1 ), then b∗1 (v) > 0. The proof
of Lemma 9.22 appears in Section 9.5.1. The intuition behind the proof is similar to the one for Lemma 9.15.
Lemma 9.22. For every every node v ∈ Z1 , we have b∗i (v) > 0.
9.5.1

Proof of Lemma 9.22

Fix any node v ∈ Z1 . By Lemma 9.15 we have
bi (v) > 0 for all i ∈ {2, . . . , K}.

(196)

We consider three possible cases, depending on the value of s1 (v).
• Case 1. s1 (v) = ∞.
In this case, equation 172 implies that s2 (v) = ∞. Hence, Definitions 9.7 and 9.20 imply that:
K

b2 (v) = 1 − δ − ∑ Wv (w j )

(197)

j=3

K

b∗1 (v) = 1 − ∑ Wv (w j )

(198)

j=2

Since v ∈ Z1 , Definition 9.19 implies that v ∈ Z2 \ T2 . Hence, applying Definition 9.11 we get:
Wv (w2 ) < b2 (v)

83

(199)

From equations 197 and 199 we get:
K

Wv (w2 ) < 1 − δ − ∑ Wv (w j )

(200)

j=3

Rearranging the terms in the above inequality, we get:
K

∑ Wv (w j ) < 1 − δ

(201)

j=2

From equations 198 and 201 we infer that:
b∗1 (v) > 0

(202)

The lemma follows from equation 202.
• Case 2. s1 (v) ∈ {3, . . . , K}.
In this case, equation 172 implies that s1 (v) = s2 (v). Hence, applying Definitions 9.7 and 9.20 we get:
K

b2 (v) = 1 − 5 · 10(K−s1 (v)+1) · δ − ∑ Wv (w j )

(203)

j=3

K

b∗1 (v) = 1 − 10(K−s1 (v)+1) · δ − ∑ Wv (w j )

(204)

j=2

Since v ∈ Z1 , Definition 9.19 implies that v ∈ Z2 \ T2 . Hence, applying Definition 9.11 we get:
Wv (w2 ) < b2 (v)

(205)

From equations 203 and 205 we get:
K

Wv (w2 ) < 1 − 5 · 10(K−s1 (v)+1) · δ − ∑ Wv (w j )
j=3

Rearranging the terms in the above inequality, we get:
K

∑ Wv (w j ) < 1 − 5 · 10(K−s (v)+1) · δ
1

(206)

j=2

From equations 204 and 206 we get:
b∗1 (v) > 4 · 10(K−s1 (v)+1) · δ > 0

(207)

The lemma follows from equation 207.
• Case 3. s1 (v) = 2.
In this case, applying Definition 9.20 we get:
K

b∗1 (v) = 1 − 10(K−1) · δ − ∑ Wv (w j )
j=2

84

(208)

Since s1 (v) = 2, equation 172 implies that v ∈ S2 . Hence, applying Definition 9.11 we get:
K

∑ Wv(w j ) ≤ 8 · 10(K−2) · δ

(209)

j=2

From equations 208 and 209 we get:
b∗1 (v) ≥ 1 − 10(K−1) · δ − 8 · 10(K−2) · δ
= 1 − 18 · 10(K−2) · δ
> 0

(210)

Equation 210 follows from equation 163.
9.6

Some useful properties

In this section, we derive some properties from the invariants. These properties will be used later on to
analyze the amortized update time of our algorithm. We start by noting that both 1, δ are integral multiples of
ε (see equation 163, 164), and that the discretized node-weights are also multiples of ε (see Invariant 9.10).
Hence, Definitions 9.7, 9.13, 9.20 imply that all the node-capacities are also multiples of ε .
Observation 9.23. For every level i ∈ {2, . . . , K} and every node v ∈ Zi , both bi (v) and bri (v) are integral
multiples of ε . Further, for every node v ∈ Z1 , the node-capacity b∗1 (v) is an integral multiple of ε .
From Lemmas 9.15, 9.22 and Observation 9.23, we get the following observation.
Observation 9.24. For every level i ∈ {2, . . . , K} and every node x ∈ Zi , we have bi (x) ≥ ε . Further, for
every node x ∈ Z1 , we have b∗1 (x) ≥ ε .
The next observation follows immediately from Definition 9.6.
Observation 9.25. Consider any level ℓ(v) = i ∈ {2, . . . , K}. Then we have Ti = {v ∈ V : ℓ(v) = i}.
Lemma 9.26 states that the edges in the subgraph Gi−1 is drawn from the support of the normal fractional
assignment wi in the previous level i. This holds since only the non-tight nodes at level i get demoted to
level (i − 1), and all the edges connecting two non-tight nodes are included in the support of wi .
Lemma 9.26. For every level i ∈ {2, . . . , K}, we have Ei−1 ⊆ Hi .
Proof. Consider any edge (u, v) ∈ Ei−1 in the subgraph Gi−1 = (Zi−1 , Ei−1 ). By Definitions 9.6 and 9.19,
we have u, v ∈ Zi−1 = Zi \ Ti . Since both u, v ∈ Zi \ Ti , and since Ei is the subset of edges in G induced by the
node-set Zi , we have (u, v) ∈ Ei . Accordingly, Invariant 9.12 implies that (u, v) ∈ Hi . To summarize, every
edge (u, v) ∈ Ei−1 belongs to the set Hi . Thus, we have Ei−1 ⊆ Hi .
The next lemma upper bounds the number of edges incident upon a node that can get nonzero weight
under a normal fractional assignment wi . This holds since a normal fractional assignment is uniform, in the
sense that it assigns the same weight 1/di to every edge in its support. Hence, not too many edges incident
upon a node can be in the support of wi , for otherwise the total weight of that node will exceed one.
Lemma 9.27. For each level i ∈ {2, . . . , K} and every node v ∈ Zi , we have degv (Hi ) ≤ di .
Proof. Invariant 9.9 states that each edge e ∈ Hi gets a weight of wi (e) = 1/di under the fractional assignment
wi . Thus, for every node v ∈ Zi , it follows that Wv (wi ) = (1/di ) · degv (Hi ). For the sake of contradiction,
85

suppose that the lemma is false. Then there must be a node u ∈ Zi with degu (Hi ) > di . In that case, we would
have:
Wu (wi ) ≥ Wu (wi ) = (1/di ) · degu (Hi ) > 1 ≥ bi (u).
The first inequality follows from Invariant 9.10. The last inequality follows from Definition 9.7. Thus, we
get: Wu (wi ) > bi (u), which contradicts Invariant 9.10. Thus, our assumption was wrong, and this concludes
the proof of the lemma.
Finally, we upper bound the maximum degree of a node in any subgraph Gi = (Zi , Ei ).
Corollary 9.28. For each level i ∈ {1, . . . , K} and every node v ∈ Zi , we have degv (Ei ) ≤ n1/K · di .
Proof. Consider two possible cases, depending on the value of i.
• i = K.
In this case, we have di = dK = n1−1/K (see Invariant 9.9), and hence, we get:
degv (Ei ) ≤ |V | = n = n1/K · di .
• i ∈ {1, . . . , K − 1}.
In this case, applying Lemmas 9.26, 9.27 and Definition 9.8, we get:
degv (Ei ) ≤ degv (Hi+1 ) ≤ di+1 = n1/K · di .

9.7

Feasibility of the solution

We devote this section to the proof of Theorem 9.4, which states that the fractional assignment (w + w∗1 + wr )
forms a fractional matching in the graph G = (V, E). Specifically, we will show that Wv (w + w∗1 + wr ) ≤ 1
for all nodes v ∈ V . The high level idea behind the proof can be explained as follows.
Consider any node v ∈ V at level i ∈ {1, . . . , K}. We need to show that Wv (w + w∗1 + wr ) ≤ 1. We start
by noting that the quantity Wv (w + w∗1 + wr ) is equal to the total weight received by the node v from all the
/ Z j for all j ∈ {1, . . . , i−1},
structures for levels j ∈ {i, . . . , K}. This holds since by Corollary 9.1, we have v ∈
and hence the node v receives zero weight from all the structures for levels j < i.
Consider the scenario where we have fixed the structures for all the levels j ∈ {i + 1, . . . , K}, and we
are about to derive the structures for level i. We first want to upper bound the total weight received by
the node v from the residual fractional assignments in levels j > i. This is given by ∑Kj=i+1 Wv (wrj ). By
Invariant 9.14, each wrj is a fractional b-matching with respect to the capacities {brj (x)}. Hence, we infer
that Wv (wrj ) ≤ brj (v) for all j ∈ {i + 1, . . . , K}. Thus, we get: ∑ j>i Wv (wrj ) ≤ ∑ j>i brj (v). So it suffices to
upper bound the quantity ∑Kj=i+1 brj (v), which is done in Lemma 9.29. Next, we note that the total weight
received by v from the fractional assignments {w j } at levels j > i is ∑ j>i Wv (w j ). Thus, we get:
Total weight received by v from all the structures for levels j > i is at most

∑ brj (v) + ∑ Wv (w j ).
j>i

(211)

j>i

Now, we focus on the weights received by v from the structures at levels i. Here, we need to consider two
possible cases, depending on the value of ℓ(v) = i.
• Case 1. ℓ(v) = i ∈ {2, . . . , K}.
In this case, the total weight received by v from the structures at levels i is given by Wv (wi ) +Wv (wri ).
Since wi is a fractional b-matching with respect to the capacities {bi (x)}, we have Wv (wi ) ≤ bi (v).

86

Since wri is a fractional b-matching with respect to the capacities {bri (x)}, we have Wv (wri ) ≤ bri (v).
Thus, we get: Wv (wi ) +Wv (wri ) ≤ bi (v) + bri (v). Now, suppose we can prove that:
(bi (v) + bri (v)) + ∑ brj (v) + ∑ Wv (w j ) ≤ 1.
j>i

(212)

j>i

Then equations 211 and 212 will together have the following implication: the total weight received
by v from all the structures for levels j ≥ i is at most one. Since v receives zero weight from all
the structures for levels j < i, it will follow that Wv (w + w∗1 + wr ). Thus, Theorem 9.4 follows from
equation 212, which is shown in Lemma 9.30.
• Case 2. ℓ(v) = i = 1.
In this case, the total weight received by v from the structures at level i = 1 is given by Wv (w∗1 ). Since
w∗1 is a fractional b-matching with respect to the capacities {b∗1 (x)}, we have Wv (w∗1 ) ≤ b∗1 (v). Now,
suppose we can prove that:
K

K

j=2

j=2

b∗1 (v) + ∑ br1 (v) + ∑ Wv (w j ) ≤ 1.

(213)

Then equations 211 and 213 will together have the following implication: the total weight received
by v from all the structures for levels j ∈ {1, . . . , K} is at most one. Thus, Theorem 9.4 follows from
equation 213, which is shown in Lemma 9.31.
The rest of this section is organized as follows.
• In Section 9.7.1 we prove Lemma 9.29.
• In Section 9.7.2 we prove Lemma 9.30.
• In Section 9.7.3 we prove Lemma 9.31.
• Finally, in Section 9.7.4 we apply Lemmas 9.29, 9.30 and 9.31 to prove Theorem 9.4.
Lemma 9.29. Consider any node v ∈ V at level ℓ(v) = i ∈ {1, . . . , K}. We have:
(
K
0
if si (v) = ∞;
∑ brj (v) ≤ 10K−si (v)+1 · δ else if s (v) ∈ {i + 1, . . . , K}.
i
j=i+1
Lemma 9.30. Consider any node v ∈ V at level ℓ(v) = i ∈ {2, . . . , K}. We have:
bi (v) + bri (v) ≤ 1 −

K

∑

j=i+1

brj (v) −

K

∑

Wv (w j ).

j=i+1

Lemma 9.31. Consider any node v ∈ V at level ℓ(v) = 1. We have:
K

K

j=2

j=2

b∗1 (v) ≤ 1 − ∑ brj (v) − ∑ Wv (w j ).
9.7.1

Proof of Lemma 9.29

We consider two possible cases, depending on equation 172.
• Case 1. si (v) = ∞.
Since ℓ(v) = i, equation 170 and Definitions 9.6, 9.19 imply that v ∈ Z j−1 = Z j \ T j for all j ∈ {i +
1, . . . , K}. Thus, we infer that:
v∈
/ T j for all j ∈ {i + 1, . . . , K}.

87

(214)

Since si (v) = ∞, by equation 172 we have v ∈
/ S j for all j ∈ {i + 1, . . . , K}. This observation, along
with equation 214, implies that:
v∈
/ S j ∪ T j for all j ∈ {i + 1, . . . , K}.

(215)

Equation 215 and Definition 9.13 imply that:
brj (v) = 0 for all j ∈ {i + 1, . . . , K}.

(216)

The lemma follows from summing equation 216 over all j ∈ {i + 1, . . . , K}.
• Case 2. si (v) ∈ {i + 1, . . . , K}.
Let si (v) = k for some k ∈ {i + 1, . . . , K}. Note that k is the minimum index in {i + 1, . . . , K} for which
v ∈ Sk . Thus, we get:
v∈
/ S j for all j ∈ {i + 1, . . . , k − 1}.
(217)
Since ℓ(v) = i, equation 170 and Definitions 9.6, 9.19 imply that v ∈ Z j−1 = Z j \ T j for all j ∈ {i +
1, . . . , K}. Thus, similar to Case 1, we infer that:
v∈
/ T j for all j ∈ {i + 1, . . . , K}.

(218)

Equations 217 and 218 imply that:
v∈
/ S j ∪ T j for all j ∈ {i + 1, . . . , k − 1}.
Using the above inequality in conjunction with Definition 9.13, we conclude that:
brj (v) = 0 for all j ∈ {i + 1, . . . , k − 1}.

(219)

/ T j for all j ∈ {k, . . . , K}. Thus,
Now, we focus on the interval [k, K]. From equation 218, we get v ∈
Definition 9.13 implies that brj (v) ∈ {0, 8 · 10K− j · δ } for all j ∈ {k, . . . , K}. Thus, we get:
brj (v) ≤ 8 · 10K− j · δ for all j ∈ {k, . . . , K}.

(220)

Adding equations 219 and 220 we get:

∑

j=i+1

K

k−1

K

∑

brj (v) =

j=i+1

brj (v) + ∑ brj (v)
j=k

K

≤ 0 + ∑ 8 · 10K− j · δ
j=k

K−k+1

≤ 10

·δ

K−si (v)+1

= 10

(221)

This concludes the proof of the lemma in this case.
9.7.2

Proof of Lemma 9.30

Since ℓ(v) = i ≥ 2, Observation 9.25 implies that v ∈ Ti . We now consider two possible cases, depending on
the value of si (v).

88

• Case 1. si (v) = ∞.
In this case, since v ∈ Ti , Definition 9.13 states that:

bri (v) = δ

(222)

Further, Definition 9.7 states that:
bi (v) = 1 − δ −

K

∑

Wv (w j )

(223)

j=i+1

Invariant 9.10 states that:
Wv (w j ) ≥ Wv (w j ) for all j ∈ {i, . . . , K}

(224)

From equations 223 and 224, we get:
bi (v) ≤ 1 − δ −

K

∑

Wv (w j )

(225)

j=i+1

Finally, Lemma 9.29 states that:
K

∑

j=i+1

brj (v) ≤ 0

(226)

From equations 222, 225 and 226, we get:
K

K

bi (v) + bri (v) ≤ 1 −

∑

j=i+1

brj (v) −

∑

Wv (w j ).

j=i+1

This concludes the proof of the lemma in this case.
• Case 2. si (v) ∈ {i + 1, . . . , K}.
In this case, since v ∈ Ti , Definition 9.13 states that:

bri (v) = 4 · 10(K−si (v)+1) · δ

(227)

Further, Definition 9.7 states that:
bi (v) = 1 − 5 · 10(K−si (v)+1) · δ −

K

∑

Wv (w j )

(228)

j=i+1

Invariant 9.10 states that:
Wv (w j ) ≥ Wv (w j ) for all j ∈ {i, . . . , K}.

(229)

From equations 228 and 229, we get:
bi (v) ≤ 1 − 5 · 10(K−si (v)+1) · δ −

K

∑

Wv (w j )

(230)

j=i+1

Finally, since si (v) ∈ {i + 1, . . . , K}, Lemma 9.29 implies that:
K

∑

j=i+1

brj (v) ≤ 10(K−si (v)+1) · δ

(231)

From equations 227, 230 and 231, we get:
bi (v) + bri (v) ≤ 1 −

K

∑

j=i+1

This concludes the proof of the lemma in this case.
89

brj (v) −

K

∑

j=i+1

Wv (w j ).

9.7.3

Proof of Lemma 9.31

We consider two possible cases, depending on the value of s1 (v).
• Case 1. s1 (v) = ∞.
In this case, Lemma 9.29 states that:
K

∑ brj (v) ≤ 0

(232)

j=2

Definition 9.20 states that:

K

b∗1 (v) = 1 − ∑ Wv (w j )

(233)

Wv (w j ) ≥ Wv (w j ) for all j ∈ {2, . . . , K}.

(234)

j=2

Invariant 9.10 states that:
From equations 233 and 234, we get:
K

b∗1 (v) ≤ 1 − ∑ Wv (w j )

(235)

j=2

From equations 232 and 235, we get:
K

K

j=2

j=2

b∗1 (v) ≤ 1 − ∑ brj (v) − ∑ Wv (w j ).
This concludes the proof of the lemma in this case.
• Case 2. s1 (v) ∈ {2, . . . , K}.
In this case, Lemma 9.29 implies that
K

∑ brj (v) ≤ 10(K−s (v)+1) · δ
1

(236)

j=2

Definition 9.20 states that:
K

b∗1 (v) = 1 − 10(K−s1 (v)+1) · δ − ∑ Wv (w j )

(237)

Wv (w j ) ≥ Wv (w j ) for all j ∈ {2, . . . , K}.

(238)

j=2

Invariant 9.10 states that:
From equations 237 and 238, we get:
K

b∗1 (v) ≤ 1 − 10(K−s1 (v)+1) · δ − ∑ Wv (w j )
j=2

From equations 236 and 239, we get:
K

K

j=2

j=2

b∗1 (v) ≤ 1 − ∑ brj (v) − ∑ Wv (w j ).
This concludes the proof of the lemma in this case.

90

(239)

9.7.4

Proof of Theorem 9.4

Fix any node v ∈ V . We will show that Wv (w + w∗1 + wr ) ≤ 1. This will imply that (w + w∗1 + wr ) is a
fractional matching in the graph G = (V, E). We consider two possible cases, depending on the level of v.
• ℓ(v) = i ∈ {2, . . . , K}.
In this case, applying Lemma 9.30, we get:
K

bi (v) +

∑

j=i+1

K

Wv (w j ) + ∑ brj (v) ≤ 1

(240)

j=i

Invariant 9.9 states that wi is a fractional b-matching with respect to the node-capacities {bi (x)}.
Hence, we get:
Wv (wi ) ≤ bi (v)
(241)
Invariant 9.14 states that for all j ≥ i, wrj is a fractional b-matching with respect to the node-capacities
{brj (x)}. Hence, we get:
Wv (wrj ) ≤ brj (v) for all j ∈ {i, . . . , K}.
(242)
From equations 240, 241 and 242, we get:
K

K

j=i

j=i

∑ Wv (w j ) + ∑ Wv (wrj ) ≤ 1

(243)

Since ℓ(v) = i ∈ {2, . . . , K}, we have v ∈
/ Z j for all j ∈ {1, . . . , i − 1}. Thus, we conclude that:
Wv (w j ) = Wv (wrj ) = 0 for all j ∈ {2, . . . , i − 1}; and Wv (w∗1 ) = 0.

(244)

From equations 243 and 244, we get:
Wv (w + w∗1 + wr ) = Wv (w∗1 ) +Wv (w) +Wv (wr )
i−1

 K
= Wv (w∗1 ) + ∑ Wv (w j ) +Wv (wrj ) + ∑ Wv (w j ) +Wv (wrj )
j=i

j=2

≤ 0+0+1
= 1

This concludes the proof of the lemma in this case.
• ℓ(v) = 1.
In this case, applying Lemma 9.31, we get:
K

K

j=2

j=2

b∗1 (v) + ∑ Wv (w j ) + ∑ brj (v) ≤ 1

(245)

Invariant 9.21 states that w∗1 is a fractional b-matching with respect to the capacities {b∗1 (x)}. Hence,
we get:
Wv (w∗1 ) ≤ b∗1 (v)
(246)
Invariant 9.14 states that for all j ∈ {2, . . . , K}, wrj is a fractional b-matching with respect to the
capacities {brj (x)}. Hence, we get:
Wv (wrj ) ≤ brj (v) for all j ∈ {2, . . . , K}.
91

(247)

From equations 245, 246 and 247, we get:
Wv (w + w∗1 + wr ) = Wv (w∗1 ) +Wv (w) +Wv (wr )
K

K

= Wv (w∗1 ) + ∑ Wv (w j ) + ∑ Wv (wr )
j=2

j=2

K

K

j=2

j=2

≤ b∗1 (v) + ∑ Wv (w j ) + ∑ brj (v)
≤ 1.
This concludes the proof of the lemma in this case.
9.8

Approximation Guarantee of the Solution

We want to show that the size of the fractional assignment (w + w∗1 + wr ) is strictly within a factor of two of
the maximum cardinality matching in the input graph G = (V, E). So we devote this section to the proof of
Theorem 9.5. We start by recalling some notations that will be used throughout the rest of this section.
• Given any subset of edges E ′ ⊆ E, we let V (E ′ ) = {u ∈ V : degE ′ (v) > 0} be the set of endpoints of
the edges in E ′ . Thus, for a matching M ⊆ E, the set of matched nodes is given by V (M).
• Consider any level i ∈ {2, . . . , K}, and recall that Invariant 9.10 introduces the concept of a “discretized” node-weight Wv (wi ) for all v ∈ Zi . We “extend” this definition as follows. If a node v
belongs to a level ℓ(v) = i ∈ {2, . . . , K}, then v ∈
/ Z j for all j ∈ {1, . . . , i − 1}. In this case, we set
Wv (w j ) = Wv (w j ) = 0 for all j ∈ {1, . . . , i − 1}. Further, for every node u ∈ V , we define Wu (w) =
∑Kj=2 Wu (w j ).
Instead of directly trying to bound the size of the fractional assignment (w + w∗1 + wr ), we first prove the
following theorem. Fix any matching M ∗ ⊆ E in the input graph G. The theorem below upper bounds the
size of this matching in terms of the total discretized node-weight received by the matched nodes, plus the
total weight received by all the nodes from w∗1 and wr . The proof of Theorem 9.32 appears in Section 9.8.1.
Theorem 9.32. Consider any matching M ∗ ⊆ E in the input graph G = (V, E). Then we have:

∑

v∈V (M∗ )

Wv (w) + ∑ (Wv (w∗1 ) +Wv (wr )) ≥ (1 + ε )−1 · (1 + δ /3) · |M ∗ |.
v∈V

To continue with the proof of Theorem 9.5, we need the observation that the discretized weight of a
node is very close to its normal weight. This intuition is quantified in the following claim.
Claim 9.33. For every node v ∈ V , we have Wv (w) ≥ Wv (w) − 2K ε .
Proof. Invariant 9.10 implies that:
Wv (w j ) ≥ Wv (w j ) − 2ε for all j ∈ {2, . . . , K}.
Summing the above inequality over all levels j ∈ {2, . . . , K}, we get:
K

Wv (w) =

∑ Wv (w j )
j=2
K

≥

∑ (Wv (w j ) − 2ε )
j=2
K

=

∑ Wv(w j ) − 2ε (K − 1)
j=2

= Wv (w) − 2ε (K − 1) ≥ Wv (w) − 2ε K.

92

We can now lower bound the total weight received by all the nodes under (w + w∗1 + wr ) as follows.
Claim 9.34. Consider any matching M ∗ ⊆ E in the input graph G = (V, E). We have:


(1 + δ /3)
∗
r
∑ Wv (w + w1 + w ) ≥ (1 + ε ) − 4K ε · |M ∗|.
v∈V
Proof. We infer that:

∑ Wv (w + w∗1 + wr )

=

v∈V

∑ Wv (w) + ∑ Wv (w∗1) + ∑ Wv (wr )

v∈V

≥
≥
=

v∈V
∗
Wv (w1 ) +

∑

Wv (w) + ∑

∑

(Wv (w) − 2ε K) + ∑ Wv (w∗1 ) + ∑ Wv (wr )

(249)

∑

Wv (w) − 2 · |M ∗ | · (2ε K) + ∑ Wv (w∗1 ) + ∑ Wv (wr )

(250)

v∈V (M∗ )
v∈V (M∗ )
v∈V (M∗ )

=

v∈V

∑

v∈V

∑ Wv (wr )

v∈V

v∈V (M∗ )

(248)

v∈V

v∈V

v∈V

v∈V

!

Wv (w) + ∑ Wv (w∗1 ) + ∑ Wv (wr ) − (4ε K) · |M ∗ |
v∈V

v∈V

(1 + δ /3)
· |M ∗ | − (4ε K) · |M ∗ |
(1 + ε )


(1 + δ /3)
− 4ε K · |M ∗ |
=
(1 + ε )

≥

(251)
(252)

Equation 248 holds since V (M ∗ ) ⊆ V . Equation 249 follows from Claim 9.33. Equation 250 holds since
|V (M ∗ )| = 2 · |M ∗ | as no two edges in M ∗ share a common endpoint. Equation 251 follows from Theorem 9.32. Finally, the claim follows from equation 252.
We now use Claim 9.34 to lower bound the size of the fractional assignment (w + w∗1 + wr ) by relating
the sum of the node-weights with the sum of the edge-weights. Specifically, we note that each edge e ∈ E
contributes 2 · (w(e) + w∗1 (e) + wr (e)) towards the sum ∑v∈V Wv (w + w∗1 + wr ). Hence, we infer that the sum
of the edge-weights under (w + w∗1 + wr ) is exactly (1/2) · ∑v∈V Wv (w + w∗1 + wr ).

∑ (w(e) + w∗1(e) + wr (e)) = (1/2) · ∑ Wv (w + w∗1 + wr )

e∈E

(253)

v∈V

Accordingly, Claim 9.34 and equation 253 imply that the size of the fractional assignment (w + w∗1 + wr )
is at least f times the size of any matching M ∗ ⊆ E in G = (V, E), where:


(1 + δ /3)
− 4ε K .
f = (1/2) ·
(1 + ε )
Setting M ∗ to be the maximum cardinality matching in G, we derive the proof of Theorem 9.5. To summarize, in order to prove Theorem 9.5, it suffices to prove Theorem 9.32. This is done in Section 9.8.1.
9.8.1

Proof of Theorem 9.32

Define the “level” of an edge to be the maximum level among its endpoints, i.e., we have:
ℓ(u, v) = max (ℓ(u), ℓ(v)) for every edge (u, v) ∈ E.

(254)

Now, for every i ∈ {1, . . . , K}, let Mi∗ = {(u, v) ∈ M ∗ : ℓ(u, v) = i} denote the subset of those edges in M ∗
that are at level i. It is easy to check that the subsets M1∗ , . . . , MK∗ partition the edge-set M ∗ .
93

By Observation 9.25, if a node v ∈ V is at level ℓ(v) = i ∈ {2, . . . , K}, then we also have v ∈ Ti . Consider
any edge (x, y) ∈ Mi∗ , where i ≥ 2. Without any loss of generality, suppose that ℓ(x) = i and hence x ∈ Ti .
Consider the other endpoint y of this matched edge (x, y). By definition, we have ℓ(y) ≤ i, which means
that y ∈ Zi . Now, Invariant 9.12 states that the set Zi is partitioned into subsets Ti , Bi and Si . Thus, there are
two mutually exclusive cases to consider: (1) either y ∈ Ti ∪ Bi or (2) y ∈ Si . Accordingly, we partition the
edge-set Mi∗ into two subsets – Mi′ and Mi′′ – as defined below.
1. Mi′ = {(u, v) ∈ Mi∗ : u ∈ Ti and v ∈ Ti ∪ Bi }. This consists of the set of matched edges in Mi∗ with one
endpoint in Ti and the other endpoint in Ti ∪ Bi .
2. Mi′′ = {(u, v) ∈ Mi∗ : u ∈ Ti and v ∈ Si }. This consists of the set of matched edges in Mi∗ with one
endpoint in Ti and the other endpoint in Si .
To summarize, the set of edges in M ∗ is partitioned into the following subsets:
M1∗ , {M2′ , M2′′ }, {M3′ , M3′′ }, . . . , {MK′ , MK′′ }.
We now define the matchings M ′ and M ′′ as follows.
M′ =

K
[

Mi′ and M ′′ =

i=2

K
[

Mi′′

(255)

i=2

Hence, the set of matched edges M ∗ is partitioned by the subsets M1∗ , M ′ and M ′′ . We will now consider the
matchings M1∗ , M ′ and M ′′ one after the other, and upper bound their sizes in terms of the node-weights.
Lemma 9.35 helps us bound the size of the matching M1∗ . Note that each edge (u, v) ∈ M1∗ has ℓ(u, v) =
max(ℓ(u), ℓ(v)) = 1, and hence we must have ℓ(u) = ℓ(v) = 1. In other words, every edge in M1∗ has both of
its endpoints in level one. Since E1 is the set of edges connecting the nodes at level one (see Definition 9.19),
we infer that M1∗ ⊆ E1 . We will later apply Lemma 9.35 by setting M = M1∗ . The proof of Lemma 9.35
appears in Section 9.8.2.
Lemma 9.35. Consider any matching M ⊆ E1 in the subgraph G1 = (Z1 , E1 ). Then we have:

∑

Wv (w) +

∑ Wv (w∗1) ≥ (1 + ε )−1 · (1 + δ ) · |M|.

v∈Z1

v∈V (M)

Lemma 9.36 helps us bound the size of the matching Mi′ , for all i ∈ {2, . . . , K}. Note that by definition
every edge (u, v) ∈ Mi′ has one endpoint u ∈ Ti and the other endpoint v ∈ Ti ∪ Bi . Thus, we will later apply
Lemma 9.36 by setting M = Mi′ . The proof of Lemma 9.36 appears in Section 9.8.3.
Lemma 9.36. Consider any level i ∈ {2, . . . , K}. Let M ⊆ Ei be a matching in the subgraph Gi = (Zi , Ei )
such that every edge (u, v) ∈ M has one endpoint u ∈ Ti and the other endpoint v ∈ Ti ∪ Bi. Then we have:

∑

u∈V (M)

Wu (w) ≥ (1 + 3δ ) · |M|.

Lemma 9.37 helps us bound the size of the matching Mi′′ , for all i ∈ {2, . . . , K}. Note that by definition
every edge (u, v) ∈ Mi′′ has one endpoint u ∈ Ti and the other endpoint v ∈ Si . Thus, we can apply Lemma 9.37
by setting M = Mi′′ . The proof of Lemma 9.37 appears in Section 9.8.4.
Lemma 9.37. Consider any level i ∈ {2, . . . , K}. Let M ⊆ Ei be a matching in the subgraph Gi = (Zi , Ei )
such that every edge (u, v) ∈ M has one endpoint u ∈ Ti and the other endpoint v ∈ Si . We have:

∑

u∈V (M)

Wu (w) +

∑ Wv (wri ) ≥ (1 + δ /3) · |M|.

v∈Zi

94

To proceed with the proof of Theorem 9.32, we first apply Lemma 9.35 to get the following simple claim.
This claim upper bounds the size of M1∗ in terms of the total discretized weight received by its endpoints,
plus the total weight received from w∗1 by the nodes in V .
Claim 9.38. We have:

∑

v∈V (M1∗ )

Wv (w) + ∑ Wv (w∗1 ) ≥ (1 + ε )−1 · (1 + δ ) · |M1∗ |.
v∈V

Proof. Since M1∗ is a matching in G1 = (Z1 , E1 ), from Lemma 9.35, we get:

∑

∑ Wv (w∗1) ≥ (1 + ε )−1 · (1 + δ ) · |M1∗|.

Wv (w) +

v∈V (M1∗ )

v∈Z1

Since Z1 ⊆ V , the claim follows from the above inequality.
Recall that the edge-set M ′ is partitioned into subsets M2′ , . . . , MK′ . Thus, we can upper bound |M ′ | by
applying Lemma 9.36 with M = Mi′ , for i ∈ {2, . . . , K}, and summing over the resulting inequalities. This
is done in the claim below. This claim upper bounds the size of M ′ in terms of the total discretized weight
received by its endpoints.
Claim 9.39. We have:

∑

v∈V (M′ )

Wv (w) ≥ (1 + 3δ ) · |M ′ |.

Proof. For every i ∈ {2, . . . , K}, we can apply Lemma 9.36 on the matching Mi′ to get:

∑

v∈V (Mi′ )

Wv (w) ≥ (1 + 3δ ) · |Mi′ |

(256)

Now, note that the set of edges M ′ has been partitioned into subsets M2′ , . . . , MK′ . Hence, summing equation 256 over all levels 2 ≤ i ≤ K, we get:

∑

K

Wv (w) =

∑ ∑

Wv (w)

i=2 v∈V (Mi′ )

v∈V (M′ )

K

≥

∑ (1 + 3δ ) · |Mi′|

i=2

= (1 + 3δ ) · |M ′ |
Recall that the edge-set M ′′ is partitioned into subsets M2′′ , . . . , MK′′ . Further, we have wr = ∑Kj=2 wrj . Thus,
we can apply Lemma 9.37 with M = Mi′′ , for i ∈ {2, . . . , K}, and sum over the resulting inequalities to get
the following claim. This claim upper bounds the size of M ′′ in terms of the total discretized weight received
by its endpoints, plus the total weight received from wr by the nodes in V .
Claim 9.40. We have:

∑

v∈V (M′′ )

Wv (w) + ∑ Wv (wr ) ≥ (1 + δ /3) · |M ′′ |.
v∈V

95

Proof. For every i ∈ {2, . . . , K}, since Mi′′ is a matching in Gi = (Zi , Ei ) such that each edge (u, v) ∈ Mi′′ has
one endpoint in Ti and the other endpoint in Si , we can apply Lemma 9.37 on Mi′′ to get:

∑

Wv (w) +

v∈V (Mi′′ )

∑ Wv (wri ) ≥ (1 + δ /3) · |Mi′′ |.

v∈Zi

Since Zi ⊆ V , we have ∑v∈V Wv (wri ) ≥ ∑v∈Zi Wv (wri ). Hence, the above inequality implies that:

∑

v∈V (Mi′′ )

Wv (w) + ∑ Wv (wri ) ≥ (1 + δ /3) · |Mi′′ | for all i ∈ {2, . . . , K}.

(257)

v∈V

Since the set of edges M ′′ is partitioned into subsets M2′′ , . . . , MK′′ , and since wr = ∑Ki=2 wri , we get:

∑

v∈V (M′′ )

Wv (w) + ∑ Wv (wr ) =
v∈V

K

∑ ∑

i=2 v∈V (Mi′′ )
K

=

∑

i=2

∑

Wv (w) + ∑

K

∑ Wv (wri )

v∈V i=2

v∈V (Mi′′ )

!

Wv (w) + ∑ Wv (wri )
v∈V

K

≥

∑ (1 + δ /3) · |Mi′′ |

(258)

i=2

= (1 + δ /3) · |M ′′ |.
Equation 258 follows from equation 257. This concludes the proof of the claim.
Since the set of matched edges M ∗ is partitioned into subsets M1∗ , M ′ and M ′′ , we can now add the
inequalities in Claims 9.38, 9.39 and 9.40 to derive Theorem 9.32. The primary observation is that the sum
in the left hand side of Theorem 9.32 upper bounds the sum of the left hand sides of the inequalities stated
in these three claims. This holds since no two edges in M ∗ share a common endpoint, and, accordingly, no
amount of node-weight is counted twice if we sum the left hand sides of these claims. To bound the sum of
the right hand sides of these claims, we use the fact that |M ∗ | = |M1∗ | + |M ′ | + |M ′′ |. Specifically, we get:

∑

Wv (w) + ∑ (Wv (w∗1 ) +Wv (wr ))

∑

Wv (w) + ∑ Wv (w∗1 ) + ∑ Wv (wr )

v∈V (M)

=

v∈V (M)



= 

v∈V

∑

v∈V (M1∗ )



= 

∑

v∈V (M1∗ )

v∈V

Wv (w) +

v∈V

∑

Wv (w) +

v∈V (M′′ )

v∈V (M′ )

Wv (w) + ∑

v∈V

∑



Wv (w∗1 ) +

∑



Wv (w) + ∑ Wv (w∗1 ) + ∑ Wv (wr )

v∈V (M′′ )

v∈V

≥ (1 + ε )−1 · (1 + δ ) · |M1∗ | + (1 + δ /3) · |M ′′ | + (1 + 3δ ) · |M ′|

≥ (1 + ε )−1 · (1 + δ /3) · |M1∗ | + |M ′′ | + |M ′ |
= (1 + ε )−1 · (1 + δ /3) · |M ∗ |

!

Wv (w) + ∑ Wv (w ) +
r

v∈V

(259)

v∈V

∑

Wv (w)

v∈V (M′ )

(260)
(261)

Equation 259 holds since the edges in the matching M ∗ are partitioned into subsets M1∗ , M ′ , M ′′ , and
hence, the node-set V (M ∗ ) is also partitioned into subsets V (M1∗ ),V (M ′ ),V (M ′′ ). Equation 260 follows
from Claims 9.38, 9.39 and 9.40. Finally, Theorem 9.32 follows from equation 261.
96

9.8.2

Proof of Lemma 9.35

We will carefully construct a fractional b-matching w′1 in the graph G1 = (Z1 , E1 ) with respect to the nodecapacities {b∗1 (u)}, u ∈ Z1 . Then we will show that:

∑

Wv (w) +

∑ Wv (w′1) ≥ (1 + δ ) · |M|

(262)

v∈Z1

v∈V (M)

By Invariant 9.21, we know that w∗1 is a fractional b-matching in the graph G1 with respect to the nodecapacities {b∗1 (u)}, u ∈ Z1 . Further, the size of w∗1 is a (1 + ε )-approximation to the size of the maximum
fractional b-matching with respect to the same node-capacities. Thus, we have:

∑ Wv (w∗1) ≥ (1 + ε )−1 · ∑ Wv (w′1)

(263)

v∈Z1

v∈Z1

From equations 262 and 263, we can derive that:

∑

Wv (w) +

v∈V (M)

∑ Wv (w∗1)

v∈Z1

≥

∑

v∈V (M)

Wv (w) + (1 + ε )−1 ·

∑ Wv (w′1)

v∈Z1

≥ (1 + ε )−1 · (1 + δ ) · |M|
Thus, the lemma follows from equations 262 and 263.
It remains to prove equation 262. Towards this end, we first define the fractional assignment w′1 below.
(
min(b∗1 (u), b∗1 (v)) for all edges (u, v) ∈ M;
′
(264)
w1 (u, v) =
0
for all edges (u, v) ∈ E1 \ M.
Since M ⊆ E1 and since no two edges in M share a common endpoint, w′1 as defined above forms a fractional
b-matching in the graph G1 = (Z1 , E1 ) with respect to the node-capacities {b∗1 (u)}, u ∈ Z1 . We will show
that:
Wx (w) +Wx (w′1 ) + Wy (w) +Wy (w′1 ) ≥ (1 + δ ) for every edge (x, y) ∈ M.
(265)
By equation 264 we have Wv (w′1 ) = 0 for all nodes v ∈ Z1 \V (M). Hence, equation 265 implies that:

∑ Wv(w) + ∑ Wv (w′1) ≥ ∑ Wx (w) +Wx(w′1) + Wy(w) +Wy (w′1) ≥ (1 + δ ) · |M|
v∈V (M)

v∈Z1

(x,y)∈M

Hence, equation 262 follows from equation 265. We thus focus on showing that equation 265 holds.
Proof of equation 265.
Fix any edge (x, y) ∈ M, and suppose that b∗1 (x) ≤ b∗1 (y). Then equation 264 implies that:
Wx (w′1 ) = Wy (w′1 ) = w′1 (x, y) = b∗1 (x)

(266)

Wx (w) + 2 · b∗1 (x) ≥ 1 + δ

(267)

We claim that:
From equations 266 and 267, we can make the following deductions.
Wx (w) +Wx (w′1 ) + Wy (w) +Wy (w′1 ) ≥ Wx (w) +Wx (w′1 ) +Wy (w′1 )
= Wx (w) + 2 · b∗1 (x)
≥ 1+δ

Thus, in order to prove equation 265, it suffices to prove equation 267. For the rest of this section, we focus
on proving equation 267. There are three possible cases to consider, depending on the value of s1 (x).
97

• Case 1. s1 (x) = ∞.
Since s1 (x) = ∞, we have x ∈
/ Si for all i ∈ {2, . . . , K}. In particular, we have s2 (x) = ∞. Hence,
Definition 9.7 implies that:
K

b2 (x) = 1 − δ − ∑ Wx (w j )

(268)

Wx (w2 ) ≤ b2 (x)

(269)

j=3

Invariant 9.10 implies that:
From equations 268 and 269, we get:
K

Wx (w2 ) ≤ 1 − δ − ∑ Wx (w j )

(270)

j=3

Rearranging the terms in the above inequality, we get:
K

∑ Wx (w j ) ≤ 1 − δ

(271)

j=2

Since s1 (x) = ∞, Definition 9.20 imply that:
K

b∗1 (x) = 1 − ∑ Wx (w j )

(272)

b∗1 (x) ≥ δ

(273)

j=2

From equations 271 and 272, we get:
From equations 272 and 273, we get:
K

2 · b∗1 (x) + ∑ Wx (w j ) ≥ (1 + δ ).

(274)

j=2

Equation 267 follows from equation 274 and the fact that Wx (w) = ∑Kj=2 Wx (w j ).
• Case 2. s1 (x) ∈ {3, . . . , K}.
Since s1 (x) ∈ {3, . . . , K}, we infer that s2 (x) = s1 (x) (see equation 172). Hence, Definition 9.7 implies
that:
K

b2 (x) = 1 − 5 · 10(K−s1 (x)+1) · δ − ∑ Wx (w j )

(275)

Wx (w2 ) ≤ b2 (x)

(276)

j=3

Invariant 9.10 states that:
From equations 275 and 276, we get:
K

Wx (w2 ) ≤ 1 − 5 · 10(K−s1 (x)+1) · δ − ∑ Wx (w j )

(277)

j=3

Rearranging the terms in the above inequality, and noting that Wx (w) = ∑Kj=2 Wx (w j ), we get:
Wx (w) ≤ 1 − 5 · 10(K−s1 (x)+1) · δ
98

(278)

Since s1 (x) ∈ {3, . . . , K}, Definition 9.20 imply that:
b∗1 (x) = 1 − 10(K−s1 (x)+1) · δ − Wx (w)

(279)

From equations 278 and 279, we infer that:
b∗1 (x) ≥ 4 · 10(K−s1 (x)+1) · δ

(280)

From equations 279 and 280, we get:
Wx (w) + 2 · b∗1 (x) = (Wx (w) + b∗1 (x)) + b∗1 (x)


=
1 − 10(K−s1 (x)+1) · δ + b∗1 (x)


≥
1 − 10(K−s1 (x)+1) · δ + 4 · 10(K−s1 (x)+1) · δ
= 1 + 3 · 10(K−s1 (x)+1) · δ
≥ (1 + δ ).

Thus, equation 267 holds in this case.
• Case 3. s1 (x) = 2.
Since s1 (x) = 2, we have x ∈ S2 . Further, since Wx (w) = ∑Kj=2 Wx (w j ), Definition 9.11 gives:
Wx (w) ≤ 8 · 10(K−2) · δ

(281)

On the other hand, since Wx (w) = ∑Kj=2 Wx (w j ) and s1 (x) = 2, Definition 9.20 states that:
b∗1 (x) = 1 − 10(K−1) · δ − Wx (w)

(282)

From equations 281 and 282, we get:
2 · b∗1 (x) = 2 − 2 · 10(K−1) · δ − 2 · Wx (w)

≥ 2 − 2 · 10(K−1) · δ − 16 · 10(K−2) · δ
= 2 − 36 · 10(K−2) · δ
≥ 1+δ

(283)

Equation 283 holds due to equation 163, which implies that δ < 1/(1 + 36 · 10(K−2) ). From equation 283, we get:
Wx (w) + 2 · b∗1 (x) ≥ 2 · b∗1 (x) ≥ (1 + δ ).
Thus, equation 267 holds in this case.
9.8.3

Proof of Lemma 9.36

Consider any edge (u, v) ∈ M with v ∈ Ti and u ∈ Ti ∪ Bi. Since v ∈ Ti , Definition 9.11 implies that:
Wv (wi ) = bi (v)

(284)

Next, since i ∈ {2, . . . , K}, and either si (v) = ∞ or i + 1 ≤ si (v) ≤ K, Definition 9.7 implies that:
bi (v) ≥ 1 − 5 · 10(K−i) · δ −

99

K

∑

j=i+1

Wv (w j )

(285)

From equations 284 and 285, we infer that:
Wv (wi ) ≥ 1 − 5 · 10(K−i) · δ −

K

∑

Wv (w j ).

j=i+1

Rearranging the terms in the above inequality, we get:
K

Wv (w) ≥ ∑ Wv (w j ) ≥ 1 − 5 · 10(K−i) · δ

(286)

j=i

Since u ∈ Ti ∪ Bi, and since the node-set Zi is partitioned by the sets Ti , Bi , Si (see Invariant 9.12), we infer
that u ∈
/ Si . Hence, applying Definition 9.11, we get:
K

Wu (w) ≥ ∑ Wu (w j ) > 8 · 10(K−i) · δ

(287)

j=i

Adding equations 286 and 287, we get:
Wu (w) + Wv (w) ≥ 1 + 3 · 10(K−i) · δ ≥ 1 + 3δ

(288)

Summing equation 288 over all the edges in the matching M, we get:

∑

Wx (w) =

∑

(x,y)∈M

x∈V (M)

(Wx (w) + Wy (w)) ≥ (1 + 3δ ) · |M|.

This concludes the proof of the lemma.
9.8.4

Proof of Lemma 9.37

Set λ = 4 · 10K−i · δ . For every node v ∈ Ti , either si (v) = ∞ or si (v) ∈ {i + 1, . . . , K}. Thus, Definition 9.13
states that for every node v ∈ Ti , either bri (v) = δ ≤ λ or bri (v) = 4 · 10K−si (v)+1 · δ ≤ λ . We infer that
bri (v) ∈ [0, λ ] for every node v ∈ Ti . In contrast, for every node v ∈ Si , Definition 9.13 states that bri (v) = 2λ .
By Invariant 9.12, the node-sets Ti , Si ⊆ Zi are mutually disjoint. Finally, by Invariant 9.14, the fractional
assignment wri is a maximal fractional b-matching in the residual graph Gri = (Ti ∪ Si , Eir ) with respect to
the capacities {bri (v)}, v ∈ Ti ∪ Si . The residual graph Gri is bipartite since Si ∩ Ti = 0/ and since every edge
e ∈ Eir has one endpoint in Ti and the other endpoint in Si . Further, M is a matching in the graph Gri since Eir
contains all the edges in Ei with one tight and one small endpoints. Thus, Theorem 8.3 implies that:

∑

v∈Ti ∪Si

Wv (wri ) ≥ (4/3) ·

∑

bri (v)

(289)

∑

(290)

v∈Ti ∩V (M)

We can now infer that:

∑

v∈V (M)

Wv (w) +

∑ Wv (wri )

v∈Zi

≥

∑

Wv (w) +

v∈V (M)

≥

∑

v∈V (M)

Wv (w) + (4/3) ·

≥

∑

Wv (w) + (4/3) ·

∑

(Wv (w) + (4/3) · bri (v))

∑

(1 + δ /3)

=

v∈Ti ∪Si

v∈Ti ∩V (M)
v∈Ti ∩V (M)

≥

Wv (wri )

∑

bri (v)

v∈Ti ∩V (M)

∑

(291)

bri (v)

v∈Ti ∩V (M)

(292)

v∈Ti ∩V (M)

= (1 + δ /3) · |M|
100

(293)

Equation 290 holds since Zi ⊇ Ti ∪ Si (see Invariant 9.12). Equation 291 follows from equation 289. Equation 292 follows from Claim 9.41 stated below. Equation 293 holds since every edge in M has exactly one
endpoint in Ti and no two edges in M share a common endpoint. Thus, we have |Ti ∩ V (M)| = |M|. This
leads to the proof of the lemma.
Thus, in order to prove Lemma 9.37, it suffices to prove Claim 9.41. This is done below.
Claim 9.41. For every node v ∈ Ti , we have: Wv (w) + (4/3) · bri (v) ≥ 1 + δ /3.
Proof. We consider two possible cases, depending on the value of si (v).
• Case 1. si (v) = ∞.
In this case, Definition 9.13 states that:
bri (v) = δ

(294)

On the other hand, since v ∈ Ti , Definition 9.11 states that:
Wv (wi ) = bi (v)

(295)

Finally, since v ∈ Zi and si (v) = ∞, Definition 9.7 states that:
bi (v) = 1 − δ −

K

∑

Wv (w j )

(296)

j=i+1

From equations 295 and 296 we get:
Wv (wi ) = 1 − δ −

K

∑

Wv (w j ).

j=i+1

Rearranging the terms in the above inequality, we get:
K

Wv (w) ≥ ∑ Wv (w j ) = 1 − δ

(297)

j=i

From equations 294 and 297, we infer that:
Wv (w) + (4/3) · bri (v) ≥ (1 + δ /3).
This concludes the proof of the claim in this case.
• Case 2. si (v) = k for some k ∈ {i + 1, . . . , K}.
In this case, Definition 9.13 states that:
bri (v) = 4 · 10(K−k+1) · δ

(298)

On the other hand, since v ∈ Ti , Definition 9.11 states that:
Wv (wi ) = bi (v)

(299)

Finally, since v ∈ Zi and si (v) = k ∈ {i + 1, . . . , K}, Definition 9.7 states that:
bi (v) = 1 − 5 · 10(K−k+1) · δ −

101

K

∑

j=i+1

Wv (w j )

(300)

From equations 299 and 300 we get:
Wv (wi ) = 1 − 5 · 10(K−k+1) · δ −

K

∑

Wv (w j ).

j=i+1

Rearranging the terms in the above inequality, we get:
K

∑ Wv (w j ) = 1 − 5 · 10(K−k+1) · δ

(301)

j=i

Since Wv (w) ≥ ∑Kj=i Wv (w j ), equation 301 implies that:
Wv (w) ≥ 1 − 5 · 10(K−k+1) · δ

(302)

From equations 298 and 302 we get:
Wv (w) + (4/3) · bri (v) ≥ 1 + (1/3) · 10(K−k+1) · δ ≥ 1 + (δ /3)

(303)

The last inequality holds since 2 ≤ k ≤ K. The claim follows from equation 303 in this case.

10 The algorithm
In this section, we will present a dynamic algorithm for maintaining a (1 + ε )2 -approximation to the size of
the fractional matching (w + wr + w∗1 ). First, we recall a standard assumption used in dynamic algorithms
literature on the sequence of edge insertions/deletions in the input graph.
Assumption 10.1. The input graph G = (V, E) is empty (i.e., E = 0)
/ in the beginning of the sequence of
edge insertions/deletions.
However, we will make an (apparently) stronger assumption on the input sequence, as stated below.
Assumption 10.2. The input graph G = (V, E) is empty (i.e., E = 0)
/ in the beginning of the sequence of
edge insertions/deletions. Further, the input graph G = (V, E) is also empty (i.e., E = 0)
/ at the end of the
sequence of edge insertions/deletions.
In the theorem below, we show that Assumption 10.2 is without any loss of generality.
Theorem 10.3. Suppose that a dynamic algorithm has an amortized update time of κ (n), where n = |V | is
the number of nodes in the input graph, under Assumption 10.2. Then the same dynamic algorithm has an
amortized update time of O(κ (n)) under Assumption 10.1.
Proof. Consider a dynamic algorithm that has an amortized update time of κ (n) under Assumption 10.2.
Now, consider a sequence of t edge insertions/deletions that satisfy Assumption 10.1. Hence, the graph G is
empty in the beginning of this sequence. Let G(t) = (V, E (t) ) denote the status of the input graph at the end
of this sequence. Note that G(t) need not be empty. Define |E (t) | = m(t) , and note that m(t) ≤ t.
We now delete all the edges from G(t) one after the other. This leads to a new sequence of (t + m(t) )
edge insertions/deletions where the input graph is empty in the end. In other words, the new sequence
satisfies Assumption 10.2. Hence, the total time spent by the algorithm under this new sequence is at most
(t + m(t) )· κ (n) ≤ 2t · κ (n) = O(t · κ (n)). Since the old sequence is a prefix of the new sequence, we infer that
the total time spent by the algorithm under the old sequence is at most the time spent under the new sequence.
Thus, the total time spent under the old sequence (which consisted of only t edge insertions/deletions) is
O(t · κ (n)). So the amortized update time under the old sequence is O(κ (n)). This concludes the proof.
102

Before proceeding any further, we recall the properties derived in Section 9.6, as they will be crucial in
analyzing our algorithm. We also define the phrase “w-structures for a level i ∈ {2, . . . , K}”.
Definition 10.4. Consider any level i ∈ {2, . . . , K}. The phrase “w-structures for level i” refers to: The
subgraph Gi = (Zi , Ei ), the normal-capacities {bi (x)}, x ∈ Zi , the fractional assignment wi with support
Hi ⊆ Ei , and the node-weights {Wx (wi ),Wx (wi )}, x ∈ Zi .
From the invariants in Section 9.2, it is apparent that the w-structures for a level i ∈ {2, . . . , K} depend
only on the w-structures for levels j ∈ {i + 1, . . . , K}. In particular, the w-structures for a level i do not in
any way depend on the residual fractional assignment wr (see equation 171) or the fractional assignment
w∗1 . For the time being, we will focus on designing an algorithm that only maintains the w-structures for
levels {2, . . . , K}. This will immediately give us the size of the fractional assignment w = ∑Kj=2 w j . Later
on we will show how to extend our algorithm to maintain good approximations to the sizes of the fractional
assignments wr and w∗1 as well. The rest of this section is organized as follows.
1. In Section 10.1, we present the data structures that will be used by our algorithm to maintain the
w-structures for levels {2, . . . , K}.
2. In Section 10.2, we show how to update the above data structures after an edge insertion/deletion in
G. This gives us a dynamic algorithm for maintaining the w-structures for levels {2, . . . , K}.
3. In Section 10.2.1, we analyze the amortized update time of our algorithm from Section 10.2. See
Theorem 10.10.
4. In Section 10.4, we show how to maintain the size of the fractional matching w∗1 . See Theorem 10.30.
5. Finally, in Section 10.5, we show how to maintain a (1 + ε )2 -approximation to the size of the residual
fractional matching wr . See Theorem 10.35.
Our main result is summarized in the theorem below.
Theorem 10.5. We can maintain a (1 + ε )2 -approximation to the size of the fractional matching (w + wr +
w∗1 ) in O((10/ε )K+8 · n2/K ) update time.
Proof. The theorem follows if we sum over the update times given in Theorems 10.10, 10.30, 10.35, and
then apply equation 169.
10.1

Data structures

Our algorithm keeps the following data structures.
• The input graph G = (V, E) using adjacency lists.
• For every level i ∈ {2, . . . , K};
– The subgraph Gi = (Zi , Ei ) using adjacency lists.
– For every node v ∈ Zi , the capacity bi (v), and the weights Wv (wi ), Wv (wi ). We “extend” the
capacities {bi (v)} and the node-weights {Wv (wi ),Wv (wi )} in a natural to the input graph G =
(V, E). Thus, for every node v ∈ V \ Zi , we set bi (v) = Wv (wi ) = Wv (wi ) = 0.
– The support Hi = {e ∈ Ei : wi (e)} of the fractional assignment wi using a doubly linked list. We
assume that each edge e ∈ Hi gets a weight wi (e) = 1/di = 1/n(i−1)/K , without explicitly storing
103

these edge-weights anywhere in our data structures.
– The subgraph (Zi , Hi ) using adjacency lists.
– The partition of the node-set Zi into subsets Ti , Bi , Si ⊆ Zi . The sets Ti , Bi , Si are maintained as
doubly linked lists. Given any node v ∈ Zi , the data structure can report in constant time whether
the node is tight (i.e., v ∈ Ti ) or big (i.e., v ∈ Bi ) or small (i.e., v ∈ Si ).
• Whenever a node (resp. an edge) appears in a doubly linked list described above, we store a pointer
from that node (resp. edge) to its position in the linked list. Using these pointers, we can insert (resp.
delete) any element into (resp. from) any list in constant time.
10.2

Handling the insertion/deletion of an edge (u, v) in the input graph G = (V, E)

Suppose that an edge (u, v) is either inserted into or deleted from G. To handle this edge insertion/deletion,
we first update the adjacency lists in G = (V, E). Next, we update the w-structures for the levels in a “top
down” manner, as described in Figure 6. The set L j consists of the subset of nodes x ∈ V whose discretized
weight Wx (w j ) changes its value while fixing the w-structures for level i as per Section 10.2.1.
1.
2.
3.

For i = K to 2;
Set Li ← 0.
/
Call the subroutine FIX-STRUCTURES(i). See Section 10.2.1.
Figure 6

In Section 10.2.1, whenever in set Hi we insert/delete an edge incident upon a node z, we will call the
subroutine UPDATE(i, z) described below. This subroutine updates the value of Wz (wi ) in a lazy manner so
as to ensure that Invariant 9.10 is satisfied.
To be more specific, just before changing the value of Wz (wi ), Invariant 9.10 was satisfied. Now, an
edge insertion/deletion changes the value of Wz (wi ) by 1/di < ε (see Definition 9.8, Invariant 9.9 and equation 166). Hence, we need to change the value of Wz (wi ) by at most ε . This is done in Figure 7 in a lazy
manner.
1. If the current value of Wz (wi ) is too small to satisfy Invariant 9.10, then we increase Wz (wi ) by ε .
2. Else if the current value of Wz (wi ) is too large to satisfy Invariant 9.10, then we decrease Wz (wi ) by ε .
1.
2.
3.
4.

If Wv (wi ) < Wv (wi ), then
Set Wv (wi ) ← Wv (wi ) + ε .
Else if Wv (wi ) ≤ Wv (wi ) − 2ε , then
Set Wv (wi ) ← Wv (wi ) − ε .
Figure 7: UPDATE(i, z).

10.2.1

The subroutine FIX-STRUCTURES(i), where i ∈ {2, . . . , K}.

Consider the scenario where we have fixed the w-structures for all levels j > i. At this stage, for j ∈
{i + 1, . . . , K}, the set L j consists of all the nodes x ∈ V such that the value of Wx (w j ) has been changed
while fixing the w-structures for level j. Further, at this stage we have L j = 0/ for all j ∈ {2, . . . , i}. The
procedure in this section will serve two objectives: (a) it will update the w-structures for level i, and (b)

104

whenever the value of Wx (wi ) is changed for any node x, it will set Li ← Li ∪ {x}. Thus, at any point in time,
the set Li will consist of exactly those nodes whose Wx (wi ) values have been changed till now. Note that to
fix the w-structures for level i, we first have to update the subgraph Gi = (Zi , Ei ) and the support Hi ⊆ Ei of
the fractional assignment wi . Specifically, we have to address two types of issues if i < K, as described below.
1. Since we have already fixed the w-structures for levels j > i, it is plausible that there has been a change
in the node-set Zi+1 and the partition of Zi+1 into subsets Ti+1 , Bi+1 , Si+1 . To satisfy Definition 9.6, we
might have to insert (resp. delete) some nodes into (resp. from) the set Zi .
• (a) According to Definition 9.6 and Lemma 9.26, whenever we insert a node x into the subset
Zi (this happens if x ∈ Zi+1 \ Ti+1 and x ∈
/ Zi ), we have to ensure that for all nodes y ∈ Zi with
(x, y) ∈ Ei ⊆ Hi+1 , the edge (x, y) is inserted into Ei . Accordingly, we have to scan through all
the edges (x, y) ∈ Hi+1 , and for every such edge (x, y), if we find that y ∈ Zi , then we need to
insert the edge (x, y) into the subgraph Gi = (Zi , Ei ).
• (b) According to Definition 9.6, whenever we delete a node x from the subset Zi (this happens
if x ∈ Zi and x ∈
/ Zi+1 \ Ti+1 ), we also have to delete all its incident edges (x, y) ∈ Ei from the
subgraph Gi = (Zi , Ei ). Further, when deleting an edge (x, y) from Ei , we have to check if
(x, y) ∈ Hi , and if the answer is yes, then we have to delete the edge (x, y) from the set Hi as well
(see Invariant 9.9). The last step will decrease each of the weights Wx (wi ),Wy (wi ) by 1/di (since
wi (e) = 1/di for all e ∈ Hi ), and hence it might also change the values of Wx (wi ) and Wy (wi ),
which, in turn, might lead us to reassign y in the partition of the node-set Zi into subsets Ti , Si , Bi .
2. There might be some node x ∈ V that remains in the set Zi , but whose normal-capacity bi (x) has to
be changed (for we have already changed the w-structures for levels j > i, and they determine the
value of bi (x) as per Definition 9.7). In this event, we might encounter a situation where the value
of Wx (wi ) exceeds the actual value of bi (x). To fix this issue, for such nodes x, as a precautionary
measure we “turn off” all its incident edges (x, y) ∈ Hi with nonzero weights under wi . Specifically,
we visit every edge (x, y) ∈ Hi , and delete the edge (x, y) from Hi . This last step decreases the weights
Wx (wi ),Wy (wi ) by 1/di , and accordingly, we might need to change the values of Wx (wi ) and Wy (wi )
as well. As a result, we might need to reassign the nodes x, y in the partition of Zi into subsets Ti , Si , Bi .
Let us say that a “bad event” happens for a node x at level i iff either the node gets inserted into (resp. deleted
from) the set Zi or its normal-capacity bi (x) gets changed. From Definitions 9.7, 9.11, 9.6 and equation 172,
we conclude that such a bad event happens only if the discretized weight Wx (w j ) of the node at some level
S
j > i gets changed. In other words, a bad event happens for a node x at level i only if x ∈ Kj=i+1 L j . It follows
that all the operations described above are implemented in Figure 8. To be more specific, Steps (02) – (07)
deal with Case 1(a), Steps (08) – (19) deal with Case 1(b), and Steps (20) – (29) deal with Case 2. Finally,
S
/ The
we note that if i = K, then we do not need to worry about any of these issues since then Kj=i+1 L j = 0.
node-set ZK and the capacities {bK (x)} remain unchanged (see Definitions 9.6, 9.7).
We now analyze the total time it takes to perform the operations in Figure 8. The main For loop in line
S
01 runs for j>i L j iterations. During each such iteration, it takes time proportional to either degx (Hi+1 )
(see the For loop in line 06) or degx (Ei ) (see the For loops in lines 10, 22). Since di+1 = di · n1/K (see
Definition 9.8), Lemma 9.27 and Corollary 9.28 imply that degx (Hi+1 ) ≤ di · n1/K and degx (Ei ) ≤ di · n1/K .
Hence, the time taken by each iteration of the main For loop is O(di · n1/K ). Accordingly, the total runtime
S
becomes O( j>i L j · di · n1/K ), as stated in the lemma below.

SK
1/K time to perform the operations in Figure 8.
Lemma 10.6. It takes O
j=i+1 L j · di · n
Remark.

Note that for i = K the set

SK

j=i+1 L j

is empty. So we do not execute any of the steps in Figure 8.

105

01. For all nodes x ∈ Kj=i+1 L j ;
02.
If x ∈ Zi+1 \ Ti+1 and x ∈
/ Zi , then
(Definition 9.6 is violated)
03.
Insert the node x into the subsets Zi and Si .
04.
Update the value of bi (x), based on the structures for levels j > i (see Definition 9.7).
05.
Set Wx (wi ) = ε , Wx (wi ) = 0. (Note that Wx (wi ) = ε ≤ bi (x) by Observation 9.24.)
06.
For every edge (x, y) ∈ Hi+1 ;
07.
If y ∈ Zi , then insert the edge (x, y) into the subgraph Gi = (Zi , Ei ).
08.
Else if x ∈
/ Zi+1 \ Ti+1 and x ∈ Zi , then
(Definition 9.6 is violated)
09.
Delete the node x from the subset Zi and from Ti ∪ Si ∪ Bi .
10.
For every edge (x, y) ∈ Ei ;
11.
Delete the edge (x, y) from the subgraph Gi = (Zi , Ei ).
12.
If (x, y) ∈ Hi , then
13.
Delete the edge (x, y) from the subset Hi .
14.
For each node z ∈ {x, y};
15.
Decrease the value of Wz (wi ) by 1/di .
16.
Update the value of Wz (wi ) by calling the subroutine UPDATE(i, zi ).
17.
If the value of Wz (wi ) changes in the previous step, then set Li ← Li ∪ {z}.
18.
Reassign y to one of the subsets Ti , Si , Bi according to Definition 9.11.
19.
Set Wx (wi ) = bi (x) = 0.
20.
Else if x ∈ Zi+1 \ Ti+1 and x ∈ Zi , then (the value of bi (x) might have changed)
21.
Update the value of bi (x), based on the structures for levels j > i (see Definition 9.7).
22.
For every edge (x, y) ∈ Ei ;
23.
If (x, y) ∈ Hi , then
24.
Delete the edge (x, y) from the subset Hi .
25.
For each z ∈ {x, y};
26.
Decrease Wz (wi ) by 1/di .
27.
Update the value of Wz (wi ) by calling the subroutine UPDATE(i, z).
28.
If the value of Wz (wi ) changes in the previous step, then set Li ← Li ∪ {z}.
29.
Reassign z to one of the subsets Ti , Si , Bi according to Definition 9.11.
S

Figure 8: Updating the subgraph Gi = (Zi , Ei ).

106

We have not yet updated the adjacency list data structures of Gi = (Zi , Ei ) to reflect the insertion/deletion
of the edge (u, v). This is done in Figure 9. We only need to update the data structures if both the endpoints
u, v belong to Zi , for otherwise by Definition 9.6 the edge (u, v) does not participate in the subgraph Gi =
(Zi , Ei ). Note that if the edge (u, v) is to inserted into Gi (lines 01-02 in Figure 9), then we leave the edge-set
Hi unchanged. Else if the edge is to be deleted from Gi (lines 03-11 in Figure 9), then we first delete it from
Ei , and then check if the edge also belonged to Hi . If the answer is yes, then we delete (u, v) from Hi as well.
Thus, the weights Wu (wi ) and Wv (wi ) decrease by 1/di due to this operation. Accordingly, the discretized
weights Wu (wi ) and Wv (wi ) might also undergo some changes. If any of these discretized weights does get
modified, then we insert the corresponding node into Li . All these operations take constant time.
Lemma 10.7. It takes O(1) time to perform the operations in Figure 9.
01. If u, v ∈ Zi and the edge (u, v) has been inserted into G = (V, E), then
02.
Insert the edge (u, v) into the subgraph Gi = (Zi , Ei ).
03. Else if u, v ∈ Zi and the edge (u, v) has been deleted from G = (V, E), then
04.
Delete the edge (u, v) from the subgraph Gi = (Zi , Ei ).
05.
If (u, v) ∈ Hi , then
06.
Delete the edge (u, v) from the subset Hi .
07.
For each node x ∈ {u, v};
08.
Decrease the value of Wx (wi ) by 1/di .
09.
Update the value of Wx (wi ) by calling the subroutine UPDATE(i, z).
10.
If the value of Wx (wi ) changes in the previous step, then set Li ← Li ∪ {x}.
11.
Reassign the node x into one of the subsets Ti , Si , Bi according to Definition 9.11.
Figure 9: Inserting/deleting the edge (u, v) in Gi = (Zi , Ei ).
By this time, we have fixed the adjacency lists for the subgraph Gi = (Zi , Ei ), and we have also ensured
that Wx (wi ) ≤ bi (x) for every node x ∈ Zi . However, due to the deletions of multiple edges from Hi , we
might end up in a situation where we find two nodes x, y ∈ Zi \ Ti connected by an edge (x, y) ∈ Ei , but the
edge (x, y) is not part of Hi (thereby violating Invariant 9.12). This can happen only if at least one of the
S
S
nodes x, y are part of Kj=i L j . For if both x, y ∈
/ Kj=i L j , then it means that there have been no changes in
their normal capacities {b j (z)}z∈{x,y} and discretized weights {Wz (w j )}z∈{x,y} at levels j ≥ i. It follows that
both x, y belonged to Zi \ Ti just prior to the insertion/deletion of (u, v) in G, and hence the edge (x, y) was
also part of Hi at that instant (to satisfy Invariant 9.12). Further, the edge (x, y) was also not deleted from
S
Hi in Figure 8, for otherwise either x or y would have been part of Kj=i+1 L j . We conclude that if both
S
x, y ∈
/ j≥i L j and x, y ∈ Zi \ Ti , then the edge (x, y) must belong to Hi at this moment.
S
Accordingly, we perform the operations in Figure 10, whereby we go through the list of nodes in Kj=i L j ,
and for each node x in this list, we check if x ∈ Zi . If the answer is yes, then we visit all the edges (x, y) ∈
Ei \ Hi incident upon x. If we find that both x, y do not belong to Ti , then to satisfy Invariant 9.12 we insert
S
the edge (x, y) into the set Hi . The time taken for these operations is j≥i L j times the maximum degree of
a node in Ei , which is di · n1/K by Corollary 9.28. Thus, we get the following lemma.

SK
1/K .
Lemma 10.8. The time taken for the operations in Figure 10 is O
j=i L j · di · n
At this stage, we have fixed the w-structures for level i, and hence we finish the execution of the subroutine FIX-STRUCTURES(i). We conclude this section by deriving a bound on the running time of this
subroutine. This bound follows from Lemmas 10.6, 10.7 and 10.8.

S
Lemma 10.9. The subroutine FIX-STRUCTURES(i) runs for O 1 + Kj=i L j · di · n1/K time.
107

1.
2.
3.

Set L ← Kj=i L j .
For each node x ∈ L;
If x ∈ Zi , then call the subroutine FIX(i, x). See Figure 11.
S

Figure 10: Handling the nodes rendered non-tight so far.
1.
2.
3.
4.
5.
6.
7.
8.

For each edge (x, y) ∈ Ei ;
If (x, y) ∈
/ Hi and x ∈
/ Ti and y ∈
/ Ti , then
Insert the edge (x, y) to the subset Hi .
For each node z ∈ {x, y};
Increase the value of Wz (wi ) by 1/di .
Update the value of Wz (wi ) by calling the subroutine UPDATE(i, z).
If the value of Wz (wi ) changes in the previous step, then set Li ← Li ∪ {z}.
Reassign the node z into one of the subsets Ti , Si , Bi according to Invariant 9.12.
Figure 11: FIX(i, x).

10.3

Analyzing the amortized update time

We analyze the amortized update time of our algorithm (as described in Section 10.2) over a sequence of
edge insertions/deletions in the input graph G = (V, E). We prove an amortized update time of O((10/ε )K+2 ·
n1/K ). Since the algorithm in Section 10.2 maintains the w-structures (see Definition 10.4) for all the levels
j ∈ {2, . . . , K}, we can easily augment it to maintain the size of the fractional matching w = ∑Kj=2 w j without
incurring any additional overhead in the update time. This leads to the following theorem.
Theorem 10.10. We can maintain the size of w in O((10/ε )K+2 · n1/K ) amortized update time.
Following Assumption 10.2 and Theorem 10.3, we assume that the input graph is empty (i.e., E = 0)
/
in the beginning and at the end of this sequence of edge insertions/deletions. We use a charging scheme to
analyze the amortized update time. Specifically, we create the following “bank-accounts”.
• For each node v ∈ V and level i ∈ {2, . . . , K}, there are two accounts, namely:
– N ORMAL -ACCOUNT [v, i].
– W ORK -ACCOUNT [v, i].
• For level i = 1, each node v ∈ V has exactly one account, namely:
– W ORK -ACCOUNT [v, 1].
• For every unordered pair of nodes (u, v) and level i ∈ {1, . . . , K}, there is one bank account, namely:
– W ORK -ACCOUNT [(u, v), i].
• From this point onwards, the phrase “work-account’’ will refer to any bank account of the form
W ORK -ACCOUNT [v, i] or W ORK -ACCOUNT [(u, v), i]. Similarly, the phrase “normal-account” will
refer to any bank account of the form N ORMAL -ACCOUNT [v, i].
While handling an edge insertion/deletion in G, we will sometimes “transfer” money from one bank account
to another. Further, we will allow the bank accounts to have negative balance. For example, if an account
has x dollars, and we transfer y > x dollars from it to some other account, the balance in the first account
will become (x − y) dollars, which is a negative amount. We will ensure that the following properties hold.
Property 10.11. In the beginning (before the first edge insertion in G), each bank account has zero balance.

108

Property 10.12. For each edge insertion/deletion in the input graph G, we deposit O((10/ε )K+2 · n1/K )
dollars into bank-accounts.
Property 10.13. Money is never withdrawn from a work-account. So it always has a nonnegative balance.
Property 10.14. In the end (when G becomes empty again), each normal-account has a nonnegative balance.
Property 10.15. The total balance in the work-accounts is at least the total update time.
Properties 10.13, 10.14 and 10.15 imply that at the end of the sequence of edge insertions/deletions, the
sum of the balances in the bank accounts is at least the total update time of the algorithm. By Properties 10.11
and 10.12, the former quantity is O(10/ε )K+2 · n1/K ) times the number of edge insertions/deletions in G.
Hence, we get an amortized update time of O((10/ε )K+2 · n1/K ). We now specify the exact rules that govern
the functioning of all the bank accounts. We will show that these rules satisfy all the properties described
above. This will conclude the proof of the amortized update time.
10.3.1

Rules governing the bank accounts

The first rule describes the initial conditions.
Rule 10.16. In the beginning (before the first edge insertion in G), every bank account has zero balance.
The next rule states how to deposit money into the bank accounts after an edge insertion/deletion in G.
Rule 10.17. When an edge (u, v) is inserted into (resp. deleted from) G, we make the following deposits.
• For each i ∈ {1, . . . , K};
– We deposit one dollar into the account W ORK -ACCOUNT [(u, v), i].
• For each i ∈ {2, . . . , K};
– We deposit (10/ε )i+1 · n1/K dollars into N ORMAL -ACCOUNT [x, i] for all x ∈ {u, v}.
Before proceeding any further, we need to make a simple observation. Consider any level i ∈ {2, . . . , K},
and the set of edges Hi that form the support of the fractional assignment wi . Our algorithm in Section 10.2
deletes an edge (x, y) ∈ Hi from the set Hi due to one of the following reasons:
• The edge (x, y) is getting deleted from the input graph G = (V, E), and hence we have to delete the
edge from Hi (see Steps 04, 06 in Figure 9). We say that this is a “natural deletion” from the set Hi .
• Some other edge (x′ , y′ ) is getting deleted from the input graph G = (V, E). While handling this edge
deletion, we have to fix the w-structures for level i, and as a result the edge (x, y) gets deleted from Hi
(see Steps 13, 24 in Figure 8). In this event, the edge (x, y) does not get deleted from the input graph
G itself. We say that this is an “artificial deletion” from the set Hi .
From our algorithm in Section 10.2, we make the following observation.
Observation 10.18. No artificial deletion takes place from the edge-set HK . Further, at any level 2 ≤ i < K,
S
an edge (x, y) gets artificially deleted from the set Hi only when it has at least one endpoint in j>i L j .
We now describe the rule that governs the transfer of money from one normal account to another.

Rule 10.19. Consider any level 2 ≤ i ≤ K. By Observation 10.18, an edge (x, y) gets artificially deleted
from Hi only if i < K, and when such an event occurs, the edge must have at least one endpoint (say x)
in L j for some i < j ≤ K. At that instant, for all z ∈ {x, y}, we transfer (10/ε )i+1 · n1/K dollars from
N ORMAL -ACCOUNT [x, j] to N ORMAL -ACCOUNT [z, i].
Finally, we state the rule governing the transactions between the normal-accounts and the work-accounts.
109

Rule 10.20. Suppose that while handling an edge insertion/deletion in G some node x ∈ V becomes part of
the set Li . At that instant, for each 1 ≤ j ≤ i, we transfer d j · n1/K dollars from N ORMAL -ACCOUNT [x, i] to
W ORK -ACCOUNT [x, j].
Rule 10.16 ensures that Property 10.11 is satisfied. According to Rule 10.17, when an edge insertion/deletion takes places in G, the total amount of money deposited to the bank accounts is at most:
K

K + ∑ (10/ε )i+1 · n1/K = K + O((10/ε )K+2 · n1/K ) = O((10/ε )K+2 · n1/K ).
i=2

The last equality holds since K < n1/K (see equation 167). Thus, Property 10.12 is also satisfied. We also
note that the four rules described above immediately imply Property 10.13. Next, we focus on proving
Property 10.15. Towards this end, we focus on any given edge insertion/deletion in G. We handle this event
as per the procedure in Figure 6. Thus, according to Lemma 10.9, the total time taken to handle this edge
insertion/deletion in G is given by:
!
K

∑

1+

i=2

K
[

j=i

L j · di · n1/K

(304)

Due to this edge insertion/deletion in G, as per Rule 10.17 the sum ∑(x,y) ∑Ki=1 W ORK -ACCOUNT [(x, y), i]
increases by:
K

∑1

(305)

i=1

According to Rule 10.20, for every level i ∈ {1, . . . , K}, the sum ∑x∈V W ORK -ACCOUNT [x, i] increases by:
K
[

j=i

L j · di · n1/K

Thus, due the edge insertion/deletion in G, the sum of all the work-accounts increases by at least:
!
K

∑

i=1

1+

K
[

j=i

L j · di · n1/K

(306)

(307)

From equations 304 and 307, we reach the following conclusion.
• Due to each edge insertion/deletion in G, the total balance in the work-accounts increases by an
amount that is at least the total time spent to handle that edge insertion/deletion.
The above statement, along with Property 10.11 and 10.13 (which we have proved already), implies Property 10.15. Thus, it remains to prove Property 10.14, which is done by the lemma below. Its proof appears in
Section 10.3.2. As there is no normal-account at level one, the lemma takes care of all the normal-accounts.
This concludes the proof of Theorem 10.10.
Lemma 10.21. Consider any node x ∈ V and any level i ∈ {2, . . . , K}. At the end of the sequence of edge
insertions/deletions (when G becomes empty), we have a nonnegative balance in N ORMAL -ACCOUNT [x, i].

110

10.3.2

Proof of Lemma 10.21

Throughout this section, we will use the phrase “time-horizon” to refer to the time-interval that begins just
before the first edge insertion in G (when G is empty), and ends after the last edge deletion from G (when G
becomes empty again). We will also use the following notations.
• Let Λ+ be the total amount of money deposited into N ORMAL -ACCOUNT [x, i] during the entire timehorizon. Similarly, let Λ− be the total amount of money withdrawn from N ORMAL -ACCOUNT [x, i]
during the entire time-horizon. We will show that Λ+ ≥ Λ− . Since N ORMAL -ACCOUNT [x, i] has zero
balance before the first edge insertion in G (see Rule 10.16), this will imply Lemma 10.21.
• Consider any given edge insertion/deletion in G. We say that this edge insertion/deletion is “critical”
iff the following property holds: While handling the edge insertion/deletion in G using the algorithm
from Section 10.2, the node x becomes part of the set Li .
Let ∆[x, i] be the total number of critical edge insertions/deletions in G during the time-horizon.
• Let m− [x, i] (resp. m+ [x, i]) denote the total number of times an edge incident upon x is deleted from
(resp. inserted into) the set Hi during the entire time-horizon. Since the input graph G is empty both
before and after the time-horizon, we have m+ [x, i] = m− [x, i].
Roadmap for the proof. In Claim 10.22, we lower bound Λ+ in terms of m− [x, i]. In Claim 10.23, we
upper bound Λ− in terms of ∆[x, i]. In Claim 10.24, we related the two quantities ∆[x, i] and m− [x, i]. Next, in
Corollary 10.25, we use Claims 10.23 and 10.24 to upper bound Λ− in terms of m− [x, i]. Finally, Claim 10.22
and Corollary 10.25 imply that Λ+ ≥ Λ− . This concludes the proof of the lemma.
Claim 10.22. We have: Λ+ ≥ m− [x, i] · (10/ε )i+1 · n1/K .

Proof. Rule 10.17 and 10.19 implies that each time an edge incident upon x gets deleted from Hi , we
deposit (10/ε )i+1 · n1/K dollars into N ORMAL -ACCOUNT [x, i]. Since m− [x, i] denotes the total number of
edge deletions incident upon x that take place in Hi , the claim follows.
Claim 10.23. We have: Λ− ≤ ∆[x, i] · 5 · (10/ε )i · di · n1/K .
Proof. Consider an edge insertion/deletion in the input graph. Suppose that the node x becomes part of the
set Li while we handle this edge insertion/deletion using the algorithm from Section 10.2. In other words, this
edge insertion/deletion in G contributes one towards the value of ∆[x, i]. We will show that while handling
this edge insertion/deletion, we withdraw at most 5·(10/ε )i ·di ·n1/K dollars from N ORMAL -ACCOUNT [x, i].
We first bound the total amount of money that are withdrawn from N ORMAL -ACCOUNT [x, i] due to
Rule 10.19. Consider any level j ∈ {2, . . . , i − 1}. While handling the edge insertion/deletion in G, the
algorithm from Section 10.2 deletes at most degx (H j ) edges incident upon x from the set H j . For each
such deletion of an edge (x, y), we withdraw 2 · (10/ε ) j+1 · n1/K dollars from N ORMAL -ACCOUNT [x, i], and
distribute this amount evenly between N ORMAL -ACCOUNT [x, j] and N ORMAL -ACCOUNT [y, j]. Hence, the
total amount of money withdrawn from N ORMAL -ACCOUNT [x, i] due to Rule 10.19 is at most:
i−1

i−1

∑ degx (H j ) · 2 · (10/ε ) j+1 · n1/K

j=2

≤

∑ d j · 2 · (10/ε ) j+1 · n1/K

(308)

j=2
i−1

≤

∑ di · 2 · (10/ε ) j+1 · n1/K

≤ di · 4 · (10/ε )i · n1/K
111

(309)

j=2

(310)

Equation 308 follows from Lemma 9.27. Equation 309 holds since d j ≤ di for all j ≤ i (see Definition 9.8).
Next, we bound the total amount of money withdrawn from N ORMAL -ACCOUNT [x, i] due to Rule 10.20.
For each level j ∈ {1, . . . , i}, we withdraw d j · n1/K dollars from N ORMAL -ACCOUNT [x, i] and transfer this
amount to W ORK -ACCOUNT [x, j]. Hence, the total amount withdrawn from N ORMAL -ACCOUNT [x, i] due
to Rule 10.20 is given by:
i

∑ d j · n1/K

j=1

≤ 2 · di · n1/K

(311)

≤ (10/ε )i · di · n1/K

(312)

Equation 311 follows from Definition 9.8 and equation 168. Finally, we note that Rules 10.20 and 10.19 are
the only rules that govern the withdrawal of money from N ORMAL -ACCOUNT [x, i]. Hence, adding equations 310 and 312, we reach the following conclusion.
• At most 5 · (10/ε )i · di · n1/K are withdrawn from N ORMAL -ACCOUNT [x, i] while handling the insertion/deletion of an edge in G that results in x becoming part of Li .
Since ∆[x, i] is the number of times x becomes part of Li during the entire time-horizon, the claim follows.
Claim 10.24. We have: (ε di /2) · ∆[x, i] ≤ m− [x, i].
Proof. Recall the notion of a “critical” edge insertion/deletion in G. Such an edge insertion/deletion is
characterized by the following property: While handling such an edge insertion/deletion using the algorithm
from Section 10.2, the node x becomes part of the set Li . Also recall that ∆[x, i] denotes the total number of
critical edge insertions/deletions during the entire time-horizon.
Accorinngly, by definition, between any two critical edge insertions/deletions in G, the discretized
weight Wx (wi ) (which is an integral multiple of ε ) must have changed by at least ε , since the node x
becomes part of Li only when its discretized weight Wx (wi ) changes. Recall that the discretized weight
Wx (wi ) is updated in a lazy manner after a change in the weight Wx (wi ) (see Figure 7). Further, in one step
the weight Wx (wi ) changes by 1/di (since each edge in the support of wi has weight 1/di ), and we have
1/di ≤ 1/n1/K ≪ ε (see Definition 9.8 and equation 166). Accordingly, we infer that between any two critical edge insertions/deletions in G, the weight Wx (wi ) also changes by at least ε . Next, note that the weight
Wx (wi ) changes by 1/di only when there is an edge insertion/deletion incident upon x in Hi . Hence, an ε
change in the weight Wx (wi ) corresponds to ε di edge insertions/deletions in Hi incident upon x.
Let m[x, i] = m+ [x, i] + m− [x, i] denote the total number of edge insertions/deletions in Hi incident upon x
during the entire time-horizon. The above discussion implies that ∆[x, i]·(ε di ) ≤ m[x, i]. By Assumption 10.2
(also see Theorem 10.3), we have m+ [x, i] = m− [x, i] and hence m[x, i] = 2 · m− [x, i]. Accordingly, we get:
(ε di ) · ∆[x, i] ≤ m[x, i] = 2 · m− [x, i]. The claim follows.
Corollary 10.25. We have: Λ− ≤ m− [x, i] · (10/ε )i+1 · n1/K .
Proof. From Claims 10.23 and 10.24, we infer that:
Λ− ≤ ∆[x, i] · 5 · (10/ε )i · di · n1/K = (ε di /2) · ∆[x, i] · (10/ε )i+1 · n1/K ≤ m− [x, i] · (10/ε )i+1 · n1/K
From Claim 10.22 and Corollary 10.25, we infer that Λ+ ≥ Λ− .
112

10.4

Maintaining the size of the fractional assignment w∗1 .

From Observations 9.23 and 9.24, we infer that for every node v ∈ Z1 the capacity b∗1 (v) is a positive integral
multiple of ε . Further, Definition 9.20 ensures that b∗1 (v) ≤ 1 for every node v ∈ Z1 . Thus, we get:

Observation 10.26. For every node v ∈ Z1 , we have b∗1 (v) = κv∗ · ε for some integer κv∗ ∈ [1, 1/ε ].

We now define a “meta-graph” G1 = (Z1 , E1 ). For clarity of exposition, we will refer to the nodes in
Z1 as “meta-nodes” and the edges in E1 as “meta-edges”. The meta-graph is constructed as follows. For
each node v ∈ Z1 , we create κv∗ meta-nodes v(1), . . . , v(κv∗ ), where κv∗ is defined as in Observation 10.26.
Next, for each edge (u, v) ∈ E1 , we create κu∗ · κv∗ meta-edges {(u(i), v( j))}, 1 ≤ i ≤ κu∗ , 1 ≤ j ≤ κv∗ . The next
theorem bounds the size of the maximum matching in the meta-graph.
Theorem 10.27. The size of the maximum (integral) matching in G1 = (Z1 , E1 ) equals (1/ε ) times the
maximum size of a fractional b-matching in G1 = (Z1 , E1 ) with respect to the node-capacities {b∗1 (v)}, v ∈ Z1 .
Proof. (Sketch) The maximum possible size of a fractional b-matching in G1 is given by the following LP.

∑

Maximize

x∗ (u, v)

(313)

(u,v)∈E1

s. t.

∑

(u,v)∈E1
∗

x∗ (u, v) ≤ κv∗ · ε for all nodes v ∈ Z1 .

x (u, v) ≥ 0 for all edges (u, v) ∈ E1∗ .

(314)
(315)

Since the input graph G = (V, E) is bipartite, the subgraph G1 = (Z1 , E1 ) is also bipartite. Hence, the
constraint matrix of the above LP is totally unimodular. Thus, in the optimal solution to the above LP,
each variable x∗ (u, v) is going to take a value that is an integral multiple of ε . We can map such a solution
{x∗ (u, v)} in a natural way to a matching M1 ⊆ E1 in the meta-graph: For every edge (u, v) ∈ E, include
x∗ (u, v)/ε meta-edges from the collection {(u(i), v( j))}, 1 ≤ i ≤ κu∗ , 1 ≤ j ≤ κv∗ , into the matching M1 . The
size of the matching M1 will be exactly (1/ε ) times the LP-objective.
Similarly, given any matching M1 ⊆ E1 in the meta-graph, we can construct a feasible solution to the
above LP in a natural way. Intially, set x∗ (u, v) = 0 for all edges (u, v) ∈ E1 . Next, scan through the metaedges in M1 , and for every meta-edge of the form (u(i), v( j)) ∈ M1 , set x∗ (u, v) ← x∗ (u, v) + ε . It is easy
to check that at the end of this procedure, we will get a feasible solution to the above LP whose objective
value is exactly ε times the size of M1 . The theorem follows.
Lemma 10.28. In a dynamic setting, we can maintain the meta-graph G1 = (Z1 , E1 ) in O((10/ε )K+4 · n1/K )
update time, amortized over the number of edge insertions/deletions in the input graph G = (V, E).
Proof. (Sketch) We first describe our algorithm for maintaining the meta-graph G1 .
Whenever an edge (u, v) is inserted into (resp. deleted from) the input graph G = (V, E), we call the
procedure described in Section 10.2. This updates the w-structures for levels {2, . . . , K} in a top down
manner. When the procedure finishes updating the w-structures for level 2, we consider the set of nodes
S
L = Kj=2 L j . These are only nodes whose capacities in level one need to be updated, for if a node z ∈
/ L, then
none of its discretized weights Wz (w j ) were changed, and hence its capacity b∗1 (z) also does not change.
Accordingly, we scan through the nodes in L. For each node z ∈ L, we first update the value of b∗1 (z), and
then check all its incident edges (z, z′ ) ∈ H2 (since E1 ⊆ H2 by Lemma 9.26). For each such edge (z, z′ ) ∈ H2 ,
we insert/delete κz∗ · κz∗′ ≤ (1/ε 2 ) meta-edges in G1 , depending on whether the nodes z, z′ belong to Z1 or
not. Since degz (H2 ) ≤ d2 = n1/K for all nodes z (see Lemma 9.27, Definition 9.8), this procedure takes
O(|L| · (1/ε )2 · n1/K ) time. But note that according to our charging scheme in Section 10.3 (see Rule 10.20),
each node z ∈ L has d1 · n1/K = n1/K dollars deposited into W ORK -ACCOUNT [z, 1]. Thus, we reach the
following conclusion:
113

• The total time spent in maintaining the meta-graph G1 is at most (1/ε )2 times the amount of dollars
deposited into the work-accounts at level one.
From our framework in Section 10.3, it follows that the amortized update time for maintaining the metagraph G1 is at most (1/ε 2 ) times the amount of dollars deposited into the bank accounts per edge insertion/deletion in G. Accordingly, we get an amortized update time of O((1/ε )2 · (1/ε )K+2 · n1/K ) =
O((1/ε )K+4 · n1/K ).
Corollary 10.29. The number of edge insertions/deletions in G1 is at most O((10/ε )K+4 · n1/K ) times the
number of edge insertions/deletions in the input graph G.
Proof. Let t be the ratio between the number of edge insertions/deletions in G1 and the number of edge
insertions/deletions in G. The corollary follows from Lemma 10.28 and the fact that t cannot be larger than
the amortized update time for maintaining G1 .
Theorem 10.30. We can maintain the value of w∗1 in O((10/ε )K+8 · n2/K ) update time, amortized over the
number of edge insertions/deletions in the input graph G = (V, E).
Proof. By Invariant 9.21, the size of w∗1 gives a (1 + ε )-approximation to the maximum possible size of
a fractional b-matching in G1 = (Z1 , E1 ) with respect to the node-capacities {b∗1 (z)}. We will maintain a
matching M1′ ⊆ E1 in the meta-graph G1 = (Z1 , E1 ) whose size will be a (1 + ε )-approximation to the size
of the maximum matching in G1 . By Theorem 10.27, the quantity ε · |M1′ | will serve as an accurate estimate
for the size of w∗1 .
Corollary 9.28 and Definition 9.11 guarantee that degz (E1 ) ≤ d1 · n1/K = n1/K for all nodes z ∈ Z1 . Since
each edge (u, v) ∈ E1 leads to κu∗ · κv∗ ≤ (1/ε )2 meta-edges, we infer that the maximum degree of a metanode in G1 is d ∗ = (1/ε 2 ) · n1/K . Hence, using a recent result of Gupta and Peng [7], we can maintain the
matching M1′ in O(d ∗ /ε 2 ) update time, amortized over the number of edge insertions/deletions in G1 . Using
Corollary 10.29, we get an update time of O((d ∗ /ε 2 ) · (10/ε )K+4 · n1/K ) = O((10/ε )K+8 · n2/K ), amortized
over the number of edge insertions/deletions in the input graph. Finally, note that this subsumes the update
time for maintaining the meta-graph G1 , as derived in Lemma 10.28.
10.5

Maintaining a (1 + ε )-approximation to the size of wr

Consider any level i ∈ {2, . . . , K}. From Observation 9.23 and Definition 9.13, we infer that for every
node v ∈ Ti ∪ Si the residual capacity bri (v) is a positive integral multiple of ε . Further, equation 165 and
Definition 9.13 ensures that bri (v) ≤ 1 for every node v ∈ Ti ∪ Si . Thus, we get:
Observation 10.31. For every node v ∈ Ti ∪ Si , with i ∈ {2, . . . , K}, we have the residual capacity bri (v) =
κvr · ε for some integer κvr ∈ [1, 1/ε ].
Similar to Section 10.4, we now define a “meta-graph” Gi = (Zi , Ei ) at each level i ∈ {2, . . . , K}. For
clarity of exposition, we will refer to the nodes in Zi as “meta-nodes” and the edges in Ei as “meta-edges”.
The meta-graph is constructed as follows. For each node v ∈ Ti ∪ Si , we create κvr meta-nodes v(1), . . . , v(κvr ),
where κvr is defined as in Observation 10.31. Next, for each edge (u, v) ∈ Eir (see Invariant 9.14), we create
κur · κvr meta-edges {(u( j), v(l))}, 1 ≤ j ≤ κur , 1 ≤ l ≤ κvr . The next theorem relates the fractional matchings
in the meta-graph Gi with the fractional b-matchings in the residual graph Gri = (Ti ∪ Si , Eir ).
Theorem 10.32. Consider any level i ∈ {2, . . . , K}.
1. Every fractional matching w′′i in the meta-graph Gi corresponds to a unique fractional b-matching
w′i in the residual graph Gri with respect to the node-capacities {bri (z)}. The size of w′′i is exactly
(1/ε )-times the size of w′i .
2. A maximal fractional matching in Gi corresponds to a maximal fractional b-matching in Gri with
respect to the node-capacities {bri (z)}.
114

Proof. (Sketch) Given a fractional matching w′′i in Gi , we construct the corresponding fractional b-matching
w′i in Gri as follows. Initially, we set wi (e) ← 0 for every edge e ∈ Eir . Next, we scan through the list of
meta-edges in Ei . For every meta-edge of the form (u( j), v(l)), 1 ≤ j ≤ κur , 1 ≤ l ≤ κvr , we set w′i (u, v) ←
w′i (u, v) + ε . It is easy to check that this construction satisfies both the properties stated in the theorem.
Lemma 10.33. In a dynamic setting, we can maintain all the meta-graphs {Gi = (Ti ∪ Si , Ei )}, 2 ≤ i ≤ K, in
O((10/ε )K+4 · n1/K ) update time, amortized over the number of edge insertions/deletions in G = (V, E).
Proof. (Sketch) Similar to the proof of Lemma 10.28.
Corollary 10.34. The number of edge insertions/deletions in
the number of edge insertions/deletions in G.

SK

i=2 Ei

is at most O((10/ε )K+4 · n1/K ) times

Proof. (Sketch) Similar to the proof of Corollary 10.29.
Theorem 10.35. There is a dynamic algorithm with the following properties:
1. It maintains a (1 + ε )2 -approximation to the size of wr .
2. Its update time is O((10/ε )K+6 · n1/K · log n), amortized over the edge insertions/deletions in G.
Proof. (Sketch) If we could maintain a maximal fractional matching in Gi for all i ∈ {2, . . . , K}, then we
would have had an exact estimate of the size of wri for all i ∈ {2, . . . , K} (see Theorem 10.32, Invariant 9.14).
Instead, we use the dynamic algorithm of Bhattacharya, Henzinger and Italiano [5] to maintain a (1 + ε )2 maximal fractional matching in each Gi .8 This means that we get a (1 + ε )2 -approximation to the size of
each wri , and hence a (1 + ε )2 -approximation to the size of wr = ∑Ki=2 wri .
Using the analysis of Bhattacharya, Henzinger and Italiano [5], the update time of this dynamic algoS
rithm is O(log n/ε 2 ), amortized over the number of edge insertions/deletions in Ki=2 Ei . Applying Corollary 10.34, we get a update time of O((10/ε )K+6 · n1/K · log n), amortized over the number of edge insertions/deletions in G. Note that this subsumes the update time for maintaining the meta-graphs {Gi }, 2 ≤ i ≤
K, as derived in Lemma 10.33.

8 In

such a fractional matching w′′i , for every meta-edge (z, z′ ) ∈ Ei , either Wz (w′′i ) ≥ 1/(1 + ε )2 or Wz′ (w′′i ) ≥ 1/(1 + ε )2 .

115

