This repository provides a basic implementation of LaCAM for multi-agent pathfinding (MAPF). The code has been cleaned up and refactored from the original repositories with the aim of making LaCAM easier to extend. See "Implemented Techniques" to find out what has been implemented. For advanced one, please check the project page.
All you need is CMake (≥v3.16). The code is written in C++(17).
First, clone this repo with submodules.
git clone --recursive {this repo}Then, build the project.
cmake -B build && make -C build -j4build/main -i assets/random-32-32-10-random-1.scen -m assets/random-32-32-10.map -N 400 -v 3The result will be saved in build/result.txt.
You can find details of all parameters with:
build/main --helpThis repository is compatible with kei18@mapf-visualizer. For example,
mapf-visualizer assets/random-32-32-10.map build/result.txt- tree rewiring (i.e., LaCAM*) [IJCAI-23]
- node reinsert [AAAI-23]
- random restart [IJCAI-23]
- non-deterministic node extraction [AAMAS-24]
- PIBT swap [IJCAI-23]
- hindrance [SoCS-25]
I may integrate the following techniques:
You can use kei18@mapf-lib-exp, written in Julia.
git submodule add git@github.com:Kei18/mapf-lib-exp.git scripts
sh scripts/setup.shjulia --project=scripts/ --threads=auto
> include("scripts/eval.jl"); main("scripts/config/mapf-bench.yaml")The results will be stored in ../data
This software is released under the MIT License, see LICENSE.txt.
pre-commit installctest --test-dir ./build