TL;DR: This year at NeurIPS 2021 there is brand new competition: improving integer programming solvers by machine learning. The learning problems are quite different than your usual suspects requiring non-standard learning approaches.

So you are tired of classifying cats and dogs? You are done with Kaggle competitions? How about trying something new? This year at NeurIPS there will be a new competition „Machine Learning for Discrete Optimization (ML4CO)“ which is about improving Integer Programming Solvers by means of Machine Learning.


In contrast to many other learning tasks the associated learning problems have a couple of characteristics that make them especially hard:

  1. Sampling and data acquisition is usually quite expensive and noisy
  2. There are strong interactions between decisions
  3. There are lots of long-range dependencies

So if you want to try something different, this might be a good chance. The (semi-)official announcement roughly reads as follows:

The Machine Learning for Combinatorial Optimization (ML4CO) NeurIPS 2021 competition aims at improving state-of-the-art combinatorial optimization solvers by replacing / integrating key heuristic components with machine learning models. The competition’s main scientific question is the following: is machine learning a viable option for improving traditional combinatorial optimization solvers on specific problem distributions, when historical data is available?

The webpage of the competition with all necessary information is

and the preregistration form is

The ML4CO organizers

There will be three tasks that one can compete in this year:


The first one is really about primal solutions: producing new feasible solutions with good objective function values fast in order to minimize the so-called primal integral.

The second task is about closing the dual gap: learning to select branching variables. This can have many positive effects in the solution process and the aggregate measure that is considered here is the dual integral.

Finally, the third task is more of a traditional configuration learning task. Integer Programming solvers’ performance heavily depends on the chosen parameters. The task here is to learn a good set of parameters for a given problem instance and the considered metric is the primal-dual integral.

This competition is gonna be lit 🔥 and the whole team is super excited to see what y’all come up with!