Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
oracq 文档
oracq 文档

完整文档

  • 完整文档
    • 安装与环境
    • 操作、寄存器与生成过程
    • 源码结构
    • Oracle 与算子表示
    • QRAM 数据结构:指针、偏移与随机写
    • 量子数据结构与 KP 推荐系统
    • 算法自己的约定:从一个 gate 开始
    • 实现 QPDE/QODE:多种输入范式、可替换 oracle 与 protocol
    • 普通数学函数自动生成可逆量子模块
    • QFVM 输入模型与求解器替换
    • 一般 QHAM 自动生成:PDE → HAM → QCL → QODE
    • QCNN 逐行实现讲解
    • 导出与执行后端
    • 资源估计(Toffoli+Clifford+T+QRAM)
    • 命令行
    • 导入路径迁移
    • 适用范围与验证状态
  • 算法目录
    • 数据加载与输入模型(Data Loading and Input Models)
      • 态制备 Oracle(State Preparation)
      • Alias 采样制备(Alias Sampling Preparation)
      • XOR 数据库(XOR Database)
      • 图邻接 oracle(Adjacency Oracle)
      • Select-Swap QROM(Select-Swap QROM)
      • QROM 查找(QROM Lookup)
      • 块编码组合代数(Block Encoding Algebra)
      • 稀疏矩阵访问(Sparse Access)
      • 稀疏矩阵块编码(Sparse Matrix Block Encoding)
      • PREPARE–SELECT 分解(PREPARE–SELECT Decomposition)
      • 纯化访问(Purification Access)
      • Gibbs 态制备(Gibbs State Preparation)
      • 双因子分解块编码(Double Factorization)
      • 张量超收缩块编码(Tensor Hypercontraction)
    • 基础查询算法(Basic Query Algorithms)
      • Deutsch–Jozsa 查询(Deutsch–Jozsa)
      • Bernstein–Vazirani 秘密串读出(Bernstein–Vazirani)
      • Simon 采样(Simon Sampling)
    • 查询与搜索(Query and Search)
      • Grover 搜索(Grover Search)
      • 振幅放大(Amplitude Amplification)
      • Oblivious 振幅放大(Oblivious Amplitude Amplification)
      • 定点搜索(Fixed-Point Search)
      • 振幅估计(Amplitude Estimation)
      • 量子计数(Quantum Counting)
    • Fourier 与算术(Fourier and Arithmetic)
      • 量子 Fourier 变换(Quantum Fourier Transform)
      • Fourier 加法(Fourier Addition)
      • 量子求阶与因子后处理(Order Finding)
      • 模乘置换(Modular Multiplication)
      • 可逆定点算术(Fixed-Point Arithmetic)
      • 布尔网络(Boolean Networks)
    • 估计与检验(Estimation and Testing)
      • 量子相位估计(Quantum Phase Estimation)
      • Hadamard 检验(Hadamard Test)
      • SWAP 检验(Swap Test)
      • Heinrich 量子求和(Heinrich Quantum Summation)
      • Heinrich 量子积分(Heinrich Quantum Integration)
    • Hamiltonian 演化与 QSVT(Hamiltonian Evolution and QSVT)
      • Trotter 乘积公式模拟(Trotter Product-Formula Simulation)
      • 哈密顿量模拟协议(Hamiltonian Simulation Protocol)
      • QSP 相位合成(QSP Phase Synthesis)
      • QSVT 相位序列(QSVT Phase Sequence)
      • QSVT 矩阵求逆(QSVT Matrix Inversion)
      • QSVT 哈密顿模拟(QSVT Hamiltonian Simulation)
      • 量子化行走(Qubitization Walk)
      • 截断 Taylor 块编码(Truncated Taylor Block Encoding)
      • 特征态过滤(Eigenstate Filtering)
    • 量子线性系统(Quantum Linear Systems)
      • Costa 行走线性系统求解器(Costa Walk QLSS)
      • CKS Chebyshev 线性系统求解器(CKS Chebyshev QLSS)
      • VTAA-CKS 变时线性系统求解器(VTAA-CKS QLSS)
    • 微分方程(Differential Equations)
      • QODE 问题对象与协议(QODE Problem and Protocol)
      • LCHS 线性组合哈密顿模拟(Linear Combination of Hamiltonian Simulations)
      • Schrödingerization 非酉演化模拟(Schrödingerization)
      • CBMD 轮廓分解(CBMD)
      • Fokker–Planck 输入模型(Fokker–Planck Input Model)
      • Carleman 线性化(Carleman Linearization)
    • 变分与优化(Variational and Optimization)
      • 硬件高效拟设(Hardware-Efficient Ansatz)
      • VQE 测量电路(VQE Pauli Measurements)
      • MaxCut QAOA(QAOA for MaxCut)
      • 解码量子干涉(Decoded Quantum Interferometry)
      • Jordan 量子梯度估计(Jordan Quantum Gradient Estimation)
    • 量子行走(Quantum Walks)
      • 周期格点硬币行走(Coined Cycle Walk)
      • Szegedy 量子行走(Szegedy Walk)
      • MNRS 量子行走搜索(MNRS Quantum Walk Search)
    • 量子机器学习(Quantum Machine Learning)
      • QPCA 主成分分析(Quantum Principal Component Analysis)
      • 量子卷积神经网络(QCNN)
      • 密度矩阵指数化(Density Matrix Exponentiation)
    • 量子纠错(Quantum Error Correction)
      • 三位重复码(Repetition Codes)
    • 应用与基础设施(Applications and Infrastructure)
      • 量子有限体积法(Quantum Finite Volume Method, QFVM)
      • 一般量子同伦分析(General QHAM)
      • 数学函数可逆编译(Math Function Compilation)
  • 规范参考
    • 语言与算法库约定
    • RIR:模块化寄存器级中间表示
    • QRAM 内存定义(qram YAML)
    • 开放声明、能力与绑定
    • MIR 0.1:纯数学函数图
    • 一般 QHAM:从 PDE 到量子适配线性系统的推导
    • QFVM 中替换 QLSS:输入模型、QRAM 数据结构与输出契约审查
    • OriginIR-ext 与 PySparQ 审阅
  • API 参考
    • oracq 包总览
    • 基础设施 API
      • Toffoli / U3 / CZ 降低
      • OriginIR-ext 后端
      • PySparQ 后端
      • Quantikz 线路导出
      • 严格网表导出
      • 模块构造器
      • 资源估计
      • 寄存器参考执行器
      • RIR 对象
      • 寄存器布局
      • 绑定与能力分析
      • 数学函数编译入口
      • Python 数学函数前端
      • MIR 对象
      • 数学函数降低
      • 数学核生成
      • 原生实现注册
      • QRAM 指针式读写
      • QRAM YAML 内存格式
      • 宿主读出
      • RIR 序列化
      • 结构验证
    • 算法 API
      • 模乘与求阶
      • Oracle 查询算法
      • 可逆算术
      • 相位、振幅与重叠估计
      • Fourier 变换与算术
      • Hamiltonian 演化
      • 量子求和与积分
      • PREPARE-SELECT 分解
      • qsp_pyqsp
      • QSVT 标准变换
      • 搜索与振幅放大
      • solve
      • 谱线路的算子级合成优化
      • 态制备组合
      • 矩阵变换序列
      • 量子行走
      • Block encoding 组合
      • 算法契约与报告
      • Select-Swap QROM 数据加载
      • 密度矩阵输入模型与 Gibbs 态
      • 图行走搜索
      • initial
      • 算法结构协议
      • 化学低秩分解块编码
      • QODE 组装接口
      • 算子包装与基本组合
      • Oracle 声明与实现
      • PDE 模型与适配
      • 量子数据结构(qsample 与 sample-and-query)
      • QHAM
      • 稀疏访问适配
      • 谱输入输出原语与算子级优化
      • DQI 解码量子干涉优化
      • 量子梯度估计
      • 变分算法电路
      • 重复码与错误恢复
      • 量子线性系统
      • VTAA-CKS 变时线性系统求解器
      • 量子卷积神经网络
      • 量子卷积神经网络的量子构件
      • QPCA 量子主成分分析
      • 量子半定规划框架
      • KP 量子推荐系统
      • Carleman 线性化
      • 量子牛顿法
      • CBMD
      • LCHS
      • 旧版兼容入口
      • QODE 组装接口
      • 线性 ODE 输入模型
      • Schrödingerization
      • SDE/Fokker–Planck 输入模型
      • solver
      • PDE 模型与适配
      • solver
    • 领域应用 API
      • 参考工作负载目录
      • 流场与 QRAM 数据
      • 算法展示目录
      • 旧版兼容入口
      • oracle_study
      • QFVM 应用
      • QFVM 的 QMem 直连数据路径
      • QHAM PDE 示例
      • QHAM 有限闭包
      • PDE 模型与适配
      • 空间离散与经典参考
      • QHAM 推导报告
      • 结构化差分端口
      • Roe 矩阵元生成
      • Roe 经典数学公式

教程

  • 教程
    • 第一个寄存器程序
    • 给算法替换 oracle
    • 从论文访问模型到实现比较
    • 搜索一个元素,并估计成功概率
    • 提供自己的 Hamiltonian 分解
    • 为同一个线性问题替换 QODE 方法
    • 从 PDE 表达式生成 QHAM 输入
    • 组合 PDE 输入与求解实例
    • 组合线性 ODE 输入与求解实例
    • 科学计算工作流:输入模型、求解器与复现
    • 运行与修改算法展示目录

项目开发

  • 项目开发
    • 开发与验收
    • 架构范式与接口约定
    • 框架调研笔记(第一阶段)
    • 编写文档
    • Translation Glossary (中文 → English)
    • 目录整理与算法扩展面板
    • 算法研究工作流改进
    • 本版验收记录
    • 量子算法实现验证计划(审阅稿)
    • 验证覆盖矩阵
    • 量子算法覆盖工作板
Back to top
View this page

Grover 搜索(Grover Search)¶

English · 简体中文

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

概述¶

在 \(2^{\text{width}}\) 维基态空间中搜索被相位 oracle 标记的目标:每次 Grover 迭代把态向标记子空间旋转,若干次后命中概率达到峰值。实现依据 Brassard 等人的振幅放大/估计框架(arXiv:quant-ph/0005055,见算法目录"实现依据"节);迭代次数由调用方给定,本入口不自动选次。

接口与输入模型¶

grover(phase_oracle, width, *, iterations=1, preparation=None)

API 入口:grover

  • phase_oracle:标记目标基态的相位 Operation(FO,相位函数 oracle),接口为 target,可另有 work。

  • width:搜索空间的目标位宽。

  • iterations:非负迭代次数(默认 1)。

  • preparation:初态制备(SP,须支持伴随调用);省略时用 uniform_state(width)。宽度与 width 不一致抛 ValidationError。

返回 StateOracle:target 为搜索结果,signal 保留相位查询和制备的工作空间。模块属性:

属性

含义

algorithm

"grover"

iterations

迭代次数回显

validation_stage

"paradigm"

同模块的相关入口:

  • phase_from_database(database):把单输出位的 XorDatabase(QRAM 查找)适配为相位 oracle——加载、work 上 Z、卸载,产物标注 phase_oracle。

  • grover_iterate(preparation, marked):返回迭代算子 \(Q=A(2|0\rangle\langle 0|-I)A^\dagger S_{\mathrm{good}}\)(标记来自 phase_marks),供 振幅估计 组装 QPE。

实现要点¶

单次迭代为相位 oracle → \(A^\dagger\) → 关于全零态的正反射(reflect_zero,positive=True)→ \(A\);初态反射同时包括 target 与制备工作区(docstring 口径)。寄存器布局:signal 前段是相位 oracle 的 work(phase_work 位),后段是制备的 work;相位 oracle 无 work 时前段宽度为 0。迭代次数以 repeat(iterations) 保存,不在生成或文本序列化阶段展开。

产物包装为 StateOracle,可继续作为态 oracle 组合(例如 amplify_success 的输入)。适用边界:相位 oracle 的 work 须在其调用后自身复原(反射只覆盖 target 与制备工作区);迭代次数过多会越过峰值降低命中概率,与 振幅放大 的选次约束相同。

验证方案¶

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

  • 结构:tests/core/test_algorithm_expansion.py:AlgorithmExpansionTests 的构造与属性断言(迭代次数非负、初态宽度一致等在生成期校验)。

  • 数值:模块行登记 AlgorithmExpansionTests.test_amplification_of_known_quarter_probability(同一迭代原理的直接见证,见 振幅放大);grover() 完整电路未单列数值条目——其迭代算子 grover_iterate 经 QAE 的 test_amplitude_estimation_half_probability 间接见证(estimation.py 行),均匀初态特例由展示目录 grover 条目演示(grover(phase_marks(2, [3]), 2),读出 target=3、signal=0)。

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

已知缺口与计划阶段¶

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

相关链接¶

  • 源码:src/oracq/algorithms/common/search.py

  • 教程:搜索一个元素,并估计成功概率

  • API 参考:搜索与振幅放大

  • 同组页面:振幅放大、振幅估计、量子计数

  • 验证矩阵:验证覆盖矩阵

数值验证¶

实验设计:\(n=3\)(\(N=8\))两组实例在四条后端路径(reference、rir-pysparq、adapter-pysparq、originir-ext)上扫描迭代数 \(k\),marked 概率与逐基态分布对照闭式两级公式 \(\sin^2((2k+1)\theta)/t\)、\(\cos^2((2k+1)\theta)/(N-t)\)。实例一:phase_marks(3, (5,)),\(t=1\),\(\theta=\arcsin(1/\sqrt 8)\),\(k=0\ldots4\)(含越过最优迭代后的振荡下行段);实例二:phase_from_database(gate_database) 标记 \(\{5,6\}\),\(t=2\),\(\theta=\pi/6\),\(k=1\) 时精确放大到 1。

案例

规模

路径

指标

数值

grover-phase-marks-n3-t1

N=8, t=1, k=0..4

4 路径

成功率最大误差 / 分布最大误差

2.3e-15 / 2.3e-15

grover-xor-database-n3-t2

N=8, t=2, k=0..3

4 路径

成功率最大误差 / 分布最大误差

1.4e-15 / 7.2e-16

实例一各迭代数的理论成功率依次为 0.125、0.78125、0.9453125、0.330078125、0.012207031(\(k=2\) 最优,\(k\ge3\) 过冲回落),四条路径逐点复现。

复现命令:

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

产物:out/verification/search_walks.json(案例 grover-phase-marks-n3-t1、grover-xor-database-n3-t2,含逐迭代数值)。

Next
振幅放大(Amplitude Amplification)
Previous
查询与搜索(Query and Search)
Copyright © 2026, oracq developers
Made with Sphinx and @pradyunsg's Furo
On this page
  • Grover 搜索(Grover Search)
    • 概述
    • 接口与输入模型
    • 实现要点
    • 验证方案
    • 已知缺口与计划阶段
    • 相关链接
    • 数值验证