vqcircuit 模块
pyqpanda3.vqcircuit 模块提供了变分量子线路(Variational Quantum Circuit)构建、参数管理和梯度计算功能。它是构建用于变分量子算法(如 VQE 和 QAOA)的参数化量子线路的基础。
概述
vqcircuit 模块使您能够:
- 构建变分线路:使用
VQCircuit,支持插入固定量子门和带有可学习参数的变分量子门。 - 管理参数:通过带有命名标签的多维
Parameter系统,并使用ParamExpression构建参数表达式,实现占位符的算术组合。 - 绑定参数并求值线路:通过传入 NumPy 数组形式的参数值来调用
VQCircuit,生成包含具体线路的VQCResult结果对象。 - 计算梯度:通过伴随微分方法(Adjoint Differentiation)计算期望值对参数的梯度,返回结构化的梯度结果对象。
- 复用子线路:通过占位符重映射将一个
VQCircuit追加到另一个中,实现模块化 ansatz 设计。
核心类
| 类 | 描述 |
|---|---|
VQCircuit | 变分量子线路,持有参数化门并从参数值生成具体线路。 |
VQCResult | 将参数绑定到 VQCircuit 后的结果;提供对生成线路和期望值计算的访问。 |
Parameter | 表示带有标签维度和元素的多维变分参数数组。 |
ParamExpression | 基于参数占位符的算术表达式,支持加法和乘法运算。 |
DiffMethod | 用于选择梯度计算微分策略的枚举。 |
梯度结果类
| 类 | 描述 |
|---|---|
ResGradients | 单组参数的梯度。 |
ResNGradients | N 组参数的梯度。 |
ResGradientsAndExpectation | 单组参数的梯度和期望值。 |
ResNResGradientsAndExpectation | N 组参数的梯度和期望值。 |
子主题
| 主题 | 描述 |
|---|---|
| VQCircuit | VQCircuit 和 VQCResult 类参考 |
| 梯度结果 | ResGradients、ResNGradients 及相关类 |
| 参数 | Parameter 和 ParamExpression 类参考 |
| 微分方法 | 微分方法枚举 |
快速示例
python
import numpy as np
from pyqpanda3.vqcircuit import VQCircuit, DiffMethod
from pyqpanda3.core import RX
from pyqpanda3.hamiltonian import Hamiltonian
# 构建一个简单的 2 量子比特变分线路
vqc = VQCircuit()
vqc.set_Param([4]) # 4 个变分参数
# 使用第一个参数占位符插入变分 RX 门
from pyqpanda3.core import RX
vqc << RX(0, vqc.Param([0]))
# 绑定参数并获取具体线路
result = vqc(np.array([0.5, 1.0, 1.5, 2.0]))
# 计算梯度
hamiltonian = Hamiltonian(...)
grads = vqc.get_gradients(np.array([0.5, 1.0, 1.5, 2.0]), hamiltonian, DiffMethod.ADJOINT_DIFF)