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)