Hands-On Introduction to DiVincenzo Criteria with Qiskit 2
Introduction
Physicist David DiVincenzo outlined five key requirements for any physical implementation of a quantum computer, plus two additional criteria for quantum communication. In this notebook, we will experience each DiVincenzo criterion through practical Qiskit demonstrations. Rather than going deep into theory, each section briefly explains one criterion and then provides code exercises using Qiskit 2. You will get to run circuits on simulators and real IBM Quantum devices to explore each principle hands-on.
DiVincenzo’s Five Criteria for Quantum Computation:
- A scalable physical system with well-characterized qubits.
- Ability to initialize qubits to a simple fiducial state (e.g. |00…0〉).
- Long decoherence times (qubit coherence much longer than gate operation time).
- A universal set of quantum gates (able to perform arbitrary unitary operations).
- Qubit-specific measurement capability (read out the state of each qubit).
(DiVincenzo also described two criteria for quantum communication: the ability to interconvert stationary and “flying” qubits, and to faithfully transmit flying qubits between locations. We include these in a recommended activity at the end of this notebook.)
Each of the following sections corresponds to one criterion. We'll use Qiskit to illustrate the concept with code and interactive experiments you can try. For example, we will see how scaling up the number of qubits and circuit depth affects outcomes (Criterion 1), how to reset and prepare qubit states (Criterion 2), how to measure qubits on simulators vs real devices (Criterion 4), how Qiskit composes universal gates (Criterion 3), and how finite coherence (T₁, T₂) impacts computations (Criterion 5). By the end, you'll have a deeper intuition for what each DiVincenzo criterion means in practice and how Qiskit enables experimenting with them.
# Added by doQumentation — required packages for this notebook
!pip install -q numpy
# Install necessary packages
!pip install qiskit[visualization] qiskit-ibm-runtime qiskit-aer qiskit_ibm_runtime
1. Criterion 1 – Scalable, Well-Characterized Qubits
Criterion 1: “A scalable physical system with well characterized qubits.” This means we need a quantum hardware platform where we can increase the number of qubits and still control them reliably. Each qubit’s properties (energy levels, error rates, connectivity, etc.) should be well understood. Essentially, we want to build bigger circuits without the system breaking down. In practice, as we scale up qubit count or circuit depth, errors and decoherence accumulate, so demonstrating scalability also means understanding how increasing size affects performance.
Goal of Demo: Use Qiskit to show the effect of scaling up a circuit (in qubit count or gate depth) on the output fidelity. We’ll simulate an ideal vs noisy scenario to see how a larger system or deeper circuit succumbs to decoherence and errors.
First, let's construct a small entangled state (GHZ state) on 3 qubits, then a larger one on 5 qubits, as a simple scaling test. A GHZ state of n qubits is