Ecole stands for Extensible Combinatorial Optimization Learning Environments and aims to expose a number of control problems arising in combinatorial optimization solvers as Markov Decision Processes. Rather than trying to predict solutions to combinatorial optimization problems directly, the philosophy behind Ecole is to work in cooperation with the state-of-the-art Mixed Integer Linear Programming solver SCIP that acts as a controllable algorithm.

Ecole provide a collection of computationally efficient, ready to use, learning environments that are also easy to extend to define novel objectives.



  • Easy to use

    Ecole is accessible in Python, easy to install, and present a familiar OpenAi-Gym like interface.

  • Fast

    Ecole is written in efficient C++ (SCIP is written in C) and does not hold the GIL.

  • Extensible

    Ecole is composed of building blocks that can be created and swapped from Python. Ecole is also fully compatible with PyScipOpt.

About Us

Ecole was created and is developed in the Canada Excellence Research Chair in Data Science for Decision Making (CERC DS4DM). Our group is part of the Polytechnique School in Montreal and conduct research on a variety of topics in operations research and machine learning. One such topic is the use of machine learning for assisting in the low level decisions arising inside combinatorial optimization algorithms. We soon realized that such ambitious goals required significant software engineering efforts and decided to start the developement of tools to share with the community.

We work in collaboration with researchers of the Zuse Institute Berlin who develop the SCIP solver.

The DS4DM research group