feat(Robotics): add WarehouseRobotRouting benchmark#97
Conversation
🤖 AI Code Review (gemini-3-flash-preview)🇬🇧 English Analysis1. Executive Summary
2. AI Content Analysis
3. Engineering & Economic Assessment
4. Quality Assurance
5. Security & Privacy Check
🇨🇳 中文分析1. 摘要
2. AI 成分分析
3. 工程与经济评估
4. 质量保证
5. 安全与隐私检查
|
There was a problem hiding this comment.
PR #97 Review: feat(Robotics) - add WarehouseRobotRouting benchmark
Thank you for contributing WarehouseRobotRouting. The overall benchmark is well structured, with the task definition, baseline, reference solver, verification pipeline, and evaluator all in place. The bilingual documentation is also appreciated. Overall, the implementation covers the basic workflow of multi-robot warehouse routing, and the task constraints are clearly defined.
Before merging, I would recommend addressing the following issues related to benchmark consistency and evaluation reliability.
1. Data generation and evaluation are not fully consistent
Currently, generate_instances() in verification/problem.py generates four instances for each seed:
def generate_instances(seed):
instances = []
for index in range(4):
instance = _make_instance(seed, index)
instances.append(instance)
return instancesHowever, the evaluator only uses the first two instances:
INSTANCES_PER_SEED = 2
for index, instance in enumerate(instances[:INSTANCES_PER_SEED]):As a result, the last two generated instances never participate in evaluation. This creates an inconsistency between data generation and the actual evaluation protocol, and may also introduce unnecessary maintenance overhead.
It would be better to keep these two components consistent, for example by generating only the evaluated instances or by evaluating all generated instances.
2. Consider reducing the risk of overfitting to the evaluation set
The evaluation instances are generated from a fixed set of random seeds stored in data/seeds.json, which is available to the agent together with the benchmark.
Since the instance generation process is entirely deterministic given these seeds, an agent could reconstruct all evaluation instances in advance and optimize specifically for this fixed evaluation set rather than solving the underlying routing problem more generally.
It would be worth considering separating evaluation seeds from the publicly accessible benchmark resources. For example, the evaluation seeds could be removed from the agent-accessible files, or hidden seeds could be used during evaluation. This would improve the benchmark's ability to evaluate generalization rather than optimization for a fixed test set.
3. Consider documenting the evaluation design
The current benchmark adopts an offline batch-routing setting, uses total travel distance as the optimization objective, and reports scores through the Frontier log2_baseline_ratio metric.
The cited work by Ma et al. (AAMAS 2017), however, studies online MAPD, where the primary objective is throughput rather than offline distance minimization. Both settings are meaningful, but they correspond to different problem formulations and optimization goals.
It would be helpful to briefly explain the design choices in the README, for example:
- why the benchmark focuses on offline batch planning;
- why total travel distance is used as the primary optimization objective;
- what aspect of warehouse planning or coordination this benchmark is intended to evaluate.
Providing this context would make the benchmark design easier to understand and clarify its relationship to existing MAPD literature.
There are also a few non-blocking improvements that could be considered in future updates:
scripts/init.pycurrently duplicates the baseline implementation and could instead reuse the existing implementation to reduce maintenance effort.- The Input/Output schema is currently maintained in multiple places. Using a single source of truth would make future updates easier.
- The thread synchronization logic in
process_runner.pycould be further improved to make log collection more robust when processes terminate unexpectedly.
Overall, the benchmark is in good shape. Addressing the data generation inconsistency, improving evaluation set isolation, and documenting the evaluation design would further strengthen the benchmark's reliability and long-term maintainability.
🤖 AI Code Review (gemini-3-flash-preview)🇬🇧 English Analysis1. Executive Summary
2. AI Content Analysis
3. Engineering & Economic Assessment
4. Quality Assurance
5. Security & Privacy Check
🇨🇳 中文分析1. 摘要
2. AI 成分分析
3. 工程与经济评估
4. 质量保证
5. 安全与隐私检查
|
|
@y-ji24 Thank you for the detailed review. I addressed the three main points in commit
Regarding the non-blocking points:
Revalidation after the changes:
|
y-ji24
left a comment
There was a problem hiding this comment.
Thanks for the update. This revision is now substantially more complete. The issues raised in the previous review have been addressed: the evaluation design and isolation rationale are now clearly documented, the inconsistency between problem generation and the evaluator has been resolved, and seeds.json no longer exposes evaluation seed values.
I took another pass over the changes and did not identify any remaining blocking issues.
Thanks for the contribution!
Summary
Robotics/WarehouseRobotRouting, a structured-solution benchmark for joint warehouse order assignment and collision-free multi-robot routing.log2((D_baseline + 1) / (D_candidate + 1)), averaged across the evaluation set.Distinction from existing Robotics tasks
DynamicObstacleAvoidanceNavigationevaluates one differential-drive robot in continuous 2D scenes with time-indexed controls, moving obstacles, and arrival-time scoring. This benchmark instead evaluates multiple robots on a discrete warehouse graph and couples path planning with pickup-and-delivery assignment, payload capacity, vertex/edge conflict avoidance, and aggregate fleet-distance optimization.Evidence and scope
The public MAPD reference is Ma et al., Lifelong Multi-Agent Path Finding for Online Pickup and Delivery Tasks (AAMAS 2017): https://arxiv.org/abs/1705.10868.
The benchmark intentionally models deterministic unit-time graph movement. It does not claim to model continuous dynamics, acceleration, localization error, charging, communication latency, online order arrivals, or hardware failure; these limitations are documented in the benchmark README.
Validation
-0.0043394883918155130.00.00.2729877727407376python:3.12.11-slim-bookworm@sha256:519591d6871b7bc437060736b9f7456b8731f1499a57e22e6c285135ae657bf7.Result:
benchmark_returncode=0,instances_valid=10/10,Best score: 0.0.