Skip to content

期望值 — 哈密顿量与泡利期望值

期望值计算函数的 API 参考。这些函数计算可观测量算符相对于量子程序制备的量子态的期望值。

expval_hamiltonian

计算哈密顿量算符相对于给定程序制备的量子态的期望值。

签名

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

参数

参数类型说明
progQProg制备态的量子程序
hamiltonianHamiltonian哈密顿量算符
shotsint测量 shot 数(默认 1)
modelNoiseModel模拟的噪声模型(默认理想)
used_threadsint并行线程数(默认 4)
backendstr计算后端:"CPU""GPU"(默认 "CPU"

返回

float — 哈密顿量的期望值 ψ|H|ψ

示例

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

# 构建态制备线路
prog = QProg()
prog << H(0) << CNOT(0, 1) << RX(0, 0.5)

# 定义哈密顿量:H = 0.5 * Z0 Z1 + 0.3 * X0
pauli_op = PauliOperator({"Z0 Z1": 0.5, "X0": 0.3})
ham = Hamiltonian(pauli_op)

# 计算期望值
exp_val = expval_hamiltonian(prog, ham, shots=1000)
print(f"Expectation value: {exp_val}")

数学背景

期望值计算如下:

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

其中 H=iciPi 是分解为泡利项的形式。

expval_pauli_operator

计算泡利算符相对于给定程序制备的量子态的期望值。

签名

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

参数

参数类型说明
progQProg制备态的量子程序
pauli_operatorPauliOperator泡利算符
shotsint测量 shot 数(默认 1)
modelNoiseModel模拟的噪声模型(默认理想)
used_threadsint并行线程数(默认 4)
backendstr计算后端:"CPU""GPU"(默认 "CPU"

返回

float — 泡利算符的期望值。

示例

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

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

# 定义泡利算符:Z0
pauli_op = PauliOperator({"Z0": 1.0})

# 计算期望值(对于 |+> 态应该约为 0)
exp_val = expval_pauli_operator(prog, pauli_op, shots=1000)
print(f"Expectation of Z on |+>: {exp_val}")

另见

Released under the MIT License.