Metadata-Version: 2.1
Name: discrete-optimization
Version: 0.2.1
Summary: Discrete optimization library
Author-email: Airbus AI Research <scikit-decide@airbus.com>
License: MIT
Project-URL: documentation, https://airbus.github.io/discrete-optimization
Project-URL: repository, https://github.com/airbus/discrete-optimization
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Development Status :: 4 - Beta
Classifier: Topic :: Software Development
Classifier: Topic :: Scientific/Engineering
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: shapely (>=1.7)
Requires-Dist: mip (>=1.13)
Requires-Dist: minizinc (>=0.6.0)
Requires-Dist: deap (>=1.3.1)
Requires-Dist: networkx (>=2.5)
Requires-Dist: numba (>=0.50)
Requires-Dist: matplotlib (>=3.1)
Requires-Dist: seaborn (>=0.10.1)
Requires-Dist: pymzn (>=0.18.3)
Requires-Dist: ortools (>=8.0)
Requires-Dist: tqdm (>=4.62.3)
Requires-Dist: sortedcontainers (>=2.4)
Requires-Dist: deprecation
Requires-Dist: typing-extensions (>=4.0)
Requires-Dist: cpmpy (>=0.9.9)
Requires-Dist: scipy
Provides-Extra: test
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Requires-Dist: scikit-learn (>=1.0) ; extra == 'test'

# 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](https://github.com/airbus/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
* hybrid methods (LNS)

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). Several variants of RCPSP are available
* Graph Colouring Problem (GCP)

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).


## Installation

Quick version:
```shell
pip install discrete-optimization
```
For more details, see the [online documentation](https://airbus.github.io/discrete-optimization/master/install).

## Documentation

The latest documentation is available [online](https://airbus.github.io/discrete-optimization).

## Examples

Some educational notebooks are available in `notebooks/` folder.
Links to launch them online with [binder](https://mybinder.org/) are provided in the
[Notebooks section](https://airbus.github.io/discrete-optimization/master/notebooks) 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](https://airbus.github.io/discrete-optimization/master/contribute).


## License

This software is under the MIT License that can be found in the [LICENSE](./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/MiniZinc/minizinc-benchmarks/blob/master/LICENSE),
- https://github.com/youngkd/MSPSP-InstLib for which we have the written authorization of the author.
