optimizer#

Quantum natural gradient descent#

QNGD

Base class of quantum natural gradient descent.

StochasticQNGD

Stochastic quantum natural gradient descent.

ExactQNGD

Exact quantum natural gradient descent, performed by a full summation in the whole Hilbert space.

SR

Stochastic reconfiguration (SR).

SPRING

SPRING optimizer.

MARCH

MARCH optimizer.

AdamSR

AdamSR optimizer.

ER

Exact reconfiguration, performed by a full summation in the whole Hilbert space.

TimeEvol

Time evolution optimizer, equivalent to real-time SR.

Supervised learning#

Supervised

Supervised optimization of the wave function towards a target state by stochastic reconfiguration on the overlap gradient.

SupervisedAdam

Supervised optimization towards a target state with the Adam-like update of AdamSR.

SupervisedExact

Supervised optimization towards a target state by a full summation in the whole Hilbert space.

Gradient sources#

EnergyGrad

Energy gradient source defining \(\bar \epsilon\) from the local energies of a Hamiltonian, used for ground-state search and time evolution.

OverlapGrad

Overlap gradient source defining \(\bar \epsilon\) from the amplitude ratios with a target state, used for supervised wave function optimization.

Update strategies#

Updater

Base class of update strategies for QNGD optimizers.

PlainUpdater

The plain update \(\dot\theta = \mathrm{solve}(\bar O, \bar\epsilon)\).

Spring

The SPRING update, a variant of SR with momentum stored in the phi buffer.

March

The MARCH update, a variant of SR with first and second order momentum stored in the phi and v buffers.

Adam

The AdamSR update, a variant of SR with first and second order momentum (like Adam) stored in the m, v and t buffers.

Solvers#

Iterative solvers#

lstsq_shift_cg

Obtain the least-square solver for the linear equation \(Ax=b\) using diagonal shift, corresponding to SR.

minnorm_shift_cg

Obtain the minimum-norm solver for the linear equation \(Ax=b\) using diagonal shift, corresponding to MinSR.

lsmr

Obtain the least-square solver for the linear equation \(Ax=b\) solved by the LSMR method lineax.LSMR.

Non-iterative solvers#

minnorm_shift_eig

The MinSR branch of auto_shift_eig, computing \(x = A^† (A A^† + \epsilon I)^{-1} b\) by directly forming the shifted matrix and solving it with a Cholesky solver.

lstsq_shift_eig

The SR branch of auto_shift_eig, computing \(x = (A^† A + \epsilon I)^{-1} A^† b\) by directly forming the shifted matrix and solving it with a Cholesky solver.

auto_shift_eig

Obtain the least-square minimum-norm solver for the linear equation \(Ax=b\) using diagonal shift.

pinvh_solve

Solver for a Hermitian linear equation \(H x = b\) via the pseudo-inverse of \(H\) obtained from its eigendecomposition.

minnorm_pinv_eig

The MinSR branch of auto_pinv_eig, computing \(x = A^† (A A^†)^{-1} b\) via the pseudo-inverse of \(A A^†\) from its eigendecomposition.

lstsq_pinv_eig

The SR branch of auto_pinv_eig, computing \(x = (A^† A)^{-1} A^† b\) via the pseudo-inverse of \(A^† A\) from its eigendecomposition.

auto_pinv_eig

Obtain the least-square minimum-norm solver for the linear equation \(Ax=b\) using pseudo-inverse.

block_pinv_eig

Obtain the layerwise least-square minimum-norm solver for the linear equation \(Ax=b\) using pseudo-inverse.

sgd_solver

The plain stochastic gradient descent solver, returning \(x = A^† b / N_s\) without any preconditioning.