Perlin-Fourier Quantum Virtual Simulation (PFQVS): Advanced quantum circuit simulator with QNLP support
Project description
Novum-QVM: Perlin-Fourier Quantum Virtual Simulation
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
- Installation
- Quick Start
- PFQVS Architecture
- API Reference
- Algorithms
- Evaluation Suite
- Contributing
- License
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
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Ensure all tests pass
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3409455ac334ed08a9590818775d5452d86cbdefe1ba54b917d0f3a2b0d83212
|
|
| MD5 |
4c0f1681e36f4ed8bba92d24c0fa354f
|
|
| BLAKE2b-256 |
0c9ef407e27cd241a760b23e11f78dba89dbd996cadf927462627f48090693a7
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdd92c106607b6d5737e84bf2a93a541c431fdcfb53a9087a667e03196352389
|
|
| MD5 |
238d199944b5cb20dfd97c54eaa5bc7f
|
|
| BLAKE2b-256 |
a9d68f17cef4e20efc7c2a559338963701e32fd02a4757dc1b3f23feebae7bef
|