A nonorthogonal state has a nonzero inner product with another quantum state. Measurement cannot distinguish the two states perfectly, so state identification must account for unavoidable uncertainty. section 4.2 section 4.4
Nonorthogonal states change the design of a quantum measurement:
- Replace perfect identification with minimum-error discrimination when the possible states occur with known probabilities. section 4.4
- Choose a measurement basis that maximizes the probability of identifying the input correctly across repeated trials. section 4.4 section 4.9
- Use multiple copies for quantum state tomography when estimating amplitudes and relative signs requires more information than one measurement provides. section 4.5.1 section 4.9
Distinguishing |0⟩ from α|0⟩ + β|1⟩
For real positive α and β, rotate the input by −2(θ − π/4), where θ = atan2(β, α)/2, then measure. Repeated trials estimate whether the input was |0⟩ or the superposition while minimizing error. section 4.4 section 4.4.2
Listing 4.9 Qiskit code to distinguish nonorthogonal states
from math import atan2, pi from qiskit import QuantumCircuit def distinguish_zero_and_sup(alpha, beta): circ = QuantumCircuit(1, 1) theta = atan2(beta, alpha) / 2 circ.ry(- 2 * (theta - pi / 4), 0) circ.measure(0, 0) return circ
Inspect the Qiskit circuit that computes the distinguishing rotation, measures the qubit, and supports statistical testing across trials. section 4.4.2
Listing 4.10 Q# code to distinguish nonorthogonal states
import Std.Math.*;
operation DistinguishZeroAndSup(
q : Qubit, alpha : Double, beta : Double
) : Int {
let theta = ArcTan2(beta, alpha) / 2.;
Ry(- 2. * (theta - PI() / 4.), q);
return MResetZ(q) == Zero ? 0 | 1;
}
Compare the equivalent Q# operation, which applies the rotation and returns a classical state-identification result after measurement. section 4.4.3
