93 lines
4.2 KiB
Plaintext
93 lines
4.2 KiB
Plaintext
---
|
||
title: ReverseQGT
|
||
description: API reference for qiskit.algorithms.gradients.ReverseQGT
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: class
|
||
python_api_name: qiskit.algorithms.gradients.ReverseQGT
|
||
---
|
||
|
||
# ReverseQGT
|
||
|
||
<Class id="qiskit.algorithms.gradients.ReverseQGT" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.45/qiskit/algorithms/gradients/reverse/reverse_qgt.py" signature="qiskit.algorithms.gradients.ReverseQGT(phase_fix=True, derivative_type=DerivativeType.COMPLEX)" modifiers="class">
|
||
Bases: [`BaseQGT`](qiskit.algorithms.gradients.BaseQGT "qiskit.algorithms.gradients.base.base_qgt.BaseQGT")
|
||
|
||
QGT calculation with the classically efficient reverse mode.
|
||
|
||
<Admonition title="Note" type="note">
|
||
This QGT implementation is based on statevector manipulations and scales exponentially with the number of qubits. However, for small system sizes it can be very fast compared to circuit-based gradients.
|
||
</Admonition>
|
||
|
||
This class implements the calculation of the QGT as described in \[1]. By keeping track of three statevectors and iteratively sweeping through each parameterized gate, this method scales only quadratically with the number of parameters.
|
||
|
||
**References:**
|
||
|
||
> **\[1]: Jones, T. “Efficient classical calculation of the Quantum Natural Gradient” (2020).**
|
||
>
|
||
> [arXiv:2011.02991](https://arxiv.org/abs/2011.02991).
|
||
|
||
**Parameters**
|
||
|
||
* **phase\_fix** ([*bool*](https://docs.python.org/3/library/functions.html#bool "(in Python v3.12)")) – Whether or not to include the phase fix.
|
||
* **derivative\_type** (*DerivativeType*) – Determines whether the complex QGT or only the real or imaginary parts are calculated.
|
||
|
||
## Attributes
|
||
|
||
### SUPPORTED\_GATES
|
||
|
||
<Attribute id="qiskit.algorithms.gradients.ReverseQGT.SUPPORTED_GATES" attributeValue="['rx', 'ry', 'rz', 'cp', 'crx', 'cry', 'crz']" />
|
||
|
||
### derivative\_type
|
||
|
||
<Attribute id="qiskit.algorithms.gradients.ReverseQGT.derivative_type">
|
||
The derivative type.
|
||
</Attribute>
|
||
|
||
### options
|
||
|
||
<Attribute id="qiskit.algorithms.gradients.ReverseQGT.options">
|
||
There are no options for the reverse QGT, returns an empty options dict.
|
||
|
||
**Returns**
|
||
|
||
Empty options.
|
||
</Attribute>
|
||
|
||
## Methods
|
||
|
||
### run
|
||
|
||
<Function id="qiskit.algorithms.gradients.ReverseQGT.run" signature="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*](https://docs.python.org/3/library/functions.html#float "(in Python v3.12)")*]]*) – 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**](https://docs.python.org/3/library/exceptions.html#ValueError "(in Python v3.12)") – Invalid arguments are given.
|
||
|
||
**Return type**
|
||
|
||
[AlgorithmJob](qiskit.algorithms.AlgorithmJob "qiskit.algorithms.AlgorithmJob")
|
||
</Function>
|
||
|
||
### update\_default\_options
|
||
|
||
<Function id="qiskit.algorithms.gradients.ReverseQGT.update_default_options" signature="update_default_options(**options)">
|
||
Update the gradient’s default options setting.
|
||
|
||
**Parameters**
|
||
|
||
**\*\*options** – The fields to update the default options.
|
||
</Function>
|
||
</Class>
|
||
|