Mercurial > latex
view minimum_bisection/paper/term_paper.tex @ 150:8c10f9532afc
add most of the math
author | Markus Kaiser <markus.kaiser@in.tum.de> |
---|---|
date | Sat, 05 Jul 2014 22:50:50 +0200 |
parents | 4d5bf308e7ad |
children | 59e62bb8c8dd |
line wrap: on
line source
\input{preamble.tex} \input{tikzpictures.tex} \title{Oblivious Routing and Minimum Bisection} \author{\href{mailto:markus.kaiser@in.tum.de}{Markus Kaiser}} \institute{Technische Universit\"at M\"unchen\\ \email{markus.kaiser@in.tum.de}} \begin{document} \maketitle \thispagestyle{plain} \begin{abstract} \blindtext \end{abstract} \section{Oblivious Routing} \label{sec:oblivious_routing} \blindtext \blindtext \subsection{Problem definition} \label{sub:or_problem} \begin{definition}[Flow] A function $f : E \to \R^+$ assigning a throughput to every edge. \end{definition} \blindtext \begin{definition}[Congestion] \begin{align} \rho = \max{e \in E} \frac{f_e}{c_e} \end{align} \end{definition} \blindtext \begin{problem}[Oblivious Routing] Given an undirected Graph $G = (V, E)$ and an edge capacity function $c : E \to \R^+$. Calculate a combination of paths for each $(u, v) \in V^2$ such that for any demand function the congestion will be as small as possible. \end{problem} \blindtext \begin{figure}[tb] \centering \begin{tikzpicture}[flow graph] \path[use as bounding box] (-4, 2.4) rectangle (3.5,6.15); \flownodes \flowedges \draw (n) node[below=3] {\structure{u}} (j) node[below=3] {\structure{v}}; \begin{pgfonlayer}{demand} \draw[demand edge, bend left=20] (n) edge (j); \end{pgfonlayer} \begin{pgfonlayer}{marked} \draw[marked edge, tumgreen] (n.center) edge (l.center) (l.center) edge (h.center) (h.center) edge (i.center) (i.center) edge (j.center); \draw[marked edge, tumblue] (n.center) edge (m.center) (m.center) edge (e.center) (e.center) edge (c.center) (c.center) edge (k.center) (k.center) edge (j.center); \draw[marked edge, tumred] (n.center) edge (b.center) (b.center) edge (j.center); \end{pgfonlayer} \node at (-0.25, 2.4) {$\lambda_{green} = 0.25 \qquad \lambda_{blue} = 0.5 \qquad \lambda_{red} = 0.25$}; \end{tikzpicture} \caption{Oblivious Routing} \label{fig:oblivous_routing} \end{figure} \subsection{Formulation as a linear program} \label{sub:or_lp} \blindtext \begin{definition}[Tree Split] \begin{align} C(e_T) &= \sum_{\substack{u \in S(e_T), \\ v \not\in S(e_T)}} c_{uv}\\ D(e_T) &= \sum_{\substack{u \in S(e_T), \\ v \not\in S(e_T)}} c_{uv} \end{align} \end{definition} Routing with a spanning tree. \begin{align} f(e) &= D(e) \end{align} Suppose we find \begin{align} \forall e_T \in E_T.\quad c_{e_T} &\geq \frac{1}{\alpha} C(e_T) \intertext{Then we have} \structure{\rho_T} &= \max_{e_T} \frac{D(e_T)}{c_{e_T}}\\ &\structure{\leq} \alpha \max_{e_T} \frac{D(e_T)}{C(e_T)}\\ &\leq \structure{\alpha \rho^\ast} \end{align} \begin{lemma} For any tree $T$ and any tree edge $e_T$, we know that for any routing in $G$ there must be an edge with congestion \begin{align} \rho_e \geq \frac{D(e_T)}{C(e_T)} \end{align} And therefore the optimal solution $\rho^\ast$ can be no better. \end{lemma} \begin{proof} \blindtext \end{proof} Routing with Spanning Trees. \begin{align} f(e) &= \sum_{\substack{i:\\e \in T_i}} \lambda_i D_i(e) \intertext{suppose we find} \forall e \in E.\quad c_{e} &\geq \frac{1}{\alpha} \sum_{\substack{i:\\e \in T_i}} \lambda_i C_i(e) \intertext{then} \structure{\rho} &= \hphantom{\alpha}\max_{e} \frac{f(e)}{c_{e}} \\ &= \hphantom{\alpha}\max_{e} \frac{\sum_{\substack{i:\\e \in T_i}} \lambda_i D_i(e)}{c_e} \\ &\structure{\leq} \alpha \max_{e} \frac{\sum_{\substack{i:\\e \in T_i}} \lambda_i D_i(e)}{\sum_{\substack{i:\\e \in T_i}} \lambda_i C_i(e)} \\ &\leq \alpha \max_{e} \max_{i} \frac{D_i(e)}{C_i(e)} \leq \structure{\alpha \rho^\ast} \end{align} \begin{definition}[Path Tree] 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$ identifiing every edge $e_T = (x, y)$ of $T$ with a path in $G$ from $x$ to $y$. \end{definition} Routing with Path trees. \begin{align} f(\structure{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}) \end{align} \begin{align} \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}) \end{align} \begin{align} \rho &= \hphantom{\alpha}\max_{\structure{e}} \frac{f(\structure{e})}{c_{\structure{e}}} \\ &\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})} \\ &\leq \alpha \max_{\structure{e}} \max_{i} \frac{D_i(\structure{e})}{C_i(\structure{e})} \leq \alpha \rho^\ast \end{align} \begin{figure}[tb] \centering \begin{tikzpicture}[flow graph] \flownodes \flowedges \flowtreeedges \begin{pgfonlayer}{background} \node[draw=tumblue, fill=tumblue!20, thick, ellipse, rotate fit=30, fit=(n)(l)(m), inner sep=8pt] (el) {}; \end{pgfonlayer} \path (el) ++ (200:1) ++ (0, -0.5) coordinate (label); \node[below of = label] {\structure{$S(\alert{e_T})$}}; \begin{pgfonlayer}{marked} \foreach \source/ \dest in {l/h,m/e,m/f,n/b} \draw[tree edge, tumorange] (\source.center) edge (\dest.center); \end{pgfonlayer} \begin{pgfonlayer}{marked} \draw[tree edge, tumblue] (m.center) edge (e.center); \end{pgfonlayer} \path (m) -- node[flow capacity]{$e_T$} (e); \end{tikzpicture} \caption{Tree splits} \label{fig:tree_splits} \end{figure} \begin{figure}[tb] \centering \begin{tikzpicture}[flow graph] \flownodes \flowedges \draw (l) node[above=3] {\structure{u}} (i) node[above=3] {\structure{v}} (e) node[above left] {\structure{x}} (d) node[above=3] {\structure{z}} (c) node[below=3] {\structure{y}} ; \begin{pgfonlayer}{demand} \draw[demand edge, bend left=10] (l) edge (i); \end{pgfonlayer} \begin{pgfonlayer}{marked} \foreach \source/ \dest in {l/m,m/e,d/k,k/j,j/i} \draw[tree edge, tumgreen] (\source.center) edge (\dest.center); \end{pgfonlayer} \begin{pgfonlayer}{marked} \draw[tree edge, line width=4pt, white] (e.center) edge (d.center); \draw[tree edge, densely dashed, tumgreen!80] (e.center) edge (d.center); \foreach \source/\dest in {e/c,c/d} \draw[tree edge, tumblue!80] (\source.center) edge (\dest.center); \end{pgfonlayer} \begin{pgfonlayer}{marked} \foreach \source/ \dest in {l/h,h/i} \draw[tree edge, tumorange] (\source.center) edge (\dest.center); \end{pgfonlayer} \end{tikzpicture} \caption{Routing with Pathtrees} \label{fig:pathtrees} \end{figure} Primal \begin{alignat}{3} \min_{\structure{\alpha, \lambda}} \quad & \mathrlap{\structure{\alpha}} \label{eq:primal}\\ \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 \\ && \sum_{i \in \Ih} \structure{\lambda_i} &= 1 \\ && \structure{\lambda} &\geq 0 \end{alignat} \subsection{Approximation guarantee using the dual} \label{sub:or_approx} Dual \begin{alignat}{3} \max_{\structure{z, \Ell}} \quad & \mathrlap{\structure{z}} \label{eq:dual}\\ % \st \quad && \sum_{u, v \in V} c_{uv} \structure{\ell_{uv}} &= 1 \\ && \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}\\ && \structure{\Ell} &\geq 0 \end{alignat} Rewrite \cref{eq:dual_constraints} \begin{align} \structure{z} & \leq \sum_{e_T \in T_i} C_i(e_T) d_{\structure{\ell}}(e_T) \qquad \forall i \in \Ih\\ \intertext{And again} \structure{z} & \leq \min_{i \in \Ih}\sum_{e_T \in T_i} C_i(e_T) d_{\structure{\ell}}(e_T) \end{align} To get \begin{alignat}{3} \max_{\structure{\Ell}} \quad & \mathrlap{\min_{i \in \Ih}\sum_{e_T \in T_i} C_i(e_T) d_{\structure{\ell}}(e_T)}\\ \st \quad && \tikzmark{a}\sum_{u, v \in V} c_{uv} \structure{\ell_{uv}} &= 1\tikzmark{b} \\ && \structure{\Ell} &\geq 0 \end{alignat} Suppose $\sum_{u, v \in V} c_{uv} \ell_{uv} = \beta > 0$, then the solution changes by the same factor. Thus rewrite finally \begin{alignat}{3} \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}\\ \st \quad & \structure{\Ell} \geq 0 \end{alignat} Then we use from \cite{approx}. \begin{theorem}[Tree Metric] For any nonnegative set of costs $c_{uv}$ and any metric $d_\ell$ there exists a tree metric $(V, M)$ such that \begingroup \addtolength{\jot}{.5em} \begin{alignat}{2} d_\ell(u, v) &\leq M_{uv} & \forall u, v \in V\\ \sum_{u, v \in V} c_{uv} M_{uv} &\leq \Oh(\log n) \sum_{u, v \in V} c_{uv} d_\ell(u, v). \end{alignat} \endgroup \end{theorem} \blindtext \begin{lemma} Let $T$ be a spanning tree and $(V, M)$ a tree metric of $G = (V, E)$. Then we can rewrite the sum over all edges of $T$ in \cref{eq:dual_compact} as a sum over all edges in $G$. \begin{align} \sum_{(x, y) \in E_T} C(x, y) M_{xy} = \sum_{(u, v) \in E} c_{uv} M_{uv} \end{align} \end{lemma} \begin{proof} \blindtext \end{proof} \begin{lemma} The linear program has a value of $\Oh(\log n)$. \end{lemma} \begin{proof} For any $\Ell$ we know that for the \structure{minimizing tree $T_i$} holds \begin{align} \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} \\ &= \sum_{u, v \in V} c_{uv} M_{uv} \\ &\leq \Oh(\log n) \sum_{u, v \in V} c_{uv} d_\ell(u, v) \\ &\leq \Oh(\log n) \sum_{u, v \in V} c_{uv} \ell_{uv} \\ \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) \end{align} \end{proof} \begin{theorem} There is an $\Oh(\log n)$ approximation algorithm for the minimum bisection problem. \end{theorem} \begin{proof} Use the upper guarantee, then apply ellipsoid method. \end{proof} \begin{figure}[tb] \centering \begin{tikzpicture}[flow graph] \flownodes \flowedges \flowtreeedges \draw (n) node[above=3] {\structure{u}} (m) node[below=3] {a} (e) node[below=3] {b} (d) node[above=3] {c} (c) node[below=3] {d} (b) node[below=3] {\structure{v}}; \path (n) -- node[node on edge] {$c_{uv}$} (b); \begin{pgfonlayer}{marked} \draw[tree edge, tumorange] (n.center) edge (b.center); \end{pgfonlayer} \begin{pgfonlayer}{marked} \draw[tree edge, tumred] (m.center) edge (e.center); \end{pgfonlayer} \begin{pgfonlayer}{background} \node[draw=tumblue, fill=tumblue!20, thick, ellipse, rotate fit=30, fit=(n)(l)(m), inner sep=8pt] (el) {}; \end{pgfonlayer} \end{tikzpicture} \caption{Sum over all Capacities} \label{fig:sum_over_capacities} \end{figure} \section{Minimum Bisection} \label{sec:minimum_bisection} \blindtext \subsection{Problem definition} \label{sub:mb_problem} \begin{problem}[Minimum Bisection] Given an undirected Graph $G = (V, E)$ and an edge-cost function $c : E \to \R^+$. Find a set $S \subset V$ containing half the vertices with \structure{minimal split cost}. \end{problem} \blindtext \begin{definition}[Tree Bisection] Given a spanning tree $T$ of $G$ with an edge $e_T \in E_T$. We define a new cost function $c_T : E_T \to \R^+$ based on the tree splits induced by the edges of $T$. The cost of a bisection $S$ is the sum of tree split costs of all tree edges cut by $S$. \begin{align} c_T(e_T) &= C(e_T)\\ c_T(\delta(S)) &= \sum_{\substack{e_T \in E_T:\\e_T \in \delta(S)}} C(e_T) \end{align} The tree bisection of $T$ is an optimal solution of the minimum bisection problem with respect to the cost function $c_T$. \end{definition} \blindtext \begin{figure}[tb] \centering \begin{tikzpicture}[flow graph] \flownodes \flowedges \begin{pgfonlayer}{background} \node[draw=tumblue, fill=tumblue!20, thick, ellipse, fit=(c)(d)(g)(k)(j)(i)(e)(h), inner sep=3pt] (el) {}; \end{pgfonlayer} \path (el) ++ (-30:2.6) node {\structure{$S$}}; \begin{pgfonlayer}{marked} \foreach \source/\dest in {b/j,f/c,f/e,m/e,l/h} \draw [tree edge, tumorange] (\source.center) -- (\dest.center); \end{pgfonlayer} \end{tikzpicture} \caption{Minimum Bisection} \label{fig:minimum_bisection} \end{figure} \subsection{Approximation using oblivious routing} \label{sub:mb_approx} \begin{algorithm} \label{alg:minimum_bisection} Given graph $G = (V, E)$ and cost function $c : E \to \R^+$. \begin{enumerate} \item Interpret costs $c(e)$ as capacities \item Solve oblivious routing on $G$, obtaining trees $T_i$ \item Find minimum tree bisections $X_i$ for all trees $T_i$ \item Choose the $X_i$ with lowest $c(\delta(X_i))$ \end{enumerate} \end{algorithm} \begin{lemma} 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$. \begin{align} c(\delta(S)) \leq c_T(\delta(S)) \end{align} \end{lemma} \begin{proof} \blindtext \end{proof} \blindtext \begin{lemma} Let $\left\{ (T_i, \lambda_i) \mid i \in \Ih \right\}$ be a $\Oh(\log n)$-approximation to the oblivious flow problem. 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. \begin{align} \sum_i \lambda_i c_{T_i}(\delta(S)) \leq \Oh(\log n) c(\delta(S)) \end{align} \end{lemma} \begin{proof} Remember from the primal program that \structure{for all $u, v \in V$} \begin{align} \sum_i \lambda_i \sum_{\substack{e_T \in T_i:\\\structure{(u,v)} \in P_i(e_T)}} C_i(e_T) \leq \Oh(\log n) \structure{c_{uv}} \end{align} We sum up the inequalities for all $(u, v) \in \delta(S)$. This gives us \begin{align} \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)) \end{align} We are done with the observation that \begin{align} 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) \end{align} \end{proof} \begin{theorem} \cref{alg:minimum_bisection} is an $\Oh(\log n)$ approximation algorithm for the minimum bisection problem. \end{theorem} \begin{proof} \blindtext \begin{align} \sum_i \lambda_i c(\delta(X_i)) &\leq \sum_i \lambda_i c_{T_i}(\delta(X_i)) \\ &\leq \sum_i \lambda_i c_{T_i}(\delta(X^*)) \\ &\leq \Oh(\log n) c(\delta(X^*)) \end{align} \end{proof} \begin{figure}[tb] \begin{tikzpicture}[flow graph] \flownodes \flowedges \flowtreeedges \begin{pgfonlayer}{background} \node[draw=tumblue, fill=tumblue!20, thick, ellipse, fit=(c)(d)(g)(k)(j)(i)(e)(h), inner sep=3pt] (el) {}; \end{pgfonlayer} \path (el) ++ (-30:2.6) node {\structure{$S$}}; \draw (b) node[below=3] {\structure{u}} (j) node[below=3] {\structure{v}}; \begin{pgfonlayer}{marked} \foreach \source/\dest in {f/c,b/j,l/h} \draw [tree edge, tumblue, dash pattern=on 7pt off 7pt] (\source.center) -- (\dest.center); \foreach \source/\dest in {b/c,e/f,e/m} \draw [tree edge, tumred] (\source.center) -- (\dest.center); \end{pgfonlayer} \foreach \source/\dest/\name in {b/c/$e_3$,e/f/$e_2$,e/m/$e_1$} \path (\source) -- node[node on edge] {\name} (\dest); \end{tikzpicture} \caption{Costs are lower as tree costs} \label{fig:tree_bisections} \end{figure} \nocite{*} \bibliographystyle{alpha} \bibliography{term_paper} \end{document}