ResultIR¶
from cascaqit import ResultIR
ResultIR ¶
ResultIR(
result_id: str,
program_hash: str,
target_id: str,
shots: int,
counts: dict[str, int],
samples: tuple[str, ...],
probabilities: dict[str, float] | None = None,
measurement_results: tuple[
MeasurementResultIR, ...
] = (),
state_result: StateResultIR | None = None,
observables: dict[str, Any] = dict(),
observable_batch: ObservableBatchResultIR | None = None,
bit_ordering: dict[str, Any] = (
lambda: {
"convention": UNSPECIFIED_BIT_ORDER_CONVENTION
}
)(),
occupation_encoding: OccupationEncoding = OccupationEncoding(),
diagnostics: tuple[DiagnosticsIR, ...] = (),
schema_version: str = SCHEMA_VERSION,
metadata: dict[str, Any] = dict(),
)
保存一次程序执行返回的数据。通常由 Circuit.run()、AHSProgram.run() 或 LocalBackend 的 job.result() 获得。直接构造时,result_id、program_hash、target_id 标识结果与来源,shots、counts、samples 保存采样;它们由调用方提供,构造对象不会运行或认证一场实验。
probabilities 是可选的状态概率,未请求或当前结果没有此数据时为 None;它不等于 counts/shots。observable_batch 保存带估计器信息的观测量结果,observables 为其他已有标量/元数据;bit_ordering 和 occupation_encoding 说明位序及占据编码。diagnostics 保存诊断,metadata 保存执行配置、来源和其他记录。
一个显式测量寄存器时,顶层 counts、samples、probabilities 与该寄存器一致;多个寄存器时,顶层 counts 和 samples 必须为空、probabilities 为 None,按 key 读取各寄存器。state_result 可单独保留完整态的数据,不能把局部测量概率当作全态概率。
from cascaqit import Circuit, ResultIR
result = Circuit(2).x(0).measure((1, 0), key="reordered").run(shots=16, seed=7)
assert result.measurement("reordered").counts == {"01": 16}
restored = ResultIR.from_json(result.to_json())
assert restored.stable_hash() == result.stable_hash()
读取顺序见数字执行记录。解释含噪 probabilities、counts 和观测量时,还需区分读出前的状态与读出后的记录。
返回指定 key 的 MeasurementResultIR。只有一个显式寄存器时可省略 key。没有寄存器、多寄存器但省略 key、或 key 不唯一时抛出 ValueError;未知 key 抛出 KeyError。
有记录时返回 SimulationExecutionConfigIR,否则为 None。读取实际保存的执行配置,不根据当前机器重新生成计划。
有记录时返回 SimulationResourceUsageIR,否则为 None。具体字段可能是估计内存、状态数组大小或实际记录,应按字段定义区分,不能统称为进程峰值内存。
返回已记录的 SimulationSolverEvidenceIR 或 None,用于读取积分器、步数及误差控制记录。没有记录不等于误差为零;此方法不重新计算轨迹。
返回已保存的 StateTransitionIR 元组。没有记录时为空;它们描述记录到的状态交接,不会重建缺失的中间态数组。
按 Analog 块顺序返回 InteractionReportIR 元组,用于查看实际相互作用配置、几何及原子对摘要。无记录时返回空元组。
无相互作用报告时返回 None,恰好一个时返回该报告。多个 Analog 报告会抛出 ValueError,此时使用 interaction_reports。
读取 metadata 内的附件引用,返回 ArtifactRefIR 元组。它不加载引用位置的文件内容。
返回新的 ResultIR,用 artifacts 替换 metadata 中的附件引用列表,而不是追加。它保存引用,不写附件文件,也不上传数据。
返回序列化字典。空 measurement_results、缺失 state_result 和缺失 observable_batch 会省略,保持未出现字段的序列化约定;其他数据按当前结果保存。
返回 JSON 字符串。indent=None 时为稳定的紧凑格式,提供 indent 可格式化;方法不写文件。
返回序列化结果的 SHA-256 摘要,涵盖保存的数据与元数据。用于识别结果内容,不证明实验正确性;附加元数据也可能改变哈希。
从字典还原 ResultIR。还原测量、全态、观测量与诊断,并检查单/多寄存器字段的一致性。 缺少必需字段或字段不合法时可能抛出 KeyError、TypeError 或 ValueError。
解析 JSON 对象并调用 from_dict(),返回 ResultIR。非法 JSON 会抛出解析错误;顶层不是对象时抛出 TypeError。