163 lines
6.5 KiB
Plaintext
163 lines
6.5 KiB
Plaintext
---
|
||
title: CorrelatedReadoutMitigator
|
||
description: API reference for qiskit.result.CorrelatedReadoutMitigator
|
||
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/0.21/qiskit/result/mitigation/correlated_readout_mitigator.py" signature="CorrelatedReadoutMitigator(assignment_matrix, qubits=None)" modifiers="class">
|
||
Bases: [`qiskit.result.mitigation.base_readout_mitigator.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`) – readout error assignment matrix.
|
||
* **qubits** (`Optional`\[`Iterable`\[`int`]]) – Optional, the measured physical qubits for mitigation.
|
||
|
||
**Raises**
|
||
|
||
**QiskitError** – matrix size does not agree with number of qubits
|
||
|
||
## Methods
|
||
|
||
### assignment\_matrix
|
||
|
||
<Function id="qiskit.result.CorrelatedReadoutMitigator.assignment_matrix" signature="CorrelatedReadoutMitigator.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** (`Optional`\[`List`\[`int`]]) – Optional, qubits being measured.
|
||
|
||
**Returns**
|
||
|
||
the assignment matrix A.
|
||
|
||
**Return type**
|
||
|
||
np.ndarray
|
||
</Function>
|
||
|
||
### expectation\_value
|
||
|
||
<Function id="qiskit.result.CorrelatedReadoutMitigator.expectation_value" signature="CorrelatedReadoutMitigator.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** (`Union`\[`Callable`, `dict`, `str`, `ndarray`, `None`]) – Optional, the vector of diagonal values for summing the expectation value. If `None` the the default value is $[1, -1]^\otimes n$.
|
||
* **qubits** (`Optional`\[`Iterable`\[`int`]]) – Optional, the measured physical qubits the count bitstrings correspond to. If None qubits are assumed to be $[0, ..., n-1]$.
|
||
* **clbits** (`Optional`\[`List`\[`int`]]) – Optional, if not None marginalize counts to the specified bits.
|
||
* **shots** (`Optional`\[`int`]) – 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. 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" signature="CorrelatedReadoutMitigator.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** (`Optional`\[`List`\[`int`]]) – 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" signature="CorrelatedReadoutMitigator.quasi_probabilities(data, qubits=None, clbits=None, shots=False)">
|
||
Compute mitigated quasi probabilities value.
|
||
|
||
**Parameters**
|
||
|
||
* **data** ([`Counts`](qiskit.result.Counts "qiskit.result.counts.Counts")) – counts object
|
||
* **qubits** (`Optional`\[`List`\[`int`]]) – qubits the count bitstrings correspond to.
|
||
* **clbits** (`Optional`\[`List`\[`int`]]) – Optional, marginalize counts to just these bits.
|
||
* **shots** (`Optional`\[`bool`]) – the number of shots.
|
||
|
||
**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**
|
||
|
||
QuasiDistibution
|
||
</Function>
|
||
|
||
### stddev\_upper\_bound
|
||
|
||
<Function id="qiskit.result.CorrelatedReadoutMitigator.stddev_upper_bound" signature="CorrelatedReadoutMitigator.stddev_upper_bound(shots)">
|
||
Return an upper bound on standard deviation of expval estimator.
|
||
|
||
**Parameters**
|
||
|
||
**shots** (`int`) – Number of shots used for expectation value measurement.
|
||
|
||
**Returns**
|
||
|
||
the standard deviation upper bound.
|
||
|
||
**Return type**
|
||
|
||
float
|
||
</Function>
|
||
|
||
## Attributes
|
||
|
||
### qubits
|
||
|
||
<Attribute id="qiskit.result.CorrelatedReadoutMitigator.qubits">
|
||
The device qubits for this mitigator
|
||
|
||
**Return type**
|
||
|
||
`Tuple`\[`int`]
|
||
</Attribute>
|
||
|
||
### settings
|
||
|
||
<Attribute id="qiskit.result.CorrelatedReadoutMitigator.settings">
|
||
Return settings.
|
||
|
||
**Return type**
|
||
|
||
`Dict`
|
||
</Attribute>
|
||
</Class>
|
||
|