A generalized assignment heuristic for vehicle routing