113 lines
4.4 KiB
Plaintext
113 lines
4.4 KiB
Plaintext
---
|
||
title: QFI (v0.29)
|
||
description: API reference for qiskit.aqua.operators.gradients.QFI in qiskit v0.29
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: class
|
||
python_api_name: qiskit.aqua.operators.gradients.QFI
|
||
---
|
||
|
||
# QFI
|
||
|
||
<Class id="qiskit.aqua.operators.gradients.QFI" isDedicatedPage={true} github="https://github.com/qiskit-community/qiskit-aqua/tree/stable/0.9/qiskit/aqua/operators/gradients/qfi.py" signature="QFI(qfi_method='lin_comb_full')" modifiers="class">
|
||
Bases: `qiskit.aqua.operators.gradients.qfi_base.QFIBase`
|
||
|
||
Compute the Quantum Fisher Information (QFI).
|
||
|
||
Computes the QFI given a pure, parametrized quantum state, where QFI is:
|
||
|
||
$$
|
||
\mathrm{QFI}_{kl}= 4 \mathrm{Re}[\langle \partial_k \psi | \partial_l \psi \rangle
|
||
− \langle\partial_k \psi | \psi \rangle \langle\psi | \partial_l \psi \rangle].
|
||
$$
|
||
|
||
**Parameters**
|
||
|
||
**qfi\_method** (`Union`\[`str`, `CircuitQFI`]) – The method used to compute the state/probability gradient. Can be either a [`CircuitQFI`](qiskit.aqua.operators.gradients.CircuitQFI "qiskit.aqua.operators.gradients.CircuitQFI") instance or one of the following pre-defined strings `'lin_comb_full'`, `` 'overlap_diag'` `` or `` 'overlap_block_diag'` ``.
|
||
|
||
**Raises**
|
||
|
||
**ValueError** – if `qfi_method` is neither a `CircuitQFI` object nor one of the predefined strings.
|
||
|
||
## Methods
|
||
|
||
<span id="qiskit-aqua-operators-gradients-qfi-convert" />
|
||
|
||
### convert
|
||
|
||
<Function id="qiskit.aqua.operators.gradients.QFI.convert" signature="QFI.convert(operator, params=None)">
|
||
**Parameters**
|
||
|
||
* **operator** (`CircuitStateFn`) – The operator corresponding to the quantum state |ψ(ω)〉for which we compute the QFI
|
||
* **params** (`Union`\[`ParameterVector`, `ParameterExpression`, `List`\[`ParameterExpression`], `None`]) – The parameters we are computing the QFI wrt: ω
|
||
|
||
**Return type**
|
||
|
||
`ListOp`
|
||
|
||
**Returns**
|
||
|
||
ListOp\[ListOp] where the operator at position k,l corresponds to QFI\_kl
|
||
</Function>
|
||
|
||
<span id="qiskit-aqua-operators-gradients-qfi-gradient-wrapper" />
|
||
|
||
### gradient\_wrapper
|
||
|
||
<Function id="qiskit.aqua.operators.gradients.QFI.gradient_wrapper" signature="QFI.gradient_wrapper(operator, bind_params, grad_params=None, backend=None)">
|
||
Get a callable function which provides the respective gradient, Hessian or QFI for given parameter values. This callable can be used as gradient function for optimizers.
|
||
|
||
**Parameters**
|
||
|
||
* **operator** (`OperatorBase`) – The operator for which we want to get the gradient, Hessian or QFI.
|
||
* **bind\_params** (`Union`\[`ParameterExpression`, `ParameterVector`, `List`\[`ParameterExpression`]]) – The operator parameters to which the parameter values are assigned.
|
||
* **grad\_params** (`Union`\[`ParameterExpression`, `ParameterVector`, `List`\[`ParameterExpression`], `Tuple`\[`ParameterExpression`, `ParameterExpression`], `List`\[`Tuple`\[`ParameterExpression`, `ParameterExpression`]], `None`]) – The parameters with respect to which we are taking the gradient, Hessian or QFI. If grad\_params = None, then grad\_params = bind\_params
|
||
* **backend** (`Union`\[`BaseBackend`, `QuantumInstance`, `None`]) – The quantum backend or QuantumInstance to use to evaluate the gradient, Hessian or QFI.
|
||
|
||
**Returns**
|
||
|
||
Function to compute a gradient, Hessian or QFI. The function takes an iterable as argument which holds the parameter values.
|
||
|
||
**Return type**
|
||
|
||
callable(param\_values)
|
||
</Function>
|
||
|
||
<span id="qiskit-aqua-operators-gradients-qfi-parameter-expression-grad" />
|
||
|
||
### parameter\_expression\_grad
|
||
|
||
<Function id="qiskit.aqua.operators.gradients.QFI.parameter_expression_grad" signature="QFI.parameter_expression_grad(param_expr, param)" modifiers="static">
|
||
Get the derivative of a parameter expression w\.r.t. the given parameter.
|
||
|
||
**Parameters**
|
||
|
||
* **param\_expr** (`ParameterExpression`) – The Parameter Expression for which we compute the derivative
|
||
* **param** (`ParameterExpression`) – Parameter w\.r.t. which we want to take the derivative
|
||
|
||
**Return type**
|
||
|
||
`Union`\[`ParameterExpression`, `float`]
|
||
|
||
**Returns**
|
||
|
||
ParameterExpression representing the gradient of param\_expr w\.r.t. param
|
||
</Function>
|
||
|
||
## Attributes
|
||
|
||
### qfi\_method
|
||
|
||
<Attribute id="qiskit.aqua.operators.gradients.QFI.qfi_method">
|
||
Returns `CircuitQFI`.
|
||
|
||
**Return type**
|
||
|
||
`CircuitQFI`
|
||
|
||
**Returns**
|
||
|
||
`CircuitQFI`.
|
||
</Attribute>
|
||
</Class>
|
||
|