CBC.JL은 코인 또는 분기 및 절단 (CBC) 솔버의 래퍼입니다.
래퍼에는 두 가지 구성 요소가 있습니다.
이 래퍼는 점프 커뮤니티에 의해 유지되며 코인 또는 프로젝트가 아닙니다.
도움이 필요하면 Jump Community Forum에서 질문을하십시오.
버그의 재현 가능한 예제가 있으면 Github 문제를여십시오.
Cbc.jl
은 MIT 라이센스에 따라 라이센스가 부여됩니다.
기본 솔버 인 코인 또는/CBC는 Eclipse Public License에 따라 라이센스가 부여됩니다.
Pkg.add
사용하여 CBC 설치 :
import Pkg
Pkg . add ( " Cbc " )
CBC.JL 패키지를 설치하는 것 외에도 CBC Binaries를 다운로드하여 설치합니다. CBC를 별도로 설치할 필요가 없습니다.
사용자 정의 이진을 사용하려면 점프 문서의 사용자 정의 솔버 바이너리 섹션을 읽으십시오.
점프와 함께 CBC를 사용하려면 Cbc.Optimizer
사용하십시오.
using JuMP, Cbc
model = Model (Cbc . Optimizer)
set_attribute (model, " logLevel " , 1 )
CBC (Coin Branch and-Cut) 최적화는 다음과 같은 제약과 속성을 지원합니다.
지원되는 목표 기능 목록 :
MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}
지원되는 변수 유형 목록 :
MOI.Reals
지원되는 제약 조건 유형 목록 :
MOI.ScalarAffineFunction{Float64}
MOI.EqualTo{Float64}
MOI.ScalarAffineFunction{Float64}
MOI.GreaterThan{Float64}
MOI.ScalarAffineFunction{Float64}
MOI.Interval{Float64}
MOI.ScalarAffineFunction{Float64}
moi.lessthan MOI.LessThan{Float64}
MOI.EqualTo{Float64}
의 MOI.VariableIndex
MOI.GreaterThan{Float64}
의 MOI.VariableIndex
MOI.VariableIndex
MOI.Integer
MOI.VariableIndex
의 MOI.Interval{Float64}
MOI.VariableIndex
in MOI.LessThan{Float64}
MOI.ZeroOne
의 MOI.VariableIndex
MOI.SOS1{Float64}
의 MOI.VectorOfVariables
MOI.SOS2{Float64}
의 MOI.VectorOfVariables
지원되는 모델 속성 목록 :
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
실행 파일 및 타이핑을 실행하여 찾을 수 있습니까 ?
프롬프트에서.
다음과 같이 Julia에서 cbc
실행 파일을 시작하십시오.
using Cbc_jll
Cbc_jll . cbc () do exe
run ( ` $(exe) ` )
end