Ecole
Ecole (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).
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
conda install -c conda-forge ecole
All dependencies are resolved by conda, no compiler is required.
Pip wheel (binary)
Currently unavailable.
Pip source
- Building from source requires:
A SCIP installation.
pip install ecole
Other Options
Checkout the installation instructions in the documentation for more installation options.
Use It, Cite It
If you use Ecole in a scientific publication, please cite the Ecole publication
@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}
}
Metadata
Release files for ecole 0.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ecole-0.8.1.tar.gz | 380.4 kB | Without provenance | Details for ecole-0.8.1.tar.gz |
Release files / ecole-0.8.1.tar.gz
| Download URL | ecole-0.8.1.tar.gz |
|---|---|
| Size | 380.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5c90d685be1446acd23a39d96871e88375909787cc3f186d40ceddcbba45ba16
|
|
BLAKE2b-256 checksum How to use checksums |
e0369595169e1dd0a8c0e14a4d2e42826f1127a23abeba33a82bc6e49c5fe9ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/0.0.0 CPython/3.10.4
|
Security for ecole 0.8.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.