\documentclass[11pt]{article}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{xcolor}
\usepackage{hyperref}

\DeclareMathOperator*{\E}{\mathbb{E}}
\let\Pr\relax
\DeclareMathOperator*{\Pr}{\mathbb{P}}

\newcommand{\eps}{\epsilon}
\newcommand{\inprod}[1]{\left\langle #1 \right\rangle}
\newcommand{\R}{\mathbb{R}}
\newcommand{\abs}[1]{\left\lvert#1\right\rvert}

\newcommand{\handout}[5]{
  \noindent
  \begin{center}
  \framebox{
    \vbox{
      \hbox to 5.78in { {\bf CS 388R: Randomized Algorithms, Fall 2019 } \hfill #2 }
      \vspace{4mm}
      \hbox to 5.78in { {\Large \hfill #5  \hfill} }
      \vspace{2mm}
      \hbox to 5.78in { {\em #3 \hfill #4} }
      \textcolor{red}{\textbf{NOTE:} THESE NOTES HAVE NOT BEEN EDITED OR CHECKED FOR CORRECTNESS}
    }
  }
  \end{center}
  \vspace*{4mm}
}

\newcommand{\lecture}[5]{\handout{XX}{#3}{#4}{Scribe: #5}{Lecture #1: #2}}

\newtheorem{theorem}{Theorem}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{observation}[theorem]{Observation}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{claim}[theorem]{Claim}
\newtheorem{fact}[theorem]{Fact}
\newtheorem{assumption}[theorem]{Assumption}

% 1-inch margins, from fullpage.sty by H.Partl, Version 2, Dec. 15, 1988.
\topmargin 0pt
\advance \topmargin by -\headheight
\advance \topmargin by -\headsep
\textheight 8.9in
\oddsidemargin 0pt
\evensidemargin \oddsidemargin
\marginparwidth 0.5in
\textwidth 6.5in

\parindent 0in
\parskip 1.5ex


%==========  FOR EDITING
\newcommand{\todo}[1]{{ \textcolor{magenta}{\textbf{(TO DO: }#1\textbf{)}} }}
\newcommand{\note}[1]{{ \textcolor{purple}{\textbf{(NOTE: }#1\textbf{)}} }}


\begin{document}

\lecture{27}{Review}{December 3rd, 2019}{Prof.\ Eric Price}{Justin Yirka}
% Example:
%\lecture{1}{Coupon Collector; Balls and Bins}{August 29th, 2019}{Prof.\ Eric Price}{John Doe, Jane Roe}


\section{Overview of the course}
In this course, we have covered various \emph{analytic techniques} for analyzing the performance of randomized algorithms, \emph{algorithmic techniques} for designing randomized algorithms, and examples of randomized \emph{algorithms}.

Here are some examples:

\paragraph{Algorithm: Quicksort.} We used the algorithmic technique of avoiding worst-case inputs (more specifically with randomized partitioning). We used the analytic technique of linearity of expectation, and Chernoff bounds if you want to show high-probability results. 

We also used random partitioning in an algorithm of planar point location.

We also avoided worst-case inputs in our algorithm for game-tree evaluation.

\paragraph{Analytic technique: Balls and Bins.} This is a class of algorithms for which we used analytic techniques related to the Balls and Bins problem. Algorithms include hash tables, cuckoo hashing, count-min-sketch, and Bloom filters.

We used analytic techniques we mentioned above, as well as negative association and various concentrations of measure, including Chebyshev, Chernoff, Subgaussian, and Subgamma.

A common algorithm technique we used was limited independence (because we don't want to use the space to store fully independent hash functions).

\paragraph{Algorithmic technique: Fingerprinting.} We learned about fingerprinting and applied to several problems, including polynomial identity testing, string matching, and matrix multiplication identity testing. 

\paragraph{Algorithmic technique: Symmetry breaking.} We used the technique of symmetry breaking in designing algorithms for randomized routing and for all-pairs shortest path (APSP) on unweighted graphs.

\paragraph{Algorithmic technique: Random walks.} We used random walks in designing algorithms for bipartite matching on regular graphs (we also used coupon collector to analyze this). To analyze random walks, we studied Markov chains.

\paragraph{Algorithm: Spectral sparsification.} We spent so much time on this one, it gets its own paragraph. We used the algorithmic techniques of biased sampling and effective resistance. In the analysis, we used the probabilistic method for an existence proof.

\paragraph{Algorithmic technique: Backward analysis.} We used backward analysis in analyzing our algorithm for the convex hull problem.

\paragraph{Various others}
We covered several other algorithms which used a combination of algorithmic and analytic techniques mentioned above and not mentioned above. And of course, although we highlighted certain connections between algorithms and techniques above, we used material from throughout the course in each lecture.

\begin{table}[h]
	\centering
	\begin{tabular}{l|l|l}
		\textbf{Algorithms}                             & \textbf{Algorithmic Techniques}  & \textbf{Analytic Techniques}                                       \\
		\hline
		Quicksort                              & Avoid worst-case input  & Linearity of expectation                                  \\
		Planar point location                  & Randomized partitioning & Concentration of measures                                 \\
		Game tree evaluation                   & Limited independence    & ~~(Markov, Chebyshev, Chernoff,  \\
		Hash tables                            & Symmetry breaking       & ~~~subgaussian, subgamma, ...)                                      \\
		Cuckoo hashing                         & Fingerprinting          & Negative association                                          \\
		Count-min sketch                       & Random walks            & Coupon collector                                            \\
		Bloom filters                          & Biased sampling         & Balls and bins                   \\
		Randomized routing                     &                         & Probabilistic method                                              \\
		Network coding                         &                         &  Markov chains                                                         \\
		Polynomial identity testing            &                         &                                                           \\
		Matrix multiplication identity testing &                         &                                                           \\
		All-pairs shortest paths (APSP)                                   &                         &                                                           \\
		String matching                        &                         &                                                           \\
		Bipartite matching on regular graphs   &                         &                                                           \\
		Spectral sparsification                &                         &                                                           \\
		Convex hull                            &                         &                                                           \\
		Closest pairs                          &                         &                                                          
	\end{tabular}
\end{table}


\section{Questions}
For the rest of class, we'll answer questions about anything people want to ask about (except the final exam).

\begin{itemize}
	\item Can we review shortest path finding?
	(\href{https://www.cs.utexas.edu/~ecprice/courses/randomized/notes/lec12.pdf}{Lecture 12})
	
	\item Can we review spectral sparsification?
	(\href{https://www.cs.utexas.edu/~ecprice/courses/randomized/notes/lec21.pdf}{Lecture 21} and \href{https://www.cs.utexas.edu/~ecprice/courses/randomized/notes/lec22.pdf}{Lecture 22})
	
	\item Can we review Bernstein bounds?
	(\href{https://www.cs.utexas.edu/~ecprice/courses/randomized/notes/lec21.pdf}{Lecture 21})
	
	\item Can we review Count-min-sketch?
	(\href{https://www.cs.utexas.edu/~ecprice/courses/randomized/notes/lec19.pdf}{Lecture 19})
	
	\item Can we review backward analysis?
	(\href{https://www.cs.utexas.edu/~ecprice/courses/randomized/notes/lec26.pdf}{Lecture 26})
\end{itemize}

\section{Final Exam}
Good luck!


\end{document}