  This paper describes a simple greedy D-approximation algorithm for any
covering problem whose objective function is submodular and non-decreasing, and
whose feasible region can be expressed as the intersection of arbitrary (closed
upwards) covering constraints, each of which constrains at most D variables of
the problem. (A simple example is Vertex Cover, with D = 2.) The algorithm
generalizes previous approximation algorithms for fundamental covering problems
and online paging and caching problems.
