振幅放大(Amplitude Amplification)

English · 简体中文

类别 C3 · 模块 oracq.algorithms.common.search · 阶段 V1

概述

对任意态 oracle 的成功子空间做相干放大:设 StateOracle 的制备 \(A\) 以概率 \(a\) 产出成功态(成功条件 signal==0),迭代算子

\[ Q = A\,(2|0\rangle\langle 0|-I)\,A^\dagger\, S_{\mathrm{good}} \]

每次把成功幅度旋转约 \(2\theta\)(\(\sin^2\theta=a\))。实现依据 Brassard 等人的振幅放大框架(arXiv:quant-ph/0005055,见算法目录"实现依据"节)。它是 Grover 搜索的推广:初态不必均匀,标记信息由 signal 寄存器而非相位 oracle 承担。

接口与输入模型

amplify_success(state, *, iterations=1)

API 入口:amplify_success

  • state:支持伴随调用的 StateOracle(target/signal 接口的态 oracle;signal 指示成功子空间,属 FO 幅度型访问)。非 StateOracle 输入在生成期抛 ValidationError。

  • iterations:非负放大次数(默认 1)。次数需要结合输入成功概率选择;过多迭代可能降低成功概率(docstring 口径),本入口不自动选次。

返回 StateOracle:公开接口与输入相同,成功条件仍为 signal==0。模块属性:

属性

含义

algorithm

"amplitude_amplification"

success_condition

"signal == 0"

实现要点

先正向调用一次 \(A\) 制备初态;随后每次迭代为 reflect_zero(signal)(对 signal==0 的好子空间相位翻转,充当 \(S_{\mathrm{good}}\))→ \(A^\dagger\) → 关于 target+signal 全零态的正反射 → \(A\)。与 grover_iterate 的算子形状一致,差别只在标记来源:这里 \(S_{\mathrm{good}}\) 由 signal 寄存器本身承担,因此适用于任意来源的成功指示(如 QRAM 查询结果的判定位、算法工作区的检验位)。迭代以 repeat(iterations) 保存,不在生成或文本序列化阶段展开。

验证方案

类别 C3(判定准则见 docs/development/validation-plan.md §2:输出分布等于闭式期望)。三层证据与 docs/development/validation-coverage.md 的 search.py 行一致:

  • 结构:tests/core/test_algorithm_expansion.py:AlgorithmExpansionTests 的构造与属性断言(require_instance 校验 StateOracle、迭代次数非负)。

  • 数值:AlgorithmExpansionTests.test_amplification_of_known_quarter_probability——构造 signal 上 ry(2π/3) 的态 oracle,成功概率 \(P(\text{signal}=0)=\cos^2(\pi/3)=1/4\);默认一次迭代后 \(P(\text{signal}=0)=1\)(\(\theta=\pi/6\),一次迭代转到 \(\sin^2(3\theta)=1\)),places=10。

  • 绑定:模块行登记为"—"。

见证技术为精确态矢量模拟取 signal 边际分布后对拍闭式,无采样断言。

已知缺口与计划阶段

无已知缺口(search.py 行缺口列为"—"),阶段 V1。

相关链接

数值验证

实验设计:构造成功子空间为 signal==0 的态 oracle(target 两位均匀叠加,信号位 \(R_y(3\pi/4)\),初始成功概率 \(a=\cos^2(3\pi/8)=\sin^2(\pi/8)\approx0.1464\),故 \(\theta_a=\pi/8\)),对 amplify_success 在 \(k=0\ldots3\) 上测零信号概率,对照 \(\sin^2((2k+1)\theta_a)\),四条后端路径(reference、rir-pysparq、adapter-pysparq、originir-ext)。序列覆盖放大(\(k=1,2\) 达 \(0.8536\))与过冲回落(\(k=3\) 回 \(0.1464\))。

案例

规模

路径

指标

数值

amplify-success-curve

target 2 + signal 1,k=0..3

4 路径

成功概率最大误差

1.9e-15

各迭代数理论值:0.146447、0.853553、0.853553、0.146447,逐点复现。

复现命令:

PYTHONPATH=src /home/agony/projects/qcfd-dev/quantum-cfd-software/.venv/bin/python tests/verification/verify_search_walks.py

产物:out/verification/search_walks.json(案例 amplify-success-curve)。