# mawpf **Repository Path**: futurelei/mawpf ## Basic Information - **Project Name**: mawpf - **Description**: 从网格世界到仓库:为AGV改编轻量级单次多代理路径寻线,依然来自大神奥村圭介。 他的网站:https://kei18.github.io/#publication - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-22 - **Last Updated**: 2026-06-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MAWPF: Multi-Agent Warehouse Pathfinding The code repository of the paper **"[From Gridworlds to Warehouses: Adapting Lightweight One-shot Multi-Agent Pathfinding for AGVs](https://arxiv.org/abs/2605.15799)."** (IJCAI-26) *Multi-agent warehouse pathfinding (MAWPF)* is a gridworld counterpart of MAPF tailored to differential-drive AGVs. Unlike classical MAPF, each agent state encodes not only its grid location but also its *heading* and *speed*, under four warehouse-specific constraints: 1. **Rotation constraints** — agents move in straight lines or rotate in place. 2. **Turning costs** — a 90° rotation takes multiple timesteps ($T_{rot}$). 3. **Acceleration / deceleration** — speed changes by at most one per step, up to $V_{max}$. 4. **Follower collisions** — entering a just-vacated cell is prohibited. This repository unifies **four representative lightweight MAPF solvers** adapted to MAWPF behind a single executable, selectable with the `--algo` flag: | `--algo` | Algorithm | Description | |----------|-----------|-------------| | `pp` | PP | Prioritized Planning with random restart | | `lns2` | LNS2 | MAPF Large Neighborhood Search | | `pibt` | PIBT | Multi-step PIBT, rolling horizon (one-shot) | | `lacam` | LaCAM | LaCAM high-level search with PIBT as the configuration generator | ## Demo ![demo](demo/mawpf.gif) ## Building All you need is [CMake](https://cmake.org/) (≥ v3.16). The code is written in C++(17). First, clone this repo. ```sh git clone https://github.com/HirokiNagai-39/mawpf.git cd mawpf ``` Then build the project. ```sh cmake -B build && make -C build ``` ## Usage ### Example ```sh build/main -m maps/random-32-32-20.map -N 50 --algo lacam -t 10 -v 3 ``` The result will be saved in `build/result.txt`. ### Selecting the algorithm Pick one of the four solvers with `-a` / `--algo`: ```sh build/main -m maps/random-32-32-20.map -N 50 --algo pp # Prioritized Planning build/main -m maps/random-32-32-20.map -N 50 --algo lns2 # LNS2 build/main -m maps/random-32-32-20.map -N 50 --algo pibt # multi-step PIBT build/main -m maps/random-32-32-20.map -N 50 --algo lacam # PIBT + LaCAM (default) ``` ### Main parameters - `-m`, `--map` : map file (required) - `-N`, `--num` : number of agents (required) - `-a`, `--algo` : algorithm — `pp` | `lns2` | `pibt` | `lacam` (default: `lacam`) - `-i`, `--scen` : scenario file (optional; random starts/goals are generated otherwise) - `-s`, `--seed` : random seed - `-t`, `--time_limit_sec` : time limit in seconds - `--max_speed` : maximum speed $V_{max}$ (default: 2) - `--rotation_steps` : timesteps for a 90° rotation $T_{rot}$ (default: 2) - `--path_length` : PIBT / LaCAM lookahead horizon $L$ (default: 6) > **Note:** On large maps, a larger $L$ (`--path_length`) makes the pre-processing step take longer. The format of scenarios and maps follows the [MAPF Benchmarks](https://www.movingai.com/benchmarks/mapf/index.html). ### Help You can find details of all parameters with: ```sh build/main --help ``` ## Visualizer A dedicated visualizer for MAWPF solutions (which renders headings, speeds, and rotations in addition to grid positions) will be released soon. ## Licence This software is released under the MIT License, see [LICENSE](LICENSE). ## Special thanks [Keisuke Okumura](https://kei18.github.io) — the underlying [lacam3](https://kei18.github.io/lacam3/) framework this work builds upon.