Welcome to the website of the
Theoretical Computer Science group
The focus of our research group is the area of…
Algorithm Engineering
This term is relatively new,
But without further ado:
Upon being asked to concisely define,
I'm sorry, I have to decline.
Algorithm Engineering focuses on the gap between the purely theoretical analysis of algorithms and the practical run-time performance. Such gaps may arise, e.g., by hiding huge constants in the Big-O-notation; or by using the traditional von Neumann memory/machine model, even though current computers tend to have a deep memory hierarchy (caches, RAM, HDD) with different access speeds. Also, certain analyzed worst-case scenarios may be irrelevant for practical applications, and certain potentially beneficial input properties were not exploited.
Especially – and this is the main research focus of this group – when considering NP-hard optimization problems, it often turns out that by using suitable techniques, computing provable optimal solutions may not be as practically intractable as expected…
For a more in-depth introduction into this growing research field, see, e.g.:
- M. Chimani and K. Klein. Algorithm Engineering: Concepts and Practice. Chapter in: Experimental Methods for the Analysis of Optimization Algorithms. T. Bartz-Beielstein, M. Chiarandini, L. Paquete, M. Preuss (Eds.), Springer 2010. (Link to preprint of chapter)
Topics
Our central topics of interest are, among others,
- Graph drawing & graph theory (e.g., crossing numbers, upward drawings, clustered drawings,…)
- Network design (Steiner trees, -networks and relatives)
- Exact ILP approaches and approximation algorithms (for the above topics; both theoretical and in practice)