aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThibaut Horel <thibaut.horel@gmail.com>2015-02-17 15:16:35 -0500
committerThibaut Horel <thibaut.horel@gmail.com>2015-02-17 15:16:35 -0500
commit130e76d7d9f88bcc2a60f6073add81a19cff859a (patch)
tree06ef6c18cc41ba2ccd090eb2f338daa0644e2fa2
parent115df7d2589477b57194a0d7666b099622e63fc2 (diff)
downloadnotes-130e76d7d9f88bcc2a60f6073add81a19cff859a.tar.gz
Notes on greedy algorithms for submodular maximization
-rw-r--r--greedy/main.tex561
-rw-r--r--greedy/sub.bib98
2 files changed, 659 insertions, 0 deletions
diff --git a/greedy/main.tex b/greedy/main.tex
new file mode 100644
index 0000000..def9d8e
--- /dev/null
+++ b/greedy/main.tex
@@ -0,0 +1,561 @@
+\documentclass[10pt, twocolumn]{article}
+\usepackage[hmargin=3em,vmargin=3em, bmargin=5em,footskip=3em]{geometry}
+\usepackage[sectionbib]{natbib}
+\usepackage[pagebackref=false,breaklinks=true,colorlinks=true,citecolor=blue]{hyperref}
+\usepackage[utf8x]{inputenc}
+\usepackage{times}
+\usepackage{amsmath,amsfonts,amsthm}
+\usepackage[english]{babel}
+\usepackage[capitalize, noabbrev]{cleveref}
+\usepackage{algorithm}
+\usepackage{algpseudocode}
+\usepackage{microtype}
+\setlength{\columnsep}{2em}
+
+\DeclareMathOperator*{\argmax}{arg\,max}
+\DeclareMathOperator{\E}{\mathbb{E}}
+\let\P\relax
+\DeclareMathOperator{\P}{\mathbb{P}}
+\newcommand{\ex}[1]{\E\left[#1\right]}
+\newcommand{\prob}[1]{\P\left[#1\right]}
+\newcommand{\inprod}[1]{\left\langle #1 \right\rangle}
+\newcommand{\R}{\mathbf{R}}
+\newcommand{\N}{\mathbf{N}}
+\newcommand{\C}{\mathcal{C}}
+\newcommand{\eps}{\varepsilon}
+\newcommand{\cl}[1]{\text{\textbf{#1}}}
+\newcommand{\eqdef}{\mathbin{\stackrel{\rm def}{=}}}
+
+\newtheorem{theorem}{Theorem}
+\newtheorem{proposition}[theorem]{Proposition}
+\newtheorem{lemma}[theorem]{Lemma}
+\newtheorem{corollary}[theorem]{Corollary}
+\theoremstyle{definition}
+\newtheorem{definition}[theorem]{Definition}
+\theoremstyle{remark}
+\newtheorem*{example}{Example}
+\newtheorem*{remark}{Remark}
+
+\algrenewcommand\algorithmicensure{\textbf{Output:}}
+\algrenewcommand\algorithmicrequire{\textbf{Input:}}
+
+\author{Thibaut Horel}
+\title{Notes on Greedy Algorithms for Submodular Maximization}
+
+\begin{document}
+\maketitle
+
+\section{Submodular Functions}
+
+All the functions we consider are set functions defined over subsets of
+a ground set $N$.
+
+\begin{definition}
+ A function $f:2^N\to\R$ is \emph{monotone} iff:
+ \begin{displaymath}
+ \forall S\subseteq T\subseteq N,\; f(S)\leq f(T)
+ \end{displaymath}
+\end{definition}
+
+\begin{definition}
+ For $f:2^N\to\R$ and $S\subseteq N$, the \emph{marginal
+ contribution} to $S$ is the function $f_S$ defined by:
+\begin{displaymath}
+ \forall T\subseteq N,\; f_S(T) = f(S\cup T) - f(S)
+\end{displaymath}
+\end{definition}
+
+When there is no ambiguity, we write $f_S(e)$ instead of $f_S(\{e\})$ for $e\in
+N$, $S+e$ instead of $S\cup\{e\}$ and $S-e$ instead of $S\setminus\{e\}$.
+
+\begin{definition}
+ \label{def:sub}
+ A function $f:2^N\to\R$ is \emph{submodular} iff:
+\begin{displaymath}
+ \forall S\subseteq T\subseteq N,\forall e\in N\setminus T,\;
+ f_T(e)\leq f_S(e)
+\end{displaymath}
+\end{definition}
+
+This ``decreasing marginal contribution'' definition of submodular functions
+often leads to treating them as ``discrete concave functions''.
+
+\begin{proposition}
+ \label{prop:subeq}
+ The following statements are equivalent:
+ \begin{enumerate}
+ \item $f$ is submodular.
+ \item for all $S\subseteq N$, $f_S$ is submodular.
+ \item for all $S\subseteq N$, $f_S$ is subadditive.
+ \end{enumerate}
+\end{proposition}
+
+\begin{proof}
+ (\emph{1. $\Rightarrow$ 2.}) is immediate. To prove (\emph{2. $\Rightarrow$
+ 3.}), we show that any submodular function $f$ is subadditive. Let $f$ be
+ a submodular function. Consider $A$ and $B$ two subets of $N$. Writing $B
+ = \{e_1,\dots,e_n\}$ and $B_i = \{e_1,\ldots,e_i\}$:
+ \begin{align*}
+ f(A\cup B) &= f(A) + \sum_{i=1}^n f(A\cup B_i) - f(A\cup B_{i-1})\\
+ &\leq f(A) + \sum_{i=1}^n f(B_i) - f(B_{i-1}) = f(A)
+ + f(B)
+ \end{align*}
+ where the inequality uses the submodularity of $f$.
+
+ Finally, we prove (\emph{3. $\Rightarrow$ 1.}). Let $f$ be a function
+ satisfying \emph{3.}, and let us consider $S\subseteq T\subseteq N$ and
+ $e\in N\setminus T$. Writing $T' = T\setminus S$:
+ \begin{align*}
+ f_T(e) &= f_S(T'+e) - f_S(T')\\
+ &\leq f_S(T') + f_S(e) - f_S(T') = f_S(e)
+ \end{align*}
+ where the inequality used that $f_S$ is subadditive.
+\end{proof}
+
+\begin{remark}
+ \cref{prop:subeq} implies in particular that a submodular function is
+ subadditive.
+\end{remark}
+
+The following \lcnamecref{cor:sa} will be very useful in analysing greedy
+algorithms involving submodular functions. It can be seen as the
+``integrated'' version of \cref{def:sub}\footnote{Note the analogy with
+$f(b)\leq f(a) + (b-a)f'(a)$, for $f$ concave.}.
+
+\begin{corollary}
+ \label{cor:sa}
+Let $f$ be a submodular function, then:
+\begin{displaymath}
+ \forall S\subseteq T\subseteq N,\;
+ f(T)\leq f(S) + \sum_{e\in T\setminus S} f_S(e)
+\end{displaymath}
+Furthermore, if $f$ is monotone submodular, $S$ need not be a subset of $T$:
+\begin{displaymath}
+ \forall S\subseteq N,\, T\subseteq N,\;
+ f(T)\leq f(S) + \sum_{e\in T\setminus S} f_S(e)
+\end{displaymath}
+\end{corollary}
+
+\begin{proof}
+If $f$ is submodular, using that $f_S$ is subadditive:
+\begin{displaymath}
+ f_S(T) = f_S(T\setminus S)\leq \sum_{e\in T\setminus S} f_S(e)
+\end{displaymath}
+which proves the first part of the corollary.
+
+If $f$ is monotone submodular, $f(T)\leq f(S\cup T)$ and applying the first
+part of the corollary to $S\cup T$ and $T$ concludes the proof.
+\end{proof}
+
+\begin{remark}
+ The two inequalities of \cref{cor:sa} can be proved to be respectively
+ equivalent to ``$f$ is submodular'' and ``$f$ is monotone submodular''.
+\end{remark}
+
+\section{Cardinality Constraint}
+
+Henceforth, $f$ will be a monotone submodular function. Furthermore, we
+assume that $f$ is \emph{normalized}, that is, $f(\emptyset) = 0$. Consider
+the following maximization program:
+\begin{displaymath}
+ S^*\in\argmax_{S\,:\, |S|\leq K} f(S)
+\end{displaymath}
+
+The choice of a representation for $f$ has a big impact on the computational
+nature of the above program. We assume the \emph{value query model}: for any
+$S\subseteq N$, the algorithm can query a black-box oracle for the value
+$f(S)$. An algorithm making $O\big(\text{poly}(|N|)\big)$ queries to the oracle
+is considered to have polynomial running time.
+
+\begin{algorithm}
+ \caption{Greedy (Cardinality constraint)}
+ \label{alg:gc}
+ \begin{algorithmic}[1]
+ \Require $N$, $K$, value query oracle for $f$
+ \State $S_G \gets \emptyset$
+ \While{$|S_G| < K$}
+ \State $x^*\gets \argmax_{x\in N} f_{S_G}(x)$
+ \State $S_G \gets S_G + x^*$\label{line:add1}
+ \State $N\gets N - x^*$
+ \EndWhile
+ \State\textbf{return} $S_G$
+ \end{algorithmic}
+\end{algorithm}
+
+\begin{proposition}
+ Let $S_G$ be the set returned by Algorithm~\ref{alg:gc}, then
+ $f(S_G)\geq\big(1-\frac{1}{e}\big) f(S^*)$.
+\end{proposition}
+
+\begin{proof}
+ Let us denote by $S_i = \{e_1,\dots, e_i\}$, the value of $S_G$ after the
+ $i$th time line~\ref{line:add1} of Algorithm~\ref{alg:gc} is executed.
+ Then:
+ \begin{align*}
+ f(S^*)&\leq f(S_{i-1})
+ + \sum_{e\in S^*\setminus S_{i-1}} f_{S_{i-1}}(e)\\
+ &\leq f(S_{i-1})
+ + \sum_{e\in S^*\setminus S_{i-1}} f(S_i) - f(S_{i-1})\\
+ &\leq f(S_{i-1}) + K\big(f(S_i) - f(S_{i-1})\big)
+ \end{align*}
+ where the first inequality used \cref{cor:sa}, the second inequality used
+ the greediness of Algorithm~\ref{alg:gc} and the third inequality used that
+ $|S^*|\leq K$.
+
+ Subtracting $K\cdot f(S^*)$ both sides gives:
+ \begin{displaymath}
+ f(S_i) - f(S^*)\geq \frac{K-1}{K} \big(f(S_{i-1}) - f(S^*)\big)
+ \end{displaymath}
+ which in turn implies by induction:
+ \begin{displaymath}
+ f(S_i)
+ \geq \left(1-\left(1-\frac{1}{K}\right)^i\right) f(S^*)
+ \end{displaymath}
+ Taking $i=K$ and using $(1-\frac{1}{K})^K\leq \frac{1}{e}$ concludes the
+ proof.
+\end{proof}
+
+\begin{remark}
+ \cite{feige1998} proved that unless $P=NP$, no polynomial time algorithm
+ can achieve an approximation ratio better than $1-\frac{1}{e}$ for the
+ cardinality constrained maximization of set cover functions.
+\end{remark}
+
+\section{Knapsack Constraint}
+
+There is now a cost function $c:N\to\R^+$ and a budget $B\in\R^+$. $c$ is
+extended to $2^N$ by $c(S) = \sum_{e\in S} c(e)$. Consider the following
+Knapsack constrained optimization problem:
+\begin{displaymath}
+ S^*\in\argmax_{S\,:\, c(S)\leq B} f(S)
+\end{displaymath}
+
+A natural way to extend Algorithm~\ref{alg:gc} to this case is
+Algorithm~\ref{alg:gk}. The two main differences are that:
+\begin{enumerate}
+ \item instead of maximizing the marginal contribution at each time step,
+ Algorithm~\ref{alg:gk} maximizes the ``bang-per-buck'': the marginal
+ contribution divided by the cost.
+ \item when adding an item would violate the budget constraint, the item is
+ thrown away, and the iteration keeps inspecting possibly cheaper items.
+\end{enumerate}
+
+Unfortunately, Algorithm~\ref{alg:gk} has unbounded approximation ratio.
+Similarly to the standard Knapsack problem (when $f$ is additive), problems
+arise when there are high value items. Consider the case where $f$ is additive
+and $N = \{e_1, e_2\}$ with $f(e_1) = v$, $f(e_2) = \eps v$, $c(e_1) = B$ and
+$c(e_2) = \frac{\eps B}{2}$. The best solution is clearly to pick $\{e_1\}$ for
+a value of $v$. In contrast, Algorithm~\ref{alg:gk} picks $\{e_2\}$ for a value
+of $\eps v$. As $\eps$ gets close to zero, the approximation ratio becomes
+arbitrarily large.
+
+\begin{algorithm}
+ \caption{Greedy (Knapsack constraint)}
+ \label{alg:gk}
+ \begin{algorithmic}[1]
+ \Require $N$, $B$, value query oracle $f$, cost function $c$
+ \State $S_G \gets \emptyset$
+ \While{$N\neq \emptyset$}
+ \State $x^*\gets \argmax_{x\in N} \frac{f_{S_G}(x)}{c(x)}$
+ \If{$c(S_G)+c(x^*)\leq B$}\label{line:budget}
+ \State $S_G \gets S_G + x^*$\label{line:add2}
+ \EndIf
+ \State $N\gets N - x^*$
+ \EndWhile
+ \State\textbf{return} $S_G$
+ \end{algorithmic}
+\end{algorithm}
+
+However, the following lemma will be useful to use Algorithm~\ref{alg:gk} as
+a building block for algorithms solving the Knapsack constrained submodular
+maximization.
+
+\begin{lemma}
+ \label{lemma:greedy}
+ Whenever line~\ref{line:budget} of Algorithm~\ref{alg:gk} evaluates to
+ False, $f(S_G+x^*)\geq \big(1-\frac{1}{e}\big) f(S^*)$.
+\end{lemma}
+
+\begin{proof}
+ Let us denote by $S_i = \{e_1,\dots, e_i\}$, the value of $S_G$ after the
+ $i$th time line~\ref{line:add2} of Algorithm~\ref{alg:gk} is executed.
+ Then:
+ \begin{align*}
+ f(S^*)
+ &\leq f(S_{i-1}) + \sum_{e\in S^*\setminus S_{i-1}} f_{S_{i-1}}(e)\\
+ &= f(S_{i-1}) + \sum_{e\in S^*\setminus S_{i-1}}
+ c(e)\frac{f_{S_{i-1}}(e)}{c(e)}\\
+ &\leq f(S_{i-1}) + \frac{f(S_{i})-f(S_{i-1})}{c(e_i)}\sum_{e\in S^*\setminus S_{i-1}}
+ c(e)\\
+ &\leq f(S_{i-1}) + \frac{B}{c(e_i)}\big(f(S_{i})-f(S_{i-1})\big)
+ \end{align*}
+ where the first inequality used \cref{cor:sa}, the second inequality used
+ the greediness of Algorithm~\ref{alg:gk} and the last inequality used that
+ $c(S^*)\leq B$.
+
+ Subtracting $\frac{B}{c_i}$ both sides and reordering the terms:
+ \begin{displaymath}
+ f(S_i)- f(S^*)
+ \geq \left(1- \frac{c(e_i)}{B}\right)\big(f(S_{i-1}) - f(S^*)\big)
+ \end{displaymath}
+ Solving this recursive inequality yields:
+ \begin{displaymath}
+ f(S_i)
+ \geq \left(1-\prod_{k=1}^i\left(1- \frac{c(e_i)}{B}\right)\right) f(S^*)
+ \end{displaymath}
+ Finally, using that $1-x\leq e^{-x}$:
+ \begin{displaymath}
+ f(S_i)
+ \geq \left(1-\exp \frac{-c(S_i)}{B}\right) f(S^*)
+ \end{displaymath}
+
+ We are now ready to prove the lemma. Let us consider $S_G$ at some
+ iteration of Algorithm~\ref{alg:gk} where line~\ref{line:add2} evaluates to
+ false. The above analysis didn't assume that line~\ref{line:add2} evaluated
+ to True when element $e_i$ was added to $S_G$, hence we can apply it to
+ $S_G+x^*$:
+ \begin{displaymath}
+ f(S_G+x^*)
+ \geq \left(1-\exp \frac{-c(S_G)-c(x^*)}{B}\right) f(S^*)
+ \end{displaymath}
+ and using that $c(S_G) + c(x^*) > B$ by assumption of \cref{lemma:greedy}
+ concludes the proof.
+\end{proof}
+
+We now present two algorithms which exploit \cref{lemma:greedy} to obtain
+a constant approximation ratio to the optimal solution.
+
+\begin{algorithm}
+ \caption{Greedy (Knapsack constraint), simple fix}
+ \label{alg:gk1}
+ \begin{algorithmic}[1]
+ \Require $N$, $B$, value query oracle $f$, cost function $c$
+ \State $e^*\gets \argmax_{e\in N,\, c(e)\leq B} f(e)$
+ \State $S_G \gets$ result of Algorithm~\ref{alg:gk}
+ \State\textbf{return} $\argmax\{f(S_G),f(e^*)\}$
+ \end{algorithmic}
+\end{algorithm}
+
+\begin{proposition}
+ Let $S$ be the set returned by Algorithm~\ref{alg:gk1}, then $f(S)\geq
+ \frac{1}{2}\left(1-\frac{1}{e}\right) f(S^*)$.
+\end{proposition}
+
+\begin{proof}
+ Let us consider the value of $S_G$ the first time line~\ref{line:budget} of
+ Algorithm~\ref{alg:gk} evaluated to False after the last element of $S_G$
+ was added:
+ \begin{align*}
+ 2 f(S)&\geq f(S_G) + f(e^*)\geq f(S_G) + f(x^*)\\
+ &\geq f(S_G+x^*) \geq \left(1-\frac{1}{e}\right)f(S^*)
+ \end{align*}
+ where the first inequality used the definition of $S$, the second
+ inequality used the definition of $e^*$, the third inequality used the
+ subadditivity of $f$ and the last inequality used Lemma~\ref{lemma:greedy}.
+\end{proof}
+
+\begin{remark}
+ \cite{lin2010} noted that the above analysis can be refined to show that
+ the approximation ratio of Algorithm~\ref{alg:gk1} is at least
+ $1-\frac{1}{\sqrt{e}}$.
+\end{remark}
+
+\begin{algorithm}
+ \caption{Greedy (Knapsack constraint), partial enumeration}
+ \label{alg:gk2}
+ \begin{algorithmic}[1]
+ \Require $N$, $B$, value query oracle $f$, cost function $c$
+ \State $S_1\gets \argmax_{S\subseteq N,\, c(S)\leq B,\, |S| < d} f(S)$
+ \State $S_2 \gets \emptyset$
+ \ForAll{$S\subseteq N,\, |S|=d, c(S)\leq B$}
+ \State $N'\gets N\setminus S$
+ \State $S_G \gets$ Algorithm~\ref{alg:gk} for $N'$ and
+ initialization $S_G\gets S$\label{line:greedy}
+ \If{$f(S_G) > f(S_2)$}
+ \State $S_2\gets S_G$
+ \EndIf
+ \EndFor
+ \State\textbf{return} $\argmax\{f(S_1),f(S_2)\}$
+ \end{algorithmic}
+\end{algorithm}
+
+For some constant $d$ (fixed later in the analysis), Algorithm~\ref{alg:gk2}
+first compute $S_1$, the set of maximum value among all sets of at most $d-1$
+elements. Then for all sets of $S$ of $d$ elements, the algorithm completes $S$
+greedily using Algorithm~\ref{alg:gk} where the initialisation
+$S_G\gets\emptyset$ is replaced by $S_G\gets S$. The best set obtained by such
+a greedy completion is $S_2$. Algorithm~\ref{alg:gk2} then returns the best of
+$S_1$ and $S_2$.
+
+\begin{proposition}
+ For $d=3$, let $S$ be the set returned by Algorithm~\ref{alg:gk2}, then
+ $f(S)\geq \left(1-\frac{1}{e}\right) f(S^*)$.
+\end{proposition}
+
+\begin{proof}\emph{Wlog}, assume that $|S^*| > d$, otherwise
+ Algorithm~\ref{alg:gk2} finds the optimal solution. Let us write $S^*
+ = \{e_1^*,\ldots e_n^*\}$ and $S^*_i = \{e_1^*,\dots,e_i^*\}$ where the
+ elements of $S^*$ where ordered such that:
+ \begin{displaymath}
+ e_i^* \in \argmax_{e\in S^*\setminus S^*_{i-1}} f_{S^*_{i-1}}(e)
+ \end{displaymath}
+
+ Let us now consider the iteration of Algorithm~\ref{alg:gk2} where
+ $S=S^*_d$. Then line~\ref{line:greedy} is equivalent to running
+ Algorithm~\ref{alg:gk} for the function $f_{S_d^*}$ and set $N\setminus
+ S^*_d$. Let us consider the first time line~\ref{line:add1} of
+ Algorithm~\ref{alg:gk} evaluated to false for some element $x^*$ of
+ $S^*\setminus S^*_d$\footnote{This necessarily happens since all the
+ elements in $N$ are eventually considered in the while loop.}. Then by
+ Lemma~\ref{lemma:greedy}:
+ \begin{equation}
+ \label{eq:foo1}
+ f(S_G + x^*) - f(S_d^*)\geq \left(1-\frac{1}{e}\right) \big(f(S^*)
+ - f(S^*_d)\big)
+ \end{equation}
+ But by submodularity of $f$ and the ordering of $S^*_d$:
+ \begin{displaymath}
+ f_{S_G}(x^*)\leq f_{S_i^*}(x^*)\leq f(S_i^*) -f(S_{i-1}^*),
+ \quad 1\leq i \leq d
+ \end{displaymath}
+ Summing for $1\leq i\leq d$:
+ \begin{equation}
+ \label{eq:foo2}
+ f(S_G+x^*)\leq f(S_G) + \frac{1}{d} f(S_d^*)
+ \end{equation}
+ Combining \cref{eq:foo1,eq:foo2} gives
+ \begin{displaymath}
+ f(S_G)\geq \left(1-\frac{1}{e}\right)f(S^*)
+ + \left(\frac{1}{e}-\frac{1}{d}\right) f(S^*_d)
+ \end{displaymath}
+ which concludes the proof after observing that $\frac{1}{e}-\frac{1}{d}>0$
+ for $d=3$.
+\end{proof}
+
+\section{Matroid Constraint}
+
+\begin{definition}
+ A \emph{matroid} $M$ is a pair $(N,\mathcal{I})$. $N$ is a finite set
+ called the \emph{ground set} and $\mathcal{I}$ is family of subsets of $N$
+ called the \emph{independent sets} such that:
+ \begin{enumerate}
+ \item (downward closure) if $B\in\mathcal{I}\text{ and } A\subseteq B$
+ then $A\in\mathcal{I}$
+ \item (exchange property) if $A\in\mathcal{I}, B\in\mathcal{I}$ and
+ $|A| < |B|$ then there exists $x\in B\setminus A$ such that
+ $A+x\in \mathcal{I}$
+ \end{enumerate}
+ Maximal independent sets of $M$ are called \emph{bases}.
+\end{definition}
+
+\begin{remark}
+It follows from the exchange property that all bases have the same cardinality.
+This cardinality is the \emph{rank} of $M$.
+\end{remark}
+
+\begin{proposition}[bijective basis exchange]
+ \label{prop:bbe}
+ If $B_1$ and $B_2$ are two bases of a matroid $M$, then there exists
+ a bijection $\phi:B_1\setminus B_2\to B_2\setminus B_1$ such that:
+ \begin{displaymath}
+ \forall x\in B_1\setminus B_2,\;
+ B_1 - x + \phi(x)\in\mathcal{I}
+ \end{displaymath}
+\end{proposition}
+
+\begin{proof} This is a standard result in matroid theory.
+\end{proof}
+
+\begin{remark}
+ The bijection $\phi$ of \cref{prop:bbe} can be extended to $\phi:B_1\to
+ B_2$ by defining it to be the identity function on $B_1\cap B_2$.
+\end{remark}
+
+We now look at the problem of maximizing a monotone submodular function over
+a matroid $M=(N,\mathcal{I})$:
+\begin{displaymath}
+ S^* \in \argmax_{S\in\mathcal{I}} f(S)
+\end{displaymath}
+From a computational perspective, we still assume a value query oracle for $f$.
+Furthermore, we assume an \emph{independence oracle} for $M$: given
+$S\subseteq N$, the independence oracle tests whether or not
+$S\in\mathcal{I}$.
+
+\begin{algorithm}
+ \caption{Greedy (Matroid constraint)}
+ \label{alg:gmat}
+ \begin{algorithmic}[1]
+ \Require{$N$, value query oracle $f$, independence oracle for
+ $\mathcal{I}$}
+ \State $S_G \gets \emptyset$
+ \While{$N\neq \emptyset$}
+ \State $x^*\gets \argmax_{x\in N} f_{S_G}(x)$
+ \If{$S_G+x\in\mathcal{I}$}
+ \State $S_G \gets S_G + x^*$
+ \EndIf
+ \State $N\gets N - x^*$
+ \EndWhile
+ \State\textbf{return} $S_G$
+ \end{algorithmic}
+\end{algorithm}
+
+\begin{remark}
+ The set $S_G$ constructed by Algorithm~\ref{alg:gmat} is a base of $M$.
+ When the rank $K$ of $M$ is known, the while loop can be stopped as soon as
+ $|S_G| = K$ (cf. cardinality constrained submodular maximization).
+\end{remark}
+
+\begin{proposition}
+ Let $S_G$ be the set returned by Algorithm~\ref{alg:gmat}, then $f(S_G)\geq
+ \frac{1}{2} f(S^*)$.
+\end{proposition}
+
+\begin{proof}
+ \emph{Wlog}, assume that $S^*$ is a base of $M$. Let $\phi:S^*\to
+ S_G$ be a bijection as in \cref{prop:bbe}. Le us write:
+ \begin{displaymath}
+ S^* = \{e_1^*,\ldots, e_K^*\}
+ \text{ and }
+ S_G = \{e_1,\ldots, e_K\}
+ \end{displaymath}
+ where $e_i =\phi(e_i^*)$ and define $S_i = \{e_1,\dots,e_i\}$. Then:
+ \begin{align*}
+ f(S^*) - f(S_G) &\leq \sum_{i=1}^K f_{S_G}(e_i^*)
+ \leq\sum_{i=1}^K f_{S_{i-1}}(e_i^*)\\
+ %&\leq\sum_{i=1}^K f_{S_{i-1}}(e_i)
+ &\leq\sum_{i=1}^K f(S_i) - f(S_{i-1})
+ = f(S_G)
+ \end{align*}
+ where the first inequality used \cref{cor:sa}, the second inequality used
+ submodularity of $f$, and the third inequality used the greediness of
+ Algorithm~\ref{alg:gmat} and that $S_{i-1}+e_i^*\in\mathcal{I}$ by
+ \cref{prop:bbe}.
+\end{proof}
+
+\section{Bibliographical Notes}
+
+A systematic analysis of greedy algorithms for submodular maximization was made
+by \cite{fisher1978,nemhauser1978}. The results about submodular maximization
+under cardinality and matroid constraints can be found in these papers, even
+though some of them had already been obtained by \cite{edmonds1971}. The lower
+bound of $(1-\frac{1}{e})$ for the approximation ratio of a polynomial time
+algorithm is due to \cite{feige1998}.
+
+For Knapsack constraints, \cite{Khuller1999} were the first to obtain an
+approximation ratio of $(1-\frac{1}{e})$ using partial enumeration in the case
+of a set cover function. It was then noted by \cite{sviridenko2004}, that the
+result extended to any submodular function.
+
+It is possible to obtain a $(1-\frac{1}{e})$ approximation ratio under matroid
+constaints. This result was first obtained by \cite{calinescu2007} using
+continuous optimization. A combinatorial algorithm was later constructed by
+\cite{filmus2012}.
+
+More complex constraints can also be considered: intersection of independence
+systems, matroids, knapsack constraints. \cite{nemhauser1978} summarize some
+results from the late 70's. A general framework can be found in
+\cite{vondrak2011}.
+
+\bibliographystyle{abbrvnat}
+\bibliography{sub}
+\end{document}
diff --git a/greedy/sub.bib b/greedy/sub.bib
new file mode 100644
index 0000000..5adbe9b
--- /dev/null
+++ b/greedy/sub.bib
@@ -0,0 +1,98 @@
+@book{fisher1978,
+ title={An analysis of approximations for maximizing submodular set functions—II},
+ author={Fisher, Marshall L and Nemhauser, George L and Wolsey, Laurence A},
+ year={1978},
+ publisher={Springer}
+}
+
+@article{nemhauser1978,
+ title={An analysis of approximations for maximizing submodular set functions—I},
+ author={Nemhauser, George L and Wolsey, Laurence A and Fisher, Marshall L},
+ journal={Mathematical Programming},
+ volume={14},
+ number={1},
+ pages={265--294},
+ year={1978},
+ publisher={Springer}
+}
+
+@article{edmonds1971,
+ title={Matroids and the greedy algorithm},
+ author={Edmonds, Jack},
+ journal={Mathematical programming},
+ volume={1},
+ number={1},
+ pages={127--136},
+ year={1971},
+ publisher={Springer}
+}
+
+@article{feige1998,
+ title={A threshold of ln n for approximating set cover},
+ author={Feige, Uriel},
+ journal={Journal of the ACM (JACM)},
+ volume={45},
+ number={4},
+ pages={634--652},
+ year={1998},
+ publisher={ACM}
+}
+
+@article{khuller1999,
+ title={The budgeted maximum coverage problem},
+ author={Khuller, Samir and Moss, Anna and Naor, Joseph Seffi},
+ journal={Information Processing Letters},
+ volume={70},
+ number={1},
+ pages={39--45},
+ year={1999},
+ publisher={Elsevier}
+}
+
+@article{sviridenko2004,
+ title={A note on maximizing a submodular set function subject to a knapsack constraint},
+ author={Sviridenko, Maxim},
+ journal={Operations Research Letters},
+ volume={32},
+ number={1},
+ pages={41--43},
+ year={2004},
+ publisher={Elsevier}
+}
+
+@incollection{calinescu2007,
+ title={Maximizing a submodular set function subject to a matroid constraint},
+ author={Calinescu, Gruia and Chekuri, Chandra and P{\'a}l, Martin and Vondr{\'a}k, Jan},
+ booktitle={Integer programming and combinatorial optimization},
+ pages={182--196},
+ year={2007},
+ publisher={Springer}
+}
+
+@inproceedings{filmus2012,
+ title={A tight combinatorial algorithm for submodular maximization subject to a matroid constraint},
+ author={Filmus, Yuval and Ward, Justin},
+ booktitle={Foundations of Computer Science (FOCS)},
+ pages={659--668},
+ year={2012},
+ organization={IEEE}
+}
+
+@inproceedings{vondrak2011,
+ title={Submodular function maximization via the multilinear relaxation and contention resolution schemes},
+ author={Vondr{\'a}k, Jan and Chekuri, Chandra and Zenklusen, Rico},
+ booktitle={Proceedings of the forty-third annual ACM symposium on Theory of computing},
+ pages={783--792},
+ year={2011},
+ organization={ACM}
+}
+
+@inproceedings{lin2010,
+ title={Multi-document summarization via budgeted maximization of submodular functions},
+ author={Lin, Hui and Bilmes, Jeff},
+ booktitle={Human Language Technologies: The 2010 Annual Conference of the North American Chapter of the Association for Computational Linguistics},
+ pages={912--920},
+ year={2010},
+ organization={Association for Computational Linguistics}
+}
+