Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

VariationalPrinciple

class qiskit.algorithms.time_evolvers.variational.VariationalPrinciple(qgt, gradient)

GitHub

Bases: ABC

A Variational Principle class. It determines the time propagation of parameters in a quantum state provided as a parametrized quantum circuit (ansatz).

qgt

Instance of a class used to compute the GQT.

Type

BaseQGT

gradient

Instance of a class used to compute the state gradient.

Type

BaseEstimatorGradient

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

evolution_gradient

abstract evolution_gradient(hamiltonian, ansatz, param_values, gradient_params=None)

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

metric_tensor(ansatz, param_values)

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]

Was this page helpful?
Report a bug or request content on GitHub.