\documentclass[11pt]{article}

\usepackage{epsfig}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amstext}
\usepackage{amsmath}
\usepackage{xspace}
\usepackage{theorem}
\usepackage{hyperref}
\usepackage{fullpage}
\usepackage{enumitem}
\usepackage{graphicx}

\usepackage{listings}

\usepackage{enumitem}                     


 \usepackage{titlesec}

\titleformat*{\section}{\bfseries}
\titleformat*{\subsection}{\bfseries}
\titleformat*{\subsubsection}{\bfseries}
\titleformat*{\paragraph}{\bfseries}
\titleformat*{\subparagraph}{\bfseries}


\newenvironment{proof}{{\bf Proof:  }}{\hfill\rule{2mm}{2mm}}
\newenvironment{proofof}[1]{{\bf Proof of #1:  }}{\hfill\rule{2mm}{2mm}}
\newenvironment{proofofnobox}[1]{{\bf#1:  }}{}
\newenvironment{example}{{\bf Example:  }}{\hfill\rule{2mm}{2mm}}


\newtheorem{fact}{Fact}
\newtheorem{lemma}[fact]{Lemma}
\newtheorem{theorem}[fact]{Theorem}
\newtheorem{definition}[fact]{Definition}
\newtheorem{corollary}[fact]{Corollary}
\newtheorem{proposition}[fact]{Proposition}
\newtheorem{claim}[fact]{Claim}
\newtheorem{exercise}[fact]{Exercise}

% math notation
\newcommand{\R}{\ensuremath{\mathbb R}}
\newcommand{\Z}{\ensuremath{\mathbb Z}}
\newcommand{\N}{\ensuremath{\mathbb N}}
\newcommand{\F}{\ensuremath{\mathcal F}}
\newcommand{\SymGrp}{\ensuremath{\mathfrak S}}

\newcommand{\size}[1]{\ensuremath{\left|#1\right|}}
\newcommand{\ceil}[1]{\ensuremath{\left\lceil#1\right\rceil}}
\newcommand{\floor}[1]{\ensuremath{\left\lfloor#1\right\rfloor}}
\newcommand{\poly}{\operatorname{poly}}
\newcommand{\polylog}{\operatorname{polylog}}

% anupam's abbreviations
\newcommand{\e}{\epsilon}
\newcommand{\half}{\ensuremath{\frac{1}{2}}}
\newcommand{\junk}[1]{}
\newcommand{\sse}{\subseteq}
\newcommand{\union}{\cup}
\newcommand{\meet}{\wedge}

\newcommand{\prob}[1]{\ensuremath{\text{{\bf Pr}$\left[#1\right]$}}}
\newcommand{\expct}[1]{\ensuremath{\text{{\bf E}$\left[#1\right]$}}}
\newcommand{\Event}{{\mathcal E}}

\newcommand{\mnote}[1]{\normalmarginpar \marginpar{\tiny #1}}

\setenumerate[0]{label=(\alph*)}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Document begins here %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



\begin{document}

\noindent {\large {\bf 601.435 / 601.635 Approximation Algorithms} \hfill {{\bf Spring 2026}}}\\
{{\bf Homework \#5}} \hfill {{\bf Due:} April 16, 2026, 9:00am} \\
\rule[0.1in]{\textwidth}{0.4pt}

Reminder: you may work in groups of up to three people, but must write up solutions entirely on your own.  Collaboration is limited to discussing the problems -- you may not look at, compare, reuse, etc.~any text from anyone else in the class.  Please include your list of collaborators on the first page of your submission.  Many of these problems have solutions which can be found on the internet -- please don't look.  You can of course use the internet (including the links provided on the course webpage) as a learning tool, but don't go looking for solutions.  

Please include proofs with all of your answers, unless stated otherwise.

\noindent \rule[0.1in]{\textwidth}{0.4pt}


\section{Multiway Cut (50 points)}
Consider the following two permutations $\pi_1$ and $\pi_2$ of $[k]$, where $\pi_1(1) = 1, \pi_1(2) = 2, \dots, \pi_1(k) = k$ and $\pi_2(1) = k, \pi_2(2) = k-1, \dots, \pi_2(k) = 1$.  

\begin{enumerate}
\item (25 points) Consider a modification of the $3/2$ approximation for Multiway Cut from Lecture 17: instead of choosing $\pi$ uniformly at random from all permutations of $[k]$, we choose $\pi = \pi_1$ with probability $1/2$ and choose $\pi = \pi_2$ with probability $1/2$.  Prove that this modified algorithm is still a $3/2$-approximation for Multiway Cut.

\item (25 points) Using the previous part, design a \emph{deterministic} $3/2$-approximation for Multiway Cut.  As always, prove the approximation ratio and polynomial running time.
\end{enumerate}


\section{Multicut in Trees (50 points)}
Consider the \emph{multicut problem in trees}.  In this problem, we are given a tree $T = (V, E)$, $k$ pairs $(s_i, t_i)$ of vertices, and edge costs $c : E \rightarrow \R^+$.  A feasible solution is a set $F \subseteq E$ such that for all $i \in [k]$, $s_i$ and $t_i$ are in different connected components of $T - F$.  The objective is to minimize the total edge cost $\sum_{e \in F} c(e)$.  

Let $P_i$ be the unique path between $s_i$ and $t_i$ in $T$.  Then we can write an integer linear programming formulation of this problem:
\begin{alignat*}{2}
\min  \quad & \sum_{e \in E} c(e) x_e \\
\text{subject to }  & \sum_{e \in P_i} x_e  \geq 1 \quad & \forall i \in [k] \\
& x_e \in \{0,1\} & \forall e \in E
\end{alignat*}

\begin{enumerate}
\item (25 points) Write the dual of the LP relaxation of the above ILP (note: we did this in class for multicut!)
\end{enumerate}

Suppose that we root the tree at an arbitrary vertex $r$.  Let $depth(v)$ be the number  of edges on the path from $v$ to $r$.  Let $lca(s_i, t_i)$ be the vertex $v$ on the path from $s_i$ to $t_i$ whose depth is minimum.  Suppose that we use the primal-dual method to solve this problem, where the dual variable that we increase in each iteration corresponds to the violated (primal) constraint that maximized $depth(lca(s_i, t_i))$.  After all primal constraints are satisfied, we do a ``reverse cleanup" stage like in Steiner Forest, where we look at the edges we added in reverse order and remove them if we can do so while still having a feasible solution.

\begin{enumerate}[resume]
\item (25 points) Prove that this is a $2$-approximation.  Hint: consider a path $P_i$ where the dual variable is nonzero. How many edges in the final solution can be on the path from $s_i$ to $lca(s_i, t_i)$, and how many can be on the path from $t_i$ to $lca(s_i, t_i)$?
\end{enumerate}


\end{document}



































