← Back to Dashboard

01. Hubbard Model

Stage C - QPE (upgraded from VQE)

QPE for the two-site Hubbard model (4 qubits, 10 phase bits). 595k physical qubits, 40 logical. Any speedup is over exact diagonalization and depends on preparing a good initial state; none is demonstrated.

Algorithm
QPE (Quantum Phase Estimation)
Logical Qubits
5
Framework
Modern QDK (qsharp 1.31.0)

Resource Estimation (Azure Quantum RE)

Physical Qubits
595.0k
Logical Qubits
40
T-Gates
27
Rotations
81.9k
Runtime
10.7s

Resource Breakdown

Calibration Evidence (20-Run Ensemble)

Mean Value
-0.838
95% CI
± 0.026
Runs
20
Std Dev
0.059

Noise Resilience (Depolarizing Simulation)

Ideal outcome: [Zero, Zero] (66% probability)

p = 0.001
98.7%
p = 0.01
87.7%
p = 0.05
80.2%

Cross-Platform Emulator Results (100 shots)

These histograms predate the current kernel

This run was recorded in April 2026 against a VQE kernel that has since been replaced by phase estimation. The shot distribution below is a real measurement, but it is a measurement of a program that no longer exists in this repository, and it has not been re-run against the current kernel.

Quantinuum H2-1E
[1, 0]
68% of shots
Rigetti QVM
[1, 0]
70% of shots
✓ Cross-platform agreement: both simulators find the same dominant outcome
H2-1E Distribution
Rigetti QVM Distribution

Troyer Utility-Scale Classification

Quantum Simulation (Native Advantage Potential)
Quantum Speedup
Exponential over exact diagonalization if the initial state overlaps the ground state well; not established against the best classical methods
Classical Competitor
DMRG / tensor network / exact diagonalization
Honest Assessment (Troyer Framework)

Upgraded to QPE for Hubbard Hamiltonians, naturally quantum systems that tensor-network methods find hard in two dimensions. Once a state with good ground-state overlap is prepared, QPE's cost is polynomial, exponentially below exact diagonalization; whether such states are cheap to prepare for large 2D lattices, and whether QPE then beats DMRG and quantum Monte Carlo, is open. Our 2-site instance is pedagogical; utility would need 2D lattices wider than DMRG can treat.

These two numbers describe different programs

The resource estimate below is for Main.HubbardQPE(1.0, 4.0, 10, 1), the algorithm at utility scale. The Azure Quantum runs executed HubbardQPEKernel(), a small kernel sized to fit today's hardware. Qubit counts and runtimes from the estimate are not measurements of the run, and the run histogram is not a sample of the estimated circuit.

Pareto Frontier: Qubits vs Runtime

The estimator returns 5 viable configurations, not one answer. Every headline figure on this page comes from the leftmost point, which uses the fewest qubits and is therefore also the slowest. Buying 2.0x the qubits cuts runtime to 0.72x.

qubit_gate_ns_e3 with surface_code, error budget 1e-3. Points are Pareto-optimal: no other configuration is better on both axes.

Multi-Model Resource Comparison

Physical qubit requirements across 6 qubit technologies × 2 QEC schemes (inspired by Troyer Architecture Series, Part 3).

■ Gate-based + Surface code (blue)
Qubit ModelQECPhysical QubitsLogical Qubits
Superconducting (ns, 1e-4)surface_code52,12040
Trapped Ion (μs, 1e-4)surface_code52,12040
Superconducting (ns, 1e-3)surface_code594,98040
Trapped Ion (μs, 1e-3)surface_code594,98040

Problem Documentation

01 · Hubbard Model

> Exploring strongly correlated electrons in a minimal two-site Hubbard model. This

> serves as the starting point for scaling to larger lattices and more realistic

> Hamiltonians.

🎯 Objectives

  • Establish a reproducible **classical baseline** for the half-filled two-site Hubbard model.
  • Provide a compiling **Q# analytical benchmark** that mirrors the classical calculation.
  • Prepare the scaffolding for future **variational** and **phase estimation** studies on

larger Hubbard instances.

🧱 Project Structure


01_hubbard/
├── README.md                 # This document
├── Makefile                  # Convenience targets for the workflows
├── estimates/                # Generated estimation artifacts
├── instances/                # Parameter grids (small/medium/large)
├── plots/                    # Generated visualisations
├── python/
│   ├── classical_baseline.py # Classical analytical baseline
│   └── analyze.py            # Plot charge/spin gaps
└── qsharp/
    ├── Program.qs            # Analytical Q# baseline
    └── qsharp.json            # Modern QDK project file

🚀 Quickstart

From the repository root:


cd problems/01_hubbard

# Classical workflow
make classical    # writes estimates/classical_baseline.json
make analyze      # produces plots/gaps.png

# Quantum analytical baseline (uses modern QDK  qsharp Python package)
make build
make run

# Dedicated CLI modes
python tooling/run_all_qsharp.py  # runs via qsharp Python package
python tooling/run_all_qsharp.py  # runs via qsharp Python package

📈 Current Results

The analytical baseline computes the singlet and triplet energies of the two-site

Hubbard model across a small parameter sweep. The classical and Q# implementations

share the same closed-form expressions, ensuring parity between the two workflows.

Generated artefacts:

  • `estimates/classical_baseline.json`: Numerical data for ground and excited states.
  • `plots/gaps.png`: Charge and spin gap trends vs interaction strength.
  • `STAGE_D_ADVANTAGE_EVIDENCE.md`: Stage D claim-boundary and evidence-tracking scaffold for expansion-queue onboarding.

Objective Maturity Gate

  • **Current gate**: **Stage C complete** (hardware-aware validation evidence in place: QPE Hubbard kernel runnable, calibration ensemble across runs, backend assumptions documented, dual-model estimator profile across instance sizes, OpenQASM exports for cross-platform validation, real Azure resource estimate captured).
  • **Next gate target**: **Stage D** (advantage evidence package: fairness review against tensor-network/DMRG baseline, residual risks for naturally-quantum 2D regimes, claim category locked).

Stage C evidence references for this problem:

  • Calibration ensemble: `estimates/quantum_calibration_ensemble.json` and `estimates/calibration_evidence.json`.
  • Backend assumptions: `estimates/backend_assumptions.md`.
  • Estimator profile (multi-instance, dual-model): `estimates/estimator_profile_summary.md`, `estimates/latest_qubit_gate_ns_e3_{small,medium,large}.json`, `estimates/latest_surface_code_generic_v1_{small,medium,large}.json`.
  • Real Azure resource estimate: `estimates/real_resource_estimate_2026-03-25T091444Z.json`.
  • Cross-platform OpenQASM exports: `estimates/hubbard_vqe_xx.qasm`, `estimates/hubbard_vqe_zz.qasm` with Azure result captures.
  • Azure smoke validation: `estimates/azure_smoke_report_small_d1.md`, `estimates/azure_job_manifest_small_d1.json`.

DiVincenzo Readiness (Stage C/D Overlay)

| Criterion | Status | Evidence / Notes |

|---|---|---|

| Scalable qubit system | partial | Two-site model is intentionally small; scalable resource projections will be added once non-analytical quantum kernels are benchmarked. |

| Initialization | partial | Initial-state assumptions for analytical parity are clear, but hardware-ready state-preparation routines are pending. |

| Coherence vs gate time | not-yet | No backend-calibrated coherence-vs-depth evidence yet because Stage C kernel execution is still pending. |

| Universal gate set | partial | Q# scaffold compiles and runs, but full gate-level decomposition for VQE/QPE kernels is a Stage C task. |

| Qubit-specific measurement | partial | Measurement semantics are defined in the scaffold; hardware readout error characterization is pending. |

Advantage Claim Contract

  • **Claim category (current)**: `theoretical`.
  • **Problem class and regime**: Two-site half-filled Hubbard baseline with parameter sweeps in `instances/`.
  • **Fair baseline**: Closed-form exact diagonalization style reference in `python/classical_baseline.py`.
  • **Quantum resource scaling claim**: No demonstrated speedup claim yet; current Q# path is analytical parity scaffolding.
  • **Data-loading and I/O assumptions**: Small fixed-size Hamiltonian instances; no large-scale state-preparation pipeline yet.
  • **Noise/error model assumptions**: Not yet characterized for a physical backend because quantum kernel is pending.
  • **Confidence/uncertainty method**: Classical outputs deterministic; quantum uncertainty reporting to be added at Stage C.
  • **Residual risks**: Placeholder algorithm may not preserve performance once variational or phase-estimation circuits are introduced.

🧭 Roadmap

  • [ ] Replace analytical expressions with variational or phase-estimation circuits.
  • [ ] Expand classical baselines to include finite-temperature observables.
  • [ ] Integrate Azure Quantum Resource Estimator once quantum kernels are implemented.

Contributions and experiments welcome!

Reproduce It

cd problems/01_hubbard make classical # Run classical baseline make analyze # Generate plots make build # Validate Q# compilation make run # Run Q# entry point

Key Files

  • qsharp/src/Main.qs Quantum algorithm implementation
  • qsharp/HardwareKernel.qs Azure-submittable QIR kernel
  • python/classical_baseline.py Classical reference implementation
  • estimates/classical_baseline.json Baseline metrics
View on GitHub →