Grover search and variational quantum circuits for 4-qubit EEG pattern classification, built with Qiskit and PennyLane. All data is synthetically generated for algorithm validation.
This repository implements quantum algorithms for neuroscience applications: exact pattern search using Grover's algorithm and adaptive classification using variational quantum circuits. The system operates on a 33-region brain atlas with 4-qubit encoding, using synthetic EEG signals with physiologically realistic frequency bands (alpha, beta, theta, gamma).
Neural state spaces scale as
Goal: Demonstrate quantum search and classification on synthetic neural data, compare against classical baselines (SVM, Random Forest), and provide a modular codebase for quantum neuroscience experiments on near-term hardware.
Biological neural networks are modeled using the Leaky Integrate-and-Fire (LIF) neuron framework:
where
The Quantum Leaky Integrate-and-Fire (QLIF) model represents neural excitation through qubit state probabilities:
where
Grover's search uses amplitude amplification with a multi-controlled phase gate oracle:
where mcp) and diffusion operator
Variational quantum circuits classify brain states through parametrized gates:
where
Three encoding methods convert continuous EEG signals to quantum-compatible discrete states:
Threshold encoding creates binary representations using standard-deviation scaling:
Phase encoding uses the Hilbert transform to extract instantaneous phase:
Amplitude encoding normalizes magnitudes to
Neural complexity is quantified using Normalized Corrected Shannon Entropy (NCSE):
where
Creates a 33-region brain atlas organized across 6 major functional networks with anatomically plausible 3D coordinates in MNI space.
from quantumNeuralSearch.brainAtlas import createBrainAtlas
atlasinfo, coords, nodesDf = createBrainAtlas()
# Returns atlas DataFrame, 3D coordinates, and node metadataGenerates biologically realistic connectivity matrices with stronger within-network connections and weaker between-network links, mimicking small-world topology.
from quantumNeuralSearch.brainConnectivity import generateBrainConnectivity
edges, stats = generateBrainConnectivity(atlasinfo, connectivity_seed=42)Generates synthetic EEG signals with multiple physiological frequency bands and encodes them using three strategies: Hilbert-transform phase encoding, std-scaled threshold encoding, and amplitude normalization. Includes QLIF neuron simulation and NCSE computation.
from quantumNeuralSearch.neuralEncoding import (
generateRealisticEegSignal,
quantumSignalEncoding,
simulateQlif,
calculateNcse,
)
time, eeg = generateRealisticEegSignal(duration=4.0, sampling_rate=250)
encodings = quantumSignalEncoding(eeg)
# encodings['phase'] - Hilbert transform binary encoding
# encodings['threshold'] - |x| > sigma threshold encoding
# encodings['amplitude'] - min-max normalized to [0, 1]
qlifResult = simulateQlif(spikeTrain) # QLIF neuron dynamics
ncseValues = calculateNcse(eeg) # Normalized Corrected Shannon EntropyUses Grover's quantum search to find specific brain state patterns from a 16-state search space. The oracle marks target states via a multi-controlled phase gate (circuit.mcp), and the exact iteration formula ensures optimal amplification.
from quantumNeuralSearch.groversSearch import constructGroverCircuit, initializeGroverSearch
brainSignatures, searchParams, simulator = initializeGroverSearch()
circuit, iterations = constructGroverCircuit(
target_signature=[1, 0, 1, 1], # motor_left
n_qubits=4
)
# iterations = 3 (optimal for N=16, 1 target)
job = simulator.run(circuit, shots=2048)Hybrid quantum-classical classifier using parametrized quantum circuits with multi-qubit measurement. Compares against SVM and Random Forest baselines on the same data.
from quantumNeuralSearch.variationalClassifier import (
setupQuantumDevice,
createQuantumClassifier,
prepareBrainStateTrainingData,
trainVariationalQuantumClassifier,
evaluateQuantumClassifier,
)
dev = setupQuantumDevice(4)
classifier = createQuantumClassifier(dev)
xTrain, xTest, yTrain, yTest, stateNames, scaler = prepareBrainStateTrainingData()
weights, costHistory = trainVariationalQuantumClassifier(
xTrain, yTrain, stateNames, classifier, max_iterations=100
)
results = evaluateQuantumClassifier(xTrain, xTest, yTrain, yTest, weights, classifier, stateNames)
# results includes: test_accuracy, svm_accuracy, rf_accuracy, svm_comparison, rf_comparisonTemporal animations showing brain connectivity evolution, with network-specific oscillation frequencies simulating dynamic coordination patterns.
from quantumNeuralSearch.dynamicStates import generateDynamicConnectivity
dynamicEdges = generateDynamicConnectivity(baseEdges, atlasinfo, t=0.5)git clone https://github.com/IsolatedSingularity/Quantum-Neural-Search.git
cd Quantum-Neural-Search
pip install -e ".[dev]"
# Run tests
pytest
# Lint
ruff check .Requires Python 3.10+. Core dependencies: Qiskit >= 1.0, PennyLane >= 0.35, NumPy, SciPy, scikit-learn, matplotlib.
Quantum-Neural-Search/
pyproject.toml
LICENSE
README.md
.github/workflows/ci.yml
quantumNeuralSearch/
__init__.py
groversSearch.py # Grover oracle + search
variationalClassifier.py # VQC + classical baselines
neuralEncoding.py # Signal encoding, QLIF, NCSE
brainAtlas.py # 33-region brain atlas
brainConnectivity.py # Connectivity matrix generation
dynamicStates.py # Dynamic brain animation
visualization/
__init__.py
groversPlots.py
variationalPlots.py
brainPlots.py
masterAnalysis.py
tests/
testGroverOracle.py # Oracle correctness, iteration count
testEncodings.py # Signal encoding, entropy, QLIF
testVqcConvergence.py # VQC training, baselines, measurement
Plots/
On synthetic 4-qubit EEG data with 5 brain states (motor left/right, seizure onset, rest, cognitive load):
-
Grover's Search: ~75% average success rate for target state amplification (optimal 3 iterations for N=16). Speedup is
$O(\sqrt{N})$ vs$O(N)$ classical brute-force enumeration. - Variational Classifier: ~36% accuracy on 5 classes (20% random baseline). Classical baselines (SVM, Random Forest) are evaluated on the same train/test split for direct comparison.
- 14 tests covering oracle correctness, encoding fidelity, and VQC convergence.
The 4-qubit feature space is intentionally small for demonstration. Scaling to clinically relevant dimensionality requires hardware beyond current NISQ devices.
- Simulation only: All quantum circuits run on classical simulators (Qiskit Aer, PennyLane default.qubit). Real hardware introduces decoherence and gate errors.
- Synthetic data: No clinical or patient data is used. EEG signals are generated with physiologically plausible frequency components but are not real recordings.
- Feature space: 4 qubits encode only 16 states. Clinical EEG analysis requires much higher dimensionality.
- Encoding loss: Converting continuous EEG to discrete quantum states necessarily discards information. Optimal encoding remains an open problem.
- Extend to larger brain networks with 100+ regions
- Incorporate real-time EEG processing for brain-computer interfaces
- Validate on actual quantum hardware
- Develop error mitigation strategies for noisy quantum hardware
- Implement more sophisticated encoding schemes for continuous neural signals
- Create quantum ML frameworks optimized for neural data
Built by Jeffrey Morais. Brain atlas coordinates follow the MNI152 standard. Quantum circuits use Qiskit and PennyLane.






