A Branch and Bound Algorithm for the Multiple Depot Vehicle Scheduling Problem