- Algorithms & Complexity
- Computer Vision and Machine Learning
- Internet Architecture
- Computer Graphics
- Databases and Information Systems
- Visual Computing and Artificial Intelligence
- Research Group Computational Biology
- Automation of Logic
- Network and Cloud Systems

# Research Areas

- Combinatorics, Computing, and Randomness
We study fundamental algorithmic problems that arise in various fields of mathematics and computer science. Historically we have focused on problems in graph theory, algebra, data structures, and approximation and online algorithms. Discrete Mathematics deals with finite objects, which usually do not have an algebraic structure. Examples are graphs, sequences or set systems. Since such objects play a central role in computer science, there is a rich exchange between the two fields.

- Combinatorial Optimization
Many real world applications are naturally formulated as combinatorial optimization problems, i.e. problems of finding the best solution(s) out of a finite set. Various methods have been developed to tackle such problems: integer programming, fixed-parameter tractable and exact algorithms, approximation algorithms and combinatorial algorithms, among others. D1 works on applying these methods to various problems from different areas, ranging from bioinformatics to geometry, to scheduling, and several others.

- Computational Geometry
We work on efficient algorithms in computational geometry. We also make our algorithmic results available in mature software libraries such as CGAL.

- Algorithmic Game Theory
In the problems we consider in this group, we usually try to optimize some goal function while dealing with selfish agents that may have separate and conflicting goals, and that may lie to us in order to improve their own goal function. In algorithmic mechanism design, we ensure that it is in the best interest of the agents to tell us the truth. We also examine the price of anarchy and price of stability for various problems.

- Theory of Distributed and Embedded Systems
Broadly speaking, distributed computing concerns systems that consist of multiple agents that act based on local information. The main challenge is typically how agents gain access to sufficient information to collaboratively solve a task quickly, despite limits on communication, faults, or inaccurate data.

- Parameterized Algorithms and Complexity
Parameterized complexity analyzes how different parameters of the input influence the complexity of hard algorithmic problems. The general goal is to show with fixed-parameter tractability results that the combinatorial explosion can be confined to certain well-defined parameters, or to understand why such algorithms are not possible.

A detailed report of our work is given in the Fourteenth Biennial Report 2019 (173 MB).