SPUDD
Overview

SPUDD stands for "Stochastic Planning using Decision Diagrams". This page is intended to provide information and access to the SPUDD module that was implemented in the department of Computer Science   at the   University of British Columbia . SPUDD implements a value iteration algorithm for MDPs and POMDPs that uses algebraic decision diagrams (ADDs) to represent value functions and policies.
Publications
The original SPUDD paper

Jesse Hoey, Robert St-Aubin, Alan J Hu and Craig Boutilier SPUDD: Stochastic Planning Using Decision Diagrams. Proceedings of Uncertainty in Artificial Intelligence, Stockholm, Sweden, 1999 (bibtex)

The extensions for approximate planning (APRICODD)

Robert St-Aubin, Jesse Hoey and Craig Boutilier APRICODD: Approximate policy construction using decision diagrams. Neural Information Processing Systems, Denver, CO, USA, 2000 (bibtex)

Spudd online

For small problems if you want to test out how SPUDD works, try submitting your own MDP through Interactive SPUDD.
Spudd online is now Spudd offline. Permanently.
Instead, download the code below and run it yourself!
Downloads
This code is for research purposes only. Please see the README file in Spudd/doc/ for instructions
  • NEW June 27, 2011. spudd competition version. This is version 3.6.2 but also includes everything necessary for reproducing the IPPC 2011 competition results.
  • December 16, 2010. spudd version 3.6.2. Now compiles under 32-bit or 64-bit linux.
  • December 14, 2010. spudd version 3.6.1. Fixed a bug in the parsing of CPTs for multi-valued variables. CPTs P(x'|x,y,a) were not being normalised properly for situations in which x' did not appear in the CPT.
  • November 30, 2010. spudd version 3.6. Major overhaul to get this to compile with gcc v4.4 in Linux 64 bit. Thanks to Jenny Barry (MIT).
  • March 1st, 2007. spudd version 3.5.3. fixed two minor problems to get Spudd to compile with gcc v4.
Symbolic Perseus (in Java)
  • symbolicPerseusJava package. This is an extension of Pascal Poupart's code for symbolicPerseus that uses only Java (no Matlab). symbolicPerseus uses the same type of data structure (ADDs) as SPUDD, and implements many of the same functions for MDPs. It also has functions for dealing with POMDPs, and implements the Perseus (point-based value iteration) algorithm of Spaan and Vlassis.