tensorcircuit.results.readout_mitigation#

readout error mitigation functionalities

class tensorcircuit.results.readout_mitigation.ReadoutMit(execute: Callable[[...], List[Dict[str, int]]], iter_threshold: int = 4096)[源代码]#

基类:object

__init__(execute: Callable[[...], List[Dict[str, int]]], iter_threshold: int = 4096)[源代码]#

The Class for readout error mitigation

参数
  • 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: Optional[Dict[int, int]] = None, logical_physical_mapping: Optional[Dict[int, int]] = None, distance: Optional[int] = 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][源代码]#

Main readout mitigation program for all methods.

参数
  • 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][源代码]#

Main readout mitigation program for method="inverse" or "square"

参数
  • raw_count (ct) -- the raw count

  • method (str, optional) -- mitigation method, defaults to "inverse"

返回

mitigated count

返回类型

ct

cals_from_api(qubits: Union[int, List[int]], device: Optional[str] = None) None[源代码]#

Get local calibriation matrix from cloud API from tc supported providers

参数
  • 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: Union[int, List[int]], shots: int = 8192, method: str = 'local', masks: Optional[List[str]] = None) None[源代码]#

Get calibrattion information from system.

参数
  • 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: Optional[Sequence[int]] = None, diagonal_op: Optional[Any] = None, positional_logical_mapping: Optional[Dict[int, int]] = None, logical_physical_mapping: Optional[Dict[int, int]] = None, method: str = 'constrained_least_square') float[源代码]#

Calculate expectation value after readout error mitigation

参数
  • 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"

返回

expectation value after readout error mitigation

返回类型

float

get_matrix(qubits: Optional[Sequence[Any]] = None) Any[源代码]#

Calculate cal_matrix according to use qubit list.

参数

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

返回

cal_matrix

返回类型

Tensor

global_miti_readout_circ() List[tensorcircuit.circuit.Circuit][源代码]#

Generate circuits for global calibration.

返回

circuit list

返回类型

List[Circuit]

local_miti_readout_circ() List[tensorcircuit.circuit.Circuit][源代码]#

Generate circuits for local calibration.

返回

circuit list

返回类型

List[Circuit]

local_miti_readout_circ_by_mask(bsl: List[str]) List[tensorcircuit.circuit.Circuit][源代码]#
mapping_preprocess(counts: Dict[str, int], qubits: Sequence[int], positional_logical_mapping: Optional[Dict[int, int]] = None, logical_physical_mapping: Optional[Dict[int, int]] = None) Dict[str, int][源代码]#

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

参数
  • 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

返回

counts on self.use_qubit(physical)

返回类型

ct

mitigate_probability(probability_noise: Any, method: str = 'inverse') Any[源代码]#

Get the mitigated probability.

参数
  • probability_noise (Tensor) -- probability of raw count

  • method (str, optional) -- mitigation methods, defaults to "inverse", it can also be "square"

返回

mitigated probability

返回类型

Tensor

newrange(m: int, qubits: Optional[Sequence[Any]]) int[源代码]#

Rerange the order according to used qubit list.

参数
  • m (int) -- index

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

返回

new index

返回类型

int

reduced_cal_matrix(counts, qubits, distance=None)[源代码]#
ubs(i: int, qubits: Optional[Sequence[Any]]) int[源代码]#

Help omit calibration results that not in used qubit list.

参数
  • i (int) -- index

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

返回

omitation related value

返回类型

int