https://github.com/ds4dm/ecole
Extensible Combinatorial Optimization Learning Environments
https://github.com/ds4dm/ecole
combinatorial-optimization gym markov-decision-processes ml scip
Last synced: 6 months ago
JSON representation
Extensible Combinatorial Optimization Learning Environments
- Host: GitHub
- URL: https://github.com/ds4dm/ecole
- Owner: ds4dm
- License: bsd-3-clause
- Created: 2019-10-18T13:59:52.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-02-16T03:15:38.000Z (over 2 years ago)
- Last Synced: 2025-04-02T04:04:19.553Z (6 months ago)
- Topics: combinatorial-optimization, gym, markov-decision-processes, ml, scip
- Language: C++
- Homepage: https://www.ecole.ai
- Size: 2.32 MB
- Stars: 340
- Watchers: 6
- Forks: 72
- Open Issues: 58
-
Metadata Files:
- Readme: README.rst
- Contributing: docs/contributing.rst
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
⚠️ **Warning** ⚠️
*Ecole is looking for a new home.*
*It is not being actively developed, only critical issues will be investigated.*.. image:: https://raw.githubusercontent.com/ds4dm/ecole/master/docs/_static/images/ecole-logo.svg
:target: https://www.ecole.ai
:alt: Ecole logo
:width: 30 %
:align: rightEcole
=====.. image:: https://github.com/ds4dm/ecole/actions/workflows/continuous-testing.yml/badge.svg
:target: https://github.com/ds4dm/ecole/actions/workflows/continuous-testing.yml
:alt: Test and deploy on Github ActionsEcole (pronounced [ekɔl]) 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 (*i.e.*, Reinforcement Learning environments).
Rather than trying to predict solutions to combinatorial optimization problems directly, the
philosophy behind Ecole is to work
in cooperation with a state-of-the-art Mixed Integer Linear Programming solver
that acts as a controllable algorithm.The underlying solver used is `SCIP `_, and the user facing API is
meant to mimic the `OpenAI Gym `_ API (as much as possible)... code-block:: python
import ecole
env = ecole.environment.Branching(
reward_function=-1.5 * ecole.reward.LpIterations() ** 2,
observation_function=ecole.observation.NodeBipartite(),
)
instances = ecole.instance.SetCoverGenerator()for _ in range(10):
obs, action_set, reward_offset, done, info = env.reset(next(instances))
while not done:
obs, action_set, reward, done, info = env.step(action_set[0])Documentation
-------------
Consult the `user Documentation `_ for tutorials, examples, and library reference.Discussions and help
--------------------
Head to `Github Discussions `_ for interaction with the community: give
and recieve help, discuss intresting envirnoment, rewards function, and instances generators.Installation
------------
Conda
^^^^^.. image:: https://img.shields.io/conda/vn/conda-forge/ecole?label=version&logo=conda-forge
:target: https://anaconda.org/conda-forge/ecole
:alt: Conda-Forge version
.. image:: https://img.shields.io/conda/pn/conda-forge/ecole?logo=conda-forge
:target: https://anaconda.org/conda-forge/ecole
:alt: Conda-Forge platforms.. code-block:: bash
conda install -c conda-forge ecole
All dependencies are resolved by conda, no compiler is required.
Pip wheel (binary)
^^^^^^^^^^^^^^^^^^
Currently unavailable.Pip source
^^^^^^^^^^^
.. image:: https://img.shields.io/pypi/v/ecole?logo=python
:target: https://pypi.org/project/ecole/
:alt: PyPI versionBuilding from source requires:
- A `C++17 compiler `_,
- A `SCIP `__ installation... code-block:: bash
pip install ecole
Other Options
^^^^^^^^^^^^^
Checkout the `installation instructions `_ in the
documentation for more installation options.Related Projects
----------------* `OR-Gym `_ is a gym-like library providing gym-like environments to produce feasible solutions
directly, without the need for an MILP solver;
* `MIPLearn `_ for learning to configure solvers.Use It, Cite It
---------------.. image:: https://img.shields.io/badge/arxiv-2011.06069-red
:target: https://arxiv.org/abs/2011.06069
:alt: Ecole publication on ArxivIf you use Ecole in a scientific publication, please cite the Ecole publication
.. code-block:: text
@inproceedings{
prouvost2020ecole,
title={Ecole: A Gym-like Library for Machine Learning in Combinatorial Optimization Solvers},
author={Antoine Prouvost and Justin Dumouchelle and Lara Scavuzzo and Maxime Gasse and Didier Ch{\'e}telat and Andrea Lodi},
booktitle={Learning Meets Combinatorial Algorithms at NeurIPS2020},
year={2020},
url={https://openreview.net/forum?id=IVc9hqgibyB}
}