FMAP: Forward-Chaining Multi-Agent Planning System


FMAP is a fully-distributed general-purpose multi-agent planning (MAP) tool designed to cope with cooperative MAP tasks of any level of complexity. Planning tasks are described in a MAP language based on PDDL3.1 with some extensions to support privacy and information distribution.

FMAP performs a multi-agent weighed A* search (f=g+2*h_DTG), where h_DTG is a novel distributed heuristic function based on the notion of Domain Transition Graphs. Agents jointly build a search tree in which the nodes are partial-order plans built in a forward-chaining fashion. Each plan in the search tree introduces and fully supports a new action with respect to its parent node in the tree.


Source code:

The source code of FMAP is available in the following link:

Extracting the zip file will generate a FMAP folder that contains all the necessary files to run FMAP, which includes both the FMAP.jar executable file and the library file.

FMAP runs on the Magentix2 multi-agent platform. To run FMAP, the Qpid broker of Magentix2 should be running in a computer accessible on the network.


Multi-agent domains:

We have generated a multi-agent version of ten propositional domains from the International Planning Competitions (IPC):

  • Depots (zip)
  • Driverlog (zip)
  • Elevators (zip)
  • Logistics (zip)
  • MA-Blocksworld (zip)
  • Openstacks (zip)
  • Rovers (zip)
  • Satellite (zip)
  • Woodworking (zip)
  • Zenotravel (zip)


In order to run a multi-agent problem on FMAP (for instance, the pfile01 of the depots domain), the next steps should be followed:

  • Select the server that is running the Qpid broker of Magentix2 (by default the server is set to localhost)

  • Each problem file corresponds to a different agent. For example, ProblemDepotsdepot0.pddl file refers to agent depot0. Each agent should be added by introducing its name, domain and problem files, and clicking the Add agent button.

    In this MAP task, agents depot0, distributor0 and distributor1 use the DomainDepotsDepot.pddl domain file, and agents truck1 and truck2 use the DomainDepotsTruck.pddl domain file.

  • Once the five agents are added, the Save agents button can be used to save the agents' configuration for this problem in a separate file. This file can be used to load the problem faster in subsequent usages.

  • Click on the Start agents button to run FMAP with the selected configuration.


Related papers: