Approximate POMDP Planning (APPL) Toolkit Copyright (c) 2008-2009 by National University of Singapore. APPL is a C++ implementation of the SARSOP algorithm [1]. It takes in a POMDP model file in Tony Cassandra's POMDP file format and produces a policy file. It also contains a simple simulator for evaluating the quality of the computed policy. More information can be found at http://motion.comp.nus.edu.sg/projects/pomdp/pomdp.html For bug reports and suggestions please email . [1] H. Kurniawati, D. Hsu, and W.S. Lee. SARSOP: Efficent point-based POMDP planning by approximating optimally reachable belief spaces. In Proc. Robotics: Science and Systems, 2008. ======================================================================== TABLE OF CONTENTS ======================================================================== * Requirements * Quick start * Package contents * Acknowledgments * Release notes ======================================================================== REQUIREMENTS ======================================================================== Operating systems: Linux Mac OS X (unofficial) Windows (unofficial) Tested compilers: gcc/g++ 4.0.1 under Linux gcc/g++ 4.1.2 under Linux gcc/g++ 4.2.3 under Linux gcc/g++ 4.3.2 under Linux gcc/g++ 3.4.4 under Windows(Cygwin) Microsoft Visual C++ 8 in Visual Studio 2005 with SP1 under Windows * General For gcc/g++ tool chain, GNU make is required for building. * Mac OS X - For Mac OS X, physical memory size cannot be automatically determined yet. Currently APPL will assume 1G physical memory for Mac OS X. If your physical memory size is different, please use "--memory" command line option to set correct memory size. - For Macintosh using PowerPC processor, please remove the option "-msse2 -mfpmath=sse" from CFLAGS in src/Makefile. * Windows (Visual Studio) The Visual Studio port is still experimental. The generated binaries may behave differently from its Linux counterpart. ======================================================================== QUICK START ======================================================================== * For Linux or Windows (Cygwin), at the top-level directory, type the commands: unzip appl.zip cd appl/src make Generated executables are in current directory. 'ofsol' is the solver. 'simulate' is the Simulator. please read doc/Usage.txt for command-line options. - Try solving an example problem. Type the command: ./ofsol ../examples/Hallway.pomdp --timeout 60 The computed policy is written to 'out.policy'. - Try simulating the generated policy. Type the command: ./simulate --simLen 100 --simNum 10 --policy-file out.policy ../examples/Hallway.pomdp The simulation results are printed to the console. - Try evaluating the generated policy. Type the command: ./evaluate --simLen 100 --simNum 10 --policy-file out.policy ../examples/Hallway.pomdp The evaluation results are printed to the console. * For Windows with Microsoft Visual Studio Unpack the zip file Open the solution file : pomdp.sln Select from Menu Build -> Build Solution (generated binaries is in appl/src/release directory, ofsol_win.exe is the Solver, simulate_win.exe is the Simulator, evaluate_win.exe is the Evaluator)) - Try solving an example problem: Open up a command line console: 1: Click on Start Menu -> Run 2: Key in "cmd" and press Enter Go to the directory where the generated binaries are Example (assume the source code is located at c:\appl\src): c: cd c:\appl\src\release Key in command: ofsol_win.exe ..\..\examples\Hallway.pomdp --timeout 60 (The policy will be written to 'out.policy') -Try simulating the generated policy simulate_win.exe --simLen 100 --simNum 10 --policy-file out.policy ..\..\examples\Hallway.pomdp (The simulation result will displayed) -Try evaluating the generated policy evaluate_win.exe --simLen 100 --simNum 10 --policy-file out.policy ..\..\examples\Hallway.pomdp (The evaluation result will displayed) * Detailed compilation instruction can be found in doc/Install.txt Explanation of command line options can be found in doc/Usage.txt The input POMDP model file should be in Tony Cassandra's POMDP format, specified in doc/pomdpFileFormat.html. ======================================================================== PACKAGE CONTENTS ======================================================================== README.txt This file doc/Install.txt Detailed compilation instruction doc/Usage.txt Explanation of command line options doc/pomdpFileFormat.html POMDP file format license/License License license/Notice Attribution notices as required by Apache License 2.0 src/Parser POMDP model parser from ZMDP src/MatrixMathLib Math Library from ZMDP src/BeliefDataStructs Data structure for Belief src/OfflineSolver POMDP Solver src/Simulator Simulator code src/Utils Cross Platform utility code src/Makefile Linux make file examples/ Example POMDP model files * Windows-specific files src/miniposix POSIX compliance code for Windows src/ofsol_win Visual Studio 2005 Project folder for POMDP Solver src/simulate_win Visual Studio 2005 Project folder for Simulator src/evaluate_win Visual Studio 2005 Project folder for Evaluator src/pomdp.sln Visual Studio 2005 solution ======================================================================== ACKNOWLEDGMENTS ======================================================================== Part of the APPL toolkit makes use of code based on an early version of ZMDP by Trey Smith (http://www.cs.cmu.edu/~trey/zmdp/). ZMDP in turn uses some code from pomdp-solve by Tony Cassandra. ======================================================================== RELEASE NOTES ======================================================================== 01-Feb-2009, version 0.3 * Added option for memory limit. * Reduced memory usage. * Added policy evaluator. 25-Jul-2008, version 0.2 * Minor bug fixes. 01-Jul-2008, version 0.1 * Initial release.