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

MNRS 量子行走搜索(MNRS Quantum Walk Search)¶

English · 简体中文

类别 C1 · 模块 oracq.algorithms.input_model.graph_walks · 阶段 V3

概述¶

marked-vertex 搜索的量子行走骨架:setup 制备初态 \(\frac{1}{\sqrt N}\sum_v A|v\rangle\),随后迭代 Repeat{ walk; marked 相位翻转 }。实现依据 Magniez–Nayak–Roland–Santha 2011(Search via quantum walk,hitting time 与步数标度,模块 docstring 引用):步数取经典随机游走平均首达时间 \(H_{\text{avg}}\) 的标度 \(\lceil \frac{\pi}{4}\sqrt{H_{\text{avg}}}\rceil\);完全图上 \(H_{\text{avg}} = N/|M|\),步数恢复 Grover 标度 \(\frac{\pi}{4}\sqrt{N/|M|}\)。

接口与输入模型¶

quantum_walk_search(setup, walk, marked, steps, *, name=None)
transition_matrix(neighbors)
hitting_times(transition, marked)
suggest_steps(transition, marked)

API 入口:quantum_walk_search、transition_matrix、hitting_times、suggest_steps

  • setup:初态制备,须满足 StatePreparation 协议(如 Szegedy 量子行走的 szegedy_setup 产物)。

  • walk:行走步句柄,其寄存器按声明顺序映射到 setup.target 的连续切片;可为开放声明。

  • marked:作用于行走空间前若干位的相位 oracle(target[, work] 接口,由 phase_marks(width, marked) 构造);对 szegedy_walk 而言作用的就是 current 寄存器。

  • steps:非负迭代次数,可参照 suggest_steps 选择。

  • 三个句柄都允许是开放声明,生成的程序经 bind 分批绑定实现后执行。输入模型整体为 FO:图经图邻接 oracle 给出,marked 集合经相位 oracle 给出。

quantum_walk_search 返回 Operation,寄存器为 target: Bits(width)(width 为行走空间总宽)与 work: Bits(prep.work_width + marked_work)。属性:

属性

含义

algorithm

"quantum_walk_search"

framework

"MNRS"

steps / walk_width

迭代步数与行走空间宽度

经典侧工具:transition_matrix 由邻居表得 \(P[v][u] = |\{j: N(v,j) = u\}| / D\);hitting_times 解线性方程 \((I - P_{\text{free}})h = \mathbf{1}\) 给出各顶点首次到达 marked 集合的期望步数(marked 顶点为 0,不可达时抛 ValidationError);suggest_steps 返回 \(\max(1, \lceil \frac{\pi}{4}\sqrt{H_{\text{avg}}}\rceil)\),全图 marked 时为 0。

实现要点¶

生成结构为 setup 调用后一个 Repeat(steps) 循环:循环体内先把行走步的各寄存器按声明顺序映射到 target 的连续切片并调用,再对 target 的前 marked_width 位调用 marked 相位翻转。宽度一致性在生成期校验(walk 总宽等于 setup 宽度、marked 不超出行走空间、steps 非负),违例抛 ValidationError。

适用边界:步数由调用方给出,suggest_steps 只是参照——它是经典 hitting time 的函数,不感知量子谱;偶环(交替边染色表)上该骨架不放大,见已知缺口一节。

验证方案¶

类别 C1(精确离散语义,判定准则见 ../../development/validation-plan.md §2):输出分布须与精确构造对拍。证据:

  • 结构:tests/core/test_graph_walks.py:QuantumWalkSearchTests / HittingTimeTests;test_search_rejects_mismatched_handles 覆盖 steps 为负、setup 宽度不匹配等生成期违例。

  • 数值:QuantumWalkSearchTests.test_search_amplifies_marked_vertex_on_hypercube——Q3 超立方体、marked {0}、suggest_steps 给 3 步:基线(0 步)marked 概率 0.125,3 步后 0.78125(places = 9);test_search_recovers_grover_limit_on_complete_graph——K4 完全图 2 步后概率精确 1.0(places = 10);HittingTimeTests.test_cycle_hitting_times_match_closed_form——8 环各顶点首达时间逐点对拍闭式 \(h_k = d(8-d)\)、\(d = \min(k, 8-k)\)(places = 9);test_suggest_steps_matches_grover_scaling 与 test_all_marked_needs_no_steps 校验步数公式。

  • 绑定:QuantumWalkSearchTests.test_abstract_handles_bind_to_gate_implementations——邻接 oracle 与 marked oracle 均为开放声明(unresolved 为 {G, M}),绑定 gate 实现后 marked 概率与直接生成一致(0.78125,places = 9);test_walk_handle_may_stay_abstract 见证 setup/walk 句柄同样可以延后绑定。

已知缺口与计划阶段¶

与验证矩阵一致:Johnson 图上的 element distinctness 见证待补,阶段 V3。另一已确认事实:偶环(交替边染色邻居表)上 marked 概率恒停留在均匀基线 \(1/N\)、不随步数放大(参考模拟复核 8 环多组步数均为 0.125),已证实为理论结果而非实现缺陷(validation-plan.md §3 记录该口径);可放大行为的见证由超立方体与完全图实例承担。

相关链接¶

  • 同模块:图邻接 oracle、Szegedy 量子行走、周期格点硬币行走

  • 源码:src/oracq/algorithms/input_model/graph_walks.py

  • API 参考:图行走搜索

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

数值验证¶

实验设计:三个端到端搜索实例,步数由独立 Markov 链参考(首达时间 \(H_{\rm avg}\) 经 (I-P_free)h=1 求解)按 \(\lceil\frac{\pi}{4}\sqrt{H_{\rm avg}}\rceil\) 选取,末态全振幅对照独立 numpy 组装的 MNRS 迭代 \((M W)^s|\psi_0\rangle\)(行走空间反射算子由邻居表直接构造,不复用被测模块)。

  • 完全图 K4(自环补齐到 \(D=4\),邻居表 \(N(v,j)=j\)),marked \(=\{0\}\):\(H_{\rm avg}=4\),步数 2,四路径(reference、rir-pysparq、adapter-pysparq、originir-ext)。

  • 超立方体 Q3(\(N=8, D=4\)),marked \(=\{0\}\):\(H_{\rm avg}\approx11.048\),步数 3,四路径。

  • K4 的 QRAM 绑定(qram_adjacency + 内存表):OriginIR-ext 线路不含 QRAM 资源,故该实例只走 reference 与 rir-pysparq 两条路径。

案例

规模

路径

指标

数值

mnrs-search-complete-k4

N=4, D=4, steps=2

4 路径

marked 概率 / 末态最大误差

0.578125 / 6.3e-16

mnrs-search-hypercube-q3

N=8, D=4, steps=3

4 路径

marked 概率 / 末态最大误差

0.78125 / 1.2e-15

mnrs-search-qram-k4

N=4, D=4, steps=2

reference, rir-pysparq

marked 概率 / 末态最大误差

0.578125 / 6.3e-16

信息性指标:K4 的 \(\text{steps}/\sqrt{H_{\rm avg}}=1.0\)、超立方体为 0.903,与 \(\pi/4\approx0.785\) 同量级,符合 MNRS 的 \(\sqrt{H}\) 标度;K4 实例的 marked 概率 0.578125 对应 \(N(v,j)=j\) 这一边标记下的精确行走动力学(与核心单测中循环边标记的 1.0 实例转移矩阵相同、行走不同,两者各自与独立参考逐振幅一致)。

复现命令:

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

产物:out/verification/search_walks.json(案例 mnrs-search-complete-k4、mnrs-search-hypercube-q3、mnrs-search-qram-k4,另含经典参考例程对拍案例 markov-chain-helpers)。

Next
量子机器学习(Quantum Machine Learning)
Previous
Szegedy 量子行走(Szegedy Walk)
Copyright © 2026, oracq developers
Made with Sphinx and @pradyunsg's Furo
On this page
  • MNRS 量子行走搜索(MNRS Quantum Walk Search)
    • 概述
    • 接口与输入模型
    • 实现要点
    • 验证方案
    • 已知缺口与计划阶段
    • 相关链接
    • 数值验证