cs0411064/lsst.tex
1: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2: % lsst.tex
3: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4: 
5: \documentclass[11pt]{article}
6: \usepackage{amsmath,amsfonts,amsthm,epsfig}
7: \usepackage{fancybox}
8: 
9: \textheight 8.5in
10: \topmargin -0.2in
11: \oddsidemargin 0.0in
12: \textwidth 6.5in
13: %\textwidth 6.8in
14: 
15: %\evensidemargin 0in
16: %\headheight 0pt
17: %\headsep 0pt
18: 
19: \input{prestuff}
20: 
21: \def\R{\mathbb{R}}
22: \def\Reals#1{\mathbb{R}^{#1}}
23: 
24: \def\defeq{\stackrel{\mathrm{def}}{=}}
25: 
26: \def\vs#1#2#3{#1_{#2},\ldots , #1_{#3}}
27: \def\orig#1{\hat{#1}}
28: \def\ind#1{\left[#1 \right]}
29: 
30: \def\form#1#2{\left<#1 | #2 \right>}
31: \def\form#1#2{#1^{T}#2}
32: 
33: \def\constBD{1}
34: 
35: \newcommand{\ceiling}[1]{\lceil#1\rceil}
36: \newcommand{\floor}[1]{\lfloor#1\rfloor}
37: 
38: \def\union{\cup}
39: \def\intersect{\cap}
40: \def\Union{\bigcup}
41: \def\Intersect{\bigcap}
42: 
43: \def\bdry#1{\partial \left(#1 \right)}
44: 
45: \def\edgbet#1{E \left(#1 \right)}
46: 
47: \def\vol#1{\mathrm{{vol}}\left(#1  \right)}
48: \def\area#1{\mbox{{\bf Area}}\left(#1  \right)}
49: \def\Gradius#1#2{\mathrm{rad}_{#1}\left(#2  \right)}
50: \def\cost#1{\mbox{cost}\left(#1  \right)}
51: 
52: 
53: \def\prob#1#2{\Pr_{#1}\left[ #2 \right]}
54: \def\expec#1#2{\mbox{\bf E}_{#1}\left[ #2 \right]}
55: \newcommand{\E}{\mbox{{\bf E}}}
56: 
57: \def\norm#1{\left\| #1 \right\|}
58: 
59: \def\gennorm#1#2{\left\| #2 \right\|_{#1}}
60: 
61: \def\setof#1{\left\{#1  \right\}}
62: \def\sizeof#1{\left|#1  \right|}
63: \def\abs#1{\left|#1  \right|}
64: 
65: \def\calS{\mathcal{S}}
66: 
67: \def\calL{\mathcal{L}}
68: \def\Gdist#1#2#3{\textrm{dist}_{#1} (#2, #3)}
69: \def\dist#1#2{\textrm{dist} (#1, #2)}
70: \def\tdist#1#2{\textrm{dist}_{#1} (#2)}
71: \def\stretch#1#2{\textrm{stretch}_{#1} (#2)}
72: \def\avestretch#1#2{\textrm{ave-stretch}_{#1} (#2)}
73: 
74: \newcommand{\BallShell}[2]{\ensuremath{{\mathop{\mathrm{BS}}\nolimits}({#1},
75: {#2})}}
76: \newcommand{\AS}[1]{\ensuremath{{\mathop{\mathrm{AS}}\nolimits}
77: ({#1})}}
78: \newcommand{\TS}[1]{\ensuremath{{\mathop{\mathrm{TS}}\nolimits}
79: ({#1})}}
80: \newcommand{\GraphSequence}[1]{\ensuremath{\sigma({#1})}}
81: \newcommand{\Contracted}[1]{\ensuremath{\widetilde{#1}}}
82: \newcommand{\OriginalVertices}[1]{\ensuremath{\chi ({#1})}}
83: \newcommand{\AvoidOverfull}[0]{\linebreak}
84: 
85: \newenvironment{fminipage}%
86:   {\begin{Sbox}\begin{minipage}}%
87:   {\end{minipage}\end{Sbox}\fbox{\TheSbox}}
88: 
89: \newenvironment{algbox}[0]{\vskip 0.2in
90: \noindent
91: \begin{fminipage}{6in}
92: }{
93: \end{fminipage}
94: \vskip 0.2in
95: }
96: \newenvironment{tengalgbox}[0]{\vskip 0.0in
97: \noindent
98: \begin{fminipage}{3.45in}
99: }{
100: \end{fminipage}
101: \vskip 0.1in
102: }
103: \newcounter{bean}
104: \newcounter{bean2}
105: 
106: \newenvironment{tightlist}%
107: {\begin{list}{}{\usecounter{bean}%
108: %  \setlength{\topsep}{0em}
109: %  \setlength{\parsep}{0em}
110:   \setlength{\partopsep}{0em}
111: %  \setlength{\itemsep}{0em}
112: %  \setlength{\leftmargin}{\labelwidth}
113:   \setlength{\leftmargin}{0em}
114: %  \setlength{\labelsep}{0em}
115:   \setlength{\labelwidth}{0em}
116: }}%
117: {\end{list}}
118: 
119: \newenvironment{tightlist2}%
120: {\begin{list}{}{\usecounter{bean}%
121:   \setlength{\topsep}{0em}
122:   \setlength{\parsep}{0em}
123:   \setlength{\partopsep}{0em}
124: %  \setlength{\itemsep}{0em}
125: %  \setlength{\leftmargin}{\labelwidth}
126:   \setlength{\leftmargin}{1.3em}
127: %  \setlength{\labelsep}{0em}
128: %  \setlength{\labelwidth}{1em}
129: }}%
130: {\end{list}}
131: 
132: \newenvironment{tightlistA}%
133: {\begin{list}{}{\usecounter{bean}%
134:   \setlength{\topsep}{0em}
135:   \setlength{\parsep}{0em}
136:   \setlength{\partopsep}{0em}
137: %  \setlength{\itemsep}{0em}
138: %  \setlength{\leftmargin}{\labelwidth}
139:   \setlength{\leftmargin}{1.7em}
140: %  \setlength{\labelsep}{0em}
141: %  \setlength{\labelwidth}{1em}
142: }}%
143: {\end{list}}
144: 
145: \newenvironment{tightlistB}%
146: {\begin{list}{}{\usecounter{bean}%
147:   \setlength{\topsep}{0em}
148:   \setlength{\parsep}{0em}
149:   \setlength{\partopsep}{0em}
150: %  \setlength{\itemsep}{0em}
151: %  \setlength{\leftmargin}{\labelwidth}
152: %  \setlength{\leftmargin}{0.5em}
153: %  \setlength{\labelsep}{0em}
154: %  \setlength{\labelwidth}{1em}
155: }}%
156: {\end{list}}
157: 
158: \newenvironment{tightlist3}%
159: {\begin{list}{}{\usecounter{bean}%
160: %  \setlength{\partopsep}{0em}
161:   \setlength{\leftmargin}{0.5em}
162:   \setlength{\labelwidth}{0.5em}
163: }}%
164: {\end{list}}
165: 
166: 
167:     \newcommand\xx{\boldsymbol{\mathit{x}}}
168: \newcommand\yy{\boldsymbol{\mathit{y}}}
169: 
170: \newcommand\xxc{\boldsymbol{\mathit{\widetilde{x}}}}
171: \newcommand\yyc{\boldsymbol{\mathit{\widetilde{y}}}}
172: 
173: \def\mbar{\widehat{m}}
174: 
175: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
176: \begin{document}
177: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
178: 
179: \title{Lower-Stretch Spanning Trees}
180: 
181: \author{
182: Michael Elkin\thanks{Part of this work was done in Yale University,
183: and was supported by the
184:  DoD University Research Initiative (URI)
185: administered by the Office of Naval Research under Grant
186: N00014-01-1-0795. The work was also partially supported by
187: the Lynn and William Frankel Center for Computer
188:  Sciences.}\\
189: Department of Computer Science\\
190: Ben-Gurion University of the Negev
191: \and
192: Yuval Emek\\
193: Department of Computer Science\\
194: and Applied Mathematics\\
195: Weizmann Institute of Science
196: \and
197: Daniel A. Spielman\thanks{
198: Partially supported by NSF grant CCR-0324914.
199: Part of this work was done at Yale University.}\\
200: Department of Mathematics \\
201: Massachusetts Institute of Technology\\
202: \and
203: Shang-Hua Teng\thanks{Partially supported by NSF grants CCR-0311430
204: and ITR CCR-0325630.}\\
205: Department of Computer Science\\
206: Boston University and\\
207: Akamai Technologies Inc.
208: }
209: 
210: \date{\ }
211: 
212: \maketitle
213: 
214: \begin{abstract}
215: {
216: We show that every
217:   weighted connected graph $G$
218:   contains as a subgraph a
219:   spanning tree into which the edges of $G$ can be embedded
220:   with average stretch
221:   $O (\log^{2} n \log \log n)$.
222: Moreover, we show that this tree can be constructed in time
223:   $O (m \log n + n \log^2 n)$ in general, and in time $O (m\log n)$ if
224:   the input graph is unweighted.
225: The main ingredient in our construction is a
226:    novel graph decomposition technique.
227: 
228: Our new algorithm can be immediately used to
229:   improve the running time of
230:   the recent solver for symmetric diagonally dominant linear systems
231:   of Spielman and Teng from
232: \[
233: m 2^{ \left(O (\sqrt{\log n\log\log n}) \right) }\ \mbox{to} \ m \log^{O (1)}n,
234: \]
235: %  to
236: %\[
237: %m \log^{O (1)}n,
238: %\]
239: and to
240:   $O (n \log^{2} n \log \log n)$ when the system
241:   is planar.
242: Our result can also be used to improve several earlier approximation
243:   algorithms that use low-stretch spanning trees.
244: }
245: \end{abstract}
246: 
247: % A category with the (minimum) three required fields
248: %A category including the fourth, optional field follows...
249: 
250: \vspace{1mm}
251: \noindent
252: {\bf Categories and Subject Descriptors:} F.2 {[Theory of Computation]}: {Analysis of Algorithms and
253: Problem Complexity}
254: 
255: \vspace{1mm}
256: \noindent
257: {\bf General Terms:} Algorithms, Theory.
258: 
259: \vspace{1mm}
260: \noindent
261: {\bf Keywords:} Low-distortion embeddings, probabilistic tree metrics,
262:   low-stretch spanning trees.
263: 
264: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
265: \section{Introduction}\label{sec:intro}
266: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
267: 
268: Let $G = (V,E,w)$ be a weighted connected graph, where $w$ is a function from $E$ into the positive reals. We define the length of each edge $e \in E$ to be the reciprocal of its weight:
269: \[
270: d (e) = 1/w (e).
271: \]
272: 
273: Given a spanning tree $T$ of $V$, we define the distance in $T$
274: between a pair of vertices $u,v \in V$, $\tdist{T}{u,v}$, to be the
275: sum of the lengths of the edges on the unique path in $T$ between $u$
276: and $v$. We can then define the stretch\footnote{Our definition
277:   of the stretch differs slightly from that used in \cite{AKPW}:
278:   ${\tdist{T}{u,v}}/{\tdist{G}{u,v}}$, where
279:   $\tdist{G}{y,v}$ is the length of the shortest-path between $u$ and $v$.
280:   See Subsection~\ref{subsec:applications} for a discussion of the difference.}
281:  of an edge $(u,v) \in E$ to be
282: \[
283: \stretch{T}{u,v} = \frac{\tdist{T}{u,v}}{d (u,v)},
284: \]
285: and the average stretch over all edges of $E$ to be
286: \[
287: \avestretch{T}{E} =
288:   \frac{1}{\sizeof{E}}
289:   \sum _{(u,v) \in E} \stretch{T}{u,v}.
290: \]
291: 
292: Alon, Karp, Peleg and West~\cite{AKPW}
293:   proved that every weighted
294:   connected graph $G = (V,E,w)$ of $n$ vertices and $m$ edges contains a
295: spanning tree $T$ such that
296: \[
297: \avestretch{T}{E} = \exp \left(O (\sqrt{\log n \log \log n}) \right),
298: \]
299: and that there exists a collection $\tau = \{T_1,\ldots,T_h\}$ of
300: spanning trees of $G$ and a probability distribution $\Pi$ over $\tau$
301: such that for every edge $e \in E$,
302: \[
303: \expec{T  \leftarrow \Pi}{\stretch{T}{e}} = \exp \left(O (\sqrt{\log n
304: \log \log n}) \right).
305: \]
306: 
307: 
308: The class of weighted graphs considered in this paper
309:   includes multi-graphs that may contain weighted self-loops
310:   and multiple weighted-edges between a pair of vertices.
311: The consideration of multi-graphs is essential
312:   for several results (including some in \cite{AKPW}).
313: 
314: The result of \cite{AKPW} triggered the study of low-distortion
315:   embeddings into {\em probabilistic tree metrics}.
316: Most notable in this context is the work of Bartal \cite{Bartal1, Bartal2}
317:   which shows that if the requirement that the trees $T$
318:   be {\em subgraphs} of $G$ is abandoned, then the upper bound of
319:   \cite{AKPW} can be improved by finding a tree whose distances
320:   approximate those in the original graph with average distortion
321:   $O(\log n \cdot \log\log n)$.
322: On the negative side, a lower bound of
323:   $\Omega(\log n)$ is known for both scenarios \cite{AKPW,Bartal1}. The
324:   gap left by Bartal was recently closed  by  Fakcharoenphol, Rao, and
325:   Talwar \cite{FRT}, who have shown a tight upper bound of $O(\log n)$.
326: 
327: However, some applications of graph-metric-approximation require trees
328:   that are subgraphs.
329: Until now, no progress had been made on reducing
330:   the gap between the upper and lower bounds proved in \cite{AKPW}
331:   on the average stretch of subgraph spanning trees.
332: The bound achieved in \cite{AKPW} for general weighted graphs
333:   had been the best bound known for {\em unweighted} graphs,
334:   even for {\em unweighted planar} graphs.
335: 
336: In this paper\footnote{
337: In the submitted version of this paper, we proved the weaker bound
338:   on average stretch of $O ((\log n \log \log n)^{2})$.
339: The improvement in this paper comes from re-arranging the arithmetic
340:   in our analysis.
341: Bartal~\cite{BartalComm} has obtained a similar improvement by
342:   other means.
343: }%
344: , we significantly narrow this gap by improving the upper
345:   bound of \cite{AKPW} from $\exp ( O(\sqrt{\log n\log\log n}))$ to
346:   $O(\log^{2} n \log\log n)$.
347: Specifically, we give an algorithm
348:   that for every weighted connected graph $G = (V,E, w)$, constructs a
349:   spanning tree $T \subseteq E$ that satisfies \AvoidOverfull{}
350:   \( \avestretch{T}{E} = O( \log^{2} n \log \log n) \).
351: The running time of our algorithm is
352:   \( O(m \log n + n\log^2 n) \) for weighted graphs,
353:   and \( O(m \log n) \) for unweighted.
354: Note that the input graph need not be simple and its number of edges
355:    $m$ can be much larger than $n \choose 2$.
356: However, as  proved in \cite{AKPW}, it is enough to
357:   consider graphs with at most $n (n+1)$ edges.
358: 
359: We begin by presenting a simpler algorithm that guarantees
360:   a weaker bound, $\avestretch{T}{E} = O(\log^3 n)$.
361: As a consequence of the result in \cite{AKPW} that the existence of a
362:   spanning tree with average stretch $f(n)$ for every weighted graph
363:   implies the existence of a distribution of spanning trees in which
364:   every edge has expected stretch $f (n)$,
365:   our result implies that for every weighted
366:   connected graph $G = (V,E,w)$ there
367:   exists a probability distribution $\Pi$ over a set  $\tau =
368:   \{T_1,\ldots,T_h\}$ of spanning trees ($T \subseteq E$ for every $T
369:   \in \tau$) such that for every $e \in E$, $\expec{T  \leftarrow \Pi
370:   }{\stretch{T}{e}} = O(\log^{2} n\log\log n).$
371: Furthermore, our
372:   algorithm itself can be adapted to produce a probability distribution
373:   $\Pi$ that guarantees a slightly weaker bound of $O(\log^3 n)$ in time
374:   $O(m \cdot \log^2 n)$.
375: So far, we have not yet been able to verify
376:   whether our algorithm can be adapted to produce the bound of \AvoidOverfull{}
377:   $O(\log^{2}  n \cdot \log\log n)$ within similar time limits.
378: 
379: \subsection{Applications} \label{subsec:applications}
380: 
381: For some of the applications listed below it is essential to define
382: the stretch of an edge \( (u,v) \in E \) as in \cite{AKPW}, namely,
383: \( \stretch{T}{u,v} = \tdist{T}{u,v} / \tdist{G}{u,v} \). The
384: algorithms presented in this paper can be adapted to handle this
385: alternative definition for stretch simply by assigning new weight \(
386: w'(u,v) = 1 / \tdist{G}{u,v} \) to every edge \( (u,v) \in E \) (the
387: lengths of the edges remain unchanged). Observe that the new weights
388: can be computed in a preprocessing stage independently of the
389: algorithms themselves, but the time required for this computation
390: may dominant the running time of the algorithms.
391: 
392: \subsubsection{Solving Linear Systems}
393: 
394: Boman and Hendrickson~\cite{BomanHendricksonAKPW}
395:   were the first to realize that low-stretch spanning trees
396:   could be used to solve symmetric diagonally dominant linear systems.
397: They  applied the spanning
398:   trees of~\cite{AKPW} to design solvers that run in time
399: 
400: \[
401: m^{3/2} 2^{O (\sqrt{\log n \log \log n})}
402:   \log (1/\epsilon ),
403: \]
404: where $\epsilon $ is the precision of the solution.
405: Spielman and Teng \cite{SpielmanTengPrecon} improved their results
406:   to
407: \[
408: m 2^{O (\sqrt{\log n\log\log n}) } \log (1/\epsilon).
409: \]
410: 
411: 
412: Unfortunately, the trees produced by the algorithms of Bartal \cite{Bartal1, Bartal2}
413:    and Fakcharoenphol, Rao, and Talwar \cite{FRT} cannot be used
414:    to improve these linear solvers, and it is currently not known
415:    whether it is possible
416:    to solve linear systems efficiently using trees that are not subgraphs.
417: 
418: By applying the low-stretch spanning trees developed in
419:   this paper, we can reduce the time for solving these linear systems
420:   to
421: \[
422: m \log^{O (1)}n \log (1/\epsilon),
423: \]
424:   and to $O (n \log^{2} n \log \log n \log (1/\epsilon))$ when the
425:   systems are planar.
426: Applying a recent reduction of Boman, Hendrickson and Vavasis \cite{BHV},
427:   one obtains a $O (n \log^{2} n \log \log n  \log (1/\epsilon))$ time algorithm
428:   for solving the linear systems that arise when
429:   applying the finite element method to solve two-dimensional elliptic
430:   partial differential equations.
431: 
432: 
433: 
434: \subsubsection{Alon-Karp-Peleg-West Game}
435: 
436: Alon, Karp, Peleg and West~\cite{AKPW} constructed low-stretch
437: spanning trees to upper-bound the value of a zero-sum two-player game
438: that arose in their analysis of an algorithm for the $k$-server
439: problem: at each turn, the {\em tree player} chooses a spanning tree
440: $T$ and the {\em edge player} chooses an edge $e\in E$,
441: simultaneously. The payoff to the edge player is $0$ if $e \in T$ and
442: $\stretch{T}{e}+1$ otherwise. They showed that if every
443: $n$-vertex weighted connected graph $G$  has a spanning tree $T$
444: of average stretch $f (n)$, then the value of this game is at most \( f
445: (n) + 1 \). Our new result lowers the bound on the value of this
446: graph-theoretical game from \( \exp \left(O (\sqrt{\log n \log \log
447: n}) \right) \) to \( O\left( \log^{2} n\log\log n \right) \).
448: 
449: 
450: \subsubsection{MCT Approximation}
451: 
452: Our result can be used to improve drastically the upper bound on the
453: approximability of the \emph{minimum communication cost spanning tree}
454: (henceforth, \emph{MCT}) problem. This problem was introduced in
455: \cite{Hu}, and is listed as [ND7] in \cite{GareyJohnson} and \cite{NPKann}.
456: 
457: The instance of this problem is a weighted graph $G = (V,E,w)$, and a
458: matrix $\{r(u,v) \mid u,v \in V\}$ of nonnegative requirements. The
459: goal is to construct a spanning tree $T$ that minimizes $c(T) =
460: \sum_{u,v \in V} r(u,v) \cdot \tdist{T}{u,v}$.
461: 
462: Peleg and Reshef \cite{PelReshef} developed a
463:   $2^{O(\sqrt{\log n\cdot \log\log n})}$ approximation
464:   algorithm for the MCT problem on metrics
465:    using the result of \cite{AKPW}.
466: A similar approximation ratio can be achieved for arbitrary graphs.
467: Therefore our result can be used to produce an
468:    efficient $O(\log^{2} n  \log\log n )$
469:   approximation algorithm for the MCT problem on arbitrary graphs.
470: 
471: \subsubsection{Message-Passing Model}
472: 
473: Embeddings into probabilistic tree metrics have been extremely useful
474: in the context of approximation algorithms
475: (to mention a few:
476: buy-at-bulk network design \cite{AwerbuchAzar}, graph Steiner problem
477: \cite{GargKonjevodRavi}, covering Steiner problem \cite{KonjRavi}).
478: However, it is not clear that these algorithms
479:   can be implemented in  the
480:   message-passing model of distributed computing (see \cite{PelegBook}).
481: In this model, every vertex of the input graph hosts a processor, and
482:   the processors communicate over the edges of the graph.
483: 
484: Consequently, in this model executing an algorithm that starts by
485:   constructing a non-subgraph spanning tree of the network, and then
486:   solves a problem whose instance is this tree is very problematic,
487:   since direct communication over the links of this ``virtual'' tree is
488:   impossible.
489: This difficulty disappears if the tree in this scheme is a
490:   {\em subgraph } of the graph.
491: We believe that our result will
492:   enable the adaptation of the these approximation algorithms to
493:   the message-passing model.
494: 
495: 
496: \subsection{Our Techniques}
497: 
498: We build our low-stretch spanning trees by recursively applying
499:   a new graph decomposition
500:   that we call a \textit{star-decomposition}.
501: A star-decomposition of a graph is a partition of the vertices
502:   into sets that are connected into a star: a central set is connected
503:   to each other set by a single edge (see Figure~\ref{fig:star}).
504: We show how to find star-decompositions that do not cut too many
505: short edges and such that the radius of the graph induced by the
506: star decomposition is not much larger than the radius of the
507: original graph.
508: 
509: Our algorithm for finding a low-cost star-decomposition applies a
510: generalization of the ball-growing technique of
511: Awerbuch~\cite{Awerbuch} to grow \textit{cones}, where the cone at a
512: vertex $x$ induced by a set of vertices $S$ is the set of vertices
513: whose shortest path to $S$ goes through $x$.
514: 
515: \subsection{The Structure of the Paper}
516: 
517: In Section \ref{sec:preliminaries}, we define our notation.
518: In Section \ref{sec:treelogcube}, we introduce
519:   the star decomposition of a weighted connected graph.
520:   We then  show how to use this decomposition to
521:     construct a subgraph spanning tree
522:     with average stretch $O (\log^{3} n)$.
523: In Section \ref{sub:cutting}, we present our
524:   star decomposition algorithm.
525: In Section \ref{sec:Improved}, we refine our construction and improve
526:   the average stretch to $O \left(\log^{2} n\log\log n \right)$.
527: Finally, we conclude the paper in Section
528: 6
529: %\ref{sec:conclusion}
530: and list
531:   some open questions.
532: %Due to space limitations, most proofs are deferred to the appendix.
533: 
534: 
535: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
536: \section{Preliminaries}\label{sec:preliminaries}
537: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
538: 
539: Throughout the paper, we assume that the input graph is a weighted
540: connected multi-graph \( G = (V, E, w) \), where \(w\) is a \emph{weight}
541: function from \(E\) to the positive reals. Unless stated otherwise, we let
542: \(n\) and \(m\) denote the number of vertices and the number of edges
543: in the graph, respectively. The \emph{length} of an edge \( e \in E \) is
544: defined as the reciprocal of its weight, denoted by \( d(e) = 1 / w(e)
545: \).
546: %Moreover, the graphs throughout the paper are not assumed
547: %to be simple, i.e., they may contain multiple edges and self
548: %loops. This may be crucial for some of our arguments.
549: 
550: 
551: \begin{tightlist}
552: \item For two vertices $u,v \in V$,
553:   we define $\dist{u}{v}$ to be the length of the shortest
554:   path between $u$ and $v$ in $E$.
555:   We write $\tdist{G}{u,v}$ to emphasize that the distance is in the
556:   graph $G$.
557: 
558: \item
559: For a set of vertices, $S \subseteq V$,
560:   $G (S)$ is the subgraph induced by vertices in $S$.
561:   We write $\tdist{S}{u,v}$ instead of $\tdist{G (S)}{u,v}$
562:   when $G$ is understood.
563:   $E (S)$ is the set of edges with both endpoints in $S$.
564: 
565: 
566: \item
567: For $S, T \subseteq V$,
568: $E (S,T)$ is the set of edges with one endpoint in $S$
569:   and the other in $T$.
570: 
571: \item The \emph{boundary} of a set $S$, denoted $\bdry{S}$, is the set of edges
572: with exactly one endpoint in $S$.
573: 
574: \item
575: For a vertex $x\in V$, $\tdist{G}{x,S}$ is the length of the shortest path
576:   between $x$ and a vertex in $S$.
577: 
578: \item A \emph{multiway partition} of $V$ is a collection
579:   of pairwise-disjoint sets
580:   $\setof{\vs{V}{1}{k}}$ such that
581:   $\bigcup_{i} V_{i}= V$.
582: The \emph{boundary} of a multiway partition, denoted
583:   $\bdry{\vs{V}{1}{k}}$, is the set of edges with endpoints
584:   in different sets in the partition.
585: 
586: \item
587: The \emph{volume} of a set \(F\) of edges, denoted $\vol{F}$, is the
588: size of the set $|F|$.
589: 
590: \item
591: The \emph{cost} of a set \(F\) of edges, denoted \( \cost{F} \), is
592: the sum of the weights of the edges in \(F\).
593: 
594: \item
595: The \emph{volume} of a set \(S\) of vertices, denoted \( \vol{S} \),
596: is the number of edges with at least one endpoint in \(S\).
597: 
598: \item
599: The \emph{ball} of radius $r$ around a vertex $v$, denoted $B
600: (r,v)$, is the set of vertices of distance at most $r$ from $v$.
601: 
602: \item
603: The \emph{ball shell} of radius \(r\) around a vertex \(v\), denoted
604: \( \BallShell{r}{v} \), is the set of vertices right outside \( B(r,v) \),
605: that is, \( \BallShell{r}{v} \) consists of every vertex \( u \in V - B(r,v)
606: \) with a neighbor \( w \in B(r,v) \) such that \( \dist{v}{u} =
607: \dist{v}{w} + d(u,w) \).
608: 
609: \item
610: For $v\in V$, $\Gradius{G}{v}$ is the smallest $r$ such that every
611: vertex of $G$ is within distance $r$ from $v$. For a set of vertices
612: \( S \subseteq V \), we write \( \Gradius{S}{v} \) instead of \(
613: \Gradius{G (S)}{v} \) when \(G\) is understood.
614: \end{tightlist}
615: 
616: 
617: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
618: \section{Spanning-Trees of \mbox{${\bf O ({\bf
619: \lowercase{log}}^{3}\lowercase{n})}$} Stretch}\label{sec:treelogcube}
620: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
621: 
622: We present our first algorithm that
623:   generates a spanning tree with average stretch $O
624:   (\log^{3}n)$.
625: %We will improve the stretch bound in Section \ref{sec:Improved}.
626: We first state the properties of the graph decomposition algorithm
627:   at the heart of our construction.
628: We then present the construction and analysis of the
629:   low-stretch spanning trees.
630: We defer the description of the graph decomposition algorithm
631:   and its analysis
632:   to Section~\ref{sub:cutting}.
633: 
634: \subsection{Low-Cost Star-Decomposition}\label{sub:structure}
635: 
636: %% DAS: we might want this back
637: %%
638: % Our graph decomposition algorithm will produce
639: %  star-decompositions of graphs, which we now define.
640: % We will state our definition and result for weighted connected graphs.
641: 
642: \begin{definition}[Star-Decomposition]
643: A multiway partition
644: $\{\vs{V}{0}{k}\}$ is a {\em star-decomposition} of a weighted
645:   connected graph $G$ with center
646:   $x_{0} \in V$
647:   (see Figure \ref{fig:star}) if $x_{0} \in V_{0}$ and
648: \begin{itemize}
649: \item [1.] for all $0\leq i\leq k$, the subgraph induced on $V_{i}$ is
650:    connected, and
651: \item [2.] for all $i\geq  1$, $V_{i}$ contains an \texttt{anchor}
652: vertex $x_{i}$ that is connected to a vertex $y_{i} \in V_{0}$ by an
653: edge
654:   $(x_{i},y_{i}) \in E$.
655:   We call the edge $(x_{i}, y_{i})$ the \texttt{bridge} between
656:   $V_{0}$ and $V_{i}$.
657: \end{itemize}
658: %Let $r = \Gradius{G}{x}$.
659: %For $\delta ,\epsilon \leq 1/2$, a star-decomposition
660: %  $\{\vs{V}{0}{k}\}$ is a $(\delta,\epsilon )$-star-decomposition with
661: %  center $x_{0}$ if
662: %  there exists an $r_{0}$ with $\delta r\leq r_{0}\leq (1-\delta ) r$
663: %      such that
664: %\begin{itemize}
665: %\item [a.] $\Gradius{V_{0}}{x}\leq r_{0}$,
666: %           that is,  every vertex in $V_{0}$ is at distance at
667: %           most $r_{0}$ from $x_{0}$, and
668: %\item [b.] for each $i \geq 1$,
669: %   there exists $r_{i}$ such that
670: %  $\Gradius{ V_{i}}{x_{i}}\leq r_{i}$ and
671: %\[
672: %r_{0}+ d (x_{i},y_{i}) +  r_{i} \leq (1+\epsilon ) r.
673: %\]
674: Let $r = \Gradius{G}{x_0}$, and $r_i = \Gradius{V_i}{x_i}$ for each
675:   $0 \le i \le k$.
676: For $\delta ,\epsilon \leq 1/2$, a star-decomposition
677: $\{\vs{V}{0}{k}\}$ is a $(\delta,\epsilon )$-star-decomposition if
678: \begin{itemize}
679: \item [a.]  $\delta r\leq r_{0}\leq (1-\delta ) r$, and
680: 
681: \item [b.]
682: $r_{0}+ d (x_{i},y_{i}) +  r_{i} \leq (1+\epsilon ) r$, for each $i \geq 1$.
683: \end{itemize}
684: The \texttt{cost} of the star-decomposition is
685:    $\cost{\bdry{\vs{V}{0}{k}}}$.
686: \end{definition}
687: 
688: \begin{figure}[htop]
689: \centering\epsfig{figure=star.eps,height=1.8in}
690: \caption{Star Decomposition. \label{fig:star}}
691: \end{figure}
692: 
693: 
694: Note that if
695:  $\setof{\vs{V}{0}{k}}$ is a $(\delta ,\epsilon )$ star-decomposition
696:   of $G$, then the graph consisting of the union of the induced subgraphs on
697:   $\vs{V}{0}{k}$ and the bridge edges $(y_{k}, x_{k})$ has radius at most
698:   $(1+\epsilon)$ times the radius of the original graph.
699: %See Figure \ref{fig:star} for an illustration.
700: 
701: 
702: In Section~\ref{sub:cutting}, we present an algorithm
703:   \texttt{StarDecomp} that satisfies the following
704:   cost guarantee.
705: Let $\xx= (\vs{x}{1}{k})$ and $\yy = (\vs{y}{1}{k})$.
706: 
707: \begin{lemma}[Low-Cost Star Decomposition]\label{lem:stardecomposition}
708: Let $G = (V,E,w)$ be a connected weighted graph and let \(x_0\) be a
709: vertex in \(V\). Then for every positive \( \epsilon \leq 1 / 2 \),
710: \[
711:   \left(\setof{\vs{V}{0}{k}},\xx,\yy\right)
712:   = \mathtt{starDecomp} (G, x_{0}, 1/3, \epsilon) ~ ,
713: \]
714: in time $O (m + n \log n)$, returns a  $(1/3, \epsilon)$-star-decomposition of
715:   $G$ with center $x_0$ of cost
716: \[
717: %\cost{\bdry{\setof{\vs{V}{0}{k}}}} \leq \frac{4 m \log_{2} m}{\alpha r}.
718: \cost{\bdry{V_0, \ldots, V_k}} ~ \leq ~ \frac{6 \, m \log_{2}
719: (m+1)}{\epsilon \cdot \Gradius{G}{x_{0}}}.
720: \]
721: On unweighted graphs, the running time is $O(m)$.
722: \end{lemma}
723: 
724: \subsection{A Divide-and-Conquer Algorithm}\label{sub:log3}
725: 
726: The basic idea of our algorithm is to use low-cost
727: star-decomposition in a divide-and-conquer (recursive) algorithm to
728: construct a spanning tree. We use \( \widehat{n} \) (respectively, \(
729: \widehat{m} \)) rather than \(n\) (resp., \(m\)) to distinguish the
730: number of vertices (resp., number of edges) in the original graph,
731: input to the first recursive invocation, from that of the graph
732: input to the current one.
733: 
734: Before invoking our algorithm we apply a linear-time transformation
735: from \cite{AKPW} that transforms the graph into one with at most \(
736: \widehat{n} (\widehat{n} + 1) \) edges (recall that a multi-graph of
737: \(\widehat{n}\) vertices may have an arbitrary number of edges), and
738: such that the average-stretch of the spanning tree on the original
739: graph will be at most twice the average-stretch on this graph.
740: 
741: We begin by showing how to construct low-stretch spanning trees
742:   in the case that all edges have length $1$.
743: In particular, we use the fact that in this case
744:   the cost of a set of edges equals the number of edges in the set.
745: 
746: \begin{algbox}
747: \noindent Fix $\alpha = (2 \log_{4/3} (\widehat{n}+6))^{-1}$.
748: \vskip 0.1in
749: \noindent \( T = \mathtt{UnweightedLowStretchTree} (G, x_{0}) \).
750: \vskip 0.1in
751: \begin{tightlistA}
752: \item [0.] If $\sizeof{V} \leq 2$, return $G$. (If \(G\) contains
753: multiple edges, return a single copy.)
754: \item [1.] Set $\rho = \Gradius{G}{x_{0}}$.
755: \item [2.]
756: $(\setof{\vs{V}{0}{k}},\xx,\yy)$~$=\mathtt{StarDecomp}(G, x_{0}, 1/3, \alpha)$
757: \item [3.]
758:   For $0 \leq i \leq k$, \\
759:   set  $T_{i} = \mathtt{UnweightedLowStretchTree} (G (V_{i}), x_{i})$
760: 
761: \item [4.] Set $T = \Union_{i} T_{i} \union \Union_{i} (y_{i},x_{i})$.
762: \end{tightlistA}
763: \end{algbox}
764: 
765: \begin{theorem}[Unweighted]\label{thm:Unweighted}
766: Let \( G = (V, E) \) be an unweighted connected graph and let \(x_0\) be a
767: vertex in \(V\). Then
768: \[
769: T = \mathtt{UnweightedLowStretchTree} (G, x_{0}) ~ ,
770: \]
771: in time $O (\widehat{m} \log \widehat{n})$, returns a spanning tree of
772: \(G\) satisfying
773: \begin{equation} \label{eq:RadiusUnweighted}
774: \Gradius{T}{x_{0}} \leq \sqrt{e} \cdot \Gradius{G}{x_{0}}
775: \end{equation}
776: and
777: \begin{equation} \label{eq:AverageStretchUnweighted}
778: \avestretch{T}{E} \leq O (\log^{3} \widehat{m}) ~ .
779: \end{equation}
780: \end{theorem}
781: \begin{proof}
782: For our analysis, we define a family of graphs that converges to $T$.
783: For a graph $G$, we let
784: \[
785:  (\setof{\vs{V}{0}{k}}, \xx, \yy  )
786:   = \mathtt{StarDecomp} (G, x_{0}, 1/3, \alpha)
787: \]
788: and recursively define
789: \[
790: R_{0} (G) ~=~ G \quad \mbox{and}\quad ~~
791: R_{t} (G) ~= ~  \Union_{i} (y_{i},x_{i}) \union \Union_{i} R_{t-1} (G
792: (V_{i})) ~ .
793: \]
794: The graph~$R_{t} (G)$ is what one would obtain if we forced
795:   \texttt{UnweightedLowStretchTree} to return its input graph after
796:   $t$ levels of recursion.
797: 
798: Because for all $\widehat{n}\geq 0$, $(2\log_{4/3}
799: (\widehat{n}+6))^{-1}\leq 1/12$, we have $(2/3+\alpha )\leq 3/4$.
800: Thus, the depth of the recursion in \texttt{UnweightedLowStretchTree}
801:   is at most $\log_{4/3} \widehat{n}$, and we have
802:   $R_{\log_{4/3} \widehat{n}} (G) = T$.
803: One can prove by induction that, for every \( t \geq 0 \),
804: \[
805:   \Gradius{  R_{t} (G)}{x_{0}}
806:   \leq (1+\alpha)^{t} \Gradius{G}{x_{0}}.
807: \]
808: %Of course, this is trivially true for $t = 0$.
809: %In our proof for general $t$, we will use the notation
810: %\[
811: %  \delta^{t}_{G} (u,v) \defeq  \tdist{R_{t} (G)}{u,v}.
812: %\]
813: %To prove the inequality for $t$, assuming it holds for
814: %  $t-1$,
815: %  we consider $\delta^{t}_{G} (x_{0},v)$ for any $v \in V$.
816: %If $v \in V_{0}$, then
817: %\begin{align*}
818: %  \delta^{t}_{G} (x_{0},v)
819: %  & = \delta^{t-1}_{G (V_{0})} (x_{0},v)\\
820: %  & \leq (1+\alpha)^{t-1} \delta^{0}_{G (V_{0})} (x_{0},v)
821: %  \text{ by induction }
822: %  \\
823: %  & \leq (1+\alpha)^{t-1} \Gradius{G}{x_{0}}.
824: %\end{align*}
825: %On the other hand, if $v \in V_{i}$, then
826: %\begin{align*}
827: %  \delta^{t}_{G} (x_{0},v)
828: %  & =   \delta^{t-1}_{G (V_{0})} (x_{0},y_{i})
829: %    + \dist{y_{i}}{x_{i}}
830: %    +   \delta^{t-1}_{G (V_{i})} (x_{i},v)
831: %  \\
832: %  & \leq (1+\alpha)^{t-1}  \delta^{0}_{G (V_{0})} (x_{0},y_{i})
833: %    + \dist{y_{i}}{x_{i}}
834: %    + (1+\alpha)^{t-1}  \delta^{0}_{G (V_{i})} (x_{i},v)
835: %  \text{ by induction }
836: %  \\
837: %  & \leq (1+\alpha)^{t-1} r_{0}
838: %    + \dist{y_{i}}{x_{i}}
839: %    + (1+\alpha)^{t-1} r_{i}
840: %  \\
841: %  & \leq
842: %   (1+ \alpha)^{t} r.
843: %\end{align*}
844: The claim in \eqref{eq:RadiusUnweighted} now follows from $(1+\alpha
845: )^{\log_{4/3} \widehat{n}} \leq  \sqrt{e}$.
846: To prove the claim in \eqref{eq:AverageStretchUnweighted}, we note that
847: \begin{eqnarray}
848: \label{eq:str1}
849: \sum_{(u,v) \in \bdry{\vs{V}{0}{k}}} \stretch{T}{u,v} & \leq &
850: \sum_{(u,v) \in \bdry{\vs{V}{0}{k}}} \left( \tdist{T}{x_{0},u} +
851: \tdist{T}{x_{0},v} \right) \\
852: \label{eq:str3}
853: & \leq  &
854:   \sum_{(u,v) \in \bdry{\vs{V}{0}{k}}}
855:    2 \sqrt{e} \cdot \Gradius{G}{x_{0}},
856:   \text{ by \eqref{eq:RadiusUnweighted}} \\
857: & \leq &
858:    2 \sqrt{e} \cdot  \Gradius{G}{x_0}
859: \left(  \frac{
860:       6 \, m \log_{2} (\widehat{m}+1)
861:        }{
862:         \alpha \cdot \Gradius{G}{x_0}
863:        }
864:  \right),
865:   \text{ by Lemma~\ref{lem:stardecomposition}. } \nonumber
866: %\\
867: % & \leq
868: %  16 \sqrt{e} m \log_{2} m \log_{4/3} (n+6).
869: \end{eqnarray}
870: Applying this inequality to all graphs at all $\log_{4/3} \widehat{n}$
871: levels of the recursion, we obtain
872: \[
873:   \sum_{(u,v) \in E}
874:   \stretch{T}{u,v}
875: ~ \leq~
876: 24 \, \sqrt{e} \, \widehat{m} \log_{2} \widehat{m} \log_{4/3} \widehat{n}
877: \log_{4/3} (\widehat{n}+6)
878: ~ =~
879:    O ( \widehat{m} \log^{3} \widehat{m}) ~ .
880: \]
881: \end{proof}
882: 
883: We now extend our algorithm and proof to general weighted connected
884:    graphs.
885: We begin by pointing out a subtle difference between general
886:    and unit-weight graphs.
887: In our analysis of
888:   \texttt{UnweightedLowStretchTree}, we used the facts that
889:   $\Gradius{G}{x_{0}} \leq n$ and that each edge length is
890:   1 to show that the depth of recursion is at most $\log_{4/3}n$.
891: In general weighted graphs, the ratio of $\Gradius{G}{x_{0}}$
892:   to the length of the shortest edge can be arbitrarily large.
893: Thus, the recursion can be very deep.
894: To compensate, we will contract all edges that are significantly
895:   shorter than the radius of their component.
896: In this way, we will guarantee that each edge is only active
897:   in a logarithmic number of iterations.
898: 
899: Let $e = (u,v)$ be an edge in $G= (V,E,w)$.
900: The contraction of $e$ results in a new graph
901:   by identifying $u$ and $v$ as a new vertex
902:   whose neighbors are the union of the neighbors of $u$ and $v$.
903: All self-loops created by the contraction are discarded.
904: We refer to  $u$ and $v$ as the preimage of
905:   the new vertex.
906: 
907: We now state and analyze our algorithm for
908:   general weighted graphs.
909: 
910: \begin{algbox}
911: \noindent Fix \( \beta = (2 \log_{4/3} (\widehat{n} + 32))^{-1} \).
912: \vskip 0.1in \noindent \( T = \mathtt{LowStretchTree} (G = (V, E,w),
913: x_{0}) \).
914: \vskip 0.1in
915: \begin{tightlistA}
916: \item [0.] If $\sizeof{V} \leq 2$, return $G$. (If \(G\) contains
917: multiple edges, return the shortest copy.)
918: \item [1.] Set $\rho = \Gradius{G}{x_{0}}$.
919: \item [2.] Let \( \Contracted{G} = (\Contracted{V}, \Contracted{E}) \)
920:   be the graph obtained by contracting
921:   all edges in $G$ of length less than \( \beta \rho / \widehat{n} \).
922: \item [3.]
923:   \( \left(\setof{\vs{\Contracted{V}}{0}{k}},
924:   \xxc  , \yyc \right) =
925:   \mathtt{StarDecomp} (\Contracted{G}, x_{0}, 1/3, \beta) \).
926: \item [4.] For each $i$, let $V_{i}$ be the preimage
927:   under the contraction of step 2
928:   of vertices in $\Contracted{V}_{i}$, and
929:   $(x_{i},y_{i}) \in V_{0} \times V_{i}$ be the edge of shortest
930:   length for which $x_{i}$ is a preimage of $\Contracted{x}_{i}$ and
931:   $y_{i}$ is a preimage of $\Contracted{y}_{i}$.
932: \item [5.]
933:   For $0 \leq i \leq k$,
934: set \( T_{i} = \mathtt{LowStretchTree} (G
935:   (V_{i}), x_{i}) \)
936: \item [6.] Set $T = \Union_{i} T_{i} \union \Union_{i} (y_{i},x_{i})$.
937: \end{tightlistA}
938: \end{algbox}
939: 
940: In what follows, we refer to the graph \( \Contracted{G} \),
941: obtained by contracting some of the edges of the graph \(G\), as the
942: \emph{edge-contracted graph}.
943: 
944: \begin{theorem}[Low-Stretch Spanning Tree]\label{thm:main}
945: Let  $G= (V,E,w)$ be a weighted connected graph and let \( x_0 \) be a
946: vertex in \(V\). Then
947: \[
948: T = \mathtt{LowStretchTree}(G,x_{0}) ~ ,
949: \]
950: in time $O (\widehat{m} \log \widehat{n} + \widehat{n} \log^2
951: \widehat{n})$, returns a spanning tree of $G$ satisfying
952: \begin{equation} \label{eq:RadiusWeighted}
953: \Gradius{T}{x_0} \leq 2 \sqrt{e} \cdot  \Gradius{G}{x_0}
954: \end{equation}
955: and
956: \begin{equation} \label{eq:AverageStretchWeighted}
957: \avestretch{T}{E} = O (\log^{3} \widehat{m})
958: \end{equation}
959: \end{theorem}
960: 
961: %and the main result of this section,
962: % Theorem \ref{thm:main}.
963: % % about its performance.
964: %We prove Theorem \ref{thm:main} by extending
965: %  the proof of Theorem \ref{thm:Unweighted}.
966: %The key observation in establishing Claim (2) is that each edge is
967: %  active (uncontracted and uncut) on at most \( O (\log n) \) levels of
968: %  the  recursion.
969: %The proof can be found in Appendix \ref{sec:proofMain}.
970: 
971: \begin{proof}
972: %We first apply a linear-time transformation from \cite{AKPW} that
973: %  transforms the graph into one with at most $n (n+1)$ edges,
974: %  and such that the average-stretch of the spanning tree on the
975: %  original graph will be at most twice the average-stretch on this graph.
976: 
977: 
978: We first establish notation similar to that used in the proof of
979: Theorem~\ref{thm:Unweighted}.
980: Our first step is to define a procedure, \texttt{SD}, that captures
981:   the action of the algorithm in steps 2 through 4.
982: We then define $R_{0} (G) = G$ and
983: \[
984:   R_{t} (G) =   \Union_{i} (y_{i},x_{i}) \union
985:                 \Union_{i} R_{t-1} (G (V_{i})),
986: \]
987: where
988: \[
989:  (\setof{\vs{V}{0}{k}}, \vs{x}{1}{k}, \vs{y}{1}{k})
990:   = \mathtt{SD} (G, x_{0}, 1/3, \beta).
991: \]
992: 
993: We now prove the claim in \eqref{eq:RadiusWeighted}.
994: Let \( \rho = \Gradius{G}{x_0} \). Let \( t = 2
995: \log_{4/3}{(\widehat{n} + 32)} \) and let \( \rho_{t} = \Gradius{R_{t}
996: (G)}{x_{0}} \). Each contracted edge is of length at most \( \beta
997: \rho / \widehat{n} \), and every path in the graph \( G(V_i) \)
998: contains at most \(n\) contracted edges, hence the insertion of the
999: contracted edges to \( G(V_i) \) increases its radius by an additive factor of at most \( \beta \rho \). Since \( (2 \log_{4/3} (\widehat{n} + 32))^{-1}
1000: \leq 1 / 24 \) for every \( n \geq 0 \), it follows that \( 2 / 3 + 2
1001: \, \beta \leq 3 / 4 \). Therefore, following the proof of
1002: Theorem~\ref{thm:Unweighted}, we can show that \( \rho_t \) is at most \(
1003: \sqrt{e} \cdot \Gradius{G}{x_{0}} \).
1004: 
1005: We know that each component of \(G\) that remains after \(t\) levels
1006: of the recursion has radius at most \( \rho (3 / 4)^t \leq \rho
1007: / \widehat{n}^{2} \). We may also assume by induction that for the
1008: graph induced on each of these components, \texttt{LowStretchTree}
1009: outputs a tree of radius at most \( 2 \sqrt{e} (\rho /
1010: \widehat{n}^{2}) \). As there are at most \(n\) of these components,
1011: we know that the tree returned by the algorithm has radius at most
1012: \[
1013: \sqrt{e} \, \rho + n \times 2 \sqrt{e} (\rho / \widehat{n}^{2}) ~ \leq ~ 2
1014: \, \sqrt{e} \, \rho ~ ,
1015: \]
1016: for $\widehat{n} \geq 2$.
1017: 
1018: We now turn to the claim in \eqref{eq:AverageStretchWeighted}, the
1019: bound on the stretch.
1020: In this part, we let \( E_{t} \subseteq E \) denote the set of edges
1021:   that are present at recursion depth \(t\).
1022: That is, their endpoints are
1023:   not identified by the contraction of short edges in step~2, and their
1024:   endpoints remain in the same component.
1025: We now observe that no edge can be present at more than \( \log_{4 /
1026: 3}{((2 \, \widehat{n} / \beta) + 1)} \) recursion depths. To see this,
1027: consider an edge \( (u, v) \) and let \(t\) be the first recursion
1028: level for which the edge is in \( E_{t} \). Let \( \rho_t \) be the
1029: radius of the component in which the edge lies at that time. As \(u\)
1030: and \(v\) are not identified under contraction, they are at distance
1031: at least \( \beta \rho_t / \widehat{n} \) from each other. (This
1032: argument can be easily verified, although the condition for edge
1033: contraction depends on the length of the edge rather than on the
1034: distance between its endpoints.) If \(u\) and \(v\) are still in the same graph on recursion level \( t + \log_{4 / 3}{((2 \, \widehat{n} / \beta) +
1035: 1)} \), then the radius of this graph is at most \( \rho_t / ((2 \,
1036: \widehat{n} / \beta) + 1) \), thus its diameter is strictly less than
1037: \( \beta \rho_t / \widehat{n} \), in contradiction to the distance
1038: between \(u\) and \(v\).
1039: 
1040: Similarly to the way that $ \sum_{(u,v) \in \bdry{\vs{V}{0}{k}}}
1041:   \stretch{T}{u,v}$ is upper-bounded in inequalities \eqref{eq:str1}-
1042: \eqref{eq:str3}
1043:  in the proof of Theorem~\ref{thm:Unweighted}, it follows  that
1044:   the total contribution to the stretch at depth $t$
1045:   is at most
1046: \[
1047: O (\vol{E_{t}} \log^{2}\widehat{m}).
1048: \]
1049: Thus, the sum of the stretches over all recursion depths
1050:   is
1051: \[
1052:   \sum _{t} O \left( \vol{E_{t}} \log^{2}\widehat{m} \right)
1053:   = O\left(\widehat{m} \log^{3}\widehat{m}\right).
1054: \]
1055: 
1056: We now analyze the running time of the algorithm. On each recursion
1057: level, the dominant cost is that of performing the \texttt{StarDecomp}
1058: operations on each edge-contracted graph. Let \(V_t\) denote the
1059: set of vertices in all edge-contracted graphs on recursion level
1060: \(t\). Then the total cost of the \texttt{StarDecomp} operations on
1061: recursion level $t$ is at most $O(\sizeof{E_{t}} + \sizeof{V_t} \log
1062: \sizeof{V_t})$. We will prove soon that \( \sum_{t}{\sizeof{V_t}} = O
1063: (\widehat{n} \log{\widehat{n}}) \), and as $\sum_{t} \sizeof{E_{t}} = O
1064: (\widehat{m} \log \widehat{m})$, it follows that the total running
1065: time is $O (\widehat{m} \log \widehat{n} + \widehat{n} \log^2 \widehat{n})$.
1066: Note that for unweighted graphs $G$, the running time is only
1067: $O(\widehat{m} \log \widehat{n})$.
1068: %factor $\log n$, that is, it is $O(m \log n)$.
1069: \end{proof}
1070: %{\bf
1071: %Depends on how detailed we wanted to be:
1072: %  To support fast decision for contraction and un-contraction of edges, we
1073: %  could presort the edges by their lengths and properly maintain
1074: %  links between new vertices and their preimages.
1075: 
1076: %Also, here I assume that $\mathtt{StarDecomp}$ takes $O (m\log n)$
1077: %  time, rather than the $O (m\log^{2}n)$ time as we stated currently.
1078: %}
1079: 
1080: The following lemma shows that even though the number of recursion
1081: levels can be very large, the overall number of vertices in
1082: edge-contracted graphs appearing on different recursion levels is at
1083: most $O(\widehat{n} \log \widehat{n})$. This lemma is used only for
1084: the analysis of the running time of our algorithm; a reader interested
1085: only in the existential bound can skip it.
1086: 
1087: \begin{lemma}
1088: \label{lm:num_vs}
1089: Let \( V_t \) be the set of vertices appearing in edge-contracted
1090: graphs on recursion level $t$. Then $\sum_t \sizeof{V_t} =
1091: O(\widehat{n} \log \widehat{n})$.
1092: \end{lemma}
1093: \begin{proof}
1094: Consider an edge-contracted graph \( \Contracted{G} = (\Contracted{V},
1095: \Contracted{E}) \) on recursion level \(t\) and let \(x\) be a vertex
1096: in \( \Contracted{V} \). The vertex \(x\) was formed as a result of a
1097: number of edge contractions (maybe \(0\)). Consequently, \(x\) can be
1098: viewed as a set of all original vertices that were identified together
1099: to form it, i.e., \(x\) can be viewed as a \emph{super-vertex}. Let \(
1100: \OriginalVertices{x} \) denote the set of original vertices that were
1101: identified together to form the super-vertex \( v \in \Contracted{V}
1102: \).
1103: 
1104: We claim that for every super-vertex \( x \in V_{t + 1} \), there
1105: exist a super-vertex \( y \in V_t \) such that \(
1106: \OriginalVertices{x} \subseteq \OriginalVertices{y} \). To prove it,
1107: note that every graph on recursion level \(t + 1\) corresponds to a
1108: single component of a star decomposition on recursion level \(t\).
1109: Moreover, an edge that was contracted on recursion level \(t + 1\)
1110: must have been contracted on recursion level \(t\) as well.
1111: Therefore we can consider a directed forest \( \mathcal{F} \) in
1112: which every node at depth \(t\), corresponds to some super-vertex in
1113: \( V_t \), and an edge leads from a node \(y\) at depth \(t\) to a
1114: node \(x\) at depth \(t + 1\), if \( \OriginalVertices{x} \subseteq
1115: \OriginalVertices{y} \). Note that the roots of \( \mathcal{F} \)
1116: correspond to super-vertices on recursion level \(0\) and the leaves
1117: of \( \mathcal{F} \) correspond to the original vertices of the
1118: graph \(G\).
1119: 
1120: In the proof of Theorem~\ref{thm:main}, we showed that every edge is
1121: present on \( O (\log{\widehat{n}}) \) recursion levels. Following a
1122: similar line of arguments, one can show that every super-vertex is
1123: present on \( O (\log{\widehat{n}}) \) (before it decomposes to
1124: smaller super-vertices, each contains a subset of its vertices). Since
1125: there are \( \widehat{n} \) vertices in the original graph \(G\),
1126: there are \( \widehat{n} \) leaves in \( \mathcal{F} \). Therefore the
1127: overall number of nodes in the directed forest \( \mathcal{F} \) is \(
1128: O (\widehat{n} \log{\widehat{n}}) \), and the bound on \(
1129: \sum_{t}{\sizeof{V_t}} \) holds.
1130: 
1131: %Consider a node $z$ on some level $t$ of the recursion.
1132: %The node $z$ was formed as a result of a number $k_z \ge 0$ of edge
1133: %contractions. Consequently, $z$ can be viewed as a set (or, {\em
1134: %  super-node}) of all original vertices that were glued together to
1135: %form $z$.
1136: %
1137: %Consider the graph $F$ whose vertices are all the
1138: %super-nodes. (Particularly, original nodes are singleton super-nodes.)
1139: %There is an edge between two super-nodes $z$ and $z'$ if and only if
1140: %$z$ was formed as a result of contracting an edge $e'$ with $z' \in
1141: %e'$, or vice versa.
1142: %
1143: %Observe that $F$ is a forest, and $z$ is the parent of $z'$ if they
1144: %are neighbors in $F$, and the set of nodes that form $z$ contains the
1145: %set of nodes that form $z'$. Observe also that every internal
1146: %super-node in $F$ has exactly two children, and that the number of
1147: %leaves in $F$ is $n$. Consequently, the overall number of super-nodes
1148: %is at most $2n-1$. Moreover, each super-node $z$ appears on at most
1149: %$O(\log n)$ different recursion levels. (This is because it is enough
1150: %that one of the edges incident to $v$ gets contracted for the
1151: %super-node $z$ to merge with the other endpoint of this edge, and to
1152: %disappear.)
1153: %Also, $z$ appears at most once on every level, and thus its overall
1154: %contribution to $\sum_t n_t$ is at most $O(\log n)$. Hence,
1155: %$\sum_t n_t = O(n\log n)$.
1156: \end{proof}
1157: 
1158: 
1159: 
1160: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1161: \section{Star decomposition}\label{sub:cutting}
1162: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1163: 
1164: Our star decomposition algorithm exploits two algorithms for growing
1165:   sets.
1166: The first, \texttt{BallCut}, is the standard ball growing technique
1167:   introduced by Awerbuch~\cite{Awerbuch}, and was the basis
1168:   of the algorithm of~\cite{AKPW}.
1169: The second, \texttt{ConeCut}, is a generalization of ball growing
1170:   to cones.
1171: So that we can analyze this second algorithm, we abstract the analysis
1172:   of ball growing from the works of~\cite{LeightonRao,AumannRabani,LLR}.
1173: Instead of nested balls, we consider \textit{concentric systems},
1174:   which we now define.
1175: 
1176: \begin{definition}[Concentric System]\label{def:concentric}
1177: A {\em concentric system } in a weighted graph $G= (V,E,w)$ is a
1178: family of vertex sets $\calL =\{L_{r} \subseteq V: r \in
1179: \Reals{+}\cup \{0 \} \}$ such that
1180: \begin{enumerate}
1181: \item \( L_0 \neq \emptyset \),
1182: \item $L_{r} \subseteq L_{r'}$ for all $r< r'$, and
1183: \item if a vertex $u \in L_{r}$ and $(u,v)$ is an edge in $E$ then $v
1184: \in L_{r+d(u,v)}$.
1185: \end{enumerate}
1186: \end{definition}
1187: 
1188: For example, for any vertex $x\in V$, the set of balls
1189:   $\setof{B (r,x)}$ is a concentric system.
1190: The {\em radius} of a concentric system $\calL $ is
1191:    $radius (\calL ) = \min \{r: L_{r} = V \}$.
1192: For each vertex $v\in V$, we define $\gennorm{\calL}{v}$
1193:   to  be the smallest $r$ such that
1194:   $v\in L_{r}$.
1195: 
1196: \begin{lemma}[Concentric System Cutting]\label{lem:cuttingconcentricsystem}
1197: Let $G = (V,E,w)$ be a connected weighted graph and let $\calL  =
1198: \{L_{r} \}$ be a concentric system. For every two reals \( 0 \leq
1199: \lambda < \lambda' \), there exists a real \( r \in [\lambda,
1200: \lambda') \) such that
1201: \[
1202: \cost{\bdry{L_{r}}}
1203: ~ \leq ~
1204: \frac{\vol{L_{r}} + \tau }{\lambda' - \lambda}
1205: \max \left[1,
1206:  \log_{2} \left(\frac{m+\tau }{\vol{E (L_{\lambda})} +\tau } \right) \right]
1207:  ,
1208: \]
1209: where $m = \sizeof{E}$ and
1210: \[
1211:   \tau  = \begin{cases}
1212: 1 & \text{if $\vol{E (L_{\lambda})} = 0$}\\
1213: 0 & \text{otherwise.}
1214: \end{cases}
1215: \]
1216: \end{lemma}
1217: 
1218: \begin{proof}
1219: Note that rescaling terms does not effect the statement of the
1220:   lemma.
1221: For example, if all the weights are doubled, then the costs are
1222:   doubled but the distances are halved.
1223: Moreover, we may assume that \( \lambda' \leq radius (\calL) \), since
1224: otherwise, choosing \( r = radius (\calL) \) implies that \(
1225: \bdry{L_r} = \emptyset \) and the claim holds trivially.
1226: 
1227: Let $r_{i} = \norm{v_{i}}$, and assume that the vertices are ordered
1228:   so that
1229:   $r_{1} \leq r_{2} \leq \dotsb \leq r_{n}$.
1230: We may now assume without loss of generality that each edge
1231:   in the graph has minimal length.
1232: That is, an edge from vertex $i$ to vertex $j$ has length
1233:   $\abs{r_{i} - r_{j}}$.
1234: The reason we may make this assumption is that it only increases
1235:   the weights of edges, making our lemma strictly more difficult to
1236:   prove.
1237: (Recall that the weight of an edge is the reciprocal of its length.)
1238: 
1239: Let $B_{i} = L_{r_{i}}$.
1240: Our proof will make critical use of a quantity $\mu_{i}$, which is defined
1241:   to be
1242: \[
1243: \mu_i ~=~
1244: %%DAS 10/25
1245: %1+
1246: %
1247: \tau  +
1248:  \vol{E(B_i)}
1249: %  \sum_{e \in B_{i}} 1
1250:  +
1251:   \sum_{(v_{j},v_{k}) \in E: j \leq  i < k}
1252:    \frac{r_{i} - r_{j}}{r_{k} - r_{j}}.
1253: \]
1254: That is, $\mu_{i}$ sums the edges inside $B_{i}$, proportionally counting
1255:   edges that are split by the boundary of the ball.
1256: The two properties of $\mu_{i}$ that we exploit are
1257: \begin{equation}\label{eqn:muiPlus}
1258:   \mu_{i+1} = \mu_{i} + \cost{\bdry{B_{i}}} (r_{i+1} - r_{i}),
1259: \end{equation}
1260: and
1261: \begin{equation}\label{eqn:muiVol}
1262: \tau +  \vol{E (B_{i})} \leq   \mu_{i} \leq \tau  + \vol{B_{i}}.
1263: \end{equation}
1264: The equality~\eqref{eqn:muiPlus}  follows  from the definition
1265: by a straight-forward calculation, as
1266: 
1267: \[
1268: \mu_i ~= ~ \tau
1269:   + \vol{ E (B_{i+1}) } - \vol{ \{ (v_j, v_{i+1}) \in E \mid j \leq i \} }
1270:    + \sum_{(v_j, v_k) \in E : j \leq i < k}{\frac{r_i - r_j}{r_k - r_j}}
1271: \]
1272: and
1273: \[
1274: \cost{\bdry{B_{i}}} (r_{i+1} - r_{i}) = \sum_{(v_j, v_k) \in E : j
1275: \leq i < k}{\frac{r_{i+1} - r_i}{r_k - r_j}} ~ .
1276: \]
1277: 
1278: % as $|E(B_{i+1})| - |E(B_i)| =
1279: %|\{(v_{i+1},v_l) : l \in \{1,2,\ldots,i\}|$,
1280: %and
1281: %\begin{eqnarray*}
1282: %&& \sum_{(v_j,v_k) \in E : j \le i < k} \frac{r_i - r_j}{r_k - r_j} -
1283: %\sum_{(v_j,v_k) \in E : j \le i+1 < k} \frac{r_{i+1} - r_j}{r_k - r_j}
1284: %~= \\
1285: %&&
1286: %(r_{i+1} - r_i) \cdot \sum_{e = (v_j,v_k) \in E: j \le i, i+1 < k} 1/d(e) -
1287: %\sum_{j \le i, e = (v_j,v_{i+1}) \in E} {{r_i - r_j} \over {d(e)}}~.
1288: %\end{eqnarray*}
1289: 
1290: %%DAS 10/25
1291: %The only trick to proving inequality~\eqref{eqn:muiVol} is to observe
1292: %  that the $+1$ in $\mu_{i}$ is offset by an edge from $v_{i}$ leaving
1293: %  $B_{i}$, which must exist because the graph is connected and $i < n$.
1294: %The point is that this edge does not contribute to the sums in the definition of
1295: %  $\mu_{i}$.
1296: 
1297: Choose $a$ and $b$ so that \( r_{a-1} \leq \lambda < r_{a} \) and \(
1298: r_{b} < \lambda' \leq r_{b+1} \). Let \( \nu = \lambda' - \lambda \).
1299: We first consider the trivial case in which $b < a$.
1300: In that case, there is no vertex whose distance from $v_{0}$
1301:   is between \(\lambda\) and \(\lambda'\).
1302: Thus every edge crossing \( L_{(\lambda + \lambda') / 2} \)
1303:   has length at least \(\nu\), and therefore cost at most \( 1 / \nu \).
1304: Therefore, by setting \( r = (\lambda + \lambda') / 2 \), we obtain
1305: \[
1306: \cost{\bdry{L_{r}}} \leq \vol{\bdry{L_{r}}} \frac{1}{\nu} \leq
1307: \vol{L_{r}} \frac{1}{\nu} ~ ,
1308: \]
1309: establishing the lemma in this case.
1310: 
1311: We now define
1312: \[
1313: \eta = \log _{2} \left(\frac{m+\tau }{\vol{E (B_{a-1})} + \tau } \right) ~ .
1314: \]
1315: Note that \( B_{a - 1} = L_{\lambda} \), by the choice of \(a\).
1316: A similarly trivial case is when $[a,b]$ is non-empty, and where
1317:   there exists an $i \in [a - 1, b]$ such that
1318: \[
1319: r_{i + 1} - r_{i} \geq \frac{\nu}{\eta} ~ .
1320: \]
1321: In this case, every edge in $\bdry{B_i}$ has cost at most \( \eta
1322: / \nu \), and by choosing $r$ to be \( \max\{r_i, \lambda\} \), we
1323: satisfy
1324: \[
1325:   \cost{\bdry{L_{r}}} \
1326: \leq
1327:   \sizeof{\bdry{L_{r}}} \frac{\eta}{\nu}
1328: \leq
1329:   \vol{L_{r}} \frac{\eta}{\nu} ~ ,
1330: \]
1331: hence, the lemma is established in this case.
1332: 
1333: In the remaining case that
1334:   the set $[a,b]$ is non-empty
1335:   and for all $i \in [a - 1, b]$,
1336: \begin{equation}\label{eqn:shortDist}
1337:   r_{i + 1} - r_{i} < \frac{\nu}{\eta} ~ ,
1338: \end{equation}
1339:   we will prove that there exists an $i \in [a - 1, b]$ such that
1340: \[
1341:   \cost{\bdry{B_{i}}} \leq \frac{\mu_{i} \eta}{\nu} ~ ,
1342: \]
1343: hence, by choosing \( r = \max\{r_i, \lambda\} \), the lemma is
1344: established due to \eqref{eqn:muiVol}.
1345: 
1346: Assume by way of contradiction
1347:   that
1348: \[
1349:   \cost{\bdry{B_{i}}} > \mu_{i} \eta / \nu
1350: \]
1351: for all $i \in [a - 1, b]$.
1352: It follows, by \eqref{eqn:muiPlus}, that
1353: \[
1354:   \mu_{i + 1} > \mu_{i} + \mu_{i} (r_{i + 1} - r_{i}) \eta  / \nu
1355: \]
1356: for all \( i \in [a - 1, b] \), which implies
1357: \begin{align*}
1358: \mu_{b+1} & > ~ \mu_{a-1} \prod_{i = a - 1}^{b} \left( 1 + (r_{i + 1} - r_{i})
1359: \eta / \nu \right) \\
1360: & \geq ~ \mu_{a-1} \prod_{i = a - 1}^{b} 2^{\left((r_{i + 1} - r_{i})
1361: \eta / \nu \right)} \text{ , by~\eqref{eqn:shortDist} and since \( 1 +
1362: x \geq 2^x \) for every \( 0 \leq x \leq 1 \)} \\
1363: & = ~ \mu_{a-1} \cdot 2^{(r_{b+1} - r_{a-1}) \eta / \nu} \\
1364: & \geq ~ \mu_{a-1} \cdot \left( (m+\tau ) / (\vol{E (B_{a-1})}+\tau )
1365: \right) \\
1366: & \geq ~ m +\tau  \text{ , by \eqref{eqn:muiVol},}
1367: \end{align*}
1368: which is a contradiction.
1369: \end{proof}
1370: 
1371: %We defer the proof of Lemma~\ref{lem:cuttingconcentricsystem}
1372: %   to Appendix \ref{sec:cuttingProof}.
1373: An analysis of the following standard ball growing algorithm
1374:   follows immediately by applying
1375:   Lemma~\ref{lem:cuttingconcentricsystem} to the concentric system
1376: $\setof{B (r,x)}$.
1377: 
1378: \begin{algbox}\label{alg:ballcut}
1379: \( r = \mathtt{BallCut} (G, x_{0}, \rho, \delta) \)
1380: \vskip 0.1in
1381: \begin{tightlist2}
1382: \item [1.] Set \( r = \delta \rho \).
1383: \item [2.] While $\cost{\bdry{B (r, x_{0})}} >
1384: \frac{\vol{B (r,x_{0})} +1}{(1 - 2 \, \delta) \rho }
1385:  \log_{2} (m+1)$,
1386: \begin{tightlistA}
1387: \item [a.] Find the vertex $v \not \in B (r, x_{0})$ that minimizes
1388: $\dist{x_{0}}{v}$ and set $r = \dist{x_{0}}{v}$.
1389: \end{tightlistA}
1390: \end{tightlist2}
1391: \end{algbox}
1392: 
1393: \begin{corollary}[Weighted Ball Cutting]\label{cor:weightedBallCutting}
1394: Let $G = (V,E,w)$ be a connected weighted graph, let $x\in V$, \(
1395: \rho = \Gradius{G}{x} \), \( r = \mathtt{BallCut} (G, x_{0},
1396: \rho, 1 / 3) \), and $V_{0} = B (r, x)$.
1397: Then \( \rho / 3 \leq r < 2 \, \rho / 3 \) and
1398: \[
1399: \cost{\bdry{V_{0}}} ~ \leq ~ \frac{3 \, (\vol{V_{0}}+1)
1400:   \log_{2} (\sizeof{E} + 1)} {\rho} ~ .
1401: \]
1402: \end{corollary}
1403: 
1404: 
1405: We now examine the concentric system that enables us to
1406:   construct $\vs{V}{1}{k}$ in Lemma \ref{lem:stardecomposition}.
1407: \begin{definition}[Ideals and Cones]\label{def:C}
1408: For any weighted graph $G = (V,E,w)$ and $S\subseteq V$,
1409:   the set of {\em forward edges induced by $S$} is
1410: \[
1411: F(S) = \{(u\rightarrow v): (u,v)\in E, \dist{u}{S} + d(u,v) = \dist{v}{S}\}.
1412: \]
1413: For a vertex \( v \in V \), the \emph{ideal of $v$ induced by $S$},
1414:   denoted \( I_{S} (v) \), is the set of vertices reachable from $v$ by
1415:   directed edges in $F(S)$, including $v$ itself.
1416: 
1417: For a vertex \( v \in V \), the {\em cone of width $l$ around $v$
1418:   induced by $S$}, denoted \( C_{S} (l,v) \),
1419:   is the set of vertices in $V$ that
1420:   can be reached from $v$ by a path, the sum of the lengths of whose
1421:   edges $e$ that do not belong to $F(S)$ is at most $l$.
1422: Clearly, $C_{S} (0,v) = I_{S} (v)$ for all $v \in V$.
1423: \end{definition}
1424: That is, $I_{S} (v)$ is the set of vertices that have shortest
1425:   paths to $S$ that intersect $v$.
1426: Also, $u \in C_{S} (l,v)$ if there exist
1427:   $a_{0}, \dots , a_{k-1}$ and $b_{1}, \dots , b_{k}$
1428:   such that $a_{0} = v$,
1429:   $b_{k} = u$,
1430:   $b_{i+1} \in I_{s} (a_{i})$, $(b_{i}, a_{i}) \in E$,
1431:   and
1432: \[
1433:   \sum_{i} d(b_{i}, a_{i}) \leq l.
1434: \]
1435: 
1436: We now establish that these cones form concentric systems.
1437: 
1438: \begin{proposition}[Cones are concentric]\label{pro:concentriccone}
1439: Let $G = (V,E,w)$ be a weighted graph and let $S \subseteq V$.
1440: Then for all $v \in V$, $\setof{C_{S} (l,v)}_{l}$ is a concentric
1441: system in $G$.
1442: \end{proposition}
1443: \begin{proof}
1444: Clearly, $C_{S} (l,v) \subseteq C_{S} (l',v)$ if $l<l'$.
1445: Moreover, suppose $u\in C_{S} (l,v)$ and $(u,w) \in E$.
1446: Then if $(u \rightarrow w) \in F$, then $w \in C_{S} (l,v)$ as well.
1447: Otherwise, the path witnessing that $u \in C_{S} (l,v)$ followed by
1448:  the edge $(u,w)$ to $w$ is a witness that $w\in C_{S} (l+d(u,w),v)$.
1449: \end{proof}
1450: \begin{algbox}\label{alg:conecut}
1451: \( r = \mathtt{ConeCut} (G, v, \lambda, \lambda', S) \)
1452: \vskip 0.1in
1453: \begin{tightlist2}
1454: \item [1.] Set \( r = \lambda \) and
1455: if $\vol{E (C_{S} (\lambda ,v))} = 0$,
1456: \begin{tightlistA}
1457: \item Set $\mu =
1458:  (\vol{C_{S} (r, v)}+1) \log_{2} (m+1)$
1459: \end{tightlistA}
1460: otherwise,
1461: \begin{tightlistA}
1462: \item Set $\mu =
1463: \vol{C_{S} (r, v)} \log_{2} (m/ \vol{E (C_{S} (\lambda ,v))}$
1464: \end{tightlistA}
1465: \item [2.] While \( \cost{\bdry{C_{S} (r, v)}} > \mu / (\lambda' - \lambda) \),
1466: \begin{tightlistA}
1467: \item [a. ] \hspace*{-0.25in} Find the vertex \( w \not \in C_{S} (r, v)
1468: \) minimizing \( \dist{w}{C_{S}(r, v)} \) and set \( r = r +
1469: \dist{w}{C_{S} (r, v)} \).
1470: \end{tightlistA}
1471: \end{tightlist2}
1472: \end{algbox}
1473: 
1474: \begin{corollary}[Cone Cutting]\label{cor:weightedConeCutting}
1475: Let $G = (V,E,w)$ be a connected weighted graph, let \(v\) be a vertex
1476: in \(V\) and let $S\subseteq V$. Then for any two reals \( 0 \leq
1477: \lambda < \lambda' \), \( \mathtt{ConeCut} (G, v,
1478: \lambda, \lambda', S) \) returns a real \( r \in [\lambda, \lambda')
1479: \) such that
1480: \[
1481: \cost{\bdry{C_S (r, v)}}  ~\leq ~
1482:  \frac{\vol{C_S (r, v)}+\tau }{\lambda' -
1483: \lambda}
1484: \max \left[1,
1485: \log_{2} \frac{m+\tau }{\vol{E (C_S (\lambda, v))}+\tau } \right] ~ ,
1486: \]
1487: where $m = \sizeof{E}$, and
1488: \[
1489: \tau ~ = ~
1490: \left\{
1491: \begin{array}{ll}
1492: 1, & \text{ if $\vol{E (C_S (\lambda, v))} = 0$} \\
1493: 0, & \text{ otherwise.}
1494: \end{array}
1495: \right.
1496: \]
1497: \end{corollary}
1498: 
1499: We will use two other properties of the cones $C_{S} (l,v)$:
1500:   that we can bound their radius (Proposition~\ref{pro:radiusconcentriccone}),
1501:   and that their removal does not increase the radius of the resulting graph
1502:   (Proposition~\ref{pro:deleteconcentriccone}).
1503: 
1504: \begin{proposition}[Radius of Cones]\label{pro:radiusconcentriccone}
1505: Consider a connected weighted graph \( G = (V, E, w) \), a vertex
1506: subset \( S \subseteq V \) and let \( \psi = \max_{v \in V} \dist{v}{S}
1507: \). Then, for every \( x \in S \),
1508: \[
1509: \Gradius{C_{S} (l,x)}{x}
1510:   \leq \psi + 2 l.
1511: \]
1512: \end{proposition}
1513: \begin{proof}
1514: Let $u$ be a vertex in $C_{S} (l,x)$, and let $a_{0}, \dots , a_{k-1}$
1515: and $b_{1}, \dots , b_{k}$ be vertices such that $a_{0} = x$,
1516: $b_{k} = u$, $b_{i+1} \in I_{s} (a_{i})$, $(b_{i}, a_{i}) \in E$, and
1517: \[
1518:   \sum_{i} d(b_{i}, a_{i}) \leq l.
1519: \]
1520: These vertices provide a path connecting $x$ to $u$ inside $C_{S}
1521: (l,x)$ of length at most
1522: \[
1523:   \sum_{i} d(b_{i}, a_{i})
1524: +
1525:   \sum_{i} \dist{a_{i}}{b_{i+1}}.
1526: \]
1527: As the first term is at most $l$, we just need to bound the second
1528:   term by $\psi + l$.
1529: To do this, consider the distance of each of these vertices from
1530:   $S$.
1531: We have the relations
1532: \begin{align*}
1533: \dist{b_{i+1}}{S} & = \dist{a_{i}}{S} + \dist{a_{i}}{b_{i+1}}\\
1534: \dist{a_{i}}{S} & \geq  \dist{b_{i}}{S} - d(b_{i}, a_{i}),
1535: \end{align*}
1536: which imply that
1537: \[
1538:   \psi ~ \geq ~  \dist{b_{k}}{S}
1539:   \geq
1540:   \sum_{i} \dist{a_{i}}{b_{i+1}} - d(b_{i}, a_{i})
1541:   ~ \geq ~
1542:   \left(  \sum_{i} \dist{a_{i}}{b_{i+1}} \right) - l ~ ,
1543: \]
1544: as desired.
1545: \end{proof}
1546: 
1547: In our proof, we actually use
1548: Proposition~\ref{pro:radiusconcentriccone2} which is a slight
1549: extension of Proposition~\ref{pro:radiusconcentriccone}.
1550: It's proof is similar.
1551: %The proof of Proposition~\ref{pro:radiusconcentriccone2}
1552: %  follows the proof of Proposition~\ref{pro:radiusconcentriccone},
1553: %  replacing distances from $S$ with distances from $x_{0}$.
1554: 
1555: 
1556: 
1557: %The cones $\{C_{S} (l,v) \}$
1558: %  form a concentric system
1559: %  (Proposition \ref{pro:concentriccone})
1560: %  with many useful properties.
1561: %The proof of Proposition~\ref{pro:radiusconcentriccone2}
1562: %  appears in Appendix~\ref{sec:coneProperties}.
1563: 
1564: 
1565: \begin{proposition}[Radius of Cones, II]\label{pro:radiusconcentriccone2}
1566: Consider a connected weighted graph \( G = (V, E, w) \), a vertex
1567: \( x_0 \in V \) and let \( \rho = \Gradius{G}{x_{0}} \). Consider a real
1568: \( r_0 < \rho \) and let \( V_0 = B(r_0, x_0) \), \( V' = V - V_0 \)
1569: and \( S = \BallShell{r_0}{x_0} \). Consider a vertex \( x_1 \in S \)
1570: and let \( \psi = \rho - \Gdist{G}{x_{0}}{x_{1}} \). Then the cones
1571: \( C_{S} (l,x_{1}) \) in the graph \( G(V') \) satisfy
1572: \[
1573: \Gradius{C_{S} (l,x_{1})}{x_{1}}
1574:   \leq \psi + 2 l.
1575: \]
1576: \end{proposition}
1577: 
1578: 
1579: \begin{proposition}[Deleting Cones]\label{pro:deleteconcentriccone}
1580: Consider a connected weighted graph \( G = (V, E, w) \), a vertex subset \( S
1581: \subseteq V \), a vertex \( x \in S \) and a real \( l \geq 0 \) and
1582: let \( V' = V - C_{S}(l, x) \), \( S' = S - C_{S}(l, x) \) and \( \psi =
1583: \max_{v \in V} \dist{v}{S} \). Then
1584: \[
1585: \max_{v \in V'}{\Gdist{V'}{v}{S'}} ~ \leq ~ \psi ~ .
1586: \]
1587: \end{proposition}
1588: \begin{proof}
1589: Consider some $v \in V'$.
1590: If the shortest path from $v$ to $S$
1591:   intersects $C_{S} (l,x)$, then
1592:   $v \in C_{S} (l,x)$.
1593: So, the shortest path from $v$ to $S$ in $V$
1594:   must lie entirely in $V'$.
1595: \end{proof}
1596: 
1597: %%Thus we can apply the following cone growing algorithm. Its analysis follows
1598: %%  immediately from Lemma \ref{lem:cuttingconcentricsystem} and
1599: %%  Proposition \ref{pro:concentriccone}.
1600: 
1601: The basic idea of $\mathtt{StarDecomp}$ is to first use
1602:   $\mathtt{BallCut}$ to construct $V_{0}$ and then repeatedly apply
1603:   $\mathtt{ConeCut}$ to construct $\vs{V}{1}{k}$.
1604: %We now  define algorithm $\mathtt{StarDecomp}$.
1605: %Lemma \ref{lem:stardecomposition} follows from
1606: %  Corollaries \ref{cor:weightedBallCutting} and
1607: %\ref{cor:weightedConeCutting}
1608: %  and two other basic properties of the cones $C_{S} (l,W)$:
1609: %  that we can bound their radius (Proposition~\ref{pro:radiusconcentriccone}),
1610: %  and that their removal does not increase the radius of the graph
1611: %  (Proposition~\ref{pro:deleteconcentriccone}).
1612: 
1613: %See Appendix \ref{sec:stardecompApp} for the proof of Lemma
1614: %\ref{lem:stardecomposition}.
1615: 
1616: \begin{algbox}\label{alg:StarDecomp}
1617: \( \left(\{\vs{V}{0}{k},\xx,\yy \} \right) =
1618: \mathtt{StarDecomp} (G = (V, E, w), x_{0}, \delta, \epsilon) \)
1619: \vskip 0.1in
1620: \begin{tightlist2}
1621: \item [1.] Set \( \rho = \Gradius{G}{x_{0}} \); Set \( r_{0} =
1622: \mathtt{BallCut} (G, x_{0}, \rho, \delta) \) and \( V_{0}= B
1623: (r_{0},x_{0}) \);
1624: \item [2.] Let \( S = \BallShell{r_0}{x_0} \);
1625: \item [3.] Set \( G'= (V',E',w') = G (V-V_{0}) \), the weighted graph
1626: induced by $V-V_{0}$;
1627: \item [4.] Set \( \left(\{\vs{V}{1}{k},\xx\} \right) =
1628: \mathtt{ConeDecomp} (G', S, \epsilon \rho / 2) \);
1629: \item [5.] For each $i\in [1:k]$, set $y_{k}$ to be
1630:     a vertex in $V_{0}$
1631:     such that $(x_{k}, y_{k}) \in E$ and $y_{k}$ is on a
1632:     shortest path from $x_{0}$ to $x_{k}$.
1633:     Set $\yy = (\vs{y}{1}{k})$.
1634: \end{tightlist2}
1635: \vskip 0.1in
1636: \( \left(\{\vs{V}{1}{k},\xx \} \right) = \mathtt{ConeDecomp}
1637: (G, S, \Delta) \)
1638: \vskip 0.1in
1639: \begin{tightlist2}
1640: \item [1.] Set $G_{0} =G $, $S_{0} = S$, and $k = 0$.
1641: 
1642: \item [2.] while $S_{k}$ is not empty
1643: \begin{tightlistA}
1644: 
1645: \item [a. ] Set $k = k+1$; Set $x_{k}$ to be a vertex of $S_{k-1}$;
1646:   Set \( r_{k} = \mathtt{ConeCut} (G_{k-1}, x_{k}, 0, \Delta, S_{k-1}) \)
1647: \item [b. ]
1648:   Set \( V_{k} = C_{S_{k-1}} (r_{k}, x_{k}) \); Set \( G_{k} = G(V -
1649: \union_{i=1}^{k}V_{k}) \) and \( S_{k} = S_{k-1}-V_{k} \).
1650: \end{tightlistA}
1651: \item [3.] Set $\xx = (\vs{x}{1}{k})$.
1652: \end{tightlist2}
1653: \end{algbox}
1654: 
1655: \begin{proof}[Proof of Lemma~\ref{lem:stardecomposition}]
1656: %The idea of $\mathtt{StarDecomp}$ is to first use
1657: %  $\mathtt{BallCut}$ to construct $V_{0}$ and then repeatedly apply
1658: %  $\mathtt{ConeCut}$ to construct $\vs{V}{1}{k}$.
1659: Let $\rho  = \Gradius{G}{x_{0}}$.
1660: By setting $\delta = 1/3$, Corollary~\ref{cor:weightedBallCutting}
1661:   guarantees \( \rho / 3 \leq
1662: r_{0} \leq (2 / 3) \rho \).
1663: Applying \( \Delta = \epsilon \rho / 2 \) and Propositions
1664:   \ref{pro:radiusconcentriccone} and \ref{pro:deleteconcentriccone},
1665:   we can bound for every $i$,
1666:   \( r_{0} + d (x_{i},y_{i}) + r_{i} \leq \rho + 2 \Delta =
1667:   \rho + \epsilon \rho \).
1668: Thus \( \mathtt{StarDecomp} (G, x_{0}, 1 / 3, \epsilon) \) returns a
1669:   \( (1 / 3, \epsilon) \)-star-decomposition with center $x_{0}$.
1670: 
1671: To bound the cost of the star-decomposition that the algorithm
1672: produces, we use Corollaries \ref{cor:weightedBallCutting} and
1673: \ref{cor:weightedConeCutting}.
1674: 
1675: \begin{align*}
1676: &\cost{\bdry{V_0}}  \leq  \frac{3 \,(1+ \vol{V_0}) \log_{2} (m+1)}{\rho},
1677: \quad \text{and}\\
1678: &\cost{\edgbet{V_j,V - \cup_{i=0}^{j}V_i}}
1679:     \leq  \frac{2 \, ( 1+\vol{V_j}) \log_{2} (m+1)}{\epsilon \rho}
1680: \end{align*}
1681: for every \( 1 \leq i \leq k \), thus
1682: \begin{align*}
1683: \cost{\bdry{\vs{V}{0}{k}}} & \leq ~ \sum_{j = 0}^{k}
1684: \cost{\edgbet{V_j,V - \cup_{i=0}^{j}V_i}} \\
1685: & \leq ~  \frac{2 \, \log_{2} (m+1)}{\epsilon \rho}
1686:           \sum_{j = 0}^{k} ( \vol{V_j} +1) \\
1687: & \leq ~ \frac{6 \, m \log_{2} (m+1)}{\epsilon \rho} ~ .
1688: \end{align*}
1689: 
1690: To implement $\mathtt{StarDecomp}$ in $O (m + n\log n)$ time,
1691:   we use a Fibonacci heap to implement steps (2) of
1692:   $\mathtt{BallCut}$ and  $\mathtt{ConeCut}$.
1693: If the graph is unweighted, this can be replaced by
1694:   a breadth-first search that requires $O(m)$ time.
1695: \end{proof}
1696: 
1697: %\begin{lemma}[Cone Decomposition]\label{lem:conecutting}
1698: %Let $G = (V,E,w)$ be a weighted graph, and let $S\subseteq V$.
1699: %If $\dist{v}{S}\leq r'$ for all $v \in V$,
1700: %  then for every $\Delta $, there exists
1701: %  a multiway partition of $V$ into $\vs{V}{1}{k}$ such that
1702: %\begin{tightlist2}
1703: %\item
1704: %$\cost{\bdry{\{\vs{V}{1}{k}\}}} \leq 2 m \log_{2} m / \Delta $, and
1705: 
1706: %\item  for each set $V_{j}$, there exists an $s_{j}\in V_{j} \cap S$
1707: %  such that $\dist{v_{j}}{s_{j}}
1708: %  \leq r' + 2\Delta $, for all $v_{j}\in V_{j}$.
1709: %\end{tightlist2}
1710: %\end{lemma}
1711: 
1712: 
1713: %\begin{proof}[Proof of Lemma~\ref{lem:conecutting}]
1714: 
1715: %We apply the following iterative construction.
1716: 
1717: %\begin{itemize}
1718: %\item [0.] Let $G_{0} =G $, and let $U_{0} = V$ and $E_0 = E$ be the
1719: %  vertices and edges of $G_{0}$, respectively.
1720: %  Let $S_{0} = S$. Let $k = 0$.
1721: 
1722: %\item [1.] while $S_{i-1}$ is not empty
1723: %\begin{itemize}
1724: 
1725: %\item [a. ] Let $k = k+1$
1726: %\item [b. ] Let $s_{k}$ be a vertex of $S_{k-1}$;
1727: %\item [c. ] Apply Corollary \ref{cor:weightedConeCutting} to construct
1728: %            $C (l_{k},s_{k})$ and let $V_{k} = C (l_{k},s_{k})$
1729: %($l_k$ is the number whose existence is guaranteed by Corollary
1730: %\ref{cor:weightedConeCutting}).
1731: %\item [d. ]  Let $G_{k} = G_{k-1} (U_{k-1}-V_{k})$ and let $U_{k}$ and
1732: %             $E_{k}$  be the vertices and edges, respectively, of $G_{k}$.
1733: %\end{itemize}
1734: %\item [2.] Return $\vs{V}{1}{k}$
1735: %\end{itemize}
1736: 
1737: %It follows from Corollary \ref{cor:weightedConeCutting},
1738: %\[
1739: %\cost{\bdry{\vs{V}{1}{k}}} \leq \sum_{i=1}^{k} \cost{\bdry{V_{i}}}
1740: %\leq \frac{2\sum_{i}^{k}\vol{V_{i}}\log_{2}m}{\delta }
1741: %\leq \frac{2\sizeof{E}\log_{2}m}{\delta }.
1742: %\]
1743: 
1744: %Let follows from Propositions \ref{pro:radiusconcentriccone} and \ref{pro:deleteconcentriccone}
1745: %  that $\Gradius{G (V_{i})}{s_{i}}\sum r+2\delta $.
1746: %\end{proof}
1747: 
1748: 
1749: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1750: \section{Improving the Stretch}\label{sec:Improved}
1751: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1752: 
1753: In this section, we improve the average stretch
1754:   of the spanning tree to
1755:   $O \left(\log^{2} n \log\log n \right)$ by
1756:   introducing a procedure
1757:   $\mathtt{ImpConeDecomp}$ which refines $\mathtt{ConeDecomp}$.
1758: This new cone decomposition trades off the volume of the cone
1759:   against the cost of edges on its boundary (similar to Seymour \cite{Seym}).
1760: Our refined star decomposition algorithm $\mathtt{ImpStarDecomp}$ is
1761:   identical to algorithm $\mathtt{StarDecomp}$, except that it
1762:   calls
1763: \[
1764: (\{\vs{V}{1}{k},\xx \}) = \mathtt{ImpConeDecomp} (G', S,
1765: \epsilon \rho / 2, t, \mbar)
1766: \]
1767:   at Step 4, where \(t\) is a positive integer that will be defined soon.
1768: 
1769: %Due to  space limitations, we will only state the algorithm and
1770: % a  lemma  about its performance.
1771: %The proof of the lemma can be found in Section \ref{sec:proofImpStar}.
1772: 
1773: \vskip 0.1in
1774: \begin{algbox}\label{alg:impConeDecomp}
1775: \( \left(\{\vs{V}{1}{k},\xx \} \right) =
1776: \mathtt{ImpConeDecomp} (G, S, \Delta, t, \mbar) \)
1777: \vskip 0.1in
1778: \begin{tightlist2}
1779: \item [1.] Set \( G_{0} = G \), \( S_{0} = S \) and \( j = 0 \).
1780: 
1781: \item [2.] while \( S_{j} \) is not empty
1782: \begin{tightlistA}
1783: 
1784: \item [a.] Set \( j = j + 1 \), set \( x_{j} \) to be a vertex of \(
1785: S_{j - 1} \), and set \( p = t - 1 \);
1786: \item [b.] while \( p > 0 \)
1787: \begin{tightlistB}
1788: \item [i.]
1789:     \( r_j = \mathtt{ConeCut} (G_{j - 1}, x_j,
1790:     \frac{(t - p - 1) \Delta}{t}, \frac{(t - p) \Delta}{t}, S_{j - 1}) \);
1791: \item [ii.]
1792:     {\bf if} \( \vol{E(C_{S_{j - 1}}(r_j, x_j))} \leq
1793:     \frac{m}{2^{\log^{p / t} \mbar}} \) {\bf then} {\bf exit} the loop;
1794:     {\bf else}  \( p = p - 1 \);
1795: \end{tightlistB}
1796: \item [c.] Set \( V_j = C_{S_{j - 1}}(r_j, x_j) \) and set \( G_{j} =
1797:            G(V - \union_{i=1}^{j}V_{i}) \) and \( S_{j} = S_{j - 1} - V_{j} \);
1798: \end{tightlistA}
1799: \item [3.] Set $\xx = (\vs{x}{1}{k})$.
1800: \end{tightlist2}
1801: \end{algbox}
1802: \vskip -0.1in
1803: 
1804: \begin{lemma}[Improved Low-Cost Star Decomp]\label{lem:ImpStarDecompn}
1805: Let $G$, $x_0$ and $\epsilon$ be as in Lemma
1806: \ref{lem:stardecomposition}, $t$ be a positive integer control
1807: parameter, and \( \rho = \Gradius{G}{x_{0}} \). Then
1808: \[
1809: (\{V_0,\ldots,V_k\},\xx,\yy) =
1810: \mathtt{ImpStarDecomp}(G, x_0, 1 / 3, \epsilon, t, \mbar) ~ ,
1811: \]
1812: in time $O (m + n \log n)$, returns a  $(1/3, \epsilon)$-star-decomposition of
1813:   $G$ with center $x_0$ that satisfies
1814: \[
1815: \cost{\bdry{V_{0}}} ~ \leq ~ \frac{6 \, \vol{V_{0}} \log_{2} (\mbar +1)}{\rho} ~ ,
1816: \]
1817: and for every index $j \in \{1,2,\ldots,k\}$
1818:    there exists $p = p(j) \in \{0,1,\ldots,t-1\}$ such that
1819: \begin{equation} \label{eq:cost}
1820: \cost{\edgbet{V_j,V - \cup_{i=0}^{j}V_i}}
1821: \leq  t \cdot \frac{4 \, \vol{V_j} \log^{(p + 1) / t} (\mbar+1)}
1822:                     {\epsilon \rho} ~ ,
1823: \end{equation}
1824: and unless \( p = 0 \),
1825: \begin{equation} \label{eq:volume}
1826: \vol{E(V_j)} ~ \leq ~ \frac{m}{2^{\log^{p/t} \mbar}} ~ .
1827: \end{equation}
1828: 
1829: %\begin{equation}
1830: %\label{eq:cost}
1831: %\vol{E(V_j)} ~\le~ {m \over {2^{\log^{p/t} \mbar}}} \quad \mbox{and}
1832: %\quad \cost{\bdry{V_j,V - \cup _{i=0}^{j}V_i}} ~\le~ t \cdot {{4 \vol{V_j}
1833: %  \log^{(p+1)/t} \mbar}\over {\alpha r}}.
1834: %\end{equation}
1835: \end{lemma}
1836: \begin{proof}
1837: In what follows, we call \( p(j) \) the \emph{index-mapping} of
1838: the vertex set \( V_j \).
1839: We begin our proof by observing that \( 0 \leq r_j < \epsilon \rho
1840: / 2 \) for every \( 1 \leq j \leq k \).
1841:  We can then show that \( \{\vs{V}{0}{k}\} \)
1842:   is a \( (1 / 3, \epsilon) \)-star decomposition as we did in the proof of
1843: Lemma \ref{lem:stardecomposition}.
1844: 
1845: We now bound the cost of the decomposition.
1846: Clearly, the bound on \( \cost{\bdry{V_{0}}} \) remains
1847:   unchanged from that proved in Lemma
1848:   \ref{lem:stardecomposition}, but here we bound
1849:   $\vol{V_{0}} + 1$ by $2 \vol{V_{0}}$.
1850: 
1851: Below we will use \( \Delta = \epsilon \rho / 2 \) as specified in the algorithm.
1852: 
1853: Fix an index \( j \in \{1,2,\ldots,k\} \), and let \( p = p(j) \) be
1854: the final value of variable \(p\) in the loop above (that is, the
1855: value of \(p\) when the execution left the loop while constructing \(
1856: V_j \)). Observe that \( p \in \{0,1,\ldots,t-1\} \), and that unless the
1857: loop is aborted due to \( p = 0 \), we have \( \vol{E(V_j)} \leq
1858: \frac{m}{2^{\log^{p/t} \mbar}} \) and inequality \eqref{eq:volume} holds.
1859: 
1860: For inequality \eqref{eq:cost}, we split the discussion to two
1861: cases. First, consider the case \( p = t - 1 \).
1862: Then the inequality
1863:   \( \cost{\edgbet{V_j, V - \cup_{i=0}^{j}V_i}} \leq
1864:   (\vol{V_j}+1)  \log (\mbar +1) (t/\Delta) \) follows directly from Corollary
1865:   \ref{cor:weightedConeCutting}, and inequality \eqref{eq:cost} holds.
1866: 
1867: Second, consider the case \( p < t - 1 \) and let \( r_{j}' \) be the
1868: value of the variable \( r_j \) at the beginning of the last
1869: iteration of the loop (before the last invocation of Algorithm
1870: \texttt{ConeCut}). In this case, observe that at the beginning of the
1871: last iteration, \( \vol{E(C_{S_{j - 1}}(r_{j}', x_j))} >
1872: \frac{m}{2^{\log^{(p + 1) / t} \mbar}} \) (as otherwise the loop
1873: would have been aborted in the previous iteration).
1874: By Corollary \ref{cor:weightedConeCutting},
1875: \[
1876:  \cost{\edgbet{V_j, V - \cup_{i=0}^{j}V_i}}
1877:  ~\leq ~
1878:   \frac{\vol{V_j}}{\Delta / t} ~ \times
1879: \max \left[1,\log_{2}{\left( \frac{m}{\vol{E \left(
1880: C_{S_{j - 1}} \left( \frac{(t - p - 1) \Delta}{t}, x_j \right) \right)}}
1881: \right)} \right],
1882: \]
1883: where \( V_j = C_{S_{j - 1}}(r_j, x_j) \).
1884: Since
1885: \[
1886: \frac{(t - p - 2)
1887: \Delta}{t} \leq r_{j}' < \frac{(t - p - 1) \Delta}{t},
1888: \]
1889: it follows that
1890: \[
1891: \vol{E \left( C_{S_{j - 1}} \left( \frac{(t - p - 1) \Delta}{t}, x_j
1892: \right) \right)}
1893: ~ \geq ~ \vol{E(C_{S_{j - 1}}(r_{j}', x_j))} ~ > ~
1894: \frac{m}{2^{\log^{(p + 1) / t} \mbar}} ~ .
1895: \]
1896: Therefore
1897: \[
1898: \log^{(p + 1) / t} \mbar ~ \geq ~
1899: \max \left[1,\log_{2}{\left( \frac{m}{\vol{E \left(
1900: C_{S_{j - 1}} \left( \frac{(t - p - 1) \Delta}{t}, x_j \right) \right)}}
1901: \right)} \right] ~ ,
1902: \]
1903: and
1904: \[
1905: \cost{\edgbet{V_j, V - \cup_{i=0}^{j}V_i}}  ~ \leq ~ \frac{\vol{V_j}
1906: \log^{(p + 1) / t} \mbar}{\Delta / t}
1907:  ~ = ~ t \cdot \frac{2 \, \vol{V_j} \log^{(p + 1) / t}
1908: \mbar}{\epsilon \rho} ~ .
1909: %\qed
1910: \]
1911: \end{proof}
1912: 
1913: Our improved algorithm \( \mathtt{ImpLowStretchTree} (G, x_{0}, t, \mbar) \),
1914: is identical to \texttt{LowStretchTree} except that in Step 3 it calls
1915: $\mathtt{ImpStarDecomp} (\Contracted{G}, x_{0}, 1/3, \beta, t,
1916: \mbar),$ and in Step 5 it calls \AvoidOverfull{}
1917: $\mathtt{ImpLowStretchTree} (G (V_{i}), x_{i}, t, \mbar)$. We set $t =
1918: \log\log n$ throughout the execution of the algorithm.
1919: %The proof of the following theorem is deferred to Section
1920: %\ref{sec:proofImproved}.
1921: 
1922: \begin{theorem}[Lower--Stretch Spanning Tree] \label{thm:main2}
1923: Let \( G = (V, E, w) \) be a connected weighted graph and let \(x_0\)
1924: be a vertex in \(V\). Then
1925: \[
1926: T = \mathtt{ImpLowStretchTree} (G, x_{0}, t, \mbar) ~ ,
1927: \]
1928: in time \( O (\widehat{m} \log \widehat{n} + \widehat{n} \log^2
1929: \widehat{n}) \), returns a spanning tree of \(G\) satisfying
1930: \[
1931: \Gradius{T}{x_0} \leq 2 \sqrt{e} \cdot  \Gradius{G}{x}
1932: \]
1933: and
1934: \[
1935: \avestretch{T}{E} = O \left(\log^{2} \widehat{n} \log\log \widehat{n}
1936: \right) ~ .
1937: \]
1938: %For every weighted connected graph $G = (V,E,w)$ on $n$ vertices and
1939: %  $m$ edges, \texttt{ImpLowStretchTree}, in $O (m\log^2 n)$ time,
1940: %  constructs a spanning tree $T$ satisfying
1941: %\( \Gradius{T}{x} \leq 2 \, \sqrt{e} \cdot \Gradius{G}{x} \), and \(
1942: %\stretch{T}{E} = O \left(\log^{2} n\log\log n \right) \).
1943: \end{theorem}
1944: \begin{proof}
1945: %We first apply a linear-time transformation from \cite{AKPW} that
1946: %  transforms the graph into one with at most $n (n + 1)$ edges,
1947: %  and such that the average-stretch of the spanning tree on the
1948: %  original graph will be at most twice the average-stretch on this graph.
1949: 
1950: The bound on the radius of the tree remains unchanged from that proved
1951: in Theorem~\ref{thm:main}.
1952: 
1953: We begin by defining a system of notations for the recursive process,
1954: assigning for every graph \( G = (V, E) \) input to some recursive
1955: invocation of Algorithm \texttt{ImpLowStretchTree}, a sequence \(
1956: \GraphSequence{G} \) of non-negative integers. This is done as
1957: follows. If \(G\) is the original graph input to the first invocation
1958: of the recursive algorithm, than \( \GraphSequence{G} \) is
1959: empty. Assuming that the halt condition of the recursion is not
1960: satisfied for \(G\), the algorithm continues and some of the edges in
1961: \(E\) are contracted. Let \( \Contracted{G} = (\Contracted{V},
1962: \Contracted{E}) \) be the resulting graph. (Recall that we refer to \(
1963: \Contracted{G} \) as the edge-contracted graph.) Let \( \{
1964: \Contracted{V}_0, \Contracted{V}_1, \dots , \Contracted{V}_k \} \) be
1965: the star decomposition of \( \Contracted{G} \). Let \( V_j \in V \) be
1966: the preimage under edge contraction of \( \Contracted{V}_j \in
1967: \Contracted{V} \) for every \( 0 \leq j \leq k \). The graph \( G(V_j)
1968: \) is assigned the sequence \( \GraphSequence{G({V}_{j})} =
1969: \GraphSequence{G} \cdot j \). Note that \( | \GraphSequence{G} | = h
1970: \) implies that the graph \(G\) is input to the recursive algorithm on
1971: recursion level \(h\). We warn the reader that the edge-contracted
1972: graph obtained from a graph assigned with the sequence \(\sigma\) may
1973: have fewer edges than the edge-contracted graph obtained from the
1974: graph assigned with the sequence \( \sigma \cdot j \), because the
1975: latter may contain edges that were contracted out in the former.
1976: 
1977: We say that the edge \(e\) is \emph{present} at recursion level \(h\)
1978: if \(e\) is an edge in \( \Contracted{G} \) which is the
1979: edge-contracted graph obtained from some graph \(G\) with \( |
1980: \GraphSequence{G} | = h \) (that is, it was not contracted out). An
1981: edge $e$ \emph{appears} at the first level \(h\) at which it is
1982: present, and it \emph{disappears} at the level at which it is present
1983: and its endpoints are separated by the star decomposition. If an edge
1984: appears at recursion level \(h\), then a path connecting its endpoints
1985: was contracted on every recursion level smaller than \(h\), and no
1986: such path will be contracted on any recursion level greater than
1987: \(h\). Moreover, an edge is never present at a level after it
1988: disappears. We define \( h(e) \) and \( h'(e) \) to be the recursion
1989: levels at which the edge \(e\) appears and disappears, respectively.
1990: 
1991: For every edge $e$ and every recursion level $i$ at which it is
1992: present, we let $U (e,i)$ denote the set of vertices $\Contracted{V}$
1993: of the edge-contracted graph containing its endpoints.
1994: If $h (e) \leq i < h' (e)$, then we let $W (e,i)$ denote the set of vertices
1995:   $\Contracted{V}_{j}$ output by \texttt{ImpStarDecomposition}
1996:   that contains the endpoints of $e$.
1997: 
1998: Recall that \( p(j) \) denote the index-mapping of the vertex set \(
1999: V_j \) in the star decomposition. For each index \( i \in
2000: \{0,1,\ldots,t-1\} \), let \( I_i = \{j \in \{1,2,\ldots,k\} \mid p(j)
2001: = i\} \). For a vertex subset \( U \subseteq V \), let \( \AS{U} \) denote the
2002: average stretch that the algorithm guarantees for the edges of
2003: $E(U)$. Let \( \TS{U} = \AS{U} \cdot | E(U) | \). Then by Lemma
2004: \ref{lem:ImpStarDecompn}, the following recursive formula applies.
2005: \begin{eqnarray}
2006: \TS{V} & \leq & \left( \sum_{j = 0}^k \TS{\Contracted{V}_j} \right)
2007: \nonumber \\
2008: & + & 4 \sqrt{e} \times \left( 6 \, \log (\widehat{m} + 1) \cdot
2009: \vol{\Contracted{V}_0} ~ + ~ 4 \, \frac{t}{\beta} \sum_{p = 0}^{t - 1}
2010: \log^{(p + 1) / t} ( \mbar+1) \sum_{j \in I_p} \vol{\Contracted{V}_j}
2011: \right) \nonumber \\
2012: & + & \left( \sum_{e \in E - \Contracted{E}}{\stretch{T}{e}} \right)
2013: \nonumber \\
2014: & = & \left( \sum_{j = 0}^k \TS{V_j} \right) \nonumber \\
2015: & + & 4 \sqrt{e} \times \left( 6 \, \log (\widehat{m} + 1) \cdot
2016: \vol{\Contracted{V}_0} ~ + ~ 4 \, \frac{t}{\beta} \sum_{p = 0}^{t - 1}
2017: \log^{(p + 1) / t} ( \mbar+1) \sum_{j \in I_p} \vol{\Contracted{V}_j}
2018: \right) ~ , \label{eq:TS}
2019: \end{eqnarray}
2020: where we recall $\beta = \epsilon = (2 \log_{4/3} (n + 32))^{-1}$.
2021: 
2022: For every edge \(e\) and for every \( h(e) \leq i < h'(e) \), let
2023: \( \pi_i(e) \) denote the index-mapping of the component \(
2024: W(e, i) \) in the invocation of Algorithm \texttt{ImpConeDecomp}
2025: on recursion level \(i\). For every index \( p \in \{ 0, \dots , t - 1
2026: \} \), define the variable \( l_p(e) \) as follows
2027: \[
2028: l_p(e) ~ = ~ \left| \left\{ h(e) \leq i < h'(e) \mid \pi_i(e) = p
2029: \right\} \right| ~ .
2030: \]
2031: 
2032: For a fixed edge \(e\) and an index
2033:   \( p \in \{ 0, \dots , t - 1 \} \),
2034:   every \( h(e) \leq i < h'(e) \) such that \( \pi_i(e) = p \)
2035:    reflects a contribution of
2036:   \( O (t / \beta) \cdot \log^{(p + 1) / t} (\mbar + 1) \)
2037:   to the right term in
2038:   \eqref{eq:TS}.
2039: Summing $p$ over $\setof{0, 1, \ldots , t-1}$, we obtain
2040: \[
2041: \sum _{p=0}^{t-1} O (t / \beta) l_{p} (e)\log^{(p + 1) / t} (\mbar + 1).
2042: \]
2043: In a few moments, we will prove that
2044: \begin{equation}\label{eqn:sumLp}
2045: \sum _{e} \sum _{p=0}^{t-1} l_{p} (e)\log^{p  / t} (\mbar + 1)
2046:   \leq
2047: O (\mbar \log_{2} \mbar),
2048: \end{equation}
2049: which implies that the sum of the contributions of all edges $e$ in levels
2050:   \( h(e) \leq i < h'(e) \) to the right term in
2051:   \eqref{eq:TS}
2052:  is
2053: \[
2054:  O \left(
2055: \frac{t}{\beta} \cdot \mbar \log^{1 + 1 / t} \mbar \right)
2056: =
2057:  O \left(
2058: t \cdot \mbar \log^{2 + 1 / t} \mbar \right)
2059: \]
2060: 
2061: As  \( \vol{V_j} \) counts the internal edges of \(V_j \) as well as
2062:   its boundary edges, we must also account for the contribution of
2063:   each edge $e$ at level $h' (e)$.
2064: At this level, it will be counted twice---once in each component containing
2065:   one of its endpoints.
2066: Thus, at this stage, it contributes a factor of at most
2067:   \( O ((t/\beta ) \cdot \log \mbar) \) to the sum \( \TS{V} \).
2068: Therefore all edges
2069:   \( e \in E \)
2070: contribute an additional factor of
2071:  \( O (t \cdot \mbar \log^2 \mbar) \).
2072: Summing over all the edges, we find that all the contributions to
2073:   the right term
2074:   in
2075:   \eqref{eq:TS} sum to at most
2076: \[
2077:  O \left(
2078: t \cdot \mbar \log^{2 + 1 / t} \mbar \right) .
2079: \]
2080: 
2081: Also, every \( h(e) \leq i < h'(e) \) such that the edge \(e\) belongs
2082: to the central component \( \Contracted{V}_0 \) of the star
2083: decomposition, reflects a contribution of \( O (\log \mbar) \) to the
2084: left term in \eqref{eq:TS}. Since there are at most \( O (\log \mbar) \) such
2085: \(i\)s, it follows that the contribution of the left term in
2086: \eqref{eq:TS} to \( \TS{V} \) sums up to an additive term of \( O
2087: (\log^2 \mbar) \) for every single edge, and \( (\mbar \log^2 \mbar) \)
2088: for all edges.
2089: 
2090: It follows that \( \TS{V} = O (t \cdot \mbar \log^{2 + 1 / t}
2091: \mbar) \). This is optimized by setting \( t = \log\log \mbar \),
2092: obtaining the desired upper bound of \( O (\log^{2} \widehat{n} \cdot \log\log
2093: \widehat{n}) \) on the average stretch \( \AS{V} \) guaranteed by Algorithm
2094: \texttt{ImpLowStretchTree}.
2095: 
2096: We now return to the proof of \eqref{eqn:sumLp}.
2097: We first note that  \( l_0(e) \) is at
2098:   most \( O (\log \mbar) \) for every edge \(e\).
2099: We then observe that for each index
2100:   \( p > 0 \) and each \( h(e) \leq i < h'(e) \) such that \( \pi_i(e) = p  \),
2101:   $\vol{E(U (e,i))}/\vol{E(W (e,i))}$
2102:   is at least
2103:   \( 2^{\log^{p / t} \mbar} \) (by Lemma
2104:   \ref{lem:ImpStarDecompn}, \eqref{eq:volume}).
2105: For $h (e) \leq  i < h' (e)$, let
2106:   $g_{i} (e) = \vol{E(U (e,i+1))} / \vol{E(W (e,i))}$.
2107: We then have
2108: \[
2109: \prod _{1 \leq p \leq t-1}
2110: \left( 2^{\log^{p / t} \mbar} \right)^{l_p(e)} ~
2111: \leq ~ \mbar \prod _{h (e) \leq  i < h' (e)} g_{i} (e) ~ ,
2112: \]
2113: hence \( \sum _{p=1}^{t-1} l_p(e) \log^{p / t} \mbar \leq \log
2114: \mbar + \sum _{h (e) \leq  i < h' (e)} \log g_{i} (e)
2115:  \).
2116: We will next prove that
2117: \begin{equation}\label{eqn:sumgis}
2118: \sum _{e} \sum _{h (e) \leq  i < h' (e)} \log g_{i} (e)
2119: \leq \mbar \log \mbar,
2120: \end{equation}
2121: which implies \eqref{eqn:sumLp}.
2122: 
2123: Let $E_{i}$ denote the set of edges present at recursion level $i$.
2124: For every edge $e \in E_{i}$ such that $i < h' (e)$, we have
2125: \[
2126:   \sum _{e' \in E(W (e,i))} g_{i} (e') = g_{i} (e) \vol{E(W (e,i))}
2127:  = \vol{E(U (e,i+1))},
2128: \]
2129: and so
2130: $  \sum _{e \in E_{i} : i < h' (e) } g_{i} (e) = \vol{E_{i+1}}.$
2131: As each edge is present in at most $O (\log \mbar)$ recursion depths,
2132: $\sum _{i} \vol{E_{i}} \leq \mbar \log \mbar$, which proves \eqref{eqn:sumgis}.
2133: \end{proof}
2134: 
2135: %\begin{proof}
2136: %The proof is analogous  to that of Lemma \ref{lem:stardecomposition},
2137: %but Lemma \ref{lem:imp_conecutting} is used
2138: %instead
2139: %Lemma \ref{lem:conecutting}.
2140: %Algorithm $\mathtt{ImpStarDecomp}$ is identical to algorithm
2141: %$\mathtt{StarDecomp}$, except that it invokes the refined star
2142: %decomposition procedure
2143: %(that uses $\mathtt{ImpConeDecomp}$)
2144: %instead of the original one.
2145: %Also, algorithm $\mathtt{ImpStarDecomp}$ delivers the new parameter
2146: %$\mbar$ unchanged to the recursive invocations. (In the very first
2147: %root invocation, $\mbar = m$, but in all the other recursive
2148: %invocations, $m$ is the size of the edge set on which the
2149: %procedure is invoked, while $\mbar$ is the size of the edge set
2150: %of the entire original graph.)
2151: %\end{proof}
2152: 
2153: 
2154: %Remark: all the logarithms in this section have base 2.
2155: 
2156: %\begin{lemma}
2157: %\label{lem:imp_conecutting}
2158: %For $G$, $S$, $r'$ and $\Delta$ as in Lemma \ref{lem:conecutting},
2159: %a positive integer parameter $t$, and $\mbar \ge m = |E|$,
2160: %there exists a multiway partition of $V$ into $V_1,\ldots,V_k$
2161: %such that
2162: %\begin{itemize}
2163: %\item
2164: %for every index $j \in \{1,2,\ldots,k\}$ there exists
2165: %$p = p(j) \in \{0,1,\ldots,t-1\}$ such that
2166: %$\vol{E(V_j)} \le {m \over {2^{\log^{p/t} \mbar}}}$, {\bf and}
2167: %\begin{equation}
2168: %\label{eq:cost}
2169: %\cost{\bdry{V_j,V - S - V_j}} ~\le~
2170: %t \cdot {{2 \vol{V_j}} \over \Delta} \cdot \log^{(p+1)/t} \mbar
2171: %\end{equation}
2172: %\item
2173: % for each set $V_{j}$, there exists an $s_{j}\in V_{j} \cap S$
2174: %  such that $\dist{v_{j}}{s_{j}}
2175: %  \leq r' + 2\Delta $, for all $v_{j}\in V_{j}$.
2176: %\end{itemize}
2177: %\end{lemma}
2178: %\begin{proof}
2179: %An iterative procedure  similar to the one described in the proof
2180: %of Lemma \ref{lem:conecutting} is applied.
2181: %The only difference is in step
2182: %1(c)
2183: %%
2184: %%\ref{step:cone},
2185: %%For some reason I could not make this ref' to work.
2186: %%
2187: %which now grows into the following loop.
2188: %(This variant of the cone decomposition algorithm will be referred to
2189: %as $\mathtt{ImpConeDecomp}$.)
2190: 
2191: %We next show that the cone decomposition that is constructed by this
2192: %modified iterative procedure satisfies the statement of the lemma.
2193: 
2194: %\end{proof}
2195: 
2196: 
2197: %{\bf 6   Open Questions}
2198: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2199: \section{Conclusion}\label{sec:conclusion}
2200: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2201: 
2202: At the beginning of the paper, we pointed out that the definition
2203:   of stretch used in this paper differs slightly from that used
2204:   by Alon, Karp, Peleg and West~\cite{AKPW}.
2205: If one is willing to accept a longer running time, then this problem
2206:   is easily remedied as shown in Subsection \ref{subsec:applications}.
2207: If one is willing to accept a bound of $O (\log ^{3} n)$ on the stretch,
2208:   then one can extend our analysis to show that the natural randomized
2209:   variant \texttt{LowStretchTree},  in which
2210:   one chooses the radii of the balls and cones at random, works.
2211: 
2212: A natural open question is whether one can improve the stretch bound
2213:    from $O\left(\log^{2} n\log\log n \right)$ to $O
2214:   (\log n)$.
2215: Algorithmically, it is also desirable to improve the running time of
2216:   the algorithm to $O (m\log n)$.
2217: If we can successfully achieve both improvements, then
2218:    we can use the Spielman-Teng solver to solve planar diagonally dominant
2219:    linear systems in $O (n\log n \log (1/\epsilon ))$ time.
2220: 
2221: As the average stretch\footnote{In the context of the optimization
2222: problem of finding a spanning tree with the lowest average stretch,
2223: the stretch is defined as in \cite{AKPW}.} of any spanning tree in a weighted connected graph is $\Omega (1)$, our low-stretch tree algorithm also provides
2224:   an $O\left(\log^{2} n\log\log n \right)$-approximation
2225:   to the optimization problem of finding
2226:   the spanning tree with the lowest average stretch.
2227: It remains open (a) whether our algorithm has a better approximation
2228:   ratio and (b) whether one can in polynomial time find a spanning tree
2229:   with better approximation ratio, e.g., $O (\log n)$ or even $O (1)$.
2230: 
2231: 
2232: 
2233: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2234: \section{Acknowledgments}\label{sec:ack}
2235: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2236: We are indebted to David Peleg, who was offered co-authorship on this paper.
2237: 
2238: \begin{thebibliography}{10}
2239: 
2240: \bibitem{AKPW}
2241: Noga Alon, Richard~M. Karp, David Peleg, and Douglas West.
2242: \newblock A graph-theoretic game and its application to the {$k$}-server
2243:   problem.
2244: \newblock {\em SIAM Journal on Computing}, 24(1):78--100, February 1995.
2245: 
2246: \bibitem{AumannRabani}
2247: Yonatan Aumann and Yuval Rabani.
2248: \newblock An o(log k) approximate min-cut max-flow theorem and approximation
2249:   algorithm.
2250: \newblock {\em SIAM J. Comput.}, 27(1):291--301, 1998.
2251: 
2252: \bibitem{AwerbuchAzar}
2253: B.~Awerbuch and Y.~Azar.
2254: \newblock Buy-at-bulk network design.
2255: \newblock In {\em Proceedings of the 38th IEEE FOCS}, pages 542--547, 1997.
2256: 
2257: \bibitem{Awerbuch}
2258: Baruch Awerbuch.
2259: \newblock Complexity of network synchronization.
2260: \newblock {\em J. ACM}, 32(4):804--823, 1985.
2261: 
2262: \bibitem{Bartal1}
2263: Yair Bartal.
2264: \newblock Probabilistic approximation of metric spaces and its algorithmic
2265:   applications.
2266: \newblock In {\em Proceedings of the 37th IEEE FOCS}, pages 184--193, 1996.
2267: 
2268: \bibitem{Bartal2}
2269: Yair Bartal.
2270: \newblock On approximating arbitrary metrices by tree metrics.
2271: \newblock In {\em Proceedings of the 30th ACM STOC}, pages 161--168, 1998.
2272: 
2273: 
2274: \bibitem{BartalComm}
2275: Yair Bartal.
2276: \newblock Personal Communication, 2005.
2277: 
2278: \bibitem{BomanHendricksonAKPW}
2279: Erik Boman and Bruce Hendrickson.
2280: \newblock On spanning tree preconditioners.
2281: \newblock Manuscript, Sandia National Lab., 2001.
2282: 
2283: \bibitem{BHV}
2284: Erik Boman, Bruce Hendrickson, and Stephen Vavasis.
2285: \newblock Solving elliptic finite element systems in near-linear time with
2286:   support preconditioners.
2287: \newblock Manuscript, Sandia National Lab. and Cornell,
2288:   http://arXiv.org/abs/cs/0407022.
2289: 
2290: \bibitem{NPKann}
2291: P.~Crescenzi and V.~Kann.
2292: \newblock A compendium of {NP-hard} problems.
2293: \newblock Available online at http://www.nada.kth.se/theory/compendium, 1998.
2294: 
2295: \bibitem{FRT}
2296: Jittat Fakcharoenphol, Satish Rao, and Kunal Talwar.
2297: \newblock A tight bound on approximating arbitrary metrics by tree metrics.
2298: \newblock In {\em Proceedings of the 35th  ACM STOC}, pages 448--455, 2003.
2299: 
2300: \bibitem{GareyJohnson}
2301: M.R. Garey and D.S. Johnson.
2302: \newblock {\em Computers and Intractability: a Guide to Theory of
2303:   NP-Completeness}.
2304: \newblock 1979.
2305: 
2306: \bibitem{GargKonjevodRavi}
2307: N.~Garg, G.~Konjevod, and R.~Ravi.
2308: \newblock A polylogarithmic approximation algorithm for the group steiner tree
2309:   problem.
2310: \newblock In {\em Proceedings of the 9th ACM-SIAM SODA}, pages 253--259, 1998.
2311: 
2312: \bibitem{Hu}
2313: T.C. Hu.
2314: \newblock Optimum communication spanning trees.
2315: \newblock {\em SIAM Journal on Computing}, pages 188--195, 1974.
2316: 
2317: \bibitem{KonjRavi}
2318: G.~Konjevod and R.~Ravi.
2319: \newblock An approximation algorithm for the covering Steiner problem.
2320: \newblock In {\em Proceedings of the 11th ACM-SIAM SODA}, pages 338--344, 2000.
2321: 
2322: \bibitem{LeightonRao}
2323: Tom Leighton and Satish Rao.
2324: \newblock Multicommodity max-flow min-cut theorems and their use in designing
2325:   approximation algorithms.
2326: \newblock {\em J. ACM}, 46(6):787--832, 1999.
2327: 
2328: \bibitem{LLR}
2329: Nathan Linial, Eran London, and Yuri Rabinovich.
2330: \newblock The geometry of graphs and some of its algorithmic applications.
2331: \newblock {\em Combinatorica}, 15:215--245, 1995.
2332: 
2333: \bibitem{PelegBook}
2334: D.~Peleg.
2335: \newblock {\em Distributed Computing: A Locality-Sensitive Approach}.
2336: \newblock 2000.
2337: \newblock SIAM Philadelphia PA.
2338: 
2339: \bibitem{PelReshef}
2340: D.~Peleg and E.~Reshef.
2341: \newblock Deterministic polylogarithmic approximation for minimum communication
2342:   spanning trees.
2343: \newblock In {\em Proc. 25th International Colloq. on Automata, Languages and
2344:   Programming}, pages 670--681, 1998.
2345: 
2346: \bibitem{Seym}
2347: P.~D.~Seymour.
2348: \newblock Packing directed circuits fractionally.
2349: \newblock {\em Combinatorica}, 15(2):281--288, 1995.
2350: 
2351: \bibitem{SpielmanTengPrecon}
2352: Daniel~A. Spielman and Shang-Hua Teng.
2353: \newblock Nearly-linear time algorithms for graph partitioning, graph
2354:   sparsification, and solving linear systems.
2355: \newblock In {\em Proceedings of the 36th ACM STOC}, pages 81--90, 2004.
2356: 
2357: \end{thebibliography}
2358: 
2359: 
2360: \end{document}
2361: