All Projects → ds4dm → ecole

ds4dm / ecole

Licence: BSD-3-Clause license
Extensible Combinatorial Optimization Learning Environments

Programming Languages

C++
36643 projects - #6 most used programming language
JetBrains MPS
11 projects
python
139335 projects - #7 most used programming language
CMake
9771 projects
shell
77523 projects

Projects that are alternatives of or similar to ecole

Atari
AI research environment for the Atari 2600 games 🤖.
Stars: ✭ 174 (-30.12%)
Mutual labels:  ml, gym
safe-control-gym
PyBullet CartPole and Quadrotor environments—with CasADi symbolic a priori dynamics—for learning-based control and RL
Stars: ✭ 272 (+9.24%)
Mutual labels:  gym
neptune-client
📒 Experiment tracking tool and model registry
Stars: ✭ 348 (+39.76%)
Mutual labels:  ml
aws-experiments-comprehend-custom-classifier
How to train a custom NLP classifier with AWS Comprehend?
Stars: ✭ 25 (-89.96%)
Mutual labels:  ml
mlapp
MLApp is a Python library for building scalable data science solutions that meet modern software engineering standards.
Stars: ✭ 42 (-83.13%)
Mutual labels:  ml
rs datasets
Tool for autodownloading recommendation systems datasets
Stars: ✭ 22 (-91.16%)
Mutual labels:  ml
freqtrade-gym
A customized gym environment for developing and comparing reinforcement learning algorithms in crypto trading.
Stars: ✭ 192 (-22.89%)
Mutual labels:  gym
cheatsheets-ai-fork
Cheat Sheets for deep learning and machine learning.
Stars: ✭ 21 (-91.57%)
Mutual labels:  ml
azureml-cheatsheets
Azure Machine Learning Cheat Sheets
Stars: ✭ 23 (-90.76%)
Mutual labels:  ml
creative-prediction
Creative Prediction with Neural Networks
Stars: ✭ 22 (-91.16%)
Mutual labels:  ml
responsible-ai-toolbox
This project provides responsible AI user interfaces for Fairlearn, interpret-community, and Error Analysis, as well as foundational building blocks that they rely on.
Stars: ✭ 615 (+146.99%)
Mutual labels:  ml
hierarchical-dnn-interpretations
Using / reproducing ACD from the paper "Hierarchical interpretations for neural network predictions" 🧠 (ICLR 2019)
Stars: ✭ 110 (-55.82%)
Mutual labels:  ml
pmml4s
PMML scoring library for Scala
Stars: ✭ 49 (-80.32%)
Mutual labels:  ml
deep-significance
Enabling easy statistical significance testing for deep neural networks.
Stars: ✭ 266 (+6.83%)
Mutual labels:  ml
mlflow-docker
Ready to run docker-compose configuration for ML Flow with Mysql and Minio S3
Stars: ✭ 146 (-41.37%)
Mutual labels:  ml
neural inverse knitting
Code for Neural Inverse Knitting: From Images to Manufacturing Instructions
Stars: ✭ 30 (-87.95%)
Mutual labels:  ml
pmml4s-spark
PMML scoring library for Spark as SparkML Transformer
Stars: ✭ 16 (-93.57%)
Mutual labels:  ml
GoBigger
Come & try Decision-Intelligence version of "Agar"! Gobigger could also help you with multi-agent decision intelligence study.
Stars: ✭ 410 (+64.66%)
Mutual labels:  gym
lukai
Luk.ai Clients - Federated Machine Learning for Everyone!
Stars: ✭ 20 (-91.97%)
Mutual labels:  ml
GaussianNB
Gaussian Naive Bayes (GaussianNB) classifier
Stars: ✭ 17 (-93.17%)
Mutual labels:  ml

⚠️ Warning ⚠️

Ecole is looking for a new home. It is not being actively developed, only critical issues will be investigated.

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.

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

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}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].