CTMPExpvalMeasMitigator
class CTMPExpvalMeasMitigator(generators, rates, num_qubits=None, seed=None)
Bases: qiskit.ignis.mitigation.expval.base_meas_mitigator.BaseExpvalMeasMitigator
N-qubit CTMP measurement error mitigator.
This class can be used with the qiskit.ignis.mitigation.expectation_value()
function to apply measurement error mitigation of N-qubit measurement errors caused by one and two-body error generators. 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 'CTMP'
mitigation method.
Initialize a TensorMeasurementMitigator
Methods
assignment_fidelity
CTMPExpvalMeasMitigator.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
CTMPExpvalMeasMitigator.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
CTMPExpvalMeasMitigator.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)
.
generator_matrix
CTMPExpvalMeasMitigator.generator_matrix(qubits=None)
Return the generator matrix on the specified qubits.
The generator matrix is given by where the sum is taken over all acting on the specified qubits subset.
Parameters
qubits (Optional
[List
[int
]]) – Optional, qubit subset for the generators.
Returns
the generator matrix .
Return type
sps.coo_matrix
mitigation_matrix
CTMPExpvalMeasMitigator.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
CTMPExpvalMeasMitigator.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
noise_strength
CTMPExpvalMeasMitigator.noise_strength(qubits=None)
Return the noise strength on the specified qubits
Return type
float
plot_assignment_matrix
CTMPExpvalMeasMitigator.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
CTMPExpvalMeasMitigator.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
CTMPExpvalMeasMitigator.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
seed
CTMPExpvalMeasMitigator.seed(value=None)
Set the seed for the quantum state RNG.
stddev_upper_bound
CTMPExpvalMeasMitigator.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