MultiAgentDecisionProcess
|
MultiAgentDecisionProcess (MADP) is a toolbox for scientific research in decision-theoretic planning and learning in multiagent systems. It is designed to be rather general, but most effort has been put in planning algorithms for discrete Dec-POMDPs.
The PDF doc/MADPToolbox.pdf
provides more general background about MADP models, and documents general design principles and details about indices and history representations.
Authors: Frans Oliehoek, Matthijs Spaan, Philipp Robbel, João Messias
The framework consists of several parts, grouped in different libraries. The base library (libMADPBase) contains:
The parser library (libMADPParser) only requires the base library, and contains:
dpomdp
problem specifications, which is a fileformat for discrete Dec-POMDPs. A set of benchmark problem files can be found in the problems/
directory, and the dpomdp
syntax is documented in example.dpomdp. The format is based on Tony's POMDP file format, and the formal specification is found in dpomdp.spirit. The parser uses the Boost Spirit library. See MADPParser.The support library (libMADPSupport) contains basic data types and support useful for planning:
Finally, the planning library (libMADPplanning) contains functionality for planning algorithms, as well as some solution methods.
In the src/examples/
and src/utils/
directories are a number of programs included that use the MADP libraries. Running each binary with as argument –help
will display a short summary of usage.
JESP
runs the JESPDynamicProgrammingPlanner on a dpomdp
problem specification, for instance JESP -h 3 <PATH_TO>/dectiger.dpomdpor
JESP -h 3 DTruns JESP for horizon 3 on the DecTiger problem. First one parses the dectiger.dpomdp file, the second one uses the ProblemDecTiger class. Many more problem files are provided in the
problems/
directory.BFS
runs the BruteForceSearchPlanner, JESP
the JESPExhaustivePlanner or JESPDynamicProgrammingPlanner, DICEPS
the DICEPSPlanner, and GMAA
runs the GMAA variations (MAAstar or Forward Search Policy Sweep).Perseus
runs the Perseus POMDP or BG planner.printProblem
loads a dpomdp
problem description and prints it to standard out. printJointPolicyPureVector
prints out a particular joint policy given its index.evaluateJointPolicyPureVector
simulates a particular joint policy for a problem. evaluateRandomPolicy
uses a policy that chooses actions uniformly at random.analyzeRewardResults
and getAvgReward
print information about the expected reward of simulation runs, saved using SimulationResult::Save().
=Main Authors= Frans Oliehoek <fao@liverpool.ac.uk> Department of Computer Science, University of Liverpool Liverpool, United Kingdom AMLab, University of Amsterdam Amsterdam, The Netherlands Matthijs Spaan <m.t.j.spaan@tudelft.nl> Delft University of Technology Delft, The Netherlands Bas Terwijn <bterwijn@uva.nl> AMLab, University of Amsterdam Amsterdam, The Netherlands João Messias <jmessias@isr.ist.utl.pt> Institute for Systems and Robotics (ISR), Instituto Superior Técnico (IST) Lisbon, Portugal Philipp Robbel <robbel@mit.edu> Media Lab, Massachusetts Institute of Technology Cambridge, MA, USA F.O. is funded by NWO Innovational Research Incentives Scheme Veni \#639.021.336. Previous development efforts were funded (in part) by AFOSR MURI project \#FA9550-09-1-0538, and the Interactive Collaborative Information Systems (ICIS) project, supported by the Dutch Ministry of Economic Affairs, grant nr: BSIK03024. M.S. was funded by the FP7 Marie Curie Actions Individual Fellowship #275217 (FP7-PEOPLE-2010-IEF) and was previously supported by Fundacao para a Ciencia e a Tecnologia (ISR/IST pluriannual funding) through the POS_Conhecimento Program that includes FEDER funds and through grant PTDC/EEA-ACR/73266/2006. =Other Contributors= Philipp Beau Abdeslam Boularias Timon Kanters Francisco Melo Julian Kooij Tiago Veiga Erwin Walraven Xuanjie Liu