らんだむな記憶

blogというものを体験してみようか!的なー

Blueqat (1)

https://github.com/Blueqat/blueqat-tutorials を Qiskit と比較しつつ眺めてみたい。
blueqat cloudで始める無料量子コンピュータプログラミング01(1量子ビットの計算) by Yuichiro Minato | blueqat などを参考に blueqat cloud に登録して Notebook をクリックすると、Jupyter Lab が起動する。セル内で

! pip list

すると分かるが、blueqat SDK は最初から入っている。カーネルPython 3 でも Python 3.9 でもどちらでも 3.8.8 が入るらしい。

from blueqat import Circuit

c = Circuit()
c.x[0]

みたいな感じで q_0 に X ゲートが適用できるので、ちょっとショットを打って測定すると

c.m[:].run(shots=1024)

Counter({'1': 1024})

のように $\ket{1}$ だけが観測される。

次に 2 量子ビットにするとメソッドチェーンを使って書くと

c = Circuit()
c = qc.x[0].x[1]
c.m[:].run(shots=1024)

Counter({'11': 1024})

のように $\ket{11}$ が観測される。Qiskit はゲートの連鎖をメソッドチェーンを使って 1 行で書けないので、こういうのは地味に便利。Cambridge Quantum の tket もそういうことができると言っていた気がするが、試していないので分からない。

次に 3 量子ビットの回路を試そう:

c = Circuit().x[:2].ccx[0,1,2]
c.run(backend='draw')

を実行すると

のようになって、Toffoli ゲートがちゃんと描画されていないように見える。但し、測定すると

c.m[:].run(shots=1)

Counter({'111': 1})

のように期待する値が観測されるようである。アップデートを待とう。