CBC.JL es un envoltorio para el solucionador de rama y corte de monedas y cortes (CBC).
El envoltorio tiene dos componentes:
La comunidad de saltos mantiene este envoltorio y no es un proyecto de monedas o.
Si necesita ayuda, haga una pregunta en el Foro de la Comunidad de Jump.
Si tiene un ejemplo reproducible de un error, abra un problema de GitHub.
Cbc.jl
tiene licencia bajo la licencia MIT.
El solucionador subyacente, Coin-OR/CBC, tiene licencia bajo la licencia pública de Eclipse.
Instale CBC usando Pkg.add
:
import Pkg
Pkg . add ( " Cbc " )
Además de instalar el paquete CBC.JL, esto también descargará e instalará los binarios CBC. No necesita instalar CBC por separado.
Para usar un binario personalizado, lea la sección de binarios de solucionadores personalizados de la documentación de salto.
Para usar CBC con salto, use Cbc.Optimizer
:
using JuMP, Cbc
model = Model (Cbc . Optimizer)
set_attribute (model, " logLevel " , 1 )
El optimizador de rama y corte de monedas (CBC) admite las siguientes restricciones y atributos.
Lista de funciones objetivas compatibles:
MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}
Lista de tipos de variables compatibles:
MOI.Reals
Lista de tipos de restricción compatibles:
MOI.ScalarAffineFunction{Float64}
en MOI.EqualTo{Float64}
MOI.ScalarAffineFunction{Float64}
en MOI.GreaterThan{Float64}
MOI.ScalarAffineFunction{Float64}
en MOI.Interval{Float64}
MOI.ScalarAffineFunction{Float64}
en MOI.LessThan{Float64}
MOI.VariableIndex
en MOI.EqualTo{Float64}
MOI.VariableIndex
en MOI.GreaterThan{Float64}
MOI.VariableIndex
en MOI.Integer
MOI.VariableIndex
en MOI.Interval{Float64}
MOI.VariableIndex
en MOI.LessThan{Float64}
MOI.VariableIndex
en MOI.ZeroOne
MOI.VectorOfVariables
en MOI.SOS1{Float64}
MOI.VectorOfVariables
en MOI.SOS2{Float64}
Lista de atributos del modelo compatible:
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
Lista de atributos optimizador compatibles:
Cbc.SetVariableNames
MOI.AbsoluteGapTolerance
MOI.NumberOfThreads
MOI.RawOptimizerAttribute
MOI.RelativeGapTolerance
MOI.Silent
MOI.SolverName
MOI.SolverVersion
MOI.TimeLimitSec
Lista de atributos variables compatibles:
MOI.VariablePrimal
MOI.VariablePrimalStart
MOI.VariableName
Lista de atributos de restricción compatibles:
MOI.ConstraintPrimal
Desafortunadamente, las opciones no están bien documentadas.
Es probable que las siguientes opciones sean las más útiles:
Parámetro | Ejemplo | Explicación |
---|---|---|
seconds | 60.0 | Límite de tiempo de espera de la solución |
logLevel | 2 | Establecer en 0 para deshabilitar la salida de la solución |
maxSolutions | 1 | Terminar después de esto se han encontrado muchas soluciones factibles |
maxNodes | 1 | Terminar después de esto se han evaluado muchos nodos de rama y unido |
allowableGap | 0.05 | Terminar después de la brecha de optimización es menor que este valor (en una escala absoluta) |
ratioGap | 0.05 | Terminar después de la brecha de optimización es más pequeña que esta fracción relativa |
threads | 1 | Establezca el número de hilos para usar para la rama paralela y el límite |
¿La lista completa de parámetros se puede encontrar ejecutando el ejecutable de cbc
y la escritura ?
en el aviso.
Inicie el ejecutable de cbc
desde Julia de la siguiente manera:
using Cbc_jll
Cbc_jll . cbc () do exe
run ( ` $(exe) ` )
end