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.
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:
Splits
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
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:
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=1switches 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}
}