peropq.optimizer

Attributes

Classes

Optimizer

Class performing the optimizer.

Module Contents

peropq.optimizer.EMPTY_ARRAY
class peropq.optimizer.Optimizer

Class performing the optimizer.

optimize(variational_unitary, initial_guess=[])

Perform the minimization.

Parameters:
  • variational_unitary (peropq.variational_unitary.VariationalUnitary) – ansatz used for optimization

  • initial_guess (collections.abc.Sequence[float]) – initial guess for the optimization. If not provided, use the parameters of the Trotterization instead

Returns:

the result of the optimization

Returns:

the perturbative 2-norm

Return type:

tuple[scipy.optimize.OptimizeResult, float]

optimize_arbitrary(variational_unitary, order, initial_guess=[], tol=0, *, unconstrained=False, cache=False, init_variational_norm=None)

Perform the minimization.

Parameters:
Returns:

the result of the optimization

Returns:

the perturbative 2-norm

Return type:

scipy.optimize.OptimizeResult | tuple[scipy.optimize.OptimizeResult, peropq.bch_optimized.VariationalNorm]

optimize_exact(exact_unitary, initial_guess=EMPTY_ARRAY, tol=0)

Optimize an instance of ExactUnitary.

Parameters:
  • exact_unitary (peropq.exact_norm.ExactUnitary) – to be optimized

  • initial_guess (numpy.typing.NDArray) – first guess to start the optimization

  • tol (float) – tolerance passed to the optimization function

Returns:

the optimization result form scipy.optimize.minimize

Return type:

scipy.optimize.OptimizeResult