A column generation algorithm for the vehicle routing problem with soft time windows