microquantum.optimizers.spsa

SPSA and QNSPSA optimizers for noisy quantum landscapes.

SPSA (Simultaneous Perturbation Stochastic Approximation) estimates gradients using only two cost function evaluations regardless of parameter count, making it ideal for shot-noisy quantum optimization.

QNSPSA (Quantum Natural SPSA) uses the Fubini-Study metric tensor to precondition SPSA updates for better convergence on quantum optimization landscapes.

Module Contents

class microquantum.optimizers.spsa.SPSA(a=0.1, c=0.1, alpha=0.602, gamma=0.101, A=10.0, max_iter=200, tol=1e-06, seed=None, blocking=False, resamples=1)[source]

Bases: microquantum.optimizers.base.Optimizer

Simultaneous Perturbation Stochastic Approximation.

Estimates the gradient using random perturbations in all parameters simultaneously, requiring only 2 cost evaluations per iteration regardless of parameter count.

Parameters:
  • a (float) – Initial step size (decays as 1/(iteration + A)^alpha).

  • c (float) – Perturbation size for gradient estimation.

  • alpha (float) – Step size decay exponent (typically 0.602).

  • gamma (float) – Perturbation decay exponent (typically 0.101).

  • A (float) – Stabilization constant for step size decay.

  • max_iter (int) – Maximum number of iterations.

  • tol (float) – Convergence tolerance.

  • seed (int | None) – Random seed for reproducibility.

  • blocking (bool) – Only accept updates that do not worsen the cost (extra cost evaluations per iteration).

  • resamples (int) – Cost evaluations averaged per perturbed point (variance reduction for shot-noisy objectives).

Reference:

J.C. Spall, “Multivariate Stochastic Approximation using Simultaneous Perturbation Gradient Approximation”, 1992.

property max_iter: int[source]

Maximum number of iterations.

Return type:

int

class microquantum.optimizers.spsa.QNSPSA(a=0.1, c=0.1, alpha=0.602, gamma=0.101, A=10.0, fidelity_fn=None, max_iter=200, tol=1e-06, seed=None)[source]

Bases: microquantum.optimizers.base.Optimizer

Quantum Natural SPSA with Fubini-Study metric tensor.

Improves SPSA by preconditioning the gradient estimate with the quantum Fisher information matrix (Fubini-Study metric tensor), leading to better convergence on quantum cost landscapes.

The metric tensor is estimated using two additional SPSA-style evaluations per iteration (4 total cost evaluations).

Parameters:
Reference:

G. Stoudenmire & D. Wiersema, “OpenFermion: The Electronic Structure Package for Quantum Computers”, 2020.

property max_iter: int[source]

Maximum number of iterations.

Return type:

int