TThis post is part of my 21-day quantum computing learning journey, focusing on quantum gates and circuits - the fundamental operations that make quantum computing possible. Today we’re revisiting and consolidating our understanding of these essential quantum tools through structured revision.

Progress: 9/21 days completed. Pauli Gates: ✓. Hadamard Gate: ✓. CNOT Gate: ✓. Quantum Circuits: mastered.

Quantum Gates: The fundamental operations of quantum computing

Quantum gates are the building blocks of quantum circuits, analogous to logic gates in classical computing. However, unlike classical gates, quantum gates are reversible unitary operations that can manipulate superposition and entanglement - the key resources that give quantum computers their power.

Mathematical Foundation of Quantum Gates

All quantum gates can be represented as unitary matrices that preserve the normalization of quantum states:

Unitary Condition: U†U = I

This ensures that quantum operations are reversible and probability is conserved throughout quantum computations.

Pauli Gates Family

The Pauli gates form the foundation of single-qubit operations:

Gate Matrix Operation Physical Interpretation
X Gate [[0, 1], [1, 0]] Bit flip Rotates qubit 180° around X-axis on Bloch sphere
Y Gate [[0, -i], [i, 0]] Bit + Phase flip Rotates qubit 180° around Y-axis on Bloch sphere
Z Gate [[1, 0], [0, -1]] Phase flip Rotates qubit 180° around Z-axis on Bloch sphere

Hadamard Gate (H)

The gateway to quantum superposition:

  • Matrix: [[1,1],[1,-1]]/√2
  • Operation: Creates equal superposition from computational basis states
  • Key Property: H|0⟩ = |+⟩, H|1⟩ = |-⟩

Phase Gates

Fine-tune quantum phases without changing probability amplitudes:

  • S Gate: Adds π/2 phase to |1⟩ state
  • T Gate: Adds π/4 phase to |1⟩ state
  • General Phase: R_φ = [[1,0],[0,e^(iφ)]]

CNOT Gate (Controlled-NOT)

Our first two-qubit gate demonstrating quantum entanglement:

  • Operation: Flips target qubit when control qubit is |1⟩
  • Matrix: 4×4 unitary matrix
  • Key Property: Creates Bell states from product states

Practical Implementation: Quantum Circuit Simulation

import numpy as np
from math import sqrt, pi

# Define fundamental quantum gates
def pauli_x():
    """Pauli-X gate (NOT gate)"""
    return np.array([[0, 1], [1, 0]], dtype=complex)

def pauli_y():
    """Pauli-Y gate"""
    return np.array([[0, -1j], [1j, 0]], dtype=complex)

def pauli_z():
    """Pauli-Z gate"""
    return np.array([[1, 0], [0, -1]], dtype=complex)

def hadamard():
    """Hadamard gate"""
    return np.array([[1, 1], [1, -1]], dtype=complex) / sqrt(2)

def phase_gate(phi):
    """General phase gate"""
    return np.array([[1, 0], [0, np.exp(1j * phi)]], dtype=complex)

def cnot():
    """CNOT gate (2-qubit)"""
    return np.array([
        [1, 0, 0, 0],
        [0, 1, 0, 0],
        [0, 0, 0, 1],
        [0, 0, 1, 0]
    ], dtype=complex)

# Quantum state operations
def apply_gate(gate, state):
    """Apply quantum gate to state"""
    return gate @ state

def measure_probability(state, basis_state):
    """Calculate measurement probability"""
    return abs(np.vdot(basis_state, state))**2

# Demonstrate gate operations
def demonstrate_quantum_gates():
    """Show effects of different quantum gates"""
    
    # Initial states
    state_0 = np.array([1, 0], dtype=complex)  # |0⟩
    state_1 = np.array([0, 1], dtype=complex)  # |1⟩
    
    gates = {
        "Pauli-X": pauli_x(),
        "Pauli-Y": pauli_y(),
        "Pauli-Z": pauli_z(),
        "Hadamard": hadamard(),
        "Phase(π/2)": phase_gate(pi/2)
    }
    
    print("Gate Effects on |0⟩ state:")
    print("Gate\t\tFinal State\t\tProbabilities |0⟩, |1⟩")
    print("-" * 60)
    
    for name, gate in gates.items():
        final_state = apply_gate(gate, state_0)
        prob_0 = measure_probability(final_state, state_0)
        prob_1 = measure_probability(final_state, state_1)
        
        print(f"{name:<12}\t[{final_state[0]:.3f}, {final_state[1]:.3f}]\t({prob_0:.3f}, {prob_1:.3f})")

# Quantum circuit construction
def quantum_circuit_example():
    """Demonstrate building quantum circuits"""
    print("\nQuantum Circuit: H → X → H on |0⟩")
    
    # Initial state |0⟩
    state = np.array([1, 0], dtype=complex)
    print(f"Initial: {state}")
    
    # Apply Hadamard
    state = apply_gate(hadamard(), state)
    print(f"After H: [{state[0]:.3f}, {state[1]:.3f}]")
    
    # Apply Pauli-X
    state = apply_gate(pauli_x(), state)
    print(f"After X: [{state[0]:.3f}, {state[1]:.3f}]")
    
    # Apply Hadamard again
    state = apply_gate(hadamard(), state)
    print(f"Final:   [{state[0]:.3f}, {state[1]:.3f}]")

if __name__ == "__main__":
    demonstrate_quantum_gates()
    quantum_circuit_example()

Advanced Quantum Circuit Examples

Now let’s explore practical quantum circuits that demonstrate the power of combining basic gates into sophisticated quantum algorithms:

  • Bell State Preparation Circuit
|0⟩ ——[H]——●—— |Φ+⟩ = (|00⟩ + |11⟩)/√2
             │
|0⟩ ————————⊕——

This fundamental circuit creates quantum entanglement between two qubits.

  • Quantum Teleportation Protocol
|ψ⟩ ——●——[H]——[M]—— Classical bits ——> Bob applies corrections
      │           
|0⟩ —[H]—●——⊕——[M]——
         │  
|0⟩ ————⊕————————————— Teleported |ψ⟩ (after correction)

Transfers quantum information using entanglement and classical communication.

  • Grover’s Search Algorithm (2-qubit)
|0⟩ —[H]—— Oracle ——— Diffusion ——— |target⟩
|0⟩ —[H]——   │    ———    │    ———
  • Quantum Fourier Transform
|x₀⟩ —[H]—●——●————————— [SWAP] ——— |y₀⟩
           │  │
|x₁⟩ ——————R₂—●—[H]—●— [SWAP] ——— |y₁⟩
                    │
|x₂⟩ ———————————————R₃—————[H]——— |y₂⟩
  • Variational Quantum Eigensolver (VQE)
|0⟩ —[RY(θ₁)]——●—— ⟨H⟩ measurement
              │
|0⟩ —[RY(θ₂)]——⊕——
Hybrid quantum-classical algorithm for finding ground state energies.

Circuit Implementation Details

The extended code examples above demonstrate how these circuits work in practice, showing state evolution through each gate operation and the final measurement probabilities. Each circuit showcases different aspects of quantum computation:

  • Entanglement Generation: Bell states and teleportation
  • Quantum Speedup: Grover’s search algorithm
  • Quantum Transform: Fourier analysis in quantum domain
  • Optimization: Variational approaches for practical problems

My site is free of ads and trackers. Was this post helpful to you? Why not BuyMeACoffee


Reference:

  1. Quantum Computation and Quantum Information - Nielsen & Chuang
  2. Quantum Circuit Simulator