Welcome to discrete-optimization’s documentation!

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

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