common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


Overview
Contact
Event
Project
Research

Terms of service (Web service)

Terms of service (Quantum and ML Cloud service)

Privacy policy


Sign in
Sign up
common.title

2022年令和最新版!pyquboからblueqat cloud経由でD-WaveにQUBOを投げる。

Yuichiro Minato

2022/10/03 10:53

最近blueqat cloudを使ってアニーリングを実行している人が増えたので、使い方を見てみます。実機のD-Waveに投げるにはQUBOマトリックスを投げます。

!pip install blueqat-cloud

APIキーを登録していない人は先に登録してください。blueqat.comに登録し、設定からとれます。

import bqcloud
api = bqcloud.register_api("Your API key here")

登録している人はこちらから

import bqcloud
api = bqcloud.load_api()
api.annealing([[-1, 0], [0, 0.5]], 5, 10)
AnnealingResult(task={'id': 'a4038946-7ce3-4a10-9697-c1a1f8b7237f', 'user_id': 'f9c2af20-b38b-4b4e-943c-07e66ab03de1', 'qubo': '{{-1,0},{0,0.5}}', 'chain_strength': 5, 'num_reads': 10, 'ip': '18.116.44.12', 'created_at': '2022-10-03T10:24:03.327581+00:00', 'updated_at': '2022-10-03T10:24:03.327581+00:00', 'device_name': 'd-wave/Advantage_system4', 'dataframe': '{"0":{"0":1},"1":{"0":0},"chain_break_fraction":{"0":0.0},"energy":{"0":-1.0},"num_occurrences":{"0":10}}'})

こんな感じです。簡単にできました。QUBO行列、chain break、試行回数の順番です。
ちょっと投げる行列はpyquboやd-waveではあまり見ない形ですので、変換を見てみます。

!pip install pyqubo
import dimod
from pyqubo import Array

x = Array.create('x', shape=(5), vartype='BINARY')

#適当に作ります。
qubo = x[0]*x[1]

model = qubo.compile()
bqm = model.to_bqm()

BQMのモデルを行列形式にします。

qubo_matrix = bqm.to_numpy_matrix(variable_order=['x[0]', 'x[1]']).tolist()
/tmp/ipykernel_123/4108795986.py:1: DeprecationWarning: bqm.to_numpy_matrix() is deprecated since dimod 0.10.0
  qubo_matrix = bqm.to_numpy_matrix(variable_order=['x[0]', 'x[1]']).tolist()

不穏なエラーが出てますが、、、気にせず続けます。最後にこれを先ほどのように投入して完了です。

result = api.annealing(qubo_matrix, 5, 10)

計算結果をDataframeで取り出してみてみます。

import pandas as pd

df = pd.read_json(result.task["dataframe"])

df
   0  1  chain_break_fraction  energy  num_occurrences
0  0  1                     0       0                2
1  0  0                     0       0                4
2  1  0                     0       0                4

いい感じに仕上がりました。

© 2025, blueqat Inc. All rights reserved