A client for JijSolver API.
Project description
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
)
Project details
Release history Release notifications | RSS feed
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: