qiskit-documentation/docs/api/qiskit/0.40/qiskit.algorithms.time_evol...

80 lines
3.2 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: VariationalPrinciple
description: API reference for qiskit.algorithms.time_evolvers.variational.VariationalPrinciple
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit.algorithms.time_evolvers.variational.VariationalPrinciple
---
# VariationalPrinciple
<Class id="qiskit.algorithms.time_evolvers.variational.VariationalPrinciple" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.23/qiskit/algorithms/time_evolvers/variational/variational_principles/variational_principle.py" signature="VariationalPrinciple(qgt, gradient)" modifiers="class">
Bases: `abc.ABC`
A Variational Principle class. It determines the time propagation of parameters in a quantum state provided as a parametrized quantum circuit (ansatz).
### qgt
<Attribute id="qiskit.algorithms.time_evolvers.variational.VariationalPrinciple.qgt">
Instance of a class used to compute the GQT.
**Type**
[BaseQGT](qiskit.algorithms.gradients.BaseQGT "qiskit.algorithms.gradients.BaseQGT")
</Attribute>
### gradient
<Attribute id="qiskit.algorithms.time_evolvers.variational.VariationalPrinciple.gradient">
Instance of a class used to compute the state gradient.
**Type**
[BaseEstimatorGradient](qiskit.algorithms.gradients.BaseEstimatorGradient "qiskit.algorithms.gradients.BaseEstimatorGradient")
</Attribute>
**Parameters**
* **qgt** ([`BaseQGT`](qiskit.algorithms.gradients.BaseQGT "qiskit.algorithms.gradients.base_qgt.BaseQGT")) Instance of a class used to compute the GQT.
* **gradient** ([`BaseEstimatorGradient`](qiskit.algorithms.gradients.BaseEstimatorGradient "qiskit.algorithms.gradients.base_estimator_gradient.BaseEstimatorGradient")) Instance of a class used to compute the state gradient.
## Methods Defined Here
### evolution\_gradient
<Function id="qiskit.algorithms.time_evolvers.variational.VariationalPrinciple.evolution_gradient" signature="VariationalPrinciple.evolution_gradient(hamiltonian, ansatz, param_values, gradient_params=None)" modifiers="abstract">
Calculates an evolution gradient according to the rules of this variational principle.
**Parameters**
* **hamiltonian** Operator used for Variational Quantum Time Evolution.
* **ansatz** Quantum state in the form of a parametrized quantum circuit.
* **param\_values** Values of parameters to be bound.
* **gradient\_params** 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.
</Function>
### metric\_tensor
<Function id="qiskit.algorithms.time_evolvers.variational.VariationalPrinciple.metric_tensor" signature="VariationalPrinciple.metric_tensor(ansatz, param_values)">
Calculates a metric tensor according to the rules of this variational principle.
**Parameters**
* **ansatz** Quantum state in the form of a parametrized quantum circuit.
* **param\_values** Values of parameters to be bound.
**Returns**
Metric tensor.
**Raises**
[**AlgorithmError**](qiskit.algorithms.AlgorithmError "qiskit.algorithms.AlgorithmError") If a QFI job fails.
</Function>
</Class>