Winter 2018/2019 - Algorithm Engineering

Informations about Algorithm Engineering

  • Lectures: Prof. Dr. Stefan Funke (Raum 1.111)
  • Tutorials: Daniel Bahrdt, Florian Barth, Filip Krumpe, Thomas Mendel, Tobias Rupp

Time and Location of Lectures/Tutorials:

Time Location Starting
Tue 14:00-15:30 0.457 16.10.18
Thu **14:00-15:30** **1.140** 18.10.18

Execise Sheets

Small Java program for visualizing line segments on an OSM map here.

OpenGL viewer for larger graphs here (unpack; mkdir build; cmake ../; make) with a sample file

stutt.gl.bz2 (view with ./simple -opengl3 -gf stutt.gl).

Individual Project

Every student has to implement one of the concepts covered in class. Current options are (to be extended):

  • CH construction (own implementation)
  • Hub Labels creation (for a given CH)
  • Transit Nodes (for a given CH)
  • Arc Flags + PHAST (for a given CH)

Scribe Notes

The lecture will be accompanied by scribe notes (current version here (updated 13.03.2019))Hints for the exam (updated 13.03.2019)

Contents (tentative)

In Algorithmics, one is interested in developing and designing algorithms which can solve a given problem as efficient as possible. For a theoretical computer scientist, this normally means to settle the computational complexity of the problem (Computable? NP-hard? PSPACE-hard? in P, NP, co-NP?) and then search for algorithms which are provably efficient, that is, comping up with fixed bounds on the time and space consumption by a rigorous mathematical analysis. And the less the resource consumption, the better the algorithm. But for real-world problems, as e.g. coming up with the best tours for a fleet of mail delivery vehicles, the algorithm with the best theoretical runtime is not automatically the most suitable algorithm. Here, it is more important, that the algorithm is actually implementable, produces quick and good solutions for the relevant instances and is flexible in case something new has to be considered. The scope of Algorithm Engineering is to design algorithms which work in both worlds. So we still aim for theoretical performance (and solution quality) guarantees, but equally important is the actual performance of the algorithm on real-world data, which makes implementation and evaluation mandatory. Note that AE is not the same as heuristic problem solving, where often optimality or even completeness is compromised in order to get some fast solution. Heuristics are typically not thoroughly analyzed but their validation is purely empirical. Topics will include amongst others:

  • Route Planning (e.g., how to answer queries in the mili- micro- or nanoseconds range instead of SECONDS via Dikstra
  • Information Retrieval (e.g., how to retrieve all movies that contain zombie and vampire in their short description)
  • (I)LP-based techniques – travelling salesperson, multicriteria shortest paths

Literatur

Manuscript about a theoretical analysis of speed-up techniques.

 

To the top of the page