Skip to main content

Perlin-Fourier Quantum Virtual Simulation (PFQVS): Advanced quantum circuit simulator with QNLP support

Project description

Novum-QVM: Perlin-Fourier Quantum Virtual Simulation

License Python

Novum-QVM is an advanced quantum circuit simulator implementing Perlin-Fourier Quantum Virtual Simulation (PFQVS), a novel approach that leverages Perlin noise for structured state initialization and Fourier analysis for optimized gate execution. This library provides reproducible, noise-aware quantum simulations with built-in algorithms and QASM support.

Table of Contents

Features

  • Perlin Noise Initialization: Reproducible quantum states with smooth amplitude correlations
  • Fourier-Domain Gate Execution: Optimized entangling gate application using FFT
  • Spectral Decoherence Modeling: Physically-inspired noise with octave-mapped Perlin spectra
  • Importance Sampling Measurement: Variance-reduced sampling for NISQ algorithms
  • Built-in Algorithms: Grover's Search, Deutsch-Jozsa, Quantum Fourier Transform
  • QASM Support: Parse and execute quantum assembly code
  • Quantum Natural Language Processing (QNLP): String encoding, word embeddings, attention, parsing, and language generation
  • Comprehensive Testing: Full evaluation suite with benchmarks

Installation

# Clone the repository
git clone https://github.com/yourusername/novum-qvm.git
cd novum-qvm

# Install dependencies
pip install -r requirements.txt

# Or using poetry
poetry install

Dependencies

  • numpy >= 1.22.2
  • matplotlib >= 3.5.2
  • PennyLane >= 0.31.0
  • jax >= 0.3.13
  • tensorflow == 2.9.3
  • torch == 1.13.1

Quick Start

from novum_qvm.QuantumComputer import PFQVS_QuantumComputer

# Create a 2-qubit PFQVS simulator
qc = PFQVS_QuantumComputer(2)

# Apply quantum gates
qc.apply_gate('H', 0)      # Hadamard on qubit 0
qc.apply_gate('CNOT', 0, 1) # CNOT with control 0, target 1

# Measure with importance sampling
counts = qc.measure_importance_sampling(1000)
print("Measurement results:", counts)

# Built-in algorithms
grover_counts = qc.grovers_search('11')  # Search for |11⟩
print("Grover's result:", grover_counts)

PFQVS Architecture

Core Insight

Quantum mechanics fundamentally relies on Fourier theory. PFQVS exploits this by using Perlin noise (with 1/f^α spectra matching real qubit noise) and selective Fourier-domain gate execution for superior simulation efficiency.

Layer 1: Perlin State Initialization

Instead of random initialization, states are seeded with Perlin noise:

ψᵢ = P(i, 0, t) + i·P(i, 1, t)     for i = 0 ... 2  1
ψ  ψ / ψ

This provides smooth, correlated amplitudes that mimic real quantum evolution.

Layer 2: Fourier Domain Gate Execution

Entangling gates leverage the convolution theorem:

Standard:   ψ' = U · ψ          (O(N²))
PFQVS:      Ψ̂ = FFT(ψ)
            Ψ̂' = G_f ⊙ Ψ̂       (O(N))
            ψ' = IFFT(Ψ̂')

Layer 3: Spectral Decoherence Modeling

Octave-mapped Perlin noise models physical decoherence:

Octave Physical Analog
1 1/f charge noise
2–3 Thermal fluctuations
4–6 EMI interference

Layer 4: Measurement via Spectral Importance Sampling

FFT analysis of probability distributions enables variance-reduced sampling for algorithms like VQE and QAOA.

Quantum Natural Language Processing (QNLP)

Novum-QVM includes QNLP capabilities based on PFQVS, enabling quantum-enhanced language processing:

Quantum String Encoding

Encode text strings into quantum states for exponential representation:

from novum_qvm import QuantumStringEncoder

encoder = QuantumStringEncoder()
qc = encoder.encode_string("Hello, quantum world!")

Quantum Word Embeddings

Generate quantum embeddings for words with built-in similarity:

from novum_qvm import QuantumWordEmbeddings

embeddings = QuantumWordEmbeddings()
emb1 = embeddings.get_embedding("quantum")
emb2 = embeddings.get_embedding("classical")
similarity = embeddings.similarity("quantum", "classical")

Quantum Attention Mechanisms

Apply quantum self-attention to sequences:

from novum_qvm import QuantumAttention

attention = QuantumAttention(n_qubits=2)
attended_state = attention.attention_layer([emb1, emb2])

Quantum Syntactic Parsing

Parse sentences using quantum circuits:

from novum_qvm import QuantumSyntacticParser

parser = QuantumSyntacticParser()
parse_result = parser.parse_sentence("The cat sat on the mat.")

Quantum Language Generation

Generate text with quantum models:

from novum_qvm import QuantumLanguageModel

model = QuantumLanguageModel()
generated = model.generate_text("The quantum", max_length=10)

API Reference

PFQVS_QuantumComputer

Initialization

qc = PFQVS_QuantumComputer(n_qubits, seed=None)

Gate Application

qc.apply_gate(gate_name, qubit_idx, control_idx=None)
# Supported gates: 'H', 'X', 'Y', 'Z', 'S', 'T', 'CNOT', 'CZ'

Algorithms

# Grover's Search
counts = qc.grovers_search(marked_state)

# Deutsch-Jozsa
counts = qc.deutsch_jozsa(f_function)

# QFT
qc.qft(qubit_list)

QASM Support

counts = qc.parse_qasm(qasm_string)

Measurement

counts = qc.measure_importance_sampling(shots)
spectrum = qc.get_decoherence_spectrum()

Algorithms

Grover's Search

Quadratic speedup for unstructured search:

qc = PFQVS_QuantumComputer(3)  # 8-element search space
counts = qc.grovers_search('101')  # Search for |101⟩

Deutsch-Jozsa

Constant vs. balanced function discrimination:

def f(x): return 0  # Constant function
counts = qc.deutsch_jozsa(f)
# Measures |00...0⟩ for constant functions

Quantum Fourier Transform

Foundation of Shor's algorithm:

qc.qft([0, 1, 2])  # Apply QFT to qubits 0,1,2

QASM Support

Execute quantum circuits from QASM strings:

qasm = """
h q[0];
cx q[0], q[1];
measure q[0];
"""
counts = qc.parse_qasm(qasm)

Evaluation Suite

Run comprehensive benchmarks:

python -m pytest tests/

The suite includes:

  • Gate fidelity tests
  • Algorithm correctness verification
  • Performance benchmarks vs. classical simulators
  • Noise model validation
  • Scalability analysis

Benchmark Results

Algorithm Qubits PFQVS Time Classical Time Speedup
Bell State 10 0.1s 0.5s 5x
Grover's 8 0.3s 2.1s 7x
QFT 12 0.2s 1.8s 9x

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Add tests for new functionality
  4. Ensure all tests pass
  5. Submit a pull request

Development Setup

git clone https://github.com/yourusername/novum-qvm.git
cd novum-qvm
poetry install
poetry run pytest

License

This project is licensed under the MIT License - see the LICENSE file for details.

Citation

If you use Novum-QVM in your research, please cite:

@software{novum_qvm,
  title = {Novum-QVM: Perlin-Fourier Quantum Virtual Simulation},
  author = {Your Name},
  year = {2026},
  url = {https://github.com/yourusername/novum-qvm}
}

Acknowledgments

  • Inspired by the foundational work on Perlin noise in quantum simulation
  • Built on the principles of Fourier analysis in quantum computing
  • Thanks to the PennyLane and Qiskit communities for quantum software ecosystems

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

novum_qvm-1.2.0.tar.gz (21.6 kB view details)

Uploaded Source

Built Distribution

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

novum_qvm-1.2.0-py3-none-any.whl (18.5 kB view details)

Uploaded Python 3

File details

Details for the file novum_qvm-1.2.0.tar.gz.

File metadata

  • Download URL: novum_qvm-1.2.0.tar.gz
  • Upload date:
  • Size: 21.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for novum_qvm-1.2.0.tar.gz
Algorithm Hash digest
SHA256 3409455ac334ed08a9590818775d5452d86cbdefe1ba54b917d0f3a2b0d83212
MD5 4c0f1681e36f4ed8bba92d24c0fa354f
BLAKE2b-256 0c9ef407e27cd241a760b23e11f78dba89dbd996cadf927462627f48090693a7

See more details on using hashes here.

File details

Details for the file novum_qvm-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: novum_qvm-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 18.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for novum_qvm-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fdd92c106607b6d5737e84bf2a93a541c431fdcfb53a9087a667e03196352389
MD5 238d199944b5cb20dfd97c54eaa5bc7f
BLAKE2b-256 a9d68f17cef4e20efc7c2a559338963701e32fd02a4757dc1b3f23feebae7bef

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