Fixstars Amplify¶
Fixstars Amplify Annealing Engine¶
Fixstars Amplify の提供する QUBO ソルバーです。GPU で実装された Simulated Annealing をベースとしたアルゴリズムが用いられています。
Tip
ユーザ登録を行うと無償の API トークンを入手できます。
- ソルバー仕様:
クライアントクラス
API 方式
REST API (JSON)
API リファレンス
バイナリ変数
イジング変数
整数変数
実数変数
目的関数
2次
-
-
-
等式制約
2次*
-
-
-
不等式制約
2次*
-
-
-
*: ペナルティ関数を与える必要があります。
- クライアントクラス:
クライアントクラスの共通インターフェース に加えて以下のアトリビュートを持ちます。
- 設定例:
from amplify import FixstarsClient from datetime import timedelta client = FixstarsClient() # API トークンを設定 client.token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # 実行時間を 1 秒に設定 client.parameters.timeout = timedelta(milliseconds=1000) # 使用する GPU 数を 1 に設定 client.parameters.num_gpus = 1 # 探索中に得られた全ての解を取得 client.parameters.outputs.num_outputs = 0
- 実行例:
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)
ソルバーのバージョンを取得:
>>> client.version 'v0.8.5-V100'
詳細な実行時間を取得:
>>> result.client_result.execution_time FixstarsClient.Result.ExecutionTime({ "annealing_time": 9988.965504, "queue_time": 0.047615, "cpu_time": 0.19356399999999996, "time_stamps": [ 8.764683 ] })
実行時のパラメータ情報を取得:
>>> result.client_result.execution_parameters FixstarsClient.Result.ExecutionParameters({ "num_gpus": 1, "timeout": 10000, "num_iterations": 585, "penalty_calibration": false, "penalty_multipliers": [], "version": "v0.8.7-V100" })