The Multi-Vehicle Ride-Sharing Problem