Let be a finite set. A function is called submodular if for all , we have

for all . Equivalently, is submodular if for any , we have

Since forms a poset, we can still define a submodular function as monotone if for every , . One example of a monotone submodular function is the coverage function:

Examples of Submodular Functions

Linear (Modular) Functions:

Define a weight function . Then the function

defines a linear modular function. If for all , then is also monotone.

Coverage Functions:

Let be a collection of subsets of some ground set. Then the function

is called the coverage function.

Graph Cuts:

Let be the vertices of a graph. For subset , define the submodular function to be the number of edges such that and .

Optimization Problems

Maximizing under Cardinality Constraints

If the submodular function is monotone, then the poset nature ensures that the ground set gives an optimal solution. The problem becomes significantly more difficulty when adding a constraint on the cardinality:

However, there is a fairly straightforward greedy algorithm for this problem which provides a -approximation:

Algorithm 7 Cornuejols et al. (1997)

procedure Greedy()

S:=S:=\emptyset

while S<k|S|<k do

e:=argmaxeE[f(S{e})f(S)]e:=\arg\max_{e\in E}[f(S\cup\{e\})-f(S)]

S:=S{e}S:=S\cup\{e\}

end while

end procedure

Unless , for any , there is no -approximation algorithm.

Maximizing under Matroid Constraints

A matroid is a collection of subsets of a ground set , called independent sets, such that

  • ;
  • if , then ;
  • if and , then there is some such that . For instance, the set is the uniform matroid of rank .

Every finite graph gives rise to a matroid as follows:

  • Let be the set of all edges in .
  • For , define if and only if it is a forest, i.e., it does not contain a cycle. The resulting matroid is called the cycle matroid. Any matroid derived from a graph in this fashion is called graphic.

center

A base of a matroid , is an independent set such that such that .

Given a matroid , one may define a polytope

where is the submodular rank function defined by

The extreme points of correspond to independent sets of . Consider maximizing a monotone submodular function under matroid constraints:

The following greedy algorithm uses our polytope and gives a -approximation. Define multilinear function by

which extends our submodular function into a continuous form.

Algorithm 8 Nemhauser et al. (1978)

procedure ContinuousGreedy()

y:=0Rny:=0\in\R^n

for all t[0,1]t\in[0,1] do

wi:=F(max{y(t),ei})F(y(t))w_i:=F(\max\{y(t),e_i\})-F(y(t)) for each iEi\in E

x(t):=argmaxxPw(t),xx(t):=\arg\max_{x\in\mathcal{P}}\langle w(t),x\rangle

Increase y(t)y(t) at rate dy(t)/dt=x(t)dy(t)/dt=x(t)

end for

return y(1)=01x(t)dty(1)=\int_0^1x(t)dt

end procedure

Simply checking the extreme points of provides a -approximation.

Additional Resources