Skip to main content

Algorithms research group

The Algorithms Research Group researches the efficiency and practicality of algorithms.

An algorithm is a list of instructions for using a set of tools on given ingredients to produce a desired product. The tools and ingredients can be physical or virtual. For example, a cooking recipe is an algorithm which uses kitchen tools on food ingredients to produce a meal, while a computer program is an algorithm that uses computer instructions on data to produce an answer to a problem. Algorithms research concerns the efficient use of computing resources such as time and memory.

Our group aims to conduct end-to-end research, which means that we strive to implement and engineer theoretical results into fast software for real-world problems. To that end, we use our expertise in mathematics and algorithm design to develop algorithms for a specific problem. Our proficiency in software engineering and computer architecture lets us turn these theoretical findings into workable and fast software, which we test against real-world data repositories to prove their practicality. We cover a broad range of areas among them:

Computational Complexity: Studies the limits of what algorithms and computation can achieve.

Parametrized Algorithms: Provides tailored algorithms which make use of secondary properties of input data.

Matroid Theory and Problems: Researches mathematical objects called matroids which are the basis of many efficient algorithms.

String algorithms: Solves problems specific to string data, like documents, websites or DNA code. (Sparse) Graph algorithms: Investigates how a network's structure can help design faster algorithms.

Sublinear Algorithms: Explores algorithms which solve problems without reading the whole input.

Numerical analysis: Studies the mathematics and software of fundamental numerical algorithms, particularly in kernel methods, approximation theory, optimization and numerical linear algebra.

Group members