Task
Each Case provides a 6–20 by 6–20 warehouse and the complete public shipment arrival permutation. The forklift must store every arrival, retrieve shipments in numeric order, and return to the entrance.
The Policy emits the whole instruction program at once. The Environment parses, validates, and executes it atomically under the 500,000-character limit.
Policy interface
Warehouseman is a constructive one-step task. The initial observation contains every public input needed to synthesize the complete solution.
| Observation field | Meaning |
|---|---|
rows / columns | Warehouse dimensions in the inclusive range 6–20 |
arrivals | Complete shipment arrival permutation |
instruction_limit | Maximum output length: 500,000 characters |
Return one ASCII instruction string using movement, pickup, drop-off, load, and unload operations.
| Action | Meaning |
|---|---|
N W S E | Move the forklift |
P D | Pick up an arrival or deliver a shipment |
LN LW LS LE | Load a neighboring stored shipment |
UN UW US UE | Unload into a neighboring cell |
Evaluation
| Quantity | Definition |
|---|---|
| Completion | Store all arrivals, retrieve in numeric order, and return to the entrance |
| Benchmark score | Mean official normalized instruction cost |
| Policy failure | Contributes bounded cost 1,000,000 |
Feedback
Feedback reports normalized cost, instruction length, completed solutions, failures, and diagnostic coverage.
| Field | Meaning |
|---|---|
mean_normalized_cost | Primary Benchmark score |
mean_instruction_characters | Mean output length for completed solutions |
completed / policy_failures | Episode outcome counts |
diagnostic_episodes | Number of Episodes represented in diagnostics |
diagnostics.jsonl | Bounded per-Episode completion and cost diagnostics without raw arrival permutations or instruction strings. |
Using the distribution
Build this independently installable leaf project from the repository root:
uv sync --project environments/codechef/june18/warehouseman --extra dev
uv build environments/codechef/june18/warehousemanThe package exports:
from warehouseman import WarehousemanBenchmark, baseline_program
benchmark = WarehousemanBenchmark()
program = baseline_program()