SWAP 检验(Swap Test)¶
English · 简体中文
类别 C3 · 模块
oracq.algorithms.common.estimation· 阶段 V2
概述¶
测量两个纯态的重叠模方 \(F=|\langle a|c\rangle|^2\):受控交换把两态的对称分量干涉到探针上,
该操作不执行测量;采样与统计由宿主完成。
接口与输入模型¶
swap_test(first, second)
API 入口:swap_test
first/second:两个同宽态的制备(SP),要求零输入与干净工作区(checked_state_preparation契约,生成期检查)。宽度不一致抛ValidationError。
返回 Operation,寄存器为 left、right、left_work、right_work、probe。模块属性:
属性 |
含义 |
|---|---|
|
|
|
|
实现要点¶
两个制备只正向调用;条件交换(swap 于 control(probe) 之下)由算法生成。left/right 各带独立的 work 寄存器,复净由 SP 契约保证——标注 clean_work=False 的脏制备在生成期被拒绝。读出按上式从 probe 零概率解码 \(F\)。
验证方案¶
类别 C3(判定准则见 docs/development/validation-plan.md §2:输出分布等于闭式期望)。三层证据与 docs/development/validation-coverage.md 的 estimation.py 行一致:
结构:
tests/core/test_algorithm_expansion.py:AlgorithmExpansionTests,其中test_measurement_algorithms_require_clean_preparation覆盖脏制备拒绝路径(clean_work=False抛ValidationError)。数值:
AlgorithmExpansionTests.test_swap_test_overlap——basis_state(1, 0)与basis_state(1, 1)两两组合:同一基态(\(F=1\))时 \(P(\text{probe}=0)=1\),正交基态(\(F=0\))时为 \(1/2\),places=10。绑定:模块行登记为"—"。
见证技术为精确态矢量模拟取 probe 边际分布后对拍闭式,无采样断言。
已知缺口与计划阶段¶
本算法无单独缺口;estimation.py 登记的唯一缺口属于 QAE 的置信区间声明(见振幅估计),模块整体处于阶段 V2。
相关链接¶
源码:
src/oracq/algorithms/common/estimation.pyAPI 参考:相位、振幅与重叠估计
同组页面:Hadamard 检验(单酉期望的对应读出)
验证矩阵:验证覆盖矩阵
数值验证¶
tests/verification/verify_estimation.py 在真实后端上对本接口做概率级数值验证(共 4 个案例,全部通过)。实验设计:
实例:
gate_state_prep制备的纯态对,覆盖 \(F=1\)(同态)、\(F\approx 0\)(正交)、\(F=0.36\)(部分重叠)与双比特态 \(F=0.125\);重叠 \(F=|\langle a|c\rangle|^2\) 由 numpy 对输入幅度向量独立计算。后端路径:reference、rir-pysparq、adapter-pysparq、originir-ext 四条;\(P(\text{probe}=0)\) 对照 \((1+F)/2\)。
案例 |
规模 |
路径 |
指标值 |
|---|---|---|---|
同态 \((0.6,0.8)\) |
各 1 位 |
全部四条 |
\(F=1\),\(P(0)=1\),误差 \(2.2\times10^{-16}\) |
正交 \((0.6,0.8)\) vs \((0.8,-0.6)\) |
各 1 位 |
全部四条 |
\(F\approx 0\),\(P(0)=0.5\),误差 \(1.1\times10^{-16}\) |
部分重叠 $ |
0\rangle\( vs \)(0.6,0.8)$ |
各 1 位 |
全部四条 |
双比特态 |
各 2 位 |
全部四条 |
\(F=0.125\),\(P(0)=0.5625\),误差 \(1.1\times10^{-16}\) |
复现命令:
PYTHONPATH=src /home/agony/projects/qcfd-dev/quantum-cfd-software/.venv/bin/python tests/verification/verify_estimation.py
产物路径:out/verification/estimation.json(案例名前缀 swap-test-)。