Note
This is the documentation for the current state of the development branch of Qiskit Experiments. The documentation or APIs here can change prior to being released.
CorrelatedReadoutMitigator¶
- class CorrelatedReadoutMitigator(assignment_matrix, qubits=None)[source]¶
N-qubit readout error mitigator.
Mitigates
expectation_value()
andquasi_probabilities()
. The mitigation_matrix should be calibrated using qiskit experiments. This mitigation method should be used in case the readout errors of the qubits are assumed to be correlated. The mitigation_matrix of N qubits is of size \(2^N x 2^N\) so the mitigation complexity is \(O(4^N)\).Initialize a CorrelatedReadoutMitigator
- Parameters:
assignment_matrix (ndarray) – readout error assignment matrix.
qubits (Iterable[int] | None) – Optional, the measured physical qubits for mitigation.
- Raises:
QiskitError – matrix size does not agree with number of qubits
Attributes
- qubits¶
The device qubits for this mitigator
- settings¶
Return settings.
Methods
- assignment_matrix(qubits=None)[source]¶
Return the readout assignment matrix for specified qubits.
The assignment matrix is the stochastic matrix \(A\) which assigns a noisy readout probability distribution to an ideal input readout distribution: \(P(i|j) = \langle i | A | j \rangle\).
- Parameters:
qubits (List[int]) – Optional, qubits being measured.
- Returns:
the assignment matrix A.
- Return type:
np.ndarray
- expectation_value(data, diagonal=None, qubits=None, clbits=None, shots=None)[source]¶
Compute the mitigated expectation value of a diagonal observable.
This computes the mitigated estimator of \(\langle O \rangle = \mbox{Tr}[\rho. O]\) of a diagonal observable \(O = \sum_{x\in\{0, 1\}^n} O(x)|x\rangle\!\langle x|\).
- Parameters:
data (Counts) – Counts object
diagonal (Callable | dict | str | ndarray) – Optional, the vector of diagonal values for summing the expectation value. If
None
the default value is \([1, -1]^\otimes n\).qubits (Iterable[int]) – Optional, the measured physical qubits the count bitstrings correspond to. If None qubits are assumed to be \([0, ..., n-1]\).
clbits (List[int] | None) – Optional, if not None marginalize counts to the specified bits.
shots (int | None) – the number of shots.
- Returns:
the expectation value and an upper bound of the standard deviation.
- Return type:
(float, float)
- Additional Information:
The diagonal observable \(O\) is input using the
diagonal
kwarg as a list or Numpy array \([O(0), ..., O(2^n -1)]\). If no diagonal is specified the diagonal of the Pauli operator :math`O = mbox{diag}(Z^{otimes n}) = [1, -1]^{otimes n}` is used. Theclbits
kwarg is used to marginalize the input counts dictionary over the specified bit-values, and thequbits
kwarg is used to specify which physical qubits these bit-values correspond to ascircuit.measure(qubits, clbits)
.
- mitigation_matrix(qubits=None)[source]¶
Return the readout mitigation matrix for the specified qubits.
The mitigation matrix \(A^{-1}\) is defined as the inverse of the
assignment_matrix()
\(A\).- Parameters:
qubits (List[int]) – Optional, qubits being measured.
- Returns:
the measurement error mitigation matrix \(A^{-1}\).
- Return type:
np.ndarray
- quasi_probabilities(data, qubits=None, clbits=None, shots=None)[source]¶
Compute mitigated quasi probabilities value.
- Parameters:
data (Counts) – counts object
qubits (List[int] | None) – qubits the count bitstrings correspond to.
clbits (List[int] | None) – Optional, marginalize counts to just these bits.
shots (int | None) – Optional, the total number of shots, if None shots will be calculated as the sum of all counts.
- Returns:
- A dictionary containing pairs of [output, mean] where “output”
is the key in the dictionaries, which is the length-N bitstring of a measured standard basis state, and “mean” is the mean of non-zero quasi-probability estimates.
- Return type:
QuasiDistribution