JijSolver API Client
Jij 製の数理最適化ソルバーである JijSolver を 、Web API 経由で実行するための クライアントパッケージです。以下に使用方法を説明します。
Quick Start
アクセストークンの取得
JijSolver API を使用するには、事前にアクセストークンを取得する必要があります。無償版の利用申請方法は以下の通りです。
利用申請方法
-
以下リンク先のフォームから利用申請を行ってください。
申請フォーム: JijSolverAPI 無償版 利用申請フォーム
-
申請されたメールアドレス宛に、アクセスに必要な情報(API サーバーのホスト名、アクセストークン)が届きます。
インストール
JijSolver API のクライアントパッケージをインストールします:
pip install jijsolver-api-client
環境変数の設定
上記利用申請により入手した、以下の値を環境変数に設定します:
-
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"] = "アクセストークン"
リクエスト実行例
実行例の中で JijModeling を使用するため、事前にインストールしておきます。
pip install jijmodeling
ナップサック問題を解く例:
import os
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}")
API リファレンス
JijSolver API を使用して最適化問題を解きます。
パラメータ:
ommx_instance(Instance): OMMX インスタンスtime_limit_sec(float): 最大求解時間(秒)
戻り値:
Solution: OMMX ソリューション
例:
solution = jijsolver.solve(
ommx_instance=problem_instance,
time_limit_sec=2.0
)
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file jijsolver_api_client-0.1.1.tar.gz.
File metadata
- Download URL: jijsolver_api_client-0.1.1.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c8a5a4b8e9920881790265a10ac984073ffe7a1b9935ba85e3607672221ff73
|
|
| MD5 |
dc89b5388058c2fe7d89e9ceaf8efe13
|
|
| BLAKE2b-256 |
6a8d66084534cc480034bcfa7faa78f6f3bd2359f9a56d2909321b91e4effe5e
|
Provenance
The following attestation bundles were made for jijsolver_api_client-0.1.1.tar.gz:
Publisher:
release_client.yml on Jij-Inc/JijSolverAPI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jijsolver_api_client-0.1.1.tar.gz -
Subject digest:
1c8a5a4b8e9920881790265a10ac984073ffe7a1b9935ba85e3607672221ff73 - Sigstore transparency entry: 273314433
- Sigstore integration time:
-
Permalink:
Jij-Inc/JijSolverAPI@100bf02657052ca2ef00f667a7c19235201644c8 -
Branch / Tag:
refs/tags/client-v0.1.1 - Owner: https://github.com/Jij-Inc
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release_client.yml@100bf02657052ca2ef00f667a7c19235201644c8 -
Trigger Event:
push
-
Statement type: