らんだむな記憶

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

Qiskit (30) ― 量子 Fourier 変換

計算はさぼってそのまま書き出すとして、n 量子ビットでの量子 Fourier 変換は

$$
| \tilde{k} \rangle = U_{QFT} \ket{k} = \frac{1}{\sqrt{N}} (\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 \cdots \otimes (\ket{0} + e^{2 \pi i k \frac{1}{2^n}} \ket{1})
$$

と書ける。この辺は textbook のアニメーションをみて、変換後の LSB の回転が $k$ に対して Z 軸を回転軸として緩やかに回転するなとか、MSB の回転が $k$ に対して Z 軸を回転軸として 180 度回転のトグルになっているなとかを視覚的の踏まえつつ、数式の変換をありがたく眺めるのが良さそうに感じた。計算が面倒くさい部分は帰納法で示せば良い。

The Atoms of Computation

This is because Qiskit numbers the bits in a string from right to left.

という番号づけに対し、5. The Circuit that Implements the QFT あたりでの、$\ket{x_1 x_2 \cdots x_n}$ とか $x = 2^{n-1} x_1 + 2^{n-2} x_2 + \cdots + 2^1 x_{n-1} + 2^0 x_n$ の辺りの記述では、$x_1$ が MSB で $x_n$ が LSB として番号づけされているようなので注意が必要である。(なので、書籍と textbook の回路図で、番号に注目すると上下が反転していてちょっと混乱する。MSB にアダマールゲートを作用させるところから始まるので内容は同一である)

QFT の回路の出力については

the order of the qubits is reversed in the output state.

ということになるので、書籍でも textbook でも最後の方で SWAP ゲートで出力の順番を並べ直している。なお、5. QFTを実装する回路 の回路図は間違っていて、5. The Circuit that Implements the QFT のほうが正しそうだ。随所であんまりメンテが追いついてなさそうだから、疑問に思ったら英語のほうのコンテンツを見た方が良さそう・・・。

計算の流れはありがたく眺めるだけにとどめる・・・。

書籍の付属コードは $\ket{0} = \ket{000}$ を量子 Fourier 変換するので、(4.8.5) 式より

$$
\begin{align*}
|\tilde{0}\rangle &= \frac{1}{\sqrt{2^3}} (\ket{0} + \ket{1}) \otimes (\ket{0} + \ket{1}) \otimes (\ket{0} + \ket{1}) \\
&= \frac{1}{\sqrt{2^3}}(\ket{000} + \ket{001} + \ket{010} + \ket{011} + \ket{100} + \ket{101} + \ket{110} + \ket{111})
\end{align*}
$$

が出力されるので、これを測定すると $\ket{000}$ から $\ket{111}$ までが等確率で観測されることになる。

8.2 General QFT Function では、CROT の適用がそれまでの図とは順番が違うように見えるが、これはアダマールゲートとアダマールゲートで挟まれたブロックないでの CROT 同士の作用が独立で可換であるので書籍でわざわざやっているような reversed の適用を端折っているだけと思われる。

あまりこの部分で深追いしても面白そうには感じないので、p.135 までは完了として先へ進む。