Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

qiskit.providers.aer.utils.approximate_quantum_error

approximate_quantum_error(error, *, operator_string=None, operator_dict=None, operator_list=None)

GitHub

Return a QuantumError object that approximates an error as a mixture of specified operators (channels).

The approximation is done by minimizing the Hilbert-Schmidt distance between the process matrix of the target error channel (TT) and the process matrix of the output channel (S=ipiSiS = \sum_i{p_i S_i}), i.e. Tr[(TS)(TS)]Tr[(T-S)^\dagger (T-S)], where [p1,p2,...,pn][p_1, p_2, ..., p_n] denote probabilities and [S1,S2,...,Sn][S_1, S_2, ..., S_n] denote basis operators (channels).

See arXiv:1207.0046 for the details.

Parameters

  • error (QuantumError or QuantumChannel) – the error to be approximated. The number of qubits must be 1 or 2.
  • operator_string (string) – a name for a pre-made set of building blocks for the output channel (Default: None). Possible values are 'pauli', 'reset', 'clifford'.
  • operator_dict (dict) – a dictionary whose values are the building blocks for the output channel (Default: None). E.g. {“x”: XGate(), “y”: YGate()}, keys “x” and “y” are not used in transformation.
  • operator_list (list) – list of building block operators for the output channel (Default: None). E.g. [XGate(), YGate()]

Returns

the approximate quantum error.

Return type

QuantumError

Raises

  • NoiseError – if any invalid argument is specified or approximation failed.
  • MissingOptionalLibraryError – if cvxpy is not installed.
Note

The operator input precedence is: list < dict < string. If a string is given, dict is overwritten; if a dict is given, list is overwritten. The string supports only 1- or 2-qubit errors and its possible values are 'pauli', 'reset', 'clifford'. The 'clifford' does not support 2-qubit errors.

Was this page helpful?
Report a bug or request content on GitHub.