特徴
パラメータの複雑な設定が不要
一般的な最適化ソルバーでは複数のパラメータを設定して利用します。一方、JijZept Solverではたった1つのパラメータ(time_limit_sec)のみを指定するだけで利用できます。
コード例
import jijzept_solver
solution = jijzept_solver.solve(instance, time_limit_sec=2.0)大規模かつ複雑な問題にも対応可能
JijZept Solverは独自の高性能ヒューリスティックアルゴリズムを内蔵しています。これにより、厳密解を求めることが困難な大規模かつ複雑な問題に対しても、指定された時間内に質の高い解を得ることができます。
代表的な問題クラスに対応可能
以下の代表的な問題クラスに対して、JijZept Solverは短時間で実行可能解を得ることができます。
問題クラスを自動で判別し、内部で最適な探索手法を選択するので、問題の特性を意識する必要がありません。
- 線形計画(LP)
- 混合整数線形計画(MILP)
- 二次計画(QP)
- 二次制約(QCP)
- 混合整数二次計画(MIQP)
- 混合整数二次制約(MIQCP)
- 混合整数非凸二次制約(Non-convex MIQCP)
オンプレミスでも提供可能
社外秘のデータを安全に扱いたい、自社の環境で計算をしたいなどの要望に対応するためにオンプレミスでの提供も可能です。
これにより、お客様のセキュリティ要件を遵守しながら、より安全にJijZept Solverをご利用いただけます。
目的に合わせて選べる3つの利用方法
お客様のニーズに合わせて最適な利用方法をお選びいただけます。
無償WebAPI経由での利用
無償のWebAPI経由でJijZept Solverを実行する方法は以下の4ステップです。
1 利用申請
利用申請
JijZept Solver 無償WebAPI版を利用するには、まず利用申請フォームから申請を行ってください。
無償利用申請フォーム 2 インストール
インストール
JijZept Solver 無償WebAPI版のクライアントパッケージをインストールします。
pip install jijzept_solver 3 環境変数の設定
環境変数の設定
利用申請により入手した、以下の値を環境変数に設定します:
- JIJZEPT_SOLVER_SERVER_HOST: API サーバーのホスト名
- JIJZEPT_SOLVER_ACCESS_TOKEN: アクセストークン
設定例
環境変数の設定例:
export JIJZEPT_SOLVER_SERVER_HOST='API サーバーのホスト名'export JIJZEPT_SOLVER_ACCESS_TOKEN='アクセストークン'または Python コード内で設定する例:
import os
os.environ["JIJZEPT_SOLVER_SERVER_HOST"] = "API サーバーのホスト名"os.environ["JIJZEPT_SOLVER_ACCESS_TOKEN"] = "アクセストークン" 4 ナップサック問題の例
ナップサック問題の例
実行例の中でJijModelingを使用するため、事前にインストールしておきます。
pip install jijmodelingナップサック問題を解く例:
import loggingimport jijzept_solverimport 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 = jijzept_solver.solve(instance, time_limit_sec=2.0)print(f"Value of the objective function: {solution.objective}")JijZept IDEを通じての利用
JijZept Solverは統合開発環境であるJijZept IDEからも利用することができます。
JijZept IDEを使用する場合、上記のクイックスタートでの環境設定やAPIトークンの設定は不要です。
JijZept IDEは、ログインするだけで最適化に必要な一通りのツールが使えるクラウドサービスです。
面倒な環境構築作業やツール選定の手間なく最適化をはじめることができます。
ご利用を始めるには以下からお問い合わせください。
オンプレミスでの利用
JijZept Solverはお客様の環境内でも利用することができます。
お客様の環境内にJijZept Solverを導入することで、お客様の計算資源を活用しながら厳しいセキュリティ要件を満たし、ご要望に合わせた柔軟なライセンス体系をお選びいただけます。
ライセンスオプション
- 月額契約の期限付きライセンス
- 買い切りの期限なしライセンス
いずれも導入・保守サポート付きでご提供しており、1ヶ月の試用期間も設けております。
ご利用を始めるには以下からお問い合わせください。
ご利用プラン
お客様のご利用目的に応じて、最適な提供形態をお選びいただけます。
| 無償WebAPI経由での利用
無償お試し
| JijZept IDEを通じての利用
お問い合わせ
| オンプレミスでの利用
お問い合わせ
| |
|---|---|---|---|
| 料金 | 0円 | JijZept IDEの料金に含まれる | ご相談 (1ヶ月の試用期間あり) |
| 有効期間 | 90日間 (期限後、再度申請可能) | JijZept IDEの契約期間と同じ | ご相談 |
| 1リクエストあたりの 上限実行時間 | 最大10秒 | Standardプラン:最大10分 Premium/Enterpriseプラン:最大1時間 | 制限なし |
| 計算資源 | 共有 | Standardプラン:共有 Premium/Enterpriseプラン:占有 | 占有 (お客様の環境) |
| 技術サポート | あり※ | あり | あり |
※ こちらのDiscordサーバーにてコミュニティサポートという形での対応となります。
Q.無償WebAPI版の利用申請を行う際に、クレジットカード情報の登録は必要ですか?
Q.無償WebAPI版の利用申請を行う際に、クレジットカード情報の登録は必要ですか?
いいえ、クレジットカード情報を登録しなくても無償WebAPI版はご利用可能です。
無償お試し Q.無償WebAPI版の申請回数に制限はありますか?
Q.無償WebAPI版の申請回数に制限はありますか?
A.ありません。何度でも申請可能です。
Q.リクエスト回数に上限はありますか?
Q.リクエスト回数に上限はありますか?
A.ありません。しかし、同一リクエスト元からのAPIリクエストが集中した場合に、一時的にアクセス制限がかかることがあります。その場合は時間を置いて再度リクエストしてください。
Q.無償WebAPI版で良い解を得ることができませんでした。
Q.無償WebAPI版で良い解を得ることができませんでした。
実行時間を10秒以上にすることで良い解を得られる可能性があります。JijZept IDEあるいはオンプレミスでの利用をご検討ください。
お問い合わせ Q.オンプレミスでの具体的な料金を教えてください。
Q.オンプレミスでの具体的な料金を教えてください。
お客様のご要望や規模によって料金が異なるため、課題やお悩みなどをお伺いしたうえでお見積もりをご案内しております。まずはお気軽にお問い合わせください。
お問い合わせ上記以外の質問はこちらからお問い合わせください。
お問い合わせ