common.title
Cloud support

Nobisuke

Dekisugi

RAG


autoQAOA
RAG for dev
Fortune telling app
Annealing
DEEPSCORE
Translation

Overview
Service overview
Terms of service

Privacy policy

Contact
Research

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

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

© 2024, blueqat Inc. All rights reserved