概要
dwave-ocean-sdkのサンプラーを使うことで量子アニーリングができる
量子アニーリングによっての基底状態周辺をサンプリングすることができる
ところで量子アニーラーを用いて単純にボルツマン分布からサンプリングがしたい場合、つまりMCMCを行いたい場合どうすれば良いのか
それを行うために、ボルツマン分布β
の値を固定したい
例えばβ=1
のMCMCを走らせ、逆温度1のボルツマン分布に従うサンプルを集めるにはどう実装すれば良いのか
実装
ソルバーはDW_2000Q_VFYC_6
を使う
from dwave.system.samplers import DWaveSampler
from dwave.system.composites import EmbeddingComposite
token = '*****************'
solver = 'DW_2000Q_VFYC_6'
dw = DWaveSampler(token=token, solver=solver)
sampler = EmbeddingComposite(dw)
このソルバーではパラメータβ
を固定することができる。
DW_2000Q_6
とかだとβ
を指定することができず量子アニーリングになる
NUM_READS = 1000
sample_params={'beta': 1, 'num_reads': NUM_READS}
sampleset = sampler.sample_ising(h=h, J=J, **sample_params)
まとめ
時間があったらもっと丁寧に書きたい