BaseStateFidelity¶
- class BaseStateFidelity(*, transpiler=None, transpiler_options=None)[source]¶
Bases:
ABC
An interface to calculate state fidelities (state overlaps) for pairs of (parametrized) quantum circuits. The calculation depends on the particular fidelity method implementation, but can be always defined as the state overlap:
\[|\langle\psi(x)|\phi(y)\rangle|^2\]where \(x\) and \(y\) are optional parametrizations of the states \(\psi\) and \(\phi\) prepared by the circuits
circuit_1
andcircuit_2
, respectively.- Parameters:
transpiler (Transpiler | None) – An optional object with a run method allowing to transpile the circuits that are produced within this algorithm. If set to None, these won’t be transpiled.
transpiler_options (dict[str, Any] | None) – A dictionary of options to be passed to the transpiler’s run method as keyword arguments.
Methods
- abstract create_fidelity_circuit(circuit_1, circuit_2)[source]¶
Implementation-dependent method to create a fidelity circuit from 2 circuit inputs.
- Parameters:
circuit_1 (QuantumCircuit) – (Parametrized) quantum circuit.
circuit_2 (QuantumCircuit) – (Parametrized) quantum circuit.
- Returns:
The fidelity quantum circuit corresponding to
circuit_1
andcircuit_2
.- Return type:
- run(circuits_1, circuits_2, values_1=None, values_2=None, *, shots=None)[source]¶
Runs asynchronously the state overlap (fidelity) calculation between two (parametrized) circuits (first and second) for a specific set of parameter values (first and second). This calculation depends on the particular fidelity method implementation.
- Parameters:
circuits_1 (QuantumCircuit | Sequence[QuantumCircuit]) – (Parametrized) quantum circuits preparing \(|\psi\rangle\).
circuits_2 (QuantumCircuit | Sequence[QuantumCircuit]) – (Parametrized) quantum circuits preparing \(|\phi\rangle\).
values_1 (Sequence[float] | Sequence[Sequence[float]] | None) – Numerical parameters to be bound to the first set of circuits.
values_2 (Sequence[float] | Sequence[Sequence[float]] | None) – Numerical parameters to be bound to the second set of circuits.
shots (int | Sequence[int] | None) – Number of shots to be used by the underlying sampler. If a single integer is provided, this number will be used for all circuits. If a sequence of integers is provided, they will be used on a per-circuit basis. If none is provided, the fidelity’s default number of shots will be used for all circuits. If this number is also set to None, the underlying primitive’s default number of shots will be used for all circuits.
- Returns:
Primitive job for the fidelity calculation. The job’s result is an instance of
StateFidelityResult
.- Return type: