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",
    init_state: list[complex] = []
) -> 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")
init_statelist[complex]Initial state vector to start from instead of |0...0> (new in 0.5.0)

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}")

运行结果:

Expectation value: 0.4387912809451864

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",
    init_state: list[complex] = []
) -> 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")
init_statelist[complex]Initial state vector to start from instead of |0...0> (new in 0.5.0), e.g. a state produced by an earlier simulation and read back via QResult.get_state_vector()

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}")

运行结果:

Expectation of Z on |+>: 0.0

See Also ​

Released under the MIT License.