Skip to content

Expectation — Hamiltonian and Pauli Expectation Values

API reference for expectation value computation functions. These functions compute the expected value of observable operators with respect to quantum states prepared by quantum programs.

expval_hamiltonian

Computes the expectation value of a Hamiltonian operator with respect to the quantum state prepared by a given program.

Signature

python
expval_hamiltonian(
    prog: QProg,
    hamiltonian: Hamiltonian,
    shots: int = 1,
    model: NoiseModel = NoiseModel(),
    used_threads: int = 4,
    backend: str = "CPU"
) -> float

Parameters

ParameterTypeDescription
progQProgQuantum program preparing the state
hamiltonianHamiltonianThe Hamiltonian operator
shotsintNumber of measurement shots (default 1)
modelNoiseModelNoise model for simulation (default ideal)
used_threadsintNumber of parallel threads (default 4)
backendstrComputation backend: "CPU" or "GPU" (default "CPU")

Returns

float — The expectation value ψ|H|ψ of the Hamiltonian.

Examples

python
from pyqpanda3.core import H, CNOT, RX, QProg, expval_hamiltonian
from pyqpanda3.hamiltonian import PauliOperator
from pyqpanda3.hamiltonian import Hamiltonian

# Build a state preparation circuit
prog = QProg()
prog << H(0) << CNOT(0, 1) << RX(0, 0.5)

# Define a Hamiltonian: H = 0.5 * Z0 Z1 + 0.3 * X0
pauli_op = PauliOperator({"Z0 Z1": 0.5, "X0": 0.3})
ham = Hamiltonian(pauli_op)

# Compute expectation value
exp_val = expval_hamiltonian(prog, ham, shots=1000)
print(f"Expectation value: {exp_val}")

Mathematical Background

The expectation value is computed as:

H=ψ|H|ψ=iciψ|Pi|ψ

where H=iciPi is the decomposition into Pauli terms.

expval_pauli_operator

Computes the expectation value of a Pauli operator with respect to the quantum state prepared by a given program.

Signature

python
expval_pauli_operator(
    prog: QProg,
    pauli_operator: PauliOperator,
    shots: int = 1,
    model: NoiseModel = NoiseModel(),
    used_threads: int = 4,
    backend: str = "CPU"
) -> float

Parameters

ParameterTypeDescription
progQProgQuantum program preparing the state
pauli_operatorPauliOperatorThe Pauli operator
shotsintNumber of measurement shots (default 1)
modelNoiseModelNoise model for simulation (default ideal)
used_threadsintNumber of parallel threads (default 4)
backendstrComputation backend: "CPU" or "GPU" (default "CPU")

Returns

float — The expectation value of the Pauli operator.

Examples

python
from pyqpanda3.core import H, QProg, expval_pauli_operator
from pyqpanda3.hamiltonian import PauliOperator

prog = QProg()
prog << H(0)

# Define Pauli operator: Z0
pauli_op = PauliOperator({"Z0": 1.0})

# Compute expectation value (should be ~0 for |+> state)
exp_val = expval_pauli_operator(prog, pauli_op, shots=1000)
print(f"Expectation of Z on |+>: {exp_val}")

See Also

Released under the MIT License.