# QSVT 相位序列(QSVT Phase Sequence)
English · **简体中文**
> 类别 C2 · 模块 [`oracq.algorithms.common.transforms`](../../api/algorithms/common/transforms.rst) · 阶段 V1
## 概述
给定矩阵 $A$ 的块编码(block encoding)$U$ 与一列实数相位 $\Phi = (\varphi_0, \dots, \varphi_d)$,显式组装 QSVT 序列:在 $A$ 的每个奇异值 $x$ 对应的二维不变子空间上,零信号块实现多项式
$$
p(x) = \bigl[S(\varphi_0)\, W(x)\, S(\varphi_1)\, W(x) \cdots W(x)\, S(\varphi_d)\bigr]_{00},
\qquad
W(x) = \begin{pmatrix} x & s \\ s & -x \end{pmatrix},\ s = \sqrt{1 - x^2},\
S(\varphi) = \operatorname{diag}(e^{i\varphi}, e^{-i\varphi}),
$$
相位按时间顺序排列($\varphi_0$ 最先作用),共 $d$ 次 BE 调用、$d + 1$ 个相位。可实现的 $(P, Q)$ 满足充要条件:$\deg P \le d$、$\deg Q \le d - 1$、$P$ 的奇偶性为 $d \bmod 2$、$Q$ 的奇偶性为 $(d-1) \bmod 2$,且多项式恒等式 $P\bar{P} + (1-x^2)Q\bar{Q} \equiv 1$ 成立(特别地必有 $|P(\pm 1)| = 1$)。序列约定取自 QSVT 框架(Gilyén et al. 2019, [arXiv:1806.01838](https://arxiv.org/abs/1806.01838),见 `qsvt.py` 模块 docstring);本函数是框架的电路组装层,合法相位由 [QSP 相位合成](qsp-phase-synthesis.md) 计算并自检。
## 接口与输入模型
```python
qsvt_sequence(a, phases)
```
API 入口:{obj}`qsvt_sequence `
- `a`:{obj}`BlockEncoding `,被变换矩阵的块编码(input model 为 BE)。
- `phases`:可迭代的实数相位,时间正序($\varphi_0$ 最先作用);内部转换为浮点元组,本身不做正确性校验。
返回 {obj}`Operation `(裸操作而非 `BlockEncoding`),寄存器为 `target`(宽度 `a.width`)与 `signal`(宽度 `a.signal_qubits`)。模块属性:
| 属性 | 含义 |
|---|---|
| `algorithm` | `"qsvt_sequence"` |
| `validation_stage` | `"paradigm"`(见证级别标注) |
BE 归一化不经属性传播;谱变量 $x$ 相对输入归一化 $\alpha$ 定义($x = \lambda/\alpha$),幅度语义由调用方补全。
## 实现要点
每个相位实现为一对全局相位门:`global_phase(-φ)` 加上 `signal` 零分支条件下的 `global_phase(2φ)`,净效果是信号零分支取 $e^{+i\varphi}$、其余分支取 $e^{-i\varphi}$,即 $S(\varphi)$。相位之间交替调用输入 BE:下标为偶数的相位之后正向 {obj}`invoke `,下标为奇数的相位之后伴随(`adjoint`)调用,共 $d$ 次。`a.signal_qubits == 0` 的退化情形有专门分支(相位退化为无条件全局相位)。
适用边界:输入必须是块编码,稀疏 oracle 或 QRAM 需先经适配层构造 BE;本函数接受任意实相位,序列的数值正确性由调用方负责(合法相位的计算与往返自检见 [QSP 相位合成](qsp-phase-synthesis.md))。序列直接以复多项式 $P$ 为零信号块、不含实部提取;实目标的实部提取由 `qsvt.py` 标准变换族经 $(U_\Phi + U_{-\Phi})/2$ 的 LCU 组合完成。
## 验证方案
类别 C2(近似连续语义,判定准则见 `../../development/validation-plan.md` §2)。当前证据(与验证覆盖矩阵 `transforms.py` 行一致):
- 结构:`tests/core/test_algorithm_protocols.py:AlgorithmProtocolTests.test_trotter_protocol_keeps_phase_and_repeat` 与 `test_trotter_only_input_does_not_need_block_encoding` 覆盖同模块组装链的协议与寄存器契约。
- 数值:`tests/core/test_qsvt.py:PhaseSynthesisTests.test_convention_matches_qsvt_sequence`——固定种子随机相位(6 个)下 2×2 对角 BE 的电路零信号块与 {obj}`qsp_response ` 逐点一致(delta = 1e-10),把电路组装层与数学约定互相钉死。
- 绑定:无独立绑定见证(输入已要求具体 BE)。
## 已知缺口与计划阶段
无已知缺口(与验证覆盖矩阵 `transforms.py` 行一致),阶段 V1 见证已齐(序列约定逐点一致 1e-10)。
## 相关链接
- 源码:`src/oracq/algorithms/common/transforms.py`
- API 参考:[矩阵变换序列](../../api/algorithms/common/transforms.rst)
- 同族页面:[量子化行走](qubitization-walk.md)、[Oblivious 振幅放大](oblivious-amplification.md)、[QSP 相位合成](qsp-phase-synthesis.md)、[定点搜索](fixed-point-search.md)
- 验证矩阵:[验证覆盖矩阵](../../development/validation-coverage.md)
## 数值验证
论文级数值实验见 `tests/verification/verify_fourier.py`(真实后端执行,无模拟替身)。输入 BE 为 gate 级绑定小实例({obj}`matrix_pauli_encoding ` 编码 1 比特厄米矩阵 $A$,独立 Pauli 展开 $\alpha = 0.8$)。三层 oracle 互相独立:其一,固定种子的随机相位(7 个,$d = 6$)下序列全幺正与时间正序交替乘积 $S(\varphi_d)\,U/U^\dagger \cdots S(\varphi_0)$ 逐元素对比($U$ 取 BE 实测幺正,$S(\varphi)$ 按文档约定由信号零分支 $e^{+i\varphi}$、其余 $e^{-i\varphi}$ 构造);其二,零信号块与 $p(A/\alpha)$ 对比,$p(x)$ 由本文档公式的独立 2×2 矩阵乘积实现给出(不经库内 `qsp_response`);其三,Chebyshev 端到端——以 {obj}`qsp_phases ` 合成的 $T_4, T_5$ 相位为输入,零信号块与独立递推的 $T_d(A/\alpha)$ 对比。另覆盖 `signal_qubits == 0` 退化分支(Pauli 字 BE):相位退化为无条件全局相位,序列算子为 $e^{i\sum\varphi} X^d$。
| 案例 | 规模 | 后端路径 | 指标 | 数值 |
|---|---|---|---|---|
| `qsvt-sequence-random-phases` | $d = 6$,8 维 | originir-ext + UniQC to_matrix | unitary_max_error | 5.6e-16 |
| 同上 | — | — | zero_block_max_error(vs 独立 2×2 乘积) | 6.5e-16 |
| `qsvt-sequence-chebyshev-t4` | $d = 4$ | originir-ext + UniQC to_matrix | zero_block_max_error | 5.6e-16 |
| `qsvt-sequence-chebyshev-t5` | $d = 5$ | originir-ext + UniQC to_matrix | zero_block_max_error | 2.9e-16 |
| `qsvt-sequence-degenerate-signal0` | $d = 2, 3$(signal 0 宽) | originir-ext + UniQC to_matrix | max_error | 1.6e-16 |
复现命令:
```bash
PYTHONPATH=src <含 pysparq+uniqc 的解释器> tests/verification/verify_fourier.py
```
产物:`out/verification/fourier.json`。
### 补充验证:多后端路径与消费端矩阵块(verify_hamiltonian.py)
`tests/verification/verify_hamiltonian.py`(27 案例全 PASS)从 QSVT 消费端视角补充两层证据:其一,固定种子随机相位(6 个,$d = 5$)下对 1 量子位对角 BE(谱变量 $x \in \{1.0, -0.647\}$)在 reference / rir-pysparq / adapter-pysparq / originir-ext **四条路径**上读出零信号幅度,与 numpy 按本文档约定独立实现的 2×2 矩阵递推响应逐点对拍;其二,对 2 量子位非对角 BE(四项 Pauli 展开,$\alpha = 0.95$)以 `qsp_phases` 合成的 $T_4$ 相位读出完整 4×4 零信号块,与矩阵多项式 $T_4(A/\alpha)$ 的独立 Horner 求值对拍。另含 qubitization 递推见证:{obj}`qubitization_walk ` 的 $W^n$($n = 1, 2, 3, 5$)零信号块与 $T_n(x)$ 一致(max_error 1.2e-15)。
| 案例 | 规模 | 后端路径 | 指标 | 数值 |
|---|---|---|---|---|
| `qsvt-sequence-convention-1q` | $d = 5$,双本征态 | 四路径 | max_deviation | 1.26e-15 |
| `qsvt-sequence-matrix-block-2q` | $T_4$,4×4 块 | reference、rir-pysparq、originir-ext | max_error | 3.9e-16 |
| `qubitization-chebyshev-recurrence` | $W^n$,$n$ = 1,2,3,5 | reference、rir-pysparq、originir-ext | max_error | 1.2e-15 |
复现命令:
```bash
PYTHONPATH=src <含 pysparq+uniqc 的解释器> tests/verification/verify_hamiltonian.py
```
产物:`out/verification/hamiltonian.json`。