Submodular functions are set functions which usually appear in approximation algorithms, functions modeling user preferences in game theory. These functions have a natural diminishing returns property which makes them suitable for many applications.
Definition
Submodular function is a set function which satisfies one of the following equivalent[1] definitions.
- For every and we have that
- For every we have that
- For every and we have that
A submodular function is also a subadditive function, but a subadditive function need not be submodular.
Examples
- Graph cuts
- Let be the vertices of a graph. For any set of vertices let denote the number of edges such that and .
- Coverage function
- Let be the ground set. Consider a universe and a set of sets of the universe . Then a coverage function is defined for any set as .
- Entropy
- Let be a set of random variables. Then for any we have that is a submodular function, where is the entropy of the set of random variables
- Mutual information
- Let be a set of random variables. Then for any we have that is a submodular function, where is the mutual information.
- Matroid rank functions
- Let be the ground set on which a matroid is defined. Then the rank function of the matroid is a submodular function.
Optimization Problems
Submodular functions have properties which are very similar to convex and concave functions. Hence a lot of optimization problems can be cast as maximizing or minimizing submodular functions subject to various constraints.
- Minimization of Submodular functions.
- Maximization of Submodular functions.
- Unlike minimization, maximization of submodular functions is typically NP-Hard. A host of problems such as Max cut,Maximum coverage problem can be cast as special cases of this problem under suitable constraints.
References