跳转至

用读出旋转观察退相干

在共享量子态的单比特 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" 标明实际使用的模拟路径,不表示退相干速率来自硬件实测。通道记录和哈希可用于核对这次执行的模型。

放大信号,或改变测量基

  1. 将退相干速率设为零。含噪声模型的运行与理想运行还可能有哪些区别?
  2. 时长不变,将速率提高到 3.0 /us,预测 P(1) 和 32 次采样中测得 1 的期望次数。
  3. 从两组程序中去掉最后一个 H。此时的 Z 测量还能区分它们的相干性吗?
核对思路

速率为零时概率一致,但执行方法和噪声模型记录仍可不同。速率为 3.0 /us 时,P(1) ≈ 0.129591,期望约测得 4.15 次 1,这不保证某次运行得到特定整数。去掉末尾 H 后,两组的 Z 布居都各占一半。退相干改变的是非对角元,这种读出看不出来。选择合适的测量基本身就是实验设计的一部分。

这里验证的是指定的本地模型,尚不能作为经校准的器件预测。四个固定时间步也不会因为记录了容差字段就变成自适应积分。噪声模型列出了支持的通道;下一课用资源规划检查不同状态表示的计算成本。

English version

SDK 1.0.8a · `6eff6362`