cs0205077/ipl.tex
1: %rbk 11-22-93
2: % Added the reference to [GH] and [Gu] back.
3: % Please read the last couple of sentences before Theorem 4.2.
4: %
5: %  My changes marked by %N. 11/22/93
6: %  I would also recommend citing gomory-hu for thm 4.2.
7: %  Anybody have the citation handy?
8: % -Neal
9: %  
10: % >
11: % >I think we should reference Gu and GH somewhere (at least say somewhere
12: % >that we use the Gomory-Hu cut tree). This will take one more line only.
13: % >What do you think?
14: % >samir
15: % 
16: % ---------------------ipl.tex---------------------------------------
17: 
18: \documentstyle[12pt,epic,eepic]{article}
19: 
20: \newtheorem{theorem}{Theorem}[section]
21: \newtheorem{lemma}[theorem]{Lemma}
22: \newtheorem{corollary}[theorem]{Corollary}
23: \newtheorem{proposition}[theorem]{Proposition}
24: \newtheorem{example}{Example}
25: \newtheorem{definition}{Definition}
26:  
27:   %Miscellaneous commands for proofs
28: \newenvironment{proof}{\par\noindent {\em Proof. }}{\myendproof}
29: 
30: \newcommand{\algboxB}[3]{
31: \begin{center}
32: \fbox{\hspace{#2}\parbox{#1}{\vspace{#2}#3
33: \parbox{#1}{\vspace{#2}}}\hspace{#2}}%
34: \end{center}}
35: 
36: \newenvironment{tabAlgorithm}[2]{
37: \setcounter{algorithmLine}{1}
38: \samepage
39: \begin{tabbing}
40: 999\=\kill
41: #1 \ \ --- \ \ \parbox{3.8in}{\it #2}
42: }{
43: \end{tabbing}
44: }
45: \newcounter{algorithmLine}
46: \newcommand{\algline}{\\\thealgorithmLine\hfil\>\stepcounter{algorithmLine}}
47:  \newcommand{\algnono}{\\ \>}
48: \newcommand{\CMT}[1]{{\em~~~--- #1 ---}}
49:  
50: \setlength{\textheight}{8.5in}
51: \addtolength{\topmargin}{-0.8in}
52: \setlength{\textwidth}{15.3cm}
53: \setlength{\oddsidemargin}{0.25in}
54: \setlength{\evensidemargin}{0.25in}
55: \date{}
56: 
57: \def\myendproof{\hfill{\vbox{\hrule\hbox{%
58:    \vrule height1.3ex\hskip0.8ex\vrule}\hrule}}}
59: 
60: 
61: 
62: 
63: \newcommand{\C}[1]{\beta_{#1}}
64: \newcommand{\ALPHA}{4\lambda}
65: \newcommand{\fourth}{\frac{1}{4}}
66: 
67: %\input{transfig}
68: \newcommand{\fig}[3] %usage:\fig{file}{label}{caption}
69: {\begin{figure}[hbtp]
70:  \begin{center}
71:  \input{#1}
72:  \end{center}
73: % \vspace*{-\baselineskip}
74:  \caption{#3}
75:  \label{#2}
76:  \end{figure}
77: }
78: 
79: \newcommand{\topfig}[3] %usage:\topfig{file}{label}{caption}
80: {\begin{figure}[tp]
81:  \begin{center}
82:  \input{#1}
83:  \end{center}
84:  \caption{#3}
85:  \label{#2}
86:  \end{figure}
87: }
88: 
89: \newcommand{\TreeAlgorithm}[1]{
90: \begin{figure}[hbp]
91: \algboxB{4.8in}{0.1in}{
92: \begin{tabAlgorithm}{{\sc Route-Tree}$(S)$}%
93: {Find a routing tree for $S$.}
94: %\algnono \CMT{Given a graph with non-negative weights on the edges and
95: %vertices, generate a routing tree for the subset of vertices in $S$.}
96: \algline {\bf If} $|S| = 1$ {\bf then Return} $S$ as a tree on a
97: single vertex.
98: \algline For each $v\in S$, fix its weight $U(v)$ to be $W(\{v\},\bar S)$.
99: \algnono   Let the sum of the weights of the vertices in $S$ be $U_S$.
100: \algline {\bf If} \= for any vertex $v$, $U(v) \ge U_S/2$ and $U_S\ne 0$ {\bf then}
101: \algline        \> {\sc Route-Tree}$(S\setminus\{v\})$
102: \algline        \> Create a new tree $T$ by attaching the above tree
103:                         and $v$ as the children \\\>\>
104:                         of a new root $r$. {\bf Return} $T$.
105: \algline Find an approximate minimum-weight $\fourth$-balanced
106:          separator for the \\\> subgraph induced by $S$ in $G$ 
107:         (if $U_S=0$, find an unweighted balanced \\\> separator). Let this
108:          break $S$ into pieces $S_1$ and $S_2$.
109: \algline {\sc Route-Tree}$(S_1)$
110: \algline {\sc Route-Tree}$(S_2)$
111: \algline Create a new tree $T$ by attaching the two trees generated
112:          above as the \\\> children of a new root vertex. {\bf Return} $T$.
113: \end{tabAlgorithm}
114: \vglue-\baselineskip
115: }
116: \vglue-\baselineskip
117: \caption{Approximation Algorithm to Find a Routing Tree}
118: \label{routing-tree-algorithm}
119: \end{figure}
120: }
121: 
122: %neal
123: %\title{On the Design of Tree Networks with Low Congestion \\
124: %{\rm \normalsize (Extended Abstract)}
125: %}
126: 
127: \title{Designing Multi-Commodity Flow Trees}
128: 
129: \author{Samir Khuller 
130: \thanks{Department of Computer Science and Institute for
131: Advanced Computer Studies, University of
132: Maryland, College Park, MD~20742.
133: Research currently supported by NSF Research Initiation Award CCR-9307462.
134:  E-mail : {\tt samir@cs.umd.edu}.}
135: \and Balaji Raghavachari
136: \thanks{Department of Computer Science, The University of Texas at Dallas,
137: Box 830688, Richardson, TX 75083-0688. E-mail : {\tt rbk@utdallas.edu}. Part of
138: this work was done while this author was visiting UMIACS.}
139: \and Neal Young
140: \thanks{Institute for Advanced Computer Studies, University of
141: Maryland, College Park, MD~20742. E-mail : {\tt young@umiacs.umd.edu}.
142: Research supported in part by NSF grants CCR-8906949 and CCR-9111348.}
143: }
144: \date{ }
145: %\pagestyle{empty}
146: \begin{document}
147: 
148: %\begin{titlepage}
149: \thispagestyle{empty}
150: \maketitle
151: \thispagestyle{empty}
152: \begin{abstract}
153: The traditional multi-commodity flow problem 
154: assumes a given flow network in which multiple
155: commodities are to be maximally routed
156: in response to given demands.
157: This paper considers the multi-commodity flow network-design problem:
158: given a set of multi-commodity flow demands, 
159: find a network subject to certain constraints 
160: such that the commodities can be maximally routed.
161: 
162: This paper focuses on the case when the network is required to be a tree.  
163: The main result is an approximation algorithm 
164: for the case when the tree is required to be of constant degree.
165: The algorithm  reduces the problem to 
166: the minimum-weight balanced-separator problem;
167: the performance guarantee of the algorithm
168: is within a factor of 4 
169: of the performance guarantee of the balanced-separator procedure.
170: If Leighton and Rao's balanced-separator procedure is used,
171: the performance guarantee is $O(\log n)$.
172: %js
173: %rbk
174: This improves the $O(\log^2 n)$ approximation factor obtained
175: by a direct application of the balanced-separator method.
176: \end{abstract}
177: 
178: %\end{titlepage}
179: 
180: \section{Introduction}
181: 
182: Let a graph $G = (V, E)$ represent multicommodity flow demands:  
183: the weight of each edge $e=\{a,b\}$ 
184: represents the demand of a distinct commodity 
185: to be transported between the sites $a$ and $b$.  
186: Our goal is to design a network,
187: in which the vertices of $G$ will be embedded,
188: and to route the commodities in the network.
189: The maximum capacity edge of the network should be low
190: in comparison to the best possible in {\em any} network meeting
191: the required constraints.
192: For example, the weight of each edge could 
193: denote the expected rate of phone calls between  two sites.  
194: The problem is to design a network in which calls can be routed
195: minimizing the maximum bandwidth required; 
196: the cost of building 
197: the network increases with the required bandwidth.
198: 
199: We consider the case when the network is required to be a tree,
200: called the {\em tree congestion problem}.
201: Given a tree in which the vertices of $G$ are embedded,
202: the load on an edge $e$ is defined as follows: 
203: delete $e$ from $T$. This breaks $T$ into
204: two connected components. If $S$ is the set of vertices from $G$ in
205: one of the connected components, then $load(e)$ is equal to
206: \[ 
207: W(S,\bar S) = \sum_{(x,y) \in E, x \in S, y \in \bar S} w(x,y). 
208: \] 
209: In other words, the demand of each edge $e=\{a,b\}$ in $G$, maps to the unique
210: path in $T$ from $a$ to $b$, and loads each edge on the path.  
211: The load of a single edge is the sum of the demands that load 
212: this edge. 
213: 
214: 
215: In this paper we study two different versions of this problem.
216: 
217: \subsection{Routing Tree Problem}
218: 
219: The following problem was proposed and studied by 
220: Seymour and Thomas~{\cite{ST}}.
221: 
222: \medskip
223: 
224: %rbk removed the citation from the definition. We already mention it above.
225: \begin{definition}  %\cite{ST}
226: A tree $T$ is called a {\em routing tree} if it  satisfies the following
227: conditions:
228: \begin{itemize}
229: \item The leaves of $T$ correspond to vertices of $G$.
230: \item Each internal vertex has degree 3.
231: \end{itemize}
232: The congestion of $T$ is the maximum load of any edge of
233: $T$. The congestion of $G$, denoted by $\C{G}$, is defined to be the minimum 
234: congestion over all routing trees $T$ of $G$.
235: \end{definition}
236: 
237: We would like to find a routing tree $T$ with minimum congestion
238: (that achieves $\C{G}$).
239: 
240: Seymour and Thomas showed that this problem is
241: NP-hard by showing that graph bisection can be reduced to this
242: problem.  They also showed that in the special case when $G$ is
243: planar, the problem can be solved optimally in polynomial time.
244: 
245: We provide a polynomial time approximation algorithm for the
246: congestion problem when $G$ is an arbitrary graph. Our algorithm
247: computes a routing tree $T$  whose congestion is within an
248: $O(\log n)$ factor from the optimal congestion (Section \ref{rbksec}).
249: The algorithm extends to the case when the routing tree is allowed to have
250: vertices of higher degree.
251: 
252: \subsection{Congestion Tree Problem}
253: We also study the case when $T$ is required to be a spanning tree of 
254: a given feasibility graph $F$. 
255: We show that the problem is NP-complete (Section~\ref{gen-cong-sec}).
256: In the special case when $F$ is complete, we show that an optimal
257: solution can be computed in polynomial time.
258: %rbk I think that the referee is correct in objecting to this. I
259: %suggest we get rid of the stuff about GH trees. Talking about the GH
260: %tree of a demand graph being a subgraph of an entirely independent
261: %feasibility graph (supply graph) is not meaningful.
262: \iffalse
263: \footnote{We 
264: actually show that if  the Gomory-Hu cut tree $T_{GH}$ 
265: of $G$ \protect\cite{GH,Gu} is a subgraph of $F$
266: then $T_{GH}$ is an optimal solution.}.
267: We conjecture that  using ideas similar to the ones
268: used to solve the routing tree problem, one can design an $O(\log n)$
269: approximation algorithm for the congestion tree problem.
270: %js replaced scheme by algorithm
271: \fi
272: 
273: \subsection{Main Ideas}
274: 
275: Our algorithm is a simple divide-and-conquer algorithm that uses the
276: Leighton-Rao~\cite{LR} balanced separator algorithm to split the graph. 
277: By a naive application of the LR algorithm, one obtains an 
278: $O(\log^2 n)$ approximation factor. Our main contribution is to show that
279: by a subtle application of LR, one can actually obtain an $O(\log n)$ 
280: approximation factor.
281: %rbk replaced suspect with believe and got rid of "actually"
282: %We suspect that this kind of an application of LR
283: %will actually be useful for other problems as well 
284: We believe that this kind of an application of LR
285: %samir
286: %will prove to be useful for other problems as well 
287: will prove to be useful in obtaining better approximation
288: ratios for other problems as well.
289: %rbk  Two factors two close to each other.
290: %(in improving approximation factors by a factor of $\log n$).
291: %(and improve the approximation ratio by a factor of $\log n$).
292: %rbk The above line has the plural-singular problem. What is the right
293: %form? We talk about applying it to other problems, in which case we
294: %should improve their approximation factors (plural).
295: 
296: 
297: %rbk This section needs to be restructured properly. Right now it
298: %appears as if LR addresses the case when vertices are weighted.
299: % I have copied the section as it used to be and put it after the end
300: % of the paper.
301: \section{Preliminaries}
302: 
303: %rbk rewrote the following sentence. If you want the original form,
304: %feel free to put it back.
305: %A {\em cut} in a graph $G$ is a set of edges which separate $G$ into
306: %two pieces $S$ and $\bar S=V\setminus S$. 
307: A {\em cut} in a graph $G$ is a set of edges whose removal separates $G$ into
308: two disconnected pieces $S$ and $\bar S=V\setminus S$. 
309: A cut can be represented by
310: the vertex set $S$. The {\em weight} of a cut $S$, denoted by
311: $W(S,\bar S)$, is the sum of the weights of those edges which have one
312: endpoint in $S$ and one endpoint in $\bar S$. 
313: We use $W(v)$ to refer to the sum of the weights of the edges
314: incident to $v$. 
315: %rbk switched b and n below.
316: A cut $S$ is {\em $b$-balanced} if $b\cdot n \le |S| \le (1-b)\cdot n$. The
317: definition is extended to the case when vertices are weighted as
318: follows. Let $U$ be a non-negative weight function on the vertices and
319: let $U(S)$ be the sum of the weights of all the vertices in $S$. A cut $S$ is
320: $b$-balanced if
321: 
322: \[
323: b\cdot U(V) \le  U(S) \le (1-b) \cdot U(V)
324: \]
325: 
326: \begin{definition}
327: %N A {\em $\lambda$-approximate minimum $b$-bisector} is a $b$-balanced
328:    For $b \le 1/3$,
329:    a {\em $\lambda$-approximate minimum $b$-bisector} is a $b$-balanced
330: cut whose weight is at most $\lambda$ times the weight of a
331: %N minimum-weight $\frac{1}{3}$-balanced cut, for some constant
332:    minimum-weight $\frac{1}{3}$-balanced cut.
333: %N $b\le\frac{1}{3}$.
334: \end{definition}
335: 
336: The following result was proved by Leighton and
337: Rao (\cite{LR}, Section 1.4).
338: 
339: %rbk The following theorems are not verbatim from the papers. I
340: %removed their citations from the statement of the theorems.
341: \begin{theorem}  %[\cite{LR}]
342: %N Let $G$ be a graph with non-negative weights on the edges and
343:    Let $G$ be a graph with non-negative weights on the edges
344: %N let the vertices of $G$ have uniform weights (unweighted).
345:    (without vertex weights).
346: It is possible to compute an $O(\log n)$-approximate
347: minimum $\fourth$-bisector of $G$ in polynomial time.
348: \end{theorem}
349: 
350: The above theorem was extended to the case when vertices are given
351: non-negative weights by Tragoudas~\cite{Tr}.
352: 
353: \begin{theorem} \label{weighted-separator-theorem}  %[\cite{Tr}]
354: Let $G$ be a graph with non-negative weights on the edges and vertices.
355: It is possible to compute an $O(\log n)$-approximate
356: minimum $\fourth$-bisector of $G$ in polynomial time.
357: \end{theorem}
358: 
359: 
360: 
361: %rbk This should be replaced by a reference to Tragoudas.
362: \iffalse
363: The above theorem can be extended to the case when vertices are given
364: non-negative weights~\cite{Rao,Tar}.
365: \fi
366: 
367: \begin{definition}
368: Let $T$ be a tree and let $u$ be a vertex of degree two in $T$. Let
369: $v$ and $w$ be the neighbors of $u$. The following operation is said
370: to {\em short-cut} $u$ in $T$ -- delete $u$ from $T$ and add the edge
371: %N $\{v,w\}$. Short-cutting $T$ implies the deletion of all vertices of
372:    $\{v,w\}$. To short-cut $T$ is to delete all vertices of
373: degree two by short-cutting them in arbitrary order.
374: \end{definition}
375: 
376: \section{Routing Tree Problem}
377: \label{rbksec}
378: 
379: 
380: $W(v)$ corresponds to the total weight
381: between $v$ and other vertices and is called the load of a vertex.
382: Note that the load of any vertex $v$ is a lower bound on $\C{G}$,
383: because the edge incident to the leaf corresponding to $v$ in any
384: routing tree has to handle this load.
385: 
386: \begin{lemma} \label{leaf-lower-bound}
387: For any vertex $v$,  $W(v) \le \C{G}$.
388: \end{lemma}
389: 
390: Given a procedure to compute a $\lambda$-approximate minimum
391: $b$-bisector, our algorithm finds a routing tree whose congestion is
392: at most $\lambda/b$ times the optimal congestion.
393: 
394: 
395: \subsection{Lower Bounds}
396: We show two ways of finding lower bounds on the weight of the optimal
397: solution. First, we show that the weight of a minimum-weight balanced
398: separator is a lower bound on $\C{G}$. 
399: Second, we show that the optimal solution for the problem in a
400: subgraph $G^\prime$ induced by an arbitrary set of vertices
401: $V^\prime\subset V$ is a lower bound on the optimal solution of $G$.
402: This implies that an optimal solution to a sub-problem costs no more than
403: any feasible solution to the whole problem.
404: 
405: \begin{lemma} \label{separator-lemma}
406: Let $G=(V,E)$ be a graph with non-negative weights on the
407: edges.  Suppose we are given a non-negative weight function $U(v)$ on the
408: vertices. Let the weight of each vertex be at most one-half of the
409: total weight of all the vertices. Let $Q$ be the weight of a 
410: minimum-weight $b$-balanced separator of $G$ for any $b\le1/3$. 
411: Then $Q \le \C{G}$.
412: \end{lemma}
413: 
414: \begin{proof}
415: Let $T$ be a routing tree with congestion $\C{G}$.  Each edge $e$ of
416: $T$ naturally induces a cut in $G$ as follows: delete $e$ from $T$ to
417: obtain subtrees $T_1$ and $T_2$. Let $S_e$ be the set of vertices in
418: $G$ that are leaves of $T_1$ (this yields a cut in $G$).  Clearly,
419: $W(S_e,\overline{S_e})$ is the congestion on edge $e$ and hence
420: $W(S_e, \overline{S_e}) \leq \C{G}$.  Since $T$ is a tree of degree
421: three, and by the assumption on the weights of  vertices, 
422: it contains at least one edge $e'$ which yields a
423: $b$-balanced separator. Since $Q$ is the minimum
424: $b$-balanced separator of $G$ we have $Q \leq W(S_{e'},
425: \overline{S_{e'}}) \leq \C{G}$.
426: \end{proof}
427: 
428: \begin{lemma} \label{subgraph-lemma}
429: Let $G=(V,E)$ be a graph. Let $H$ be a subgraph of $G$.
430: Then $\C{H} \le \C{G}$.
431: \end{lemma}
432: 
433: \begin{proof}
434: %js made the proof a little shorter...
435: %N Let $T$ be a routing tree with congestion $\C{G}$. It is easy to generate a
436:    Let $T$ be a routing tree with congestion $\C{G}$. Generate a
437: %N routing tree $T_H$ for $H$ from $T$ such that the load of any edge in
438:    routing tree $T_H$ for $H$ from $T$ as follows.
439: %N $T_H$ is at most the load of some edge in $T$.
440: %We generate the tree
441: %$T_H$ from $T$ as follows.  
442: Let $V_H$ be the vertex set of $H$. Mark
443: the leaves of $T$ corresponding to $V_H$. Repeatedly delete the
444: unmarked leaves of $T$ until it has no unmarked leaves. Delete all
445: vertices of degree two by short-cutting the tree, thus yielding $T_H$.
446: %The tree that we generate has $V_H$ as its leaves and all its internal
447: %vertices have degree three. 
448: %N This is a routing tree for $H$. Cuts
449: %N in $T_H$ can be associated with corresponding cuts in $T$ and hence
450: %N the load on any edge in $T_H$ is at most  the load of its
451: %N corresponding edge in $T$.
452:    It is easily verified that $T_H$ is a routing tree for $H$
453:    with congestion bounded by $\C{G}$.
454: \end{proof}
455: 
456: \subsection{The Routing Tree Algorithm}
457: %N
458:   \paragraph{Discussion.}
459: %N Our basic approach is to subdivide the graph into pieces which are
460:    Our basic approach is to subdivide the graph into pieces that  are
461: smaller by a constant fraction using an approximately minimum bisector.
462: Since computing a minimum-weight
463: balanced separator is also NP-hard, we use approximation algorithms
464: %rbk added Tragoudas
465: designed by Leighton and Rao~\cite{LR} and Tragoudas~\cite{Tr} for computing
466: approximately minimum-weight balanced separators (or approximate
467: minimum bisectors). 
468: The solutions for the pieces are obtained recursively. All internal
469: vertices of the solution tree have degree three except for the root.
470: The two trees are glued together by creating a new root and making the
471: %N roots of the pieces as the children of the new root. If implemented
472:    roots of the pieces    the children of the new root. If implemented
473: naively, this procedure leads to an $O(\log^2n)$ factor approximation.
474: Using balancing techniques, we improve the performance ratio to
475: $O(\log n)$.
476: 
477: Suppose $S$, a subset of the vertices representing a subproblem,
478: is split into two pieces $S_1$ and $S_2$ using an approximate
479: bisector. When the problem is solved recursively on the two pieces,
480: the main obstacle to obtaining an $O(\log n)$ approximation is the
481: following. 
482: In the worst case, it is possible that most of the load
483: corresponding to $W(S,\bar S)$ may fall on $S_1$ or $S_2$. 
484: If this happens repeatedly, an edge can be overloaded proportionally to its 
485: depth in the tree.
486: {\em To avoid this, it is
487: necessary to partition the demand from $\bar S$ roughly equally among the
488: pieces $S_1$ and $S_2$.} The following idea solves the
489: problem and leads to an $O(\log n)$ approximate solution.  Suppose we
490: define a weight $U(v)$ for each vertex $v$ in $S$ according to the amount
491: of demand from $v$ to the set $\bar S$. Now when we split $S$, we use a
492: %N cut that splits the vertices of $S$ into     sets of roughly equal weights.
493:    cut that splits the vertices of $S$ into two sets of roughly equal 
494:    {\em weight}.
495: Lemma~\ref{separator-lemma} guarantees that the minimum value of
496: such a cut is a lower bound on $\C{S}$, which is a lower bound on
497: $\C{G}$ by Lemma~\ref{subgraph-lemma}.
498: We illustrate the recursive step of the 
499: algorithm by an example in Fig.~\ref{ex1}.
500: 
501: \topfig{ipl-ex1}{ex1}{Example to illustrate algorithm.}
502: 
503: The algorithm first splits graph $G$ into $A,B$ by using an
504: %N approximate bisector. Each vertex in $A$ is assigned a weight
505:    approximate bisector (without weighting the vertices).
506:    Each vertex in $A$ is then assigned a weight
507: equal to the total demand it has to vertices in $\bar A$. Similarly
508: vertices in $B$ are assigned weights corresponding to their demands
509:   from $\bar B$. The algorithm now recursively splits $A$ and $B$ by
510: %N approximate bisectors.
511:    approximate bisectors with respect to the vertex weights.
512: %N The weight of each vertex in $A_1$ is now increased
513: %N by its demand to vertices in $A_2$ (similarly for sets $A_2,B_1,B_2$).
514: The problem is solved recursively on each piece. These recursive calls
515: %N
516:    weight vertices similarly and
517: return with respective trees as solutions for the pieces $A$ and $B$
518: as shown. By adding new edges and a new root vertex, the solution for
519: the entire graph is obtained.
520: 
521: \TreeAlgorithm
522: 
523: The algorithm given in Fig.~\ref{routing-tree-algorithm} implements
524: the above ideas. 
525: %js: added the foll para
526: The procedure{\sc Route-Tree}$(S)$  takes a subset of vertices $S$,
527: and returns a routing tree for the graph induced by the vertices in $S$.
528: This routing tree will either be a singleton vertex, or a tree
529: in which each vertex has degree one or  three, except for the root that
530:  has degree two.
531: The routing tree is computed in a way so as to approximately ``divide''
532: the demand from the vertices in $S$ to the vertices in $V-S$.
533: 
534: %N
535:   \paragraph{Analysis.}
536: Given a graph $G$, {\sc Route-Tree}$(V)$ returns
537: a routing tree for $G$. To make sure that the root of the tree has
538: degree three, we can discard the root by short-cutting it.
539: 
540: %rbk where the algorithm used to be
541: 
542: Let the algorithm use a $\lambda$-approximate minimum
543: $\fourth$-bisector in Line 6. If Leighton and Rao's \cite{LR} balanced
544: separator algorithm is used, $\lambda=O(\log n)$. The following
545: theorem shows that the load of any edge is at most $4\lambda$ times
546: the optimal congestion. We use induction to prove that our
547: load-balancing technique splits the load properly.
548: 
549: \begin{theorem}[Performance] \label{rt-perf-theorem}
550: The algorithm in Fig.~\ref{routing-tree-algorithm} finds a routing
551: tree $T$ for $G$ such that $\C{T} \le 4\lambda\C{G}$.
552: \end{theorem}
553: 
554: \begin{proof}
555: The proof proceeds by induction on the level of recursion. In the
556: %N first call of {\sc Route-Tree}, $G$ is split into two pieces $S$ and
557:    first call of {\sc Route-Tree}, the algorithm splits $G$ 
558:    into two pieces $S$ and
559: %N $\bar S$ using an approximate bisector. We then find  routing trees for $S$
560:    $\bar S$ using an approximate bisector. It then finds routing trees for $S$
561: %N and $\bar S$ and connect  the two roots with an edge $e$. The load
562:    and $\bar S$ and connects the two roots with an edge $e$. The load
563: on $e$ is $W(S,\bar S)$. By Lemma~\ref{separator-lemma},
564: the weight of a minimum-weight balanced separator is a lower bound on
565: $\C{G}$. The weight of the separator the algorithm uses is guaranteed
566: to be at most $\lambda$ times the weight of an optimal separator. Hence
567: the load on edge $e$ is at most $\lambda\C{G}$. This satisfies the
568: induction hypothesis.
569: 
570: \fig{ipl-ex2}{ex2}{Inductive proof.}
571: 
572: For the induction step, let us consider the case when we take a set $S$ and
573: split it into two pieces $S_1$ and $S_2$ (see Fig.~\ref{ex2}).  
574: Let $L$ be the load on the edge connecting the tree for $S$
575: to its parent.
576: Similarly, let $L_i$ $(i=1,2)$ be the load on the edge connecting the tree 
577: for $S_i$ to its parent.
578: Inductively, $L \leq 4 \lambda \C{G}$. 
579: We show that each $L_i \leq 4 \lambda \C{G}$. 
580: 
581: Let $U$ be the weight function defined by the algorithm in this recursive call.
582: Note that $L = U(S) = W(S,\bar S)$ and
583: $L_i = W(S_i, \bar S_i) = W(S_i, \bar S) + W(S_1,S_2)$.
584: Also observe that $U(S_i) = W(S_i,\bar S)$.
585: 
586: 
587: {\em Case 1:} 
588: If there is some vertex $v$ in $S$ whose
589: weight $U(v)$ is more than $U(S)/2$, then we split $S$ as $S_1=\{v\}$ and
590: $S_2 = S\setminus\{v\}$. 
591: Since $L_i = U(S_i) + W(S_1,S_2)$ and 
592: $U(S_1) > U(S)/2 > U(S_2)$ it follows that $L_1 > L_2$.  
593: This is because $U(S)$ is the sum of $U(S_1)$ and $U(S_2)$.
594: It remains only to bound $L_1$.
595: The demand from $v$, $W(v)$, is a lower bound on the
596: congestion (by Lemma~\ref{leaf-lower-bound}) and 
597: therefore $\C{G} \ge W(v)= L_1$. Hence both $L_1$ and $L_2$
598: satisfy the induction hypothesis.
599: 
600: {\em Case 2:} Otherwise, the algorithm distributed $U(S)$ into the weights
601: of the vertices of $S$ and then used a $\lambda$-approximate 
602: $\fourth$-bisector of $S$.
603: By the induction hypothesis, the edge from the subtree of $S$ to its 
604: parent has a load $L$ $(= U(S))$ of at most $4\lambda\C{G}$. 
605: 
606: Since $W(S_i, \bar S) = U(S_i) \leq \frac{3}{4} U(S)$ and
607: $W(S_1,S_2) \leq \lambda\C{G}$ (by Lemmas~\ref{separator-lemma} and 
608: \ref{subgraph-lemma}) we have:
609: \[ L_i = W(S_i, \bar S) + W(S_1,S_2) \leq 3\lambda\C{G} + \lambda\C{G}.\]
610: \end{proof}
611: 
612: \begin{theorem}%js [Running Time]
613: The routing tree algorithm in Fig.~\ref{routing-tree-algorithm} runs
614: in polynomial time. \myendproof
615: \end{theorem}
616: 
617: \begin{corollary}
618: The algorithm in Fig.~\ref{routing-tree-algorithm} finds in polynomial time a
619: routing tree $T$ for $G$ such that $\C{T} = O(\log n)\C{G}$.
620: \end{corollary}
621: 
622: \noindent
623: {\bf Note:}
624: Our algorithm also handles the case when vertices of $G$ are allowed to be
625: internal vertices of the output tree. Lemmas~\ref{separator-lemma} and
626: \ref{subgraph-lemma} are valid in this case also. The lower bound in
627: Lemma~\ref{leaf-lower-bound} weakens by a factor of 3. This lower bound is not
628: critical to the performance ratio, so the performance ratio of the
629: algorithm is unchanged. 
630: 
631: Our algorithm can be generalized to find routing trees when every 
632: internal vertex may have degree up to $k$, for any $k\geq 3$. We
633: obtain the same $O(\log n)$ approximation factor, independent of $k$.
634: An algorithm obtaining an approximation factor of $n/k$ is straightforward 
635: and is useful as $k$ approaches $n$.
636: 
637: 
638: \section{General Congestion Problem}
639: \label{gen-cong-sec}
640: %rbk Reducing the size of the following section. I think that no
641: %proofs are really necessary, but I am not removing the NPC proof.
642: %\subsection{NP-Completeness}
643: In this section we show that the following problem is NP-complete.
644: %N
645: \iffalse
646: Given a graph $G = (V, E)$ representing a demand network.
647: Each edge $e = \{a,b\}$ has a nonnegative weight 
648: $w(e)$ that represents the demand between the sites $a$ and $b$.  
649: We are also given a feasibility graph $F$ and an integer $D$. 
650: \fi
651:   The input to the problem is a demand network $G=(V,E)$,
652:   a ``feasibility network'' $F=(V,E')$, and an integer $D$.
653:   Each edge $e = \{a,b\}$ of $G$ has a nonnegative weight 
654:   $w(e)$ that represents the demand between the sites $a$ and $b$.  
655: The problem is to find a tree $T$ that is a subgraph of $F$, 
656: such that when the demands of the edges in $G$ are mapped to the tree $T$
657: the congestion on each edge is at most $D$.
658: 
659: The reduction is done from the $k$ Edge-Disjoint Paths Problem, known to 
660: be NP-Complete~\cite{GJ}. 
661: %We show that
662: %this problem is NP-complete by a reduction from the 2-Commodity Flow Problem.
663: 
664: \noindent
665: {\bf $k$ Edge-Disjoint Paths Problem:}
666: Given an undirected graph $H = (V,E)$, and sets 
667: $S = \{ s_1, s_2, \ldots, s_k \}$ and $T = \{ t_1, t_2, \ldots, t_k \}$
668: are there $k$ mutually edge-disjoint paths $P_1, P_2, \ldots, P_k$
669: such that $P_i$ connects $s_i$ with $t_i$ ?
670: 
671: It is easy to see that this problem can be reduced to the general tree
672: congestion problem. For the reduction we construct $F$ from $H$. 
673: For each vertex $u \in V$, if $u$ has degree $d(u)$, we
674: create a clique on $d(u)$ vertices, $u_1, u_2, ..., u_{d(u)}$. For
675: each edge from $v$ to $w$ we introduce an edge from $v_i$ to $w_j$
676: where these are {\em distinct} vertices (not shared with any other edges).
677: (Informally, each vertex is ``exploded'' into a clique, and the edges incident
678: on the vertex are made incident on distinct clique vertices.)  
679: The demand graph
680: $G$ has edges between $s_i$ and $t_i$ (for all $i$). If there is a solution
681: to the disjoint paths problem, clearly that yields a congestion tree with
682: bandwidth one. The set of paths $P_i$ can form cycles, but these cycles
683: can be ``pried'' apart in $F$ since we replaced each vertex with a clique. 
684: These can now be connected to form a congestion tree with bandwidth one.
685: 
686: If there is a solution to the congestion tree problem it is clear that
687: this yields a solution to the edge-disjoint paths problem (the demand
688: edge from $s_i$ to $s_j$ gets mapped to a path in the tree and causes
689: a load of one on each edge). Since the bandwidth is restricted to one, no
690: other path can use the same edge (even when we go from $F$ to $H$).   
691: 
692: %rbk added the following theorem.
693: \begin{theorem}
694: The general congestion problem is NP-complete.
695: \end{theorem}
696: 
697: 
698: %rbk Removing the following subsection and replacing it with a smaller
699: %paragraph.
700: \iffalse
701: \subsection{Polynomially Solvable Case}
702: 
703: In this section we show that when $T_{GH} \subseteq F$ 
704: (the feasibility graph contains the Gomory-Hu cut tree) we can
705: solve the congestion problem optimally. (This is certainly the case
706: when $F$ is a complete graph.)
707: 
708: Given the demand graph $G$, we compute the Gomory-Hu cut tree $T_{GH}$
709: \cite{GH,Gu}. This is the tree that is used to route the calls. 
710: This yields an optimal solution for the following reason: consider any
711: edge $e=\{s,t\}$ with load $L(e)$. $T_{GH}$ has the property that
712: $L(e)$ is the value of the $s$-$t$ min cut. Clearly any $s$-$t$ min
713: cut is a lower bound on the optimal congestion.
714: 
715: \begin{theorem}
716: $T_{GH}$ is an optimal solution to the congestion  problem.
717: \end{theorem}
718: \fi
719: 
720: An interesting open problem is to design approximation algorithms with
721: nontrivial approximation factors for designing routing trees where the
722: feasibility graph $F$ is given in the input.  In the special case
723: when $F$ is complete, it is easy to show that an optimal routing
724: tree can be computed. In this case each edge of the routing tree is
725: made to handle a load that is equal to the minimum cut in $G$
726: separating two of its vertices. This follows from the result of
727: Gomory and Hu~\cite{GH}, who showed how to construct a tree which
728: encodes {\em all} min-cuts in a graph. 
729: Gusfield~\cite{Gu} gave an algorithm to compute such trees efficiently.
730: 
731: \begin{theorem}
732: If $F$ is the complete graph, the problem of designing a
733: routing tree with minimum congestion for an arbitrary
734: demand graph $G$ can be solved in polynomial time.
735: \end{theorem}
736:  
737: %\section*{Acknowledgments}
738: %Do we want to ack anyone ?
739: 
740: \begin{thebibliography}{CDNS}
741: 
742: \bibitem[GJ]{GJ}
743: M. R. Garey and D. S. Johnson, ``Computers and Intractability: A guide to the
744: theory of NP-completeness'', {\em Freeman, San Francisco} (1979).
745: 
746: %rbk This reference is not needed is we delete the last subsection.
747: %What is this Journal of SIAM anyway?
748: %samir: Look at the year its 1961! Maybe they didnt have SICOMP etc then.
749: 
750: \bibitem[GH]{GH}
751: R. E.~Gomory and T. C.~Hu.
752: \newblock Multi-terminal network flows.
753: \newblock {\em Journal of SIAM}, 9(4): 551--570, 1961.
754: 
755: 
756: \bibitem[Gu]{Gu}
757: D.~Gusfield.
758: \newblock Very simple methods for all pairs network flow analysis.
759: \newblock {\em SIAM Journal on Computing}, 19(1): 143--155, 1990.
760:   
761: \bibitem[LR]{LR}
762: F. T.~Leighton and S.~Rao.
763: \newblock An approximate max-flow min-cut theorem for uniform multicommodity
764: flow problems with applications to approximation algorithms.
765: \newblock In {\em  Proc. 29th Annual Symp. on Foundations of Computer 
766: Science}, pages 422--431, October 1988,
767: \newblock White Plains, NY.
768: 
769: %rbk This should be replaced by a reference to Tragoudas.
770: \iffalse
771: \bibitem[Rao]{Rao}
772: S.~Rao. Personal communication.
773: \fi
774: 
775: \bibitem[ST]{ST}
776: P.~Seymour and R.~Thomas.
777: \newblock Call routing and the rat catcher.
778: \newblock {\em Workshop on Algorithms and Combinatorial Optimization},
779: March 1991.
780: \newblock Atlanta, GA.
781: 
782: %rbk This should be replaced by a reference to Tragoudas.
783: \iffalse
784: \bibitem[Tar]{Tar}
785: \'E.~Tardos. Personal communication.
786: \fi
787: 
788: %rbk added this reference.
789: \bibitem[Tr]{Tr}
790: S.~Tragoudas.
791: \newblock Improved approximations for the minimum-cut ratio and the flux.
792: \newblock Technical Report 93-02, Computer Science Department, Southern
793: Illinois University, 1993. Submitted to {\em Math. Syst. Theory}.
794: 
795: \end{thebibliography}
796: 
797: \end{document}
798: 
799: \section{Preliminaries}
800: 
801: A {\em cut} in a graph $G$ is a set of edges which separate $G$ into
802: two pieces $S$ and $\bar S=V\setminus S$. A cut can be represented by
803: the vertex set $S$. The {\em weight} of a cut $S$, denoted by
804: $W(S,\bar S)$, is the sum of the weights of those edges which have one
805: endpoint in $S$ and one endpoint in $\bar S$. 
806: We use $W(v)$ to refer to the sum of the weights of the edges
807: incident to $v$. 
808: A cut $S$ is {\em
809: $b$-balanced} if $n\cdot b \le |S| \le (1-b)\cdot n$. The
810: definition is extended to the case when vertices are weighted as
811: follows. Let $U$ be a non-negative weight function on the vertices and
812: let $U(S)$ be the sum of the weights of all the vertices in $S$. A cut $S$ is
813: $b$-balanced if
814: \[
815: b\cdot U(V) \le  U(S) \le (1-b) \cdot U(V)
816: \]
817: 
818: \begin{definition}
819: A {\em $\lambda$-approximate minimum $b$-bisector} is a $b$-balanced
820: cut whose weight is at most $\lambda$ times the weight of a
821: minimum-weight $\frac{1}{3}$-balanced cut, for some constant
822: $b\le\frac{1}{3}$.
823: \end{definition}
824: 
825: The following result was proved by Leighton and
826: Rao (\cite{LR}, Section 1.4).
827: 
828: \begin{theorem}[\cite{LR}]
829: It is possible to compute an $O(\log n)$-approximate
830: minimum $\fourth$-bisector in polynomial time.
831: \end{theorem}
832: 
833: %rbk This should be replaced by a reference to Tragoudas.
834: \iffalse
835: The above theorem can be extended to the case when vertices are given
836: non-negative weights~\cite{Rao,Tar}.
837: \fi
838: 
839: \begin{definition}
840: Let $T$ be a tree and let $u$ be a vertex of degree two in $T$. Let
841: $v$ and $w$ be the neighbors of $u$. The following operation is said
842: to {\em short-cut} $u$ in $T$ -- delete $u$ from $T$ and add the edge
843: $\{v,w\}$. Short-cutting $T$ implies the deletion of all vertices of
844: degree two by short-cutting them in arbitrary order.
845: \end{definition}
846: 
847: 
848: 
849: