Coder Social home page Coder Social logo

mapf-lns's Introduction

MAPF-LNS

test_ubuntu test_macos

Anytime Multi-Agent Path Finding via Large Neighborhood Search

MAPF-LNS is an effifent anytime algorithm for solving Multi-Agent Path Finding (MAPF). More details can be found in our paper at IJCAI 2021 [1].

Note: The code used in the IJCAI paper had a typo for the agent-based neighborhood selection method. After fixing this typo (commit 3e03f6e), the method performs better than what was reported in the paper.

A stronger version MAPF-LNS2 can be found here: https://github.com/Jiaoyang-Li/MAPF-LNS2

The code requires the external libraries BOOST (https://www.boost.org/) and Eigen (https://eigen.tuxfamily.org/). An easy way to install the required libraries on Ubuntu:

sudo apt update
  • Install the Eigen library (used for linear algebra computing)
    sudo apt install libeigen3-dev
  • Install the boost library
    sudo apt install libboost-all-dev

After you installed both libraries and downloaded the source code, go into the directory of the source code and compile it with CMake:

cmake -DCMAKE_BUILD_TYPE=RELEASE .
make

You also need to download the MAPF instances from the MAPF benchmark (https://movingai.com/benchmarks/mapf/index.html). In particular, the format of the scen files is explained here: https://movingai.com/benchmarks/formats.html. For a given number of agents k, the first k rows of the scen file are used to generate the k pairs of start and target locations.

Then, you are able to run the code:

./lns -m random-32-32-20.map -a random-32-32-20-random-1.scen -o test.csv -k 50 -t 60
  • m: the map file from the MAPF benchmark
  • a: the scenario file from the MAPF benchmark
  • o: the output file
  • k: the number of agents
  • t: the runtime limit

You can find more details and explanations for all parameters with:

./lns --help

Credits

The software was developed by Jiaoyang Li and Zhe Chen.

The rule-based MAPF solvers (i.e., PPS, PIBT, and winPIBT) inside the software were borrowed from https://github.com/Kei18/pibt/tree/v1.3

MAPF-LNS is released under USC – Research License. See license.txt for further details.

References

[1] Jiaoyang Li, Zhe Chen, Daniel Harabor, Peter J. Stuckey, Sven Koenig. Anytime Multi-Agent Path Finding via Large Neighborhood Search. In Proceedings of the International Joint Conference on Artificial Intelligence (IJCAI), pages 4127-4135, 2021.

mapf-lns's People

Contributors

jiaoyang-li avatar nobodyczcz avatar

Stargazers

陈志林 avatar Bo Du avatar Cai Xu avatar Rui Hu avatar Ger Hobbelt avatar  avatar  avatar Wang Yutong avatar Qin1143 avatar Changju Hwang avatar Ziqi Han avatar Gilles Moerman avatar Florian Fontan avatar  avatar  avatar  avatar  avatar RiverStone avatar  avatar chengyezhao avatar  avatar David Strootman avatar  avatar Rui avatar  avatar Dan avatar  avatar  avatar Robotelligence avatar  avatar  avatar  avatar Hyunseok avatar Geunwoo Kim avatar liuruizhi96 avatar AI Xin avatar  avatar  avatar Zoky avatar  avatar  avatar Tianfu Wang avatar Shao-Hung Chan avatar  avatar  avatar Yiming Xie avatar Li Jucheng avatar ZIQI TIAN avatar Rang Xuan avatar WoodRoof avatar Yijiang Huang avatar Jean-Marc Alkazzi avatar

Watchers

 avatar Rang Xuan avatar  avatar

mapf-lns's Issues

Code questions

Firstly, thank you very much for your code, which is very helpful for me to learn MAPF.

But I'm not sure whether this line of code should be a=n, to select an agent in neighbors_set randomly. Otherwise, this is just a random selection [0, neighbors_set.size ()] agent, maybe randomly to other agents with no clear relationship with the max_delay agent.

Thanks a lot!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.