An Algorithm for Submodular Functions on Graphs