東芝¶
SQBM+ v2.0.3¶
東芝 の開発したシミュレーテッド分岐マシンを核とする量子インスパイアード最適化ソリューションです。
Tip
AWS Marketplace あるいは Fixstars Amplify の有償オプションとして提供されています。
Tip
SQBM+のバージョンにより、使用可能なソルバーや受付可能な変数タイプが異なります。
バージョンは version
プロパティから取得できます。
- ソルバー仕様:
クライアントクラス
API 方式
REST API (HDF5/JSON)
API リファレンス
solver
プロパティにQubo
が設定されている場合 (デフォルト):バイナリ変数
イジング変数
整数変数
実数変数
目的関数
2次
-
-
-
等式制約
-
-
-
-
不等式制約
-
-
-
-
solver
プロパティにQplib
が設定されている場合:バイナリ変数
イジング変数
整数変数
実数変数
目的関数
2次
-
-
2次
等式制約
1次
-
-
1次
不等式制約
1次
-
-
1次
solver
プロパティにPubo
が設定されている場合:バイナリ変数
イジング変数
整数変数
実数変数
目的関数
4次
-
-
4次
等式制約
-
-
-
-
不等式制約
-
-
-
-
- クライアントクラス:
クライアントクラスの共通インターフェース に加えて以下のアトリビュートとメソッドを持ちます。
アトリビュート
データ型
詳細
リクエストデータを圧縮して送信します。デフォルトは
True
です。False
に設定することでリクエストデータの圧縮時間を削減できますが、通信時間が増加する可能性があります。メソッド
返却型
詳細
ヘルスチェック API への問合せを行い、ソルバーが正常動作しているかを確認します。
- 設定例:
from amplify import ToshibaSQBM2Client from datetime import timedelta client = ToshibaSQBM2Client() # API トークンを設定 # (AWS 版を使用する場合は不要) client.token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # URL を設定 # (AWS 版を使用する場合は必要) # client.url = "http://xxx.xxx.xxx.xxx:8000/" # ソルバーを指定 # (Qubo, Qplib, Pubo のいずれか) client.solver = "Qplib" # 実行時間を 1 秒に設定 client.parameters.timeout = timedelta(milliseconds=1000)
- 実行例:
from amplify import Model, VariableGenerator, solve # 決定変数と目的関数を定義 g = VariableGenerator() q = g.array("Binary", 2) f = q[0] * q[1] + q[0] - q[1] + 1 # モデルを作成 model = Model(f) # ソルバーを実行 result = solve(model, client)
ヘルスチェックAPIの実行:
>>> client.health_check() True
ソルバーのバージョンを取得:
>>> client.version '2.0.3'
実行時のパラメータ情報を取得:
>>> result.client_result.param ToshibaSQBM2Client.Parameters({ "steps": 1, "dt": 1.0, "C": 0.1502210944890976, "algo": 204 })