Introduction to Phase Kickback¶
This episode introduces the phenomenon of phase kickback.
Phase kickback is a quantum effect that occurs when a controlled unitary $U$ affects the control qubit rather than the target. In particular, when the target is in an eigenstate of $U$, its phase becomes a relative phase on the control qubit if the control is in superposition, which is counter-intuitive.
This effect is important because it allows quantum algorithms to encode and extract global phase information inside relative phases, forming the basis of key routines such as phase estimation and related algorithms.
Objectives
Understand what phase kickback is
Understand its mathematical formulation
Instructor note
90 min teaching/type-along
30 min exercising
Lesson¶
from IPython.display import Video
video = Video("../_static/videos/Phase_Kickback.mp4", width=1920//2, height=1080//2)
video
Example of Phase Kickback - Controlled X¶
First, import all the needed dependencies:
from sympy import latex, expand, simplify
from sympy.physics.quantum.qubit import Qubit
from sympy.physics.quantum.gate import H, X, CNOT
from sympy.physics.quantum.qapply import qapply
from IPython.display import display, Math
def show(label, expr):
display(Math(r"%s = %s" % (label, latex(simplify(expand(expr))))))
Example 1: standard CNOT on a generic superposition¶
We consider initially a generic superposition: \begin{equation} |\psi_0\rangle = a \ket{00} + b \ket{01} + c \ket{10} + d \ket{11} \end{equation} with $|a|^2 + |b|^2 + |c|^2 + |d|^2 = 1$.
Caution
Note that, in SymPy, qubit ordering is reversed with respect to the standard convention, so care is needed when interpreting states and measurements.
from sympy import symbols
a, b, c, d = symbols("a b c d")
psi0 = a*Qubit('00') + b*Qubit('01') + c*Qubit('10') + d*Qubit('11')
show(r"\psi_0", psi0)
Here we take:
qubit 0 as the control
qubit 1 as the target We identify the operator as $CNOT_{0,1}$.
Note
The CNOT flips the target only when the control is |1>. Adopting SymPy qubits ordering and qubit 0 as control:
$\ket{00} \to \ket{00}$
$\ket{01} \to \ket{11}$
$\ket{10} \to \ket{10}$
$\ket{11} \to \ket{01}$
psi1 = qapply(CNOT(0, 1) * psi0)
show(r"\ket{\psi_1} = {CNOT}_{0,1}\ket{\psi_0}", psi1)
As you can see, the state on the target qubit changes when the control qubit is $\ket{1}$. The control qubit is not affected.
Example 2: phase kickback with target in $\ket{-}$¶
We consider initially the state: \begin{equation} |\psi_0\rangle = |-\rangle|+\rangle = \frac{1}{2}\left(\ket{00} + \ket{01} - \ket{10} - \ket{11}\right) \end{equation}
The target qubit is prepared in the state $\ket{-}$, which is an eigenstate of the Pauli-$X$ operator: \begin{equation} X\ket{-} = -\ket{-} \end{equation}
Caution
Again, remember that in SymPy qubit ordering is reversed with respect to the standard convention.
First, we prepare the the initial state:
# Application of H on qubit 0 and of (H * X) on qubit 1
psi_0 = qapply(H(0) * H(1) * X(1) * Qubit('00'))
show(r"\ket{\psi_0} = \ket{}", psi_0)
Now we apply the $CNOT$ from qubit 0 to qubit 1.
# Apply CNOT
psi1 = qapply(CNOT(1, 0) * psi0)
show(r"\ket{\psi_1} = \mathrm{CNOT}_{1,0}\, \ket{\psi_0}", psi1)
Exercise
Factorize the obtained state as the tensor products of two qubits.
Finally, state whether phase kickback occured.
Solution
We use SymPy qubit ordering.
The state can be factorized as \begin{align} \ket{\psi_1} &= \frac{1}{2}\ket{0}(\ket{0} - \ket{1}) - \frac{1}{2}\ket{1}(\ket{0} - \ket{1}) \ &= \frac{1}{\sqrt{2}}\ket{0}\ket{-} - \frac{1}{\sqrt{2}}\ket{1}\ket{-} \ &= \ket{-}\ket{-} \end{align}
Phase kickack occurred since the state of the control qubits changed from $\ket{+}$ to $\ket{-}$.
Keypoints¶
In this episode we have seen:
What is phase kickback and when it occurs.
Several examples of phase kickback on simple 2-qubits systems.
See also
Check the additional notes on phase kickback