114 lines
4.8 KiB
Plaintext
114 lines
4.8 KiB
Plaintext
---
|
||
title: BaseQGT
|
||
description: API reference for qiskit.algorithms.gradients.BaseQGT
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: class
|
||
python_api_name: qiskit.algorithms.gradients.BaseQGT
|
||
---
|
||
|
||
# BaseQGT
|
||
|
||
<Class id="qiskit.algorithms.gradients.BaseQGT" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.24/qiskit/algorithms/gradients/base_qgt.py" signature="BaseQGT(estimator, phase_fix=True, derivative_type=DerivativeType.COMPLEX, options=None)" modifiers="class">
|
||
Bases: `ABC`
|
||
|
||
Base class to computes the Quantum Geometric Tensor (QGT) given a pure, parameterized quantum state. QGT is defined as:
|
||
|
||
$$
|
||
\mathrm{QGT}_{ij}= \langle \partial_i \psi | \partial_j \psi \rangle
|
||
- \langle\partial_i \psi | \psi \rangle \langle\psi | \partial_j \psi \rangle.
|
||
$$
|
||
|
||
**Parameters**
|
||
|
||
* **estimator** ([*BaseEstimator*](qiskit.primitives.BaseEstimator "qiskit.primitives.BaseEstimator")) – The estimator used to compute the QGT.
|
||
|
||
* **phase\_fix** (*bool*) – Whether to calculate the second term (phase fix) of the QGT, which is $\langle\partial_i \psi | \psi \rangle \langle\psi | \partial_j \psi \rangle$. Defaults to `True`.
|
||
|
||
* **derivative\_type** ([*DerivativeType*](qiskit.algorithms.gradients.DerivativeType "qiskit.algorithms.gradients.DerivativeType")) –
|
||
|
||
The type of derivative. Can be either `DerivativeType.REAL` `DerivativeType.IMAG`, or `DerivativeType.COMPLEX`. Defaults to `DerivativeType.REAL`.
|
||
|
||
* `DerivativeType.REAL` computes
|
||
|
||
$$
|
||
\mathrm{Re(QGT)}_{ij}= \mathrm{Re}[\langle \partial_i \psi | \partial_j \psi \rangle
|
||
- \langle\partial_i \psi | \psi \rangle \langle\psi | \partial_j \psi \rangle].
|
||
$$
|
||
|
||
* `DerivativeType.IMAG` computes
|
||
|
||
$$
|
||
\mathrm{Im(QGT)}_{ij}= \mathrm{Im}[\langle \partial_i \psi | \partial_j \psi \rangle
|
||
- \langle\partial_i \psi | \psi \rangle \langle\psi | \partial_j \psi \rangle].
|
||
$$
|
||
|
||
* `DerivativeType.COMPLEX` computes
|
||
|
||
$$
|
||
\mathrm{QGT}_{ij}= [\langle \partial_i \psi | \partial_j \psi \rangle
|
||
- \langle\partial_i \psi | \psi \rangle \langle\psi | \partial_j \psi \rangle].
|
||
$$
|
||
|
||
* **options** ([*Options*](qiskit.providers.Options "qiskit.providers.Options") *| None*) – Backend runtime options used for circuit execution. The order of priority is: options in `run` method > QGT’s default options > primitive’s default setting. Higher priority setting overrides lower priority setting.
|
||
|
||
## Methods
|
||
|
||
<span id="qiskit-algorithms-gradients-baseqgt-run" />
|
||
|
||
### run
|
||
|
||
<Function id="qiskit.algorithms.gradients.BaseQGT.run" signature="BaseQGT.run(circuits, parameter_values, parameters=None, **options)">
|
||
Run the job of the QGTs on the given circuits.
|
||
|
||
**Parameters**
|
||
|
||
* **circuits** (*Sequence\[*[*QuantumCircuit*](qiskit.circuit.QuantumCircuit "qiskit.circuit.QuantumCircuit")*]*) – The list of quantum circuits to compute the QGTs.
|
||
* **parameter\_values** (*Sequence\[Sequence\[float]]*) – The list of parameter values to be bound to the circuit.
|
||
* **parameters** (*Sequence\[Sequence\[*[*Parameter*](qiskit.circuit.Parameter "qiskit.circuit.Parameter")*] | None] | None*) – The sequence of parameters to calculate only the QGTs of the specified parameters. Each sequence of parameters corresponds to a circuit in `circuits`. Defaults to None, which means that the QGTs of all parameters in each circuit are calculated.
|
||
* **options** – Primitive backend runtime options used for circuit execution. The order of priority is: options in `run` method > QGT’s default options > primitive’s default setting. Higher priority setting overrides lower priority setting.
|
||
|
||
**Returns**
|
||
|
||
The job object of the QGTs of the expectation values. The i-th result corresponds to `circuits[i]` evaluated with parameters bound as `parameter_values[i]`.
|
||
|
||
**Raises**
|
||
|
||
**ValueError** – Invalid arguments are given.
|
||
|
||
**Return type**
|
||
|
||
[AlgorithmJob](qiskit.algorithms.AlgorithmJob "qiskit.algorithms.AlgorithmJob")
|
||
</Function>
|
||
|
||
<span id="qiskit-algorithms-gradients-baseqgt-update-default-options" />
|
||
|
||
### update\_default\_options
|
||
|
||
<Function id="qiskit.algorithms.gradients.BaseQGT.update_default_options" signature="BaseQGT.update_default_options(**options)">
|
||
Update the gradient’s default options setting.
|
||
|
||
**Parameters**
|
||
|
||
**\*\*options** – The fields to update the default options.
|
||
</Function>
|
||
|
||
## Attributes
|
||
|
||
### derivative\_type
|
||
|
||
<Attribute id="qiskit.algorithms.gradients.BaseQGT.derivative_type">
|
||
The derivative type.
|
||
</Attribute>
|
||
|
||
### options
|
||
|
||
<Attribute id="qiskit.algorithms.gradients.BaseQGT.options">
|
||
Return the union of estimator options setting and QGT default options, where, if the same field is set in both, the QGT’s default options override the primitive’s default setting.
|
||
|
||
**Returns**
|
||
|
||
The QGT default + estimator options.
|
||
</Attribute>
|
||
</Class>
|
||
|