Skip to content

johnata/Coluna.jl

 
 

Repository files navigation

Coluna.jl

Documentation Build Status codecov Join the chat at https://gitter.im/Coluna-dev/community Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public License: MPL 2.0

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.

Installation

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

Features

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

Authors

The current main contributors to Coluna.jl are:

  • François Vanderbeck
  • Guillaume Marques
  • Vitor Nesello
  • Teobaldo Bulhões

Sponsor

The plateform development has received an important support grant from the international scientific society Mathematical Optimization Society' (MOS)

Contributing

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

About

Branch-and-Price-and-Cut in Julia

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Julia 100.0%