Downloading UPMurphi

UPMurphi is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either of the License, or (at your option) any later version.

The tool is currently in BETA, and is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.

To download the most up-to-date version of UPMurphi, get it from the GitHub repository.

Alternatively, the following tool releases are available for download directly from this site. Note that they may not include the latest fixes and upgrades available on GitHub.

Version Date Size Notes Actions
3.0.1 2015/04/29 354Kb Bug fix release. Download
3.0 2015/04/13 371Kb First official public release! Download

Installing UPMurphi

UPMurphi installation has been tested on the following platforms:

  • Recent Linux distributions (extensively tested on Ubuntu)
  • Windows with Cygwin (

Important: UPMurphi planners make an extensive use of pointer arithmetic, and have been originally developed for 32-bit systems, therefore they need to be compiled using the -m32 g++ switch, which guarantees this precondition. This is automatically performed by the UPMurphi compiler on 64-bit machines, however you have to ensure that 32-bit C standard libraries are installed in your system for the compilation process to be successful. See below for detailed instructions. We are working for a 64-bit port of UPMurphi...

Step 1 - Configuring the build

In most cases, UPMurphi will be able to find its executables and include files automatically. No configuration is required.

However, the UPMurphi planners need a 32-bit platform to work properly. To this aim, UPMurphi calls the g++ compiler with the -m32 switch on 64-bit machines but, for the compilation process to succeed, you need to ensure the correct libraries are correctly installed on you 64-bit system. Otherwise, you may receive strange error messages referring to system libraries such as "iostream:38:28: fatal error: bits/c++config.h: No such file or directory".

To successfully build UPMurphi and its planners, you need the following Ubuntu packages (translating this requirement to the other platforms is left to the reader as an exercise...): build-essential, flex, bison, libc6-dev-i386, gcc-multilib, g++-multilib. The libc for i386 is often missing on 64-bit machines. To ensure all the packages are installed or install the missing ones, on Ubuntu you can simply issue the following command: sudo apt-get install build-essential flex bison libc6-dev-i386 gcc-multilib g++-multilib. Similar packages need to be installed in other Linux distributions as well as in Cygwin under Windows.

Finally, if you want to use the VAL validator to automatically validate the generated plans, you should download and install it separately, then edit the Makefile in the 'src/UPMurphi' folder and write the complete pathname of the 'validate' binary as the value of the VAL_PATHNAME constant.

Step 2 - Compiling the UPMurphi binaries

This step must be performed only once. To compile UPMurphi, the following tools must be available (and updated) on your system:

  • g++ compiler
  • lex and yacc, or (better) their GNU replacements: flex and bison

Enter the 'src' directory, call 'make' and cross your fingers. If everything is ok, the upmurphi compiler (upmc) and the PDDL-to-Murphi compiler (pddl2upm) are now in the 'bin' directory.

Now you are ready to create & execute planners for PDDL domains and problems.