tensorcircuit.results.readout_mitigation¶

readout error mitigation functionalities

class tensorcircuit.results.readout_mitigation.ReadoutMit(execute: Callable[[...], List[Dict[str, int]]], iter_threshold: int = 4096)[source]¶

Bases: object

__init__(execute: Callable[[...], List[Dict[str, int]]], iter_threshold: int = 4096)[source]¶

The Class for readout error mitigation

Parameters:
  • execute (Callable[..., List[ct]]) – execute function to run the cirucit

  • iter_threshold (int, optional) – iteration threshold, defaults to 4096

apply_correction(counts: Dict[str, int], qubits: Sequence[int], positional_logical_mapping: Dict[int, int] | None = None, logical_physical_mapping: Dict[int, int] | None = None, distance: int | None = None, method: str = 'constrained_least_square', max_iter: int = 25, tol: float = 1e-05, return_mitigation_overhead: bool = False, details: bool = False) Dict[str, int][source]¶

Main readout mitigation program for all methods.

Parameters:
  • counts (ct) – raw count

  • qubits (Sequence[int]) – user-defined logical qubits to show final mitted results

  • positional_logical_mapping (Optional[Dict[int, int]], optional) – positional_logical_mapping, defaults to None.

  • logical_physical_mapping (Optional[Dict[int, int]], optional) – logical_physical_mapping, defaults to None

  • distance (int, optional) – defaults to None

  • method (str, optional) – mitigation method, defaults to “square”

  • max_iter (int, optional) – defaults to 25

  • tol (float, optional) – defaults to 1e-5

:param return_mitigation_overhead:defaults to False :type return_mitigation_overhead: bool, optional :param details: defaults to False :type details: bool, optional :return: mitigated count :rtype: ct

apply_readout_mitigation(raw_count: Dict[str, int], method: str = 'inverse') Dict[str, int][source]¶

Main readout mitigation program for method=”inverse” or “square”

Parameters:
  • raw_count (ct) – the raw count

  • method (str, optional) – mitigation method, defaults to “inverse”

Returns:

mitigated count

Return type:

ct

cals_from_api(qubits: int | List[int], device: str | None = None) None[source]¶

Get local calibriation matrix from cloud API from tc supported providers

Parameters:
  • qubits (Union[int, List[int]]) – list of physical qubits to be calibriated

  • device (Optional[str], optional) – the device str to qurey for the info, defaults to None

cals_from_system(qubits: int | List[int], shots: int = 8192, method: str = 'local', masks: List[str] | None = None) None[source]¶

Get calibrattion information from system.

Parameters:
  • qubits (Sequence[Any]) – calibration qubit list (physical qubits on device)

  • shots (int, optional) – shots used for runing the circuit, defaults to 8192

  • method (str, optional) – calibration method, defaults to “local”, it can also be “global”

expectation(counts: Dict[str, int], z: Sequence[int] | None = None, diagonal_op: Any | None = None, positional_logical_mapping: Dict[int, int] | None = None, logical_physical_mapping: Dict[int, int] | None = None, method: str = 'constrained_least_square') float[source]¶

Calculate expectation value after readout error mitigation

Parameters:
  • counts (ct) – raw counts

  • z (Optional[Sequence[int]]) – if defaults as None, then diagonal_op must be set a list of qubit that we measure Z op on

  • diagoal_op (Tensor) – shape [n, 2], explicitly indicate the diagonal op on each qubit eg. [1, -1] for z [1, 1] for I, etc.

  • positional_logical_mapping (Optional[Dict[int, int]], optional) – positional_logical_mapping, defaults to None.

  • logical_physical_mapping (Optional[Dict[int, int]], optional) – logical_physical_mapping, defaults to None

  • method (str, optional) – readout mitigation method, defaults to “constrained_least_square”

Returns:

expectation value after readout error mitigation

Return type:

float

get_matrix(qubits: Sequence[Any] | None = None) Any[source]¶

Calculate cal_matrix according to use qubit list.

Parameters:

qubits (Sequence[Any], optional) – used qubit list, defaults to None

Returns:

cal_matrix

Return type:

Tensor

global_miti_readout_circ() List[Circuit][source]¶

Generate circuits for global calibration.

Returns:

circuit list

Return type:

List[Circuit]

local_miti_readout_circ() List[Circuit][source]¶

Generate circuits for local calibration.

Returns:

circuit list

Return type:

List[Circuit]

local_miti_readout_circ_by_mask(bsl: List[str]) List[Circuit][source]¶
mapping_preprocess(counts: Dict[str, int], qubits: Sequence[int], positional_logical_mapping: Dict[int, int] | None = None, logical_physical_mapping: Dict[int, int] | None = None) Dict[str, int][source]¶

Preprocessing to deal with qubit mapping, including positional_logical_mapping and logical_physical_mapping. Return self.use_qubits(physical) and corresponding counts.

Parameters:
  • counts (ct) – raw_counts on positional_qubits

  • qubits (Sequence[int]) – user-defined logical qubits to show final mitted results

  • positional_logical_mapping (Optional[Dict[int, int]], optional) – positional_logical_mapping, defaults to None.

  • logical_physical_mapping (Optional[Dict[int, int]], optional) – logical_physical_mapping, defaults to None

Returns:

counts on self.use_qubit(physical)

Return type:

ct

mitigate_probability(probability_noise: Any, method: str = 'inverse') Any[source]¶

Get the mitigated probability.

Parameters:
  • probability_noise (Tensor) – probability of raw count

  • method (str, optional) – mitigation methods, defaults to “inverse”, it can also be “square”

Returns:

mitigated probability

Return type:

Tensor

newrange(m: int, qubits: Sequence[Any] | None) int[source]¶

Rerange the order according to used qubit list.

Parameters:
  • m (int) – index

  • qubits (Sequence[Any]) – used qubit list

Returns:

new index

Return type:

int

reduced_cal_matrix(counts, qubits, distance=None)[source]¶
ubs(i: int, qubits: Sequence[Any] | None) int[source]¶

Help omit calibration results that not in used qubit list.

Parameters:
  • i (int) – index

  • qubits (Sequence[Any]) – used qubit list

Returns:

omitation related value

Return type:

int