Spanners With Low Average Stretch 2/25/2019 Spanners With Low Average Stretch Presented By: James Cassidy April 10, 2003 Chapter 18
18.1 Basic Properties of Average Stretch Spanners Definition 18.1.1 [Average stretch]: Let G = (V,E,) be a weighted multigraph and H a spanning subraph of G. Assume that the edge weights (e) are normalized so that the lightest edge has weight 1. For every subset of edges E’, denote Cost(E’,H,G) = Av_Stretch(G,H) = Corollary 18.1.3: For ever weighted n-vertex graph G=(V,E,), there exists a spanning subgraph H=(V,E’) such that |E’| = O(n) and Av_Stretch(H) = O(log n). Corollary 18.1.2: For every weighted n-vertex graph G=(V,E,) and for ever k > 1, there exists a (polynomial-time constructible) spanning subgraph H=(V,E’) such that |E’|<nn1/k and Av_Stretch(H)2k+1. Lemma 18.1.4: For every k1 and constant 0<c<1, there exist a constant d>0 and (infinitely many) n-vertex graphs G = (V,E) such that for every spanning subgraph H of G, if Av_Stretch(H) < ck, then H has at least dn1+1/k edges. April 10, 2003 18.1 Basic Properties of Average Stretch Spanners
18.1 Basic Properties of Average Stretch Spanners Proof: By the second claim of Lemma 15.1.2, there exist (infinitely man) n-vertex graphs G = (V,E) with girth k or higher and at least ¼n1+1/k edges. Fix d = (1 - c)/4. Consider such a graph G, and suppose that H is a spanning subgraph of G with fewer than dn1+1/k edges. Then the number of edges of G that were not taken into H is at least (c/n)n1+1/k.The high girth of G implies that for each of these edges, the shortest path connecting its endpoints in H is of length k or more. Therefore each of these edges contributes at least k to the summation in the expression for Av_Stretch(H). The edges of H contribute 1 each. Hence Av_Stretch(H) = (1 - c) + ck ck. Lemma 15.1.2: For every integer r 3 and n-vertex, m-edge graph G = (V,E) with Girth(G) r, m n1+2/(r-2)+n. For every integer r 3, there exist (infinitely many) n-vertex, m-edge graphs G = (V,E) with Girth(G) r and m ¼n1+1/r. Corollary 18.1.5: For ever constant 0 < c < 1, there exist a constant d > 0 and n-vertex graphs G=(V,E) such that for every spanning subgraph H of G, if H has fewer than dn edges, then Av_Stretch(H) clog(n). April 10, 2003 18.1 Basic Properties of Average Stretch Spanners
Low Average Stretch Trees April 10, 2003
18.2 Low Average Stretch Trees Definition 18.2.1 [Minimum average stretch]: Letting T range over all spanning trees of G, define Wheel Graph Spanning Tree of Wheel Graph Example 1: Rings with diagonals. Given n even, let Wn be the wheel graph consisting of an n-vertex ring Cn together with the chords joining antipodal points on the ring. Consider the following spanning trees for Wn. Let T1 be a tree consisting of all the edges of the ring save one. Then A better choice would be the tree T2 consisting of a path of n/2 edges on Cn and the (n/2-1) diagonals having one endpoint in the path. Here we have Hence Sopt(Wn)8/3-14/(3n). April 10, 2003 18.2 Low Average Stretch Trees
18.2 Low Average Stretch Trees Example 2: Two-dimensional grids. Lower bounding the value of Sopt(Gn) for the 2-dimensional grid Gn is difficult, and we only illustrate the construction by example: the tree T illustrated in Figure18.2 has Av_Stretch(T) = O(log(n)). Note that other choices of a spanning tree for the grid, such as the tree of Figure 18.3, might be far worse. Figure 18.2 Figure 18.3 April 10, 2003 18.2 Low Average Stretch Trees
Av_Stretch(T)=Cost(E,T,G)/|E|½(aln(n)-1). Thus, Sopt(G)½(aln(n)-1). Theorem 18.2.2: There exists a positive constant c such that, for n sufficiently large, there exists an unweighted n-vertex graph G such that Sopt(G)cln(n). Proof: The second claim of Lemma 15.1.2 implies, by an appropriate choice of parameters, that there exists a positive constant a such that, for n sufficiently large, there exists an n-vertex graph G with 2n edges such that every cycle in G is of length at least aln(n). (In particular, there are 4-regular graphs of girth aln(n) constructed by growing a tree to depth approximately log4n and appropriately linking the leaves.) Let T be any spanning tree in G. Then distT(u,v)/(e) aln(n)-1 for any nontree edge e=(u,v). Since more than half the edges are nontree edges, it follows that, for ever T, Av_Stretch(T)=Cost(E,T,G)/|E|½(aln(n)-1). Thus, Sopt(G)½(aln(n)-1). It is also known that the n-vertex grid necessitates average stretch (log n), and this result can also be generalized to multidimensional grids. April 10, 2003 18.2.2 Lower Bound on Average Stretch Trees
Constructing Average Stretch Trees on Unweighted Graphs April 10, 2003
18.3 Constructing Average Stretch Trees on Unweighted Graphs Lemma 18.3.1: For every n-vertex weighted multigraph G=(V,E,), there exists a multigraph G’=(V,E’,’) with at most n(n+1) edges such that Sopt(G)2•Sopt(G’) Overview of the construction: April 10, 2003 18.3 Constructing Average Stretch Trees on Unweighted Graphs
18.3 Constructing Average Stretch Trees on Unweighted Graphs Set j 1 and Gj G. Set x x(n) as defined above. While Ej do: Invoke S AV_PARTe(Gj) to partition Gj into clusters. Construct an SPT TC for each cluster C S. For each edge e of each of the constructed trees, add the corresponding edge of the original graph G to the output tree T. Construct the next multigraph Gj+1 by contracting each clust of S into a single vertex, discarding covered edges (connecting endpoints in the same cluster) from Ej and replacing each intercluster edge by a new edge connecting the corresponding contracted vertices. Set j = j + 1. AV_STR_TREE April 10, 2003 18.3 Constructing Average Stretch Trees on Unweighted Graphs
18.3 Constructing Average Stretch Trees on Unweighted Graphs Theorem 18.3.7 [Average stretch-unweighted]: There exists a constant c such that, for n sufficiently large, every n-vertex unweighted multigraph G satisfies Sopt(G) exp(c ). Lemma 18.3.2: |Ej| |E|/xj for every j 1. Corollary 18.3.3: Algorithm AV_STR_TREE terminates after at most (3lnn)/(lnx) iterations. Lemma 18.3.4: In iteration j, the radius of each cluster is bounded above by yj+1. Lemma 18.3.5: Cost(E,T,G) 4x(9ln n) (3ln n)/(ln x) |E|. Lemma 18.3.6: Av_Stretch(G,T) = exp(O( )). April 10, 2003 18.3 Constructing Average Stretch Trees on Unweighted Graphs
Constructing Average Stretch Trees on Weighted Graphs April 10, 2003
18.4 Constructing Average Stretch Trees on Weighted Graphs Overview Merge increases radius increases by weight of heaviest merged edge instead of just by one Growing cluster cannot be controlled Problems Modifications E broken into classes Ei, i1, according to weights Ei contains weights in range [yi-1,yi) y chosen parameter y = y(n,x) x same as in unweighted case Intuitively, we handle light edges first. Each class Ei first used in iteration i Each class Ei used for O(ln n/ln x) iterations after first use y controls two functions Clusters in graph Gj in jth iteration will have radius at most y/3 Governs weight ranges of classes (see second point) Radius of j-cluster is bounded by rj yj+1 Each merged layer increases radius by: yj + 2rj-1 3yj. April 10, 2003 18.4 Constructing Average Stretch Trees on Weighted Graphs
Construction Algorithm Parameters θ = 3ln n/ln x, ψ = 9θln n, y = xψ. Ei = {e|ω(e) [yi-1,yi)}. Eij = set of edges from Ei still uncovered at beginning of iteration j V(p)=Γpun(v) \ Γp-1un(v) set of vertices at unweighted distance exactly p from u in Ĝ. Êji(p)= set of edges of Êji that join a vertex in V(p) with a vertex in V(p)V(p-1) Set S . While Ĝ do: Choose arbitrarily a center vertex u in Ĝ. Let p* be the least p such that for all 1 I j, If no such p exists, then C V; Else C Set S S ∪C and remove the vertices of C from V AV_PART(Ĝ) ^ ^ April 10, 2003 18.4 Constructing Average Stretch Trees on Weighted Graphs
18.4 Constructing Average Stretch Trees on Weighted Graphs Analysis Lemma 18.4.1: |Eji| |Ei|/xj-1 for every 1 i j. Lemma 18.4.2: In iteration j, the radius of each cluster is bounded above by yj+1. Lemma 18.4.3: Cost(E,T,G) 4x2ψθ+1|E|. Lemma 18.4.4 [Average stretch]: There exists a constant c such that for n sufficiently large, every n-vertex weighted multigraph G satisfies Sopt(G) April 10, 2003 18.4 Constructing Average Stretch Trees on Weighted Graphs
Light Trees With Low Average Stretch Construct tree T with simultaneously low Av_Stretch(T) and low ω(T). Construct G’ = (V,E’) for G as in previous section, using k=log n. Stretch(G’) = O(log n) |E(G’)| = O(nΛ·log n) ω(G’) = O(Λ ·log n · ω(MST)) Compute shorted path Ў(e) in G’ for every edge e E Supp(e’) = {e E | e’ Ў(e)} Define g(e’) = Construct a weighted multigraph G’’(V,E’’, ω’’) by taking each edge e’ of G’ with multiplicity g(e’). Construct a tree T for G’’ as in Section 18.4 April 10, 2003 18.5 Light Trees With Low Average Stretch
18.5 Light Trees With Low Average Stretch Analysis Lemma 18.5.0: T is no heavier than G’, whose weight is guaranteed to be O(Λ·log n) times heavier than ω(MST). So, T O(Λ·log n) ·ω(MST) Lemma 18.5.1: The average stretch of the tree T satisfies Av_Stretch(G,T) c’log n·exp(c·sqrt(log n·log log n)) for some constants c,c’ Theorem 18.5.2: There exist constants c,c’,c’’ such that, given an n-vertex weighted graph G=(V,E,ω), there is a polynomially constructible spanning tree T such that Av_Stretch(T) c’log n·exp(c·sqrt(log n·log log n)) and ω(T) c’’Λ·log n· ω(MST) April 10, 2003 18.5 Light Trees With Low Average Stretch
18.5 Light Trees With Low Average Stretch Proof for Lemma 18.5.1 Proof: For an edge e = (u,w) in a graph H, denote distH(e) = distH(u,w). First observe that Since G’ guarantees a stretch factor of Av_Stretch(G’) Stretch(G’)=O(log n), it follows that there exists a constant c such that |E’’| c|E|·log n. Next, observe that for every edge e E, April 10, 2003 18.5 Light Trees With Low Average Stretch
Proof for Lemma 18.5.1 (continued) Therefore Combining the last two equations yields April 10, 2003 Chapter 18 (Basic Properties of Average Stretch Spanners)