らんだむな記憶

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

Lab 9 Quantum Simulation as a Search Algorithm

Lab 9 Quantum Simulation as a Search Algorithm を解いてみたい。

1. Build a quantum circuit for a given Hamiltonian.

ステップA:

単純計算で

$$
\begin{align*}
e^{-i\theta|0\rangle\langle0|} &= I + (e^{-i \theta} - 1) |0\rangle\langle0| \\
&= \begin{bmatrix}
e^{-i \theta} & 0 \\
0 & 1
\end{bmatrix} = e^{-i \theta} \begin{bmatrix}
1 & 0 \\
0 & e^{i \theta}
\end{bmatrix} = e^{i \theta} P(\theta)
\end{align*}
$$

となるので、

$$
\begin{align*}
CX_{0,1} P(\theta)_1 CX_{0,1} (|\psi\rangle \otimes |0\rangle) = (P(\theta) |\psi\rangle) \otimes |0\rangle
\end{align*}
$$

を踏まえると回路の実装の意味がわかる。$\theta = \frac{\pi}{9}$ とした時がゲート H1 の実装である。

ステップB:

単純計算で

$$
\begin{align*}
e^{-i\theta|+\rangle\langle+|} &= I + \frac{1}{2} (e^{-i \theta} - 1) \begin{bmatrix}
1 & 1 \\
1 & 1
\end{bmatrix} \\
&= e^{-i \frac{\theta}{2}} \begin{bmatrix}
\cos \frac{\theta}{2} & -i \sin \frac{\theta}{2} \\
-i \sin \frac{\theta}{2} & \cos \frac{\theta}{2}
\end{bmatrix} = e^{-i \frac{\theta}{2}} R_x(\theta)
\end{align*}
$$

であるので、

h2 = QuantumCircuit(2, name='H2')
h2.rx(np.pi/9, 0)

H2 = h2.to_gate()

h2.draw()

でゲート H2 が実装できる。行列の指数関数の計算が多少面倒くさいが、適当に scipy.linalg.expm で検証しながら計算すれば、後はダイレクトに実装できる形になっている。

ハミルトニアンを $H = \ket{0}\bra{0} + \ket{+}\bra{+}$ とする時、ユニタリプロパゲータ $U(t) = e^{-i t H}$ の離散的なシミュレーションができる準備ができた。

実際には $\ket{0}\bra{0}$ と $\ket{+}\bra{+}$ は非可換なので上記のゲート H1H2 の合成でハミルトニアンの時間発展は記述てきない。一方、Trotter 展開を使うと $\left( e^{-itA/n}e^{-itB/n} \right)^n \approx e^{-it (A+B)}$ という近似ができるので、ちょっとずつ時間発展させることで近似ができる。

$e^{-i t (\ket{0}\bra{0} + \ket{+}\bra{+})} \ket{+}$ は概ね $t \approx 0.7 \pi$ で$\ket{1}$ の確率振幅がほぼ 0 になる。つまり、$e^{-0.7 \pi i H} \ket{+} \approx \ket{0}$ となる。シミュレーションでは 6 回目の時間発展で概ね $\ket{0}$ になっているが、$6/0.7 = 8.57 \approx 9$ を考慮すると、Trotter 展開より

$$
\begin{align*}
(e^{-i \frac{\pi}{9} \ket{0}\bra{0}} e^{-i \frac{\pi}{9} \ket{+}\bra{+}})^6 \approx (e^{-i \frac{0.7}{6} \pi \ket{0}\bra{0}} e^{-i \frac{0.7}{6} \pi \ket{+}\bra{+}})^6 \approx e^{-0.7 \pi i (\ket{0}\bra{0} + \ket{+}\bra{+})}
\end{align*}
$$

なので概ね納得いく結果ということになる。そういうわけで、可視化においては、ブロッホ球の上を $\ket{+}$ から $\ket{0}$ に向かう形で時間発展がシミュレーションされる。