JijZept SDK 数理最適化開発のための統合SDK
Jijが提供する数理最適化パッケージ群をまとめてインストールできる開発キット。
モデリングからソルバー実行まで、必要なツールを簡単にセットアップできます。
pip install "jijzept_sdk[all]"
クイックスタート
1
インストール
pip install "jijzept_sdk[all]"
数理最適化に必要なパッケージをすべてインストールします。
詳細なインストールオプションやバージョン情報については、PyPIのパッケージページをご覧ください。
PyPIパッケージを確認
2
モデリング
import jijmodeling as jm
d = jm.Placeholder("d", ndim=1)
n = d.shape[0]
x = jm.BinaryVar("x", shape=(n,))
i = jm.Element("i", (0, n))
problem = jm.Problem("sample")
# Objective Function
problem += jm.sum(i, d[i]*x[i])
# Constraints
problem += jm.Constraint(
"c1", x[:].sum() <= 1
)
JijModelingを使用して、数式と似た表現で最適化問題を簡単に記述できます。
3
データの用意 / ソルバー実行
import ommx_pyscipopt_adapter as scip_ad
# Create an instance
instance_data = {
"d": [1, -2, 3],
}
interpreter = jm.Interpreter(instance_data)
instance = interpreter.eval_problem(problem)
# Convert to SCIP model and solve
model = scip_ad.instance_to_model(instance)
status = model.optimize()
solution = scip_ad.model_to_solution(model, instance)
複数のソルバーに対応しており、問題に応じて最適なソルバーを選択できます。
4
結果の解析
print(solution.decision_variables)
# id kind lower upper name subscripts value
# ----------------------------------------------
# 0 binary 0.0 1.0 x [0] 0.0
# 1 binary 0.0 1.0 x [1] 1.0
# 2 binary 0.0 1.0 x [2] 0.0
最適解や目的関数値を簡単に取得でき、結果の可視化や分析も可能です。MINTOを使用して数値実験の管理も簡単に行えます。
5
より大規模な最適化に挑戦
エンタープライズ向け機能
- 高性能なソルバー(JijSolver)との連携
- 大規模問題向けの分割アルゴリズムや機械学習との連携
- クラウド開発環境(JijZept IDE)
大規模な最適化問題や、本番環境での利用をお考えの方は、エンタープライズ向けソリューションをご検討ください。
詳細を問い合わせる詳細なドキュメント
各コンポーネントの詳細な使い方やチュートリアルをご覧いただけます