{
  "schema": "routethai-cvrplib-set-a-suite-evidence-v1",
  "generated_at": "2026-08-19T00:00:00.000Z",
  "benchmark": {
    "family": "CVRPLIB Set A",
    "selection_policy": "complete_set_no_exclusions",
    "source_revision": "cvrplib-catalog-2026-08-19",
    "catalog_url": "https://galgos.inf.puc-rio.br/cvrplib/en/instances",
    "fixture_source": "https://galgos.inf.puc-rio.br/cvrplib/en/download",
    "instance_count": 27,
    "customer_range": [
      31,
      79
    ],
    "edge_weight_type": "EUC_2D",
    "distance_semantics": "TSPLIB EUC_2D nearest-integer",
    "optimum_status": "proven_for_every_instance"
  },
  "solver": {
    "algorithm": "deterministic_multistart_local_search_v6",
    "source_sha256": "c411e64cc6b69dc661a8f6412492d8594ef160c8336d72f0c98e4571225e987c",
    "runner_source_sha256": "4a2619cbcc3496a230dc74b46f5e5cba9d256d13b4d9bebcb388adc578324d5e",
    "independent_validator_source_sha256": "8fe1a72b7d48c0102089d362d14674fd5f3aaedda9013af9f1da118b5bbdc471",
    "suite_manifest_source_sha256": "cecb1368417a69cb6292ba8657d8a34d0c9b1fd405216f477cfd269beb3141fe",
    "objectives": [
      "minimize_vehicles",
      "minimize_distance"
    ],
    "search": {
      "constructionStarts": 5,
      "improvementIterations": 50,
      "maxEvaluatedMoves": 200000
    },
    "seed_policy": "deterministic-no-random-seed",
    "threads": 1
  },
  "summary": {
    "status": "PASS",
    "attempted_instances": 27,
    "feasible_instances": 27,
    "passed_instances": 27,
    "failed_instances": 0,
    "invalid_solution_count": 0,
    "timeout_count": 0,
    "exact_replay_instances": 27,
    "optimum_hits": 0,
    "gap_statistics_population": "all_attempted_instances",
    "mean_gap_percent": 5.522157,
    "median_gap_percent": 3.013699,
    "p90_gap_percent": 8.800774,
    "max_gap_percent": 34.851695,
    "median_instance_runtime_ms": 442.846,
    "p95_instance_runtime_ms": 784.019
  },
  "runtime": {
    "warmup_runs_per_instance": 1,
    "measured_runs_per_instance": 10,
    "scope": "end_to_end_final_result_only",
    "anytime_metrics": "not_instrumented_no_anytime_claim",
    "node": "v22.18.0",
    "platform": "darwin-arm64",
    "cpu": "Apple M2",
    "logical_cpu_count": 8,
    "total_memory_bytes": 8589934592,
    "isolation": "sequential_single_process_single_thread"
  },
  "reference_baselines": {
    "protocol": {
      "family": "CVRPLIB Set A",
      "selection_policy": "complete_set_no_exclusions",
      "instance_count": 27,
      "warmup_runs_per_instance": 1,
      "measured_runs_per_instance": 10,
      "wall_clock_limit_ms_per_solve": 1000,
      "execution": "sequential_single_process_single_thread",
      "pyvrp_seed_policy": "seeds_0_through_9",
      "ortools_seed_policy": "deterministic_no_seed_interface"
    },
    "environment": {
      "python": "3.14.6",
      "platform": "macOS-26.5.2-arm64-arm-64bit-Mach-O",
      "machine": "arm64",
      "cpu": "arm",
      "logical_cpu_count": 8,
      "pyvrp": "0.13.4",
      "ortools": "9.15.6755",
      "vrplib": "2.2.0"
    },
    "raw_evidence_url": "/outputs/academic/cvrplib-set-a-reference-baselines.raw.json",
    "raw_evidence_sha256": "cfc88a21f4111fb8eccfa6710befff9e61766c38470c0da3a3f022f058b35f15",
    "runner_source_sha256": "0cf170cd34a22d5fb7185585709d960b955a6761b78488caa49cb4f8f5c22e05",
    "requirements_sha256": "1adff2b2a43e71e393ad32d4595f7b48fe8c5fff631c724fafd0dcb03e8f4272",
    "validation": "all_reference_routes_recomputed_by_routethai_independent_validator",
    "comparisons": [
      {
        "solver": "pyvrp",
        "attempted_instances": 27,
        "feasible_instances": 27,
        "measured_runs": 270,
        "invalid_solution_count": 0,
        "timeout_count": 0,
        "gap_statistics_population": "all_measured_runs",
        "mean_gap_percent": 0.134425,
        "feasible_only_mean_gap_percent": 0.134425,
        "median_instance_mean_gap_percent": 0,
        "p90_instance_mean_gap_percent": 0.495049,
        "max_instance_mean_gap_percent": 0.998298,
        "median_instance_runtime_ms": 1002.231,
        "p95_instance_runtime_ms": 1005.15
      },
      {
        "solver": "ortools",
        "attempted_instances": 27,
        "feasible_instances": 26,
        "measured_runs": 270,
        "invalid_solution_count": 0,
        "timeout_count": 10,
        "gap_statistics_population": "unavailable_due_to_timeout",
        "mean_gap_percent": null,
        "feasible_only_mean_gap_percent": 3.750887,
        "median_instance_mean_gap_percent": null,
        "p90_instance_mean_gap_percent": null,
        "max_instance_mean_gap_percent": null,
        "median_instance_runtime_ms": 1000.447,
        "p95_instance_runtime_ms": 1002.185
      }
    ],
    "equal_time_comparison": {
      "wall_clock_limit_ms_per_solve": 1000,
      "routethai_max_observed_runtime_ms": 982.495,
      "result": "PASS"
    }
  },
  "results": [
    {
      "instance": "A-n32-k5",
      "source_id": 4,
      "customers": 31,
      "vehicle_limit": 5,
      "capacity": 100,
      "published_optimum": 784,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 784,
      "official_route_loads": [
        98,
        72,
        44,
        98,
        98
      ],
      "instance_sha256": "2ebedd0631c4c56c08ba3b1476ac874a7d54cc448bd3795de534f43b2c099ce2",
      "official_solution_sha256": "a23da588e19d97533c94fb574ed42edfade007465d7448e4840885b0888404ca",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 796,
      "optimality_gap_percent": 1.530612,
      "route_count": 5,
      "route_loads": [
        88,
        93,
        91,
        44,
        94
      ],
      "routes": [
        [
          13,
          2,
          8,
          17,
          31
        ],
        [
          15,
          19,
          9,
          12,
          5,
          29,
          24,
          3,
          4
        ],
        [
          21,
          6,
          26,
          11,
          16,
          10,
          23,
          30
        ],
        [
          25,
          28
        ],
        [
          27,
          14,
          22,
          32,
          20,
          18,
          7
        ]
      ],
      "visited_customers": 31,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "77969ea9d9f669a1ab42a58b653323c2d1c9c64022f098eeeadeaa7002c39226",
      "search_exhausted": false,
      "evaluated_moves": 57200,
      "accepted_improvements": 7,
      "runtime_median_ms": 126.575,
      "runtime_p95_ms": 140.4,
      "runtime_samples_ms": [
        140.4,
        133.757,
        131.143,
        127.05,
        126.789,
        126.575,
        126.189,
        125.929,
        125.975,
        126.185
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1001.167,
          "runtime_p95_ms": 1001.502
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1000.376,
          "runtime_p95_ms": 1000.808
        }
      }
    },
    {
      "instance": "A-n33-k5",
      "source_id": 5,
      "customers": 32,
      "vehicle_limit": 5,
      "capacity": 100,
      "published_optimum": 661,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 661,
      "official_route_loads": [
        92,
        97,
        98,
        61,
        98
      ],
      "instance_sha256": "35712de0054a0fbfd609d5cdb4ec638c39f7c181b6e39e3c8bf6f8e359b78aef",
      "official_solution_sha256": "d8045df85ee1f1cee362f884ea0c52f0a5f6c3e3dcd06bcc644a0da79974e43b",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 702,
      "optimality_gap_percent": 6.202723,
      "route_count": 5,
      "route_loads": [
        95,
        88,
        89,
        78,
        96
      ],
      "routes": [
        [
          13,
          11,
          18,
          10,
          4,
          17
        ],
        [
          16,
          5,
          21,
          14,
          33,
          3
        ],
        [
          20,
          15,
          22,
          2,
          32,
          30,
          23
        ],
        [
          24,
          29,
          19,
          12,
          7,
          25
        ],
        [
          31,
          26,
          28,
          6,
          27,
          8,
          9
        ]
      ],
      "visited_customers": 32,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "33f05f598294d2eef5e3f986a4a01aa8d95e0ff8be4a753f14a1ed9a06d9d4ef",
      "search_exhausted": false,
      "evaluated_moves": 60661,
      "accepted_improvements": 10,
      "runtime_median_ms": 138.54,
      "runtime_p95_ms": 139.051,
      "runtime_samples_ms": [
        138.442,
        139.051,
        138.549,
        138.536,
        138.201,
        138.821,
        138.336,
        138.604,
        138.54,
        138.987
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1001.196,
          "runtime_p95_ms": 1001.552
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1000.364,
          "runtime_p95_ms": 1000.583
        }
      }
    },
    {
      "instance": "A-n33-k6",
      "source_id": 7,
      "customers": 32,
      "vehicle_limit": 6,
      "capacity": 100,
      "published_optimum": 742,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 742,
      "official_route_loads": [
        99,
        67,
        97,
        92,
        97,
        89
      ],
      "instance_sha256": "4d01ebe9842743ee0c66f14ecb86ab9c84d3198b3280d0dbcc8a8d9a69f1592f",
      "official_solution_sha256": "a5395d65af5807fb05606f0abfd6a2a7ad6d98ef52e1fa4d9780667a09e2c649",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 774,
      "optimality_gap_percent": 4.312668,
      "route_count": 6,
      "route_loads": [
        91,
        89,
        99,
        97,
        81,
        84
      ],
      "routes": [
        [
          13,
          22
        ],
        [
          14,
          19,
          2,
          29
        ],
        [
          15,
          18,
          30,
          12,
          11,
          33
        ],
        [
          20,
          21,
          10,
          16,
          3,
          8,
          7
        ],
        [
          23,
          27,
          5,
          4,
          9,
          6
        ],
        [
          25,
          24,
          32,
          28,
          31,
          17,
          26
        ]
      ],
      "visited_customers": 32,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "46a4f03197401ab35880842fd0e1a2717019bb8d59bdfb239212b7ed460f7939",
      "search_exhausted": false,
      "evaluated_moves": 43744,
      "accepted_improvements": 7,
      "runtime_median_ms": 106.317,
      "runtime_p95_ms": 107.087,
      "runtime_samples_ms": [
        107.087,
        105.728,
        106.84,
        106.21,
        106.911,
        106.225,
        106.317,
        106.494,
        106.186,
        106.426
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1001.363,
          "runtime_p95_ms": 1001.808
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0.134771,
          "feasible_only_mean_gap_percent": 0.134771,
          "median_gap_percent": 0.134771,
          "best_gap_percent": 0.134771,
          "worst_gap_percent": 0.134771,
          "runtime_median_ms": 1000.369,
          "runtime_p95_ms": 1000.829
        }
      }
    },
    {
      "instance": "A-n34-k5",
      "source_id": 8,
      "customers": 33,
      "vehicle_limit": 5,
      "capacity": 100,
      "published_optimum": 778,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 778,
      "official_route_loads": [
        96,
        89,
        93,
        96,
        86
      ],
      "instance_sha256": "393117f10a26d0e803a8206e7dd1157a67de2429d6b9fd2d60c070a98b7c73bb",
      "official_solution_sha256": "f1e5feaeff4a28ebb04a20f56beacaa9ce0926bc90be070069dbb4f5f16939c4",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 834,
      "optimality_gap_percent": 7.197943,
      "route_count": 5,
      "route_loads": [
        81,
        98,
        95,
        100,
        86
      ],
      "routes": [
        [
          11,
          14,
          8,
          7,
          30,
          31
        ],
        [
          15,
          2,
          24,
          28,
          25,
          6
        ],
        [
          16,
          9,
          12,
          20,
          18,
          32,
          26
        ],
        [
          19,
          3,
          10,
          13,
          4,
          33,
          29,
          22
        ],
        [
          21,
          17,
          23,
          34,
          5,
          27
        ]
      ],
      "visited_customers": 33,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "626f3d56ed61f873b91512c431284f6bf2965fa267480e69213ed89574bd2614",
      "search_exhausted": false,
      "evaluated_moves": 128002,
      "accepted_improvements": 21,
      "runtime_median_ms": 269.217,
      "runtime_p95_ms": 271.888,
      "runtime_samples_ms": [
        270.802,
        271.888,
        270.817,
        271.194,
        268.748,
        269.216,
        268.643,
        269.217,
        269.348,
        268.381
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1001.233,
          "runtime_p95_ms": 1001.76
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 1.028278,
          "feasible_only_mean_gap_percent": 1.028278,
          "median_gap_percent": 1.028278,
          "best_gap_percent": 1.028278,
          "worst_gap_percent": 1.028278,
          "runtime_median_ms": 1000.368,
          "runtime_p95_ms": 1000.447
        }
      }
    },
    {
      "instance": "A-n36-k5",
      "source_id": 9,
      "customers": 35,
      "vehicle_limit": 5,
      "capacity": 100,
      "published_optimum": 799,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 799,
      "official_route_loads": [
        90,
        99,
        100,
        58,
        95
      ],
      "instance_sha256": "794360562d60d66a358eaf57721432b43318abba710f3c55f3240aef18e69b03",
      "official_solution_sha256": "68917f8c5bb34b240ab7e234ba9a86f09017a9821cc1e72d9a9fe83a748d7977",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 805,
      "optimality_gap_percent": 0.750939,
      "route_count": 5,
      "route_loads": [
        96,
        58,
        93,
        100,
        95
      ],
      "routes": [
        [
          10,
          15,
          35,
          3,
          36,
          9,
          16
        ],
        [
          11,
          8,
          27
        ],
        [
          13,
          32,
          20,
          5,
          4,
          7,
          24,
          29
        ],
        [
          17,
          12,
          25,
          28,
          26,
          6,
          21
        ],
        [
          2,
          23,
          33,
          14,
          18,
          31,
          30,
          34,
          19,
          22
        ]
      ],
      "visited_customers": 35,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "41e7d5c3b23169b173ffd958c115d1a6073f04146e53a9425a022af4d0b2a7af",
      "search_exhausted": false,
      "evaluated_moves": 102948,
      "accepted_improvements": 11,
      "runtime_median_ms": 214.043,
      "runtime_p95_ms": 216.529,
      "runtime_samples_ms": [
        213.691,
        213.164,
        214.293,
        213.5,
        213.652,
        216.529,
        215.132,
        214.106,
        214.043,
        214.792
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1001.328,
          "runtime_p95_ms": 1001.869
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 1.001252,
          "feasible_only_mean_gap_percent": 1.001252,
          "median_gap_percent": 1.001252,
          "best_gap_percent": 1.001252,
          "worst_gap_percent": 1.001252,
          "runtime_median_ms": 1000.402,
          "runtime_p95_ms": 1000.939
        }
      }
    },
    {
      "instance": "A-n37-k5",
      "source_id": 10,
      "customers": 36,
      "vehicle_limit": 5,
      "capacity": 100,
      "published_optimum": 669,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 669,
      "official_route_loads": [
        96,
        98,
        83,
        91,
        39
      ],
      "instance_sha256": "8b3c9c86c6ec147d6699ef1a7e9b33d7d2637c6b8f254922ff3494d56efed3d0",
      "official_solution_sha256": "b2141e45f0f7ce786cd1fbdbffff854d1526b045b39dc969c77a8576b0346741",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 690,
      "optimality_gap_percent": 3.139013,
      "route_count": 5,
      "route_loads": [
        98,
        97,
        91,
        94,
        27
      ],
      "routes": [
        [
          16,
          31,
          26,
          36,
          19,
          27,
          32,
          29,
          33,
          30
        ],
        [
          18,
          15,
          21,
          20,
          3,
          11,
          7,
          6,
          34
        ],
        [
          2,
          13,
          24,
          25,
          10,
          12,
          28,
          9,
          4
        ],
        [
          22,
          17,
          23,
          14,
          5,
          8
        ],
        [
          35,
          37
        ]
      ],
      "visited_customers": 36,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "70d1b7e8de1a4e6238eb552701b9309c1b742f391872cc8451beacf1006c1f71",
      "search_exhausted": false,
      "evaluated_moves": 75590,
      "accepted_improvements": 5,
      "runtime_median_ms": 176.591,
      "runtime_p95_ms": 176.972,
      "runtime_samples_ms": [
        176.776,
        176.201,
        176.343,
        176.972,
        176.611,
        176.966,
        176.591,
        176.166,
        176.943,
        176.122
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1001.34,
          "runtime_p95_ms": 1001.907
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1000.381,
          "runtime_p95_ms": 1000.466
        }
      }
    },
    {
      "instance": "A-n37-k6",
      "source_id": 11,
      "customers": 36,
      "vehicle_limit": 6,
      "capacity": 100,
      "published_optimum": 949,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 949,
      "official_route_loads": [
        99,
        97,
        88,
        97,
        100,
        89
      ],
      "instance_sha256": "65615d1b371722c00089443548bff64a5b6385055eeac3ec6f0b5c8cc8c9bdab",
      "official_solution_sha256": "f7133cab3ff610cea2c08b4e12a68356c4e71a9af46bf133e11001f82342f723",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 971,
      "optimality_gap_percent": 2.31823,
      "route_count": 6,
      "route_loads": [
        92,
        96,
        88,
        99,
        97,
        98
      ],
      "routes": [
        [
          12,
          13,
          23,
          24,
          29,
          3,
          10,
          34
        ],
        [
          14,
          27,
          22,
          20,
          32
        ],
        [
          15,
          7,
          37,
          30,
          25
        ],
        [
          17,
          26,
          36,
          8
        ],
        [
          19,
          18,
          35,
          2,
          4,
          6,
          9,
          21
        ],
        [
          28,
          33,
          16,
          31,
          11,
          5
        ]
      ],
      "visited_customers": 36,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "039c6cb57cefc42f58c88fbade15b431490250b0d0b7d8734387f9b2e0db5f9d",
      "search_exhausted": false,
      "evaluated_moves": 69800,
      "accepted_improvements": 9,
      "runtime_median_ms": 167.428,
      "runtime_p95_ms": 169.135,
      "runtime_samples_ms": [
        167.195,
        166.653,
        167.428,
        167.248,
        167.302,
        168.879,
        169.135,
        167.967,
        168.789,
        168.578
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1001.434,
          "runtime_p95_ms": 1003.375
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0.421496,
          "feasible_only_mean_gap_percent": 0.421496,
          "median_gap_percent": 0.421496,
          "best_gap_percent": 0.421496,
          "worst_gap_percent": 0.421496,
          "runtime_median_ms": 1000.397,
          "runtime_p95_ms": 1004.051
        }
      }
    },
    {
      "instance": "A-n38-k5",
      "source_id": 12,
      "customers": 37,
      "vehicle_limit": 5,
      "capacity": 100,
      "published_optimum": 730,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 730,
      "official_route_loads": [
        100,
        100,
        96,
        99,
        86
      ],
      "instance_sha256": "59a822563b0c59b86f0652e9249e6073cb1f22f19b30da45554ca47055e91051",
      "official_solution_sha256": "cbf89b9edd2fe4ca544e894c15424a0fa058e6add0bfb316c611a0cbe4518100",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 752,
      "optimality_gap_percent": 3.013699,
      "route_count": 5,
      "route_loads": [
        82,
        99,
        100,
        100,
        100
      ],
      "routes": [
        [
          10,
          3,
          25,
          15,
          33,
          21
        ],
        [
          11,
          31,
          30,
          35,
          7,
          32,
          29
        ],
        [
          16,
          14,
          37,
          18,
          36,
          24,
          34,
          9
        ],
        [
          19,
          20,
          26,
          17,
          5,
          2,
          4,
          13,
          27,
          22
        ],
        [
          38,
          12,
          28,
          23,
          6,
          8
        ]
      ],
      "visited_customers": 37,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "5db96684825f4560abb5ff71541045140dde4e624cee1ccf2445a87e4ae2ef90",
      "search_exhausted": false,
      "evaluated_moves": 138669,
      "accepted_improvements": 18,
      "runtime_median_ms": 314.299,
      "runtime_p95_ms": 316.683,
      "runtime_samples_ms": [
        314.488,
        314.5,
        313.896,
        314.218,
        313.973,
        314.299,
        313.9,
        314.64,
        314.785,
        316.683
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1001.42,
          "runtime_p95_ms": 1003.987
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0.684932,
          "feasible_only_mean_gap_percent": 0.684932,
          "median_gap_percent": 0.684932,
          "best_gap_percent": 0.684932,
          "worst_gap_percent": 0.684932,
          "runtime_median_ms": 1000.046,
          "runtime_p95_ms": 1000.465
        }
      }
    },
    {
      "instance": "A-n39-k5",
      "source_id": 13,
      "customers": 38,
      "vehicle_limit": 5,
      "capacity": 100,
      "published_optimum": 822,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 822,
      "official_route_loads": [
        86,
        97,
        93,
        100,
        99
      ],
      "instance_sha256": "d3afcea200df090c673805d02d4f3c3fad84f4ebaee26a54edc28b30a72cbac9",
      "official_solution_sha256": "989e4e2de2c78dfd00f3110a0b5941b9109fd8be74b62769d9f710fa0b6589da",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 826,
      "optimality_gap_percent": 0.486618,
      "route_count": 5,
      "route_loads": [
        97,
        82,
        100,
        99,
        97
      ],
      "routes": [
        [
          11,
          33,
          17,
          8,
          4,
          23,
          3
        ],
        [
          12,
          7,
          37,
          29,
          14,
          31,
          22
        ],
        [
          13,
          32,
          2,
          24,
          21,
          30,
          6,
          16,
          39
        ],
        [
          15,
          20,
          26,
          34,
          19,
          10,
          5
        ],
        [
          18,
          25,
          36,
          38,
          35,
          28,
          27,
          9
        ]
      ],
      "visited_customers": 38,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "4b788d1336c753b949c739a6a6e08fb536bf395034a6007860ea66bcfe8be530",
      "search_exhausted": false,
      "evaluated_moves": 123568,
      "accepted_improvements": 15,
      "runtime_median_ms": 283.278,
      "runtime_p95_ms": 286.367,
      "runtime_samples_ms": [
        286.367,
        284.098,
        283.466,
        283.268,
        282.985,
        283.394,
        283.49,
        283.278,
        283.067,
        282.588
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1001.456,
          "runtime_p95_ms": 1002.016
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 3.406326,
          "feasible_only_mean_gap_percent": 3.406326,
          "median_gap_percent": 3.406326,
          "best_gap_percent": 3.406326,
          "worst_gap_percent": 3.406326,
          "runtime_median_ms": 1000.295,
          "runtime_p95_ms": 1001.046
        }
      }
    },
    {
      "instance": "A-n39-k6",
      "source_id": 14,
      "customers": 38,
      "vehicle_limit": 6,
      "capacity": 100,
      "published_optimum": 831,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 831,
      "official_route_loads": [
        98,
        33,
        98,
        97,
        100,
        100
      ],
      "instance_sha256": "28b83a6afdaa1a2f1f6691313b8977ac3003201584ccb8387fa5ac91ee195cfe",
      "official_solution_sha256": "9eb445abda9085c6a54b5ee9dd6bb4ff15a1018dba036517f0c40059d1d15a4b",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 855,
      "optimality_gap_percent": 2.888087,
      "route_count": 6,
      "route_loads": [
        69,
        96,
        72,
        96,
        95,
        98
      ],
      "routes": [
        [
          12,
          7,
          21,
          31,
          16
        ],
        [
          13,
          39,
          38,
          32,
          15,
          36,
          26,
          3,
          9,
          8
        ],
        [
          14
        ],
        [
          2,
          37,
          18,
          24,
          22,
          19,
          23,
          35,
          33
        ],
        [
          25,
          4,
          30,
          29,
          10,
          6,
          27
        ],
        [
          28,
          11,
          17,
          5,
          20,
          34
        ]
      ],
      "visited_customers": 38,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "8e3e35d919a95f7f5ca4d8de997ed889fc20d2c2174e95c693e8fbbad8a76646",
      "search_exhausted": false,
      "evaluated_moves": 117639,
      "accepted_improvements": 10,
      "runtime_median_ms": 255.74,
      "runtime_p95_ms": 257.142,
      "runtime_samples_ms": [
        254.971,
        256.732,
        256.254,
        256.92,
        257.142,
        255.74,
        255.222,
        254.933,
        255.128,
        255.875
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1001.431,
          "runtime_p95_ms": 1001.876
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 2.76775,
          "feasible_only_mean_gap_percent": 2.76775,
          "median_gap_percent": 2.76775,
          "best_gap_percent": 2.76775,
          "worst_gap_percent": 2.76775,
          "runtime_median_ms": 1000.384,
          "runtime_p95_ms": 1000.651
        }
      }
    },
    {
      "instance": "A-n44-k6",
      "source_id": 15,
      "customers": 43,
      "vehicle_limit": 6,
      "capacity": 100,
      "published_optimum": 937,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 937,
      "official_route_loads": [
        97,
        88,
        93,
        100,
        100,
        92
      ],
      "instance_sha256": "4303b6c5ad8c5f09901808bd72e7e8920cc81e4b1f725900cf9a63e0bfbb0bec",
      "official_solution_sha256": "6db1a90fb265bbd57a543c51332b6ee80a90163dcb0501a7b864cf2f9e6932ba",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 992,
      "optimality_gap_percent": 5.869797,
      "route_count": 6,
      "route_loads": [
        99,
        83,
        100,
        90,
        100,
        98
      ],
      "routes": [
        [
          12,
          17,
          21,
          19,
          36,
          2,
          31
        ],
        [
          15,
          42,
          3,
          32,
          9
        ],
        [
          16,
          25,
          34,
          6,
          22,
          33,
          43,
          38,
          11,
          27
        ],
        [
          18,
          40,
          13,
          4,
          26,
          7,
          23
        ],
        [
          24,
          41,
          30,
          44,
          14,
          39,
          10,
          37
        ],
        [
          5,
          35,
          20,
          28,
          29,
          8
        ]
      ],
      "visited_customers": 43,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "add729313057d5ae0a077febbe17c5629ae26c1fb3f9908b3e37181ecfdc0e3b",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 19,
      "runtime_median_ms": 449.741,
      "runtime_p95_ms": 497.298,
      "runtime_samples_ms": [
        467.034,
        451.725,
        449.206,
        452.159,
        452.04,
        449.322,
        448.837,
        497.298,
        448.981,
        449.741
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1001.822,
          "runtime_p95_ms": 1002.542
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 3.201708,
          "feasible_only_mean_gap_percent": 3.201708,
          "median_gap_percent": 3.201708,
          "best_gap_percent": 3.201708,
          "worst_gap_percent": 3.201708,
          "runtime_median_ms": 1000.424,
          "runtime_p95_ms": 1000.561
        }
      }
    },
    {
      "instance": "A-n45-k6",
      "source_id": 16,
      "customers": 44,
      "vehicle_limit": 6,
      "capacity": 100,
      "published_optimum": 944,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 944,
      "official_route_loads": [
        100,
        99,
        98,
        100,
        98,
        98
      ],
      "instance_sha256": "b3e7a3290b732e2140aa180b0b8a83b4dcccc6297045af270c50f62edcb15f31",
      "official_solution_sha256": "9096a70bad3a523db0cff59911eeae3e961d76fa9ccc4580bf939c1756a6c958",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1273,
      "optimality_gap_percent": 34.851695,
      "route_count": 6,
      "route_loads": [
        100,
        100,
        100,
        99,
        96,
        98
      ],
      "routes": [
        [
          10,
          23,
          21,
          19,
          35,
          38
        ],
        [
          12,
          20,
          41,
          18,
          5,
          43,
          37,
          40,
          13
        ],
        [
          17,
          4,
          11,
          9,
          42,
          34,
          22,
          6,
          31
        ],
        [
          24,
          29,
          2,
          36,
          15,
          39
        ],
        [
          3,
          26,
          16,
          8,
          30,
          27,
          7,
          45
        ],
        [
          32,
          25,
          28,
          44,
          14,
          33
        ]
      ],
      "visited_customers": 44,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "5d84c75c09a06277211e714b42e67db236150d27da49a471510bad6321b67a64",
      "search_exhausted": false,
      "evaluated_moves": 115852,
      "accepted_improvements": 10,
      "runtime_median_ms": 315.93,
      "runtime_p95_ms": 321.229,
      "runtime_samples_ms": [
        314.51,
        316.028,
        316.401,
        321.229,
        316.247,
        316.89,
        315.93,
        314.788,
        314.455,
        314.336
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0.084746,
          "feasible_only_mean_gap_percent": 0.084746,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0.423729,
          "runtime_median_ms": 1001.803,
          "runtime_p95_ms": 1002.567
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 11.864407,
          "feasible_only_mean_gap_percent": 11.864407,
          "median_gap_percent": 11.864407,
          "best_gap_percent": 11.864407,
          "worst_gap_percent": 11.864407,
          "runtime_median_ms": 1000.411,
          "runtime_p95_ms": 1000.908
        }
      }
    },
    {
      "instance": "A-n45-k7",
      "source_id": 17,
      "customers": 44,
      "vehicle_limit": 7,
      "capacity": 100,
      "published_optimum": 1146,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 1146,
      "official_route_loads": [
        99,
        99,
        56,
        93,
        98,
        96,
        93
      ],
      "instance_sha256": "ab22ac5adcd03923127d41c394fd32971ecae0a7d6854c148bfb430dc1b462de",
      "official_solution_sha256": "0cc5673c67a1cb47d4b886b827ef4f5912970d5797e723b0f5f4b9700ac5450b",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1197,
      "optimality_gap_percent": 4.450262,
      "route_count": 7,
      "route_loads": [
        100,
        64,
        97,
        100,
        77,
        99,
        97
      ],
      "routes": [
        [
          10,
          15,
          25,
          29,
          7,
          5,
          27
        ],
        [
          13,
          3,
          35,
          36,
          40
        ],
        [
          23,
          11,
          26,
          24,
          18,
          39
        ],
        [
          32,
          20,
          37,
          30,
          42,
          44
        ],
        [
          33,
          14,
          19,
          8,
          17,
          21,
          41
        ],
        [
          4,
          12,
          28,
          34,
          45
        ],
        [
          22,
          6,
          31,
          38,
          2,
          43,
          16,
          9
        ]
      ],
      "visited_customers": 44,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "7590119f30de39f6e9901d5c6f816addca11989a448b0f7dcc51d63a5c4134a5",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 13,
      "runtime_median_ms": 403.781,
      "runtime_p95_ms": 420.616,
      "runtime_samples_ms": [
        403.781,
        420.616,
        407.86,
        405.737,
        404.658,
        404.482,
        403.444,
        403.322,
        402.911,
        402.401
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1002.231,
          "runtime_p95_ms": 1003.087
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 1.13438,
          "feasible_only_mean_gap_percent": 1.13438,
          "median_gap_percent": 1.13438,
          "best_gap_percent": 1.13438,
          "worst_gap_percent": 1.13438,
          "runtime_median_ms": 1000.431,
          "runtime_p95_ms": 1000.51
        }
      }
    },
    {
      "instance": "A-n46-k7",
      "source_id": 18,
      "customers": 45,
      "vehicle_limit": 7,
      "capacity": 100,
      "published_optimum": 914,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 914,
      "official_route_loads": [
        18,
        95,
        99,
        100,
        100,
        91,
        100
      ],
      "instance_sha256": "843d960f050ed93387dad6ead572f647a631ea90f1dc15879740c98ed7211060",
      "official_solution_sha256": "c644f383642406ee5d939be751bb14a242a1ae5e831d738150fb467e7ef6d8a1",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 922,
      "optimality_gap_percent": 0.875274,
      "route_count": 7,
      "route_loads": [
        29,
        93,
        99,
        99,
        100,
        85,
        98
      ],
      "routes": [
        [
          10,
          18
        ],
        [
          12,
          36,
          19,
          26,
          45,
          11,
          4,
          6
        ],
        [
          15,
          14,
          27,
          44,
          7,
          46,
          24
        ],
        [
          20,
          16,
          25,
          17,
          43,
          34,
          9
        ],
        [
          22,
          30,
          32,
          35,
          41,
          2,
          28,
          21,
          42,
          29
        ],
        [
          5,
          31,
          3,
          38,
          39
        ],
        [
          37,
          40,
          13,
          8,
          23,
          33
        ]
      ],
      "visited_customers": 45,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "fcf1214d4a4e8b5ee2c4246f465beb7ea44bb3b9ae84cccf09fa1e286828cf85",
      "search_exhausted": true,
      "evaluated_moves": 200001,
      "accepted_improvements": 8,
      "runtime_median_ms": 393.647,
      "runtime_p95_ms": 411.234,
      "runtime_samples_ms": [
        411.234,
        399.835,
        395.358,
        395.362,
        393.076,
        393.647,
        394.135,
        393.429,
        392.631,
        392.98
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1001.878,
          "runtime_p95_ms": 1002.973
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 6.017505,
          "feasible_only_mean_gap_percent": 6.017505,
          "median_gap_percent": 6.017505,
          "best_gap_percent": 6.017505,
          "worst_gap_percent": 6.017505,
          "runtime_median_ms": 1000.463,
          "runtime_p95_ms": 1000.615
        }
      }
    },
    {
      "instance": "A-n48-k7",
      "source_id": 19,
      "customers": 47,
      "vehicle_limit": 7,
      "capacity": 100,
      "published_optimum": 1073,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 1073,
      "official_route_loads": [
        99,
        98,
        99,
        96,
        43,
        100,
        91
      ],
      "instance_sha256": "0457ce2d3921efb0e55b248517df2b77c061474fe120b9a07b382cc3a884845c",
      "official_solution_sha256": "661767bf580478067aa5547b84e835f443a0cedf1577eb2359d578e641fa9579",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1097,
      "optimality_gap_percent": 2.236719,
      "route_count": 7,
      "route_loads": [
        98,
        80,
        61,
        100,
        94,
        97,
        96
      ],
      "routes": [
        [
          13,
          32,
          6,
          2,
          7,
          45
        ],
        [
          15,
          18,
          17,
          48,
          42
        ],
        [
          19,
          36,
          44,
          24
        ],
        [
          28,
          16,
          9,
          40,
          27,
          21,
          4,
          8
        ],
        [
          3,
          11,
          34,
          29,
          46,
          41
        ],
        [
          30,
          22,
          31,
          47,
          14,
          25,
          5,
          12,
          43,
          10,
          35
        ],
        [
          37,
          38,
          20,
          26,
          39,
          23,
          33
        ]
      ],
      "visited_customers": 47,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "a70482472d160d46443d937b255b51718c6cf6e966270f3e388c0a567189f872",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 12,
      "runtime_median_ms": 442.846,
      "runtime_p95_ms": 446.548,
      "runtime_samples_ms": [
        446.014,
        446.497,
        444.364,
        442.846,
        442.659,
        442.705,
        442.809,
        442.954,
        442.274,
        446.548
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1002.646,
          "runtime_p95_ms": 1002.962
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 8.294501,
          "feasible_only_mean_gap_percent": 8.294501,
          "median_gap_percent": 8.294501,
          "best_gap_percent": 8.294501,
          "worst_gap_percent": 8.294501,
          "runtime_median_ms": 1000.447,
          "runtime_p95_ms": 1000.951
        }
      }
    },
    {
      "instance": "A-n53-k7",
      "source_id": 20,
      "customers": 52,
      "vehicle_limit": 7,
      "capacity": 100,
      "published_optimum": 1010,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 1010,
      "official_route_loads": [
        100,
        98,
        100,
        97,
        73,
        100,
        96
      ],
      "instance_sha256": "7a22295b926b50f54ecca7da21924b942ef60949f7707b071936c7cdf3d9006c",
      "official_solution_sha256": "c6111158c9a57f5d95c31c8e0f0ceeb708d8fdfff4d08842ae7748aac22a0f76",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1248,
      "optimality_gap_percent": 23.564356,
      "route_count": 7,
      "route_loads": [
        95,
        97,
        94,
        100,
        79,
        100,
        99
      ],
      "routes": [
        [
          10,
          48,
          29,
          47,
          9,
          52
        ],
        [
          2,
          45,
          37,
          51,
          44,
          43,
          24,
          20,
          16,
          33,
          17,
          8,
          5
        ],
        [
          21,
          7,
          34,
          4,
          6
        ],
        [
          23,
          38,
          13,
          18,
          22,
          15,
          40
        ],
        [
          32,
          36,
          39,
          19,
          28
        ],
        [
          41,
          27,
          11,
          30,
          50,
          46,
          42,
          14,
          26
        ],
        [
          31,
          3,
          49,
          25,
          12,
          53,
          35
        ]
      ],
      "visited_customers": 52,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "a7ccaf816814674a6348606a66b9d81aeaf0922cc6cd967d24ba8d6f8a929bf7",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 14,
      "runtime_median_ms": 584.978,
      "runtime_p95_ms": 632.033,
      "runtime_samples_ms": [
        585.029,
        584.681,
        584.871,
        632.033,
        584.134,
        589.181,
        588.735,
        584.606,
        585.05,
        584.978
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1002.568,
          "runtime_p95_ms": 1003.307
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 6.435644,
          "feasible_only_mean_gap_percent": 6.435644,
          "median_gap_percent": 6.435644,
          "best_gap_percent": 6.435644,
          "worst_gap_percent": 6.435644,
          "runtime_median_ms": 1000.461,
          "runtime_p95_ms": 1000.519
        }
      }
    },
    {
      "instance": "A-n54-k7",
      "source_id": 21,
      "customers": 53,
      "vehicle_limit": 7,
      "capacity": 100,
      "published_optimum": 1167,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 1167,
      "official_route_loads": [
        98,
        97,
        99,
        98,
        95,
        95,
        87
      ],
      "instance_sha256": "a85afa8f15544b168ce3413d759a5c4f5fbfef5e1f7ea0972839c2761c958438",
      "official_solution_sha256": "014e861aaca7fc1637856da3dd68b86782865d23599ad437377bd6ae043fd371",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1172,
      "optimality_gap_percent": 0.428449,
      "route_count": 7,
      "route_loads": [
        96,
        98,
        89,
        99,
        97,
        95,
        95
      ],
      "routes": [
        [
          12,
          39,
          10,
          34,
          22,
          46,
          27,
          16,
          36
        ],
        [
          14,
          23,
          4,
          54,
          45
        ],
        [
          17,
          33,
          15,
          3,
          28,
          7
        ],
        [
          13,
          38,
          49,
          41,
          32,
          9,
          20
        ],
        [
          30,
          11,
          18,
          2,
          37,
          50,
          21,
          24
        ],
        [
          31,
          26,
          48,
          52,
          25,
          43,
          47,
          42,
          35,
          53
        ],
        [
          44,
          5,
          29,
          8,
          40,
          51,
          6,
          19
        ]
      ],
      "visited_customers": 53,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "60a0a515eb12f596f0635c567ed43ffdd9c3043514aae3bee89b6ab9da6e3b41",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 13,
      "runtime_median_ms": 554.686,
      "runtime_p95_ms": 559.682,
      "runtime_samples_ms": [
        555.21,
        559.682,
        558.098,
        554.375,
        554.295,
        553.906,
        554.686,
        554.317,
        558.274,
        559.124
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0.008569,
          "feasible_only_mean_gap_percent": 0.008569,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0.08569,
          "runtime_median_ms": 1002.737,
          "runtime_p95_ms": 1003.758
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 5.227078,
          "feasible_only_mean_gap_percent": 5.227078,
          "median_gap_percent": 5.227078,
          "best_gap_percent": 5.227078,
          "worst_gap_percent": 5.227078,
          "runtime_median_ms": 1000.46,
          "runtime_p95_ms": 1000.533
        }
      }
    },
    {
      "instance": "A-n55-k9",
      "source_id": 22,
      "customers": 54,
      "vehicle_limit": 9,
      "capacity": 100,
      "published_optimum": 1073,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 1073,
      "official_route_loads": [
        100,
        100,
        98,
        99,
        50,
        95,
        100,
        98,
        99
      ],
      "instance_sha256": "0ec4706e6efb69217bc11ea4942edd12626f4c41bd6e6b0227aff1035c8f6eda",
      "official_solution_sha256": "4a07706e98cb8ac0a9335775a119f9ac613ab17d4479b709a1584fa3a2c45cf0",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1104,
      "optimality_gap_percent": 2.889096,
      "route_count": 9,
      "route_loads": [
        100,
        98,
        86,
        97,
        100,
        68,
        97,
        99,
        94
      ],
      "routes": [
        [
          13,
          11,
          6,
          54,
          41,
          17,
          39,
          33
        ],
        [
          14,
          55,
          24,
          53,
          25,
          45,
          49
        ],
        [
          15,
          47,
          21,
          27,
          32,
          43
        ],
        [
          18,
          3,
          52,
          12,
          16,
          9
        ],
        [
          22,
          34,
          35,
          4,
          38,
          37
        ],
        [
          26,
          42,
          5,
          8
        ],
        [
          30,
          19,
          29,
          20,
          28,
          23,
          31
        ],
        [
          44,
          36,
          10,
          50,
          40,
          48
        ],
        [
          51,
          2,
          46,
          7
        ]
      ],
      "visited_customers": 54,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "dbf54a7d8061a5fae6a147337c299e9757aa7669fc15cd50be52e67f4d943bae",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 11,
      "runtime_median_ms": 527.338,
      "runtime_p95_ms": 531.131,
      "runtime_samples_ms": [
        527.055,
        526.72,
        526.828,
        527.405,
        530.758,
        531.131,
        529.001,
        527.591,
        526.636,
        527.338
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0,
          "feasible_only_mean_gap_percent": 0,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0,
          "runtime_median_ms": 1002.531,
          "runtime_p95_ms": 1003.244
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 5.219012,
          "feasible_only_mean_gap_percent": 5.219012,
          "median_gap_percent": 5.219012,
          "best_gap_percent": 5.219012,
          "worst_gap_percent": 5.219012,
          "runtime_median_ms": 1000.518,
          "runtime_p95_ms": 1000.606
        }
      }
    },
    {
      "instance": "A-n60-k9",
      "source_id": 23,
      "customers": 59,
      "vehicle_limit": 9,
      "capacity": 100,
      "published_optimum": 1354,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 1354,
      "official_route_loads": [
        100,
        100,
        100,
        94,
        95,
        68,
        84,
        91,
        97
      ],
      "instance_sha256": "d60d067db572ee49d265be1f01f5f03b88bb8fb543308d96de1b913408a67de7",
      "official_solution_sha256": "4211e1e8b7cad6ab4df3c87cb2c9a0c15714a083d9c7cc25e129967c5c7e2e14",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1378,
      "optimality_gap_percent": 1.772526,
      "route_count": 9,
      "route_loads": [
        84,
        92,
        99,
        98,
        95,
        72,
        96,
        100,
        93
      ],
      "routes": [
        [
          17,
          21,
          4,
          12,
          5,
          22,
          41,
          47,
          26
        ],
        [
          19,
          20,
          9,
          14,
          8,
          60
        ],
        [
          3,
          37,
          11,
          55,
          6,
          23,
          49
        ],
        [
          33,
          10,
          52,
          13,
          57,
          44,
          36
        ],
        [
          32,
          54,
          31,
          50,
          45,
          29,
          7
        ],
        [
          42,
          34,
          39,
          53,
          15
        ],
        [
          48,
          24,
          51,
          40,
          25,
          35
        ],
        [
          56,
          16,
          27,
          28,
          18,
          38,
          58,
          30
        ],
        [
          59,
          43,
          46,
          2
        ]
      ],
      "visited_customers": 59,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "7ae806a021bbddc553067ca0a9c2577ffe34de604d0259a7df6dc56985cd1109",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 10,
      "runtime_median_ms": 615.325,
      "runtime_p95_ms": 619.414,
      "runtime_samples_ms": [
        617.267,
        619.414,
        615.684,
        614.458,
        614.61,
        614.592,
        615.325,
        617.877,
        618.808,
        614.42
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0.036928,
          "feasible_only_mean_gap_percent": 0.036928,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0.295421,
          "runtime_median_ms": 1002.909,
          "runtime_p95_ms": 1003.43
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 6.129985,
          "feasible_only_mean_gap_percent": 6.129985,
          "median_gap_percent": 6.129985,
          "best_gap_percent": 6.129985,
          "worst_gap_percent": 6.129985,
          "runtime_median_ms": 1000.533,
          "runtime_p95_ms": 1001.311
        }
      }
    },
    {
      "instance": "A-n61-k9",
      "source_id": 24,
      "customers": 60,
      "vehicle_limit": 9,
      "capacity": 100,
      "published_optimum": 1034,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 1034,
      "official_route_loads": [
        91,
        100,
        99,
        100,
        98,
        100,
        100,
        99,
        98
      ],
      "instance_sha256": "210b68819f2f8b1a525b5415fa3559f3d23b90e119ef79a2f16d638f9ad884ab",
      "official_solution_sha256": "d00e19a9407b9522ee0a6e893531df80a79fd8e86d2fdddc6dc41f07d70f92f9",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1125,
      "optimality_gap_percent": 8.800774,
      "route_count": 9,
      "route_loads": [
        98,
        100,
        100,
        100,
        100,
        99,
        91,
        100,
        97
      ],
      "routes": [
        [
          15,
          24,
          8,
          20,
          41,
          26
        ],
        [
          10,
          45,
          12,
          29,
          18,
          14,
          51,
          56
        ],
        [
          34,
          43,
          33,
          44,
          27,
          5,
          23,
          13
        ],
        [
          16,
          4,
          11,
          60,
          3,
          50,
          25
        ],
        [
          59,
          57,
          48,
          36,
          19,
          49,
          17,
          35
        ],
        [
          40,
          58,
          53,
          32,
          61,
          2,
          52
        ],
        [
          39,
          31
        ],
        [
          21,
          7,
          42,
          54,
          9,
          6
        ],
        [
          28,
          22,
          30,
          37,
          55,
          47,
          46,
          38
        ]
      ],
      "visited_customers": 60,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "5575e55fcd822ae6436ef39e1c2c3c6e3cae5486b63274ddc863d00b8a26a386",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 10,
      "runtime_median_ms": 672.108,
      "runtime_p95_ms": 676.631,
      "runtime_samples_ms": [
        672.108,
        671.488,
        675.157,
        675.872,
        671.661,
        671.874,
        672.112,
        671.49,
        675.561,
        676.631
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0.048356,
          "feasible_only_mean_gap_percent": 0.048356,
          "median_gap_percent": 0,
          "best_gap_percent": 0,
          "worst_gap_percent": 0.096712,
          "runtime_median_ms": 1002.858,
          "runtime_p95_ms": 1005.078
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 0,
          "invalid_runs": 0,
          "timeout_runs": 10,
          "gap_statistics_population": "unavailable_due_to_timeout",
          "mean_gap_percent": null,
          "feasible_only_mean_gap_percent": null,
          "median_gap_percent": null,
          "best_gap_percent": null,
          "worst_gap_percent": null,
          "runtime_median_ms": 1000.582,
          "runtime_p95_ms": 1000.635
        }
      }
    },
    {
      "instance": "A-n62-k8",
      "source_id": 25,
      "customers": 61,
      "vehicle_limit": 8,
      "capacity": 100,
      "published_optimum": 1288,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 1288,
      "official_route_loads": [
        100,
        99,
        99,
        40,
        96,
        100,
        99,
        100
      ],
      "instance_sha256": "06c2ee55bb37e610d7772e93c1d92e0679f6baca5b878469a954d8da3eb803d5",
      "official_solution_sha256": "9135d2f95db6a77d99b5c5af922476360df487a97781e84be66f2332578a19db",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1362,
      "optimality_gap_percent": 5.745342,
      "route_count": 8,
      "route_loads": [
        96,
        92,
        76,
        98,
        100,
        100,
        75,
        96
      ],
      "routes": [
        [
          15,
          61,
          6,
          19,
          31,
          2,
          47,
          46,
          45,
          23
        ],
        [
          17,
          38,
          3,
          20,
          39,
          14,
          13,
          29
        ],
        [
          21,
          41,
          58,
          33,
          7,
          62
        ],
        [
          51,
          18,
          59,
          34,
          27,
          56,
          60,
          35
        ],
        [
          48,
          4,
          43,
          55,
          10,
          12,
          50
        ],
        [
          32,
          26,
          36,
          5,
          22,
          42,
          24,
          28,
          40,
          25
        ],
        [
          8,
          30,
          44,
          9,
          11,
          52
        ],
        [
          37,
          53,
          54,
          49,
          57,
          16
        ]
      ],
      "visited_customers": 61,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "1ca98b0f72e2cbc1fc73a2cb3d1f6df398293193d8b3afbce3ed25b418d69480",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 8,
      "runtime_median_ms": 630.833,
      "runtime_p95_ms": 634.2,
      "runtime_samples_ms": [
        631.049,
        630.833,
        630.08,
        632.278,
        634.2,
        631.67,
        630.647,
        630.826,
        630.175,
        631.108
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0.209628,
          "feasible_only_mean_gap_percent": 0.209628,
          "median_gap_percent": 0.15528,
          "best_gap_percent": 0.15528,
          "worst_gap_percent": 0.621118,
          "runtime_median_ms": 1003.214,
          "runtime_p95_ms": 1003.872
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 2.950311,
          "feasible_only_mean_gap_percent": 2.950311,
          "median_gap_percent": 2.950311,
          "best_gap_percent": 2.950311,
          "worst_gap_percent": 2.950311,
          "runtime_median_ms": 1000.492,
          "runtime_p95_ms": 1000.536
        }
      }
    },
    {
      "instance": "A-n63-k9",
      "source_id": 26,
      "customers": 62,
      "vehicle_limit": 9,
      "capacity": 100,
      "published_optimum": 1616,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 1616,
      "official_route_loads": [
        95,
        87,
        100,
        100,
        99,
        98,
        97,
        100,
        97
      ],
      "instance_sha256": "4bb0410d5e0cee22f9a0af7854b1e09652314e75acb48703250b33277b0a7033",
      "official_solution_sha256": "aa30a68a712e25aee234bb80c9b4df0b3bb0c38670cf9d4b443c94a4c2496f87",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1758,
      "optimality_gap_percent": 8.787129,
      "route_count": 9,
      "route_loads": [
        96,
        85,
        100,
        100,
        99,
        100,
        100,
        97,
        96
      ],
      "routes": [
        [
          12,
          34,
          16,
          57,
          20,
          27
        ],
        [
          21,
          26,
          61,
          62,
          17,
          8
        ],
        [
          13,
          29,
          36,
          23,
          54,
          45
        ],
        [
          3,
          28,
          46,
          6,
          31,
          30,
          55
        ],
        [
          11,
          7,
          18,
          33,
          59,
          15,
          41,
          56,
          22
        ],
        [
          40,
          24,
          48,
          58,
          52,
          51,
          38
        ],
        [
          49,
          37,
          25,
          60,
          9
        ],
        [
          5,
          32,
          10,
          42,
          4,
          50,
          35
        ],
        [
          53,
          63,
          44,
          47,
          19,
          2,
          39,
          43,
          14
        ]
      ],
      "visited_customers": 62,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "5f88b45083447141ebd39584f02315f20c8165f41f022c289b4e4bc656ddd8c9",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 10,
      "runtime_median_ms": 707.655,
      "runtime_p95_ms": 712.906,
      "runtime_samples_ms": [
        708.407,
        707.705,
        706.476,
        707.452,
        710.697,
        712.906,
        707.874,
        707.108,
        707.641,
        707.655
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0.495049,
          "feasible_only_mean_gap_percent": 0.495049,
          "median_gap_percent": 0.680693,
          "best_gap_percent": 0,
          "worst_gap_percent": 0.804455,
          "runtime_median_ms": 1002.893,
          "runtime_p95_ms": 1005.15
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 7.549505,
          "feasible_only_mean_gap_percent": 7.549505,
          "median_gap_percent": 7.549505,
          "best_gap_percent": 7.549505,
          "worst_gap_percent": 7.549505,
          "runtime_median_ms": 1000.507,
          "runtime_p95_ms": 1000.579
        }
      }
    },
    {
      "instance": "A-n63-k10",
      "source_id": 27,
      "customers": 62,
      "vehicle_limit": 10,
      "capacity": 100,
      "published_optimum": 1314,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 1314,
      "official_route_loads": [
        97,
        99,
        96,
        71,
        99,
        100,
        96,
        100,
        100,
        74
      ],
      "instance_sha256": "d837c6c264249b2c1bf643cdb113785bf3b0e6eb9596539d1cb705454a61724b",
      "official_solution_sha256": "6912213df0e0246da58911bd9c13ad300b4b77be3ffa393b1aa1fe74ab3d2032",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1341,
      "optimality_gap_percent": 2.054795,
      "route_count": 10,
      "route_loads": [
        83,
        81,
        96,
        100,
        98,
        91,
        95,
        90,
        98,
        100
      ],
      "routes": [
        [
          18,
          57,
          16,
          26
        ],
        [
          19,
          6,
          4,
          43,
          20,
          11,
          60
        ],
        [
          21,
          29,
          14,
          27,
          5,
          39
        ],
        [
          22,
          47,
          61,
          55
        ],
        [
          30,
          36,
          7,
          28,
          9,
          38
        ],
        [
          50,
          54,
          17,
          62,
          24,
          25
        ],
        [
          8,
          34,
          56,
          23,
          59,
          52
        ],
        [
          49,
          37,
          31,
          44,
          53
        ],
        [
          32,
          45,
          48,
          12,
          35,
          33,
          58,
          51,
          63
        ],
        [
          46,
          40,
          2,
          42,
          10,
          13,
          3,
          15,
          41
        ]
      ],
      "visited_customers": 62,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "d60e42f6617d77f3d2ce89ca35d3da17ddad5875c04aa12b8eb50c7e7c2de808",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 10,
      "runtime_median_ms": 660.865,
      "runtime_p95_ms": 668.601,
      "runtime_samples_ms": [
        662.237,
        659.877,
        659.429,
        659.361,
        658.592,
        662.868,
        668.601,
        661.992,
        660.865,
        662.063
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0.357687,
          "feasible_only_mean_gap_percent": 0.357687,
          "median_gap_percent": 0.380518,
          "best_gap_percent": 0.076104,
          "worst_gap_percent": 0.456621,
          "runtime_median_ms": 1003.841,
          "runtime_p95_ms": 1004.331
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 7.077626,
          "feasible_only_mean_gap_percent": 7.077626,
          "median_gap_percent": 7.077626,
          "best_gap_percent": 7.077626,
          "worst_gap_percent": 7.077626,
          "runtime_median_ms": 1000.536,
          "runtime_p95_ms": 1001.373
        }
      }
    },
    {
      "instance": "A-n64-k9",
      "source_id": 28,
      "customers": 63,
      "vehicle_limit": 9,
      "capacity": 100,
      "published_optimum": 1401,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 1401,
      "official_route_loads": [
        99,
        56,
        100,
        99,
        98,
        100,
        97,
        99,
        100
      ],
      "instance_sha256": "1d690e428ea2de12f5996cf1e84aaa0508ec9977dfdb3d0c106e9006e9cc5124",
      "official_solution_sha256": "28f689c79aaa0b9aed18b4b63aa9ed41cc6aa62fa23e58dcbed9d02b54e27759",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1446,
      "optimality_gap_percent": 3.211991,
      "route_count": 9,
      "route_loads": [
        100,
        96,
        97,
        99,
        97,
        99,
        100,
        98,
        62
      ],
      "routes": [
        [
          10,
          38,
          60,
          32,
          51,
          37,
          41,
          40,
          45,
          8,
          22,
          27,
          36,
          2
        ],
        [
          11,
          43,
          20,
          52,
          21,
          46
        ],
        [
          12,
          31,
          50,
          56,
          5,
          35,
          24
        ],
        [
          13,
          44,
          29,
          15,
          28,
          18,
          58
        ],
        [
          19,
          23,
          39,
          30,
          26
        ],
        [
          33,
          9,
          17,
          61,
          25,
          62,
          14,
          53,
          57,
          42
        ],
        [
          47,
          48,
          64,
          3,
          59,
          55,
          6
        ],
        [
          63,
          4,
          54,
          16
        ],
        [
          34,
          49,
          7
        ]
      ],
      "visited_customers": 63,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "d57fff21ce1d08c2065dc75b815a7cfb513c420ba90151fbdbf2c8b31dacebb8",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 9,
      "runtime_median_ms": 699.337,
      "runtime_p95_ms": 747.359,
      "runtime_samples_ms": [
        702.324,
        747.359,
        698.041,
        699.338,
        698.029,
        698.947,
        704.769,
        700.707,
        697.893,
        699.337
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0.89222,
          "feasible_only_mean_gap_percent": 0.89222,
          "median_gap_percent": 0.927909,
          "best_gap_percent": 0.356888,
          "worst_gap_percent": 1.142041,
          "runtime_median_ms": 1003.476,
          "runtime_p95_ms": 1003.818
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 2.426838,
          "feasible_only_mean_gap_percent": 2.426838,
          "median_gap_percent": 2.426838,
          "best_gap_percent": 2.426838,
          "worst_gap_percent": 2.426838,
          "runtime_median_ms": 1000.513,
          "runtime_p95_ms": 1000.582
        }
      }
    },
    {
      "instance": "A-n65-k9",
      "source_id": 29,
      "customers": 64,
      "vehicle_limit": 9,
      "capacity": 100,
      "published_optimum": 1174,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 1174,
      "official_route_loads": [
        85,
        99,
        98,
        98,
        100,
        100,
        100,
        100,
        97
      ],
      "instance_sha256": "2f2768011d0dc41fb912ad3d4a8c34678334607bf0263cf4cd20b6c1b4ab4cd6",
      "official_solution_sha256": "aa28a75ac5996fb73ee9bf2610130649ad55188b76212a644a4ec83d487ca00e",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1262,
      "optimality_gap_percent": 7.495741,
      "route_count": 9,
      "route_loads": [
        98,
        99,
        97,
        100,
        96,
        97,
        94,
        99,
        97
      ],
      "routes": [
        [
          12,
          64,
          55,
          49,
          58,
          24,
          2,
          34
        ],
        [
          13,
          14,
          25,
          53,
          11,
          9,
          26
        ],
        [
          18,
          48,
          35,
          7,
          65,
          47
        ],
        [
          27,
          32,
          10,
          23,
          16,
          28,
          50
        ],
        [
          44,
          56,
          30,
          29,
          8,
          40,
          52
        ],
        [
          5,
          31,
          38,
          36,
          37,
          4,
          15
        ],
        [
          6,
          33,
          21,
          59,
          41,
          54
        ],
        [
          61,
          51,
          17,
          42,
          3,
          39,
          43,
          62,
          46
        ],
        [
          22,
          45,
          57,
          60,
          20,
          19,
          63
        ]
      ],
      "visited_customers": 64,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "616ca4b93f58c3a8f8eeac12b2b2551d92fede8fea9316cc8fd4d86cfdc342cc",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 9,
      "runtime_median_ms": 661.685,
      "runtime_p95_ms": 665.845,
      "runtime_samples_ms": [
        662.832,
        665.489,
        661.828,
        661.631,
        659.874,
        661.685,
        665.198,
        665.845,
        661.227,
        660.946
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0.187394,
          "feasible_only_mean_gap_percent": 0.187394,
          "median_gap_percent": 0.255537,
          "best_gap_percent": 0,
          "worst_gap_percent": 0.340716,
          "runtime_median_ms": 1003.58,
          "runtime_p95_ms": 1004.482
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 3.747871,
          "feasible_only_mean_gap_percent": 3.747871,
          "median_gap_percent": 3.747871,
          "best_gap_percent": 3.747871,
          "worst_gap_percent": 3.747871,
          "runtime_median_ms": 1000.541,
          "runtime_p95_ms": 1000.603
        }
      }
    },
    {
      "instance": "A-n69-k9",
      "source_id": 30,
      "customers": 68,
      "vehicle_limit": 9,
      "capacity": 100,
      "published_optimum": 1159,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 1159,
      "official_route_loads": [
        94,
        96,
        69,
        100,
        97,
        91,
        99,
        99,
        100
      ],
      "instance_sha256": "7b9bd50d901639c15a9f4ff1cf38ccef7a5bf050697b4e6796ff07bc95920c64",
      "official_solution_sha256": "f97cad8f6c747633e1ea9360db4709b026440692085842d81851d2d0bf4a3678",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1181,
      "optimality_gap_percent": 1.898188,
      "route_count": 9,
      "route_loads": [
        97,
        98,
        88,
        97,
        92,
        86,
        99,
        97,
        91
      ],
      "routes": [
        [
          45,
          16,
          4,
          7,
          52,
          31,
          10,
          50,
          34,
          3,
          54
        ],
        [
          14,
          36,
          46,
          21,
          42,
          60,
          9,
          40,
          41
        ],
        [
          17,
          51,
          6,
          47,
          64,
          12,
          26,
          15
        ],
        [
          55,
          38,
          18,
          33,
          11,
          37,
          2,
          49
        ],
        [
          35,
          48,
          5,
          61,
          56,
          66,
          28
        ],
        [
          8,
          68,
          22,
          62,
          65,
          19,
          32
        ],
        [
          25,
          44,
          53,
          27,
          58,
          43,
          29
        ],
        [
          67,
          69,
          39,
          57,
          63,
          30
        ],
        [
          20,
          24,
          59,
          13,
          23
        ]
      ],
      "visited_customers": 68,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "b029c4df0aff3529636fd4658360cec847aa1af0ff23087d80f81dbb12bebea2",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 8,
      "runtime_median_ms": 784.019,
      "runtime_p95_ms": 798.154,
      "runtime_samples_ms": [
        784.38,
        788.096,
        798.154,
        783.096,
        782.352,
        783.512,
        787.151,
        785.334,
        784.019,
        782.152
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0.310612,
          "feasible_only_mean_gap_percent": 0.310612,
          "median_gap_percent": 0.345125,
          "best_gap_percent": 0,
          "worst_gap_percent": 0.431406,
          "runtime_median_ms": 1003.454,
          "runtime_p95_ms": 1004.349
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 5.867127,
          "feasible_only_mean_gap_percent": 5.867127,
          "median_gap_percent": 5.867127,
          "best_gap_percent": 5.867127,
          "worst_gap_percent": 5.867127,
          "runtime_median_ms": 1000.537,
          "runtime_p95_ms": 1000.882
        }
      }
    },
    {
      "instance": "A-n80-k10",
      "source_id": 31,
      "customers": 79,
      "vehicle_limit": 10,
      "capacity": 100,
      "published_optimum": 1763,
      "optimum_status": "proven",
      "official_solution_recomputed_cost": 1763,
      "official_route_loads": [
        76,
        92,
        93,
        99,
        99,
        98,
        100,
        89,
        97,
        99
      ],
      "instance_sha256": "f74d5d9f8e24245d94cad53ac20892a70b554aa7559f9dfcd962c8f83a68a410",
      "official_solution_sha256": "eb6f41c97e197918753b50b3bd8283bc91a5261486e12c8eb9e0fd87acf498d2",
      "status": "PASS",
      "feasible": true,
      "validator_errors": [],
      "unassigned_count": 0,
      "candidate_cost": 1804,
      "optimality_gap_percent": 2.325581,
      "route_count": 10,
      "route_loads": [
        99,
        98,
        100,
        96,
        98,
        99,
        100,
        98,
        78,
        76
      ],
      "routes": [
        [
          20,
          48,
          57,
          70,
          66,
          36,
          27,
          58,
          62,
          17,
          44,
          69
        ],
        [
          35,
          3,
          38,
          9,
          79,
          21,
          76,
          26,
          47,
          78,
          52
        ],
        [
          39,
          77,
          73,
          55,
          10,
          56,
          34,
          16,
          42,
          65
        ],
        [
          59,
          33,
          5,
          23,
          46,
          51,
          71,
          67
        ],
        [
          6,
          25,
          7,
          31,
          60,
          28,
          32,
          18
        ],
        [
          12,
          53,
          29,
          80,
          19,
          49,
          15
        ],
        [
          13,
          45,
          24,
          63,
          64,
          72,
          11
        ],
        [
          4,
          40,
          61,
          30,
          75,
          14
        ],
        [
          43,
          54,
          68,
          37,
          74,
          50
        ],
        [
          2,
          8,
          22,
          41
        ]
      ],
      "visited_customers": 79,
      "exact_replay_runs": 10,
      "exact_replay_match": true,
      "result_sha256": "b9402aac31a2300449db87ffde4e4d04c666590b39e04700bb1d4686cafe36f4",
      "search_exhausted": true,
      "evaluated_moves": 200000,
      "accepted_improvements": 5,
      "runtime_median_ms": 931.199,
      "runtime_p95_ms": 982.495,
      "runtime_samples_ms": [
        932.344,
        931.199,
        927.677,
        928.012,
        933.041,
        937.868,
        929.019,
        928.793,
        982.495,
        936.351
      ],
      "reference_baselines": {
        "pyvrp": {
          "solver": "pyvrp",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 0.998298,
          "feasible_only_mean_gap_percent": 0.998298,
          "median_gap_percent": 0.907544,
          "best_gap_percent": 0.340329,
          "worst_gap_percent": 1.418037,
          "runtime_median_ms": 1004.253,
          "runtime_p95_ms": 1005.418
        },
        "ortools": {
          "solver": "ortools",
          "verified_runs": 10,
          "feasible_runs": 10,
          "invalid_runs": 0,
          "timeout_runs": 0,
          "gap_statistics_population": "all_measured_runs",
          "mean_gap_percent": 4.93477,
          "feasible_only_mean_gap_percent": 4.93477,
          "median_gap_percent": 4.93477,
          "best_gap_percent": 4.93477,
          "worst_gap_percent": 4.93477,
          "runtime_median_ms": 1000.593,
          "runtime_p95_ms": 1002.185
        }
      }
    }
  ],
  "evidence_sha256": "21f409ae02b14687b307d26acfc59209601464f572835b84503ae5a1abf573c3"
}
