CBC.jlは、Coin-or Branch and Cut(CBC)ソルバーのラッパーです。
ラッパーには2つのコンポーネントがあります。
このラッパーはジャンプコミュニティによって維持されており、コインまたはプロジェクトではありません。
サポートが必要な場合は、ジャンプコミュニティフォーラムで質問してください。
バグの再現可能な例がある場合は、GitHubの問題を開いてください。
Cbc.jl
は、MITライセンスに基づいてライセンスされています。
基礎となるソルバーであるCoin-Or/CBCは、Eclipse Publicライセンスの下でライセンスされています。
Pkg.add
を使用してCBCをインストールします:
import Pkg
Pkg . add ( " Cbc " )
CBC.JLパッケージのインストールに加えて、CBCバイナリもダウンロードしてインストールします。 CBCを個別にインストールする必要はありません。
カスタムバイナリを使用するには、ジャンプドキュメントのカスタムソルバーバイナリセクションをお読みください。
ジャンプでCBCを使用するには、 Cbc.Optimizer
を使用します。
using JuMP, Cbc
model = Model (Cbc . Optimizer)
set_attribute (model, " logLevel " , 1 )
コインブランチアンドカット(CBC)オプティマイザーは、次の制約と属性をサポートしています。
サポートされている目的関数のリスト:
MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}
サポートされている変数タイプのリスト:
MOI.Reals
サポートされている制約タイプのリスト:
MOI.ScalarAffineFunction{Float64}
in MOI.EqualTo{Float64}
MOI.ScalarAffineFunction{Float64}
MOI.GreaterThan{Float64}
MOI.ScalarAffineFunction{Float64}
in MOI.Interval{Float64}
MOI.ScalarAffineFunction{Float64}
in MOI.LessThan{Float64}
MOI.VariableIndex
in MOI.EqualTo{Float64}
MOI.VariableIndex
in MOI.GreaterThan{Float64}
MOI.VariableIndex
in MOI.Integer
MOI.VariableIndex
in MOI.Interval{Float64}
MOI.VariableIndex
in MOI.LessThan{Float64}
MOI.ZeroOne
のMOI.VariableIndex
MOI.VectorOfVariables
MOI.SOS1{Float64}
MOI.VectorOfVariables
MOI.SOS2{Float64}
サポートされているモデル属性のリスト:
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
実行可能ファイルとタイピングを実行することで見つけることができますか?
プロンプトで。
次のように、ジュリアからcbc
実行可能ファイルを開始します。
using Cbc_jll
Cbc_jll . cbc () do exe
run ( ` $(exe) ` )
end