SMS: Submodular functions and optimization