qiskit.providers.aer.utils.approximate_quantum_error
approximate_quantum_error(error, *, operator_string=None, operator_dict=None, operator_list=None)
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 () and the process matrix of the output channel (), i.e. , where denote probabilities and 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
Raises
- NoiseError – if any invalid argument is specified or approximation failed.
- MissingOptionalLibraryError – if cvxpy is not installed.
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.