Shortcuts

qiskit.ignis.mitigation.CTMPExpvalMeasMitigator

class CTMPExpvalMeasMitigator(generators, rates, num_qubits=None, seed=None)[source]

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

__init__(generators, rates, num_qubits=None, seed=None)[source]

Initialize a TensorMeasurementMitigator

Methods

__init__(generators, rates[, num_qubits, seed])

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.

generator_matrix([qubits])

Return the generator matrix on the specified qubits.

mitigation_matrix([qubits])

Return the measurement mitigation matrix for the specified qubits.

mitigation_overhead([qubits])

Return the mitigation overhead for expectation value estimation.

noise_strength([qubits])

Return the noise strength \(gamma\) on the specified qubits

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.

seed([value])

Set the seed for the quantum state RNG.

stddev_upper_bound([shots, qubits])

Return an upper bound on standard deviation of expval estimator.

assignment_fidelity(qubits=None)

Return the measurement assignment fidelity on the specified qubits.

The assignment fidelity on N-qubits is defined as \(\sum_{x\in\{0, 1\}^n} P(x|x) / 2^n\), where \(P(x|x) = \rangle x|A|x\langle\), and \(A\) 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(qubits=None)[source]

Return the measurement assignment matrix for specified qubits.

The assignment matrix is the stochastic matrix \(A\) which assigns a noisy measurement probability distribution to an ideal input measurement distribution: \(P(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(counts, diagonal=None, qubits=None, clbits=None)[source]

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
  • 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]^\otimes n\).

  • qubits (Optional[List[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.

Returns

the expectation value and 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).

generator_matrix(qubits=None)[source]

Return the generator matrix on the specified qubits.

The generator matrix \(G\) is given by \(\sum_i r_i G_i\) where the sum is taken over all \(G_i\) acting on the specified qubits subset.

Parameters

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

Returns

the generator matrix \(G\).

Return type

sps.coo_matrix

mitigation_matrix(qubits=None)[source]

Return the measurement mitigation matrix for the specified qubits.

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

Parameters

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

Returns

the measurement error mitigation matrix \(A^{-1}\).

Return type

np.ndarray

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(qubits=None)[source]

Return the noise strength \(gamma\) on the specified qubits

Return type

float

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(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(delta, qubits=None)

Return the number of shots required for expectation value estimation.

This is the number of shots required so that \(|\langle O \rangle_{est} - \langle O \rangle_{true}| < \delta\) with high probability (at least 2/3) and is given by \(4\delta^2 \Gamma^2\) where \(\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(value=None)[source]

Set the seed for the quantum state RNG.

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

You are viewing lang: English
Languages
English
Japanese
German
Korean