UPMurphi generates planners as standalone executables. The input model can be either
In the former case, UPMurphi will automatically call the PDDL-to-Murphi compiler to obtain the Murphi model corresponding to the given PDDL domain and problem, and then compile it to create the planner. This is the default behaviour of UPMurphi. Advanced users may directly write the Murphi model or make modifications to a PDDL-derived model. To this aim, please refer to the Murphi_User_Manual.txt and Murphi_User_Manual.txt files in the 'doc' folder.
Note that some models have an associated library (.c file and possibly the corresponding header file .h) which define functions to be called by the model during its execution.
To compile a PDDL domain/problem to an UPMurphi planner, invoke the UPMurphi compiler (upmc) as follows:
upmc <domain.pddl> <problem.pddl>
This will call several tools (including the g++ compiler) and generate the following files:
You can pass several options to upmc. Type upmc --help for a full list.
Once the executable planner has been generated, you can run it to start the planning process. By default, the planner will search for a feasible plan and write it to the file <problem_name>_plan.pddl.
If you compiled a debug mode planner, then it will stop every time a model rule can be executed (i.e, an action can be taken, an event can occur, the clock can tick, etc.) and ask the user if it should be actually fired, displaying the rule name and the corresponding PDDL action/event name, if available. You can then allow its execution writing y (yes, the default), or deny the execution with n (no, in this case the planning will continue as the rule was never encountered). You can also decide to always fire a particular rule (answering a), or never fire it again (answering e).
The memory given to the planner is 1Gb. Many options areavailable to change the planner's default behaviour:
If -noclear is NOT specified, the planner will remove all its temporary files from disk after its execution. You can use -noclear to save the planner files for further processing: these include a full (binary) dump of the plant states, the complete set of transitions, the inverted plant graph, the optimal actions chosen in each state, etc.
To use this option, VAL must be installed on your system and its path configured in the UPMurphi makefile.
The -search:* options set the planning algorithm to use.
Deadlock detection is DISABLED by default. You can activate it with -cdl.
The number of BFS levels to explore can be specified through the -l option. If this option is set, the planner will work only on the states found on these levels, otherwise it will try to explore the entire domain before starting the optimisation and planning phases.
You can use this option to limit the plans to a maximum number of clock ticks. Plans longer than this limit will be ignored.
By default, final output is written to an output file <problem_name>_plan.pddl. If you want to specify a different filename, use the -output option. Using the option -print will cause such file to be copied to stdout, too.
Output formats, specified through the -format:* options, are: