850 likes | 1.04k Views
Approximating the Minimum Spanning Tree Weight in Sublinear Time. Bernard Chazelle, Ronitt Rubinfeld and Luca Trevisan. SIAM Journal on Computing , Vol. 34 , No. 6 , July, 2005, pp. 1370-1379. Speaker: Chuang-Chieh Lin Advisor: Professor Maw-Shang Chang Computation Theory Laboratory
E N D
Approximating the Minimum Spanning Tree Weight in Sublinear Time Bernard Chazelle, Ronitt Rubinfeld and Luca Trevisan SIAM Journal on Computing, Vol. 34, No. 6, July, 2005, pp. 1370-1379. Speaker: Chuang-Chieh Lin Advisor: Professor Maw-Shang Chang Computation Theory Laboratory National Chung Cheng University
Bernard Chazelle, Department of Computer Science, Princeton University Department of Electrical Engineering and Computer Science, MIT Computer Science Division, University of California-Berkeley Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Outline • Introduction • Related works • An overview of the algorithm in this paper • Approximating the average degree • Estimating the number of connected components • Approximating the weight of an MST • Conclusions Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Introduction • Traditionally, a linear time algorithm has been held as the gold standard of efficiency. • In a wide variety of settings, large data sets have become increasingly common. • It is often desirable and sometimes necessary to find very fast algorithms which can assert nontrivial properties of the data in sublinear time. Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Introduction (contd.) • One direction of research that has been suggested is that of property testing. [RS96, GG98] • Property testing algorithms distinguish between inputs that have a certain property and those are far from having the property. • Property testing can be viewed as a natural type of approximation problem. Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Introduction (contd.) • Many of the property testers have led to very fast, even constant time, approximation schemes for associated problem. [GG98, FK99, FKV04, ADPR03] • For example, one can approximate the value of a maximum cut in a dense graph in time , with relative error at most , by looking at only O(–7log1/) locations in the adjacency matrix. [GG98] Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Outline • Introduction • Related works • An overview of the algorithm in this paper • Approximating the average degree • Estimating the number of connected components • Approximating the weight of an MST • Conclusions Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Related works • Finding the minimum spanning tree (MST) of a graph has a long, distinguished history [C00b, GH85, N97]. • Currently the best known deterministic algorithm was proposed by Chazelle [C00a]. • Chazelle’s algorithm runs in O(mα(m, n)) time, where n (resp., m) is the number of vertices (resp., edges) and αis inverse-Ackermann. Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Related works (contd.) • Karger, Klein and Tarjan [KKT95] gave a randomized algorithm which runs in linear expected time. • In this paper, we consider the problem of finding the weight of the minimum spanning tree (MST) of a graph. • There are conditions under which it is possible to approximate the weight of the MST of a connected graph in sublinear time in the number of edges. Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Outline • Introduction • Related works • An overview of the algorithm in this paper • Approximating the average degree • Estimating the number of connected components • Approximating the weight of an MST • Conclusions Computation Theory Lab., Dept. CSIE, CCU, Taiwan
An overview of the algorithm in this paper • Let G(i) denote the subgraph of G that contains only edges of weight at most i. • First, we estimate the number of connected components in each G(i). • Sample uniformly at random O(1/2) vertices in each G(i). • Estimate the size of the component that contains each sampled vertex by constructing “local trees” of some appropriate size defined by a random process. (Note that 0 < < ½ ) Computation Theory Lab., Dept. CSIE, CCU, Taiwan
An overview of the algorithm in this paper (contd.) • Second, we can in turn produce a good approximation for the weight of the MST of G. • Estimating the number of connected components in a graph runs in time within an additive error of n of the true count. • d is the average degree of the graph. • We can ensure that d can be approximated in O(d/) expected time and that at most n/4 vertices having degree greater than the estimate of d. Computation Theory Lab., Dept. CSIE, CCU, Taiwan
An overview of the algorithm in this paper (contd.) • The method for estimating the number of connected components in a graph is based on a similar principle as the property tester for graph connectivity given by Goldreich and Ron [GR02]. • The total running time is O(dw–2 log dw/). It does NOT depend on the number of vertices in G. Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Outline • Introduction • Related works • An overview of the algorithm in this paper • Approximating the average degree • Estimating the number of connected components • Approximating the weight of an MST • Conclusions Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Approximating the average degree • Pick C/ vertices of G at random, for some large constant C and set d* to be the maximum degree among them. • To find the degree of any one of them takes O(d) time on average, so the expected running time is O(Cd/) = O(d/). • (Imagine the vertex degrees sorted in nonincreasing order…☺) Let ρ be the rank of d*. • With high probability, ρ=Θ(n) • Why? Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Approximating the average degree (contd.) In my opinion, we can assume that C ≥ 1. • Pr({ρ> n}) = (1–)C/≤ e–C • Since (1 + )1/e, when 0. • Pr({ρ> n/C2}) = (1– /C2)C/ ≥ e–2/C (…☺…)>1–2/C. • Try to prove that f(x) = x + e–x > 1 0 /C2 ρ 1 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Approximating the average degree (contd.) • Lemma 1: In O(d/) expected time, we can compute a vertex degree d* that, with high probability, is the kth largest vertex degree for some k =Θ(n). • Note: k = Ω(n) alone implies that d* = O(d/). • Why? Computation Theory Lab., Dept. CSIE, CCU, Taiwan
0 k My weekly report… 1 Approximating the average degree (contd.) • By C. M. Lee: • Since k = Ω(n), we can assume that k ≥ qn for some positive constant q. • Consider the fact that kd*≤ ΣvV deg(v). • Why? • Thus d* = O(d/). Computation Theory Lab., Dept. CSIE, CCU, Taiwan
0 k 1 Approximating the average degree (contd.) • If we scale by the proper constant, we can ensure that at most n/4 vertices have degree higher thand*. Lemma 1: In O(d/) expected time, we can compute a vertex degree d* that, with high probability, is the kth largest vertex degree for some k = (n). Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Outline • Introduction • Related works • An overview of the algorithm in this paper • Approximating the average degree • Estimating the number of connected components • Approximating the weight of an MST • Conclusions Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Other preliminaries and notations • Letd denote the average degree of the graph. • Edge weights are in the set {1, …, w}. • Let c denote the number of connected components of the graph. • The algorithm requires no prior information about the graph besides w and n. (n is the number of vertices) Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Estimating the number of connected components • Let du be the number of edges incident upon it (including self-loops). • Let mu be the number of edges in u’s component in G. • Consider the following fact. FACT: Given a graph with vertex set V, for every component I V, This is concerned with a problem in the algorithm course ... Besides, we let du/mu = 2 for an isolated vertex u. (mu= 0 here) Computation Theory Lab., Dept. CSIE, CCU, Taiwan
The algorithm is as follows: Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Visit the single vertexui and all its dui incident edges log(mui/dui) approx-number-connected-components(G,,W,d*) Uniformly choose r = O(1/2) vertices u1,…,ur For each vertex ui, Set βi = 0 Take the first step of a BFS from ui (*) Flip a coin!! If (heads) & (# vertices visited in BFS < W) & (no visited vertex has degree > d*) then{ Resume BFS to double number of visited edges If this allows BFS to complete then{Ifmui = 0 set βi = 2; else set βi = dui2#coin flips/#edges visited in BFS } else go to (*) } Output At least 1? Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Illustration 1 for BFS with coin flips A B C D A G E F dA = 0 mA = 0 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
First step of a BFS from A A Resume BFS to double number of visited edges B C D D C B H G E F dA = 3 mA = 3 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A F B C D E D C G E F dA = 3 mA = 5 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A G B C D F E D G E F dA = 3 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A B C D G F E G E F dA = 3 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A B C D G F G E F dA = 3 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A B C D G G E F dA = 3 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A B C D G E F dA = 3 βA = dA21 / mA = 1 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Illustration 2 for BFS with coin flips A B C D A E dA = 0 mA = 0 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
First step of a BFS from A A Resume BFS to double number of visited edges B C D D C B H E dA = 3 mA = 3 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A B C D E D C E dA = 3 mA = 4 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A B C D E D E dA = 3 mA = 4 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A B C D E E dA = 3 mA = 4 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A B C D E dA = 3 βA = dA21 / mA = 1.5 mA = 4 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Illustration 3 for BFS with coin flips A B F C D E A G dA = 0 mA = 0 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
First step of a BFS from A A F Resume BFS to double number of visited edges E B D F C D E C B H G dA = 5 mA = 5 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A G F E B F C D E D C G dA = 5 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A G F B F C D E E D G dA = 5 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A G B F C D E F E G dA = 5 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A B F C D E G F G dA = 5 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A B F C D E G G dA = 5 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A B F C D E G dA = 5 βA = dA21 / mA = 5/3 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
Illustration 4 for BFS with coin flips A B C D A dA = 0 mA = 0 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
First step of a BFS from A A Resume BFS to double number of visited edges B C D D C B H dA = 3 mA = 3 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A B C D D C dA = 3 mA = 3 Computation Theory Lab., Dept. CSIE, CCU, Taiwan
A B C D D dA = 3 mA = 3 Computation Theory Lab., Dept. CSIE, CCU, Taiwan