らんだむな記憶

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

Qiskit (31) ― 量子位相推定

量子位相推定に突入。ユニタリ演算子 $U$ と固有ベクトル $\ket{\psi}$ が与えられた時に、固有値の位相(従って固有値そのもの)を求めるアルゴリズムであるとのこと。つまり、$U \ket{\psi} = e^{2 \pi i \theta} \ket{\psi}$ の $\theta \in [0, 1)$ を推定したい。まず、固有値がこのように書けることを確認する。

ユニタリ行列 $U$ とその固有値 $\lambda$ と対応する固有ベクトル $\ket{\psi}$ があるとする。$1 = \braket{\psi | \psi} = \bra{\psi} U^\dagger U\ket{\psi} = (U \ket{\psi})^\dagger U\ket{\psi} = \lambda^* \lambda \braket{\psi | \psi} = |\lambda|^2$ であるので、$|\lambda| = 1$ である。よって、固有値 $\lambda = e^{2 \pi i \theta}$ と表すことができる。

2. Phase Kickback と書籍の話を混ぜるつつアダマールテストについて確認する。$\ket{\psi}$ を $U$ の固有ベクトルとし、固有値を $e^{2 \pi i \theta}$ とする。アダマールテストはこの前提のもとで、$\theta$ を決定するアルゴリズムである。レジスタ 1 に $\ket{0}$ を、レジスタ 2 に $\ket{\psi}$ を入力する場合に、制御演算 $CU_{1,2}$ を取り込むことで、

$$
\begin{align*}
H_1 CU_{1,2} H_1 \ket{1} \ket{\psi} &= H_1 CU_{1,2} \frac{1}{\sqrt{2}}(\ket{0} + \ket{1}) \ket{\psi} \\
& = H_1 \frac{1}{\sqrt{2}}(\ket{0} \ket{\psi} + \ket{1} U \ket{\psi}) \\
& = H_1 \frac{1}{\sqrt{2}}(\ket{0} \ket{\psi} + \ket{1} e^{2 \pi i \theta} \ket{\psi}) \\
& = H_1 \frac{1}{\sqrt{2}}(\ket{0} + e^{2 \pi i \theta} \ket{1}) \ket{\psi} \\
&= \left( \frac{1 + e^{2 \pi i \theta}}{2} \ket{0} + \frac{1 - e^{2 \pi i \theta}}{2} \ket{1} \right) \ket{\psi}
\end{align*}
$$

のように、レジスタ 2 の $\ket{\psi}$ に $U$ が “与える” ところの固有値 $e^{2 \pi i \theta}$ がレジスタ 1 のほうの(相対)位相に “キックバック” される。こういう操作を位相キックバックと呼ぶらしい。

$$
\begin{align*}
\begin{cases}
\left| \frac{1 + e^{2 \pi i \theta}}{2} \right|^2 = \frac{1 + \cos 2 \pi \theta}{2} \\
\left| \frac{1 - e^{2 \pi i \theta}}{2} \right|^2 = \frac{1 - \cos 2 \pi \theta}{2}
\end{cases}
\end{align*}
$$

なので、確率振幅を観測することで、 $\theta$ を確定することができる。もしも制御ビットを使わずにレジスタが 1 つの回路にした場合は、単に $U \ket{\psi} = e^{2 \pi i \theta} \ket{\psi}$ となってしまい、$e^{2 \pi i \theta}$ が(どれかの量子ビットの相対位相ではなく)グローバル位相になってしまうので測定しても値を観測することができない。固有値或いはその位相が制御ビットの相対位相にキックバックされるのでそういう名称なのだと思うが、その事実よりは、いずれかの相対位相として取り出されることで測定で観測される値になることのほうが重要に思われる。

textbook ではこの話は分離されてわりと最初で紹介されている。書籍ではアダマールテストの話もまとめて紹介している。