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

データの用意 / ソルバー選択と実行

SCIP

Open-source mathematical optimization solver. Supports linear programming and mixed-integer programming.

from ommx_pyscipopt_adapter import (
    OMMXPySCIPOptAdapter
)

# Create an instance
instance_data = {
    "d": [1, -2, 3],
}
interpreter = jm.Interpreter(instance_data)
instance = interpreter.eval_problem(problem)

# Solve with SCIP
solution = OMMXPySCIPOptAdapter.solve(instance)

HiGHS

High-performance linear programming and mixed-integer programming solver. Ideal for small to medium-sized problems.

from ommx_highs_adapter import (
    OMMXHighsAdapter
) 

# Create an instance
instance_data = {
    "d": [1, -2, 3],
}
interpreter = jm.Interpreter(instance_data)
instance = interpreter.eval_problem(problem)

# Solve with HiGHS
solution = OMMXHighsAdapter.solve(instance)

Gurobi

Commercial high-performance solver. Suitable for large-scale optimization problems. Requires a separate license.

from ommx_gurobipy_adapter import (
    OMMXGurobipyAdapter
)

# Create an instance
instance_data = {
    "d": [1, -2, 3],
}
interpreter = jm.Interpreter(instance_data)
instance = interpreter.eval_problem(problem)

# Solve with Gurobi
solution = OMMXGurobipyAdapter.solve(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)

大規模な最適化問題や、本番環境での利用をお考えの方は、エンタープライズ向けソリューションをご検討ください。

詳細を問い合わせる

JijZept SDKで最適化問題を解決

導入方法やベストプラクティスについて、専門家が詳しくご説明します

無料デモを依頼する