Approximating the Minimum Spanning Tree Weight in Sublinear Time - PowerPoint PPT Presentation

Approximating the Minimum Spanning Tree Weight in Sublinear Time

1 / 85
Approximating the Minimum Spanning Tree Weight in Sublinear Time

Approximating the Minimum Spanning Tree Weight in Sublinear Time

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

18. 0 k My weekly report… 1 Approximating the average degree (contd.) • By C. M. Lee: • Since k = Ω(n), we can assume that k ≥ qn for some positive constant q. • Consider the fact that kd*≤ ΣvV deg(v). • Why? • Thus d* = O(d/). Computation Theory Lab., Dept. CSIE, CCU, Taiwan

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

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

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

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

23. The algorithm is as follows: Computation Theory Lab., Dept. CSIE, CCU, Taiwan

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

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

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

27. A F B C D E D C G E F dA = 3 mA = 5 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

28. A G B C D F E D G E F dA = 3 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

29. A B C D G F E G E F dA = 3 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

30. A B C D G F G E F dA = 3 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

31. A B C D G G E F dA = 3 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

32. A B C D G E F dA = 3 βA = dA21 / mA = 1 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

33. Illustration 2 for BFS with coin flips A B C D A E dA = 0 mA = 0 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

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

35. A B C D E D C E dA = 3 mA = 4 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

36. A B C D E D E dA = 3 mA = 4 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

37. A B C D E E dA = 3 mA = 4 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

38. A B C D E dA = 3 βA = dA21 / mA = 1.5 mA = 4 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

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

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

41. A G F E B F C D E D C G dA = 5 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

42. A G F B F C D E E D G dA = 5 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

43. A G B F C D E F E G dA = 5 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

44. A B F C D E G F G dA = 5 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

45. A B F C D E G G dA = 5 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

46. A B F C D E G dA = 5 βA = dA21 / mA = 5/3 mA = 6 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

47. Illustration 4 for BFS with coin flips A B C D A dA = 0 mA = 0 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

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

49. A B C D D C dA = 3 mA = 3 Computation Theory Lab., Dept. CSIE, CCU, Taiwan

50. A B C D D dA = 3 mA = 3 Computation Theory Lab., Dept. CSIE, CCU, Taiwan