用读出旋转观察退相干¶
在共享量子态的单比特 H–Analog–H 实验中加入退相干,比较含噪声概率、理想对照和解析预测。请先阅读噪声与数值精度,并在安装好的环境中运行。
先算相干性如何衰减¶
第一个 H 制备 |+⟩。Analog 时段的 Hamiltonian 为 ΩX/2,其中 Ω = 0.4 rad/us,时长 t = 0.1 us。无噪声时,这个初态只积累整体相位,最后的 H 将它还原为 |0⟩。
CASCAQit 的 NoiseChannel.dephasing(γ) 使用 1/us 为速率单位。在没有其他竞争效应时,该通道使密度矩阵的非对角元按 exp(−γt) 衰减。本例的 Bloch 向量始终沿 X 轴,驱动不会与这种衰减竞争。最后一个 H 将残余 X 相干性转换为 Z 基的布居差:
P(1) = [1 − exp(−γt)] / 2
γ = 0.3 /us,t = 0.1 us → P(1) ≈ 0.01477723
不同噪声模型或论文可能采用不同速率约定。比较参数时,应核对衰减方程;其他文献中同样写作 γ 的量可能相差两倍。
运行含噪声实验和理想对照¶
"""在连续 Hybrid 状态演化中施加 dephasing。
``NoiseModel`` 会选择含噪状态引擎,让 noise channel 直接作用于 density matrix,
而不是在得到 counts 后修改统计值。结果记录所用 method、channel 顺序和状态来源。
"""
from __future__ import annotations
import json
from cascaqit import (
AHSProgram,
AtomRegister,
Circuit,
HybridProgram,
LocalBackend,
Waveform,
)
from cascaqit.simulators import NoiseChannel, NoiseModel, SimulationOptions
def main() -> None:
"""使用 exact density-matrix dephasing 运行单 site D-A-D 程序。"""
analog = AHSProgram(
AtomRegister.line(count=1, spacing=5.0),
program_id="lesson.hybrid.noise.analog",
).drive(
rabi=Waveform.constant(0.4, duration=0.1),
detuning=Waveform.constant(0.0, duration=0.1),
phase=0.0,
)
program = (
HybridProgram("lesson.hybrid.noise")
.digital("prepare", Circuit(1).h(0))
.analog("evolve", analog)
.digital("readout_rotation", Circuit(1).h(0))
.measure_all()
)
noise = NoiseModel("lesson.hybrid.dephasing", (NoiseChannel.dephasing(0.3),))
result = (
LocalBackend(seed=104, analog_time_steps=4)
.run(
program,
noise=noise,
shots=32,
options=SimulationOptions(
method="density_matrix",
integrator="fixed_step_krylov",
max_steps=4,
),
)
.result()
)
report = result.metadata["noise_report"]
ideal = LocalBackend(seed=104, analog_time_steps=4).run(program, shots=32).result()
payload = {
"track": "hybrid_researcher",
"level": "advanced",
"lesson": "physical_noise",
"facts": {
"method": result.metadata["simulation_execution_config"]["method"],
"truthfulness": result.metadata["simulation_truthfulness"],
"channel_types": report["applied_channel_types"],
"noise_report_hash_present": len(result.metadata["noise_report_hash"])
== 64,
"probabilities": result.probabilities,
"ideal_probabilities": ideal.probabilities,
"physical_application_count": report["physical_application_count"],
"measurement_application_count": report["measurement_application_count"],
"counts_total": sum(result.counts.values()),
},
"boundaries": {
"hardware_execution": False,
"cloud_execution": False,
"network_accessed": False,
"credentials_loaded": False,
},
}
print(json.dumps(payload, sort_keys=True))
if __name__ == "__main__":
main()
python3 examples/user/tracks/hybrid_researcher/04_advanced_physical_noise_zh.py
噪声模型选择密度矩阵演化,在 Analog 程序块中施加退相干。本例的 Digital 制备门和读出门仍是理想门。对照实验使用同一个程序,但不传入噪声模型。两次运行各采样 32 次,共 64 次。
{
"boundaries": {
"cloud_execution": false,
"credentials_loaded": false,
"hardware_execution": false,
"network_accessed": false
},
"facts": {
"channel_types": [
"dephasing"
],
"counts_total": 32,
"ideal_probabilities": {
"0": 1.0,
"1": 0.0
},
"measurement_application_count": 0,
"method": "density_matrix",
"noise_report_hash_present": true,
"physical_application_count": 1,
"probabilities": {
"0": 0.9852227667742534,
"1": 0.014777233225746552
},
"truthfulness": "physical_state_evolution"
},
"lesson": "physical_noise",
"level": "advanced",
"track": "hybrid_researcher"
}
比较 probabilities 与 ideal_probabilities。含噪声的 P(1) 应符合解析预测,理想值在数值精度内为零。密度矩阵给出确定的状态概率,随后从中抽取计数时仍存在采样波动。
当采样次数为 32、P(1) ≈ 0.01478 时,测得 1 的期望次数只有约 0.47,一次都测不到的概率约为 62%。这次短实验中没有观察到错误,不能说明噪声未生效。估计小概率事件需要更多采样;验证模拟模型时,也可以直接比较状态概率。
physical_application_count=1 和 measurement_application_count=0 表示报告记录了一次演化中的通道施加,而没有测量后施加。它们不是随机跃迁次数、时间步数或出错的采样次数。truthfulness="physical_state_evolution" 标明实际使用的模拟路径,不表示退相干速率来自硬件实测。通道记录和哈希可用于核对这次执行的模型。
放大信号,或改变测量基¶
- 将退相干速率设为零。含噪声模型的运行与理想运行还可能有哪些区别?
- 时长不变,将速率提高到
3.0 /us,预测P(1)和 32 次采样中测得1的期望次数。 - 从两组程序中去掉最后一个 H。此时的 Z 测量还能区分它们的相干性吗?
核对思路
速率为零时概率一致,但执行方法和噪声模型记录仍可不同。速率为 3.0 /us 时,P(1) ≈ 0.129591,期望约测得 4.15 次 1,这不保证某次运行得到特定整数。去掉末尾 H 后,两组的 Z 布居都各占一半。退相干改变的是非对角元,这种读出看不出来。选择合适的测量基本身就是实验设计的一部分。
这里验证的是指定的本地模型,尚不能作为经校准的器件预测。四个固定时间步也不会因为记录了容差字段就变成自适应积分。噪声模型列出了支持的通道;下一课用资源规划检查不同状态表示的计算成本。