最新のblueqat1.0.0を公開しました。今後メインのバックエンドとなるテンソルネットワークバックエンドを搭載しています。
pip install --no-deps -U git+https://github.com/jcmgray/quimb.git@develop autoray
で必要なライブラリをインストール後、
from blueqat import Circuit
Circuit(50).h[:].run(backend="quimb")
で計算ができます。サンプルを複数取る場合には、shots=nで指定します。
Circuit(4).h[:].run(backend="quimb", shots=100)
また、ちょっと仕様は今後変更になる可能性もありますが、ハミルトニアンの期待値を取ることができます。今回は状態ベクトルに代わってこちらの機能がとても大事になります。
from blueqat.pauli import Z
hamiltonian = 1*Z[0]+1*Z[1]
Circuit(4).x[:].run(backend="quimb", hamiltonian=hamiltonian)
今回のシミュレータは状態ベクトル全体が取れません。その代わり単一の振幅を取ることができます。
Circuit(4).h[:].run(backend="quimb", amplitude="0101")
単一の振幅はそのバイナリ値がでる振幅に対応します。回路に使っている量子ビット数と答えの量子ビット数をそろえる必要があります。僕はちょっとこの機能の使いどころが分かっていませんが、状態ベクトルの代わりに使うことがあるのかもしれません。
手元のPCでも大きめのサイズの計算ができますので、ぜひ試してみてください。
from blueqat import Circuit
c = Circuit(50).h[:]
for i in range(1, 50):
c.cx[0, i]
c.run(backend="quimb")
今後blueqatでは量子機械学習のアプリを中心に出していこうと思います。以上です。