らんだむな記憶

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

量子 Fourier 変換

Qiskit (30) - らんだむな記憶 で詳細は端折ったが、少し分りにくい計算ではあるので、備忘録として $n=3$ の時について確認してみる。

$$
\begin{align*}
| \tilde{k} \rangle &= U_{QFT} \ket{k} \\
&= \frac{1}{\sqrt{2^3}} (\ket{0} + e^{2 \pi i k \frac{1}{2^1}} \ket{1}) \otimes (\ket{0} + e^{2 \pi i k \frac{1}{2^2}} \ket{1}) \otimes (\ket{0} + e^{2 \pi i k \frac{1}{2^3}} \ket{1})
\tag{1}
\end{align*}
$$

から始める。
$\ket{k} = \ket{k_1 k_2 k_3}$ と 2 進展開する。書籍では、0 開始だが式の見た目が少しイマイチになるので、他のリソースと同様に 1 開始にしている。
$k = 2^2 k_1 + 2^1 k_2 + 2^0 k_3$ と書けるので、

$$
\begin{align*}
| \tilde{k} \rangle &= U_{QFT} \ket{k} \\
&= \frac{\ket{0} + e^{2 \pi i \frac{k_3}{2^1}} \ket{1}}{\sqrt{2}} \otimes \frac{\ket{0} + e^{2 \pi i \left(\frac{k_2}{2^1} + \frac{k_3}{2^2}\right)} \ket{1}}{\sqrt{2}} \otimes \frac{\ket{0} + e^{2 \pi i \left(\frac{k_1}{2^1} + \frac{k_2}{2^2} + \frac{k_3}{2^3}\right)} \ket{1}}{\sqrt{2}}
\tag{2}
\end{align*}
$$

となる。
ここで制御回転ゲート

$$
CP(\theta) = \begin{pmatrix}
1 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & e^{i \theta}
\end{pmatrix}
$$

を導入する。
(2) 式の 2 番目の出力量子ビット $\frac{\ket{0} + e^{2 \pi i \left(k_2/2^1 + k_3/2^2\right)} \ket{1}}{\sqrt{2}}$ を $CP(\theta)$ ゲートを用いて書き換えると、

$$
\begin{align*}
\frac{\ket{0} + e^{2 \pi i \left(\frac{k_2}{2^1} + \frac{k_3}{2^2}\right)} \ket{1}}{\sqrt{2}} = CP_{3,2}\left(\frac{\pi}{2}\right) H \ket{k_2}
\tag{3}
\end{align*}
$$

となる。
$k_2 \in \{0, 1\}$ について場合分けして、ゲートの作用を順に見る。まずはアダマールゲートの作用として、$\ket{k_2} = \ket{0}$ であれば、

$$
\begin{align*}
H \ket{k_2} = H \ket{0} = \frac{\ket{0} + \ket{1}}{\sqrt{2}} = \frac{\ket{0} + e^{2 \pi i \frac{0}{2^1}} \ket{1}}{\sqrt{2}}
\end{align*}
$$

であり、$\ket{k_2} = \ket{1}$ であれば、

$$
\begin{align*}
H \ket{k_2} = H \ket{1} = \frac{\ket{0} - \ket{1}}{\sqrt{2}} = \frac{\ket{0} + e^{2 \pi i \frac{1}{2^1}} \ket{1}}{\sqrt{2}}
\end{align*}
$$

となる。つまり、まとめると、

$$
\begin{align*}
H \ket{k_2} = \frac{\ket{0} - \ket{1}}{\sqrt{2}} = \frac{\ket{0} + e^{2 \pi i \frac{k_2}{2^1}} \ket{1}}{\sqrt{2}}
\end{align*}
$$

である。次に 3 番目の量子ビット $\ket{k_3}$ を制御量子ビットとして $CP\left(\frac{\pi}{2}\right)$ を作用させて (3) 式を得る。

このような操作が各量子ビットについて行われるので、回路図では、各量子ビットについてまずアダマールゲートが作用し、続いて複数個の「自身より下位のビットを制御ビットとするような制御回転ゲート」が続く形になる。なお、各量子ビットへの制御回転ゲートへの作用は独立であり、順序を交換することが可能である。