Circuit Examples
This section demonstrates practical quantum circuit constructions for common quantum algorithms and operations. Each exam### W States
W states have equal superposition with exactly one qubit in |1⟩:
3-Qubit W State
Circuit (one construction):
|0⟩ ──[R_y(θ₁)]────●────────────
|0⟩ ─────────────[C-R_y(θ₂)]──●──
|0⟩ ──────────────────────────⊕──
Where \(\theta_1 = 2\arccos(\sqrt{2/3})\) and \(\theta_2 = 2\arccos(\sqrt{1/2})\).
Implementation:
from quantum_simulator import QuantumSimulator, QuantumCircuit
from quantum_simulator.gates import RY_W1, CRY_W, CNOT_GATE
import numpy as np
# Create 3-qubit W state
sim = QuantumSimulator(3)
circuit = QuantumCircuit(3)
# Apply rotation gates to create W state
circuit.add_gate(RY_W1, [0]) # R_y(θ₁) on qubit 0
circuit.add_gate(CRY_W, [0, 1]) # Controlled R_y(θ₂) on qubits 0→1
circuit.add_gate(CNOT_GATE, [1, 2]) # CNOT: 1→2
circuit.add_gate(CNOT_GATE, [0, 2]) # CNOT: 0→2
circuit.execute(sim)
print(sim.get_state_vector()) # [0, 0.577, 0.577, 0, 0.577, 0, 0, 0]
# Alternatively, create W state directly
w_state = np.zeros(8, dtype=complex)
w_state[1] = 1/np.sqrt(3) # |001⟩
w_state[2] = 1/np.sqrt(3) # |010⟩
w_state[4] = 1/np.sqrt(3) # |100⟩
sim.state_vector = w_state
Properties:
- Each qubit has equal 1/3 probability of being measured as |1⟩
- Exactly one qubit will be |1⟩ in any measurement
- More robust to particle loss than GHZ states
- Demonstrates symmetric multipartite entanglementrcuit diagrams, mathematical descriptions, and implementation code using our quantum simulator.
Basic Quantum States
Computational Basis States
The simplest circuits prepare computational basis states |0⟩ and |1⟩:
Preparing |0⟩
Preparing |1⟩
Implementation:
from quantum_simulator import QuantumSimulator, QuantumCircuit
from quantum_simulator.gates import X_GATE
# Prepare |1⟩ state
sim = QuantumSimulator(1)
circuit = QuantumCircuit(1)
circuit.add_gate(X_GATE, [0])
circuit.execute(sim)
print(sim.get_state_vector()) # [0, 1] = |1⟩
Superposition States
Plus State |+⟩
Minus State |-⟩
Implementation:
from quantum_simulator.gates import H_GATE
# Prepare |+⟩ state
sim = QuantumSimulator(1)
circuit = QuantumCircuit(1)
circuit.add_gate(H_GATE, [0])
circuit.execute(sim)
print(sim.get_state_vector()) # [0.707, 0.707] ≈ |+⟩
Y-basis States
Entangled States
Bell States
The four maximally entangled two-qubit states:
|Φ⁺⟩ = (|00⟩ + |11⟩)/√2
|Φ⁻⟩ = (|00⟩ - |11⟩)/√2
|Ψ⁺⟩ = (|01⟩ + |10⟩)/√2
|Ψ⁻⟩ = (|01⟩ - |10⟩)/√2
Implementation (|Φ⁺⟩):
from quantum_simulator.gates import CNOT_GATE
# Create Bell state |Φ⁺⟩
sim = QuantumSimulator(2)
circuit = QuantumCircuit(2)
circuit.add_gate(H_GATE, [0]) # Create superposition
circuit.add_gate(CNOT_GATE, [0, 1]) # Create entanglement
circuit.execute(sim)
print(sim.get_state_vector()) # [0.707, 0, 0, 0.707]
GHZ States
Greenberger-Horne-Zeilinger states for 3+ qubits:
3-Qubit GHZ
4-Qubit GHZ
|0⟩ ──H────●────●────●── |GHZ₄⟩ = (|0000⟩ + |1111⟩)/√2
|0⟩ ───────⊕────│────│──
|0⟩ ────────────⊕────│──
|0⟩ ─────────────────⊕──
Implementation:
# Create 3-qubit GHZ state
sim = QuantumSimulator(3)
circuit = QuantumCircuit(3)
circuit.add_gate(H_GATE, [0])
circuit.add_gate(CNOT_GATE, [0, 1])
circuit.add_gate(CNOT_GATE, [0, 2])
circuit.execute(sim)
print(sim.get_state_vector()) # [0.707, 0, 0, 0, 0, 0, 0, 0.707]
W States
W states have equal superposition with exactly one qubit in |1⟩:
3-Qubit W State
Circuit (one construction):
|0⟩ ──[R_y(θ₁)]────●────────────
|0⟩ ─────────────[C-R_y(θ₂)]──●──
|0⟩ ──────────────────────────⊕──
Where \(\theta_1 = 2\arccos(\sqrt{2/3})\) and \(\theta_2 = 2\arccos(\sqrt{1/2})\).
Quantum Algorithms
Deutsch's Algorithm
Determines if function \(f:\{0,1\} \to \{0,1\}\) is constant or balanced:
Where \(U_f|x,y\rangle = |x, y \oplus f(x)\rangle\).
Result: Measure 0 → constant, Measure 1 → balanced
Deutsch-Jozsa Algorithm
Generalization to \(n\)-bit functions:
Implementation (2-bit example):
# Example: f(x) = x₁ ⊕ x₂ (balanced function)
def deutsch_jozsa_circuit():
sim = QuantumSimulator(3) # 2 input + 1 ancilla
circuit = QuantumCircuit(3)
# Initialize ancilla to |1⟩
circuit.add_gate(X_GATE, [2])
# Apply Hadamard to all qubits
for i in range(3):
circuit.add_gate(H_GATE, [i])
# Oracle: f(x) = x₁ ⊕ x₂
circuit.add_gate(CNOT_GATE, [0, 2]) # x₀ → ancilla
circuit.add_gate(CNOT_GATE, [1, 2]) # x₁ → ancilla
# Final Hadamard on input qubits
circuit.add_gate(H_GATE, [0])
circuit.add_gate(H_GATE, [1])
circuit.execute(sim)
return sim
Grover's Algorithm
Quantum search for marked items in unsorted database:
Single Iteration (2-qubit example)
Where Oracle marks target state with phase flip.
Amplitude Amplification
Diffuser: \(2|\psi\rangle\langle\psi| - I\) operation.
Simon's Algorithm
Finds hidden period of function \(f:\{0,1\}^n \to \{0,1\}^n\):
Requires multiple runs to determine period s where \(f(x) = f(x \oplus s)\).
Quantum Simulation
Ising Model Evolution
Time evolution under Ising Hamiltonian: \(H = \sum J_{ij}\sigma_i^z\sigma_j^z + \sum h_i\sigma_i^x\)
Trotter Decomposition
Variational Quantum Eigensolver (VQE)
Parameterized circuits for finding ground states:
Hardware-Efficient Ansatz
|0⟩ ──[R_y(θ₁)]──●────[R_y(θ₅)]──●── ...
|0⟩ ──[R_y(θ₂)]──⊕──●──[R_y(θ₆)]──⊕── ...
|0⟩ ──[R_y(θ₃)]─────⊕──[R_y(θ₇)]───── ...
|0⟩ ──[R_y(θ₄)]────────[R_y(θ₈)]───── ...
Quantum Approximate Optimization Algorithm (QAOA)
For combinatorial optimization:
Single QAOA Layer
Where C encodes the cost function and B is the mixing Hamiltonian.
Quantum Information Protocols
Teleportation
Quantum state transfer using entanglement and classical communication:
Implementation:
def teleportation_circuit():
sim = QuantumSimulator(3)
circuit = QuantumCircuit(3)
# Prepare state to teleport (example: |+⟩)
circuit.add_gate(H_GATE, [0])
# Create Bell pair between qubits 1 and 2
circuit.add_gate(H_GATE, [1])
circuit.add_gate(CNOT_GATE, [1, 2])
# Bell measurement on qubits 0 and 1
circuit.add_gate(CNOT_GATE, [0, 1])
circuit.add_gate(H_GATE, [0])
# Measure qubits 0 and 1 (simulated here)
# In real implementation, apply corrections based on results
circuit.execute(sim)
return sim
Superdense Coding
Transmit 2 classical bits using 1 qubit + shared entanglement:
Encoding rules:
- 00 → I (identity)
- 01 → X
- 10 → Z
- 11 → Y
Quantum Error Correction
3-Qubit Bit-Flip Code
|ψ⟩ ──●────●───...error channel...──●────●──■──
|0⟩ ──⊕────│─────────────────────────⊕────│──■──
|0⟩ ───────⊕─────────────────────────────⊕──■──
Encodes 1 logical qubit in 3 physical qubits, corrects single bit-flip errors.
Quantum Fourier Transform
3-Qubit QFT
|x₀⟩ ──H──●──────●────────SWAP──
│ │ │
|x₁⟩ ─────S─●────│──H──S───│────
│ │ │ │
|x₂⟩ ─────────T──H─────────T─────
Where gates implement controlled rotations: - S = controlled-\(R_z(\pi/2)\) - T = controlled-\(R_z(\pi/4)\)
Mathematical representation: $\(\text{QFT}|x\rangle = \frac{1}{\sqrt{2^n}}\sum_{y=0}^{2^n-1}e^{2\pi i xy/2^n}|y\rangle\)$
Inverse QFT
Apply reverse order of QFT with conjugated rotations:
Quantum Walk Algorithms
Discrete Quantum Walk
Quantum analog of classical random walk:
Where S± are conditional shift operators based on coin state.
Continuous Quantum Walk
Implemented via Hamiltonian simulation on graphs:
Where H is the graph adjacency matrix.
Parameterized Quantum Circuits
Quantum Machine Learning
Data Encoding
Variational Layer
──[R_y(θ₁)]──●────[R_y(θ₄)]──●── ...
──[R_y(θ₂)]──⊕──●──[R_y(θ₅)]──⊕── ...
──[R_y(θ₃)]─────⊕──[R_y(θ₆)]───── ...
Quantum Neural Networks
Quantum version of neural network layers:
Each layer contains parameterized gates optimized via gradient descent.
Advanced Circuit Techniques
Gate Synthesis
Decomposing arbitrary unitaries into elementary gates:
Arbitrary Single-Qubit Unitary
Any single-qubit unitary can be decomposed as \(R_z(\alpha)R_y(\beta)R_z(\gamma)\).
Two-Qubit Unitary Decomposition
Uses KAK decomposition with at most 3 CNOTs:
These examples demonstrate the versatility and power of quantum circuits for implementing quantum algorithms, simulating quantum systems, and solving computational problems with quantum advantage.