Skip to main content

Extensible Combinatorial Optimization Learning Environments

Project description

Ecole logo

Ecole

Test and deploy on Github Actions

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-Forge version Conda-Forge platforms
conda install -c conda-forge ecole

All dependencies are resolved by conda, no compiler is required.

Pip wheel (binary)

Currently unavailable.

Pip source

PyPI version
Building from source requires:
pip install ecole

Other Options

Checkout the installation instructions in the documentation for more installation options.

Use It, Cite It

Ecole publication on Arxiv

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}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ecole-0.8.0.dev5.tar.gz (382.2 kB view details)

Uploaded Source

File details

Details for the file ecole-0.8.0.dev5.tar.gz.

File metadata

  • Download URL: ecole-0.8.0.dev5.tar.gz
  • Upload date:
  • Size: 382.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.0.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for ecole-0.8.0.dev5.tar.gz
Algorithm Hash digest
SHA256 0cc0f23de5f70b6ac858b858ec092557bc67cf18ff8c51ba1b98845b23d5aa32
MD5 63a3e39073cd0c9ba9e9427f5906c924
BLAKE2b-256 f6e2c3ace1b7466df8e6fc0d4427931aaae5a71203c50a3c00c20eafd50c1213

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page