← Back to Projects

Quantum Circuit Simulator

Quantum Computing • Fall 2025 • Research Project

Quantum Python Qiskit Algorithms

Project Overview

Developed a comprehensive Python-based quantum circuit simulator from scratch, implementing fundamental quantum gates, state vector manipulation, and visualization tools. The simulator supports famous quantum algorithms including Grover's search and Shor's factorization, providing both educational value and practical testing capabilities for quantum algorithm development.

The Challenge

Understanding quantum computing requires hands-on experience with quantum circuits, but access to real quantum hardware is limited and expensive. Existing simulators often abstract away crucial implementation details, making it difficult to truly understand quantum mechanics at the gate level. The goal was to build a simulator that:

  • Accurately represents quantum state evolution through unitary transformations
  • Handles multi-qubit entanglement and measurement operations
  • Provides clear visualization of quantum states and circuit operations
  • Scales efficiently for circuits with up to 15 qubits

Technical Approach

Quantum State Representation

The simulator represents quantum states as complex-valued vectors in the computational basis. For an n-qubit system, the state vector contains 2^n complex amplitudes, stored as NumPy arrays for efficient linear algebra operations.

Gate Implementation

Implemented all fundamental quantum gates as unitary matrices:

  • Single-qubit gates: Pauli X/Y/Z, Hadamard, Phase (S, T), Rotation gates (Rx, Ry, Rz)
  • Two-qubit gates: CNOT, SWAP, Controlled-Z, Controlled-Phase
  • Multi-qubit gates: Toffoli (CCX), Controlled-SWAP (Fredkin)
  • Custom gates: Support for arbitrary unitary matrices

Quantum Algorithms

Grover's Algorithm: Implemented the complete quantum search algorithm with Oracle construction for arbitrary search problems. Verified quadratic speedup with circuits searching databases up to 2^10 elements.

Shor's Algorithm: Built modular exponentiation circuits and Quantum Fourier Transform for integer factorization. Successfully factored integers up to 21 using period-finding subroutine.

Additional Algorithms:

  • Deutsch-Jozsa algorithm for function property testing
  • Quantum teleportation protocol with Bell state preparation
  • Bernstein-Vazirani algorithm for hidden string finding
  • Quantum Phase Estimation (QPE) for eigenvalue computation

Implementation Details

Architecture

The simulator is organized into modular components:

  • QuantumRegister: Manages qubit initialization and state vector
  • QuantumCircuit: Builds and executes quantum circuits
  • GateLibrary: Collection of all quantum gates and operations
  • Measurement: Implements quantum measurement in computational basis
  • Visualization: Renders circuits and probability distributions

Optimization Strategies

  • Lazy evaluation of gate sequences to reduce intermediate computations
  • Sparse matrix representations for large-scale quantum states
  • Parallel processing for independent qubit operations
  • Memoization of frequently used gate matrices

Visualization Features

  • Interactive circuit diagrams using Matplotlib
  • Bloch sphere visualization for single-qubit states
  • Probability distribution histograms for measurement outcomes
  • State vector amplitude and phase representation
  • Animation of quantum state evolution through circuits

Results & Impact

15 Qubits

Max Simulation

25+

Quantum Gates

5

Algorithms

100%

Accuracy

The simulator has been used in educational settings to teach quantum computing fundamentals and has been validated against IBM Qiskit for accuracy. All implemented algorithms produce correct results matching theoretical predictions, with execution times suitable for interactive exploration and algorithm development.

Technologies & Tools

Language

Python 3.10+

Computation

NumPy, SciPy

Visualization

Matplotlib, Seaborn

Validation

Qiskit, Cirq

Testing

Pytest, unittest

Documentation

Sphinx, Jupyter

Key Learnings

  • Deep understanding of quantum mechanics principles: superposition, entanglement, and measurement
  • Tensor product operations and Kronecker products for multi-qubit systems
  • The critical importance of numerical precision in quantum simulations
  • How quantum algorithm complexity differs fundamentally from classical algorithms
  • The exponential resource requirements for simulating quantum systems classically
  • Practical limitations of NISQ (Noisy Intermediate-Scale Quantum) devices

Future Enhancements

  • Add noise models to simulate realistic quantum hardware behavior
  • Implement tensor network methods for efficient large-scale simulation
  • Add support for parameterized quantum circuits (PQC) for variational algorithms
  • Create web-based interface for interactive circuit design
  • Integrate with real quantum hardware backends (IBM Quantum, AWS Braket)
  • Add quantum error correction code implementations
  • Develop optimization techniques for circuit depth reduction