東芝

SQBM+ v2.0.3

東芝 の開発したシミュレーテッド分岐マシンを核とする量子インスパイアード最適化ソリューションです。

Tip

AWS Marketplace あるいは Fixstars Amplify の有償オプションとして提供されています。

Tip

SQBM+のバージョンにより、使用可能なソルバーや受付可能な変数タイプが異なります。 バージョンは version プロパティから取得できます。

ソルバー仕様:
  • solver プロパティに Qubo が設定されている場合 (デフォルト):

    バイナリ変数

    イジング変数

    整数変数

    実数変数

    目的関数

    2次

    -

    -

    -

    等式制約

    -

    -

    -

    -

    不等式制約

    -

    -

    -

    -

  • solver プロパティに Qplib が設定されている場合:

    バイナリ変数

    イジング変数

    整数変数

    実数変数

    目的関数

    2次

    -

    -

    2次

    等式制約

    1次

    -

    -

    1次

    不等式制約

    1次

    -

    -

    1次

  • solver プロパティに Pubo が設定されている場合:

    バイナリ変数

    イジング変数

    整数変数

    実数変数

    目的関数

    4次

    -

    -

    4次

    等式制約

    -

    -

    -

    -

    不等式制約

    -

    -

    -

    -

クライアントクラス:

クライアントクラスの共通インターフェース に加えて以下のアトリビュートとメソッドを持ちます。

アトリビュート

データ型

詳細

solver

Solver | str

使用するソルバーを指定します。Qubo (デフォルト) または Qplib を指定可能です。

compression

bool

リクエストデータを圧縮して送信します。デフォルトは True です。False に設定することでリクエストデータの圧縮時間を削減できますが、通信時間が増加する可能性があります。

メソッド

返却型

詳細

health_check()

bool

ヘルスチェック 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
})