Department of Computer Science | Institute of Theoretical Computer Science

CADMO - Center for Algorithms, Discrete Mathematics and Optimization

Algorithm Consulting Service – CADMO | ETH Zürich

Algorithm Consulting Service


We want to make our algorithmic expertise accessible to other researchers, especially to researchers and students from other departments or institutions of the ETH domain. We offer you the opportunity to discuss your algorithmic problems with an algorithm consultant, who will try to help you to solve your problems in an efficient way.

General Procedure

After your first contact by email or phone, the consulting service will usually start with a meeting in which we clarify the problem by discussing the input and desired output of your problem. In the best case we can solve your problem immediately, otherwise we will schedule one or several follow-up meeting.

Input From Your Side

We have broad knowledge in algorithmics, but we have no expertise in your field. Therefore we can only be of limited help in finding out what you want to compute -- our expertise is how you can compute it efficiently. So at our first meeting you should already have some idea of what the input of your problem is, and what output you would like to have from the algorithm. For example, it will be very helpful if you can provide a small example of the form "If I give the following data to the algorithm, I want that it gives the following output."

What We Can Provide

In your meeting you will get in contact with a senior algorithms researcher, who in turn may consult other researchers of the CADMO group to provide you with the combined expertise of our group. Our help may be of various nature, depending on your problem:

  • In the optimal case, we will be able to identify your problem as a solved algorithmic problem, and show you how it can be solved efficiently. We will then point you to some literature and/or algorithm library with the desired code and explain how to use or implement the solution.

  • Not all algorithmic problems admit efficient solutions. Sometimes it may turn out that your initial formulation cannot be solved efficiently. In this case we will discuss with you how the problem can be modified so that efficient solutions are available.

  • In some cases your problem may turn out to be too complex to solve with our personnel resources. In these cases, there are still two possible solutions:

    • We may be able to refer you to a colleague who has an interest to solve the problem in a collaborative research project.

    • We may pose the problem in our Interdisciplinary Algorithms Development Lab, in which small groups of students are given open algorithmic research questions to work on. Obviously this is only an option if your problem is not time-critical.

What We Cannot Provide

Example Cases

  • You have a collection of n drones. At time t1 they should occupy positions x1, ..., xn, and at a later time they should occupy positions y1, ..., yn. Which drone should fly to which position, if you want to minimize the transfer time?

  • You have a pipetting robot that can perform fully automated liquid handling operations and is able to conduct various experiments. The main component of this robot is a movable unit with pipetting tips that can be moved across a 96-well plate. How can we arrange it so that the four tips can be used in parallel as often as possible? Can we reorder the operations to minimize the number of wells or the total time until completion?

  • You have a DNA sequence S which you can describe as a sequence of the letters A,C,G,T. You also have a subsequence T, and you want to find a part of S which is as similar as possible to T. Which subsequence of S can you generate from T with the smallest number of edits (insertions, deletions, or replacement of letters)?

Get in Touch

When you first contact us, please tell us your position and department, and give us a brief description of the problem. The description does not have to be precise - we will work out the exact formulation in the first meeting. You can also make an informal inquiry by phone or email.

Academic Staff

The Consulting Service is led by Senior Researcher Johannes Lengler.


Dr. Lengler has an extraordinarily broad research spectrum, reaching from pure mathematics to neuroscience. He received his PhD in mathematics (algebraic number theory) at Saarland University, but switched to computer science when he joined ETHZ in 2010. Within computer science, his main research areas include nature-inspired optimization algorithms, random graph models for large real-world networks, and stochastic processes in graphs and networks. During his time at ETH Lengler also acquired a background in computational neuroscience and performed several studies in this field. Other publications of Lengler are concerned with efficient communication protocols, the power of decision-makers with limited choices, computational geometry, and quantum computing.


Dr. Tomas Hruz obtained his MSc title in Mathematics from Prague Technical University. After that Dr. Hruz worked in various research fields ranging from computer science to engineering, where he was interested mainly in mathematical modeling and algorithmic simulation of various phenomena occurring in these domains. Dr. Hruz joined ETHZ in 2004 and his research interests stayed in algorithmic modeling of systems and phenomena from applied fields, mainly in algorithms applied to bioinformatics, in high dimensional geometry applied to data science and in stochastic processes for large graphs.


Johannes Lengler
ETH Zürich
CADMO, Algorithm Consulting Service
HG G 37.1
Universitätsstrasse 6
8092 Zürich

Phone: +41 44 632 7053