JijSolver 実用的な問題に対応する最適化ソルバー

Jij製の数理最適化ソルバー。幅広い問題クラスに対応しているため実用的な問題を解くのに適しています。

特徴

パラメータの複雑な設定が不要

一般的な最適化ソルバーでは複数のパラメーターを設定して利用します。一方、JijSolverではたった1つのパラメーターのみを指定するだけで利用できます。

多くの実用的な問題に対応可能

実用的な問題に対し、短い時間で実行可能解を得ることができます。

オンプレミスでも提供可能

社外秘のデータを安全に扱いたい、自社の環境で計算をしたいなどの要望に対応するためにオンプレミスでの提供も可能です。

クイックスタート

JijSolver API 無償版を用いてWEB API経由でJijSolverを実行する方法は以下の通りです。

1

利用申請

JijSolver API 無償版を利用するには、まず利用申請フォームから申請を行ってください。

JijSolverAPI 無償版 利用申請フォーム
2

インストール

JijSolver APIクライアントパッケージをインストールします。

pip install jijsolver-api-client
3

環境変数の設定

利用申請により入手した、以下の値を環境変数に設定します:

  • JIJSOLVER_SERVER_HOST: API サーバーのホスト名
  • JIJSOLVER_ACCESS_TOKEN: アクセストークン

設定例

環境変数の設定例:


export JIJSOLVER_SERVER_HOST="API サーバーのホスト名"
export JIJSOLVER_ACCESS_TOKEN="アクセストークン"
                  

または Python コード内で設定する例:


import os

os.environ["JIJSOLVER_SERVER_HOST"] = "API サーバーのホスト名"
os.environ["JIJSOLVER_ACCESS_TOKEN"] = "アクセストークン"
                  
4

ナップサック問題の例

実行例の中でJijModelingを使用するため、事前にインストールしておきます。

pip install jijmodeling

ナップサック問題を解く例:


import logging
import jijsolver
import jijmodeling as jm

logging.basicConfig(level=logging.INFO)

# ナップサック問題を定義
v = jm.Placeholder("v", ndim=1)  # アイテムの価値
w = jm.Placeholder("w", ndim=1)  # アイテムの重さ
W = jm.Placeholder("W")  # ナップサックの容量
N = v.len_at(0, latex="N")  # アイテム数
x = jm.BinaryVar("x", shape=(N,))  # 決定変数
i = jm.Element("i", belong_to=(0, N))

problem = jm.Problem("Knapsack", sense=jm.ProblemSense.MAXIMIZE)
problem += jm.sum(i, v[i] * x[i])  # 目的関数:価値の最大化
problem += jm.Constraint("weight", jm.sum(i, w[i] * x[i]) <= W)  # 重量制約

# インスタンスデータ
instance_data = {
    "v": [10, 13, 18, 31, 7, 15],  # アイテムの価値
    "w": [11, 15, 20, 35, 10, 33],  # アイテムの重さ
    "W": 47,  # ナップサックの容量
}

# OMMX インスタンスを作成
interpreter = jm.Interpreter(instance_data)
instance = interpreter.eval_problem(problem)

# APIにリクエストを実行
solution = jijsolver.solve(instance, time_limit_sec=2.0)
print(f"Value of the objective function: {solution.objective}")
                  

JijZept IDEからの利用

JijSolverは統合開発環境であるJijZept IDEからも利用することができます。

JijZept IDEを使用する場合、上記のクイックスタートで説明した環境設定やAPIトークンの設定は不要です。

JijZept IDEはログインするだけで数理最適化に必要な一通りのツールが使えるクラウドサービスであり、面倒な環境構築作業やツール選定の手間なく数理最適化の開発が可能になります。

お気軽にお問い合わせください

高度な最適化スキルを持つ専門スタッフが、あなたビジネスのお悩みや不明点にお答えします。

メールアドレスと基本情報で簡単に入力が完了します。