BaseQGT#
- class BaseQGT(estimator, phase_fix=True, derivative_type=DerivativeType.COMPLEX, options=None)[source]#
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) – 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) –
The type of derivative. Can be either
DerivativeType.REAL
DerivativeType.IMAG
, orDerivativeType.COMPLEX
. Defaults toDerivativeType.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 | 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.
Attributes
- derivative_type#
The derivative type.
- 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.
Methods
- run(circuits, parameter_values, parameters=None, **options)[source]#
Run the job of the QGTs on the given circuits.
- Parameters:
circuits (Sequence[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] | 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 asparameter_values[i]
.- Raises:
ValueError – Invalid arguments are given.
- Return type: