
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.RealsLista 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.IntegerMOI.VariableIndex en MOI.Interval{Float64}MOI.VariableIndex en MOI.LessThan{Float64}MOI.VariableIndex en MOI.ZeroOneMOI.VectorOfVariables en MOI.SOS1{Float64}MOI.VectorOfVariables en MOI.SOS2{Float64}Lista de atributos del modelo compatible:
Cbc.StatusCbc.SecondaryStatusMOI.DualStatusMOI.NodeCountMOI.NumberOfVariablesMOI.ObjectiveBoundMOI.ObjectiveSenseMOI.ObjectiveValueMOI.PrimalStatusMOI.RelativeGapMOI.ResultCountMOI.SolveTimeSecMOI.TerminationStatusLista de atributos optimizador compatibles:
Cbc.SetVariableNamesMOI.AbsoluteGapToleranceMOI.NumberOfThreadsMOI.RawOptimizerAttributeMOI.RelativeGapToleranceMOI.SilentMOI.SolverNameMOI.SolverVersionMOI.TimeLimitSecLista de atributos variables compatibles:
MOI.VariablePrimalMOI.VariablePrimalStartMOI.VariableNameLista de atributos de restricción compatibles:
MOI.ConstraintPrimalDesafortunadamente, 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