vqcircuit Module
The pyqpanda3.vqcircuit module provides variational quantum circuit construction, parameter management, and gradient computation. It is the foundation for building parameterized quantum circuits used in variational quantum algorithms such as VQE and QAOA.
Overview
The vqcircuit module enables you to:
- Construct variational circuits using
VQCircuit, which supports inserting both fixed quantum gates and variational quantum gates with learnable parameters. - Manage parameters through a multi-dimensional
Parametersystem with named labels, and build parameter expressions usingParamExpressionfor arithmetic combinations of placeholders. - Bind parameters and evaluate circuits by calling a
VQCircuitwith a NumPy array of parameter values, producing aVQCResultthat contains the generated concrete circuits. - Compute gradients of expectation values with respect to parameters via the adjoint differentiation method, returning structured gradient result objects.
- Reuse sub-circuits by appending one
VQCircuitinto another with a placeholder remapping, enabling modular ansatz design.
Key Classes
| Class | Description |
|---|---|
VQCircuit | A variational quantum circuit that holds parameterized gates and generates concrete circuits from parameter values. |
VQCResult | The result of binding parameters to a VQCircuit; provides access to generated circuits and expectation value computation. |
Parameter | Represents a multi-dimensional array of variational parameters with labeled dimensions and elements. |
ParamExpression | An arithmetic expression over parameter placeholders, supporting addition and multiplication. |
DiffMethod | Enum selecting the differentiation strategy for gradient computation. |
Gradient Result Classes
| Class | Description |
|---|---|
ResGradients | Gradients for a single group of parameters. |
ResNGradients | Gradients for N groups of parameters. |
ResGradientsAndExpectation | Gradients and expectation value for a single group of parameters. |
ResNResGradientsAndExpectation | Gradients and expectation values for N groups of parameters. |
Sub-topics
| Topic | Description |
|---|---|
| VQCircuit | VQCircuit and VQCResult class reference |
| Gradient Results | ResGradients, ResNGradients, and related classes |
| Parameter | Parameter and ParamExpression class reference |
| DiffMethod | Differentiation method enumeration |
Quick Example
python
import numpy as np
from pyqpanda3.vqcircuit import VQCircuit, DiffMethod
from pyqpanda3.core import RX
from pyqpanda3.hamiltonian import Hamiltonian
# Build a simple variational circuit on 2 qubits
vqc = VQCircuit()
vqc.set_Param([4]) # 4 variational parameters
# Insert a variational RX gate using the first parameter placeholder
from pyqpanda3.core import RX
vqc << RX(0, vqc.Param([0]))
# Bind parameters and get concrete circuits
result = vqc(np.array([0.5, 1.0, 1.5, 2.0]))
# Compute gradients
hamiltonian = Hamiltonian(...)
grads = vqc.get_gradients(np.array([0.5, 1.0, 1.5, 2.0]), hamiltonian, DiffMethod.ADJOINT_DIFF)