
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.IntegerMOI.VariableIndex in MOI.Interval{Float64}MOI.VariableIndex in MOI.LessThan{Float64}MOI.ZeroOneのMOI.VariableIndexMOI.VectorOfVariables MOI.SOS1{Float64}MOI.VectorOfVariables MOI.SOS2{Float64}サポートされているモデル属性のリスト:
Cbc.StatusCbc.SecondaryStatusMOI.DualStatusMOI.NodeCountMOI.NumberOfVariablesMOI.ObjectiveBoundMOI.ObjectiveSenseMOI.ObjectiveValueMOI.PrimalStatusMOI.RelativeGapMOI.ResultCountMOI.SolveTimeSecMOI.TerminationStatusサポートされているオプティマイザー属性のリスト:
Cbc.SetVariableNamesMOI.AbsoluteGapToleranceMOI.NumberOfThreadsMOI.RawOptimizerAttributeMOI.RelativeGapToleranceMOI.SilentMOI.SolverNameMOI.SolverVersionMOI.TimeLimitSecサポートされている変数属性のリスト:
MOI.VariablePrimalMOI.VariablePrimalStartMOI.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