Ride-hailing Problem

A Dynamic VRP variant

Ride-hailing Competitors: View Registered Teams.
Ride-hailing Problem Statement

The ride-hailing problem consists of a central operator controlling a homogeneous fleet of vehicles that serve randomly arising trip requests. When a request arises, the operator can assign it to a vehicle, reject it, or wait to make a decision. The operator also chooses where to reposition vehicles so they are better able to serve future requests. The operator seeks to maximize the profit earned over a 24-hour period, calculated as the revenue earned from the service of requests minus incurred travel costs.

Participants’ goal for this challenge is to develop a policy for the operator to follow that maximizes their objective, in expectation. A policy determines what action an operator should take given the current state of the environment.

This research challenge is supported by the pyhailing Python package. pyhailing provides the simulator (an OpenAI Gym environment) for the Ride-hailing Problem with which participants’ and their policies will interact.

For complete details of the problem, please see the description on pyhailing’s homepage here.­­­­

Ride-hailing Problem Instances

The pyhailing package dynamically generates instances on which participants can train and evaluate their policies.

Ride-hailing Problem Algorithm Evaluation

For the Ride-hailing Problem, there will be four separate instance categories in which participants can compete:

  1. Small untimed instances (SUI): In this competition category, the instances will use 14 vehicles and have 1,400 daily requests. There is no limit on the amount of (wall-clock) time the agents have to make a decision.
  2. Medium untimed instances (MUI): 100 vehicles and 10,000 daily requests. Again, no limit on the time agents have to make a decision.
  3. Large untimed instances (LUI): 500 vehicles and 50,000 daily requests. Again, no limit on the time agents have to make a decision.
  4. Large timed instances (LTI): 500 vehicles and 50,000 daily requests. Agents may take at most 10 seconds to make a decision.

Participants may compete in as many of the problem categories as they wish.

For each problem category, participants’ policies will be evaluated over a set of 50 instances generated by pyhailing. These instances will use stochastic travel times, and will yield a decision epoch at least every 60 seconds (of simulated time). When participants want to perform the official evaluation of their policies, we encourage them to initialize their environments as follows to ensure that they are using the proper pyhailing configuration:


This will auto-generate an output file (“pyhailing_eval_results_{nickname}_{timestamp}.json”) that can be submitted for evaluation.

The competition version of pyhailing (0.0.9) was released on January 10, 2022. We encourage you all to upgrade at your earliest convenience.
This new version is important for a couple reasons. First, it fixes a bug that a couple teams identified in the previous version. Second, and most important, it provides the official seed that you should use when initializing the environment to evaluate your agents: 20151101. This is auto-populated if you are initializing your environment as described above.
Please note that it is strictly against competition rules to train or otherwise refine your agents using this official seed; it is intended for final evaluations only. Any contestants breaking this rule will be disqualified from the competition.

When you are ready to submit either your solver output package (a zipped file) or your Challenge paper, you may do so from the Submissions page (which is part of the navigation menu on the right-hand side of this page).

Outputs are due January 16, 2022 and must be received by 23:59 Pacific Standard Time (UTC -8).

Four teams successfully submitted ride-hailing results.

Ride-hailing Problem Organizer(s)

Nicholas Kullman (lead)
Jorge Mendoza


If you have questions, please email the organizers using this link.