Taxi systems are perfect examples of supply-demand systems in which taxi vehicles and drivers constitute the supply side, while passengers hailing taxis are the demand side. However, various inefficiencies can be embedded within such a large-scale system, e.g. an excessive number of taxi vehicles, a shortage of taxi supplies after an event and long idle times with no passengers in taxis. These systemic inefficiencies are often overlooked in previous literature, which focuses on taxi dispatching mechanisms to satisfy short-term demand.

In this paper, we address these inefficiencies and propose a novel model for the trip assignment problem based on network flow. Compared with existing methods, our model is much more scalable. This model is capable of assigning hundreds of thousands of trips to taxis over a long time interval, e.g. a shift of 12 hours. Furthermore, the trip assignment given by this model can effectively minimize the total number of required taxis while reducing incurred idle time. Experiments show that in our model, the number of required taxis to finish all observed trips in New York City is only 72% of the size of the current taxi fleet, while the average idle time incurred per taxi drops by 32%.