
CBC.JL adalah pembungkus untuk pemecah koin-atau cabang dan potong (CBC).
Pembungkusnya memiliki dua komponen:
Pembungkus ini dikelola oleh komunitas lompat dan bukan proyek koin-atau.
Jika Anda membutuhkan bantuan, silakan ajukan pertanyaan di forum Komunitas Jump.
Jika Anda memiliki contoh bug yang dapat direproduksi, silakan buka masalah GitHub.
Cbc.jl dilisensikan di bawah lisensi MIT.
Pemecah yang mendasari, koin-atau/CBC, dilisensikan di bawah lisensi publik Eclipse.
Instal CBC menggunakan Pkg.add :
import Pkg
Pkg . add ( " Cbc " )Selain menginstal paket CBC.JL, ini juga akan mengunduh dan menginstal binari CBC. Anda tidak perlu menginstal CBC secara terpisah.
Untuk menggunakan biner khusus, baca bagian Binari Solver Kustom dari dokumentasi lompatan.
Untuk menggunakan CBC dengan lompatan, gunakan Cbc.Optimizer :
using JuMP, Cbc
model = Model (Cbc . Optimizer)
set_attribute (model, " logLevel " , 1 )Optimizer cabang-dan-potong koin (CBC) mendukung kendala dan atribut berikut.
Daftar Fungsi Objektif yang Didukung:
MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}Daftar jenis variabel yang didukung:
MOI.RealsDaftar tipe kendala yang didukung:
MOI.ScalarAffineFunction{Float64} di MOI.EqualTo{Float64}MOI.ScalarAffineFunction{Float64} di MOI.GreaterThan{Float64}MOI.ScalarAffineFunction{Float64} di MOI.Interval{Float64}MOI.ScalarAffineFunction{Float64} di MOI.LessThan{Float64}MOI.VariableIndex di MOI.EqualTo{Float64}MOI.VariableIndex di MOI.GreaterThan{Float64}MOI.VariableIndex di MOI.IntegerMOI.VariableIndex di MOI.Interval{Float64}MOI.VariableIndex di MOI.LessThan{Float64}MOI.VariableIndex di MOI.ZeroOneMOI.VectorOfVariables di MOI.SOS1{Float64}MOI.VectorOfVariables di MOI.SOS2{Float64}Daftar atribut model yang didukung:
Cbc.StatusCbc.SecondaryStatusMOI.DualStatusMOI.NodeCountMOI.NumberOfVariablesMOI.ObjectiveBoundMOI.ObjectiveSenseMOI.ObjectiveValueMOI.PrimalStatusMOI.RelativeGapMOI.ResultCountMOI.SolveTimeSecMOI.TerminationStatusDaftar atribut pengoptimal yang didukung:
Cbc.SetVariableNamesMOI.AbsoluteGapToleranceMOI.NumberOfThreadsMOI.RawOptimizerAttributeMOI.RelativeGapToleranceMOI.SilentMOI.SolverNameMOI.SolverVersionMOI.TimeLimitSecDaftar atribut variabel yang didukung:
MOI.VariablePrimalMOI.VariablePrimalStartMOI.VariableNameDaftar atribut kendala yang didukung:
MOI.ConstraintPrimalOpsi, sayangnya, tidak didokumentasikan dengan baik.
Opsi berikut cenderung menjadi yang paling berguna:
| Parameter | Contoh | Penjelasan |
|---|---|---|
seconds | 60.0 | Batas waktu tunggu solusi |
logLevel | 2 | Diatur ke 0 untuk menonaktifkan output solusi |
maxSolutions | 1 | Diakhiri setelah banyak solusi yang layak ini ditemukan |
maxNodes | 1 | Berakhir setelah banyak node cabang dan terikat telah dievaluasi |
allowableGap | 0.05 | Diakhiri setelah kesenjangan optimalitas kurang dari nilai ini (pada skala absolut) |
ratioGap | 0.05 | Berakhir setelah kesenjangan optimalitas lebih kecil dari fraksi relatif ini |
threads | 1 | Atur jumlah utas yang akan digunakan untuk cabang paralel & terikat |
Daftar parameter lengkap dapat ditemukan dengan menjalankan cbc yang dapat dieksekusi dan mengetik ? di prompt.
Mulai cbc yang dapat dieksekusi dari Julia sebagai berikut:
using Cbc_jll
Cbc_jll . cbc () do exe
run ( ` $(exe) ` )
end