QiskitでQsphereをプロットする(plot_state_qsphere)

本記事では、QiskitでQsphereをプロットする方法について説明する。

Qsphereは量子状態の可視化方法の一つ。

他によく用いられる可視化方法としてブロッホ球がある。

ブロッホ球については以下の記事を参照。

happy-quantum.hateblo.jp

Qsphereもブロッホ球と同様に球面上に量子ビットの状態を表現する。

ブロッホ球に対して優位な点としては、位相も表現できることが挙げられる。

Qshpereでは、球上の点の大きさが状態に含まれる各項の重み(確率振幅の絶対値の2乗)に対応し、色が位相に対応する。

QiskitでQsphereをプロットするには、qiskit.visualizationパッケージに含まれるplot_state_qsphereを使用する。

qiskit.visualization.plot_state_qsphere — Qiskit 0.43.1 documentation

以下に例を挙げる。

例1:  |0\rangle

from qiskit.visualization import plot_state_qsphere

plot_state_qsphere([1.0, 0.0])

例2:  \frac1{\sqrt{2}}|00\rangle + \frac1{\sqrt{2}}|11\rangle

from qiskit.visualization import plot_state_qsphere
import numpy as np

plot_state_qsphere([1.0/np.sqrt(2.0), 0.0, 0.0, 1.0/np.sqrt(2.0)])

例3:  \frac12|00\rangle - \frac12|01\rangle + \frac12|10\rangle - \frac12|11\rangle

from qiskit.visualization import plot_state_qsphere

plot_state_qsphere([0.5, -0.5, 0.5, 0.5])

例4:  |\psi\rangle = \frac12|0\rangle - \frac{\sqrt{3}}{2}|1\rangle

from qiskit.visualization import plot_state_qsphere
import numpy as np

plot_state_qsphere([0.5, -0.5*np.sqrt(3)])