VariationalPrinciple#
- class VariationalPrinciple(qgt, gradient)[source]#
Bases:
ABC
A Variational Principle class. It determines the time propagation of parameters in a quantum state provided as a parametrized quantum circuit (ansatz).
- gradient#
Instance of a class used to compute the state gradient.
- Type:
- Parameters:
qgt (BaseQGT) – Instance of a class used to compute the GQT.
gradient (BaseEstimatorGradient) – Instance of a class used to compute the state gradient.
Methods
- abstract evolution_gradient(hamiltonian, ansatz, param_values, gradient_params=None)[source]#
Calculates an evolution gradient according to the rules of this variational principle.
- Parameters:
hamiltonian (BaseOperator) – Operator used for Variational Quantum Time Evolution.
ansatz (QuantumCircuit) – Quantum state in the form of a parametrized quantum circuit.
param_values (Sequence[float]) – Values of parameters to be bound.
gradient_params (Sequence[Parameter] | None) – List of parameters with respect to which gradients should be computed. If
None
given, gradients w.r.t. all parameters will be computed.
- Returns:
An evolution gradient.
- Return type:
np.ndarray
- metric_tensor(ansatz, param_values)[source]#
Calculates a metric tensor according to the rules of this variational principle.
- Parameters:
ansatz (QuantumCircuit) – Quantum state in the form of a parametrized quantum circuit.
param_values (Sequence[float]) – Values of parameters to be bound.
- Returns:
Metric tensor.
- Raises:
AlgorithmError – If a QFI job fails.
- Return type:
Sequence[float]