NoiseLearnerV3Result

class NoiseLearnerV3Result[source]

Bases: object

The results of a noise learner experiment for a single instruction, in Pauli Lindblad format.

An error channel Pauli Lindblad \(E\) acting on a state \(\rho\) can be expressed in Pauli Lindblad format as \(E(\rho) = e^{\sum_j r_j D_{P_j}}(\rho)\), \(P_j\) are Pauli operators (or “generators”) and \(r_j\) are floats (or “rates”) [1]. The equivalent Pauli error channel can be constructed as a composition of single-Pauli channel terms

\[E = e^{\sum_j r_j D_{P_j}} = \prod_j e^{r_j D_{P_j}} = prod_j \left( (1 - p_j) S_I + p_j S_{P_j} \right)\]

where \(p_j = \frac12 - \frac12 e^{-2 r_j}\).

Some strategies for learning noise channels, such as the Pauli Lindblad learning protocol in Ref. [1], produce degenarate terms, meaning that they learn products of rates as opposed to individual rates.

References

  1. E. van den Berg, Z. Minev, A. Kandala, K. Temme, Probabilistic error cancellation with sparse Pauli–Lindblad models on noisy quantum processors, Nature Physics volume 19, pages 1116–1121 (2023). arXiv:2201.09866 [quant-ph]

Methods

__len__()[source]
Return type:

int

classmethod from_generators(generators, rates, rates_std=None, metadata=None)[source]

Construct from a collection of generators and rates.

Parameters:
  • generators (Iterable[QubitSparsePauliList]) – The generators describing the noise channel in the Pauli Lindblad format. This is a list of QubitSparsePauliList objects, as opposed to a list of QubitSparsePauli, in order to capture degeneracies present within the model.

  • rates (Iterable[float]) – The rates of the individual generators. The i-th element in this list represents the rate of all the Paulis in the i-th generator.

  • rates_std (Iterable[float] | None) – The standard deviation associated to the rates of the generators. If None, it sets all the standard deviations to 0.

  • metadata (dict[str, int | str | float | dict[str, int | str | float | Metadata | list[MetadataValue]] | list[MetadataValue]] | None) – A dictionary of metadata.

to_pauli_lindblad_map()[source]

Transform this result to a Pauli Lindblad map.

The Pauli terms in the generators are indexed in physical qubit order, that is, the order of the qubits in the outer-most circuit.

Return type:

PauliLindbladMap