Skip to content

Commit

Permalink
Update readme (#282)
Browse files Browse the repository at this point in the history
* update1

* v2

* img

* doc

* update Readme

* update remerciements

* update coluna header

* update readme
  • Loading branch information
guimarqu authored Mar 15, 2020
1 parent ff46bbd commit 0d9fa31
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 31 deletions.
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "Coluna"
uuid = "88b4ec78-b192-11e8-04aa-4d367dd96a64"
authors = ["François Vanderbeck", "Guillaume Marques", "Vitor Nesello", "Ruslan Sadykov"]
version = "0.2.0"
version = "0.3.0"

[deps]
BlockDecomposition = "6cde8614-403a-11e9-12f1-c10d0f0caca0"
Expand Down
83 changes: 54 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Coluna.jl

[![Documentation](https://img.shields.io/badge/docs-stable-blue.svg)](https://atoptima.github.io/Coluna.jl/stable)
[![Documentation](https://img.shields.io/badge/docs-latest-blue.svg)](https://atoptima.github.io/Coluna.jl/latest)
[![Build Status](https://travis-ci.org/atoptima/Coluna.jl.svg?branch=master)](https://travis-ci.org/atoptima/Coluna.jl)
[![codecov](https://codecov.io/gh/atoptima/Coluna.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/atoptima/Coluna.jl)
Expand All @@ -8,51 +9,75 @@
[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/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`](https://github.com/JuliaOpt/JuMP.jl) modeling language and our specific extension
[`BlockDecomposition`](https://github.com/atoptima/BlockDecomposition.jl).

`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`.
Coluna is a branch-and-price-and-cut framework written in Julia.
The user introduces an original MIP that models his problem using the
[JuMP](https://github.com/JuliaOpt/JuMP.jl) modeling language and our specific extension
[BlockDecomposition](https://github.com/atoptima/BlockDecomposition.jl) that 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.

## Installation

You can install Coluna.jl through the package manager of Julia.
Coluna is package for Julia 1.0+

You can install Coluna through the Julia package manager:

```
] add Coluna
```

See the [documentation](https://atoptima.github.io/Coluna.jl/stable) for examples.

If you are working with the development version, you may want to check the [dev documentation](https://atoptima.github.io/Coluna.jl/latest).

## Features

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

- ![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 you may have some bugs:
- Dantzig-Wolfe decomposition
- Column generation algorithm
- Pricing callback
- ![Alpha](https://img.shields.io/badge/-alpha-yellow) Features that should work. Structural work is done but it may be not performant:
- Branch-and-price-and-cut algorithm
- Benders decomposition
- ![Dev](https://img.shields.io/badge/-dev-orange) Features in development, fundations have been laid:
- Nested/Recursive decomposition
- Cuts generation
- Stabilisation and other convergence speed-up methods
- Strong-branching
- Parallelisation of the Branch-and-Bound Tree Search
- Cleaning up of large scale formulations
- ![Future](https://img.shields.io/badge/-future-red) Future features:
- Mixed Dantzig-Benders decomposition
- Preprocessing specific to reformulated problems

As functionality goes, we aim to provide the support for:
## Contributing

- [x] Dantzig-Wolfe decomposition
- [ ] Benders decomposition
- [ ] Mixed Dantzig-Benders decomposition
- [ ] Nested/Recursive decomposition
- [x] Column generation
- [ ] Cuts generation
- [x] 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
Contributors are first and foremost users of the framework. If you encounter a
bug or something unexpected happens while using Coluna, please open an issue via
the GitHub issues tracker or chat with us on the
[discord](https://discord.gg/cg77wFW) dedicated to Coluna.

## Authors
You can suggest new features or ways to improve the package.

The current main contributors to Coluna.jl are Cristiana Bentes, Teobaldo Bulhões, Guillaume Marques, Vitor Nesello, Artur Alves Pessoa, Ruslan Sadykov, Anand Subramanian, Eduardo Uchoa, and François Vanderbeck.
You can also suggest and add new models in [ColunaDemos](https://github.com/atoptima/ColunaDemos.jl)
for tests and benchmarks.

## Sponsor
See the list of [contributors](https://github.com/atoptima/Coluna.jl/graphs/contributors)
who make Coluna possible.

The plateform development has received an important support grant from the international scientific society [**Mathematical Optimization Society' (MOS)**](http://www.mathopt.org/)
## Acknowledgments

## Contributing
The plateform development has received an important support grant from the international scientific society [**Mathematical Optimization Society (MOS)**](http://www.mathopt.org/)

[**Atoptima**](https://atoptima.com/)

[**University of Bordeaux**](https://www.u-bordeaux.fr/)

- 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.
[**Inria**](https://www.inria.fr/fr)
2 changes: 1 addition & 1 deletion src/optimize.jl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
function _welcome_message()
welcome = """
Coluna
Version 0.2 - https://github.com/atoptima/Coluna.jl
Version 0.3 - https://github.com/atoptima/Coluna.jl
"""
print(welcome)
end
Expand Down

0 comments on commit 0d9fa31

Please sign in to comment.