CoolFace
Datasetpublic

kosiasuzu/london-cvrptw-dyamaic-optimization-rl

london-dynamic-routing Task dataset for the LondonDynamicRouting OpenReward environment: dynamic, multi-horizon, weather- and traffic-aware vehicle routing on the real London road network. 100 tasks of monotonically increasing difficulty (1..100), partitioned into tutorial (5), train (70), test (25) splits. Format A single tasks.parquet file. Each row is a fully-specified, deterministic episode. The columns match the TaskSpec schema documented in the environment… See the full description on the dataset page: https://huggingface.co/datasets/kosiasuzu/london-cvrptw-dyamaic-optimization-rl.

sourceHugging Faceodblupdated 5mo agoView on Hugging Face
0likes13downloads
Dataset Card

london-dynamic-routing

Task dataset for the LondonDynamicRouting OpenReward environment: dynamic, multi-horizon, weather- and traffic-aware vehicle routing on the real London road network.

100 tasks of monotonically increasing difficulty (1..100), partitioned into tutorial (5), train (70), test (25) splits.

Format

A single tasks.parquet file. Each row is a fully-specified, deterministic episode. The columns match the TaskSpec schema documented in the environment repo. Key columns:

ColumnTypeNotes
idstringlondon-routing-NNN
difficultyint1..100
splitstringtutorial \train \test
episode_datestringISO date used to sample weather
horizon_minutesinttypically 960 (16 h)
tick_minutesintdecision interval, typically 15
depotslist[obj]1–3 garages with lat, lon, node_idx
vehicleslist[obj]heterogeneous fleet, capacities, shifts
requestslist[obj]passenger / parcel, time windows, priority
nodeslist[obj]geocoded London locations
distance_matrix_kmlist[list[float]]N×N OSRM distances
duration_matrix_minlist[list[float]]N×N OSRM durations
weather_timelinelist[obj]hourly precipitation, wind, visibility
traffic_eventslist[obj]edge slowdowns revealed over time
dynamic_eventslist[obj]new requests, breakdowns, capacity drops
or_tools_baseline_costfloatkm driven by OR-Tools baseline
or_tools_baseline_unservedintrequests OR-Tools could not serve
or_tools_baseline_servedintrequests OR-Tools served

Splits

SplitTasksDifficultyPurpose
tutorial51–5Easy, no dynamic events. Smoke tests + demos.
train701–80Bulk RL training. Smooth difficulty ramp.
test2550–100Evaluation. Includes hardest cases.

All tutorial tasks have or_tools_baseline_unserved == 0 — they are guaranteed solvable by the baseline and a strong LLM agent should hit ≥ 50% coverage on at least one.

Loading

python
import pandas as pd
df = pd.read_parquet("tasks.parquet")
print(df["split"].value_counts())
trivial = df[df["id"] == "london-routing-001"].iloc[0].to_dict()

Or via the OpenReward client:

python
from openreward import OpenReward
env = OpenReward().environments.get(name="EnvCommons/LondonDynamicRouting")
tasks = env.list_tasks(split="tutorial")

Determinism

Every random choice in task generation is seeded by the task's id. The same id always produces the same task; the same task always grades identically given the same sequence of actions.

Sources & licensing

  • —Road-network distances/durations: by default the builder uses Haversine × 1.4 at 30 km/h average for fast, rate-limit-free generation. Setting USE_OSRM=1 switches to live OSRM queries over OpenStreetMap (© OpenStreetMap contributors, ODbL); edges that fall back after OSRM failure are flagged "osrm_fallback": true.
  • —Weather: Open-Meteo historical hourly archive.
  • —POIs: 220 unique London locations across zones 1–4, geocoded live via Nominatim over Transport for London open data and OSM tags. No hardcoded fallbacks; see scripts/seed_pois.py.

Released under ODbL to match upstream OpenStreetMap/TfL terms.

Citation

@misc{london-dynamic-routing-2026,
  title = {LondonDynamicRouting: a multi-horizon vehicle-routing
           OpenReward environment},
  author = {Kosi and Daniel and Kayode},
  year = 2026,
  howpublished = {OpenReward EnvCommons hackathon}
}