Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

CTMPExpvalMeasMitigator

class CTMPExpvalMeasMitigator(generators, rates, num_qubits=None, seed=None)

GitHub

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 x{0,1}nP(xx)/2n\sum_{x\in\{0, 1\}^n} P(x|x) / 2^n, where P(xx)=xAxP(x|x) = \rangle x|A|x\langle, and AA 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 AA which assigns a noisy measurement probability distribution to an ideal input measurement distribution: P(ij)=iAjP(i|j) = \langle i | A | j \rangle.

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 O=Tr[ρ.O]\langle O \rangle = \text{Tr}[\rho. O] of a diagonal observable O=x{0,1}nO(x)x ⁣xO = \sum_{x\in\{0, 1\}^n} O(x)|x\rangle\!\langle x|.

Parameters

  • counts (Dict) – counts object
  • diagonal (Optional[ndarray]) – Optional, the vector of diagonal values for summing the expectation value. If None the the default value is [1,1]n[1, -1]^\otimes n.
  • qubits (Optional[List[int]]) – Optional, the measured physical qubits the count bitstrings correspond to. If None qubits are assumed to be [0,...,n1][0, ..., n-1].
  • 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 OO is input using the diagonal kwarg as a list or Numpy array [O(0),...,O(2n1)][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).

generator_matrix

CTMPExpvalMeasMitigator.generator_matrix(qubits=None)

Return the generator matrix on the specified qubits.

The generator matrix GG is given by iriGi\sum_i r_i G_i where the sum is taken over all GiG_i acting on the specified qubits subset.

Parameters

qubits (Optional[List[int]]) – Optional, qubit subset for the generators.

Returns

the generator matrix GG.

Return type

sps.coo_matrix

mitigation_matrix

CTMPExpvalMeasMitigator.mitigation_matrix(qubits=None)

Return the measurement mitigation matrix for the specified qubits.

The mitigation matrix A1A^{-1} is defined as the inverse of the assignment_matrix() AA.

Parameters

qubits (Optional[List[int]]) – Optional, qubits being measured for operator expval.

Returns

the measurement error mitigation matrix A1A^{-1}.

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 gammagamma 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 OestOtrue<δ|\langle O \rangle_{est} - \langle O \rangle_{true}| < \delta with high probability (at least 2/3) and is given by 4δ2Γ24\delta^2 \Gamma^2 where Γ2\Gamma^2 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

Was this page helpful?
Report a bug or request content on GitHub.