LoginSignup
2
2

More than 1 year has passed since last update.

量子アニーリング基本操作

Posted at

はじめに

量子アニーリングにて、QUBO行列をハードウェアに投げる作業を備忘の為にメモ書きしたものです。

  1. D-Waveの場合
  2. OpenJijの場合

D-Waveの場合

D-waveライブラリのインストールとインポート

#インストール
pip install dwave-ocean-sdk
#使用するD-waveマシンを指定するDWaveSamplerとQBITへの自動割当を行うEmbeddingCompositeをインストール
from dwave.system import DWaveSampler, EmbeddingComposite

使用するD-Waveマシンの指定

以下のTokenはhttps://cloud.dwavesys.com/leap/login/?next=/leap/ でIDを作成すれば無料で3分のマシンタイム獲得可。

#D-Waveマシンの指定 = アクセスURL、token、使用するSolverを指定
endpoint = "https://cloud.dwavesys.com/sapi/"
token = "DEV-XXX…" 
solver = "Advantage_system4.1" #以下参照
dw_sampler = DWaveSampler(solver = solver, token = token, endpoint = endpoint)
#指定したD-Waveマシン上でのQBITの自動割当を準備
sampler = EmbeddingComposite(dw_sampler)

D-Waveでの計算

QUBO行列を以下でD-Wave Samplerに投げる。

#QUBO行列の指定
QUBO = [...]
#指定のD-Wave SamplerにQUBO行列を投げて計算行う
ans = sampler.sample_qubo(QUBO, num_reads=10) # num_readsは繰り返し回数

D-Wave Solverの種類

現在以下のSolverが使用可。
・QPUは約5,000変数使用可。
・Hybridは約20,000~100,000変数程度まで使用可能とのこと。
D-Waveマシン.jpg

OpenJijの場合(量子アニーリングのシュミレーター)

OpenJijライブラリのインストールとインポート

#インストール
pip install openjij
#ライブラリのインポート
from openjij import SQASampler

OpenJijで計算

QUBO行列を以下でOpenJIjのシュミレーターに投げる。

#QUBO行列の指定
QUBO = [...]
#OpenJij上でQUBO行列を計算
sampler = SQASampler()
ans = sampler.sample_qubo(QUBO, num_reads=10)

以上

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2