Skip to main content

Educational quantum computing simulator for learning and experimentation

Project description

quantumsim-edu: Educational Quantum Computing Simulator

A lightweight, educational quantum circuit simulator designed for learning quantum computing concepts. Built with clarity and modularity in mind, quantumsim provides an intuitive interface for building and simulating quantum circuits.

How quantumsim Works

quantumsim uses statevector simulation to model quantum systems:

Quantum State Representation

  • Quantum states are represented as complex-valued vectors in a 2^n dimensional Hilbert space
  • For n qubits, the statevector contains 2^n complex amplitudes
  • Each amplitude represents the probability amplitude for a specific computational basis state

Gate Operations

  • Quantum gates are implemented as unitary matrices
  • Gate application involves matrix-vector multiplication with the statevector
  • Multi-qubit gates use tensor product operations to construct full-dimensional matrices

Circuit Execution

  • Circuits are built using a fluent API that chains gate operations
  • The executor applies gates sequentially to evolve the quantum state
  • Intermediate states can be inspected for educational purposes

Features

Core Simulation Engine:

  • Statevector simulator supporting up to 20 qubits on typical hardware
  • Complete quantum gate library: Pauli gates (X, Y, Z), Hadamard (H), Phase gates (S, T), Rotation gates (RX, RY, RZ), Controlled gates (CX, CZ), SWAP gate
  • Fluent circuit building API with method chaining
  • ASCII circuit visualization for educational clarity

Educational Tools:

  • Interactive examples demonstrating key quantum algorithms
  • Bell state preparation and measurement
  • Grover's search algorithm implementation
  • Quantum teleportation protocol
  • Noise modeling for realistic quantum simulation

Installation

pip install quantumsim-edu

🔧 How to Import and Use

Basic Imports

# For users who installed via pip install quantumsim-edu
from quantumsim import Circuit, Executor, print_circuit, GATES
from quantumsim.core import Statevector
from quantumsim.noise import DepolarizingChannel

Quick Start

from quantumsim import Circuit, Executor, print_circuit

# Create a 2-qubit circuit
circuit = Circuit(2)
circuit.h(0)        # Hadamard gate on qubit 0
circuit.cx(0, 1)    # CNOT gate: control=0, target=1

# Visualize the circuit
print_circuit(circuit)

# Execute the circuit
executor = Executor()
result = executor.run(circuit)

# Get measurement results
counts = result.measure_all(shots=1000)
print(f"Bell state measurements: {counts}")
# Expected output: {'00': ~500, '11': ~500}

💻 Advanced Examples

Grover's Search Algorithm

from quantumsim import Circuit, Executor

def grovers_algorithm(target_state="11"):
    """Grover's algorithm to find a marked state in a 2-qubit system"""
    circuit = Circuit(2)
    
    # Initialize superposition
    circuit.h(0).h(1)
    
    # Oracle - mark the target state |11⟩
    if target_state == "11":
        circuit.cz(0, 1)
    
    # Diffusion operator
    circuit.h(0).h(1)
    circuit.x(0).x(1)
    circuit.cz(0, 1)
    circuit.x(0).x(1)
    circuit.h(0).h(1)
    
    return circuit

# Execute Grover's algorithm
circuit = grovers_algorithm()
result = Executor().run(circuit)
counts = result.measure_all(1000)
print(f"Grover's results: {counts}")  # Should favor |11⟩

Quantum Noise Simulation

from quantumsim.noise import DepolarizingChannel

# Create a Bell state
circuit = Circuit(2)
circuit.h(0).cx(0, 1)

executor = Executor()
clean_state = executor.run(circuit)

# Apply noise
noise = DepolarizingChannel(p=0.1)  # 10% noise
noisy_state = noise.apply_stochastic(clean_state)

# Compare measurements
clean_counts = clean_state.measure_all(1000)
noisy_counts = noisy_state.measure_all(1000)

print("Clean measurements:", clean_counts)
print("Noisy measurements:", noisy_counts)

Create a Bell state circuit

circuit = Circuit(2) circuit.h(0) # Apply Hadamard to qubit 0 circuit.cx(0, 1) # Apply CNOT with control=0, target=1

Execute the circuit

executor = Executor() final_state = executor.run(circuit)

Measure the result

measurement_counts = final_state.measure_all(shots=1000) print("Measurement results:", measurement_counts)

Expected: {'00': ~500, '11': ~500} (Bell state superposition)


## License

MIT License - Free for educational and research use.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quantumsim_edu-2.0.2.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quantumsim_edu-2.0.2-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

Details for the file quantumsim_edu-2.0.2.tar.gz.

File metadata

  • Download URL: quantumsim_edu-2.0.2.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for quantumsim_edu-2.0.2.tar.gz
Algorithm Hash digest
SHA256 f02dd8136c678f938d64bda0ea7d4e571acddcbe1e4280dc603d12b7bd21cbdf
MD5 389b8e9644d9268d315a2a2b48d12464
BLAKE2b-256 54e792d4230e4c4704d225f1945294893e008b3685ab43b897dbfad73ac93d4e

See more details on using hashes here.

File details

Details for the file quantumsim_edu-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: quantumsim_edu-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 18.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for quantumsim_edu-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f5cf280400410c100da787ee8c1f2c7f088eab738001c38c6e9aa4fc07b4630e
MD5 574b19e06ac7663eacc408b92a128d8f
BLAKE2b-256 529aa1dd43e85e96d6008f5d9ccc41884361036bcd410359620422e8cb373920

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page