架构#
FlagQuantum 由以下模块组成:
flagquantum/
├── devices/ # 量子设备实现
├── drawer/ # 量子电路可视化
├── ops/ # 量子操作(门、矩阵、算符)
├── encoding/ # 数据编码方法
├── measure/ # 测量工具
└── utils/ # 辅助函数(DTensor、交换)
核心组件#
设备 (Devices)#
devices 模块提供量子设备实现,包括 DistributedQuantumDevice 类,该类使用 PyTorch 的分布式张量 (DTensor) 跨多个 GPU 管理量子态。
绘图器 (Drawer)#
绘图器模块支持两种模式的电路可视化:
文本模式:基于 Unicode 的图表,支持多量子比特门符号(╭╰├│)、自动换行(max_length)和可配置的参数精度。
MPL 模式:出版级质量的 Matplotlib 图形,采用基于层的布局(同列门共享 x 坐标)、初始状态(|0⟩)、测量符号以及专业的配色方案:
固定门(H、X、Y、Z):柔蓝色 #7B9EC2
旋转门(RX、RY、RZ):红色 #E15759
相位门(P):梅紫色 #DDA0DD
CPhase / SWAP:青色 #76B7B2
CRX/CRY/CRZ:橙色 #F28E2B
RXX/RYY/RZZ:浅粉色 #FFB6C1(盒式布局,无控制点)
支持 Toffoli(CCX)、Fredkin(CSWAP)、多量子比特门
操作 (Operations)#
ops 模块包含所有量子门实现:
泡利门:X、Y、Z
克利福德门:H、S、SDG、CX、CZ、SWAP
旋转门:RX、RY、RZ,支持参数化
受控门:任意单量子比特门的受控版本
自定义门:通过门注册系统注册的用户定义门
编码 (Encoding)#
encoding 模块提供了将经典数据嵌入量子态的方法:
角度编码:将经典特征映射到旋转角度
振幅编码:将数据直接编码到状态向量振幅中
基态编码:将二进制数据映射到计算基态
通用编码器:用户定义的自定义编码电路
测量 (Measurement)#
measure 模块提供测量工具,包括:
Z 基测量:标准计算基测量
期望值:计算可观测量的期望值
后选择:根据条件筛选测量结果
工具 (Utilities)#
utils 模块包含以下辅助函数:
DTensor 操作和分片
设备间状态交换
设备管理和配置
OpenQASM 2.0/3.0 导出器