- Algorithms
- Also: eigenvalue kickback
- Also: phase kick-back
Phase Kickback
Phase kickback is a quantum phenomenon where applying a controlled-U gate to an eigenstate of U causes the eigenvalue phase to be transferred back to the control qubit, enabling algorithms like QPE and Grover's.
Phase kickback is one of the most important mechanisms in quantum computing. Many of the most powerful quantum algorithms, including quantum phase estimation, Grover’s algorithm, and the Deutsch-Jozsa algorithm, rely on it.
The Basic Mechanism
Suppose U is a unitary operator with eigenvector |u> and eigenvalue exp(i*phi):
U|u> = exp(i*phi)|u>
Now apply the controlled-U gate with a control qubit in superposition (|0> + |1>)/sqrt(2) and the target qubit in the eigenstate |u>:
CU * (|0> + |1>)/sqrt(2) * |u> = (|0>I|u> + |1>U|u>) / sqrt(2) = (|0>|u> + exp(iphi)|1>|u>) / sqrt(2) = (|0> + exp(iphi)|1>) / sqrt(2) * |u>
The target register |u> is unchanged. The phase exp(i*phi) has been “kicked back” onto the control qubit. The control qubit now encodes the eigenvalue, while the target remains in its eigenstate.
Why It Works
This happens because the eigenvalue phase is a global phase relative to the target register, but a relative phase relative to the control register. Global phases are unobservable, but relative phases are measurable and can be exploited algorithmically. The controlled operation converts the eigenvalue from a target-space global phase to a control-space relative phase.
Phase Kickback in Grover’s Algorithm
Grover’s oracle applies O_f|x>|-> = (-1)^{f(x)}|x>|->. Here |-> = (|0> - |1>)/sqrt(2) is an eigenstate of X with eigenvalue -1. The ancilla qubit |-> acts as the target, and the phase -1 (when f(x) = 1) is kicked back onto the input register |x>. The ancilla returns unchanged to |->. This is a direct application of phase kickback.
Phase Kickback in Quantum Phase Estimation
Quantum phase estimation (QPE) uses phase kickback systematically. The algorithm prepares n control qubits in the Hadamard basis and the target register in an eigenstate |u> of U. It then applies controlled-U^(2^j) for j = 0, …, n-1.
Each controlled-U^(2^j) kicks back the phase exp(iphi2^j) onto the j-th control qubit. After all applications, the control register holds:
product_j (|0> + exp(iphi2^j)|1>) / sqrt(2)
This is exactly the Fourier basis encoding of the binary representation of phi/(2*pi). Applying the inverse QFT decodes this to a computational basis state encoding phi.
Constructing Phase Oracles
Phase kickback provides a general method for turning any classical function oracle O_f into a phase oracle. Prepare the ancilla in state |-> = (|0> - |1>)/sqrt(2), apply O_f, and the phase (-1)^{f(x)} is kicked back onto the input register. This is why the ancilla is always initialized to |-> in Grover-type algorithms.
Practical Example
In Qiskit, phase kickback appears naturally in any oracle that uses X and CNOT gates on an ancilla qubit:
from qiskit import QuantumCircuit
# Phase kickback: ancilla in |->, target in |x>
qc = QuantumCircuit(2)
qc.x(1) # Set ancilla to |1>
qc.h(1) # Put ancilla in |->
qc.h(0) # Control qubit in |+>
qc.cx(0, 1) # CNOT kicks back phase onto control qubit
qc.h(0) # Interfere to reveal the kickback
qc.measure_all()
# Result: '00' with ~100% probability, demonstrating the phase effect