Grover's Algorithm robustness study under realistic noise with a PyTorch quantum error mitigation (QEM) pipeline and an interactive Next.js dashboard.
- Parameterized Grover circuit generation for
n_qubits in [2, 8] - Aer noise modeling with:
- single- and two-qubit depolarizing errors
- readout error
- thermal relaxation (
T1/T2+ gate times)
- Batch experiment utilities for:
- success probability vs iteration count
- success probability vs noise strength
- QEM supervised learning pipeline:
- noisy/ideal paired dataset generation
- PyTorch MLP and Autoencoder options
- MAE and fidelity evaluation
- FastAPI backend endpoints for simulation, sweeps, training, and status
- Next.js dashboard with:
- controls for qubits, marked state, shots, and noise knobs
- Recharts analytics
- React Three Fiber 3D probability field
- real-time API inference with mitigated outputs
- Technical report draft in
report/technical_report.md
backend/src/quantum: circuits, noise models, simulator, metrics, dataset generationbackend/src/ml: QEM models and training/inference servicebackend/src/api: FastAPI app and request/response schemasbackend/scripts: batch experiment and model training scriptsfrontend/src/app: Next.js dashboard UIfrontend/src/components/ProbabilityField.tsx: 3D quantum-state viewreport/technical_report.md: academic report draft
cd backend
python -m venv .venv
# Windows:
.venv\Scripts\activate
# macOS/Linux:
# source .venv/bin/activate
pip install -r requirements.txt
uvicorn src.api.main:app --reload --port 8000Backend docs: http://localhost:8000/docs
cd frontend
npm install
npm run devDashboard: http://localhost:3000
Set NEXT_PUBLIC_API_URL if backend is not on http://localhost:8000.
GET /: health checkGET /api/grover/ideal: circuit metadataPOST /api/grover/run: ideal/noisy/mitigated single runPOST /api/grover/sweep/iterations: success vs iterationPOST /api/grover/sweep/noise: success vs noisePOST /api/qem/train: train QEM model for specific qubit countGET /api/qem/status: list loaded QEM models
From repository root:
python backend/scripts/run_batch_experiments.py --shots 10000 --include-mitigationOutputs CSV files under data/experiments/:
iteration_sweep.csvnoise_sweep.csvfailure_thresholds.csv
python backend/scripts/train_qem.py --n-qubits 4 --sample-count 512 --epochs 80Model checkpoint is written to data/experiments/qem_model.pt by default.