跳转至

根目录 > examples


示例代码模块

DeepQuantum 框架的算法实现示例集合

最后更新: 2026-01-16


模块职责

提供 21 个完整的量子算法实现示例,涵盖:

  1. 核心量子算法 - QAOA、HHL、VQE、MBQC
  2. 量子机器学习 - 量子残差网络、函数拟合
  3. 光量子计算 - 高斯玻色采样及其应用
  4. 时域复用 - TDM 簇态制备
  5. 性能基准 - 与其他框架的对比测试

目录结构

examples/
├── qaoa.ipynb                        # QAOA 量子近似优化算法
├── hhl.ipynb                         # HHL 线性方程组求解
├── vqe_for_CRW.ipynb                 # VQE 求解 CRW 哈密顿量
├── qresnets.ipynb                    # 量子残差网络
├── quantum_state_transfer_1d.ipynb   # 一维量子态传输
├── test_for_onchip_optimizer.ipynb   # 片上优化器测试
├── basic_gate_MBQC.ipynb             # MBQC 基本门操作
├── gbs/                              # 高斯玻色采样系列 (12 个)
│   ├── boson_sampling/               # 基础玻色采样
│   ├── gaussian_boson_sampling/      # 高斯玻色采样
│   ├── gbs_clustering/               # GBS 聚类算法
│   ├── max_clique/                   # 最大团问题
│   ├── dense_graph/                  # 稠密子图
│   ├── similar_graph/                # 图相似性
│   ├── variational_gbs/              # 变分 GBS
│   ├── vibronic_spectra/             # 振动谱
│   ├── vibronic_excitations/         # 振动激发
│   ├── homodyne_tomography/          # 层析成像
│   └── vqe_ground_energy_for_H2_*/   # 水分子基态能量
├── tdm/                              # 时域复用系列 (2 个)
│   ├── simple_cluster_state/         # 一维纠缠态制备
│   │   └── 一维纠缠态的制备.ipynb
│   └── advanced_cluster_state/       # 复杂纠缠态制备
│       └── 复杂纠缠态的制备.ipynb
├── bosonic/                          # 玻色子态应用
│   └── breeding_cat/
│       └── bosonic_breeding.ipynb    # 玻色子育猫态
└── benchmarks/                       # 性能基准测试
    └── benchmark_v420/
        ├── MBQC_simulate/            # MBQC 模拟性能
        ├── MBQC_transpile/           # MBQC 转换性能
        ├── gradient/                 # 梯度计算对比
        ├── hessian/                  # Hessian 计算对比
        ├── hafnian/                  # Hafnian 函数对比
        ├── permanent/                # Permanent 函数对比
        ├── torontonian/              # Torontonian 函数对比
        └── loop_torontonian/         # 循环 Torontonian

入口与启动

核心示例

1. QAOA - 量子近似优化算法

文件: qaoa.ipynb

功能: 求解最大割问题

import deepquantum as dq
import torch

# 创建 QAOA 电路
nqubits = 4
cir = dq.QubitCircuit(nqubits)

# 问题哈密顿量(最大割)
# ... 定义问题哈密顿量

# QAOA ansatz
for p in range(depth):
    # 问题单元ary
    cir.rxlayer()
    # 混合单元ary
    cir.cnot_ring()

# 优化参数
optimizer = torch.optim.Adam(cir.parameters(), lr=0.01)

2. HHL - 线性方程组求解

文件: hhl.ipynb

功能: 求解 Ax = b

核心算法: - 量子相位估计 (QPE) - 逆量子傅里叶变换 - 受控旋转

3. VQE - 变分量子本征求解器

文件: vqe_for_CRW.ipynb

功能: 求解 8×8 厄米矩阵本征值

特点: - Pauli 算符基分解(64 个测量基) - CMA-ES 进化策略优化

4. QResNet - 量子残差网络

文件: qresnets.ipynb

功能: 函数拟合

架构: - 变分量子电路层 - 残差连接 - 经典-量子混合模型


对外接口

GBS 应用系列

高斯玻色采样的多种应用场景:

应用 文件 功能
聚类 gbs_clustering/GBS_clustering.ipynb 无监督学习、图划分
最大团 max_clique/GBS_max_clique.ipynb NP-hard 问题、组合优化
稠密子图 dense_graph/GBS_dense_graph_problem.ipynb 图论应用
图相似性 similar_graph/similar_graph.ipynb 图同构测试
变分 GBS variational_gbs/variational_gbs.ipynb 参数优化、量子机器学习
振动谱 vibronic_spectra/vibronic_spectra.ipynb 量子化学
振动激发 vibronic_excitations/vibronic_excitations.ipynb 分子动力学
层析成像 homodyne_tomography/Homodyne_Tomography.ipynb 量子态重构

TDM 时域复用

文件 功能
tdm/simple_cluster_state/一维纠缠态的制备.ipynb 基础 TDM 簇态
tdm/advanced_cluster_state/复杂纠缠态的制备.ipynb 高维 TDM 簇态

关键依赖与配置

依赖项

  • deepquantum: 核心框架
  • torch: 深度学习后端
  • numpy: 数值计算
  • matplotlib: 可视化
  • scipy: 科学计算(基准测试)

可选依赖(基准测试)

  • pennylane: 对比测试
  • mindquantum: 对比测试
  • piquasso: 光量子对比
  • strawberryfields: 光量子对比
  • graphix: MBQC 对比

数据模型

示例分类统计

类别 数量 说明
核心算法 7 QAOA、HHL、VQE、MBQC、QResNet、态传输、优化器
GBS 应用 12 聚类、最大团、图论、量子化学等
TDM 系列 2 时域复用簇态制备
玻色子态 1 育猫态
基准测试 多个 性能对比

性能基准测试

梯度计算对比

  • 框架: DeepQuantum vs PennyLane vs MindQuantum
  • 后端: CPU / CUDA
  • 电路: 随机量子电路

Hafnian 函数对比

  • 框架: DeepQuantum vs Piquasso vs StrawberryFields
  • 函数: hafnian()
  • 输入: 随机矩阵

Torontonian 函数对比

  • 框架: DeepQuantum vs Piquasso vs StrawberryFields
  • 函数: torontonian()
  • 输入: 随机矩阵

测试与质量

示例验证

  • ✅ 所有示例 notebook 可运行
  • ✅ 包含详细代码注释
  • ✅ 提供数学推导
  • ✅ 可视化结果

性能测试

位置: benchmarks/benchmark_v420/

  • MBQC 模拟: 与 Graphix 对比
  • 梯度计算: 与 PennyLane、MindQuantum 对比
  • Hafnian: 与 Piquasso、StrawberryFields 对比
  • Permanent: 与 Piquasso、StrawberryFields 对比

常见问题 (FAQ)

Q1: 如何运行这些示例?

# 安装 DeepQuantum
pip install deepquantum

# 启动 Jupyter
jupyter notebook

# 打开示例 notebook
# 例如: examples/qaoa.ipynb

Q2: 哪些示例适合初学者?

推荐顺序: 1. basic_gate_MBQC.ipynb - 基础门操作 2. qaoa.ipynb - 简单的优化算法 3. vqe_for_CRW.ipynb - VQE 基础

Q3: GBS 示例需要特殊依赖吗?

基础 GBS 不需要特殊依赖。但如果要与其他框架对比:

pip install perceval-quandela strawberryfields thewalrus

Q4: 如何理解 TDM 示例?

TDM(时分复用)是光量子计算的重要技术: - simple_cluster_state/ - 一维 TDM,适合入门 - advanced_cluster_state/ - 复杂 TDM,适合深入研究


相关文件清单

核心示例文件

文件 算法 难度
qaoa.ipynb QAOA ⭐⭐⭐
hhl.ipynb HHL ⭐⭐⭐⭐
vqe_for_CRW.ipynb VQE ⭐⭐⭐⭐
qresnets.ipynb QResNet ⭐⭐⭐⭐
basic_gate_MBQC.ipynb MBQC ⭐⭐
quantum_state_transfer_1d.ipynb 态传输 ⭐⭐

GBS 应用文件

文件 应用 难度
gbs/gaussian_boson_sampling/gaussian_boson_sampling.ipynb GBS 基础 ⭐⭐⭐
gbs/max_clique/GBS_max_clique.ipynb 最大团 ⭐⭐⭐
gbs/gbs_clustering/GBS_clustering.ipynb 聚类 ⭐⭐⭐
gbs/variational_gbs/variational_gbs.ipynb 变分 GBS ⭐⭐⭐⭐

基准测试目录

目录 测试内容
benchmarks/benchmark_v420/gradient/ 梯度计算对比
benchmarks/benchmark_v420/hafnian/ Hafnian 函数对比
benchmarks/benchmark_v420/permanent/ Permanent 函数对比
benchmarks/benchmark_v420/MBQC_simulate/ MBQC 模拟对比

变更记录

2026-01-16

  • 创建示例模块文档
  • 完成 21 个示例索引
  • 记录 GBS 和 TDM 子目录

参考资源

项目内文档

外部资源

  • DeepQuantum API: https://dqapi.turingq.com/
  • GitHub: https://github.com/TuringQ/deepquantum

本文档由 AI 生成,最后更新于 2026-01-16