Skip to content

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 Parameter system with named labels, and build parameter expressions using ParamExpression for arithmetic combinations of placeholders.
  • Bind parameters and evaluate circuits by calling a VQCircuit with a NumPy array of parameter values, producing a VQCResult that 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 VQCircuit into another with a placeholder remapping, enabling modular ansatz design.

Key Classes

ClassDescription
VQCircuitA variational quantum circuit that holds parameterized gates and generates concrete circuits from parameter values.
VQCResultThe result of binding parameters to a VQCircuit; provides access to generated circuits and expectation value computation.
ParameterRepresents a multi-dimensional array of variational parameters with labeled dimensions and elements.
ParamExpressionAn arithmetic expression over parameter placeholders, supporting addition and multiplication.
DiffMethodEnum selecting the differentiation strategy for gradient computation.

Gradient Result Classes

ClassDescription
ResGradientsGradients for a single group of parameters.
ResNGradientsGradients for N groups of parameters.
ResGradientsAndExpectationGradients and expectation value for a single group of parameters.
ResNResGradientsAndExpectationGradients and expectation values for N groups of parameters.

Sub-topics

TopicDescription
VQCircuitVQCircuit and VQCResult class reference
Gradient ResultsResGradients, ResNGradients, and related classes
ParameterParameter and ParamExpression class reference
DiffMethodDifferentiation 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)

Released under the MIT License.