# 运行与修改算法展示目录 English · **简体中文** 展示目录把不同类别的算法放在统一的运行流程中,便于比较它们的输入、寄存器和读出方式。全部案例由 {obj}`algorithm_gallery ` 统一构造。 ```bash uv run python examples/algorithm_gallery.py ``` 每个子目录包含 `closed.rir.yaml`、`modular.originir` 和 `toffoli_u3_cz.originir`。Bernstein–Vazirani 还保存绑定前的开放描述。`index.json` 记录类别、模块数量和读出说明。 ## 选择要检查的结果 不要对所有算法使用同一种读出方式。BV 读取秘密字符串;QPE 和振幅估计读取 phase;Hadamard test 估计 probe 的 Z 期望;重复码恢复则检查逻辑态,并保留 syndrome。 用以下代码查找案例: ```{testcode} from oracq.applications.gallery import algorithm_gallery # 构造全部展示案例,并按名字建索引方便查询。 cases = {case.name: case for case in algorithm_gallery()} # 打印当前展示库覆盖的全部案例名。 print("\n".join(sorted(cases))) # 确认 QAOA 最大割案例存在(展示库覆盖变分类)。 assert "qaoa_maxcut" in cases # 每个案例带族标签:序数查找属于 number_theory 族。 assert cases["order_finding"].family == "number_theory" # 展示库共 22 个案例,增删案例时这行断言会提醒同步更新。 assert len(cases) == 22 ``` ```{testoutput} amplitude_amplification amplitude_estimation ansatz bernstein_vazirani cycle_walk deutsch_jozsa fourier_add grover hadamard_imag hadamard_real hamiltonian_trotter modular_multiply order_finding phase_estimation qaoa_maxcut qft quantum_counting repetition_bit repetition_phase simon swap_test vqe_pauli_measurement ``` 打印出的 22 个名字就是展示库当前覆盖的全部案例,横跨搜索、估计、算术、行走、纠错和变分类;增删案例时这行输出要与 `len(cases) == 22` 断言一起同步更新。 需要添加应用例子时,可以在自己的脚本里调用对应算法文件。若要扩展公开展示目录,则为 {obj}`GalleryCase ` 提供操作和具体读出说明,并增加独立的数学见证。 ## 真实后端对拍 ```bash PYTHONPATH=src /path/to/backend/python examples/algorithm_gallery.py --native ``` 脚本逐项比较参考执行器、PySparQ 和 OriginIR 的复幅度,超出容差立即退出。它验证同一线路在各后端中的语义一致;某个参数是否适合真实问题,仍需要应用层分析。 ## 相关页面 - 手册:[算法手册](../manual/algorithms/index.md)(展示库覆盖的多数算法都有词条页)、[后端与导出](../manual/backends.md) - API 参考:[算法展示目录](../api/applications/gallery.rst) - 继续教程:[搜索一个元素,并估计成功概率](search-and-estimation.md)、[提供自己的 Hamiltonian 分解](hamiltonian.md)