周期格点硬币行走(Coined Cycle Walk)¶
English · 简体中文
类别 C1 · 模块
oracq.algorithms.common.walks· 阶段 V1
概述¶
离散时间硬币量子行走(coined quantum walk)的最小实例:在周期为 \(2^n\) 的环形格点 \(\mathbb{Z}_{2^n}\) 上,一位 Hadamard 硬币决定每步移动 \(+1\) 或 \(-1\)。硬币行走是量子行走的标准模型之一,本模块给出其一维周期版本;任意图上以 oracle 输入驱动的行走见 Szegedy 量子行走。
接口与输入模型¶
cycle_walk(width, *, steps=1)
API 入口:cycle_walk
width:position位宽 \(n\),周期长度为 \(2^n\),上限 64。steps:非负步数。输入模型为 CP:位宽与步数经典参数化,无 oracle 输入;行走空间初态由调用方制备,零输入对应位置 0、硬币 0。
返回 Operation,寄存器为 position: Bits(n) 与 coin: Bits(1)。模块属性:
属性 |
含义 |
|---|---|
|
|
|
调用参数回显 |
实现要点¶
每步先更新硬币再条件移动:对 coin 作用 H,随后 coin == 0 分支把 position 加 1、coin == 1 分支加 \(2^n - 1\)(即 \(-1 \bmod 2^n\));position 以无符号解释运算,越界自然回绕。步数循环用 IR 的 Repeat 结构生成,不在生成期展开。适用边界:周期固定为 2 的幂、硬币固定为 Hadamard、移动固定为 \(\pm 1\);需要一般图或可替换 oracle 时应改用 graph_walks.py 的框架。
验证方案¶
类别 C1(精确离散语义,判定准则见 ../../development/validation-plan.md §2):作用酉须与行走定义逐点相等。证据:
结构:
tests/core/test_algorithm_expansion.py:AlgorithmExpansionTests的构造与属性断言。数值:
AlgorithmExpansionTests.test_ansatz_zero_angles_and_walk_one_step的行走部分——cycle_walk(2)从零输入走一步后,态为 \((|1,0\rangle + |3,1\rangle)/\sqrt{2}\)(基态按(position, coin)记),两个基态幅度均为 \(1/\sqrt{2}\)。绑定:本算法无独立绑定见证(无开放声明入口)。
已知缺口与计划阶段¶
无已知缺口(验证矩阵缺口列为 —),阶段 V1。
相关链接¶
数值验证¶
实验设计:周期 \(N=4\)(width=2)与 \(N=8\)(width=3)的环上 Hadamard coined walk,从 \(|0\rangle_{\rm position}|0\rangle_{\rm coin}\) 出发扫描步数 \(s=0\ldots8\),四条后端路径(reference、rir-pysparq、adapter-pysparq、originir-ext)逐振幅对照独立 numpy 参考(coin H 后按 0/1 条件 \(\pm1\) 移位的逐步模拟),位置边缘分布另算 TVD。注:\(s=0\) 时程序不含门,UniQC 对零门线路无 qubit mapping,故零步情形不含 originir-ext 路径。
案例 |
规模 |
路径 |
指标 |
数值 |
|---|---|---|---|---|
cycle-walk-w2 |
N=4, s=0..8 |
4 路径 |
振幅最大误差 / 位置分布最大 TVD |
5.6e-17 / 1.1e-16 |
cycle-walk-w3 |
N=8, s=0..8 |
4 路径 |
振幅最大误差 / 位置分布最大 TVD |
5.6e-17 / 1.1e-16 |
信息性指标(\(s=8\) 的平均环距离,量子弹道输运 vs 经典扩散):\(N=8\) 时量子 3.0 vs 经典对称随机游走 1.875;\(N=4\) 时量子 0.0 vs 经典 1.0(小环上 8 步恰好回到原点,呈 revival)。两者定性差异符合离散时间量子行走的已知行为。
复现命令:
PYTHONPATH=src /home/agony/projects/qcfd-dev/quantum-cfd-software/.venv/bin/python tests/verification/verify_search_walks.py
产物:out/verification/search_walks.json(案例 cycle-walk-w2、cycle-walk-w3)。