An Exact Algorithm for the Pickup and Delivery Problem with Time Windows