Table of Contents
- Introduction
- What Is Measurement in Quantum Mechanics?
- Classical vs Quantum Measurement
- Collapse of the Quantum State
- Measurement in the Computational Basis
- How to Add Measurements in Qiskit
- Mapping Qubits to Classical Bits
- Running with Multiple Shots
- Collecting and Analyzing Output Data
- Using Qiskit’s get_counts() Function
- Visualizing Results with Histograms
- Understanding Probabilities and Statistics
- Common Measurement Patterns
- Entangled States and Measurement Correlations
- Measurement in Other Bases
- Mid-Circuit Measurements and Classical Conditions
- Real Devices vs Simulation: Measurement Noise
- Debugging Incorrect Results
- Best Practices for Interpretation
- Conclusion
1. Introduction
Measurement in quantum computing refers to the act of observing the value of a qubit. This process is probabilistic, and the result is a classical bit value (0 or 1), determined by the quantum state of the qubit at the time of measurement.
2. What Is Measurement in Quantum Mechanics?
When a quantum system is measured, the superposition collapses into one of the possible basis states. The probability of each outcome is dictated by the amplitudes in the wavefunction.
3. Classical vs Quantum Measurement
Property | Classical Measurement | Quantum Measurement |
---|---|---|
Outcome | Deterministic | Probabilistic |
State change | None | Collapse to eigenstate |
Repeatability | Always same result | Varies due to probabilities |
4. Collapse of the Quantum State
Given a qubit in state \( |\psi
angle = lpha|0
angle + eta|1
angle \), measuring it in the Z-basis results in:
- 0 with probability \( |lpha|^2 \)
- 1 with probability \( |eta|^2 \)
After measurement, the state collapses to either \( |0
angle \) or \( |1
angle \).
5. Measurement in the Computational Basis
The Z-basis measurement is the default in most quantum processors. Qiskit uses this as standard unless basis transformations are applied before measurement.
6. How to Add Measurements in Qiskit
from qiskit import QuantumCircuit
qc = QuantumCircuit(1, 1)
qc.h(0)
qc.measure(0, 0)
This circuit applies a Hadamard gate to create a superposition and then measures qubit 0 into classical bit 0.
7. Mapping Qubits to Classical Bits
To measure multiple qubits:
qc.measure([0, 1], [0, 1])
This ensures results are stored in the corresponding classical registers.
8. Running with Multiple Shots
Quantum circuits are run many times to estimate output probabilities:
from qiskit import Aer, execute
backend = Aer.get_backend('qasm_simulator')
job = execute(qc, backend, shots=1024)
9. Collecting and Analyzing Output Data
result = job.result()
counts = result.get_counts()
print(counts) # Example: {'0': 502, '1': 522}
Each key represents a bitstring, and the value shows how many times it occurred.
10. Using Qiskit’s get_counts() Function
get_counts()
returns measurement outcomes as dictionaries:
{'00': 512, '11': 512}
This is useful for analyzing entangled states or algorithm output.
11. Visualizing Results with Histograms
from qiskit.visualization import plot_histogram
plot_histogram(counts)
This shows how frequently each outcome appeared.
12. Understanding Probabilities and Statistics
Probabilities are derived from frequency:
probability_of_0 = counts['0'] / 1024
Quantum randomness means some fluctuation is always expected.
13. Common Measurement Patterns
- Hadamard + Measure → 50/50 split (|+⟩ state)
- Entangled Bell State → Perfect correlation (00 or 11)
- Grover’s Output → One high-probability outcome
14. Entangled States and Measurement Correlations
Bell state:
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
Expect outputs like:
{'00': 500, '11': 524}
15. Measurement in Other Bases
Measure in X-basis by applying H before measurement:
qc.h(0)
qc.measure(0, 0)
Or in Y-basis:
qc.sdg(0)
qc.h(0)
qc.measure(0, 0)
16. Mid-Circuit Measurements and Classical Conditions
Use mid-circuit logic:
qc.measure(0, 0)
qc.x(1).c_if(qc.cregs[0], 1)
This flips qubit 1 only if qubit 0 measured as 1.
17. Real Devices vs Simulation: Measurement Noise
Real hardware includes:
- Readout error
- Crosstalk
- Gate infidelity
Always compare simulator vs hardware results to identify noise effects.
18. Debugging Incorrect Results
- Check gate ordering
- Ensure all qubits are measured
- Validate classical bit mapping
- Compare statevector simulation with measurement outcomes
19. Best Practices for Interpretation
- Use
measure_all()
unless mapping explicitly - Run enough shots (≥1024) for stable results
- Visualize and normalize results before comparison
- Use Qiskit’s mitigation tools to reduce measurement error
20. Conclusion
Measurement is the final and most important step in quantum computation. By interpreting output correctly, developers can extract meaningful results from probabilistic processes. With practice, interpreting quantum measurement becomes a powerful tool in quantum software development.