密度矩阵指数化(Density Matrix Exponentiation)¶
English · 简体中文
类别 C3 · 模块
oracq.algorithms.qml.qpca· 阶段 V1
概述¶
给定密度矩阵 \(\rho\) 的拷贝供应,在系统寄存器上近似实现 \(e^{-i\rho t}\)。实现依据 Lloyd–Mohseni–Rebentrost 2014("Quantum principal component analysis", Nature Physics 10, 631)的 LMR 协议:利用 SWAP 算符的本征值结构,对一份 \(\rho\) 拷贝与系统做部分交换 \(e^{-i\Delta t\cdot\mathrm{SWAP}}\),丢弃拷贝后系统上的有效通道即 \(e^{-i\rho\Delta t}\) 的一阶近似,单步误差 \(O(\Delta t^2)\);copies 份拷贝串联给出总时间 \(t = \mathrm{copies}\cdot\Delta t\),一阶误差 \(O(t\cdot\Delta t)\) 随拷贝数线性下降。
该原语是 QPCA 主成分分析相位估计的酉步来源。
接口与输入模型¶
density_matrix_exponentiation(preparation, *, time, copies, swap_width=None, name=None)
API 入口:density_matrix_exponentiation
preparation:\(\rho\) 拷贝的态制备(StatePreparation),input model 为 SP + QRAM:纯态用gate_state_prep(amplitudes),混合态经density.gate_purification(rho)的PurificationAccess.as_state_preparation()适配(target = system ⊕ environment,零 work);制备必须零 work,非零 work 在生成期抛ValidationError。time:总演化时间 \(t\),必须为正的有限实数。copies:拷贝数,范围 1..63;每步 \(\Delta t = t/\mathrm{copies}\)。swap_width:参与交换的前缀位宽,缺省为制备的整个 target;纯化场景应取 \(\rho\) 的系统位宽,环境位留在拷贝中不参与交换(效果等同于取偏迹)。
返回 Operation,寄存器为 system(swap_width 位)与 copies(copies × 制备宽度)。系统的输入态由调用方准备;拷贝寄存器从全零由制备 oracle 填充。模块属性:
属性 |
含义 |
|---|---|
|
|
|
拷贝数 |
|
单步时长 \(\Delta t = t/\mathrm{copies}\) |
|
|
|
|
实现要点¶
部分交换按恒等式 \(\mathrm{XX}+\mathrm{YY}+\mathrm{ZZ} = 2\cdot\mathrm{SWAP} - I\) 精确分解:三个轴的 Pauli 对旋转 \(e^{-i(\Delta t/2)\,P\otimes P}\) 相互可交换、逐轴逐位施加;单轴旋转基于奇偶校验(XOR–Rz–XOR),\(y\) 轴经 \(R_x(\pi/2)\) 共轭切换基,\(I\) 分量以全局相位 \(-\Delta t/2\) 修正。
生成链为:第 \(k\) 份拷贝从全零由制备 oracle 填充 → system 与该拷贝的前 swap_width 位逐位施加角度 \(\Delta t\) 的部分交换。寄存器布局 system | copies,第 \(k\) 份拷贝占位段 \([k\cdot w, (k+1)\cdot w)\)(\(w\) 为制备宽度)。
设计决策:算法只要求拷贝可重复制备——多拷贝即对制备 oracle 的多次调用,\(\rho\) 的矩阵元素无需显式给出,这是 QRAM 系 QML 的资源前提。丢弃拷贝即对拷贝寄存器取偏迹,纯化的环境位保持纠缠留在拷贝中。适用边界:一阶近似,需要更高精度时增加 copies(减小 \(\Delta t\)),误差标度见 error_scaling 属性。
验证方案¶
类别 C3(概率分布语义,判定准则见 ../development/validation-plan.md §2):丢弃拷贝后的系统态须在迹距离上逼近闭式期望。三层证据:
结构:
tests/core/test_qpca.py:QpcaTests.test_invalid_inputs_fail_at_generation覆盖指数化入口的time = 0、copies = 0、非StatePreparation输入等生成期违例。数值:
test_small_step_first_order_accurate——\(\rho = |+\rangle\langle+|\)、单步 \(\Delta t = 0.05\) 作用在 \(|0\rangle\) 上,丢弃拷贝后与精确 \(e^{-it\,|+\rangle\langle+|}\) 作用的迹距离 \(< 0.6\cdot\Delta t^2\)(\(\Delta t\) 一阶收敛率,实测系数约 0.53);test_error_halves_with_copies——固定总时间 \(t = 0.4\)、copies = 1, 2, 4,迹距离逐级下降且每级 \(< 0.6\times\) 前级(copies 翻倍即 \(\Delta t\) 减半,误差近似减半)。绑定:混合态的 DM 输入经
gate_purification(...).as_state_preparation()适配为 SP 进入电路,由QpcaTests.test_mixed_state_eigenvalue_via_purification见证(见 QPCA 主成分分析)。
已知缺口与计划阶段¶
无已知缺口,阶段 V1 见证已齐(\(\Delta t\) 一阶率 + copies 翻倍误差减半标度 + 纯化适配路径)。按 validation-plan §5 的 V3 计划,QPCA 模块待登记 catalog 案例并接入真实后端对拍。
相关链接¶
源码:
src/oracq/algorithms/qml/qpca.py同模块页面:QPCA 主成分分析
API 参考:QPCA 量子主成分分析
验证矩阵:验证覆盖矩阵
数值验证¶
论文级数值实验见 tests/verification/verify_misc_algorithms.py(misc_algorithms 组),全部在真实后端上执行。
实验设计:两个密度矩阵指数化案例——(a) 纯态 \(\rho = \lvert+\rangle\langle+\rvert\)(gate_state_prep,总时间 \(t = 0.4\));(b) 混合态 \(\rho = \mathrm{diag}(0.75, 0.25)\)(gate_purification 纯化适配、swap_width = 1,\(t = 0.5\))。系统初态均为 \(\lvert 0\rangle\langle 0\rvert\),拷贝数 copies = 1/2/4(最多 9 量子位)。经典预言机为 numpy 特征分解的精确演化 \(e^{-i\rho t}\sigma e^{i\rho t}\)(与被测实现完全独立)。后端路径:reference(内置参考执行器)、rir-pysparq(PySparQ 原生 RIR)、adapter-pysparq(PySparQ 适配器)、originir-ext(UniQC 全振幅态向量),逐振幅与偏迹后密度矩阵两级对拍。
关键指标:
案例 |
规模 |
路径 |
迹距离(copies = 1/2/4) |
误差比率 |
跨后端偏差 |
|---|---|---|---|---|---|
dm-exponentiation-pure-convergence |
t = 0.4,≤5 量子位 |
四路径全振幅对拍 |
8.55e-2 / 4.34e-2 / 2.20e-2 |
0.508 / 0.507 |
≤ 2.1e-16 |
dm-exponentiation-mixed-convergence |
t = 0.5,≤9 量子位 |
四路径全振幅对拍 |
5.75e-2 / 2.97e-2 / 1.52e-2 |
0.516 / 0.512 |
≤ 3.3e-16 |
copies 翻倍(即 \(\Delta t\) 减半)时迹距离比率稳定在约 0.51,直接观测到 LMR 协议的一阶收敛标度 \(O(t\cdot\Delta t)\);四条后端路径在机器精度内一致。
复现:
PYTHONPATH=src /home/agony/projects/qcfd-dev/quantum-cfd-software/.venv/bin/python tests/verification/verify_misc_algorithms.py
产物:out/verification/misc_algorithms.json(24 个案例全过,本页对应 dm-exponentiation-* 两个案例)。