A Local Clustering Algorithm for Massive Graphs and its Application to Nearly-Linear Time Graph Partitioning

Daniel A. Spielman, Shang-Hua Teng

Introduction

Given a vertex of interest in a massive graph, we would like to find a small cluster around that vertex, in time proportional to the size of the cluster. The algorithm we introduce will solve this problem while only examining vertices near the initial vertex, under some reasonable notion of nearness. We call such an algorithm a local algorithm.

Our local clustering algorithm provides a very powerful primitive for the design of fast graph algorithms. In Section 3 of this paper, we use it to design the first nearly-linear time algorithm for graph partitioning that produces a partition of nearly-optimal balance among those approximating a target conductance. In the papers [ST08b] and [ST08a], we proceed to use this graph partitioning algorithm to design nearly-linear time algorithms for sparsifying graphs and for solving symmetric, diagonally-dominant linear systems.

We say that a graph algorithm is a local algorithm if it is given a particular vertex as input, and at each step after the first only examines vertices connected to those it has seen before. The use of a local algorithm naturally leads to the question of in which order one should explore the vertices of a graph. While it may be natural to explore vertices in order of shortest-path distance from the input vertex, such an ordering is a poor choice in graphs of low-diameter, such as social network graphs [LH08]. We suggest first processing the vertices that are most likely to occur in short random walks from at the input vertex. That is, we consider a vertex to be near the input vertex if it is likely to appear in a short random walk from the input vertex.

In Section 3, we use a local graph exploration process to find a cluster that is near the input vertex. Following Kannan, Vempala and Vetta [KVV04], we say that a set of vertices is a good cluster if it has low conductance; that is, if it has many more external than internal edges. We give an efficient local clustering algorithm, Nibble, that runs in time proportional to the size of the cluster it outputs. Although our algorithm may not find a local cluster for some input vertices, we will show that it is usually successful. In particular, we prove the following theorem: There exists a constant α>0\alpha>0 such that for any target conductance ϕ\phi and any cluster C0C_{0} of conductance at most α⋅ϕ2/log⁡3n\alpha\cdot\phi^{2}/\log^{3}n, when given a random vertex vv sampled according to degree inside C0C_{0}, Nibble will return a cluster CC mostly inside C0C_{0} and with conductance at most ϕ\phi, with probability at least 1/21/2.

The local clustering algorithm Nibble makes a novel use of random walks. For a positive integer tt, suppose pt,vp_{t,v} is the probability distribution of the tt-step random walk starting at vv. As the support of pt,vp_{t,v}—the set of nodes with positive probability—could grow rapidly, Nibble maintains a truncated version of the distribution. At each step of the truncated random walks, Nibble looks a for cluster among only nodes with high probability. The truncation is critical to ensure that the clustering algorithm is output sensitive. It guarantees that the size of the support of the distribution that Nibble maintains is not too much larger than the size of the cluster it produces. The cluster that Nibble produces is local to the starting vertex vv in the sense that it consists of nodes that are among the most favored destinations of random walks starting from vv.

By using the personal PageRank vector [PBMW98] to define nearness, Andersen, Chung and Lang [ACL06], have produced an improved version of our algorithm Nibble, which they call PageRank-Nibble. Following this work, other local algorithms have been designed by Andersen et. al. [ABC+07] for approximately computing Personal PageRank vectors, by Andersen [And08] for finding dense subgraphs and by Andersen, Chung and Lang [ACL07] for partitioning directed graphs.

2 Nearly Linear-Time Algorithms

Our local clustering algorithm provides a powerful tool for designing fast graph algorithms. In this paper and its two companion papers, we show how to use it to design randomized, nearly linear-time algorithms for several important graph-theoretic and numerical problems.

The need for algorithms whose running time is linear or nearly linear in their input size has increased as algorithms handle larger inputs. For example, in circuit design and simulation, an Intel Dual Core Itanium processor has more than one billion transistors, which is more than 100 times the number of transistors that the Pentium had in 2000 [Cor05]; in scientific computing, one often needs to solve linear systems that involve hundreds of millions of variables [SLM+02]; in modern information infrastructure, the web has grown into a graph of hundreds billions of nodes [GS05]. As a result of this rapid growth in problem size, what used to be considered an efficient algorithm, such as a O(n1.5)O(n^{1.5})-time algorithm, may no longer be adequate for solving problems of these scales. Space complexity poses an even greater problem.

Many basic graph-theoretic problems such as connectivity and topological sorting can be solved in linear or nearly-linear time. The efficient algorithms for these problems are built on linear-time primitives such as Breadth-First-Search (BFS) and Depth-First-Search (DFS). Minimum Spanning Trees (MST) and Shortest-Path Trees are examples of other commonly used nearly linear-time primitives. We hope to build up the library of nearly-linear time graph algorithms that may be used as primitives. While the analyzable variants of the algorithms we present here, and even their improved versions by Andersen, Chung and Lang [ACL06], may not be immediately useful in practice, we believe practical algorithms may be derived from them by making less conservative choices of parameters.

Our local clustering algorithm provides an exciting new primitive for developing nearly linear-time graph algorithms. Because its running time is proportional to the size of the cluster it produces, we can repeatedly apply it remove many clusters from a graph, all within nearly-linear time.

In the second part of this paper, we use Nibble as a subroutine to construct a randomized graph partitioning algorithm that runs in nearly-linear time. To the best of our knowledge, this is the first nearly linear-time partitioning algorithm that finds an approximate sparsest cut with approximately optimal balance. In our first companion paper [ST08b], we apply this new partitioning algorithm to develop a nearly-linear-time algorithm for producing spectral sparsifiers of graphs. We begin that paper by extending the partitioning algorithm of this paper to obtain a stronger guarantee on its output: if it outputs a small set, then the complement must be contained in a subgraph whose conductance is higher than the target.

Clusters and Conductance

Let G=(V,E)G=(V,E) be an undirected graph with V={1,…,n}V=\left\{1,\dotsc,n\right\}. A cluster of GG is a subset of VV that is richly intra-connected but sparsely connected with the rest of the graph. The quality of a cluster can be measured by its conductance, the ratio of the number of its external connections to the number of its total connections.

We let d(i)d(i) denote the degree of vertex ii. For S⊆VS\subseteq V, we define μ(S)=∑i∈Sd(i)\mu\left(S\right)=\sum_{i\in S}d(i) (often called the volume of SS). So, μ(V)=2∣E∣\mu\left(V\right)=2|E|. Let E(S,V−S)E(S,V-S) be the set of edges connecting a vertex in SS with a vertex in V−SV-S. We define the conductance of a set of vertices SS, written Φ(S)\Phi\left(S\right) by

We sometime refer to a subset SS of VV as a cut of GG and refer to (S,V−S)(S,V-S) as a partition of GG. The balance of a cut SS or a partition (S,V−S)(S,V-S) is then equal to

We call SS a sparsest cut of GG if Φ(S)=ΦG\Phi\left(S\right)=\Phi_{G}{} and μ(S)/μ(V)≤1/2\mu\left(S\right)/\mu\left(V\right)\leq 1/2.

In the construction of a partition of GG, we will be concerned with vertex-induced subgraphs of GG. However, when measuring the conductance and volumes of vertices in these vertex-induced subgraphs, we will continue to measure the volume according to the degrees of vertices in the original graph. For clarity, we define the conductance of a set SS in the subgraph induced by A⊆VA\subseteq V by

For convenience, we define ΦAG(∅)=1\Phi^{G}_{A}\left(\emptyset\right)=1 and, for ∣A∣=1\left|A\right|=1, ΦAG=1\Phi^{G}_{A}{}=1.

For A⊆VA\subseteq V, we let G(A)G(A) denote the subgraph of GG induced by the vertices in AA. We introduce the notation G[A]G[A] to denote graph G(A)G(A) to which self-loops have been added so that every vertex in G[A]G[A] has the same degree as in GG. Each self-loop adds 1 to the degree. We remark that if G(A)G(A) is the subgraph of GG induced on the vertices in AA, then

So, when we prove lower bounds on ΦAG\Phi^{G}_{A}{}, we obtain lower bounds on ΦG(A)\Phi_{G(A)}{}.

Clustering is an optimization problem: Given an undirected graph GG and a conductance parameter, find a cluster CC such that Φ(C)≤ϕ\Phi\left(C\right)\leq\phi, or determine no such cluster exists. The problem is NP-complete (see, for example [LR99] or [SS06]). But, approximation algorithms exist. Leighton and Rao [LR99] used linear programming to obtain O(log⁡n)O(\log n)-approximations of the sparsest cut. Arora, Rao and Vazirani [ARV04] improved this to O(log⁡n)O(\sqrt{\log n}) through semi-definite programming. Faster algorithms obtaining similar guarantees have been constructed by Arora, Hazan and Kale [AHK04], Khandekar, Rao and Vazirani [KRV06], Arora and Kale [AK07], and Orecchia, Schulman, Vazirani, and Vishnoi [OSVV08].

The algorithm Nibble works by approximately computing the distribution of a few steps of the random walk starting at a seed vertex vv. It is implicit in the analysis of the volume estimation algorithm of Lovász and Simonovits [LS93] that one can find a cut with small conductance from the distributions of the steps of the random walk starting at any vertex from which the walk does not mix rapidly. We will observe that a random vertex in a set of low conductance is probably such a vertex. We then extend the analysis of Lovász and Simonovits to show one can find a cut with small conductance from approximations of these distributions, and that these approximations can be computed quickly. In particular, we will truncate all small probabilities that appear in the distributions to 0. In this way, we reduce the work required to compute our approximations.

For the rest of this section, we will work with a graph G=(V,E)G=(V,E) with nn vertices and mm edges, so that μ(V)=2m\mu\left(V\right)=2m. We will allow some of these edges to be self-loops. Except for the self-loops, which we allow to occur with multiplicities, the graph is assumed to be unweighted. We will let AA be the adjacency matrix of this graph. That is,

We define the following two vectors supported on a set of vertices SS:

We will consider the random walk that at each time step stays at the current vertex with probability 1/21/2, and otherwise moves to the endpoint of a random edge attached to the current vertex. Thus, self-loops increase the chance the walk stays at the current vertex. For example, if a vertex has 44 edges, one of which is a self-loop, then when the walk is at this vertex it has a 5/85/8 chance of staying at that vertex, and a 1/81/8 chance of moving to each of its 33 neighbors.

The matrix realizing this walk can be expressed by M=(AD−1+I)/2M=(AD^{-1}+I)/2, where d(i)d(i) is the degree of node ii, and DD is the diagonal matrix with diagonal entries (d(1),…,d(n))(d(1),\dotsc,d(n)). Typically, a random walk starts at a node vv. In this case, the distribution of the random walk at time tt evolves according to pt=Mtχvp_{t}=M^{t}\chi_{v}.

We note that ψV\psi_{V} is the steady-state distribution of the random walk, and that ψS\psi_{S} is the restriction of that walk to the set SS.

We will use the truncation operation defined by

Our algorithm, Nibble, will generate the sequence of vectors starting at χv\chi_{v} by the rules

That is, at each time step, we will evolve the random walk one step from the current density, and then round every qt(u)q_{t}(u) that is less than d(u)ϵd(u)\epsilon to 0. Note that qtq_{t} and rtr_{t} are not necessarily probability vectors, as their components may sum to less than 11.

In the statement of the algorithm and its analysis, we will use the following notation. For a vector pp, we let Sj(p)S_{j}(p) be the set of jj vertices uu maximizing p(u)/d(u)p(u)/d(u), breaking ties lexicographically. That is, Sj(p)={π(1),…,π(j)}S_{j}(p)=\left\{\pi(1),\dotsc,\pi(j)\right\} where π\pi is the permutation such that

for all ii, and π(i)<π(i+1)\pi(i)<\pi(i+1) when these two ratios are equal. We then set

Note that λn(p)\lambda_{n}(p) always equals 2m2m.

Following Lovász and Simonovits [LS90], we set

This function I(p,⋅)I(p,\cdot) is essentially the same as the function hh defined by Lovász and Simonovits—it only differs by a linear transformation.

We remark that for x=λj(p)x=\lambda_{j}(p), I(p,x)=p(Sj(p))I(p,x)=p(S_{j}(p)), and that I(p,x)I(p,x) is linear in xx between these points. Finally, we let Ix(p,x)I_{x}(p,x) denote the partial derivative of I(p,x)I(p,x) with respect to xx, with the convention that for x=λj(p)x=\lambda_{j}(p),

where π\pi is the permutation specified above so that π(j)=Sj(p)−Sj−1(p)\pi(j)=S_{j}(p)-S_{j-1}(p).

As p(π(i))/d(π(i))p(\pi(i))/d(\pi(i)) is non-increasing, Ix(p,x)I_{x}(p,x) is a non-increasing function in xx and I(p,x)I(p,x) is a concave function in xx.

During the course of our exposition, we will need to set many constants, which we collect here for convenience. For each, we provide a suitable value and indicate where it is first used in the paper.

The following is an exhaustive list of the inequalities we require these constants to satisfy.

Given a ϕ\phi, we set constants that will play a prominent role in our analysis:

Condition (C.1) guarantees that the set CC has low conductance. Condition (C.2) ensures that it does not contain too much volume, while condition (C.3) ensures that it does not contain too little. Condition (C.4) guarantees that many elements of CC have large probability mass. While it would be more natural to define condition (C.4) as a constraint on Ix(qt,λj(qt))I_{x}(q_{t},\lambda_{j}(q_{t})) instead of Ix(qt,2b)I_{x}(q_{t},2^{b}), our proof of correctness requires the latter.

In the rest of this section, we will prove the following theorem on the performance of Nibble.

Nibble can be implemented so that on all inputs, it runs in time O(2b(log⁡6m)/ϕ4)O(2^{b}(\log^{6}m)/\phi^{4}). Moreover, Nibble satisfies the following properties.

When C=\mboxNibble(G,v,ϕ,b)C=\mbox{\rm{Nibble}}(G,v,\phi,b) is non-empty,

μ(Sg)≥μ(S)/2\mu\left(S^{g}\right)\geq\mu\left(S\right)/2, and

v∈Sgv\in S^{g} and C=\mboxNibble(G,v,ϕ,b)≠∅C=\mbox{\rm{Nibble}}(G,v,\phi,b)\not=\emptyset imply μ(C∩S)≥2b−1\mu\left(C\cap S\right)\geq 2^{b-1}.

2 Basic Inequalities about Random Walks

We first establish some basic inequalities that will be useful in our analysis. Readers who are eager to see the analysis of Nibble can first skip this subsection. Suppose G=(V,E)G=(V,E) is an undirected graph. Recall M=(AD−1+I)/2M=(AD^{-1}+I)/2, where AA is the adjacency matrix of GG.

Applying the transformation z=D−1pz=D^{-1}p, we see that it is equivalent to show that for all zz

To prove this, we note that D−1MD=D−1(AD−1+I)D/2=MTD^{-1}MD=D^{-1}(AD^{-1}+I)D/2=M^{T}, and the sum of the entries in each row of this matrix is 1. ∎

For a set S⊆VS\subseteq V, we define the matrix DSD_{S} to be the diagonal matrix such that DS(u,u)=1D_{S}(u,u)=1 if u∈Su\in S and 00 otherwise.

For every S⊆VS\subseteq V, all non-negative vectors pp and qq, and every t≥1t\geq 1,

as pp, qq, DSˉD_{\bar{S}}, and MM are all non-negative. The proposition now follows by induction. ∎

For all t≥0t\geq 0 and for all S⊂VS\subset V,

Note that MψSM\psi_{S} is the distribution after a single-step walk from a random vertex in SS and {\mbox{\boldmath1}}^{T}D_{S}(M\psi_{S}) is the probability that the walk stays inside SS. Thus, {\mbox{\boldmath1}}^{T}(D_{S}M)^{t}\psi_{S} is the probability that a tt-step walk starting from a random vertex in SS stays entirely in SS.

We first prove by induction that for all t≥0t\geq 0,

The base case, t=0t=0, follows from the fact that ∥D−1ψS∥∞=1/μ(S)\left\|D^{-1}\psi_{S}\right\|_{\infty}=1/\mu\left(S\right). To complete the induction, observe that if xx is a non-negative vector such that ∥D−1x∥∞≤1/μ(S)\left\|D^{-1}x\right\|_{\infty}\leq 1/\mu\left(S\right), then

where the second-to-last inequality follows from Proposition 2.2.

from which the proposition follows, as {\mbox{\boldmath1}}^{T}\psi_{S}=1.

Observing that {\mbox{\boldmath1}}^{T}M={\mbox{\boldmath1}}^{T}, we compute

3 The Analysis of Nibble

Our analysis of Nibble consists of three main steps. First, we define the sets SgS^{g} mentioned in Theorem 2.1 and establish property (N.2). We then refine the structure of SgS^{g} to define sets SbgS_{b}^{g} and prove property (N.3). The sets SgS^{g} and SbgS^{g}_{b} are defined in terms of the distributions of random walks from a vertex in SS, without reference to the truncation we perform in the algorithm. We then analyze the impact of truncation used in Nibble and extend the theory of Lovász and Simonovits [LS93] to truncated random walks.

Step 1: SgS^{g} and its properties

For each set S⊆VS\subseteq V, we define SgS^{g} to be the set of nodes vv in SS such that for all t≤tlastt\leq t_{last},

Note that χSˉTMtχv\chi_{\bar{S}}^{T}M^{t}\chi_{v} denotes the probability that a tt-step random walk starting from vv terminates outside SS. Roughly speaking, SgS^{g} is the set of vertices v∈Sv\in S such that a random walk from vv it is reasonably likely to still be in SS after tlastt_{last} time steps. We will prove the following bound on the volume of SgS^{g}.

Let S⊆VS\subseteq V, and let DSD_{S} be the diagonal matrix such that DS(u,u)=1D_{S}(u,u)=1 if u∈Su\in S and 00 otherwise. For t≥0t\geq 0,

as {\mbox{\boldmath1}}^{T}(D_{S}M)^{t}\chi_{v} is a non-increasing function of tt. Define

So, S′⊆SgS^{\prime}\subseteq S^{g}, and it suffices to prove that μ(S′)≥μ(S)/2\mu\left(S^{\prime}\right)\geq\mu\left(S\right)/2.

We now prove the following lemma, which says that if Nibble is started from any v∈Sgv\in S^{g} with parameter bb and returns a non-empty set CC, then μ(C∩S)≥2b−1\mu\left(C\cap S\right)\geq 2^{b-1}.

Let S⊆VS\subseteq V be a set of vertices such that Φ(S)≤f1(ϕ)\Phi(S)\leq f_{1}(\phi). If Nibble is run with parameter bb, is started at a v∈Sgv\in S^{g}, and outputs a non-empty set CC, then μ(C∩S)≥2b−1\mu\left(C\cap S\right)\geq 2^{b-1}.

For v∈Sgv\in S^{g}, let qtq_{t} be given by (1) and (2). Then, for t≤tlastt\leq t_{last},

where the second inequality follows from the definition of SgS^{g}.

Let tt be the index of the step at which the set CC is generated. Let j′j^{\prime} be the least integer such that λj′(qt)≥2b\lambda_{j^{\prime}}(q_{t})\geq 2^{b}. Condition (C.3) implies j′≤jj^{\prime}\leq j. As IxI_{x} is non-increasing in its second argument and constant between 2b2^{b} and λj′(qt)\lambda_{j^{\prime}}(q_{t}), Condition (C.4)(C.4) guarantees that for all u∈Sj′(qt)u\in S_{j^{\prime}}(q_{t}),

by (4). So, μ(Sj′(qt)∩S)≥2b−1\mu\left(S_{j^{\prime}}(q_{t})\cap S\right)\geq 2^{b-1}, and, as j′≤jj^{\prime}\leq j,

Step 2: Refining SgS^{g}

Before defining the sets SbgS^{g}_{b}, we first recall some of the facts we can infer about the function II from the work of Lovász and Simonovits. These facts will motivate our definitions and analysis.

In the first part of the proof of Lemma 1.4 of [LS90], Lovász and Simonovits prove

For every non-negative vector pp and every xx,

For each ptp_{t}, I(pt,x)I(p_{t},x) is a concave function that starts at (0,0)(0,0) and goes to (μ(V),1)(\mu\left(V\right),1). Lemma 2.9 says that for each tt, the curve defined by I(pt+1,⋅)I(p_{t+1},\cdot) lies below the curve defined by I(pt,⋅)I(p_{t},\cdot). In particular,

If none of the sets Sj(pt+1)S_{j}(p_{t+1}) has conductance less than ϕ\phi, then Lovász and Simonovits prove a bound on how far below I(pt,⋅)I(p_{t},\cdot) the curve of I(pt+1,⋅)I(p_{t+1},\cdot) must lie. The following Lemma is a special case of Lemma 1.4 of [LS93], restricted to points xx of the form λj(Mp)\lambda_{j}(Mp). Lovász and Simonovits [LS90] claim that the following is true for all xx, but point out in the journal version of their paper [LS93] that this claim was false. Fortunately, we do not need the stronger claim.

For any non-negative vector pp, if Φ(Sj(Mp))≥ϕ\Phi(S_{j}(Mp))\geq\phi, then for x=λj(Mp)x=\lambda_{j}(Mp),

where x^\widehat{x} denotes min⁡(x,2m−x)\min(x,2m-x).

The mistake in [LS90] is the assertion in the beginning of the proof that the inequality holds for all xx if it holds for all xx of form λj(Mp)\lambda_{j}(Mp).

When this lemma applies, one may draw a chord across the curve of I(pt,⋅)I(p_{t},\cdot) around xx of width proportional to ϕ\phi, and know that I(pt+1,x)I(p_{t+1},x) lies below. Thus, we know that if none of the sets Sj(pt)S_{j}(p_{t}) has conductance less than ϕ\phi, then the curve I(pt,⋅)I(p_{t},\cdot) will approach a straight line. On the other hand, Proposition 2.5 will tell us that some point of I(ptlast,⋅)I(p_{t_{last}},\cdot) lies well above this line (see Lemma 2.14).

We write xhx_{h} instead of xh(v)x_{h}(v) when vv is clear from context. Define

The quantities hvh_{v} are well-defined and the sets SbgS^{g}_{b} partition SgS^{g}. Moreover, xh−1<xhx_{h-1}<x_{h} for all hh.

Finally, to show that xh−1<xhx_{h-1}<x_{h}, we apply Lemma 2.9 to show

As I(pth,⋅)I(p_{t_{h}},\cdot) is non-decreasing and

Step 3: Clustering and truncated random walks

We now establish that vectors produced by the truncated random walk do not differ too much from those produced by the standard random walk.

The left-hand inequalities of (20) are trivial. To prove the right-hand inequality of (20), we consider pt−[pt]ϵp_{t}-\left[p_{t}\right]_{\epsilon}, observe that by definition

and then apply Proposition 2.2. Inequality (21) then follows from (3). ∎

Let S⊆VS\subseteq V be a set of vertices such that μ(S)≤(2/3)μ(V)\mu\left(S\right)\leq(2/3)\mu\left(V\right) and Φ(S)≤f1(ϕ)\Phi(S)\leq f_{1}(\phi), and let vv lie in SbgS^{g}_{b}. Define qtq_{t} by running Nibble is with parameter bb.

Let S⊆VS\subseteq V be a set of vertices such that μ(S)≤(2/3)μ(V)\mu\left(S\right)\leq(2/3)\mu\left(V\right) and Φ(S)≤f1(ϕ)\Phi(S)\leq f_{1}(\phi), and let vv lie in SbgS^{g}_{b}. If Nibble is run with parameter bb, then for all t∈(thv−1,thv]t\in(t_{h_{v}-1},t_{h_{v}}], condition (C.4) is satisfied.

where the first inequality follows from Lemma 2.13 and the second follows from Lemma 2.9.

As Ix(qt,x)I_{x}(q_{t},x) is non-increasing in xx and xhv−1<xhv≤2xhv−1x_{h_{v}-1}<x_{h_{v}}\leq 2x_{h_{v}-1}, we have

where the second inequality follows from Lemma 2.9 and the definition of qtq_{t}, and the last follows from (23).

If xhv−1≥2x_{h_{v}-1}\geq 2, then b≥1b\geq 1 and we have 2b≤xhv−1<2b+12^{b}\leq x_{h_{v}-1}<2^{b+1}, and so

If xhv−1<2x_{h_{v}-1}<2, then b=0b=0, and so Ix(qt,2b)=Ix(qt,x)I_{x}(q_{t},2^{b})=I_{x}(q_{t},x) for all x<1x<1, which implies

It remains to show that conditions (C.1–3) are met for some t∈(thv−1,thv]t\in(t_{h_{v}-1},t_{h_{v}}]. We will do this by showing that if at least one of these conditions fail for every jj and every t∈(thv−1,thv]t\in(t_{h_{v}-1},t_{h_{v}}], then the curve I(qth,⋅)I(q_{t_{h}},\cdot) will be too low, in violation of Lemma 2.14.

We will prove by induction that the conditions of the lemma imply that for all t∈[th−1,th]t\in[t_{h-1},t_{h}] and all xx,

The base case is when t=th−1t=t_{h-1}, in which case (24) is satisfied because

For 1≤x≤2m−11\leq x\leq 2m-1, I(qt,x)≤I(qt,2m)≤1≤x^I(q_{t},x)\leq I(q_{t},2m)\leq 1\leq\sqrt{\widehat{x}}.

For 0≤x≤10\leq x\leq 1, we have I(qt,x)≤x^I(q_{t},x)\leq\sqrt{\widehat{x}} as both are 00 at x=0x=0, the right-hand term dominates at x=1x=1, the left-hand term is linear in this region, and the right-hand term is concave.

For 2m−1≤x≤2m2m-1\leq x\leq 2m, we note that at x=2mx=2m, I(qt,x)=1<3x/5mI(q_{t},x)=1<3x/5m, and that we already know the right-hand term dominates at x=2m−1x=2m-1. The inequality then follows from the facts that left-hand term is linear in this region, and the right-hand term is concave.

Lovász and Simonovits [LS90] observe that

We now prove that (24) holds for tt, assuming it holds for t−1t-1, by considering three cases. As the right-hand side is concave and the left-hand side is piecewise-linear between points of the form λj(qt)\lambda_{j}(q_{t}), it suffices to prove the inequality at the points λj(qt)\lambda_{j}(q_{t}). If x=λj(qt)x=\lambda_{j}(q_{t}) and I(qt,x)≤βI(q_{t},x)\leq\beta, then (24) holds trivially. Similarly, if x=λj(qt)>(5/6)2mx=\lambda_{j}(q_{t})>(5/6)2m, then (24) holds trivially as well, as the left-hand side is at most 1, and the right hand side is at least 1. In the other cases, we have Φ(Sj(qt))≥ϕ\Phi(S_{j}(q_{t}))\geq\phi, in which case we may apply Lemma 2.10 to show that for x=λj(qt)x=\lambda_{j}(q_{t})

We now observe that t1t_{1} has been chosen to ensure

Let SS be a set of vertices such that μ(S)≤(2/3)(2m)\mu\left(S\right)\leq(2/3)(2m) and Φ(S)≤f1(ϕ)\Phi(S)\leq f_{1}(\phi), and let vv lie in SbgS^{g}_{b}. If Nibble is run with parameter bb, then there exists a t∈(thv−1,thv]t\in(t_{h_{v}-1},t_{h_{v}}] and a jj for which conditions (C.1-3) are satisfied.

4 Proof of Theorem 2.1

Fact (N.1) follows from conditions (C.1) and (C.2) in the algorithm. Given a set SS satisfying μ(S)≤(2/3)μ(V)\mu\left(S\right)\leq(2/3)\mu\left(V\right), the lower bound on the volume of the set SgS^{g} is established in Lemma 2.7. If Φ(S)≤f1(ϕ)\Phi(S)\leq f_{1}(\phi) and v∈Sbgv\in S^{g}_{b}, then Lemmas 2.17 and 2.15 show that the algorithm will output a non-empty set. Finally, lemma 2.8 tells us that if Φ(S)≤f1(ϕ)\Phi(S)\leq f_{1}(\phi), v∈Sgv\in S^{g} and the algorithm outputs a non-empty set CC, then it satisfies μ(C∩S)≥2b−1\mu\left(C\cap S\right)\geq 2^{b-1}.

It remains to bound the running time of Nibble. The algorithm will run for tlastt_{last} iterations. We will now show that with the correct implementation, each iteration takes time O((log⁡n)/ϵ)O((\log n)/\epsilon). Instead of performing a dense vector multiplication in step (3.a), the algorithm should keep track of the set of vertices uu at which rt(u)>0r_{t}(u)>0. Call this set VtV_{t}. The set VtV_{t} can be computed in time O(∣Vt∣)O(\left|V_{t}\right|) in step (3.b). Given knowledge of Vt−1V_{t-1}, the multiplication in step (3.a) can be performed in time proportional to

Finally, the computation in step (3.c) might require sorting the vectors in VtV_{t} according to rtr_{t}, which could take time at most O(∣Vt∣log⁡n)O(\left|V_{t}\right|\log n). Thus, the run-time of Nibble is bounded by

Nearly Linear-Time Graph Partitioning

In this section, we apply Nibble to design a partitioning algorithm Partition. This new algorithm runs in nearly linear-time. It computes an approximate sparsest cut with approximately optimal balance. In particular, we prove that there exists a constant α>0\alpha>0 such that for any graph G=(V,E)G=(V,E) that has a cut SS of sparsity α⋅θ2/log⁡3n\alpha\cdot\theta^{2}/\log^{3}n and balance b≤1/2b\leq 1/2, with high probability, Partition finds a cut DD with ΦV(D)≤θ\Phi_{V}(D)\leq\theta and bal(D)≥b/2\textbf{bal}\left(D\right)\geq b/2. Actually, Partition satisfies an even stronger guarantee: with high probability either the cut it outputs is well balanced,

or touches most of the edges touching SS,

The expected running time of Partition is O(mlog⁡7n/ϕ4)O(m\log^{7}n/\phi^{4}). Thus, it can be used to quickly find crude cuts.

Partition calls Nibble via a routine called Random Nibble that calls Nibble with carefully chosen random parameters. Random Nibble has a very small expected running time, and is expected to remove a similarly small fraction of any set with small conductance.

C=RandomNibble(G,ϕ)C=\mathtt{RandomNibble}(G,\phi) (1) Choose a vertex vv according to ψV\psi_{V}. (2) Choose a bb in 1,…,⌈log⁡m⌉1,\ldots,\left\lceil\log m\right\rceil according to Pr⁡[b=i]=2−i/(1−2−⌈log⁡m⌉).\Pr\left[b=i\right]=2^{-i}/(1-2^{-\left\lceil\log m\right\rceil}). (3) C=Nibble(G,v,ϕ,b)C=\mathtt{Nibble}(G,v,\phi,b).

Let mm be the number of edges in GG. The expected running time of Random Nibble is O(log⁡7m/ϕ4)O\left(\log^{7}m/\phi^{4}\right). If the set CC output by Random Nibble is non-empty, it satisfies

μ(C)≤(5/6)μ(V).\mu\left(C\right)\leq(5/6)\mu\left(V\right).

\mboxE[μ(C∩S)]≥μ(S)/4μ(V)\mbox{\bf E}\left[\mu\left(C\cap S\right)\right]\geq\mu\left(S\right)/4\mu\left(V\right).

The expected running time of Random Nibble may be upper bounded by

Parts (R.1) and (R.2) follow directly from part (N.1) of Theorem 2.1. To prove part (R.3), define αb\alpha_{b} by

So, ∑bαb=1\sum_{b}\alpha_{b}=1. For each ii, the chance that vv lands in SigS^{g}_{i} is αiμ(Sg)/μ(V)\alpha_{i}\mu\left(S^{g}\right)/\mu\left(V\right). Moreover, the chance that b=ib=i is at least 2−i2^{-i}. If vv lands in SigS^{g}_{i}, then by part (N.3) of Theorem 2.1, CC satisfies

2 Partition

We now define Partition and analyze its performance. First, define

D=Partition(G,θ,p)D=\mathtt{Partition}(G,\theta,p), where GG is a graph, θ,p∈(0,1)\theta,p\in(0,1). (0) Set W0=VW_{0}=V, j=0j=0 and ϕ=θ/7\phi=\theta/7. (1) While j<12m⌈lg⁡(1/p)⌉j<12m\left\lceil\lg(1/p)\right\rceil and μ(Wj)≥(3/4)μ(V)\mu\left(W_{j}\right)\geq(3/4)\mu\left(V\right), (a) Set j=j+1j=j+1. (b) Set Dj=RandomNibble(G[Wj−1],ϕ)D_{j}=\mathtt{RandomNibble}(G[W_{j-1}],\phi) (c) Set Wj=Wj−1−DjW_{j}=W_{j-1}-D_{j}. (2) Set D=D1∪⋯∪DjD=D_{1}\cup\dotsb\cup D_{j}.

On input a graph with mm edges, the expected running time of Partition is O(mlg⁡(1/p)log⁡7m/θ4)O\left(m\lg(1/p)\log^{7}m/\theta^{4}\right). Let DD be the output of Partition(G,θ,p)\mathtt{Partition}(G,\theta,p), where GG is a graph and θ,p∈(0,1)\theta,p\in(0,1). Then

μ(D)≤(7/8)μ(V)\mu\left(D\right)\leq(7/8)\mu\left(V\right),

If D≠∅D\not=\emptyset then ΦV(D)≤θ\Phi_{V}\left(D\right)\leq\theta, and

then with probability at least 1−p1-p, μ(D)≥μ(S)/2\mu\left(D\right)\geq\mu\left(S\right)/2.

In particular, with probability at least 1−p1-p either

μ(D)≥(1/4)μ(V)\mu\left(D\right)\geq(1/4)\mu\left(V\right), or

μ(S∩D)≥μ(S)/2\mu\left(S\cap D\right)\geq\mu\left(S\right)/2.

Property (P.3) is a little unusual and deserves some explanation. It says that for every set SS of low conductance, with high probability either DD is a large fraction of SS, or it is a large fraction of the entire graph. While we would like to pick just one of these properties and guarantee that it holds with high probability, this would be unreasonable: on one hand, there might be no big set DD of small conductance; and, on the other hand, even if SS is small the algorithm might cut out a large set DD that completely avoids SS.

The bound on the expected running time of Partition is immediate from the bound on the running time of RandomNibble.

Let joutj_{out} be the iteration at which Partition stops, so that D=D1∪⋯∪DjoutD=D_{1}\cup\dotsb\cup D_{j_{out}}. To prove (P.1), note that μ(Wjout−1)≥(3/4)μ(V)\mu\left(W_{j_{out}-1}\right)\geq(3/4)\mu\left(V\right) and so μ(D1∪⋯∪Djout−1)≤(1/4)μ(V)\mu\left(D_{1}\cup\dotsb\cup D_{j_{out}-1}\right)\leq(1/4)\mu\left(V\right). By part (R.2) of Lemma 3.1, μ(Djout)≤(5/6)μ(Wjout−1)\mu\left(D_{j_{out}}\right)\leq(5/6)\mu\left(W_{j_{out}-1}\right). So,

So, if μ(D)≤μ(V)/2\mu\left(D\right)\leq\mu\left(V\right)/2, then ΦV(D)≤ϕ\Phi_{V}\left(D\right)\leq\phi. On the other hand, we established above that μ(D)≤(7/8)μ(V)\mu\left(D\right)\leq(7/8)\mu\left(V\right), from which it follows that

Let jmax=12m⌈lg⁡(1/p)⌉j_{max}=12m\left\lceil\lg(1/p)\right\rceil. To prove part (P.3), let SS satisfy (28) and consider what happens if we ignore the second condition in the while loop and run Partition for all potential jmaxj_{max} iterations, obtaining cuts D1,…,D12m⌈lg⁡(1/p)⌉D_{1},\dotsc,D_{12m\left\lceil\lg(1/p)\right\rceil}. Let

hold at iteration kk, then with probability at least 1/21/2, one of these conditions will be satisfied by iteration k+12mk+12m. Thus, after all jmaxj_{max} iterations, one of conditions (P.3.a)(P.3.a) or (P.3.b)(P.3.b) will be satisfied with probability at least 1−p1-p. If the algorithm runs for fewer iterations, then condition (P.3.a)(P.3.a) is satisfied.

To simplify notation, let Ci=Dk+iC_{i}=D_{k+i} and Ui=Wk+iU_{i}=W_{k+i}, for 0≤i≤12m0\leq i\leq 12m. Assume that

For 1≤i≤12m1\leq i\leq 12m, define the random variable

As each set CiC_{i} is a subset of U0U_{0}, and the CiC_{i} are mutually disjoint, we will always have

and note that this ensures 0<β≤1/20<\beta\leq 1/2. Moreover, if ∑Xi≥β\sum X_{i}\geq\beta, then μ(S∩D≤k+12m)≥μ(S)/2\mu\left(S\cap D^{\leq k+12m}\right)\geq\mu\left(S\right)/2 will hold.

We need to show that, with probability at least 1/21/2, either an event EjE_{j} holds, or ∑Xi≥β\sum X_{i}\geq\beta. To this end, we now show that if neither EjE_{j} nor ∑i≤jXi≥β\sum_{i\leq j}X_{i}\geq\beta holds, then \mboxE[Xj+1]≥1/8m\mbox{\bf E}\left[X_{j+1}\right]\geq 1/8m. If ∑i≤jXi<β\sum_{i\leq j}X_{i}<\beta, then

We also have μ(S∩Uj)≤μ(S)≤(2/3)μ(Uj)\mu\left(S\cap U_{j}\right)\leq\mu\left(S\right)\leq(2/3)\mu\left(U_{j}\right), so the conditions of part (R.3)(R.3) of Lemma 3.1 are satisfied and

So, for all jj we have \mboxE[Yj]≥1/8m\mbox{\bf E}\left[Y_{j}\right]\geq 1/8m, and so \mboxE[∑j≤12mYj]≥3/2\mbox{\bf E}\left[\sum_{j\leq 12m}Y_{j}\right]\geq 3/2. On the other hand,

This implies that with probability at least 1/21/2 either ∑iXi≥β\sum_{i}X_{i}\geq\beta or some event EjE_{j} holds, which is what we needed to show. ∎

References