  Motivated by applications in machine learning, such as subset selection and
data summarization, we consider the problem of maximizing a monotone submodular
function subject to mixed packing and covering constraints. We present a tight
approximation algorithm that for any constant $\epsilon >0$ achieves a
guarantee of $1-\frac{1}{\mathrm{e}}-\epsilon$ while violating only the
covering constraints by a multiplicative factor of $1-\epsilon$. Our algorithm
is based on a novel enumeration method, which unlike previous known enumeration
techniques, can handle both packing and covering constraints. We extend the
above main result by additionally handling a matroid independence constraints
as well as finding (approximate) pareto set optimal solutions when multiple
submodular objectives are present. Finally, we propose a novel and purely
combinatorial dynamic programming approach that can be applied to several
special cases of the problem yielding not only {\em deterministic} but also
considerably faster algorithms. For example, for the well studied special case
of only packing constraints (Kulik {\em et. al.} [Math. Oper. Res. `13] and
Chekuri {\em et. al.} [FOCS `10]), we are able to present the first
deterministic non-trivial approximation algorithm. We believe our new
combinatorial approach might be of independent interest.
