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```python import quantumsim as qs

Create a Bell state

circuit = qs.Circuit(2) circuit.h(0) circuit.cx(0, 1)

Execute the circuit

executor = qs.Executor() statevector = executor.run(circuit) result = statevector.measure_all(shots=1000) print(result) # {'00': ~500, '11': ~500}

## 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

```bash
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.3.tar.gz (17.0 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.3-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: quantumsim_edu-2.0.3.tar.gz
  • Upload date:
  • Size: 17.0 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.3.tar.gz
Algorithm Hash digest
SHA256 ad3e53f73457f576b4e09cfa42d5617bd6eded42c3873b9315d7a6d71e051e6f
MD5 fc4c5226f1e91ed070579bb668891560
BLAKE2b-256 df77ea97eec35903373f5192f400b50945342f6d07ad18082c375cdd6cfe4293

See more details on using hashes here.

File details

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

File metadata

  • Download URL: quantumsim_edu-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 18.8 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3f2d2aca86737b6c525ae0ef83f1046db899024a84188ea8b451ecae403514ab
MD5 8d8a39e19f90372062fa45815f1493a3
BLAKE2b-256 1c36286f02356050e80cb0b4e57ba291a234055190e12eb54990a6f871d47413

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