\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 \#4}} \hfill {{\bf Due:} April 2, 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{Tree embeddings with total cost (Exercise 8.12) (33 points)}

We saw in class that given a metric space $(V, d)$, the FRT tree embedding algorithm is a randomized algorithm that generates a tree metric $(V', T)$ such that 1) $V' \supseteq V$, 2) $d(u,v) \leq d_T(u,v)$ for all $u,v \in V$ and $T$ in the support of the algorithm, and 3) $\expct{d_T(u,v)} \leq O(\log n) \cdot d(u,v)$ for all $u,v \in V$ (where the expectation is taken over the randomized choice of $T$).  Note that this is for the distribution over trees generated by FRT -- any individual tree might distort some distance quite badly.  But sometimes we will want a bound on a single tree, so we might ask for something else: a single tree in which the \emph{total cost} is small.

Suppose that we are given a metric space $(V,d)$ and costs $c : {V \choose 2} \rightarrow R^+$ (where costs have nothing to do with distances, and ${V \choose 2}$ denotes all unordered pairs of nodes in $V$).  Give a polynomial-time randomized algorithm that returns a tree metric $(V', T)$ for $V$ (so $V$ is the leaves of $T$) such that: 
\begin{enumerate}[label=\arabic*)]
\item $d(u,v) \leq d_T(u,v)$ for all $u,v \in V$ with probability $1$, and 
\item  $\sum_{u,v \in V} c(u,v) d_T(u,v) \leq O(\log n)  \sum_{u,v \in V} c(u,v) d(u,v)$ with very high probability (at least $1 - \frac{1}{2^n}$).  
\end{enumerate}

Hint: Try to \emph{use} FRT rather than \emph{modifying} it.


\section{Capacitated Dial-a-Ride (Exercise 8.11) (67 points)}
In the Capacitated Dial-a-Ride problem, we are given a metric $(V, d)$, a single vehicle with a given integer capacity $C > 0$ located at a given node $r \in V$, and $k$ source-sink pairs $(s_1, t_1), \dots, (s_k, t_k)$.  At each source $s_i$ there is an item which must be delivered to the sink $t_i$ by the vehicle.  The vehicle can carry at most $C$ items at a time.  The goal is to find the shortest tour that starts and ends at the $r$, delivers each item from its source to its destination without exceeding the vehicle capacity, and returns to $r$.  Note that such a tour may visit a node of $V$ multiple times.  We assume that the vehicle is allowed to temporarily leave items at any node in $V$.

\begin{enumerate}
\item (34 points) Suppose that $(V, d)$ is actually a tree metric $(V, T)$ (so $T$ is a tree with vertex set $V$, not just with leaves $V$).  Give an $O(1)$-approximation algorithm for this case.  

Hint:  for each $i \in [k]$ there is a unique path $p(i)$ in $T$ from $s_i$ to $t_i$.  First show that without loss of generality, you can restrict your attention to the subtree induced by $r$ and the source-sink pairs.  For each edge $e$ which remains, let $\ell(e)$ denote the number of these paths which use edge $e$.  Prove that OPT needs to traverse $e$ at least $\max(1,\ell(e) / C)$ times.  Design an algorithm which traverses each edge at most $O(1) \cdot \max(1,\ell(e) / C)$ times.  


\item (33 points) Give a randomized $O(\log n)$-approximation for the general Capacitated Dial-a-Ride problem, where $n = |V|$.  Please do this formally -- it's not enough to say ``FRT embeds with distortion $O(\log n)$, so we lose an $O(\log n)$ factor".  Hint: you might want to use the steiner point removal result discussed in the lecture notes and (briefly) discussed in class.


\end{enumerate}


\end{document}



































