Skip to Content
文档UnitaryLab 模拟器用户手册线路执行执行线路与查看结果

执行线路与查看结果

Circuit.execute() 执行纯态模拟并返回 ExecutionResult。结果对象同时提供最终状态、概率查询、采样、期望值和线路内测量结果。

from unitarylab import Circuit qc = Circuit(2) qc.h(0) qc.cx(0, 1) result = qc.execute()
execute(initial_state=None, backend="torch", device="cpu", dtype=np.complex128, shots=1, seed=42, backend_options=None)

ExecutionResult

  • state:最终状态向量;多 shots 时对应最后一个 shot。
  • backend_state:未进行设备拷贝的后端原始状态。
  • probabilities、probability()、marginal_probabilities():完整、单项和边际概率。
  • sample():不坍缩状态的计算基采样。
  • expectation():计算可观测量期望值。
  • measure():投影测量并坍缩内部状态。
  • counts:全部 shots 的经典比特串统计。
  • classical_results_map、classical_registers:最后一个 shot 的经典测量结果。
print(result.state) print(result.probabilities) print(result.expectation("ZZ", qubits=(0, 1)))

Pauli 字符串按 qubits 给定顺序对应量子比特;概率字符串采用 little-endian,qubit 0 位于最右侧。

概率、采样与期望值

print(result.probability("00")) print(result.marginal_probabilities(qubits=[0], threshold=1e-12)) print(result.sample(shots=20, qubits=[0, 1], seed=7)) print(result.expectation("Z", qubits=[0]))
接口是否改变状态返回值
probability()否指定比特串概率
marginal_probabilities()否指定量子比特的边际分布
sample()否按最终概率分布生成的比特串列表
expectation()否Pauli 串或可观测量的期望值
measure()是投影结果,并坍缩结果对象持有的状态

查询部分量子比特时,比特串长度必须与 qubits 数量一致;Pauli 字符串长度同样必须与目标量子比特数量匹配。

测量与多次执行

qc.measure([0, 1], [0, 1]) result = qc.execute(shots=1000, seed=None) print(result.counts) # 仅会出现 00 和 11,具体次数不固定

shots > 1 时,state 和 classical_results_map 对应最后一次执行,counts 汇总全部 shots。result.measure() 会坍缩状态;只查询分布时使用 marginal_probabilities() 或 sample()。

没有在线路中添加 Circuit.measure() 时,counts 和经典寄存器结果不表示对完整状态的隐式测量。此时应使用 sample() 获取计算基采样。

后端和完整参数见执行后端与参数。

相关页面

最后更新于