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.6.1.dev2.tar.gz (340.8 kB view details)

Uploaded Source

File details

Details for the file ecole-0.6.1.dev2.tar.gz.

File metadata

  • Download URL: ecole-0.6.1.dev2.tar.gz
  • Upload date:
  • Size: 340.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for ecole-0.6.1.dev2.tar.gz
Algorithm Hash digest
SHA256 061c502cc35020f4d0c09ccd184965718495e5584975f042fa0924a12cc26592
MD5 99867e3a66268ee89ebfa37214373a9f
BLAKE2b-256 4f17d12638679f52a2fc5c85468503fae9fbe5d78d3987d8ba8bdfb49cf47d43

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