{"id":26129833,"url":"https://github.com/ds4dm/ecole","last_synced_at":"2025-04-09T05:09:10.507Z","repository":{"id":37405710,"uuid":"216036405","full_name":"ds4dm/ecole","owner":"ds4dm","description":"Extensible Combinatorial Optimization Learning Environments","archived":false,"fork":false,"pushed_at":"2023-02-16T03:15:38.000Z","size":2434,"stargazers_count":340,"open_issues_count":58,"forks_count":72,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-02T04:04:19.553Z","etag":null,"topics":["combinatorial-optimization","gym","markov-decision-processes","ml","scip"],"latest_commit_sha":null,"homepage":"https://www.ecole.ai","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ds4dm.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"docs/contributing.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS"}},"created_at":"2019-10-18T13:59:52.000Z","updated_at":"2025-04-01T06:33:26.000Z","dependencies_parsed_at":"2024-01-14T20:49:18.807Z","dependency_job_id":"2006e1ff-0471-4287-b05c-1708b72b4414","html_url":"https://github.com/ds4dm/ecole","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ds4dm%2Fecole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ds4dm%2Fecole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ds4dm%2Fecole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ds4dm%2Fecole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ds4dm","download_url":"https://codeload.github.com/ds4dm/ecole/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247980837,"owners_count":21027808,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["combinatorial-optimization","gym","markov-decision-processes","ml","scip"],"created_at":"2025-03-10T19:59:23.953Z","updated_at":"2025-04-09T05:09:10.476Z","avatar_url":"https://github.com/ds4dm.png","language":"C++","readme":"⚠️ **Warning** ⚠️\n\n*Ecole is looking for a new home.*\n*It is not being actively developed, only critical issues will be investigated.*\n\n\n.. image:: https://raw.githubusercontent.com/ds4dm/ecole/master/docs/_static/images/ecole-logo.svg\n   :target: https://www.ecole.ai\n   :alt: Ecole logo\n   :width: 30 %\n   :align: right\n\nEcole\n=====\n\n.. image:: https://github.com/ds4dm/ecole/actions/workflows/continuous-testing.yml/badge.svg\n   :target: https://github.com/ds4dm/ecole/actions/workflows/continuous-testing.yml\n   :alt: Test and deploy on Github Actions\n\nEcole (pronounced [ekɔl]) stands for *Extensible Combinatorial Optimization Learning\nEnvironments* and aims to expose a number of control problems arising in combinatorial\noptimization solvers as Markov\nDecision Processes (*i.e.*, Reinforcement Learning environments).\nRather than trying to predict solutions to combinatorial optimization problems directly, the\nphilosophy behind Ecole is to work\nin cooperation with a state-of-the-art Mixed Integer Linear Programming solver\nthat acts as a controllable algorithm.\n\nThe underlying solver used is `SCIP \u003chttps://scip.zib.de/\u003e`_, and the user facing API is\nmeant to mimic the `OpenAI Gym \u003chttps://www.gymlibrary.dev/\u003e`_ API (as much as possible).\n\n.. code-block:: python\n\n   import ecole\n\n   env = ecole.environment.Branching(\n       reward_function=-1.5 * ecole.reward.LpIterations() ** 2,\n       observation_function=ecole.observation.NodeBipartite(),\n   )\n   instances = ecole.instance.SetCoverGenerator()\n\n   for _ in range(10):\n       obs, action_set, reward_offset, done, info = env.reset(next(instances))\n       while not done:\n           obs, action_set, reward, done, info = env.step(action_set[0])\n\n\nDocumentation\n-------------\nConsult the `user Documentation \u003chttps://doc.ecole.ai\u003e`_ for tutorials, examples, and library reference.\n\nDiscussions and help\n--------------------\nHead to `Github Discussions \u003chttps://github.com/ds4dm/ecole/discussions\u003e`_ for interaction with the community: give\nand recieve help, discuss intresting envirnoment, rewards function, and instances generators.\n\nInstallation\n------------\nConda\n^^^^^\n\n.. image:: https://img.shields.io/conda/vn/conda-forge/ecole?label=version\u0026logo=conda-forge\n   :target: https://anaconda.org/conda-forge/ecole\n   :alt: Conda-Forge version\n.. image:: https://img.shields.io/conda/pn/conda-forge/ecole?logo=conda-forge\n   :target: https://anaconda.org/conda-forge/ecole\n   :alt: Conda-Forge platforms\n\n.. code-block:: bash\n\n   conda install -c conda-forge ecole\n\nAll dependencies are resolved by conda, no compiler is required.\n\nPip wheel (binary)\n^^^^^^^^^^^^^^^^^^\nCurrently unavailable.\n\nPip source\n^^^^^^^^^^^\n.. image:: https://img.shields.io/pypi/v/ecole?logo=python\n   :target: https://pypi.org/project/ecole/\n   :alt: PyPI version\n\nBuilding from source requires:\n - A `C++17 compiler \u003chttps://en.cppreference.com/w/cpp/compiler_support\u003e`_,\n - A `SCIP \u003chttps://www.scipopt.org/\u003e`__ installation.\n\n.. code-block:: bash\n\n   pip install ecole\n\nOther Options\n^^^^^^^^^^^^^\nCheckout the `installation instructions \u003chttps://doc.ecole.ai/py/en/stable/\u003e`_ in the\ndocumentation for more installation options.\n\nRelated Projects\n----------------\n\n* `OR-Gym \u003chttps://github.com/hubbs5/or-gym\u003e`_ is a gym-like library providing gym-like environments to produce feasible solutions\n  directly, without the need for an MILP solver;\n* `MIPLearn \u003chttps://github.com/ANL-CEEESA/MIPLearn\u003e`_ for learning to configure solvers.\n\nUse It, Cite It\n---------------\n\n.. image:: https://img.shields.io/badge/arxiv-2011.06069-red\n   :target: https://arxiv.org/abs/2011.06069\n   :alt: Ecole publication on Arxiv\n\n\nIf you use Ecole in a scientific publication, please cite the Ecole publication\n\n.. code-block:: text\n\n   @inproceedings{\n       prouvost2020ecole,\n       title={Ecole: A Gym-like Library for Machine Learning in Combinatorial Optimization Solvers},\n       author={Antoine Prouvost and Justin Dumouchelle and Lara Scavuzzo and Maxime Gasse and Didier Ch{\\'e}telat and Andrea Lodi},\n       booktitle={Learning Meets Combinatorial Algorithms at NeurIPS2020},\n       year={2020},\n       url={https://openreview.net/forum?id=IVc9hqgibyB}\n   }\n","funding_links":[],"categories":["**Other Resources**"],"sub_categories":["Code Repositories"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fds4dm%2Fecole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fds4dm%2Fecole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fds4dm%2Fecole/lists"}