D-Wave Systems¶
D-Wave Sampler¶
D-Wave Systems の提供する量子アニーリングマシン (QPU) です。QUBO あるいは イジング変数の二次多項式で表された組合せ最適化問題を入力できます。
Tip
Fixstars Amplify のユーザ登録を行い無償のお試し API トークンを入手するか、自身の D-Wave Systems のアカウントで API トークンを入手してください。
- ソルバー仕様:
クライアントクラス
dimod.sampleset.SampleSet.info["timing"]["qpu_access_time"]
API 方式
REST API (SAPI)
実行パラメータリファレンス
バイナリ変数
イジング変数
整数変数
実数変数
目的関数
2次*
2次*
-
-
等式制約
-
-
-
-
不等式制約
-
-
-
-
*: バイナリ変数とイジング変数の両方が同時に含まれる問題には対応していません。
- クライアントクラス:
クライアントクラスの共通インターフェース に加えて以下のアトリビュートを持ちます。
アトリビュート
データ型
詳細
使用する D-Wave Sampler の名前を取得・設定します
設定されたトークンで仕様可能な D-Wave Sampler の名前の一覧を取得します
使用するソルバーのプロパティを取得します (
dwave.system.samplers.DWaveSampler.properties
と同じ結果が返ります)- 設定例:
from amplify import DWaveSamplerClient client = DWaveSamplerClient() # API トークンを設定 client.token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # 使用するソルバーを指定 # (client.solver_names に含まれる名前のいずれかを指定) client.solver = "Advantage_system4.1" # 実行回数を 1000 に設定 client.parameters.num_reads = 1000
参考
amplify.DWaveSamplerClient.parameters
に設定可能なアトリビュートは、📖 Parameters Reference を参照してください。次のようにして
properties
から取得することも可能です (出力はsolver
によって変わります)。>>> client.properties["parameters"] {'anneal_offsets': 'Anneal offsets for each working qubit, formatted as a list, with NaN specified for unused qubits.', 'anneal_schedule': "Annealing schedule formatted as a piecewise linear list of floating-point pairs of 't' and 's'.", 'annealing_time': 'Quantum annealing duration, in microseconds, as a positive floating point number.', ...}
- 実行例:
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.solver 'Advantage_system4.1'
現在使用可能なソルバーの一覧を取得:
>>> client.solver_names ['Advantage_system6.4', 'Advantage2_prototype2.5', 'Advantage_system4.1']
詳細な実行時間を取得:
>>> result.client_result.info {'timing': {'qpu_sampling_time': 66040.0, 'qpu_anneal_time_per_sample': 20.0, 'qpu_readout_time_per_sample': 25.46, 'qpu_access_time': 81799.16, 'qpu_access_overhead_time': 621.84, 'qpu_programming_time': 15759.16, 'qpu_delay_time_per_sample': 20.58, 'total_post_processing_time': 1.0, 'post_processing_overhead_time': 1.0}, 'problem_id': '14eaa606-9eed-4c72-83f1-d563bb0e1956'}
Leap's Hybrid BQM Sampler¶
D-Wave Systems の提供する量子アニーリングマシン (QPU) と古典アルゴリズムで動作するハイブリッドソルバーです。QUBO あるいは イジング変数の二次多項式で表された組合せ最適化問題を入力でき、D-Wave Sampler よりも大規模な問題の入力に対応しています。
Tip
Fixstars Amplify のユーザ登録を行い無償のお試し API トークンを入手するか、自身の D-Wave Systems のアカウントで API トークンを入手してください。
- ソルバー仕様:
クライアントクラス
dimod.sampleset.SampleSet.info["run_time"]
API 方式
REST API (SAPI)
実行パラメータリファレンス
バイナリ変数
イジング変数
整数変数
実数変数
目的関数
2次
2次
-
-
等式制約
-
-
-
-
不等式制約
-
-
-
-
- クライアントクラス:
クライアントクラスの共通インターフェース に加えて以下のアトリビュートを持ちます。
アトリビュート
データ型
詳細
使用する Leap's Hybrid BQM Sampler の名前を取得・設定します
設定されたトークンで仕様可能な Leap's Hybrid BQM Sampler の名前の一覧を取得します
使用するソルバーのプロパティを取得します (
dwave.system.samplers.LeapHybridSampler.properties
と同じ結果が返ります)- 設定例:
from amplify import LeapHybridSamplerClient client = LeapHybridSamplerClient() # API トークンを設定 client.token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # 使用するソルバーを取得 # (未指定であれば自動的に決定される) # print(client.solver) # 使用可能なソルバーの一覧を取得 # print(client.solver_names) # 使用するソルバーを指定 # (client.solver_names に含まれる名前のいずれかを指定) client.solver = "hybrid_binary_quadratic_model_version2" # 実行時間を 5 秒に設定 client.parameters.time_limit = 5
参考
amplify.LeapHybridSamplerClient.parameters
に設定可能なアトリビュートは、📖 Parameters Reference を参照してください。次のようにして
properties
から取得することも可能です (出力はsolver
によって変わります)。>>> client.properties["parameters"] {'time_limit': 'Maximum requested runtime in seconds.'}
- 実行例:
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.solver 'hybrid_binary_quadratic_model_version2'
現在使用可能なソルバーの一覧を取得:
>>> client.solver_names ['hybrid_binary_quadratic_model_version2']
詳細な実行時間を取得:
>>> result.client_result.info {'qpu_access_time': 47632, 'charge_time': 2989001, 'run_time': 2989001, 'problem_id': '745910bb-2e3b-4f3e-90fc-eb5734c637f3'}
Leap's Hybrid CQM Sampler¶
D-Wave Systems の提供する量子アニーリングマシン (QPU) と古典アルゴリズムで動作するハイブリッドソルバーです。QUBO あるいは イジング変数、整数変数、実数変数の目的関数と1つ以上の制約条件で表された組合せ最適化問題を入力できます。
Tip
Fixstars Amplify のユーザ登録を行い無償のお試し API トークンを入手するか、自身の D-Wave Systems のアカウントで API トークンを入手してください。
- ソルバー仕様:
クライアントクラス
dimod.sampleset.SampleSet.info["run_time"]
API 方式
REST API (SAPI)
実行パラメータリファレンス
バイナリ変数
イジング変数
整数変数
実数変数
目的関数
2次
2次
2次
1次
等式制約
2次
2次
2次
1次
不等式制約
2次
2次
2次
1次
- クライアントクラス:
クライアントクラスの共通インターフェース に加えて以下のアトリビュートを持ちます。
アトリビュート
データ型
詳細
使用する Leap's Hybrid BQM Sampler の名前を取得・設定します
設定されたトークンで仕様可能な Leap's Hybrid BQM Sampler の名前の一覧を取得します
使用するソルバーのプロパティを取得します (
dwave.system.samplers.LeapHybridCQMSampler.properties
と同じ結果が返ります)- 設定例:
from amplify import LeapHybridCQMSamplerClient client = LeapHybridCQMSamplerClient() # API トークンを設定 client.token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # 使用するソルバーを指定 # (client.solver_names に含まれる名前のいずれかを指定) client.solver = "hybrid_constrained_quadratic_model_version1p" # 実行時間を 3 秒に設定 client.parameters.time_limit = 3
参考
amplify.LeapHybridCQMSamplerClient.parameters
に設定可能なアトリビュートは、📖 Parameters Reference を参照してください。次のようにして
properties
から取得することも可能です (出力はsolver
によって変わります)。>>> client.properties["parameters"] {'time_limit': 'Maximum requested runtime in seconds.'}
- 実行例:
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.solver 'hybrid_constrained_quadratic_model_version1p'
現在使用可能なソルバーの一覧を取得:
>>> client.solver_names ['hybrid_constrained_quadratic_model_version1p']
ソルバーのバージョンを取得:
>>> client.version '1.12'
詳細な実行時間を取得:
>>> result.client_result.info {'constraint_labels': [], 'qpu_access_time': 15846, 'charge_time': 4305380, 'run_time': 4305380, 'problem_id': '47db4ee7-2e60-4c99-99ae-b596914d4907'}