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.Reals
Daftar 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.Integer
MOI.VariableIndex
di MOI.Interval{Float64}
MOI.VariableIndex
di MOI.LessThan{Float64}
MOI.VariableIndex
di MOI.ZeroOne
MOI.VectorOfVariables
di MOI.SOS1{Float64}
MOI.VectorOfVariables
di MOI.SOS2{Float64}
Daftar atribut model yang didukung:
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
Daftar atribut pengoptimal yang didukung:
Cbc.SetVariableNames
MOI.AbsoluteGapTolerance
MOI.NumberOfThreads
MOI.RawOptimizerAttribute
MOI.RelativeGapTolerance
MOI.Silent
MOI.SolverName
MOI.SolverVersion
MOI.TimeLimitSec
Daftar atribut variabel yang didukung:
MOI.VariablePrimal
MOI.VariablePrimalStart
MOI.VariableName
Daftar atribut kendala yang didukung:
MOI.ConstraintPrimal
Opsi, 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