qiskit.ignis.mitigation.TensoredExpvalMeasMitigator
class TensoredExpvalMeasMitigator(amats)
1-qubit tensor product measurement error mitigator.
This class can be used with the qiskit.ignis.mitigation.expectation_value()
function to apply measurement error mitigation of local single-qubit measurement errors. Expectation values can also be computed directly using the expectation_value()
method.
For measurement mitigation to be applied the mitigator should be calibrated using the qiskit.ignis.mitigation.expval_meas_mitigator_circuits()
function and qiskit.ignis.mitigation.ExpvalMeasMitigatorFitter
class with the 'tensored'
mitigation method.
Initialize a TensorMeasurementMitigator
Parameters
amats (List
[ndarray
]) – list of single-qubit readout error assignment matrices.
__init__
__init__(amats)
Initialize a TensorMeasurementMitigator
Parameters
amats (List
[ndarray
]) – list of single-qubit readout error assignment matrices.
Methods
__init__ (amats) | Initialize a TensorMeasurementMitigator |
assignment_fidelity ([qubits]) | Return the measurement assignment fidelity on the specified qubits. |
assignment_matrix ([qubits]) | Return the measurement assignment matrix for specified qubits. |
expectation_value (counts[, diagonal, …]) | Compute the mitigated expectation value of a diagonal observable. |
mitigation_matrix ([qubits]) | Return the measurement mitigation matrix for the specified qubits. |
mitigation_overhead ([qubits]) | Return the mitigation overhead for expectation value estimation. |
plot_assignment_matrix ([qubits, ax]) | Matrix plot of the readout error assignment matrix. |
plot_mitigation_matrix ([qubits, ax]) | Matrix plot of the readout error mitigation matrix. |
required_shots (delta[, qubits]) | Return the number of shots required for expectation value estimation. |
stddev_upper_bound ([shots, qubits]) | Return an upper bound on standard deviation of expval estimator. |
assignment_fidelity
assignment_fidelity(qubits=None)
Return the measurement assignment fidelity on the specified qubits.
The assignment fidelity on N-qubits is defined as , where , and is the assignment_matrix()
.
Parameters
qubits (Optional
[List
[int
]]) – Optional, qubits being measured for operator expval.
Returns
the assignment fidelity.
Return type
float
assignment_matrix
assignment_matrix(qubits=None)
Return the measurement assignment matrix for specified qubits.
The assignment matrix is the stochastic matrix which assigns a noisy measurement probability distribution to an ideal input measurement distribution: .
Parameters
qubits (Optional
[List
[int
]]) – Optional, qubits being measured for operator expval.
Returns
the assignment matrix A.
Return type
np.ndarray
expectation_value
expectation_value(counts, diagonal=None, qubits=None, clbits=None)
Compute the mitigated expectation value of a diagonal observable.
This computes the mitigated estimator of of a diagonal observable .
Parameters
- counts (
Dict
) – counts object - diagonal (
Optional
[ndarray
]) – Optional, the vector of diagonal values for summing the expectation value. IfNone
the the default value is . - qubits (
Optional
[List
[int
]]) – Optional, the measured physical qubits the count bitstrings correspond to. If None qubits are assumed to be . - clbits (
Optional
[List
[int
]]) – Optional, if not None marginalize counts to the specified bits.
Returns
the expectation value and standard deviation.
Return type
(float, float)
Additional Information:
The diagonal observable is input using the diagonal
kwarg as a list or Numpy array . 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)
.
mitigation_matrix
mitigation_matrix(qubits=None)
Return the measurement mitigation matrix for the specified qubits.
The mitigation matrix is defined as the inverse of the assignment_matrix()
.
Parameters
qubits (Optional
[List
[int
]]) – Optional, qubits being measured for operator expval.
Returns
the measurement error mitigation matrix .
Return type
np.ndarray
mitigation_overhead
mitigation_overhead(qubits=None)
Return the mitigation overhead for expectation value estimation.
This is the multiplicative factor of extra shots required for estimating a mitigated expectation value with the same accuracy as an unmitigated expectation value.
Parameters
qubits (Optional
[List
[int
]]) – Optional, qubits being measured for operator expval.
Returns
the mitigation overhead factor.
Return type
int
plot_assignment_matrix
plot_assignment_matrix(qubits=None, ax=None)
Matrix plot of the readout error assignment matrix.
Parameters
- qubits (list(int)) – Optional, qubits being measured for operator expval.
- ax (axes) – Optional. Axes object to add plot to.
Returns
the figure axes object.
Return type
plt.axes
Raises
ImportError – if matplotlib is not installed.
plot_mitigation_matrix
plot_mitigation_matrix(qubits=None, ax=None)
Matrix plot of the readout error mitigation matrix.
Parameters
- qubits (list(int)) – Optional, qubits being measured for operator expval.
- ax (plt.axes) – Optional. Axes object to add plot to.
Returns
the figure axes object.
Return type
plt.axes
Raises
ImportError – if matplotlib is not installed.
required_shots
required_shots(delta, qubits=None)
Return the number of shots required for expectation value estimation.
This is the number of shots required so that with high probability (at least 2/3) and is given by where is the mitigation_overhead()
.
Parameters
- delta (
float
) – Error tolerance for expectation value estimator. - qubits (
Optional
[List
[int
]]) – Optional, qubits being measured for operator expval.
Returns
the required shots.
Return type
int
stddev_upper_bound
stddev_upper_bound(shots=1, qubits=None)
Return an upper bound on standard deviation of expval estimator.
Parameters
- shots (
int
) – Number of shots used for expectation value measurement. - qubits (
Optional
[List
[int
]]) – qubits being measured for operator expval.
Returns
the standard deviation upper bound.
Return type
float