Git Product home page Git Product logo

reconnection-multi-agent-pathfinding's Introduction

Reconnection Multi-Agent Pathfinding (R-MAPF)

This repository contains a framework for studying the R-MAPF problem, which is a generalization of MAM (Multi-Agent Meeting) where a set of strongly connected nodes must be found, for multiple agents to meet. To solve a R-MAPF instance, first a set of goal nodes is generated, then an agent-goal assignment is determined and, lastly, paths are generated using CBS (Conflict-Based Search).

How to use

While inside the main directory, run solver.py to solve instances of the problem.

  • python solver.py --instance .\custom_instances\s8_d10_a8_test_1.txt generates a set of goals and determines agent-goal assignment for the requested istance

  • python solver.py --instance .\custom_instances\s8_d10_a8_test_1.txt --solve True solves completely the requested istance, generates optimal paths and creates a visualization of the paths' execution

There are several options available, run python solver.py --help for a complete list.

If --save_output flag is set true, solutions will be saved in text files, inside this directory: .\outputs\.

Code organization

Instances are saved as .txt files inside .\custom_instances\. Instances inside .\instances are taken from here.

Inside .\connectivity_graphs\ there are the connectivity graphs associated with the problem instances. To be properly loaded by the solver, they must have the same name as the instance they refer to.

.\libraries\ contains code used to run the solver. goals_choice.py contains functions used to generate the set of goals; goals_assignment.py contains functions used to determine the agent-goal assignment. cbs.py, single_agent_planner.py and visualize.py are imported, without any modifying (except in a single marked occasion) from this repository.

You can run data_aggregator.py to collect data from solved instances logs in .\outputs\ and create charts. .\charts\ contains charts made in this way.

With instance_generator.py you can create new instances. It is not garanteed for generated instances to be legal, you must check for unconnected nodes in the graph, which will cause errors. Be sure to create a connectivity graph for each newly created instance, using connectivity_graph_generator.py.

reconnection-multi-agent-pathfinding's People

Contributors

iltella avatar

Stargazers

 avatar  avatar

Watchers

 avatar

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.