Skip to Content

密度矩阵与噪声模型

需要模拟混态或噪声时使用 execute_density():

import numpy as np from unitarylab import Circuit qc = Circuit(2) qc.h(0) qc.cx(0, 1) result = qc.execute_density(device="cpu", dtype=np.complex128) print(result.state) print(result.trace) print(result.purity) print(result.probabilities)
execute_density(initial_state=None, device="cpu", dtype=np.complex128, noise_model=None)

initial_state 可以是 None、状态向量、密度矩阵或 DensityMatrixState。DensityMatrixResult 提供状态、迹、纯度、概率和期望值查询。

属性或方法说明
state最终密度矩阵
trace,有效量子态应接近 1
purity;纯态接近 1,混态小于 1
probabilities、probability()计算基概率
marginal_probabilities()指定量子比特的边际概率
expectation()可观测量期望值

输入密度矩阵维度必须为 ,应满足厄米、半正定且迹为 1。状态向量输入会先转换为 。

噪声模型

from unitarylab.backend import AmplitudeDamping, BitFlip, NoiseModel, NoiseOperator noise_model = NoiseModel([ NoiseOperator(BitFlip(0.02), gate_ids=("x", "rx")), NoiseOperator(AmplitudeDamping(0.05), qubits=(1,)), ]) noisy_result = qc.execute_density(noise_model=noise_model)

内置通道还包括 PhaseFlip、DepolarizingNoise 和 PhaseDamping。规则在匹配的 primitive gate 后应用;qubits 只匹配目标比特,gate_ids=None 匹配所有实体 primitive gate。

通道主要参数典型用途
BitFlip(p)翻转概率 p位翻转误差
PhaseFlip(p)相位翻转概率 p相位错误
DepolarizingNoise(p)退极化概率 p对称 Pauli 噪声
AmplitudeDamping(gamma)衰减率 gamma能量弛豫
PhaseDamping(gamma)衰减率 gamma退相干

概率和衰减参数必须位于有效范围。多条匹配规则会按配置顺序应用,增加规则可能改变最终通道组合。

当前密度矩阵后端不支持线路测量、状态坍缩或 shots/counts,也不支持公开自定义 Kraus 通道、门前噪声、相关多比特噪声或 readout error。CUDA 密度矩阵后端需要安装 unitarylab[cuda]。

密度矩阵包含 个复数元素,通常比状态向量消耗更多内存。建议先在少量量子比特上验证噪声规则,并同时保留无噪声结果作为基线。

相关页面

最后更新于