A branch-and-price algorithm for the multi-depot heterogeneous-fleet pickup and delivery problem with soft time windows