annotate minimum_bisection/paper/term_paper.tex @ 168:cc6bb3ca79fb default tip

6/4 is not 2
author Markus Kaiser <markus.kaiser@in.tum.de>
date Fri, 28 Nov 2014 01:41:50 +0100
parents 8e25d4b73391
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
147
faff67582175 add bibliography; append preamble
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 146
diff changeset
1 \input{preamble.tex}
faff67582175 add bibliography; append preamble
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 146
diff changeset
2 \input{tikzpictures.tex}
146
1d9a7448a284 term paper stub
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
3
147
faff67582175 add bibliography; append preamble
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 146
diff changeset
4 \title{Oblivious Routing and Minimum Bisection}
faff67582175 add bibliography; append preamble
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 146
diff changeset
5 \author{\href{mailto:markus.kaiser@in.tum.de}{Markus Kaiser}}
146
1d9a7448a284 term paper stub
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
6 \institute{Technische Universit\"at M\"unchen\\
163
8e25d4b73391 linkify mail
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 160
diff changeset
7 \email{\href{mailto:markus.kaiser@in.tum.de}{markus.kaiser@in.tum.de}}}
146
1d9a7448a284 term paper stub
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
8
1d9a7448a284 term paper stub
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
9 \begin{document}
1d9a7448a284 term paper stub
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
10
1d9a7448a284 term paper stub
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
11 \maketitle
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
12 \thispagestyle{plain}
146
1d9a7448a284 term paper stub
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
13 \begin{abstract}
158
79f47bbbaf87 no capital letters
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 157
diff changeset
14 Oblivious routing is generalization of multi commodity flows where the actual demand function is unknown.
156
4ec3b7cbe311 abstract
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 155
diff changeset
15 This paper proofs the existence of an approximate solution using tree metrics which can easily be transformed into an $\Oh(\log n)$ approximation algorithm.
158
79f47bbbaf87 no capital letters
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 157
diff changeset
16 This result is then applied to the minimum bisection problem asking for an vertex bisection with minimal cost in the edges between the sets, also resulting in an $\Oh(\log n)$ approximation.
146
1d9a7448a284 term paper stub
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
17 \end{abstract}
1d9a7448a284 term paper stub
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
18
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
19 \section{Oblivious Routing}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
20 \label{sec:oblivious_routing}
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
21
158
79f47bbbaf87 no capital letters
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 157
diff changeset
22 \define{Maximum flow} is a well understood algorithmic problem.
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
23 Given a directed graph $G = (V, E)$, a mapping $c : E \to \Rnn$ denoted by $c_e \defeq c(e)$ assigning a maximum non-negative capacity to every edge and a \define{source} and \define{target} node $s, t \in V$, we are asked to find a flow of maximum value from $s$ to $t$.
151
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
24 For simplicity, we assume that $G$ is complete, which can be achieved by adding edges of capacity $0$.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
25
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
26 \begin{definition}[Flow \cite{intro}]
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
27 A function $f : E \to \Rnn$ assigning a throughput to every edge.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
28 It satisfies the following two properties:
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
29 \begin{description}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
30 \item[Capacity Constraint:] For all $e \in E$, we have $f_e \leq c_e$.
157
33290e7a43e4 fix bisection picture
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 156
diff changeset
31 \item[Flow Conservation:] For all $v \in V \setminus \left\{ s, t \right\}$, we have
151
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
32 \[\sum_{(u, v) \in E} f_{uv} = \sum_{(v, w) \in E} f_{vw}.\]
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
33 \end{description}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
34 We denote $f_e \defeq f(e)$ for $e \in E$ and $f_{uv} \defeq f(u, v)$ for $u, v \in V$.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
35 \end{definition}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
36
158
79f47bbbaf87 no capital letters
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 157
diff changeset
37 The maximum flow problem can be solved in polynomial time using a number of algorithms, for example the Ford-Fulkerson method or Push-relabel algorithms, both of which are described in \cite{intro}.
151
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
38
158
79f47bbbaf87 no capital letters
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 157
diff changeset
39 This paper will introduce a generalization of this problem known as \define{oblivious routing} and proof the existence of an $\Oh(\log n)$ approximation algorithm based on \cite{racke2008optimal} and described in \cite{approx}.
151
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
40 After giving a definition of the problem, it is formulated as a linear problem and rewritten to yield the desired algorithm using a theorem giving an $\Oh(\log n)$ approximation of arbitrary metrics using tree metrics.
158
79f47bbbaf87 no capital letters
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 157
diff changeset
41 Finally, the result is applied to give an $\Oh(\log n)$ approximation of the \define{minimum bisection} problem.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
42
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
43 \subsection{Problem definition}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
44 \label{sub:or_problem}
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
45
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
46 \begin{figure}[tb]
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
47 \centering
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
48 \begin{tikzpicture}[flow graph]
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
49 \path[use as bounding box] (-4, 2.4) rectangle (3.5,6.15);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
50 \flownodes
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
51 \flowedges
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
52
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
53 \draw
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
54 (n) node[below=3] {\structure{u}}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
55 (j) node[below=3] {\structure{v}};
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
56
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
57 \begin{pgfonlayer}{demand}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
58 \draw[demand edge, bend left=20] (n) edge (j);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
59 \end{pgfonlayer}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
60
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
61 \begin{pgfonlayer}{marked}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
62 \draw[marked edge, tumgreen]
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
63 (n.center) edge (l.center)
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
64 (l.center) edge (h.center)
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
65 (h.center) edge (i.center)
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
66 (i.center) edge (j.center);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
67
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
68 \draw[marked edge, tumblue]
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
69 (n.center) edge (m.center)
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
70 (m.center) edge (e.center)
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
71 (e.center) edge (c.center)
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
72 (c.center) edge (k.center)
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
73 (k.center) edge (j.center);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
74
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
75 \draw[marked edge, tumred]
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
76 (n.center) edge (b.center)
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
77 (b.center) edge (j.center);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
78 \end{pgfonlayer}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
79
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
80 \node at (-0.25, 2.4) {$\lambda_{green} = 0.25 \qquad \lambda_{blue} = 0.5 \qquad \lambda_{red} = 0.25$};
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
81 \end{tikzpicture}
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
82 \caption{A solution to the oblivious routing problem gives a set of paths and an associated convex combination for any two nodes $u, v \in V$. In this case, we are given the green, blue and red paths from $u$ to $v$. The dashed demand $d_{uv}$ gets routed along these three paths, split according to the factors $\lambda_i$.}
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
83 \label{fig:oblivous_routing}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
84 \end{figure}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
85
158
79f47bbbaf87 no capital letters
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 157
diff changeset
86 To define oblivious routing, we first consider a simpler generalization of maximum flow, the \define{multi-commodity flow} problem.
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
87 Instead of a single source and target node, we now allow an arbitrary number of nonnegative flow demands between two nodes given by a \define{demand function $d : V^2 \to \Rnn$} on an undirected graph.
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
88 Every such demand $d_{uv}$ must be routed from $u$ to $v$ using a set of $u$-$v$-paths and the total flow $f_e$ on an edge $e \in E$ is the sum of all demands routed through it.
151
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
89 The task of is now to find a flow satisfying all demands while exceeding the capacities of all edges as little as possible.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
90 This excess is called \define{congestion}.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
91
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
92 \begin{definition}[Congestion]
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
93 The congestion $\rho$ attributed to a flow $f$ denotes the smallest factor $\rho$ such that for all edges $e \in E$ we have $f_e \leq \rho \cdot c_e$.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
94 \begin{align}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
95 \rho = \max_{e \in E} \frac{f_e}{c_e}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
96 \end{align}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
97 \end{definition}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
98
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
99 This problem is still solvable in polynomial time using linear programming \cite{approx}.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
100 One more generalization leads to the oblivious routing problem.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
101 We now want to find flow solutions without knowing the demands beforehand, i.e. we want to find a set of $u$-$v$-paths and associated fractions of demands for all $u, v \in V$ such that for any demand function this set of paths performs well.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
102
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
103 \begin{problem}[Oblivious Routing]
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
104 Given an undirected Graph $G = (V, E)$ and an edge capacity function $c : E \to \R^+$.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
105 Calculate a convex combination of paths for each $(u, v) \in V^2$ such that for any demand function the congestion of the resulting flow will be as small as possible.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
106 \end{problem}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
107
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
108 \subsection{Formulation as a linear program}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
109 \label{sub:or_lp}
151
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
110
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
111 \begin{figure}[tb]
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
112 \centering
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
113 \begin{tikzpicture}[flow graph]
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
114 \flownodes
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
115 \flowedges
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
116 \flowtreeedges
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
117
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
118 \begin{pgfonlayer}{background}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
119 \node[draw=tumblue, fill=tumblue!20, thick, ellipse, rotate fit=30, fit=(n)(l)(m), inner sep=8pt] (el) {};
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
120 \end{pgfonlayer}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
121
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
122 \path (el)
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
123 ++ (200:1)
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
124 ++ (0, -0.5) coordinate (label);
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
125 \node[below of = label] {\structure{$S(\alert{e_T})$}};
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
126
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
127 \begin{pgfonlayer}{marked}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
128 \foreach \source/ \dest in {l/h,m/e,m/f,n/b}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
129 \draw[tree edge, tumorange] (\source.center) edge (\dest.center);
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
130 \end{pgfonlayer}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
131
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
132 \begin{pgfonlayer}{marked}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
133 \draw[tree edge, tumblue] (m.center) edge (e.center);
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
134 \end{pgfonlayer}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
135 \path (m) -- node[flow capacity]{$e_T$} (e);
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
136 \end{tikzpicture}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
137
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
138 \caption{Removing the edge $e_T$ from the green spanning tree introduces a tree split. One of the two vertex sets we denote as $S(e_T)$ and define the capacity of the split as the sum of all capacities of edges crossing the boundary of $S(e_T)$, the blue and orange edges.}
151
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
139 \label{fig:tree_splits}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
140 \end{figure}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
141
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
142 To find the desired approximation algorithm, we must first develop some lower bound for the optimal solution.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
143 A simple idea to create a valid (but probably not optimal) solution is to find any spanning tree $T = (V, E_T)$ of $G$ and route any demand along its edges.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
144
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
145 Since it is a spanning tree, there is a unique path from any vertex $u$ to any vertex $v$ in $T$ which will be used to satisfy the complete demand.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
146 For any edge $e_T \in E_T$ the resulting flow $f_{e_T}$ will be the sum of all demands between two nodes connected by this tree edge.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
147 These are exactly the nodes in different connected components created by removing the edge $e_T$.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
148
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
149 \begin{definition}[Tree Split]
151
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
150 Given a tree $T = (V, E_T)$ and an edge $e_T \in E_T$.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
151 Removing $e_T$ from $T$ splits it into two connected components, one of which we call $S(e_T)$ and the other one being $V \setminus S(e_T)$.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
152
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
153 We call $C(e_T)$ the capacity and $D(e_T)$ the demand of this split given by the sum of all capacities and demands connecting nodes in different connected components.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
154 \begin{align}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
155 C(e_T) &= \sum_{\substack{u \in S(e_T), \\ v \not\in S(e_T)}} c_{uv}\\
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
156 D(e_T) &= \sum_{\substack{u \in S(e_T), \\ v \not\in S(e_T)}} c_{uv}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
157 \end{align}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
158 \end{definition}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
159
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
160 This definition illustrated by \cref{fig:tree_splits} allows us to write the flow generated by a simple solution to oblivious routing using a spanning tree $T$ as $f_{e_T} = D(e_T)$ for all $e_T \in T$ and $0$ otherwise. We now observe that for a given demand function any solution to the resulting multi-commodity flow problem will be bounded below by all tree splits.
151
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
161
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
162 \begin{lemma}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
163 \label{lem:optimal}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
164 For any tree $T$ and any tree edge $e_T$, any routing in $G$ must contain an edge $e$ with congestion
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
165 \begin{align}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
166 \rho_e \geq \frac{D(e_T)}{C(e_T)}.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
167 \end{align}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
168 Therefore, the optimal congestion $\rho^\ast$ of the flow problem can be no better.
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
169 \end{lemma}
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
170
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
171 We will use this observation to proof our approximation guarantee.
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
172 Suppose we find a spanning tree such that every edge has capacity of the capacity of the corresponding tree split divided by some factor $\alpha \geq 1$.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
173 \begin{align}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
174 \forall e_T \in E_T.\quad c_{e_T} &\geq \frac{1}{\alpha} C(e_T)
151
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
175 \intertext{Using \cref{lem:optimal} we can bound the congestion of this spanning tree in relation to the optimal solution.}
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
176 \structure{\rho_T} &= \max_{e_T} \frac{D(e_T)}{c_{e_T}}\\
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
177 &\structure{\leq} \alpha \max_{e_T} \frac{D(e_T)}{C(e_T)}\\
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
178 &\leq \structure{\alpha \rho^\ast}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
179 \end{align}
151
59e62bb8c8dd first part of the paper
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 150
diff changeset
180 Note that this factor $\alpha$ is a property of the tree and not any specific demand function, thus we know that this tree yields a solution of cost at most $\alpha$ times the optimal solution for any demand.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
181
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
182 This tree however does not have to exist and therefore this approach will not yield any approximation guarantee.
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
183 Since oblivious routing allows us to define multiple $u$-$v$-paths, a natural extension is to consider not only one spanning tree but a convex combination of multiple spanning trees.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
184 We denote each of these trees as some $T_i = (V, E_{T_i})$ and identify $e \in E_{T_i}$ with $e \in T_i$ for compactness.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
185 Solutions of this kind are a set of trees and factors $\left\{ (T_i, \lambda_i) \right\}$ with $\lambda_i \geq 0$ and $\sum_i \lambda_i = 1$.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
186
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
187 For a given demand function, the demand $d_{uv}$ is routed through the unique $u$-$v$-paths in the trees $T_i$ according to the convex fractions.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
188 For every edge $e$ in the original graph we get
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
189 \begin{align}
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
190 f_e &= \sum_{\substack{i:\\e \in T_i}} \lambda_i D_i(e)
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
191 \end{align}
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
192 where we denote the demand of the split introduced by $T_i$ using some edge $e \in T_i$ as $D_i(e)$.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
193
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
194 This solution scheme is still too strict though and we want to allow more sophisticated structures.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
195 Instead of using the spanning trees directly, we interpret every node on a $u$-$v$-path of $T_i$ as an intermediate point on a path from $u$ to $v$.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
196 Instead of using the direct connections given by the tree edges to traverse the intermediate points, we are allowed to take any path in $G$.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
197 A pair of spanning tree and set of paths connecting two neighboured nodes in the tree is called a path tree.
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
198
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
199 \begin{figure}[tb]
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
200 \centering
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
201 \begin{tikzpicture}[flow graph]
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
202 \flownodes
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
203 \flowedges
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
204
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
205 \draw
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
206 (l) node[above=3] {\structure{u}}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
207 (i) node[above=3] {\structure{v}}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
208 (e) node[above left] {\structure{x}}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
209 (d) node[above=3] {\structure{z}}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
210 (c) node[below=3] {\structure{y}} ;
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
211
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
212 \begin{pgfonlayer}{demand}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
213 \draw[demand edge, bend left=10] (l) edge (i);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
214 \end{pgfonlayer}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
215
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
216 \begin{pgfonlayer}{marked}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
217 \foreach \source/ \dest in {l/m,m/e,d/k,k/j,j/i}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
218 \draw[tree edge, tumgreen] (\source.center) edge (\dest.center);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
219 \end{pgfonlayer}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
220
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
221 \begin{pgfonlayer}{marked}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
222 \draw[tree edge, line width=4pt, white] (e.center) edge (d.center);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
223 \draw[tree edge, densely dashed, tumgreen!80] (e.center) edge (d.center);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
224
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
225 \foreach \source/\dest in {e/c,c/d}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
226 \draw[tree edge, tumblue!80] (\source.center) edge (\dest.center);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
227 \end{pgfonlayer}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
228
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
229 % \begin{pgfonlayer}{marked}
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
230 % \foreach \source/ \dest in {l/h,h/i}
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
231 % \draw[tree edge, tumorange] (\source.center) edge (\dest.center);
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
232 % \end{pgfonlayer}
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
233 \end{tikzpicture}
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
234 \caption{A path tree is a pair of a spanning tree $T$ and a mapping $P$ from its edges to arbitrary paths in $G$. Instead of routing the demand $d_{uv}$ along the green tree edges, the edge $(x, z)$ is replaced by the blue edges $P((x, z)) = ((x, y), (y, z))$.}
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
235 \label{fig:pathtrees}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
236 \end{figure}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
237
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
238 \begin{definition}[Path Tree]
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
239 A path tree of an undirected graph $G = (V, E)$ is a pair $(T, P)$ of a spanning tree $T$ of $G$ and a function $P : E_T \to E$ identifying every edge $e_T = (x, y)$ of $T$ with a path in $G$ from $x$ to $y$.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
240 \end{definition}
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
241
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
242 Note that the same edge in $G$ may well be used by multiple different paths in the same path tree.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
243 To now route any demand $d_{uv}$ using a path tree, we move along the unique $u$-$v$-path in the tree and stitch together the paths corresponding to the edges in the path.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
244
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
245 Since if routing with spanning tree $T_i$ the flow through every tree edge $e_T$ would be $D_i(T_i)$, the same amount of flow must now be added to every edge on the path $P_i(e_T)$.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
246 If we now consider a convex combination of path trees, the flow through every edge $e \in E$ is
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
247 \begin{align}
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
248 f_e &= \sum_{i} \lambda_i \sum_{\substack{\alert{e_T} \in T_i:\\\structure{e} \in P_i(\alert{e_T})}} D_i(\alert{e_T}).
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
249 \end{align}
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
250
154
db04ec64fe7b repetition
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 153
diff changeset
251 Suppose we find a set of path trees such that
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
252 \begin{align}
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
253 \forall \structure{e} \in E.\quad c_{e} &\geq \frac{1}{\alpha} \sum_{i} \lambda_i \sum_{\substack{\alert{e_T} \in T_i:\\\structure{e} \in P_i(\alert{e_T})}} C_i(\alert{e_T})
153
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
254 \intertext{we can again bound its congestion by the optimal solution using \cref{lem:optimal}.}
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
255 \rho &= \hphantom{\alpha}\max_{\structure{e}} \frac{f_e}{c_{\structure{e}}} \\
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
256 &\leq \alpha \max_{\structure{e}} \frac{\sum_{i} \lambda_i \sum_{\substack{\alert{e_T} \in T_i:\\\structure{e} \in P_i(e_T)}} D_i(\alert{e_T})}{\sum_{i} \lambda_i \sum_{\substack{\alert{e_T} \in T_i:\\\structure{e} \in P_i(e_T)}} C_i(\alert{e_T})} \\
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
257 &\leq \alpha \max_{\structure{e}} \max_{i} \frac{D_i(\structure{e})}{C_i(\structure{e})} \leq \alpha \rho^\ast
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
258 \end{align}
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
259
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
260 We will now show that there always is a solution using path trees such that $\alpha \in \Oh(\log n)$ and sketch how to find such a set of trees.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
261 We denote the finite but exponentially sized set of all path trees over $G$ as $\Ih$.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
262 We can then formulate a linear program which enforces the assumption that every edge capacity is large enough and chooses a set of path trees such that $\alpha$ is minimal.
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
263 \begin{alignat}{3}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
264 \min_{\structure{\alpha, \lambda}} \quad & \mathrlap{\structure{\alpha}} \label{eq:primal}\\
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
265 \st \quad && \sum_{i \in \Ih} \structure{\lambda_i} \sum_{\substack{e_T \in T_i: \\ \alert{(u, v)} \in P_i(e_T)}} C_i(e_T) & \leq \structure{\alpha} \alert{c_{uv}} & \qquad \forall \alert{u,v} \in V \\
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
266 && \sum_{i \in \Ih} \structure{\lambda_i} &= 1 \\
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
267 && \structure{\lambda} &\geq 0
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
268 \end{alignat}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
269
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
270 To gain an $\Oh(\log n)$ approximation algorithm from this linear program, we have to show that $\alpha$ is of at most logarithmic size and that it is possible to solve this linear program with exponentially sized sums in polynomial time, yielding a solution of polynomially many path trees.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
271
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
272 \subsection{Approximation guarantee using the dual}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
273 \label{sub:or_approx}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
274
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
275 To proof the bound for the value of the linear program, we will consider the dual program and show that it is logarithmically bounded.
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
276 The dual problem has exponentially many constraints, one for each path tree, and a decision variable $\ell_{uv} \in \Ell$ for every pair of vertices.
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
277 \begin{alignat}{3}
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
278 \max_{\structure{z, \Ell}} \quad & \mathrlap{\structure{z}} \label{eq:dual}\\ %
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
279 \st \quad && \sum_{u, v \in V} c_{uv} \structure{\ell_{uv}} &= 1 \\
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
280 && \structure{z} & \leq \sum_{e_T \in T_i} C_i(e_T) \sum_{(u,v) \in P_i(e_T)} \structure{\ell_{uv}} & \qquad \forall i \in \Ih \label{eq:dual_constraints}\\
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
281 && \structure{\Ell} &\geq 0
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
282 \end{alignat}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
283
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
284 We will rewrite this dual program to be able to apply a result about the approximation of metrics with tree metrics.
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
285 To this end we will interpret the variables $\ell_{uv}$ as distances between vertices and obtain a shortest path metric $d_\ell(u, v)$ which we will approximate later. For an edge $e = (x, y)$ we denote $d_\ell(e) \defeq d_\ell(x, y)$.
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
286
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
287 We first observe that in \cref{eq:dual_constraints} for any given $i$, the length of $P_i(e_T)$ is always at least $d_\ell(e_T)$ and since all constraints bound $z$ above and there is some tree choosing the shortest path, we can replace the constraints by
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
288 \begin{align}
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
289 \structure{z} & \leq \sum_{e_T \in T_i} C_i(e_T) d_{\structure{\ell}}(e_T) \qquad \forall i \in \Ih.\\
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
290 \intertext{We can further reduce the constraints to the smallest constraint, again because we are bounding $z$ above.}
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
291 \structure{z} & \leq \min_{i \in \Ih}\sum_{e_T \in T_i} C_i(e_T) d_{\structure{\ell}}(e_T)
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
292 \end{align}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
293
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
294 Since we are only left with one constraint concerning $z$ and it is not otherwise needed in the dual program we can move it into the objective function and obtain a smaller LP.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
295 While it is no longer of exponential size, it might still take exponential time to find the minimum.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
296 \begin{alignat}{3}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
297 \max_{\structure{\Ell}} \quad & \mathrlap{\min_{i \in \Ih}\sum_{e_T \in T_i} C_i(e_T) d_{\structure{\ell}}(e_T)}\\
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
298 \st \quad && \tikzmark{a}\sum_{u, v \in V} c_{uv} \structure{\ell_{uv}} &= 1\tikzmark{b} \\
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
299 && \structure{\Ell} &\geq 0
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
300 \end{alignat}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
301
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
302 While the nonnegativity of the distances is actually desired, we now want to show that the last remaining constraint does not in fact reduce the solution space.
152
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
303 Suppose $\sum_{u, v \in V} c_{uv} \ell_{uv} = \beta > 0$, the products of of capacities and lengths sum up to an arbitrary positive value.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
304 We can then transform the set of lengths $\Ell$ to a feasible solution of the dual problem by scaling every length by $\frac{1}{\beta}$.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
305 This, however, changes the objective function by the same factor.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
306 If we drop the constraint enforcing $\beta = 1$, we have to divide the objective function by $\beta$.
492a4baaeb86 rewrite the dual
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 151
diff changeset
307 This yields a rather compact representation of the dual program.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
308 \begin{alignat}{3}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
309 \max_{\structure{\Ell}} \quad & \min_{i \in \Ih}\frac{\sum_{e_T \in T_i} C_i(e_T) d_{\structure{\ell}}(e_T)}{\sum_{u, v \in V} c_{uv} \structure{\ell_{uv}}} \label{eq:dual_compact}\\
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
310 \st \quad & \structure{\Ell} \geq 0
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
311 \end{alignat}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
312
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
313 \begin{figure}[tb]
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
314 \centering
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
315 \begin{tikzpicture}[flow graph]
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
316 \flownodes
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
317 \flowedges
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
318 \flowtreeedges
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
319
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
320 \draw
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
321 (n) node[above=3] {\structure{u}}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
322 (m) node[below=3] {a}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
323 (e) node[below=3] {b}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
324 (d) node[above=3] {c}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
325 (c) node[below=3] {d}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
326 (b) node[below=3] {\structure{v}};
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
327
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
328 \path
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
329 (n) -- node[node on edge] {$c_{uv}$} (b);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
330
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
331 \begin{pgfonlayer}{marked}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
332 \draw[tree edge, tumorange] (n.center) edge (b.center);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
333 \end{pgfonlayer}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
334
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
335 \begin{pgfonlayer}{marked}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
336 \draw[tree edge, tumred] (m.center) edge (e.center);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
337 \end{pgfonlayer}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
338
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
339 \begin{pgfonlayer}{background}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
340 \node[draw=tumblue, fill=tumblue!20, thick, ellipse, rotate fit=30, fit=(n)(l)(m), inner sep=8pt] (el) {};
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
341 \end{pgfonlayer}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
342 \end{tikzpicture}
155
b7fd203d37d8 finish minimum bisection
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 154
diff changeset
343 \caption{The left hand side contains a product of capacity $c_{uv}$ and distance $M_{ab}$ iff $c_{uv}$ is part of the tree split introduced by the tree edge $(a, b)$. A capacity is part of a tree split iff $u$ and $v$ are not in the same connected component in the split. This is the case iff the tree edge lies on the path between $u$ and $v$. The sum of all tree edges between $u$ and $v$ is $M_{uv}$ by definition, yielding the right hand side of the sum.}
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
344 \label{fig:sum_over_capacities}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
345 \end{figure}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
346
153
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
347 To proof the desired approximation guarantee we now approximate $d_\ell$ using a result obtained about tree metrics from \cite{approx}.
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
348 \begin{theorem}[Tree Metric]
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
349 For any nonnegative set of costs $c_{uv}$ and any metric $d_\ell$ there exists a tree metric $(V, M)$ such that
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
350 \begingroup
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
351 \addtolength{\jot}{.5em}
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
352 \begin{alignat}{2}
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
353 d_\ell(u, v) &\leq M_{uv} & \forall u, v \in V\\
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
354 \sum_{u, v \in V} c_{uv} M_{uv} &\leq \Oh(\log n) \sum_{u, v \in V} c_{uv} d_\ell(u, v).
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
355 \end{alignat}
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
356 \endgroup
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
357 \end{theorem}
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
358
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
359 To be able to apply this result to our dual, we first need to show one more lemma.
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
360 We need to rewrite the enumerator in \cref{eq:dual_compact} to not sum over tree edges but all edges in the graph.
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
361 \begin{lemma}
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
362 Let $T$ be a spanning tree and $(V, M)$ a tree metric of $G = (V, E)$.
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
363 Then it holds that
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
364 \begin{align}
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
365 \sum_{(x, y) \in E_T} C(x, y) M_{xy} = \sum_{(u, v) \in E} c_{uv} M_{uv}.
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
366 \end{align}
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
367 \end{lemma}
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
368 \begin{proof}
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
369 See \cref{fig:sum_over_capacities}.
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
370 \qed
153
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
371 \end{proof}
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
372
157
33290e7a43e4 fix bisection picture
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 156
diff changeset
373 Combining all observations and lemmas now bounds the value of both linear programs logarithmically, directly following from the logarithmic bound of the tree metrics.
155
b7fd203d37d8 finish minimum bisection
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 154
diff changeset
374
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
375 \begin{theorem}
155
b7fd203d37d8 finish minimum bisection
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 154
diff changeset
376 The primal and dual linear program have a value of $\Oh(\log n)$.
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
377 \end{theorem}
153
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
378 \begin{proof}
155
b7fd203d37d8 finish minimum bisection
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 154
diff changeset
379 We proof the value of the dual program, the value of the primal program then follows by strong duality.
b7fd203d37d8 finish minimum bisection
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 154
diff changeset
380
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
381 For any lengths $\Ell$ we know that for the minimizing tree in \cref{eq:dual_compact} we have the following chain of inequalities, using the definition of tree metrics, the previous lemma and the observation that the distance $d_\ell(u, v)$ is never larger than $\ell_{uv}$ since $d_\ell$ is a shortest path metric.
153
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
382 \begin{align}
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
383 \sum_{e_T \in T_i} C_i(e_T) d_\ell(e_T) &\leq \sum_{e_T \in T_i} C_i(e_T) M_{e_T} \\
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
384 &= \sum_{u, v \in V} c_{uv} M_{uv} \\
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
385 &\leq \Oh(\log n) \sum_{u, v \in V} c_{uv} d_\ell(u, v) \\
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
386 &\leq \Oh(\log n) \sum_{u, v \in V} c_{uv} \ell_{uv} \\
155
b7fd203d37d8 finish minimum bisection
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 154
diff changeset
387 \intertext{Dividing by the sum directly gives the value guarantee:}
153
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
388 \frac{\sum_{e_T \in T_i} C_i(e_T) d_\ell(e_T)}{\sum_{u, v \in V} c_{uv} \ell_{uv}} &\leq \Oh(\log n)
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
389 \end{align}
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
390 \qed
153
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
391 \end{proof}
c02cfd41bcc4 remove one approximation
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 152
diff changeset
392
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
393 While this proofs the existence of a solution of value $\Oh(\log n)$, it still remains to be shown that polynomially many trees are enough and the solution can actually be found in polynomial time.
155
b7fd203d37d8 finish minimum bisection
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 154
diff changeset
394 While this is done rigorously in \cite{approx}, the idea is to rewrite the linear program in such a way to not actually search for the minimal $\alpha$ but enforce an $\alpha \in \Oh(\log n)$.
b7fd203d37d8 finish minimum bisection
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 154
diff changeset
395 This results in a linear program which can be solved using the ellipsoid method in polynomial time resulting in a set of polynomially many path trees.
b7fd203d37d8 finish minimum bisection
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 154
diff changeset
396 This then proofs the existence of the desired $\Oh(\log n)$ approximation algorithm.
b7fd203d37d8 finish minimum bisection
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 154
diff changeset
397
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
398 \section{Minimum Bisection}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
399 \label{sec:minimum_bisection}
157
33290e7a43e4 fix bisection picture
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 156
diff changeset
400
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
401 \begin{figure}[tb]
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
402 \centering
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
403 \begin{tikzpicture}[flow graph]
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
404 \flownodes
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
405 \flowedges
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
406
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
407 \begin{pgfonlayer}{background}
157
33290e7a43e4 fix bisection picture
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 156
diff changeset
408 \node[draw=tumblue, fill=tumblue!20, thick, ellipse, fit=(n)(l)(m)(h)(e)(f), rotate=10, inner sep=-8pt] (el) {};
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
409 \end{pgfonlayer}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
410
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
411 \path (el)
157
33290e7a43e4 fix bisection picture
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 156
diff changeset
412 ++ (-120:2.1) node {\structure{$S$}};
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
413
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
414 \begin{pgfonlayer}{marked}
157
33290e7a43e4 fix bisection picture
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 156
diff changeset
415 \foreach \source/\dest in {n/b,f/b,f/c,e/c,e/d,e/g,h/i}
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
416 \draw [tree edge, tumorange] (\source.center) -- (\dest.center);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
417 \end{pgfonlayer}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
418 \end{tikzpicture}
159
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
419 \caption{The cost $c(\delta(S))$ of the bisection $S$ is defined as the sum of the nonnegative costs of all orange edges leaving the set $S$.}
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
420 \label{fig:minimum_bisection}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
421 \end{figure}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
422
159
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
423 The knowledge about the existence of an $\Oh(\log n)$ approximation algorithm for the oblivious routing problem can be applied to find approximation algorithms for a number of other problems, some of which are described in \cite{racke2008optimal}.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
424 As an example, we will now give a definition of the minimum bisection problem and show that it can be approximated using oblivious flow.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
425
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
426 Minimum bisection has a similar structure to oblivious flow as it is also defined over undirected graphs with a function mapping the edges to non negative numbers.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
427 Instead of interpreting these numbers as a capacity, they are now understood as costs.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
428 We want to find a set containing half of the vertices such that the sum of all costs of edges leaving this set is minimal.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
429 \begin{problem}[Minimum Bisection]
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
430 Given an undirected Graph $G = (V, E)$ and an edge-cost function $c : E \to \Rnn$.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
431 Find a set $S \subset V$ containing half the vertices with minimal split cost $c(\delta(S))$.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
432 \begin{align}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
433 \delta(S) &\defeq \left\{ (x, y) \in E \mid x \in S \wedge y \not\in S \right\} \\
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
434 c(\delta(S)) &\defeq \sum_{\substack{e \in E:\\e \in \delta(S)}} c_e
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
435 \end{align}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
436 \end{problem}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
437
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
438 We will now show that the set of path trees obtained by solving the oblivious flow problem on $G$ with capacity function $c$ contains a tree that defines a bisection of $G$ which costs logarithmically more than an optimal solution.
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
439 We call this bisection a minimum tree bisection.
159
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
440 It is obtained by reweighing the edges of the tree to cost as much as the tree splits introduced by them and then solving the minimum bisection problem on those trees.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
441 This can be solved in polynomial time with a straightforward dynamic programming approach described in \cite{approx}.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
442
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
443 \begin{definition}[Minimum Tree Bisection]
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
444 Given a spanning tree $T$ of $G$ with an edge $e_T \in E_T$.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
445 We define a new cost function $c_T : E_T \to \Rnn$ based on the tree splits induced by the edges of $T$.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
446 The cost of a bisection $S$ is the sum of tree split costs of all tree edges cut by $S$.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
447 \begin{align}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
448 c_T(e_T) &= C(e_T)\\
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
449 c_T(\delta(S)) &= \sum_{\substack{e_T \in E_T:\\e_T \in \delta(S)}} C(e_T)
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
450 \end{align}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
451 The minimum tree bisection $X$ of $T$ is an optimal solution of the minimum bisection problem with respect to the cost function $c_T$.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
452 \end{definition}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
453
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
454 Assuming we can find minimum tree bisections in polynomial time, the following algorithm describes an $\Oh(\log n)$ approximation algorithm for the minimum bisection problem.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
455 While the polynomial running time is clear, it remains to show that the obtained solution actually satisfies the approximation guarantee.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
456
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
457 \begin{algorithm}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
458 \label{alg:minimum_bisection}
157
33290e7a43e4 fix bisection picture
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 156
diff changeset
459 Given graph $G = (V, E)$ and cost function $c : E \to \Rnn$.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
460 \begin{enumerate}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
461 \item Interpret costs $c(e)$ as capacities
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
462 \item Solve oblivious routing on $G$, obtaining trees $T_i$
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
463 \item Find minimum tree bisections $X_i$ for all trees $T_i$
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
464 \item Choose the $X_i$ with lowest $c(\delta(X_i))$
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
465 \end{enumerate}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
466 \end{algorithm}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
467
159
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
468 To proof the guarantee we will need two lemmas connecting the cost of a split in the original graph $G$ with the costs in a single spanning tree $T$ relative to its cost function $c_T$ and a convex combination of trees.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
469
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
470 \begin{lemma}
159
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
471 \label{lem:bisection_combination}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
472 Let $\left\{ (T_i, \lambda_i) \right\}$ be an $\Oh(\log n)$-approximation to the oblivious flow problem.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
473 Then for any cut $S \subseteq V$ the convex combination of tree bisections is bounded above by the cost of $S$ times a logarithmic factor.
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
474 \begin{align}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
475 \sum_i \lambda_i c_{T_i}(\delta(S)) \leq \Oh(\log n) c(\delta(S))
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
476 \end{align}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
477 \end{lemma}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
478 \begin{proof}
159
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
479 We remember the first constraint of the primal program in \cref{eq:primal}.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
480 Since we have already proven that $\alpha \in \Oh(\log n)$ we can replace it by this bound and sum up the inequalities for all edges in $\delta(S)$.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
481 \begin{align}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
482 \sum_i \lambda_i \sum_{\structure{(u, v) \in \delta(S)}} \sum_{\substack{e_T \in T_i:\\\structure{(u,v)} \in P_i(e_T)}} C_i(e_T) \leq \Oh(\log n)c(\delta(S))
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
483 \end{align}
159
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
484 The right hand side then sums up to the desired term, while we have to rewrite the left hand side a bit.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
485 \begin{align}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
486 c_{T_i}(\delta(S)) = \sum_{\substack{e_T \in E_{T_i}:\\e_T \in \delta(S)}} C_i(e_T) \leq \sum_{\structure{(u, v) \in \delta(S)}} \sum_{\substack{e_T \in T_i:\\\structure{(u,v)} \in P_i(e_T)}} C_i(e_T)
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
487 \end{align}
159
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
488 While the equality holds by definition, we observe that for every tree edge $e_T$ contained in $\delta(S)$ there must be an edge in $P_i(e_T)$ which crosses the boundary of $S$ since $e_T$ starts in $S$ and ends outside of $S$.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
489 Therefore, all summands in the left side are contained in the right side, the inequality holds.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
490 If we apply this for all $T_i$, we have proven the lemma.
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
491 \qed
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
492 \end{proof}
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
493
159
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
494 While we can bound the convex combination of minimum tree bisections obtained by the oblivious flow approximation by the original cost function, we can also show that the original cost is always smaller than the cost of the same set relative to some tree cost function.
150
8c10f9532afc add most of the math
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 149
diff changeset
495
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
496 \begin{figure}[tb]
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
497 \begin{tikzpicture}[flow graph]
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
498 \flownodes
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
499 \flowedges
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
500 \flowtreeedges
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
501
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
502 \begin{pgfonlayer}{background}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
503 \node[draw=tumblue, fill=tumblue!20, thick, ellipse, fit=(c)(d)(g)(k)(j)(i)(e)(h), inner sep=3pt] (el) {};
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
504 \end{pgfonlayer}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
505
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
506 \path (el)
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
507 ++ (-30:2.6) node {\structure{$S$}};
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
508
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
509 \draw
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
510 (b) node[below=3] {\structure{u}}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
511 (j) node[below=3] {\structure{v}};
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
512
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
513 \begin{pgfonlayer}{marked}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
514 \foreach \source/\dest in {f/c,b/j,l/h}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
515 \draw [tree edge, tumblue, dash pattern=on 7pt off 7pt] (\source.center) -- (\dest.center);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
516
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
517 \foreach \source/\dest in {b/c,e/f,e/m}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
518 \draw [tree edge, tumred] (\source.center) -- (\dest.center);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
519 \end{pgfonlayer}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
520
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
521 \foreach \source/\dest/\name in {b/c/$e_3$,e/f/$e_2$,e/m/$e_1$}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
522 \path (\source) -- node[node on edge] {\name} (\dest);
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
523 \end{tikzpicture}
159
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
524 \caption{The cost of $S$ in the original graph is the sum of all red and blue dashed edge costs. While the red edges are tree edges and thus contained in the tree cost function, the blue dashed edge connecting $u$ and $v$ is contained in the tree split introduced by edge $e_3$ on the tree path between $u$ and $v$.}
148
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
525 \label{fig:tree_bisections}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
526 \end{figure}
948ce3f9c3ad add figures
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 147
diff changeset
527
159
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
528 \begin{lemma}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
529 \label{lem:bisection_single}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
530 For any spanning tree $T$ and any cut $S \subseteq V$ the cost of the cut is bounded above by the tree bisection of $T$.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
531 \begin{align}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
532 c(\delta(S)) \leq c_T(\delta(S))
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
533 \end{align}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
534 \end{lemma}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
535 \begin{proof}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
536 An edge $(u, v)$ is contained in $\delta(S)$ iff it starts in $S$ and ends outside of $S$.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
537 Since there is an unique path from $u$ to $v$ in $T$ there must be an edge $e_T$ on this path that is also contained in $\delta(S)$.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
538 But then $(u, v)$ must be contained in the tree split introduced by $e_T$ and is therefore contained in the right hand side costs by definition.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
539 See \cref{fig:tree_bisections} for an illustration of this proof.
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
540 \qed
159
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
541 \end{proof}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
542
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
543 These lemmas allow us to quickly prove the approximation guarantee of the algorithm.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
544
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
545 \begin{theorem}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
546 \cref{alg:minimum_bisection} is an $\Oh(\log n)$ approximation algorithm for the minimum bisection problem.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
547 \end{theorem}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
548 \begin{proof}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
549 Let $X^\ast$ be an optimal minimum bisection of $G$ and $\left\{ (T_i, \lambda_i) \right\}$ be a set of trees obtained from the oblivious flow algorithm with minimum tree bisections $X_i$.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
550 We consider the convex combination of the costs of all minimum tree bisections.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
551 \begin{align}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
552 \sum_i \lambda_i c(\delta(X_i)) &\leq \sum_i \lambda_i c_{T_i}(\delta(X_i)) \\
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
553 &\leq \sum_i \lambda_i c_{T_i}(\delta(X^\ast) \\
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
554 &\leq \Oh(\log n) c(\delta(X^\ast))
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
555 \end{align}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
556 Using \cref{lem:bisection_single} we know that every single tree bisection $X_i$ can only cost more relative to its respective cost function $c_{T_i}$.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
557 But since the $X_i$ are optimal solutions for the trees $T_i$, the global optimal solution $X^\ast$ cannot be better.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
558 We now apply \cref{lem:bisection_combination} to show that the original convex combination of bisections is bounded by our desired bound.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
559 Since the combination of nonnegative costs is bounded, so must be the smallest cost or otherwise the inequality cannot hold.
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
560 This proofs the correctness of the algorithm.
160
3425aea8e004 wording; qed
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 159
diff changeset
561 \qed
159
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
562 \end{proof}
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 158
diff changeset
563
147
faff67582175 add bibliography; append preamble
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 146
diff changeset
564 \nocite{*}
146
1d9a7448a284 term paper stub
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
565 \bibliographystyle{alpha}
147
faff67582175 add bibliography; append preamble
Markus Kaiser <markus.kaiser@in.tum.de>
parents: 146
diff changeset
566 \bibliography{term_paper}
146
1d9a7448a284 term paper stub
Markus Kaiser <markus.kaiser@in.tum.de>
parents:
diff changeset
567 \end{document}