Benchmarking

To run a benchmark, one can use the command line interface PyVRP provides. After installation, it is available as pyvrp from the command line. To find out about available options, run

pyvrp --help

To benchmark pyvrp, we mostly use instances from CRVPLIB instances. Particularly:

  • For the VRPTW, we use the Gehring and Homberger instances, particularly those with 1000 customers. These instances are each run for two hours (on a reference CPU with PassMark score 2000; the time limit should be scaled by the score of your CPU).

  • For the CVRP, we use the X-instances of Uchoa. Each instance has \(n\) clients; the runtimes are computed as \(2.4 n\) seconds (on a reference CPU with PassMark score 2183; the time limit should be scaled by the score of your CPU). Thus, an instance with 100 clients is ran for 240 seconds, assuming a CPU with PassMark score 2183.

Each instance is run ten times with different seeds. Each run is performed on a single core. For each instance, we take the average objectives/gaps of these ten runs with different seeds.

To get the benchmark instance sets quickly, the PyVRP/Instances repository may be initialised as a submodule:

git submodule init instances

After running this command, the instances will be available in instances/.