跳转至

ReadoutMitigationConfig

from cascaqit import ReadoutMitigationConfig

ReadoutMitigationConfig

ReadoutMitigationConfig(
    calibration: ReadoutCalibration,
    method: Literal[
        "tensor_product_linear_inverse"
    ] = "tensor_product_linear_inverse",
    max_condition_number: float = 100.0,
    schema_version: str = READOUT_MITIGATION_SCHEMA_VERSION,
)

对有限采样 Pauli 估计启用逐比特线性逆读出误差缓解。calibration 必须是显式 ReadoutCalibration;method 当前只支持 tensor_product_linear_inverse。max_condition_number 必须为有限正数,默认 100,同时限制单比特响应矩阵与完整张量积响应的条件数。奇异矩阵、非有限条件数或超出上限会在构造时被拒绝。

运行时要求校准 logical_order 与被测程序完全相同,只有比特集合相同但顺序不同也不行。估计器按 g = A**(-T) f 修正每个观测样本的权重,保留同组项的协方差;它不改写后端原始计数。有限样本下,修正权重可以为负,Pauli 估计也可能超出 [-1, 1],不能当作非法原始概率直接裁剪。

逆变换可能放大方差。是否减小误差依赖校准是否准确、是否适用和采样量;它不会消除门误差或模拟误差,也不会自动计入校准本身的不确定度。

from cascaqit import (HamiltonianTerm, NoiseChannel, NoiseModel, PauliHamiltonian,
                      PauliMeasurementConfig, PauliZ, ReadoutCalibration,
                      ReadoutMitigationConfig, VQE)

vqe = VQE(PauliHamiltonian("z", (HamiltonianTerm("z", 1.0, PauliZ("q0")),),
                           logical_order=("q0",)))
noise = NoiseModel("readout", (NoiseChannel.readout(0.1, p10=0.05),))
calibration = ReadoutCalibration.from_probabilities(
    logical_order=("q0",), p01=0.1, p10=0.05, source="teaching_simulation")
config = ReadoutMitigationConfig(calibration)
raw = vqe.evaluate_sampled((0.3, 0.1), seed=7, noise=noise,
                          measurement=PauliMeasurementConfig(shots_per_group=64))
corrected = vqe.evaluate_sampled((0.3, 0.1), seed=7, noise=noise,
    measurement=PauliMeasurementConfig(shots_per_group=64, mitigation=config))
assert raw.group_results[0].counts == corrected.group_results[0].counts
assert corrected.mitigated_energy is not None
assert corrected.raw_energy == raw.energy

from_dict

from_dict(
    data: Mapping[str, Any],
) -> ReadoutMitigationConfig

从字典还原 ReadoutMitigationConfig。必须提供嵌套 calibration,恢复时同时核对校准摘要、矩阵可逆性和条件数上限。 缺少必需字段或字段不合法时可能抛出 KeyError、TypeError 或 ValueError。

from_json

from_json(text: str) -> ReadoutMitigationConfig

解析 JSON 对象并调用 from_dict(),返回 ReadoutMitigationConfig。非法 JSON 会抛出解析错误;顶层不是对象时抛出 TypeError。

to_dict

to_dict() -> dict[str, Any]

返回可写入 JSON 的字典,嵌套对象一并序列化。元组转成数组;这个字典是保存的声明,不是执行结果。

to_json

to_json(*, indent: int | None = None) -> str

返回 JSON 字符串,不写文件。indent=None 使用紧凑格式;提供缩进宽度可便于阅读。

stable_hash

stable_hash() -> str

返回规范 JSON 的 SHA-256 十六进制摘要。字段、标识或元数据变化都可能改变摘要;它用于比较保存内容,不判断两个声明在物理上是否等价。