Skip to main content

Discrete optimization library

Project description

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

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

discrete_optimization-0.7.0.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

discrete_optimization-0.7.0-py3-none-any.whl (868.6 kB view details)

Uploaded Python 3

File details

Details for the file discrete_optimization-0.7.0.tar.gz.

File metadata

  • Download URL: discrete_optimization-0.7.0.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for discrete_optimization-0.7.0.tar.gz
Algorithm Hash digest
SHA256 96fec02a95bff53de1c518cb7c89acb51a93de60a63b4d53b97e13eee65ff5bf
MD5 c6b973218098880cb0b373aee0a45fbd
BLAKE2b-256 5d32a63b3d768c0d19901da8c9009b623ffaacbf69cff04ad804fa077e27e0c9

See more details on using hashes here.

File details

Details for the file discrete_optimization-0.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for discrete_optimization-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0cca8452d298718303edb896cf81fb9f2f1f60f26db826d8b98d378d7649ee52
MD5 8969e73a9e5f0ff701dde0d176a9bc98
BLAKE2b-256 f6276c3a893fc3fa141686a563811248eb6fd2df98605397516202a0c92c0d8f

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