OPTIMIZING DYNAMIC RIDE-SHARING SYSTEMS