QPU-Efficient Quantum Graph Optimization through HPC-First Experimentation
This repository contains the experimental code, data, and figures for the paper:
Optimize the Optimization: QPU-Efficient Quantum Graph Optimization through HPC-First Experimentation
David Vesterlund, Vesterlund Ventures / WestQuant Open Source Project
Submitted to IEEE Transactions on Quantum Engineering
The required QPU budget for quantum graph optimization is not a fixed algorithmic constant but a structured, predictable property of the problem instance and workflow policy:
QPU_requirement = f(graph, problem, n, depth, quality_target, hardware)
By separating classical parameter optimization from a single QPU evaluation, a best-practice baseline achieves:
- 510–2070× shot reduction across n=8 to n=16 qubits
- ≤0.4% quality loss relative to naive QAOA
- 4 of 6 strategies achieve 100% quality retention at p=3
| Experiment | Results | Description |
|---|---|---|
| Core factorial | 11,340 | 6 problems × 7 graph families × 10 instances × 3 seeds |
| Depth study | (in core) | p=1, 2, 3 |
| Scaling study | 1,260 | n=8, 12, 16 |
| Structural predictor | — | R²=1.0 on held-out graph families |
MaxCut, WeightedMaxCut, Maximum Independent Set (MIS), Maximum Clique, Minimum Vertex Cover, Graph Partitioning
Erdős–Rényi (ER), Barabási–Albert (BA), Watts–Strogatz (WS), Regular, Geometric (GEO), Stochastic Block Model (SBM), Configuration (CONFIG)
- B0 (naive): 30 QPU evaluations per optimization cycle
- B1 (best practice): Classical parameter optimization + single QPU evaluation
- B2 (classical): Exact classical solver, no QPU
qpu-mini/
├── experiments/
│ ├── run_v2.py # Experiment runner (all 4 phases)
│ ├── baselines.py # B0/B1/B2 implementations
│ ├── strategies.py # 6 QPU-minimization strategies
│ ├── metrics_v2.py # Multi-metric quality and resource vector
│ ├── graphs.py # Graph generation for 7 families
│ ├── problems.py # Problem Hamiltonians (6 problems)
│ └── qaoa.py # QAOA circuit construction and simulation
├── results_v2/
│ ├── raw/
│ │ ├── v2_core_factorial.json # 11,340 results
│ │ └── v2_scaling_study.json # 1,260 results
│ └── processed/
│ └── structural_predictor.json
├── paper/
│ ├── manuscript_v2.tex # IEEE TQE submission
│ ├── manuscript_v2.pdf # Compiled PDF
│ └── figures_v2/ # 5 figures at 300 DPI
└── configs/
└── default.yaml # Experiment configuration
# Install dependencies
pip install numpy scipy matplotlib qiskit networkx scikit-learn
# Run all experiments
cd qpu-mini
python3 -u -c "import sys; sys.path.insert(0, '.'); from experiments.run_v2 import run_v2_all; run_v2_all()"
# Recompile manuscript
cd paper
tectonic manuscript_v2.texThe QPU budget predictor from this research is integrated into the WestQuant QCSC package:
pip install westquant-qcscfrom qcsc import QPUBudgetPredictor, ProblemProfile
profile = ProblemProfile(problem="MaxCut", n_qubits=16, p=3, graph_family="GEO")
predictor = QPUBudgetPredictor()
budget = predictor.estimate(profile)
# 1024 shots, 2070x reduction, quality=0.9961- Small graph sizes (n ≤ 16) — exact statevector simulation only
- No noise model — ideal simulation
- Limited depth (p ≤ 3)
- Penalty-dominated problems (MIS, MaxClique, MVC) need conditional quality metric
- Structural predictor R²=1.0 reflects B1's constant cost, not genuine structural prediction
- Discussions: Join the conversation
- Contributing: See CONTRIBUTING.md
MIT
David Vesterlund — Vesterlund Ventures / WestQuant Open Source Project
- Email: david@vesterlundventures.se
- ORCID: 0009-0000-6455-1141