Generalized Submodular Optimization