Heinrich 量子积分(Heinrich Quantum Integration)¶
English · 简体中文
类别 C3 · 模块
oracq.algorithms.common.integration· 阶段 V1
概述¶
估计一维定积分 \(\int_0^{L} f(x)\,dx\):把区间均匀划分为 \(N\) 个网格点,函数值量化为 \(w\) 位非负整数,先以 Heinrich 量子求和估计网格均值 \(E[v]\),再乘区间长度得到积分(复合矩形法则)。实现依据 Heinrich 2002("Quantum Summation with an Application to Integration", J. Complexity 18(1),另见 Novak 2001 的函数类量子求积率)。
积分估计是量子求和的直接组装:读出侧仍以比较器构造保证好状态概率对函数值严格线性,对标记做标准振幅估计,查询复杂度 \(O(1/\varepsilon)\),相对经典 Monte Carlo 的 \(O(1/\varepsilon^2)\) 呈二次改进。求和原语本身的细节见 Heinrich 量子求和。
接口与输入模型¶
quantum_integral(database, *, precision=4, interval=1.0, name=None)
API 入口:quantum_integral
database:函数值加载器(XorDatabase,address = index、data = value),input model 为 FO + QRAM;通常由table_loader(values, data_width=None, backend="gate"|"qram")构造,函数值按v/full_scale量化(full_scale缺省取 \(2^w - 1\))。precision:相位寄存器位数,范围 1..63;QAE 估计误差量级 \(O(1/2^{\text{precision}})\)。interval:区间长度 \(L\),必须为正的有限实数。
返回 Operation,寄存器为 target、work、phase(与 quantum_sum 相同)。读出 phase 后用 integral_from_phase(value, precision, data_width, interval=1.0, full_scale=None) 解码:积分估计 \(= E[v]/\text{full\_scale} \times L\)。模块属性:
属性 |
含义 |
|---|---|
|
|
|
|
|
区间长度 \(L\) 回显 |
|
值字宽 \(w\) 与下标位数 \(n\) |
|
|
相关入口:heinrich_rate(smoothness, dimension) 给出函数类最优收敛率(确定性 \(s/d\)、随机化 \(s/d + 1/2\)、量子 \(s/d + 1\)),用于按网格规模估计离散化误差。
实现要点¶
quantum_integral 不生成新电路:它调用 quantum_sum 得到同一模块,仅把 algorithm、decoder 改写为积分版本并追加 interval 属性(经 dataclasses.replace 重建模块属性表)。因此生成链、寄存器布局(target = index(n) | threshold(w) | flag(1),work = value(w))与 Grover 迭代结构与求和完全一致。
设计决策:区间长度不进电路而只进解码器,避免在 IR 中引入浮点缩放;量化尺度 full_scale 同理留给 integral_from_phase,使同一电路可服务不同区间与量程的重解释。总误差 = 离散化误差(由网格密度与光滑性决定,收敛率见 heinrich_rate)+ QAE 估计误差(由 precision 决定)。
适用边界:仅一维、均匀网格、非负量化函数值;多维积分与自适应网格未实现。interval 必须为正,非正值在生成期抛 ValidationError。
验证方案¶
类别 C3(概率分布语义,判定准则见 ../development/validation-plan.md §2):输出分布须等于闭式期望。三层证据:
结构:
tests/core/test_integration.py:QuantumSumTests.test_quantum_integral_trapezoid_scale断言模块属性algorithm == "quantum_integral";RateTests.test_invalid_inputs_fail_at_generation覆盖interval = 0.0等参数违例在生成期抛错。数值:
test_quantum_integral_trapezoid_scale——\(f(x) = x\) 在 \([0,1]\) 上取 8 个中点网格(\(w = 4\)、precision = 4),读出解码后与量化均值闭式值对拍(delta = 0.06),并与积分真值 \(0.5\) 对拍(delta = 0.09);RateTests.test_heinrich_rate_known_values校验收敛率闭式值(\(s/d\) 系列与量子率的二次间隔)。绑定:底层加载器的三层一致性由求和侧见证覆盖(
SumPreparationTests.test_qram_binding_matches_gate与test_abstract_loader_binds,gate / qram 绑定 flag 概率逐点对拍 places = 12),积分复用同一电路无需独立绑定见证。
已知缺口与计划阶段¶
无已知缺口,阶段 V1 见证已齐(积分闭式对拍 + heinrich_rate 校验 + 三层一致性复用求和侧)。按 validation-plan §5 的 V3 计划,Heinrich 积分待登记 catalog 案例并接入真实后端对拍。
相关链接¶
源码:
src/oracq/algorithms/common/integration.py同模块页面:Heinrich 量子求和
API 参考:量子求和与积分
验证矩阵:验证覆盖矩阵
数值验证¶
论文级数值实验见 tests/verification/verify_nt_qlss_sde.py(nt_qlss_sde 组),全部在真实后端执行;经典预言机为独立经典求和与 QAE 双峰 Dirichlet 理论分布。
实验设计:(a) 4 点中点网格实例——\(f(x)=x\) 在 \([0,1]\) 上取 4 个中点、\(w=3\)(量化均值恰为 0.5)、precision 4,在 reference、rir-pysparq、adapter-pysparq 上验证完整 phase 分布对照 QAE 理论,并以 interval=2.0 重解码同一分布验证区间缩放恒等式(区间长度不进电路,只进解码器);(b) 8 点中点规范实例(核心测试同款,\(w=4\)、precision 4、14 位寄存器)在 rir-pysparq 上运行并对照 QAE 理论(reference 交叉由同结构 4 点例的三后端对拍覆盖)。两个实例的判据均含与积分真值 \(0.5\) 的偏差。
关键指标:
案例 |
规模 |
路径 |
指标 |
数值 |
|---|---|---|---|---|
quantum-integral-midpoint4 |
4 点、\(w=3\)、p 4 |
三路径 |
TVD vs QAE 理论 / 跨后端 TVD |
8.0e-15 / 7.1e-17 |
同上 |
众数估计 vs 量化真值 0.5(分辨率界 0.2244) |
0.5714(偏差 0.0714) |
||
同上 |
interval=2 缩放偏差 |
0.0 |
||
quantum-integral-midpoint8 |
8 点、\(w=4\)、p 4 |
rir-pysparq |
TVD vs QAE 理论 |
9.9e-15 |
同上 |
众数估计 vs 量化真值 / 积分真值 0.5 |
0.5333(偏差 0.0333 / 0.0333) |
复现:
PYTHONPATH=src /home/agony/projects/qcfd-dev/quantum-cfd-software/.venv/bin/python tests/verification/verify_nt_qlss_sde.py
产物:out/verification/nt_qlss_sde.json(quantum-integral-* 共 2 个案例)。