Skip to content

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单组参数的梯度。
ResNGradientsN 组参数的梯度。
ResGradientsAndExpectation单组参数的梯度和期望值。
ResNResGradientsAndExpectationN 组参数的梯度和期望值。

子主题

主题描述
VQCircuitVQCircuit 和 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)

Released under the MIT License.