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.Status
Cbc.SecondaryStatus
MOI.DualStatus
MOI.NodeCount
MOI.NumberOfVariables
MOI.ObjectiveBound
MOI.ObjectiveSense
MOI.ObjectiveValue
MOI.PrimalStatus
MOI.RelativeGap
MOI.ResultCount
MOI.SolveTimeSec
MOI.TerminationStatus
支持的优化器属性列表:
Cbc.SetVariableNames
MOI.AbsoluteGapTolerance
MOI.NumberOfThreads
MOI.RawOptimizerAttribute
MOI.RelativeGapTolerance
MOI.Silent
MOI.SolverName
MOI.SolverVersion
MOI.TimeLimitSec
支持的变量属性列表:
MOI.VariablePrimal
MOI.VariablePrimalStart
MOI.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