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: