Algorithms & Complexity

Fine-Grained Algorithm Design and Engineering

General Information:


You are welcome to join the first meeting even if you are not yet registered and
only want to learn more about the course. Please send us a mail beforehand if
you cannot make it but still want to take the course.

Slides:

coming soon

Content:

This course offers the opportunity to design and engineer practically fast
solvers for selected algorithmic problems in the setting of an algorithmic
challenge.

Algorithmic challenges lie at the intersection of theoretical and practical
algorithm research. Given a well-defined problem, contestants have a several
months to develop a solver for the stated problem. The solver is subsequently
evaluated on secret instances and scored by runtime and/or quality of produced
solutions.

In this course, students will receive a topic among a list of possible
algorithmic problems with relevance for fine-grained and parameterized
complexity (usually from the fields of graph theory, computational geometry
or string problems). The topics are often inspired from current algorithmic
challenges (e.g., the PACE challenge or CG:SHOP competition), providing an
opportunity of participation as part of the course.

Under supervision, each group will:

  • research the theoretical state-of-the-art for their algorithmic problem
    and/or design a novel algorithm,
  • implement one or more algorithmic approaches
  • evaluate and improve them using appropriate benchmark data sets.

The course aims to investigate the connections between worst-case upper &
conditional lower bounds and fast practical implementations.

While we do not expect you to actually participate in any challenges, we
encourage you doing so and will assist you with the submission.

Workload:

6 CP correspond to ~ 180 h, distributed roughly as follows:

  • about 40 h meetings, literature review, etc.
  • about 100 h implementation and evaluation
  • about 40 h preparation of presentation and report

Competency goals:

Students should be able to apply knowledge in the specializations
“Algorithmtechnik” and “Theoretische Grundlagen” to derive fast algorithms
and their implementations for a given algorithmic problem.

This includes:

  • modeling a given problem of interest as a well-defined algorithmic problem
    as well as identification of reasonable relaxations
  • performing a literature search to identify algorithmic ideas previously
    proposed for a given problem
  • researching a given algorithmic or conditional lower bound technique and
    investigating its applicability on a given problem
  • implementing resulting algorithms efficiently
  • creating reasonable benchmark data sets (generated randomly, via
    reductions or from real-world data sources)
  • evaluating an implementation on benchmark data and gaining insights
    on possible improvements of the model, algorithm, or implementation.


Furthermore, the students can constructively engage in a team setting and
are able to clearly communicate their ideas and results.

Competency certificate:

The assessment is carried out as an examination of another type (§ 4 Abs. 2
No. 3 SPO). The overall impression is evaluated. The following partial
aspects are included in the grading: Project report and presentation.
Students may redraw from the examination during the first two weeks after
the topic has been communicated. The assessment can be repeated once.

Recommendations:

  • Basic knowledge of theoretical computer science and algorithm design is strongly recommended.
  • Knowledge of parameterized algorithms or fine-grained complexity is helpful, but not required.