A branch-and-bound algorithm for the concave cost supply problem