  In this paper, we study the challenging problem of how to balance taxi
distribution across a city in a dynamic ridesharing service. First, we
introduce the architecture of the dynamic ridesharing system and formally
define the performance metrics indicating the efficiency of the system. Then,
we propose a hybrid solution involving a series of algorithms: the Correlated
Pooling collects correlated rider requests, the Adjacency Ride-Matching based
on Demand Learning assigns taxis to riders and balances taxi distribution
locally, the Greedy Idle Movement aims to direct taxis without a current
assignment to the areas with riders in need of service. In the experiment, we
apply city-scale data sets from the city of Chicago and complete a case study
analyzing the threshold of correlated rider requests and the average online
running time of each algorithm. We also compare our hybrid solution with
multiple other methods. The results of our experiment show that our hybrid
solution improves customer serving rate without increasing the number of taxis
in operation, allows both drivers to earn more and riders to save more per
trip, and all with a small increase in calling and extra trip time.
