Cbc.jl is a wrapper for the COIN-OR Branch and Cut (Cbc) solver.
The wrapper has two components:
- a thin wrapper around the complete C API
- an interface to MathOptInterface
This wrapper is maintained by the JuMP community and is not a COIN-OR project.
Cbc.jl is licensed under the MIT License.
The underlying solver, coin-or/Cbc, is licensed under the Eclipse public license.
Install Cbc using
import Pkg Pkg.add("Cbc")
In addition to installing the Cbc.jl package, this will also download and install the Cbc binaries. You do not need to install Cbc separately.
To use a custom binary, read the Custom solver binaries section of the JuMP documentation.
Use with JuMP
To use Cbc with JuMP, use
using JuMP, Cbc model = Model(Cbc.Optimizer) set_attribute(model, "logLevel", 1)
The COIN Branch-and-Cut (Cbc) optimizer supports the following constraints and attributes.
List of supported objective functions:
List of supported variable types:
List of supported constraint types:
List of supported model attributes:
Options are, unfortunately, not well documented.
The following options are likely to be the most useful:
|Solution timeout limit|
|Set to 0 to disable solution output|
|Terminate after this many feasible solutions have been found|
|Terminate after this many branch-and-bound nodes have been evaluated|
|Terminate after optimality gap is less than this value (on an absolute scale)|
|Terminate after optimality gap is smaller than this relative fraction|
|Set the number of threads to use for parallel branch & bound|
The complete list of parameters can be found by running the
cbc executable and typing
? at the prompt.
cbc executable from Julia as follows:
using Cbc_jll Cbc_jll.cbc() do exe run(`$(exe)`) end