Skip to main content

Discrete Optimization

Discrete Optimization is a python library to ease the definition and re-use of discrete optimization problems and solvers. It has been initially developed in the frame of scikit-decide for scheduling. The code base starting to be big, the repository has now been splitted in two separate ones.

The library contains a range of existing solvers already implemented such as:

  • greedy methods
  • local search (Hill Climber, Simulated Annealing)
  • metaheuristics (Genetic Algorithms, NSGA)
  • linear programming
  • constraint programming
  • domain independent dynamic programming
  • hybrid methods (CP and LP based Large Neighborhood Search)

The library also contains implementation of several classic discrete optimization problems:

  • Travelling Salesman Problem (TSP)
  • Knapsack Problem (KP)
  • Vehicle Routing Problem (VRP)
  • Facility Location Problem (FLP)
  • Resource Constrained Project Scheduling Problem (RCPSP) and its variants (MRCPSP, MSRCPSP)
  • Graph Colouring Problem (GCP)
  • Maximum independent set (MIS)
  • Job shop scheduling problem (JSP) and its flexible variant (FJSP)

In addition, the library contains functionalities to enable robust optimization through different scenario handling mechanisms) and multi-objective optimization (aggregation of objectives, Pareto optimization, MO post-processing).

We thank awesome optimization library or modeling language from different communities that are widely used through our library :

notably ortools, minizinc, deap, didp, gurobi

Installation

Quick version:

pip install discrete-optimization

For more details, see the online documentation.

Documentation

The latest documentation is available online.

Examples

Some educational notebooks are available in notebooks/ folder. Links to launch them online with binder are provided in the Notebooks section of the online documentation.

More examples can be found as Python scripts in the examples/ folder, using the different features of the library and showing how to instantiate different problem instances and solvers.

Contributing

See more about how to contribute in the online documentation.

License

This software is under the MIT License that can be found in the LICENSE file at the root of the repository.

Some minzinc models have been adapted from files coming from

Metadata

Release files for discrete-optimization 0.9.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for discrete-optimization 0.9.1
File Size Uploaded Provenance Actions
discrete_optimization-0.9.1.tar.gz 3.0 MB Without provenance Details for discrete_optimization-0.9.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for discrete-optimization 0.9.1
File Interpreter ABI Platform Actions
discrete_optimization-0.9.1-py3-none-any.whl Python 3 none any Details for discrete_optimization-0.9.1-py3-none-any.whl

Total release size: 4.5 MB

Release files / discrete_optimization-0.9.1.tar.gz

Download URL discrete_optimization-0.9.1.tar.gz
Size 3.0 MB
Tags Source
SHA-256 checksum
How to use checksums
0f6d014ee1a5c68e9417d5bc2a7c5f029b8c65b33b84513cec41040f0e6c315c
BLAKE2b-256 checksum
How to use checksums
b6eef3f95aaedc284c5ec6c6281ebe754a34b64ddbbd52b3cc4b5b9ed5d00a10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / discrete_optimization-0.9.1-py3-none-any.whl

Download URL discrete_optimization-0.9.1-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
14a5bceabbf525c8601e0083557c01f31c84295165dea8a535274b7c2bfa8390
BLAKE2b-256 checksum
How to use checksums
82303f206edc7344cf3d0774866d68c77fb4ca0d445494e4544d69af2ea5fae7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for discrete-optimization 0.9.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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page