Submodular Functions and Optimization by