155 lines
9.0 KiB
Plaintext
155 lines
9.0 KiB
Plaintext
---
|
||
title: CorrelatedReadoutMitigator (v1.2)
|
||
description: API reference for qiskit.result.CorrelatedReadoutMitigator in qiskit v1.2
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: class
|
||
python_api_name: qiskit.result.CorrelatedReadoutMitigator
|
||
---
|
||
|
||
# CorrelatedReadoutMitigator
|
||
|
||
<Class id="qiskit.result.CorrelatedReadoutMitigator" isDedicatedPage={true} github="https://github.com/Qiskit/qiskit/tree/stable/1.2/qiskit/result/mitigation/correlated_readout_mitigator.py#L27-L269" signature="qiskit.result.CorrelatedReadoutMitigator(assignment_matrix, qubits=None)" modifiers="class">
|
||
Bases: [`BaseReadoutMitigator`](qiskit.result.BaseReadoutMitigator "qiskit.result.mitigation.base_readout_mitigator.BaseReadoutMitigator")
|
||
|
||
N-qubit readout error mitigator.
|
||
|
||
Mitigates [`expectation_value()`](#qiskit.result.CorrelatedReadoutMitigator.expectation_value "qiskit.result.CorrelatedReadoutMitigator.expectation_value") and [`quasi_probabilities()`](#qiskit.result.CorrelatedReadoutMitigator.quasi_probabilities "qiskit.result.CorrelatedReadoutMitigator.quasi_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*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)")) – readout error assignment matrix.
|
||
* **qubits** ([*Iterable*](https://docs.python.org/3/library/typing.html#typing.Iterable "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*] | None*) – Optional, the measured physical qubits for mitigation.
|
||
|
||
**Raises**
|
||
|
||
[**QiskitError**](exceptions#qiskit.exceptions.QiskitError "qiskit.exceptions.QiskitError") – matrix size does not agree with number of qubits
|
||
|
||
## Attributes
|
||
|
||
### qubits
|
||
|
||
<Attribute id="qiskit.result.CorrelatedReadoutMitigator.qubits">
|
||
The device qubits for this mitigator
|
||
</Attribute>
|
||
|
||
### settings
|
||
|
||
<Attribute id="qiskit.result.CorrelatedReadoutMitigator.settings">
|
||
Return settings.
|
||
</Attribute>
|
||
|
||
## Methods
|
||
|
||
### assignment\_matrix
|
||
|
||
<Function id="qiskit.result.CorrelatedReadoutMitigator.assignment_matrix" github="https://github.com/Qiskit/qiskit/tree/stable/1.2/qiskit/result/mitigation/correlated_readout_mitigator.py#L206-L240" signature="assignment_matrix(qubits=None)">
|
||
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*](https://docs.python.org/3/library/typing.html#typing.List "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*] | None*) – Optional, qubits being measured.
|
||
|
||
**Returns**
|
||
|
||
the assignment matrix A.
|
||
|
||
**Return type**
|
||
|
||
np.ndarray
|
||
</Function>
|
||
|
||
### expectation\_value
|
||
|
||
<Function id="qiskit.result.CorrelatedReadoutMitigator.expectation_value" github="https://github.com/Qiskit/qiskit/tree/stable/1.2/qiskit/result/mitigation/correlated_readout_mitigator.py#L71-L130" signature="expectation_value(data, diagonal=None, qubits=None, clbits=None, shots=None)">
|
||
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*](qiskit.result.Counts "qiskit.result.counts.Counts")) – Counts object
|
||
* **diagonal** ([*Callable*](https://docs.python.org/3/library/typing.html#typing.Callable "(in Python v3.13)") *|*[*dict*](https://docs.python.org/3/library/stdtypes.html#dict "(in Python v3.13)") *|*[*str*](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.13)") *|*[*ndarray*](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray "(in NumPy v2.1)") *| None*) – Optional, the vector of diagonal values for summing the expectation value. If `None` the default value is $[1, -1]^\otimes n$.
|
||
* **qubits** ([*Iterable*](https://docs.python.org/3/library/typing.html#typing.Iterable "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*] | None*) – Optional, the measured physical qubits the count bitstrings correspond to. If None qubits are assumed to be $[0, ..., n-1]$.
|
||
* **clbits** ([*List*](https://docs.python.org/3/library/typing.html#typing.List "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*] | None*) – Optional, if not None marginalize counts to the specified bits.
|
||
* **shots** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| None*) – the number of shots.
|
||
|
||
**Returns**
|
||
|
||
the expectation value and an upper bound of the standard deviation.
|
||
|
||
**Return type**
|
||
|
||
([float](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)"), [float](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)"))
|
||
|
||
**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. The `clbits` kwarg is used to marginalize the input counts dictionary over the specified bit-values, and the `qubits` kwarg is used to specify which physical qubits these bit-values correspond to as `circuit.measure(qubits, clbits)`.
|
||
</Function>
|
||
|
||
### mitigation\_matrix
|
||
|
||
<Function id="qiskit.result.CorrelatedReadoutMitigator.mitigation_matrix" github="https://github.com/Qiskit/qiskit/tree/stable/1.2/qiskit/result/mitigation/correlated_readout_mitigator.py#L177-L204" signature="mitigation_matrix(qubits=None)">
|
||
Return the readout mitigation matrix for the specified qubits.
|
||
|
||
The mitigation matrix $A^{-1}$ is defined as the inverse of the [`assignment_matrix()`](#qiskit.result.CorrelatedReadoutMitigator.assignment_matrix "qiskit.result.CorrelatedReadoutMitigator.assignment_matrix") $A$.
|
||
|
||
**Parameters**
|
||
|
||
**qubits** ([*List*](https://docs.python.org/3/library/typing.html#typing.List "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*] | None*) – Optional, qubits being measured.
|
||
|
||
**Returns**
|
||
|
||
the measurement error mitigation matrix $A^{-1}$.
|
||
|
||
**Return type**
|
||
|
||
np.ndarray
|
||
</Function>
|
||
|
||
### quasi\_probabilities
|
||
|
||
<Function id="qiskit.result.CorrelatedReadoutMitigator.quasi_probabilities" github="https://github.com/Qiskit/qiskit/tree/stable/1.2/qiskit/result/mitigation/correlated_readout_mitigator.py#L132-L175" signature="quasi_probabilities(data, qubits=None, clbits=None, shots=None)">
|
||
Compute mitigated quasi probabilities value.
|
||
|
||
**Parameters**
|
||
|
||
* **data** ([*Counts*](qiskit.result.Counts "qiskit.result.counts.Counts")) – counts object
|
||
* **qubits** ([*List*](https://docs.python.org/3/library/typing.html#typing.List "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*] | None*) – qubits the count bitstrings correspond to.
|
||
* **clbits** ([*List*](https://docs.python.org/3/library/typing.html#typing.List "(in Python v3.13)")*\[*[*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")*] | None*) – Optional, marginalize counts to just these bits.
|
||
* **shots** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)") *| 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](qiskit.result.QuasiDistribution "qiskit.result.QuasiDistribution")
|
||
</Function>
|
||
|
||
### stddev\_upper\_bound
|
||
|
||
<Function id="qiskit.result.CorrelatedReadoutMitigator.stddev_upper_bound" github="https://github.com/Qiskit/qiskit/tree/stable/1.2/qiskit/result/mitigation/correlated_readout_mitigator.py#L254-L264" signature="stddev_upper_bound(shots)">
|
||
Return an upper bound on standard deviation of expval estimator.
|
||
|
||
**Parameters**
|
||
|
||
**shots** ([*int*](https://docs.python.org/3/library/functions.html#int "(in Python v3.13)")) – Number of shots used for expectation value measurement.
|
||
|
||
**Returns**
|
||
|
||
the standard deviation upper bound.
|
||
|
||
**Return type**
|
||
|
||
[float](https://docs.python.org/3/library/functions.html#float "(in Python v3.13)")
|
||
</Function>
|
||
</Class>
|
||
|