Foundations of Artificial Intelligence (FAI) Group
divider line


Spezialized Lecture: Automatic Planning


Organization. The course consists of oral lectures accompanied by programming exercises. Successful participation in the course yields 9 ECTS.

The course has two weekly slots of 90 minutes each, Mondays 10:15 -- 11:45, and Tuesdays 10:15 -- 11:45. Some Tuesdays slots are used for tutorials on paper exercises (see calendar below). Once every week, there will be a programming workshop for the programming exercises.

The lectures will take place in Building E1 3, HS003. The tutorials and programming workshops will take place either in that same room, or at the FAI offices (Building E1 1, room 3.06). Exact details will be announced in our Moodle system.

The lectures will be given by Prof. Dr. Joerg Hoffmann. The exercises will be organized by Cosmina Croitoru and Dr. Alvaro Torralba. All lectures and tutorials will be held in English.

The lecture slides will be made available for download here, i.e., on this web page. By contrast, all exercises material and all interaction -- registration, announcements, technical discussions -- will be available and run through our Moodle pages. Apart from the lecture slide publication, this web page here will remain fixed throughout the course. (For the curious amongst you: the lecture slides will be made available here, as opposed to the Moodle pages, so that people from outside Saarland university can access them as well.)

On our Moodle pages, you can login with your CS department account that you also use to login e.g. to the cloud, GOGS, or possibly other Moodle pages (i.e. your official s9xyabcd username with the new password you got from the CS department). If you have trouble with the login, contact Daniel Gnad). Go to "Automatic Planning (Winter 2017/2018)"; when prompted, enter key "UDS-PLAN-17".

In case you wonder: Yes, the course is very similar to last winter's Automatic Planning course.


Abstract. Automatic Planning is one of the fundamental sub-areas of Artificial Intelligence, concerned with algorithms that can generate strategies of action for arbitrary autonomous agents in arbitrary environments. The course will address so-called classical planning, where the actions and environment are assumed to be deterministic; this is a central area in planning, and has been the source of many influential ideas. It is also successfully applied in practice, as we will exemplify in the course. We will examine the technical core of the current research on solving this kind of problem. We will consider four different paradigms for automatically generating heuristic functions (lower bound solution cost estimators): critical paths, ignoring delete lists, abstractions, landmarks. Apart from understanding these techniques themselves, we will learn how to analyze, combine, and compare such estimators. We will furthermore consider optimality-preserving pruning techniques based on partial-order reduction, symmetries, and dominance pruning. The course consists mostly of research results from the last decade, and is very close to the current research frontier in planning.


Prerequisites. Ideally, participating students should have successfully completed an introductory course in Artificial Intelligence. However, the course is self-contained and any student with a solid basis in Computer Science -- algorithms, data structures, programming, propositional logic, NP-hardness -- should in principle be able to follow. Prior knowledge about search (the A* algorithm etc) is an advantage.


Exercises and ECTS. The course will be accompanied by two kinds of exercises, paper exercises and programming exercises. Each of the two kinds of exercises will be counted separately; each will have a seprate series of exercise sheets. To qualify for the exam, you need to obtain at least 50 points in each, paper exercises and programming exercises. (If you want to participate in future editions of this course, then you need to qualify anew; see also below.)

The paper exercises will involve applying the introduced concepts and algorithms to examples, and leading simple proofs. The paper exercise sheets will be handed out and submitted roughly in a biweekly cycle, i.e., in 2-week intervals. The submission deadline will be stated on each sheet.

The programming exercises will involve implementing some of the techniques discussed, starting from a code base (essentially the Fast Downward planning system, FD, implemented in C++) we will provide. In other words, you will build your own planning system as part of the course! We'll run a competition amongst these systems at the end of term. In light of the work involved in programming, we allow groups of 3 students working together. To further motivate the programming work, good performance in the programming can help you in getting a good exam grade (see below).

Furthermore, in the programming exercises, you will be given the choice of which techniques to implement: Instead of fixed programming tasks on regular sheets, you will obtain a list of programming options up front. Each "option" here is one technique from the course, along with: the number of points obtained by implementing that technique; the time point in the course at which the technique will be explained; the dependencies with other options; and the deadline for submitting your solution if you choose to implement the option. The latter deadlines are also listed in the calendar at the bottom of this page.

The tutorial sessions will be classical tutorials discussing the solutions to the already solved paper exercises. For the programming exercises, there will be an introductory session, on Wendsday, 25 October to familiarize the students with the FD code base. Later on, the programming exercises will be supported through weekly programming workshops. These workshops will serve to 1) offer individual support for the student teams, as well as 2) presentation of solutions to the supervisors. Each programming option is scheduled for the programming workshop the week after the submission deadline. Student teams who submit a solution for the option MUST attend the workshop, and explain their solution to the tutor. These explanations will be given on a team-by-team basis, i.e., in private discussion with the tutor.

To keep the regular programming workshops small, and to allow student flexibility in their time planning, we will offer two time slots, Wednesdays 16:15 -- 17:45 (E1 1, room 3.06) and Thursdays 16:15 -- 17:45 (E1.3 room 015). Students will need to register in Moodle for either of these two time slots; every student team must be together in the same time slot.

Comprehensive details regarding the programming exercises and their grading are given in the programming project description handout. Comprehensive details regarding the competition and the points you can achieve there are given in the competition rules handout.

A tip: To get started on the planning modeling language PDDL, a good idea may be to have a look at this archive with example files.


Exam and final grade. There will be a written exam at the end of the course. The final grade will be determined based on the performance in that exam, and the performance in the exercises.

For admission to the exam, you need to get at least 50 points from each of the paper and programming exercises.

The exam grade will be determined based on a combination of your performance in the programming exercises and the paper exercises. Precisely, let N be your number of points in the exam itself, and M be your number of points in the programming exercises. To pass the exam, N>=50 is required. Your grade will be determined from max(N, 0.5*N + 0.5*min(M,100)). In other words, your grade results from either your exam performance, or from the average over exam and programming exercises (the latter being reduced to 100 points in case you got more than 100 points in those exercises).

Depending on the outcome of the 1st exam, there may be a 2nd exam in the first half of April. If so, then, in compliance with the new study regulations each of the two exams will count as a separate attempt to pass the course. In particular, the grading rule for each exam (separately) will be as just explained.

ATTENTION! The re-exam is your only chance to improve your grade.


Course Material. Due to the recency of the material covered, there exists no text book for this course. There are two kinds of slides, pre-handouts and post-handouts. Pre-handouts do not contain the answers to questions asked during the lecture sessions, and do not contain the details for examples worked during the lecture sessions. The post-handouts do contain all this, and correct any bugs. The pre-handouts are made available one day before the lecture sessions on each chapter, the post-handouts are made available directly after the lecture sessions on a chapter are finished.

The following table provides the links to the hand-outs as the course progresses:

Chapter Title Dates Pre-Handouts Post-Handouts
1 About this Course Mon, 16.10.17 (None) 1 on 1, 4 on 1
Last change: Mon, 16.10.17
2 Planning Formalisms Tue, 17.10.17 1 on 1, 4 on 1
Last change: Tue, 17.10.17
1 on 1, 4 on 1
Last change: Tue, 17.10.17
3 PDDL Mon, 23.10.17 1 on 1, 4 on 1
Last change: Mon, 23.10.17
1 on 1, 4 on 1
Last change: Mon, 23.10.17
4 Applications Mon, 23.10.17 1 on 1, 4 on 1
Last change: Mon, 23.10.17
1 on 1, 4 on 1
Last change: Mon, 23.10.17
5 Causal Graphs Tue, 24.10.17 1 on 1, 4 on 1
Last change: Tue, 24.10.17
1 on 1, 4 on 1
Last change: Tue, 24.10.17
6 Progression and Regression Tue, 24.10.17; Thu, 02.11.17 1 on 1, 4 on 1
Last change: Tue, 24.10.17
1 on 1, 4 on 1
Last change: Fri, 03.11.17
7 Heuristic Search Thu, 02.11.17; Fri, 03.11.17 1 on 1, 4 on 1
Last change: Mon, 09.10.17
1 on 1, 4 on 1
Last change: Fri, 03.11.17
8 Critical Path Heuristics Fri, 03.11.17 1 on 1, 4 on 1
Last change: Fri, 03.11.17
1 on 1, 4 on 1
Last change: Fri, 03.11.17
9 Delete Relaxation Heuristics Mon, 06.11.17; Mon, 13.11.17 1 on 1, 4 on 1
Last change: Mon, 13.11.17
1 on 1, 4 on 1
Last change: Mon, 13.11.17
10 Partial Delete Relaxation Tue, 14.11.17; Mon, 20.11.17 1 on 1, 4 on 1
Last change: Mon, 20.11.17
1 on 1, 4 on 1
Last change: Mon, 20.11.17
11 Abstractions Mon, 20.11.17; Mon, 27.11.17 1 on 1, 4 on 1
Last change: Mon, 13.11.17
12 Pattern Database Heuristics Mon, 27.11.17; Tue, 28.11.17 1 on 1, 4 on 1
Last change: Mon, 13.11.17
13 Merge-and-Shrink Heuristics Mon, 04.12.17 1 on 1, 4 on 1
Last change: Mon, 13.11.17
14 Partial-Order Reduction Tue, 05.12.17 1 on 1, 4 on 1
Last change: Mon, 13.11.17
15 Landmark Heuristics Mon, 11.12.17; Tue, 12.12.17 1 on 1, 4 on 1
Last change: Mon, 13.11.17
16 Combining Heuristic Functions Tue, 12.12.17; Mon, 18.12.17 1 on 1, 4 on 1
Last change: Mon, 13.11.17
XX Christmas Surprise Lecture Tue, 19.12.17 (None)


Course Overview. The following table provides the provisional timing for the course. ATTENTION: Items displayed in red and blue deviate from the regular lecture days/times.

Date Lecturer Chapter(s) / Tutorials Exercise Deadlines
Mon, 16.10.17 Hoffmann About this Course
Tue, 17.10.17 Hoffmann Planning Formalisms
Mon, 23.10.17 Hoffmann PDDL; Applications
Tue, 24.10.17 Hoffmann Causal Graphs; Progression and Regression Paper exercise handout: tutorial 1
Wed, 25.10.17 Initial Programming Workshop
Mon, 30.10.17 FREE; Programming Projects Group Registration
Tue, 01.11.17 Public Holiday; Deadline: Paper Exercise Sheet 1
Thu, 02.11.17, 12:15--13:45 Hoffmann Progression and Regression; Heuristic Search
Fri, 03.11.17, 12:15--13:45 Hoffmann Heuristic Search; Critical Path Heuristics
Su, 05.11.17 Deadline: goal counting
Mon, 06.11.17 Hoffmann Delete Relaxation Heuristics
Tue, 07.11.17 Croitoru Tutorial 1 Paper exercise handout: tutorial 2
Mon, 12.11.17 Hoffmann Delete Relaxation Heuristics
Tue, 14.11.17 Hoffmann Partial Delete Relaxation; Deadline: Paper Exercise Sheet 2
Su, 19.11.17 Deadline: hmax, hadd
Mon, 20.11.17 Hoffmann Partial Delete Relaxation; Abstractions
Tue, 21.11.17 Croitoru Tutorial 2
Mon, 27.11.17 Hoffmann Abstractions; Pattern Database Heuristics
Tue, 28.11.17 Hoffmann Pattern Database Heuristics
Su, 03.12.17 Deadline: hFF
Mon, 04.12.17 Hoffmann Merge-and-Shrink Heuristics
Tue, 05.12.17 Hoffmann Partial-Order Reduction Paper exercise handout: tutorial 3
Su, 10.12.17 Deadline: h2, EHC
Mon, 11.12.17 Hoffmann Landmark Heuristics
Tue, 12.12.17 Hoffmann Landmark Heuristics; Combining Heuristic Functions; Deadline: Paper Exercise Sheet 3
Mon, 18.12.17 Hoffmann Combining Heuristic Functions
Tue, 19.12.17, 10:15--13:00 Croitoru, Hoffmann Tutorial 3, & Christmas Surprise Lecture (includes PIZZA lunch) Paper exercise handout: tutorial 4
CHRISTMAS BREAK
Su, 07.01.18 Deadline: RB, PDBs, MS
Mon, 08.01.18 FREE
Tue, 09.01.18 Hoffmann Comparing Heuristic Functions; Deadline: Tutorial 4
Su, 14.01.18 Deadline: POR, LM
Mon, 15.01.18 Hoffmann Search Space Surface Analysis
Tue, 16.01.18 Croitoru Tutorial 4 Paper exercise handout: tutorial 5
Su, 21.01.18 Deadline: HA, LMcut
Mon, 22.01.18 Hoffmann Search Space Surface Analysis
Tue, 23.01.18 Hoffmann Planning Systems and the IPC; Deadline: Paper Exercise Sheet 5
Tue, 25.01.18 Deadline: Competition Preliminary Submission
Tue, 28.01.18 Deadline: Competition Final Submission
Mon, 29.01.18 Hoffmann Exam Preparation
Tue, 30.01.18, 10:15--13:00 Tutorial 5, & Students' Planning Systems Competition
Tue, 06.02.18, 10:00--12:30, E1 3 HS003 Exam
Fri, 09.02.18, 10:00--12:00 Room 3.06, Building E1 1 Exam Inspection