Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update README #895

Merged
merged 3 commits into from
May 12, 2023
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 24 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@


Coluna is a branch-and-price-and-cut framework written in Julia.
The user introduces an original MIP that models his problem using the
You write an original MIP that models your problem using the
[JuMP](https://github.com/jump-dev/JuMP.jl) modeling language and our specific extension
[BlockDecomposition](https://github.com/atoptima/BlockDecomposition.jl) that offers a syntax
[BlockDecomposition](https://github.com/atoptima/BlockDecomposition.jl) offers a syntax
to specify the problem decomposition. Then, Coluna reformulates the original MIP and
optimizes the reformulation using the algorithms chosen by the user.
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.
optimizes the reformulation using the algorithms you choose.
Coluna aims to be very modular and tweakable so that you can define the behavior of
your customized branch-and-price-and-cut algorithm.

## Installation

Expand All @@ -27,42 +27,33 @@ Open Julia's interactive session (REPL) and type:
] add Coluna
```

The documentation is under construction.
You can browse the [stable documentation](https://atoptima.github.io/Coluna.jl/stable) for an introductory example
or the [dev documentation](https://atoptima.github.io/Coluna.jl/latest) if you are working with the master version of Coluna.
The documentation is still under construction but provides examples to run advanced branch-cut-and-price.
You can browse the [stable documentation](https://atoptima.github.io/Coluna.jl/stable) if you work with the latest release
or the [dev documentation](https://atoptima.github.io/Coluna.jl/latest) if you work with the master version of Coluna.

## Features

We aim to integrate to Coluna the state-of-the-art techniques used for
branch-and-cut-and-price algorithms. We look for beta users as Coluna is under
active development.
We aim to integrate into Coluna the state-of-the-art techniques used for
branch-and-cut-and-price algorithms.

The latest minor release `0.6.0` suffers from regressions as some features are not available anymore. Indeed, we focused on the correctness of the algorithms and all the missing features will be back soon, well implemented and well tested.

- ![Stable](https://img.shields.io/badge/-stable-brightgreen) No stable feature at the moment
- ![Beta](https://img.shields.io/badge/-beta-green) Features that work but still in development:
- Branch-and-price-and-cut algorithm
- Cuts generation
- Column generation algorithm
- ![Beta](https://img.shields.io/badge/-beta-green) Features that work well but need more tests/usage and performance review before being stable:
- Dantzig-Wolfe decomposition
- Pricing callback
- Robust cut callback
- Stabilization
- Strong-branching
- ![Alpha](https://img.shields.io/badge/-alpha-yellow) Features that should work. Structural work is done but these features may have bugs and be not performant:
- Benders decomposition
- Benders algorithm
- Non-robust cuts
- Clean up of large scale formulations
- ![Dev](https://img.shields.io/badge/-dev-orange) Features in development, foundations have been laid:
- Nested/Recursive decomposition
- Parallelisation of the Branch-and-Bound Tree Search
- ![Future](https://img.shields.io/badge/-future-red) Future features:
- Mixed Dantzig-Benders decomposition
- Preprocessing specific to reformulated problems
- Branch-and-bound algorithm
- Column generation (MILP pricing solver/pricing callback)
- Cut generation (robust and non-robust cut generation)
- Strong-branching
- ![Alpha](https://img.shields.io/badge/-alpha-yellow) Features that should work. Structural work is done but these features may have bugs:
- Benders cut generation
- ![Dev](https://img.shields.io/badge/-dev-orange) Features in development.
- Stabilization for column generation (regression) and benders.
- Clean-up of large scales formulation (regression)
guimarqu marked this conversation as resolved.
Show resolved Hide resolved
guimarqu marked this conversation as resolved.
Show resolved Hide resolved

## Contributing

Contributions are welcomed !

If you encounter a bug or something unexpected happens while using Coluna,
please open an issue via the GitHub issues tracker.

Expand All @@ -72,7 +63,7 @@ who make Coluna possible.

## Premium support

Using Coluna for your business ?
Using Coluna for your business?
[Contact us](https://atoptima.com/contact/?sup) to get tailored and qualified support.

## Acknowledgments
Expand All @@ -88,4 +79,4 @@ The platform development has received an important support grant from the intern
## Related packages

- [BlockDecomposition](https://github.com/atoptima/BlockDecomposition.jl) is a JuMP extension to model decomposition.
- [DynamicSparseArrays](https://github.com/atoptima/DynamicSparseArrays.jl) provides data structures based on packed-memory array for dynamic sparse matrices.
- [DynamicSparseArrays](https://github.com/atoptima/DynamicSparseArrays.jl) provides data structures based on packed-memory arrays for dynamic sparse matrices.