This is the website for the temporal tracks of the IPC 2018. This is the 7th IPC containing classical tracks, since the specification of PDDL 2.1 in 2002. In addition to the temporal tracks, the IPC also has classical and probabilistic tracks. You can find information about them on ipc2018.bitbucket.io.
Mailing List: https://groups.google.com/d/forum/ipc2018-temporal
|Call for domains / expression of interest||June 22, 2017|
|Domain submission deadline||November, 2017|
|Demo problems provided||January, 2017|
|Initial planner submission||February 18, 2018|
|Feature stop (final planner submission)||March 18, 2018|
|Planner Abstract submission deadline||April, 2018|
|Contest run||April - May, 2018|
|Results announced||June, 2018|
|Result analysis deadline||July, 2018|
There are two temporal tracks: 'satisficing' and 'on board'. The tracks differ in the amount of resources available. The evaluation criterion is plan quality within the time available. We encourage participants to enter their planner in both tracks.
IPC 2018 will use a subset of PDDL 2.2, as in previous years. Planners must support the subset of the language involving STRIPS, durative actions and action costs. Some domains will additionally require Timed Initial Literals, and numeric state variables. We will consider providing alternative domain definitions where practical.
As in previous editions, the competitors must submit the source code of their planners that will be run by the organizers on the actual competition domains/problems, unknown to the competitors until this time. This way no fine-tuning of the planners will be possible.
All competitors must submit an abstract (max. 300 words) and a 4-page paper describing their planners. After the competition we encourage the participants to analyze the results of their planner and submit an extended version of their abstract. An important requirement for IPC 2018 competitors is to give the organizers the right to post their paper and the source code of their planners on the official IPC 2018 web site.
We will use the container technology "Singularity" this year to promote reproducibility and help with compilation issues that have caused problems in the past. More details on Singularity can be found below.
To register your planner create a repository (mercurial and git repositories are accepted) on bitbucket and give read access to ipc2018-temporal-bot. Then create one branch per track you want to participate in and name it according to the following list.
We will build all planners once a day and run them on a number of test cases. You can see the results for your planner on the build status page. Test your Singularity file locally (see below) and make sure it passes our automated tests.
A planner is officially registered in a track if it has a green box for that track on the build status page on March 18. You can still make any code changes you want until April 10. The build status on the website will update (once a day) when you push new changes the registered branches.
We will fork your repository on February 20. If you find any bugs in your code afterwards (or if we detect any while running your code), you can create a pull request to our fork with a patch fixing the bug. Only bug fixes will be accepted after the deadline (in particular, we will not accept patches modifying behavior or tuning parameters).
In an effort to increase reproducibility and reduce the effort of running future IPCs, we are using software containers that contain the submitted planner and everything required to run it. We are using Singularity which is an alternative to the well-known Docker. Singularity (in contrast to Docker) is specifically designed for scientific experiments on HPC clusters and has low overhead.
Singularity containers can be viewed as light-weight alternatives to virtual machines that carry a program and all parts of the OS that are necessary to run it. They can be based on any docker image. We created an example submission ( Singularity file) that uses the latest Ubuntu as a basis and uses apt-get to install required packages for Fast Downward. It then builds the planner from the files that are next to the Singularity file in the repository.
In the following, we collect and answer frequently asked questions about Singularity. We'll update this section as we get more questions. If you run into problems using Singularity and your problem is not answered here, let us know.
You can install Singularity locally with the following commands (See the Singularity quick start guide for more details):
sudo apt install automake git clone https://github.com/singularityware/singularity.git cd singularity git checkout 2.4 ./autogen.sh ./configure --prefix=/usr/local make sudo make install
To test your Singularity script, please install Singularity (see above) and run the following commands (replacing our demo submission with your repository):
hg clone https://bitbucket.org/ipc2018-temporal/demo-submission -r ipc-2018-temp-sat sudo singularity build planner.img demo-submission/Singularity mkdir rundir cp path/to/domain.pddl rundir cp path/to/problem.pddl rundir RUNDIR="$(pwd)/rundir" DOMAIN="$RUNDIR/domain.pddl" PROBLEM="$RUNDIR/problem.pddl" PLANFILE="$RUNDIR/sas_plan" singularity run -C -H $RUNDIR planner.img $DOMAIN $PROBLEM $PLANFILE
The last command also shows how we will call the container during the competition: the parameter "-H" mounts the directory containing the PDDL files into the file system of the container and uses it as the user's home directory. The parameter "-C" then isolates the container from the rest of the system. Only files written to the mounted directory will be stored permanently. Other created files (for example in /tmp) only persist for the current session and are cleaned up afterwards. When running the container on two instances at the same time, their run directories and sessions will be different, so the two runs cannot interact. The container itself is read-only after its creation.
We will also build your code about once per day and show the results for all planners on the build status page
but files written there will be deleted after the run. See the question above for how to set up Singularity in this way for testing.
Please contact us if your license does not permit you to package the library into the container.
If we can acquire a license, we will mount the
installation files for the library while building the
container. You can then copy the installation file into
the container in the
%setup step and
install it in the
We currently have a license for CPLEX and make the installer for version 12.7.1 (64 bit) available during setup. You can see an example of the installation in the multi-core track of our demo submission. For all other libraries, please get in touch with us as soon as possible.
Bootstrap: dockeris then parsed as
Bootstrap: docker\rand not recognized. Using Linux-style line endings should fix the issue.
Input: The runscript specified in the Singularity file should accept 3 parameters (4 in the cost bounded track):
./runscript <domain> <problem> <plan-output-file> [<cost-bound>]
Output: The planner must write the plan file(s) in the location specified in <plan-output-file>, except in the satisficing track where plans can also be written in files <plan-output-file>.1, <plan-output-file>.2, <plan-output-file>.3, etc.
Random Seed: We won't provide any random seed as part of the input to the planners. However, for the sake of replicability of the experiments, we ask all participants to fix a random seed and make their planner behaviour as deterministic as possible.
Optional Log Output: As part as the competition results we would like to publish detailed data about the participant planners that helps to understand the competition results in more detail. For that, we would like your collaboration in printing some stats about your planner that can be parsed afterwards. This is completely optional and we will not rely on this data to determine the winner. We will parse the following information: