edaphos 0.9.0 — Pillar 6 meets real hardware and real chemistry
Summary
Promotes Pillar 6 (Quantum ML) from a statevector-only demonstration
to a NISQ-honest, chemistry-grounded pipeline. Three strictly
additive capabilities land together because each one only becomes
meaningful in the presence of the other two.
Shot-based execution
quantum_vqe_fit(backend = "aer_shots", shots = ...) wires
qiskit_aer.primitives.EstimatorV2 through the VQE loop. The
EfficientSU2 ansatz is transpiled to the standard
{id, rz, sx, x, cx, u} basis gate set so Aer can dispatch it, and
each energy evaluation is reconstructed from shots Monte-Carlo
samples with the expected 1/sqrt(shots) noise floor. SPSA
(Spall 1998) becomes the recommended optimiser under a stochastic
cost function.
Full IBM Quantum Runtime dispatch
backend = "ibmq" routes the VQE through
qiskit_ibm_runtime.EstimatorV2 inside a managed Session. The
ansatz is ISA-transpiled against the target backend's coupling map
via the preset pass manager (level 1), and the observable is
re-indexed with SparsePauliOp.apply_layout(). The new
mitigation argument maps {"none", "m3", "zne"} to IBM
resilience_level ∈ {0, 1, 2} (Kim et al. 2023, Nature 618,
500–505):
mitigation |
Technique |
|---|---|
"m3" |
TREX + Matrix-free Measurement Mitigation for readout errors |
"zne" |
Zero-Noise Extrapolation over gate-folding scales |
Plumbing additions:
quantum_ibmq_submit()— low-level single-PUB primitive for
custom hybrid loops that do not wantquantum_vqe_fit()'s
COBYLA/SPSA wrapper.quantum_ibmq_least_busy()— automatic backend selection.quantum_ibmq_backends(operational_only, simulator)— richer
filtering.
qiskit-nature bridge
quantum_hamiltonian_from_pyscf() turns a molecular XYZ geometry
into a qubit Hamiltonian through the four-stage pipeline
XYZ → PySCF RHF → FreezeCore → ActiveSpace(n_e, n_o) → ParityMapper
and returns an edaphos_quantum_hamiltonian_nature that carries
the nuclear-repulsion, frozen-core and active-space energy shifts
as attributes so that quantum_nature_total_energy() can
reconstruct the full molecular energy from a VQE active-space fit.
Three curated organo-mineral presets ship via
quantum_hamiltonian_organo_mineral_nature():
| Variant | Pedological role | Active space | Qubits |
|---|---|---|---|
"formic_acid" |
carboxylate –COOH — dominant humic functional group |
(2e, 2o) | 2 |
"methanediol" |
ortho-diol — catechol-style Fe(III) chelator | (2e, 2o) | 2 |
"ferric_formate" |
monodentate Fe(III)–OOCH — minimum viable organo-mineral | (4e, 4o) | 4 |
On formic acid the (2e, 2o) active-space VQE recovers ~34
milli-Hartree of correlation energy below the Hartree–Fock
reference — the canonical signature that the quantum circuit is
genuinely beating the mean-field baseline.
Documentation
- Vignette
pilar6-quantumgains three new sections deriving the
shot-based execution (§8), IBMQ + M3/ZNE mitigation (§9) and
qiskit-nature organo-mineral Hamiltonians (§10) from first
principles, and updates the roadmap to reflect v0.9.0 delivering
the three items that were open at v0.8.0. - README Pillar 6 section gains a VQE-to-hardware walk-through and
a first-principles organo-mineral subsection.
Quality
- 20 new tests land in
test-quantum-v09.Rcovering the shot-based
VQE on H₂, the qiskit-nature formic-acid pipeline (both the
Hamiltonian construction and total-energy reconstruction), the
IBMQ preflight logic, and themitigation ↔ resilience_level
mapping. - Full quantum test suite: 89/89 green.
R CMD check --as-cran: 0 errors / 0 warnings / 2 harmless NOTEs
(network timestamp + PySCF's own tempdir).
Install notes
New optional Python dependencies for the new features:
reticulate::py_install(
c("qiskit-nature", "pyscf", "qiskit-ibm-runtime"),
pip = TRUE
)
Sys.setenv(IBMQ_TOKEN = "<your-ibm-quantum-api-token>") # only for backend = "ibmq"All three packages are optional at load time; each public entry
point emits a targeted install-hint if its stack is missing.