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, Tuesdays 14:15 -- 15:45, and Wednesdays 10:15 -- 11:45. Some slots are used for tutorials on paper exercises (see calendar below). The programming exercises will be supported with an introductory programming workshop and weekly office hours. All teaching will be done in English.
All lectures and tutorials, as well as the introductory programming workshop, will take place in zoom, specifically here: https://cs-uni-saarland-de.zoom.us/j/98696736217
We have decided to use zoom for lecturing as it provides superior functionality and usability, including seamless live interaction and smooth integration of a whiteboard. If you are concerned about privacy, we encourage you to enter the zoom meeting under a nickname or pseudonym, and use only the textual chat for communication. Furthermore, the lectures will be streamed live to YouTube, so you can choose to watch there instead (the YouTube link will be given in the zoom meeting at the start of the lecture).
The lectures will be given by Prof. Joerg Hoffmann, Daniel Gnad, Daniel Fišer, and Daniel Hoeller, the tutorials will be given by Rebecca Eifler. Daniel Fišer, and Marcel Steinmetz will tutor the programming exercises.
Exercises and ECTS. The course will be accompanied by two kinds of exercises, paper exercises and programming exercises. The programming exercises are split into two parts. For the first part, you have to solve two projects individually. For the remaining projects, you are allowed to form groups of up to three students. To qualify for the exam, you need to obtain 50% from the individual programming exercises as well as 50 points from the programming exercises overall. (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 roughly in a biweekly cycle, i.e., in 2-week intervals. While the paper exercises are not mandatory to pass the course, they feature exercises similar to those in the exam so we highly recommend you try to solve them before the corresponding tutorials.
The tutorial sessions will be classical tutorials discussing the solutions to paper exercises.
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 among these systems at the end of term, and 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.
To get you started on the FD code base, there will be an introductory programming workshop on Thursday November 4 at 14:15-15:15. After that, there will be an office hour offering help with the programming, on Mondays at 11:00 am.
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, or import some benchmarks in the planning.domains editor.
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% from the individual programming exercises as well as 50 points from the programming exercises overall.
The final grade will be determined based on a combination of your performance in the programming exercises and exam. 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,110)). In other words, your grade results from either your exam performance, or from a weighted sum over exam and programming exercises (the latter being reduced to 110 points in case you got more than 110 points in those exercises).
Depending on the outcome of the 1st exam, there may be a 2nd exam end of March/beginning of April. If so, then, in compliance with the 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.
- By the study regulations, if you do not pass this edition of the course (if you fail, or are absent, in both the exam and the re-exam), then you can participate in future editions of the course as additional attempts to pass the course. (In this case, you need to qualify anew for the exam of that edition of the course.)
- If you do pass this edition of the course, then you cannot improve your grade anymore. The only exception to the latter is if you already pass the exam: in that case, you can try to improve your grade in the re-exam.
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.
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. See also the calendar here.
Date | Lecturer | Chapter(s) / Tutorials | Exercise Deadlines |
Tue 19.10 | Hoffmann | About this course | |
Wed 20.10 | Hoffmann | Planning Formalisms | |
Tue 26.10 | Hoffmann | PDDL; Applications | Paper Exercise Handout: Sheet 1 |
Wed 27.10 | Hoffmann | Causal Graphs | |
Tue 02.11 | Hoffmann | Progression and Regression; Heuristic Search | |
Wed 03.11 | Hoffmann | Heuristic Search; Critical Path Heuristics | |
Thu 04.11 | Gnad | Programming Workshop | |
Tue 09.11 | Hoffmann | Delete Relaxation Heuristics | |
Wed 10.11 | Eifler | Tutorial 1 |
Paper Exercise Handout: Sheet 2; Thu 11.11. Deadline: Goal Counting |
Tue 16.11 | Hoffmann | Delete Relaxation Heuristics | |
Wed 17.11 | Gnad | Partial Delete Relaxation | |
Tue 23.11 | Gnad | Partial Delete Relaxation; Abstractions | |
Wed 24.11 | Eifler | Tutorial 2 | Paper Exercise Handout: Sheet 3 |
Tue 30.11 | Fiser | Abstractions; Pattern Database Heuristics | |
Wed 01.12 | Fiser | Pattern Database Heuristics |
Thu 02.12. Deadline: hmax, hadd; Sun 05.12 Deadline: Project Groups |
Tue 07.12 | Fiser | Merge-and-Shrink Heuristics | |
Wed 08.12 | Gnad | Partial-Order Reduction | |
Tue 14.12 | Höller | Landmark Heuristics | |
Wed 15.12 | Eifler | Tutorial 3 |
Paper Exercise Handout: Sheet 4 Thu 16.12. Deadline: hFF, h2, EHC |
Christmas Break | |||
Tue 04.01 | NO LECTURE |
|
|
Wed 05.01 | Höller | Landmark Heuristics; Combining Heuristic Functions | |
Tue 11.01 | Höller | Combining Heuristic Functions | |
Wed 12.01 | Höller | Comparing Heuristic Functions | Thu 13.01. Deadline: PDBs, M&S, RB |
Tue 18.01 | Höller/Gnad | Comparing Heuristic Functions; Decoupled State Space Search |
|
Wed 19.01 | Eifler | Tutorial 4 |
Paper Exercise Handout: Sheet 5 Thu 20.01. Deadline: POR, LM, HA |
Tue 25.01 | Gnad | Decoupled State Space Search |
|
Wed 26.01 | Hoffmann | Towards Trust in Neural Action Policies | Thu 27.01. Deadline: LMcut |
Tue 01.02 | Höller | Planning Systems and the IPC | |
Wed 02.02 | Eifler | Tutorial 5 |
Thu 03.02. Deadline: Competition (prelim.) Sun 06.02. Deadline: Competition (final) |
Tue 08.02 | TBA | Exam Preparation | |
We 09.02 | Fiser/Eifler | Students' Planning Systems Competition | |
We 16.02 | Exam |