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
- https://github.com/MiniZinc/minizinc-benchmarks under the same license,
- https://github.com/youngkd/MSPSP-InstLib for which we have the written authorization of the author.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file discrete_optimization-0.5.0.tar.gz
.
File metadata
- Download URL: discrete_optimization-0.5.0.tar.gz
- Upload date:
- Size: 984.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d6875e29277091dc15ab8cf00e5ad4bd37b0976860bf01bc3f1606aa6e1870a |
|
MD5 | 8887b3b928f83c61b6ec37af9b576e27 |
|
BLAKE2b-256 | 6573fea64b877e3905a97348546b1ab80257ca91a02fa3eea6b310105d461970 |
File details
Details for the file discrete_optimization-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: discrete_optimization-0.5.0-py3-none-any.whl
- Upload date:
- Size: 626.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f636bd2ccfabe437bd532f604d3b7c887d61a89d2c1f74d5d6a333b8a50abf3a |
|
MD5 | 9c25c7358625138f6c2ea45b16b889f7 |
|
BLAKE2b-256 | d20630a0a56b85f370b7c6d4ba5a04c2df089620512bfff44f5167a75014ad7f |