Create Presentation
Download Presentation

Download Presentation

Approximating the Minimum Spanning Tree Weight in Sublinear Time

Download Presentation
## Approximating the Minimum Spanning Tree Weight in Sublinear Time

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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