Cbc.jl
v1.2.0

CBC.JL是硬币或分支(CBC)求解器的包装纸。
包装器有两个组件:
该包装纸由跳跃社区维护,不是一个硬币或项目。
如果您需要帮助,请在跳跃社区论坛上询问一个问题。
如果您有一个错误的可再现示例,请打开一个GitHub问题。
Cbc.jl已获得MIT许可证的许可。
基础求解器Coin-OR/CBC已获得Eclipse公共许可证的许可。
使用Pkg.add安装CBC:
import Pkg
Pkg . add ( " Cbc " )除了安装CBC.JL软件包外,还将下载并安装CBC二进制文件。您无需单独安装CBC。
要使用自定义二进制文件,请阅读跳跃文档的自定义求解器二进制部分。
要将CBC与跳跃一起使用,请使用Cbc.Optimizer :
using JuMP, Cbc
model = Model (Cbc . Optimizer)
set_attribute (model, " logLevel " , 1 )硬币分支和切割(CBC)优化器支持以下约束和属性。
支持的目标功能列表:
MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}支持的变量类型列表:
MOI.Reals受支持的约束类型列表:
MOI.ScalarAffineFunction{Float64} in MOI.EqualTo{Float64}MOI.ScalarAffineFunction{Float64} in MOI.GreaterThan{Float64}MOI.ScalarAffineFunction{Float64} in MOI.Interval{Float64}MOI.ScalarAffineFunction{Float64} in MOI.LessThan{Float64}MOI.VariableIndex in MOI.EqualTo{Float64}MOI.VariableIndex in MOI.GreaterThan{Float64}MOI.VariableIndex在MOI.Integer中MOI.VariableIndex in MOI.Interval{Float64}MOI.VariableIndex中的MOI.LessThan{Float64}MOI.VariableIndex在MOI.ZeroOne中MOI.VectorOfVariables MOI.SOS1{Float64}MOI.VectorOfVariables中的MOI.SOS2{Float64}支持的模型属性列表:
Cbc.StatusCbc.SecondaryStatusMOI.DualStatusMOI.NodeCountMOI.NumberOfVariablesMOI.ObjectiveBoundMOI.ObjectiveSenseMOI.ObjectiveValueMOI.PrimalStatusMOI.RelativeGapMOI.ResultCountMOI.SolveTimeSecMOI.TerminationStatus支持的优化器属性列表:
Cbc.SetVariableNamesMOI.AbsoluteGapToleranceMOI.NumberOfThreadsMOI.RawOptimizerAttributeMOI.RelativeGapToleranceMOI.SilentMOI.SolverNameMOI.SolverVersionMOI.TimeLimitSec支持的变量属性列表:
MOI.VariablePrimalMOI.VariablePrimalStartMOI.VariableName支持的约束属性列表:
MOI.ConstraintPrimal不幸的是,选项的记录不佳。
以下选项可能是最有用的:
| 范围 | 例子 | 解释 |
|---|---|---|
seconds | 60.0 | 解决方案超时限制 |
logLevel | 2 | 设置为0以禁用解决方案输出 |
maxSolutions | 1 | 在发现许多可行解决方案之后终止 |
maxNodes | 1 | 在评估了许多分支结合的节点之后终止 |
allowableGap | 0.05 | 最优差距后终止小于此值(绝对比例) |
ratioGap | 0.05 | 最优差距后终止小于此相对部分 |
threads | 1 | 设置用于并行分支的线程数 |
可以通过运行cbc可执行文件和键入来找到完整的参数列表?在提示下。
cbc :
using Cbc_jll
Cbc_jll . cbc () do exe
run ( ` $(exe) ` )
end