Launch the interactive walkthrough to discover each component, including the 3D Q-Sphere Lab & Python in Colab.
Learn how classical datasets are prepared, loaded, and processed inside quantum memories and quantum registers.
Interactive 3D state vector exploration, unitary transformation gates, and Born rule collapse for Topic 9.2
| Symbol / Term | Meaning | Beginner Interpretation |
|---|---|---|
| Address register state | Superposition over all data memory addresses | |
| Data register state | Classical data record loaded into quantum register at index | |
| Superposition amplitude | Weight or probability amplitude assigned to data record | |
| Memory query time complexity | routing depth through binary quantum router tree |
Executing a coherent QRAM superposition lookup across N = 4 memory records (D0=5, D1=12, D2=3, D3=9) using a 2-qubit address register:
Result: All 4 records are queried and entangled with their respective addresses in a single logarithmic query step.
Features are normalized to unit Euclidean norm or scaled into phase rotation angles between $[0, \pi]$.
Hadamard gates create a uniform superposition across all index register qubits.
Address qubits route through a binary tree of quantum switches, activating target storage cells simultaneously.
Data values are entangled with address tags ready for subsequent quantum algorithmic transformations.
Problem: Scanning billions of DNA base pairs using classical lookup tables requires linear $O(N)$ searches.
Solution: QRAM-indexed genetic sequences allow quantum search algorithms to query genomic patterns in $O(\sqrt{N})$ time.
Problem: Covariance matrices across tens of thousands of asset prices are computationally prohibitive to invert classically in real time.
Solution: Quantum PCA on streaming financial tick data extracts principal components in logarithmic time.
Interactive activity component
Normalize a classical feature vector and prepare its exact quantum state representation using Qiskit or NumPy.
For Google Colab or Jupyter notebooks, run this shell command to install the required dependencies:
!pip install qiskit numpy1 import numpy as np 2 from qiskit import QuantumCircuit 3 from qiskit.quantum_info import Statevector
import numpy as np β Import NumPy for numerical vector normalization
from qiskit import QuantumCircuit β Import Qiskit circuit builder
from qiskit.quantum_info import Statevector β Import statevector simulator
1 classical_data = np.array([1.5, -2.0, 3.2, 0.8]) 2 norm = np.linalg.norm(classical_data) 3 normalized_amplitudes = classical_data / norm 4 qc = QuantumCircuit(2) 5 qc.initialize(normalized_amplitudes, [0, 1]) 6 sv = Statevector.from_instruction(qc) 7 print("Quantum State Vector:") 8 for idx, amp in enumerate(sv.data): 9 print(f"|{idx:02b}> : {amp.real:.4f} + {amp.imag:.4f}j")
classical_data = np.array([1.5, -2.0, 3.2, 0.8])
4-element classical feature vector
norm = np.linalg.norm(classical_data)
Compute Euclidean L2 norm
normalized_amplitudes = classical_data / norm
Scale vector so sum of squared amplitudes equals 1
qc = QuantumCircuit(2)
Create 2-qubit circuit (2^2 = 4 amplitudes)
qc.initialize(normalized_amplitudes, [0, 1])
Initialize statevector using Qiskit isometry
sv = Statevector.from_instruction(qc)
Simulate the resulting quantum state
print("Quantum State Vector:")
Print label
for idx, amp in enumerate(sv.data):
Iterate amplitudes
print(f"|{idx:02b}> : {amp.real:.4f} + {amp.imag:.4f}j")
Display basis amplitudes
Click "Copy for Colab", open Google Colab, paste into a single cell, and run.
1 # ========================================================= 2 # Simulating Amplitude Encoding and Unitary State Preparation 3 # Prepared for Google Colab (Run with Shift + Enter) 4 # ========================================================= 5 6 # Step 1: Install required packages 7 !pip install qiskit numpy 8 9 # Step 2: Import libraries 10 import numpy as np 11 from qiskit import QuantumCircuit 12 from qiskit.quantum_info import Statevector 13 14 # Step 3: Run Demonstration 15 classical_data = np.array([1.5, -2.0, 3.2, 0.8]) 16 norm = np.linalg.norm(classical_data) 17 normalized_amplitudes = classical_data / norm 18 qc = QuantumCircuit(2) 19 qc.initialize(normalized_amplitudes, [0, 1]) 20 sv = Statevector.from_instruction(qc) 21 print("Quantum State Vector:") 22 for idx, amp in enumerate(sv.data): 23 print(f"|{idx:02b}> : {amp.real:.4f} + {amp.imag:.4f}j")
Ensure Euclidean norm equals 1 to preserve quantum state normalization.
Map 4 values onto 2 qubits ($2^2 = 4$).
Decompose the state initialization into a sequence of rotational and CNOT gates.
Classical vector: [1.5, -2.0, 3.2, 0.8]
|00>: 0.3644 |01>: -0.4859 |10>: 0.7774 |11>: 0.1944
The four classical numbers are now encoded directly into the probability amplitudes of the 2-qubit quantum state vector.
Covariance, quadratic programming, SamplingVQE, and portfolio optimization.
Test your understanding with these questions. Remember, this is for learning, not examination!