Schrödingerization 非酉演化模拟(Schrödingerization)

English · 简体中文

类别 C2 · 模块 oracq.algorithms.qode.schrodingerization · 阶段 V2

概述

对 \(u'=Gu\) 写 \(G=H_1+iH_2\)(\(H_1,H_2\) 均为 Hermitian)。引入辅助变量 \(p\),在有效恢复区域使用 \(v(t,p)=e^{-p}u(t)\),初值对两侧延拓为 \(v(0,p)=e^{-|p|}u_0\),则提升方程为

\[ \partial_t v=-H_1\,\partial_p v+iH_2 v , \]

Fourier 化后成为 Hermitian Hamiltonian \(K=P\otimes H_1-I\otimes H_2\) 的演化(依据 Schrödingerization 技术论文 §3.1,另见微分方程章 §5)。本实现把辅助坐标保留为量子寄存器,最终选择一个 \(p\) 通道读出物理解。

接口与输入模型

schrodinger_qode(generator, initial, time, *, plan=None,
                 hamiltonian_function=taylor_hamiltonian)
SchrodingerPlan(auxiliary_width=2, period=8.0, selected_index=1)
fourier_momentum(width, period)

API 入口:schrodinger_qode、SchrodingerPlan、fourier_momentum

  • generator:\(G\) 的 BlockEncoding(input model 为 BE),\(H_1=(G+G^\dagger)/2\)、\(H_2=(G-G^\dagger)/(2i)\) 由 HermitianParts.from_operator 生成。

  • initial:StatePreparation(SP),作用在物理寄存器。

  • SchrodingerPlan:辅助寄存器位数 auxiliary_width(1..63)、周期 period 与选中通道 selected_index(\(0..2^p-1\))。

  • hamiltonian_function:(K, t) -> BlockEncoding,默认 taylor_hamiltonian。

  • fourier_momentum(width, period):频率对角算子 \(P\) 的独立构造入口。

返回 StateOracle(target/signal),模块属性:

属性

含义

algorithm

"schrodingerization_qode"

auxiliary_grid

辅助网格坐标的 JSON 表

selected_p / recovery_scale

选中通道的 \(p_j\) 与 \(e^{p_j}\)

recovery_assumption

"selected p in valid warped region; periodic truncation pending"

实现要点

\(P\) 用 fourier_momentum 逐位构造:每位一个投影 BE(alpha 为 1),系数 \((2^b)\cdot 2\pi/\text{period}\),最高位取负以实现二补码负频率,再 LCU 求和,避免稠密矩阵。寄存器布局为 target = 物理 n 位(低)+ 辅助 p 位(高),work 承载初态制备的工作位。

生成流程:初态作用在 target[:n];辅助位制备归一化的 \(e^{-|p_j|}\)(gate_state_prep)后做 QFT;对 \(K=P\otimes H_1-I\otimes H_2\) 调用 hamiltonian_function;逆 QFT 后用 select_subspace 选辅助寄存器等于 selected_index 的通道,选择条件并入 signal。辅助网格按编码顺序 \(p_j=(j\) 若 \(j<2^{p-1}\) 否则 \(j-2^p)\cdot\text{period}/2^p\);默认配置 \(p=2\)、period 8、index 1 对应网格 \([0,2,-4,-2]\)、选中 \(p=2\)。

适用边界:实现不自动检验所选通道位于恢复区,也不保证周期窗口足够大(需按 \(H_1\) 的传播速度、时间与周期边界选择窗口与通道,不能仅以 \(p>0\) 为充分条件)。recovery_scale 只记录 warp 的一个因子;理想恢复关系下成功块约为 \(e^{-p_j}|u(t)\rangle/(rZ\alpha_E)\)(\(r\) 为初值范数、\(Z\) 为离散 warp 范数、\(\alpha_E\) 为演化 BE 归一化),完整范数恢复接口尚未提供,这些量需宿主自行保存。入口处先执行 operator_state_contract("schrodingerization") 的能力检查。

验证方案

类别 C2(近似连续语义,判定准则见 ../development/validation-plan.md §2)。三层证据:

  • 结构:tests/core/test_differential.py:DifferentialStructureTests.test_four_methods_keep_input_oracles 的 schrodingerization 子测试——抽象 BE/SP 输入下开放槽(input_A/input_b)保留、algorithm 属性正确、RIR 序列化往返。

  • 数值:tests/core/test_differential.py 定位为结构测试;Fourier 正负号约定、有限网格与恢复区的整体数值验证仍待完成(见已知缺口)。

  • 绑定:同类注册与契约检查——入口契约经 operator_state_contract 强制,协议级假设(辅助窗口、Fourier 约定、恢复区域需应用层验证)由 QODEProtocol.contract 记录(见 QODE 问题对象与协议)。

已知缺口与计划阶段

统一的"解析可解 ODE 族"收敛基准缺失,归入阶段 V2 的收敛性扫描框架;与 validation-coverage.md 的 schrodingerization.py 行一致。辅助窗口与恢复区域的数值验证按协议 assumptions 属应用层责任,当前未自动化。

数值验证

论文级数值实验见 tests/verification/verify_ode.py(ode 组,本文件覆盖 schrodingerization.py 的部分)。经典参考全部独立:numpy 全堆叠仿真(warp→正号 DFT→截断 Taylor 或精确 expm 演化→逆 DFT→通道选择)、解析解(\(e^{-t}\) 衰减、解析旋转矩阵);量子程序在真实后端 reference 与 OriginIR-ext 上执行(嵌套 LCU 的 \(8^{\text{degree}}\) 分支标度使 pysparq 系路径超出预算,案例中注明)。

实验设计:(a) 动量块——fourier_momentum(2, 8.0) 的零信号块对二补码有符号频率对角矩阵(幺正 to_matrix + reference 交叉);(b) 标量衰减 \(G=-I\)、plan(auxiliary_width=2, period=1.2, selected_index=1)(\(\Delta p=t\) 使网格平移逐点精确)、Taylor degree 4、\(t=0.3\):组装保真度、恢复幅值与误差分解;(c) 独立重组装——验证脚本内用公开组合子组装 \(K'=-P\otimes H_1-I\otimes H_2\)(修复后的库约定)的同构真实量子程序,作为符号约定的回归钉;(d) 旋转生成元 \(G=J\)(\(H_1=0\),纯 \(H_2\))对解析旋转的恢复。

关键指标:

案例

规模

路径

指标

数值

fourier-momentum-block

4 量子位

originir+to_matrix、reference

动量块最大偏差

2.2e-16

schrodingerization-scalar-decay-grid

21 量子位

reference、originir

组装保真度(对 \(K'\) 全堆叠仿真)

2.0e-18

同上

恢复幅值对 \(e^{-t}u_0\)(正向流)的精确演化网格误差

1.3e-16

同上

对 \(e^{+t}u_0\)(时间反演)的失配(方向性证据)

0.43

同上

端到端恢复误差(Nyquist 模 Taylor 余项)

3.3e-2

schrodingerization-sign-flipped-degree2/4

同上

reference

独立重组装实现误差 / 网格误差

8.8e-18 / 1.3e-16

同上

量子恢复误差(Nyquist 模 Taylor 余项,随阶数下降)

9.1e-2 → 3.3e-2

schrodingerization-rotation-recovery

同上

reference

实现误差 / 恢复误差

9.3e-19 / 1.5e-5

符号约定的发现与修复:历史版本装配 \(K=P\otimes H_1-I\otimes H_2\),配合正号 DFT 约定给出的 warp 传输方向与恢复关系相反——恢复幅值精确拟合时间反演解(对 \(e^{+t}u_0\) 拟合 4.8e-16、对 \(e^{-t}u_0\) 失配 0.43,互为决定性证据)。验证轮据此把库内生成元的动量项符号修复为 \(K'=-P\otimes H_1-I\otimes H_2\):同一网格上精确演化的恢复误差降到 1.3e-16,证明符号是唯一结构性失配;库现以 \(K'\) 为约定,并由"独立重组装与库程序逐振幅一致"的回归案例钉住(防回退)。纯 \(H_2\) 生成元(旋转案例)不受该项符号影响,端到端恢复误差 1.5e-5。端到端残余误差是 Nyquist 动量模(相位 \(\pi\))的 Taylor 截断,随阶数下降(degree 2→4:9.1e-2→3.3e-2),属于可替换 hamiltonian_function 协议的方法误差。

复现:

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

产物:out/verification/ode.json(schrodingerization-* 与 fourier-momentum-block 共 6 个案例)。

相关链接