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})
のように期待する値が観測されるようである。アップデートを待とう。