Coluna is a branch-and-price-and-cut framework that decomposes and solves
a mixed-integer program (MIP). The user introduces his "original" problem formulation using the JuMP modeling language and our specific extension
BlockDecomposition.
Coluna reformulates the user problem based on the "annotations" provided along side the original formulation using BlockDecomposition.
Coluna aims to be very modular and tweakable so that any user can define the behavior of his customized branch-and-price-and-cut algorithm. The user can create its own algorithmic strategy using the algorithmic building blocks offered in Coluna.
You can install Coluna.jl through the package manager of Julia.
Go to the Pkg-REPL-mode using the key ] from the Julia REPL.
Then, run the following command :
pkg> add https://github.com/atoptima/Coluna.jl.git
We aim to integrate to Coluna the state-of-the-art techniques used for branch-and-cut-and-price algorithms.
As functionality goes, we aim to provide the support for:
- Dantzig-Wolfe decomposition
- Benders decomposition
- Mixed Dantzig-Benders decomposition
- Nested/Recursive decomposition
- Column generation
- Cuts generation
- Branch-and-price-and-cut customization
- Ad-hoc customised oracles for solving subproblems / separation routines
- Preprocessing specific to reformulated problems / cleaning up of large scale formulations
- stabilisation and other convergence speed-up methods
- Strong-branching
- Parallelisation of the Branch-and-Bound Tree Search
The current main contributors to Coluna.jl are:
- François Vanderbeck
- Guillaume Marques
- Vitor Nesello
- Teobaldo Bulhões
The plateform development has received an important support grant from the international scientific society Mathematical Optimization Society' (MOS)
- Choose an issue and open a PR with a proposition to fix it.
- Open new issues if you find a bug or a way to enhance the package.