Lower-Stretch Spanning Trees

Similar documents
Lower-Stretch Spanning Trees

Distributed Deterministic Graph Coloring

Partitioning Metric Spaces

Approximation Algorithms and Hardness of Integral Concurrent Flow

Using Petal-Decompositions to Build a Low Stretch Spanning Tree

Multi-Embedding and Path Approximation of Metric Spaces

An Improved Approximation Algorithm for Requirement Cut

IS 709/809: Computational Methods in IS Research Fall Exam Review

arxiv: v1 [cs.ds] 20 Nov 2016

Embeddings of finite metric spaces in Euclidean space: a probabilistic view

An Improved Construction of Progression-Free Sets

Routing in Networks with Low Doubling Dimension

A necessary and sufficient condition for the existence of a spanning tree with specified vertices having large degrees

Aditya Bhaskara CS 5968/6968, Lecture 1: Introduction and Review 12 January 2016

On Notions of Distortion and an Almost Minimum Spanning Tree with Constant Average Distortion

Preliminaries. Graphs. E : set of edges (arcs) (Undirected) Graph : (i, j) = (j, i) (edges) V = {1, 2, 3, 4, 5}, E = {(1, 3), (3, 2), (2, 4)}

Spectral and Electrical Graph Theory. Daniel A. Spielman Dept. of Computer Science Program in Applied Mathematics Yale Unviersity

Part V. Matchings. Matching. 19 Augmenting Paths for Matchings. 18 Bipartite Matching via Flows

arxiv:cs/ v1 [cs.cc] 7 Sep 2006

Augmenting Outerplanar Graphs to Meet Diameter Requirements

Graph Partitioning Algorithms and Laplacian Eigenvalues

7 The structure of graphs excluding a topological minor

Counting independent sets up to the tree threshold

Algorithms, Geometry and Learning. Reading group Paris Syminelakis

Dominating Set. Chapter 26

Dominating Set. Chapter Sequential Greedy Algorithm 294 CHAPTER 26. DOMINATING SET

Lecture 13: Spectral Graph Theory

Summary: A Random Walks View of Spectral Segmentation, by Marina Meila (University of Washington) and Jianbo Shi (Carnegie Mellon University)

Approximation algorithms for cycle packing problems

NP Completeness and Approximation Algorithms

Siegel s theorem, edge coloring, and a holant dichotomy

Dominating Set. Chapter 7

Minimizing Interference in Wireless Networks. Yves Brise, ETH Zürich, Joint work with Marek, Michael, and Tobias.

A Note on Interference in Random Networks

Hardness of Embedding Metric Spaces of Equal Size

Finite Metric Spaces & Their Embeddings: Introduction and Basic Tools

On the Exponent of the All Pairs Shortest Path Problem

Topics in Approximation Algorithms Solution for Homework 3

Small distortion and volume preserving embedding for Planar and Euclidian metrics Satish Rao

Lecture 4 October 18th

ACO Comprehensive Exam October 14 and 15, 2013

Combinatorial Optimization

CS 435, 2018 Lecture 3, Date: 8 March 2018 Instructor: Nisheeth Vishnoi. Gradient Descent

MA015: Graph Algorithms

CMU Lecture 4: Informed Search. Teacher: Gianni A. Di Caro

Improved Quantum Algorithm for Triangle Finding via Combinatorial Arguments

Design and Analysis of Algorithms

Duality of LPs and Applications

CS 6820 Fall 2014 Lectures, October 3-20, 2014

Notes on Space-Bounded Complexity

1 Some loose ends from last time

11.1 Set Cover ILP formulation of set cover Deterministic rounding

Copyright 2013 Springer Science+Business Media New York

ON COST MATRICES WITH TWO AND THREE DISTINCT VALUES OF HAMILTONIAN PATHS AND CYCLES

2 Completing the Hardness of approximation of Set Cover

Design and Analysis of Algorithms

Approximation Algorithms and Hardness Results for Shortest Path Based Graph Orientations

Exact and Approximate Equilibria for Optimal Group Network Formation

Lecture 11 October 7, 2013

Lecture: Expanders, in theory and in practice (2 of 2)

Increasing the Span of Stars

Lecture 1 and 2: Random Spanning Trees

NP-Completeness. Until now we have been designing algorithms for specific problems

Lecture 12: Introduction to Spectral Graph Theory, Cheeger s inequality

Transactions on Algorithms. Two-stage Robust Network Design with Exponential Scenarios

25.1 Markov Chain Monte Carlo (MCMC)

arxiv: v1 [cs.ds] 2 Jan 2009

25 Minimum bandwidth: Approximation via volume respecting embeddings

Algorithms, Graph Theory, and the Solu7on of Laplacian Linear Equa7ons. Daniel A. Spielman Yale University

Distributed Distance-Bounded Network Design Through Distributed Convex Programming

arxiv: v1 [cs.dm] 12 Jun 2016

U.C. Berkeley CS278: Computational Complexity Professor Luca Trevisan 9/6/2004. Notes for Lecture 3

On Stochastic Decompositions of Metric Spaces

Cuts & Metrics: Multiway Cut

Lattices and the Shortest Vector Problem

Dominating a family of graphs with small connected subgraphs

Notes on Space-Bounded Complexity

The diameter of a long-range percolation graph

arxiv: v1 [cs.ds] 2 Oct 2018

CMPSCI 611: Advanced Algorithms

Markov Decision Processes

Approximating matching size from random streams

Enumerating minimal connected dominating sets in graphs of bounded chordality,

The Turán number of sparse spanning graphs

Cographs; chordal graphs and tree decompositions

16.1 Min-Cut as an LP

Sparse Fault-Tolerant BFS Trees. Merav Parter and David Peleg Weizmann Institute Of Science BIU-CS Colloquium

Distance Estimation and Object Location via Rings of Neighbors

Induced subgraphs of prescribed size

Finding normalized and modularity cuts by spectral clustering. Ljubjana 2010, October

EPTAS for Maximum Clique on Disks and Unit Balls

Low Complexity Variants of the Arrow Distributed Directory 1

Connections between exponential time and polynomial time problem Lecture Notes for CS294

CSC Linear Programming and Combinatorial Optimization Lecture 12: The Lift and Project Method

New Hardness Results for Undirected Edge Disjoint Paths

Bhaskar DasGupta. March 28, 2016

Lower Bounds for Testing Bipartiteness in Dense Graphs

arxiv: v1 [cs.ds] 4 May 2015

Exact Algorithms for Dominating Induced Matching Based on Graph Partition

Transcription:

Lower-Stretch Spanning Trees Michael Elkin Ben-Gurion University Joint work with Yuval Emek, Weizmann Institute Dan Spielman, Yale University Shang-Hua Teng, Boston University + 1

The Setting G = (V, E, ω) - a weighted undirected connected graph. dist G (u,w) - the distance in G between vertices u and w is defined as the length of the lightest path connecting u and w in G. Given a spanning tree T of G, and (u, w) E, stretch T (u,w) = dist T(u,w) dist G (u,w). Total Stretch: total stretch T (E) = (u,w) E stretch T (u,w). Average stretch: avg stretch T (E) = total stretch T(E) E. + 2

Irrelevance of Maximum Stretch The notion of maximum stretch, max stretch T (E) = max (u,w) E {stretch T(u,w)}, is not helpful in the context of trees, as even for the unweighted n-cycle, any spanning tree has maximum stretch equal to n 1, but average stretch 2 2/n. u w T + 3

Previous Work The problem was introduced by [Alon,Karp,Peleg,West,92]. Thm (AKPW) G = (V, E, ω), V = n, G = (V, T, ω), T E, with spanning tree avg stretch T (E) = exp(o( log nloglog n)). An alternative formulation (the dual problem): probabilistic spanning tree metric G = (V, E, ω), a probability distribution D over a support set τ = {T 1, T 2,..., T r } of spanning trees of G s.t. for every edge e E, IE T D τ(stretch T (e)) = exp(o( log nloglog n)). + 4

avg stretch IE(max stretch) Lower Bound: Ω(log n). Related work: virtual trees A virtual tree T of G is allowed to contain vertices or edges not present in the original graph, but it is required that (1) u, w V, dist T (u, w) dist G (u, w); (2) T spans V. T n/2

[Bartal,96] Much tighter bounds on the average stretch and the expected maximum stretch for this setting, specifically, O(log 2 n). [Bartal,98] O(log nloglog n). [Fakchraenphol,Rao,Talwar,2003] O(log n) - tight!! ([Bartal,96]: The l.b. of AKPW applies.) Many applications for on-line and approximation algorithms.

Our result An upper bound of O(log 2 nloglog n) for the original problem of [Alon-Karp-Peleg-West], improving their bound of exp(o( log nloglog n)). The result applies also for probabilistic spanning tree metrics. The gap is currently between O(log 2 nloglog n) and Ω(log n). + 5

Applications of Our Result 1. Approximate solving of symmetric diagonally dominant linear systems. Running time m log(1/ǫ) log O(1) n instead of m log(1/ǫ) exp{o( log nloglog n)}. Used when applying finite-element method to solve 2-dimensional elliptic PDEs. 2. Improving the upper bound on the value of the graph-theoretic game of AKPW (from exp{o( log nloglog n)} to O(log 2 nloglog n)). + 6

3. Improved approximation algorithm for the Minimum Communication Cost Tree Problem: This is a classic NP-hard problem, listed in [Garey,Johnson] book. Our result gives rise to the first poly-logarithmic approximation for this problem, improving the exp{o( log nloglog n)}-approximation of [Peleg,Reshef,98].

Overview of the Talk 1. Construction of spanning trees with stretch O(log 3 n) for unweighted graphs. (a) Introducing star-decomposition; stating the *-decomposition theorem. (b) Using *-decomposition to build low-stretch spanning trees. (c) Proving the *-decomposition theorem. 2. Improving the bound to O(log 2 nloglog n). 3. Extending the bound to weighted graphs. + 7

Construction of Trees with Stretch O(log 3 n) (For unweighted graphs.) Star-Decomposition (G = (V, E), x 0, ǫ) Partition {V 0, V 1,..., V k } of V with center vertex x 0 V 0, 0 < ǫ 1/2, and 1. i, 0 i k, G(V i ) is connected. 2. i, 0 i k, V i contains an anchor x i connected to y i V 0 by an edge (x i, y i ), called bridge. + 8

x k x 1 y k y 1 V 0 y 2 x 2 x 0

*-Decomposition (cont.) R/3 r 0 2R/3, where R = Rad(G, x 0 ), and r i = Rad(G(V i ), x i ), for i 0. r 0 + 1 + r i (1 + ǫ)r, i 1. (dist G (y i,x i ) = 1 for unweighted graphs). max{r 0 + dist G (y i,x i ) + r i i 1 } is the radius wrt x 0 of the graph induced by the *-decomposition. i 1, r i (2/3 + ǫ)r. + 9

The *-Decomposition THM (V 0, V 1,..., V k ) - the set of edges crossing between different components. The cost of *-decomposition is the number of edges in (V 0, V 1,..., V k ). THM: G = (V, E), x 0 V, 0 < ǫ 1/2, *-decomposition ({V 0, V 1,..., V k },(x 0, x 1,..., x k ),(y 1,..., y k )) with cost O((mlog m)/(ǫ R)), where m = E, R = Rad(G, x 0 ). Intuitively, only an R 1 -fraction of edges of the graph cross between different components. + 10

The Construction (of O(log 3 n)-stretch spanning trees based on the *-decomposition theorem.) Procedure ST(G, x 0 ): If Rad(G, x 0 ) logn then: 1. (V 0, V 1,..., V k, x, y) = StarDecomp(G, x 0, ǫ = 1/log n); 2. /* Recurse on each component building a tree rooted in the respective anchor. */ For i = 0,1,..., k do T i = ST(G(V i ), x i ); 3. Return(T = ( i T i ) i{(y i, x i )}); + 11

Else Return(T = BFS(G, x 0 )); r i T i x i 1 r 0 T 0

Analysis: Radius For t 0, K t (G) is the graph that one would obtain if the algorithm were forced to return output after t levels of recursion. K 0 (G) = G. Rad(K 1 (G), x 0 ) (1 + ǫ) Rad(K 0 (G), x 0 ). Consequently, Rad(K t (G), x 0 ) (1 + ǫ) t Rad(K 0 (G), x 0 ). Since the radii of components decrease by a constant factor (2/3 + ǫ) on each level of the recursion, it follows that t = O(log n). Set ǫ = 1 log n. Then Rad(T,x 0 ) = O(1) Rad(G, x 0 ), + 12

where T is the resulting tree. K (G) 2 C D F x

Analysis: Stretch The contribution of edges crossing between different components of the *-decomposition on the 1st level of the recursion to total stretch T (E) is: (u,w) (V 0,...,V k ) (u,w) (V 0,...,V k ) (u,w) (V 0,...,V k ) (u,w) (V 0,...,V k ) stretch T (u,w) = dist T (u,w) 2 Rad(T,x 0 ) O(1) Rad(G, x 0 ) = O( (V 0, V 1,..., V k ) R) O ( mlog m Rǫ ) R = O(mlog 2 m). + 13

On the 2nd level of the recursion: k i=0 (u,w) (V i0,v i1,...,v il ) k i=0 (u,w) (V i0,v i1,...,v il ) k O O O(log 2 m) i=0 k i=0 stretch T (u,w) O(1) Rad(G(V i ), x i ) = (V i0, V i1,..., V il ) r i k i=0 E(V i ) log m r i ǫ r i = = E(V i ) = O(m log 2 m). Since there are O(log n) recursion levels, the total stretch of the edges cut on some recursion level is O(mlog 3 m) = O(mlog 3 n).

In addition, there are edges that survive all the way to the bottom level of the recursion. Each of them has stretch O(log n). They contribute O(m log n) to the total stretch. total stretch T (E) = O(m log 3 n) avg stretch T (E) = O(log 3 n).

Constructing *-Decomposition: Forward Edges Forward Edges: Given V 0 = S V, the set of forward edges induced by S is F(S) = {(u v) (u, v) E, dist(s,u) + 1 = dist(s,v)}. S u v a forward edge + 14

Constructing *-Decomposition: Ideals For a vertex v V, the ideal I S (v) of v induced by S, is the set of all vertices reachable from v by directed forward edges, including v. S v I (v) S u + 15

Constructing *-Decomposition: Cones For a vertex v V, the cone of width l around v induced by S, denoted C S (l, v), is the set of vertices reachable from v by a path containing at most l non-forward edges (that are not in F(S)). (I S (v) = C S (0, v)) + 16

*-Decomposition Cut a ball S of radius roughly R/3 around x 0 such that the number of edges in the cut is O((mlog n)/r). Set V 0 = S. Pick an arbitrary vertex v on the ball-shell of S (ball-shell - the set of neighbors of vertices of S that do not belong to S). Build an ideal I S (v), and grow a cone C S (v, R log n. width at most The number of edges cut is E(C S). log2 n R R log n ) with + 17

Iterate until all vertices of the ball-shell are exhausted. Let {V 1, V 2,..., V k } be the set of cones. The number of edges that belong to the cone cuts is C Cones log2 n R E(C) = O(m log2 n R ). THM: G = (V, E), x 0 V, 0 < ǫ 1/2, *-decomposition ({V 0, V 1,..., V k },(x 0, x 1,..., x k ),(y 1,..., y k )) with cost O((mlog m)/(ǫ r)), where m = E.

S v I (v) S l Red points = Ball shell of S

Constructing *-Decomposition: Properties Lm: Let ψ = max{dist G (S,v) v V }. For every x S, and l 0 Rad(C S (l,x),x) ψ + 2l. Intuition for the proof: z C S (l, x). P = P(x, z) is the shortest x-z-path with l non-forward edges. If P F(S) then P ψ. Each non-forward edge is (in the worst-case) one step backwards. Each of the l steps backwards needs to be compensated by a step forward. + 18

S a0=x b0 a1 b1 C (l,x) S a2 b2=z + 19

A simplistic path P S a0=x C (l,x) S P a1 b0 z=b1 + 20

The Proof of the Lemma Assume that P is a simplistic path: P = (x = a 0,..., b 0,..., a 1,..., b 1 = z). dist(s,b 0 ) = dist(a 0,b 0 ), dist(s,a 1 ) dist(s,b 0 ) l, dist(s,b 1 ) = dist(s,a 1 ) + dist(a 1,b 1 ), ψ dist(s,z) = dist(s,b 1 ) dist(s, b 0 ) + dist(a 1,b 1 ) l, Hence the #forward edges in P is dist(a 0,b 0 ) + dist(a 1,b 1 ) ψ + l, P dist(a 0,b 0 ) + dist(a 1,b 1 ) + dist(b 0,a 1 ) (ψ + l) + l = ψ + 2l. QED + 21

Deleting Cones Lm: For a set S V, a vertex x S, and l 0, let V = V \ C S (l, x), S = S \ C S (l, x), and ψ = max{dist G (S,v) v V }. Then max{dist G(V ) (S,v) v V } ψ. x S C (l,x) S z P(v) v + 22

Proof: P(v) - the shortest path between S and v in G. All edges of P(v) are forward edges. If P(v) C S (l, x) then v C S (l, x). Hence for v V = V \ C S (l, x), P(v) lies entirely in V. dist G(V ) (S,v) P(v) ψ. QED + 23

Cutting a Ball [Awerbuch,Peleg,90],[Leighton,Rao,88] Start with a vertex v V, and set S = {v}, and δ = 3 log m R, for R = Rad(G, v). On every iteration test whether (1) E(Γ(S)) (1 + δ) E(S), where Γ(S) = {y x S, (x, y) E} S. If this condition holds, set S = Γ(S). Iterate until condition (1) is violated. Return(S). + 24

Cutting a Ball: Analysis Radius r of S satisfies: (1 + δ) r+1 m. Hence r log m δ 1 R/3. The number of edges in the cut is E(S,Γ(S) \ S) δ E(S) = O( log n R E(S) ). To build a ball of radius between R/3 and 2R/3, we start with S = {z dist G (v,z) R/3 }, for some vertex v, and use the same procedure. + 25

Cutting Cones The same technique applies to cutting cones. To keep the radius growth in check, use δ = O(log2 n) R. Hence the width of each cone is O( log δ m ) = O(R/log n). (The width of a cone is analogous to the radius of a ball.) The number of edges in cuts between different cones is C Cones δ C Cones δm = O E(C,Γ(C) \ C) E(C) ( log 2 n R m ). Hence ( the *-decomposition s cost is log O 2 n R ). m + 26

Other ways of Cutting Using [Linial,Saks, 92] (a.k.a [Bartal, 96]) cutting technique one can achieve similar parameters, and randomize the construction. In other words, this way one obtains a probability distribution over spanning trees with expected stretch of O(log 3 n) for every edge. Radius is chosen from the exponential distribution defined by the density function p(x) = λe λx with λ being O( R 1 ) for a ball, and log n R for each cone. + 27

Improving the Bound (to O(log 2 nloglog n)) The idea: If E(C) of a cone C is at most m 2 log m, then we saved log m steps of recursion. Otherwise, we grow the cone again with radius r = log R n. In this case the fraction δ of edges that are cut satisfies E(C) (1 + δ) r E. Hence δ log( E / E(C) ) r log m r = O log3/2 n R. In either case we save a factor of log n. + 28

Improving the Bound (cont.) More formally: Grow the cone C to radius r 1 2 R log n. 1. If E(C) m 2, leave C as is, and log m turn to constructing the next cone. 2. Otherwise, if E(C) > m 2 log m, grow C again to radius r 1 2 R log n. In this case the number of edges in the cut is (C) O log3/2 n R saving a factor of log n. E(C), + 29

Improving the Bound (cont.) In case 1 the fraction (C) E(C) can be as large as O(log2 n) R, but when summing up over all recursion levels, each edge e can participate in at most O( log m) cones (on different recursion levels) on which case 1 occurs. (Because on these levels the size of the respective cone shrinks significantly.) Altogether, we pay O( log2.5 n R m) in both cases, while maintaining the limited growth of the radius (from R to R(1 + 1 log n ) on each recursion level). + 30

Repetitive Growing Instead of doing this just twice, we can grow the cones repetitively t times, for an arbitrary parameter t. The only problem with increasing t is that to keep the radius growth as small as previously, we have to increase the radius from R to R(1 + 1 t 1 log n ) on each recursion level. For t = 3: Grow the cone C to radius r 1 3 R log n. 1. If E(C) m 2 log2/3 m, leave C as is. There can be at most log 1/3 m recursion levels of this kind, saving a factor of log 2/3 m. + 31

2. If E(C) > m 2 log2/3 m, grow it again to radius r, r 1 3 R log n. If E(C) < m 2 log1/3 m then δ log( E / E(C) ) r and so < log2/3 m r, (a) (C) E(C) log2/3 m r, saving a factor of log 1/3 m. (b) There can be at most log 2/3 m recursion levels of this kind, saving another factor of log 1/3 m. 3. Else if E(C) > m then 2 log1/3 m grow C once again to radius r, r 1 3 R log n.

In this case δ log( E / E(C) ) r log1/3 m r, and (C) E(C) log1/3 m r saving a factor of log 2/3 m., In all the three cases the radius grows from R to R(1 + 1 log n ), as required. Best choice of t (the number of steps of repetitive growing) is t = Θ(loglog n). This gives rise to the bound of O(log 2 nloglog n).

Extending the Argument to Weighted Graphs Extending the cutting lemma: Fix a vertex v. For r 0, let B r be a ball of radius r around v. Let (B r ) = {e = (u, w) u B r, w B r }, Vol(B r ) = E(B r (B r )), and cost( (B r )) = e (B r ) 1 length(e). The intuition for cost( (B r )): our analysis provides an upper bound L for the distance between u and w in the resulting tree for every edge e = (u, w) of a certain cut (B r ). The contribution of all edges of this cut to the total stretch is at most L length(e) = L cost( (B r)). e (B r ) + 32

Lm: λ, λ, 0 λ < λ, r [λ, λ ) s.t. cost( (B r )) Vol(B r) λ λ log ( m Vol(B λ ) ). In the unweighted case: cost( (B r )) = E( (B r )), λ = R/3, λ = 2R/3.

The Proof of the Weighted Cutting Lemma Let r 1 r 2... r n 1 be the distances of all the vertices v 1, v 2,..., v n 1 from v (their norms ). Assume wlog that dist G (v i,v j ) = r j r i. The generality is not lost here because dist G (v i,v j ) r j r i, and decreasing these distances does not change Vol(B r ), but may increase cost( (B r )) = e (B r ) 1 length(e). A crucial quantity: µ i = E(B i ) + (v j,v k ) E j i<k r i r j r k r j. + 33

(For every edge that crosses the boundary of B r, we account for its portion inside B r.) It follows that µ i+1 = µ i + cost( (B i )) (r i+1 r i ), E(B i ) µ i Vol(B i ) = E(B i (B i )). Let a, b be the indices s.t. r a 1 λ < r a, r b < λ r b+1. Trivial cases: 1. b < a In this case no vertex has norm between λ and λ. Choose r between them, and each edge crossing the rth latitude contributes to cost( (B r )) at most 1 length 1 λ, and thus λ (B r ) Vol( (B r)) λ λ Vol(B r) λ λ.

2. i [a 1, b] s.t. r i+1 r i log λ λ m Vol(B λ ) Analogously, choose r between r i and r i+1, and each edge contributes to cost( (B r )) at most 1 r i+1 r i.. The non-trivial case: [a, b], and i [a 1, b] where η = log r i+1 r i < λ λ η m Vol(B λ )., By the choice of a, Vol(B λ ) = Vol(B a 1 ), and so η = log m Vol(B a 1 ). Assume for contradiction that η cost( (B i )) > µ i λ, for all i [a 1, b]. λ

Then µ i+1 = µ i + cost( (B i ))(r i+1 r i ) > µ i + µ i η λ λ (r i+1 r i ) = µ i (1 + η λ λ (r i+1 r i )). Hence µ b+1 > µ a 1 Π b i=a 1 (1 + η λ λ (r i+1 r i )) bi=a 1 η µ a 1 2 λ λ (r i+1 r i ) = µ a 1 2 µ a 1 2 η = µ a 1 m. η λ λ (r b+1 r a 1 ) m E(B a 1 ) This is a contradiction.

Extension to the Weighted Case: Using Weighted Cutting A direct application of the lemma results in a bound of O(log 2 n lograd(g)). To improve, contract all edges of length at most Rad(G) n+1, and uncontract them on the lower levels of the recursion, when Rad(C) becomes smaller (where C is the cluster on which the recursion is invoked). This way each edge appears on O(log n) recursion levels, and contributes O(log 3 n) to the total stretch. + 34

Summary Proved that for every undirected (possibly weighted multi-)graph there exists a spanning tree with a polylogarithmic average stretch. Specifically, our bound is O(log 2 nloglog n). The same applies to probabilistic spanning tree metrics. The construction requires running time O(mlog n + nlog 2 n). Applications to efficient solving of symmetric diagonally-dominant linear systems. + 35

Introduced a novel graph decomposition technique (*-decomposition).

Open Problems Close the gap between the upper and lower bounds. A simpler problem: for planar unweighted graphs. Stronger l.b.s for AverageStretch + AlmostBFS? Recent progress: [Emek,Peleg,2006] Proved a logarithmic upper bound for series-parallel unweighted graphs. + 36