らんだむな記憶

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

<QT> 位相キックバック

Phase Kickback

Kickback is where the eigenvalue added by a gate to a qubit is ‘kicked back’ into a different qubit via a controlled operation.

X, Y, Z ゲートには対応する基底が存在する。例えば、Z ゲートでは計算基底 $\ket{0}$, $\ket{1}$ が対応する。このうち $\ket{1}$ については $Z \ket{1} = - \ket{1}$ のように固有値 -1 を持つ。単一の量子ビットでの計算だとこのように固有値の情報はグローバル位相の中に紛れ込むが、例えばアダマールゲートを通して $\ket{+} = H \ket{0} = \frac{1}{\sqrt{2}}(\ket{0} + \ket{1})$ のように重ね合わせ状態にしてから Z ゲートを適用すると、$Z \ket{+} = \frac{1}{\sqrt{2}}(\ket{0} - \ket{1}) = \ket{-}$ のように固有値の情報は相対位相のほうに反映される。この情報を制御ゲートを使って他の量子ビットの側に持っていく操作の類を位相キックバックと呼ぶようだ。Qiskit (31) ― 量子位相推定 - らんだむな記憶 でも書いたが復習のためにおさらいしてみた。

<QT> CX ゲートの反転 - らんだむな記憶 で式として書き下したように、

$$
\begin{align*}
\ket{ji} \xrightarrow{CX_{0,1} (H \otimes H)}&\ \frac{\ket{0} + (-1)^j \ket{1}}{\sqrt{2}} \otimes \frac{\ket{0} + (-1)^{i+j} \ket{1}}{\sqrt{2}} \\
\xrightarrow{H \otimes H}&\ \ket{j} \otimes H \frac{\ket{0} + (-1)^{i+j} \ket{1}}{\sqrt{2}} = \ket{j} \otimes \ket{i \oplus j}
\end{align*}
$$

This is interesting, because it affects the state of the control qubit while leaving the state of the target qubit unchanged.

の通りに、ターゲット量子ビット固有値 $(-1)^j$ が制御量子ビットの相対位相に流れ込んで影響を与えている。

https://qiskit.org/textbook/ch-gates/phase-kickback.html#Quick-Exercises: に取り組んでみる。それぞれ固有値キックバックされ、制御量子ビットの状態が変化することが見て取れる。

1.

sim = Aer.get_backend('aer_simulator')
qc = QuantumCircuit(2, 1)
qc.h(0)
qc.cp(np.pi/4, 0, 1)
qc.save_statevector()
qc.measure(0, 0)

$$
\begin{align*}
\ket{0} \otimes \ket{0} \xrightarrow{H_0} \ket{0} \otimes \ket{+} \xrightarrow{CT_{0,1}} \ket{0} \otimes \ket{+}
\end{align*}
$$

2.

sim = Aer.get_backend('aer_simulator')
qc = QuantumCircuit(2, 1)
qc.h(0)
qc.x(1)
qc.cp(-np.pi/2, 0, 1)
qc.save_statevector()
qc.measure(0, 0)

$$
\begin{align*}
\ket{1} \otimes \ket{0} \xrightarrow{H_0} \ket{1} \otimes \ket{+} \xrightarrow{CS^\dagger_{0,1}} \ket{1} \otimes \ket{L}
\end{align*}
$$

3.

sim = Aer.get_backend('aer_simulator')
qc = QuantumCircuit(2, 1)
qc.x(0)
qc.x(1)
qc.cp(np.pi/4, 0, 1)
qc.save_statevector()
qc.measure(0, 0)

$$
\begin{align*}
\ket{1} \otimes \ket{1} \xrightarrow{CT_{0,1}} \ket{1} \otimes \frac{1+i}{\sqrt{2}} \ket{1}
\end{align*}
$$