Code Monkey home page Code Monkey logo

mapf-lns2's Introduction

MAPF-LNS2

test_ubuntu test_macos

MAPF-LNS2: Fast Repairing for Multi-Agent Path Finding via Large Neighborhood Search

MAPF-LNS2 is an efficient algorithm for solving Multi-Agent Path Finding (MAPF). More details can be found in our paper at AAAI 2022 [1].

This software is an advanced version and a superset of MAPF-LNS (https://github.com/Jiaoyang-Li/MAPF-LNS); that is, it also contains Anytime Multi-Agent Path Finding via Large Neighborhood Search [2].

Usage

The code requires the external libraries BOOST (https://www.boost.org/) and Eigen (https://eigen.tuxfamily.org/). Here is an easy way of installing 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

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 -k 400 -t 300 --outputPaths=paths.txt 
  • m: the map file from the MAPF benchmark
  • a: the scenario file from the MAPF benchmark
  • o: the output file name (no need for file extension)
  • k: the number of agents
  • t: the runtime limit
  • outputPaths: the output file that contains the paths

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

./lns --help

We provide example instance files "random-32-32-20.map" and "random-32-32-20-random-1.scen" in the repo. More instances can be download from the MAPF benchmark. All the experiments in the paper used in instances from the benchmark except for Experiment 5, for which the instances are in folder "instances". In particular, the format of the scen files is explained here. 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.

Credits

The software was developed by Jiaoyang Li and Zhe Chen based on MAPF-LNS.

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-LNS2 is released under USC – Research License. See license.txt for further details.

References

[1] Jiaoyang Li, Zhe Chen, Daniel Harabor, Peter J. Stuckey and Sven Koenig. MAPF-LNS2: Fast Repairing for Multi-Agent Path Finding via Large Neighborhood Search In Proceedings of the AAAI Conference on Artificial Intelligence, (in print), 2022.

[2] 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-lns2's People

Contributors

jiaoyang-li avatar nobodyczcz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

mapf-lns2's Issues

Reservation Table Memory Optimisation

While implementing Windowed/RHCR Priortised Planning I Identified that during SIPP::FindPath we initialise the SIT, introducing a lot of unnecessary overhead. I propose we construct one and update/maintain for all agents.

I will implement this fix in parallel to Windowed/RHCR Priortised Planning.

what is soft obstacle or soft Soft constraints

在MAPF-LNS2的论文和代码实现中,提到了soft obstacle和hard obstacle,但是该论文和SIPP论文均没有对这一名词做出定义,所以这个是指的什么?是将agent视为动态障碍物即为soft obstacle吗?hard obstacle是指静止的agent?谢谢解答

Where is the code for Collision-Based Neighborhoods

Hello, I have read the paper MAPF-LNS2 and found the code repository. I am preparing to experiment and improve the code sections of Collision-Based Neighborhoods and Adaptive LNS (ALNS), but I have not been able to find them yet? Can you help me

Questions about ReservationTable.cpp

I saw that the code on line 200 mentioned that (location < constraint_table.map_size) is vertex conflict, and other situations are edge conflict. But in theory, any location is smaller than the map size. For example, for a 32x32 map, the maximum location is 31*32+31, which is smaller than 32*32. Can you give an edge conflict situation? Thank you.

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.