This repo contains a python implementation of the k-privacy preserving MAPF solver.
Read more about the algorithm in the published paper Privacy Preserving Multi-Agent Path Finding at:
- Extended abstract published at AAMAS 2026:
https://ifaamas.org/Proceedings/aamas2026/pdfs/JWHZ7620.pdf - Full paper published at arXiv:
https://arxiv.org/abs/2605.14119
The c code for running both the fpp and ppfpp algorithms on the sub solvers of LaCAM* and PIBT is published at:
https://github.com/SPL-BGU/lacam3_with_FoV_support.git
If you plan to use this code or the code at https://github.com/SPL-BGU/lacam3_with_FoV_support.git, please cite our papers from above.
In order to use this repo, please first git clone the c code using:
git clone https://github.com/SPL-BGU/lacam3_with_FoV_support.git
Then, compile it using the instructions in the repo, and copy the binary build/main to this repo at the path bin/lacam3.
Then keep reading this readme on how to run the experiments.
We use uv as a python package manager. To run the project you first need to install uv: https://docs.astral.sh/uv/getting-started/installation/
Then, use the following command to get help on how to run experiments:
uv run --with-editable . run_experiment.py -h
Example, run kpp (actually fpp in the paper) with lacam as a subsolver, save results in the directory experiments and run on the first map we use:
uv run --with-editable . run_experiment.py --solutions_dir experiments --map_idx 0 kpp --solver_type LACAM
Example, run ppfpp with on a pre-run fpp with lacam solution, save results in the directory experiments_ppfpp and run on the first map we use:
uv run --with-editable . run_experiment.py --solutions_dir experiments_ppfpp --map_idx 0 ppfpp --previous_solver_type LACAM