average_gate_fidelity

average_gate_fidelity(channel, target=None, require_cp=True, require_tp=False)[source]

Return the average gate fidelity of a noisy quantum channel.

The average gate fidelity \(F_{\text{ave}}\) is given by

\[\begin{split}F_{\text{ave}}(\mathcal{E}, U) &= \int d\psi \langle\psi|U^\dagger \mathcal{E}(|\psi\rangle\!\langle\psi|)U|\psi\rangle \\ &= \frac{d F_{\text{pro}}(\mathcal{E}, U) + 1}{d + 1}\end{split}\]

where \(F_{\text{pro}}(\mathcal{E}, U)\) is the process_fidelity() of the input quantum channel \(\mathcal{E}\) with a target unitary \(U\), and \(d\) is the dimension of the channel.

Parameters
  • channel (QuantumChannel) – noisy quantum channel.

  • target (Operator or None) – target unitary operator. If None target is the identity operator [Default: None].

  • require_cp (bool) – require channel to be completely-positive [Default: True].

  • require_tp (bool) – require channel to be trace-preserving [Default: False].

Returns

The average gate fidelity \(F_{\text{ave}}\).

Return type

float

Raises
  • QiskitError – if the channel and target do not have the same dimensions, or have different input and output dimensions.

  • QiskitError – if the channel and target or are not completely-positive (with require_cp=True) or not trace-preserving (with require_tp=True).