Pauli 工具
Pauli 工具用于在矩阵、Pauli 串和量子线路之间转换,并支持乘积、幂、对易子及带状矩阵候选集。Pauli 串最左侧字符对应 qubit 0。
推荐导入与最小示例
import numpy as np
from unitarylab.library.pauli_operator.pauli_string_decomposition import (
pauli_string_decomposition,
pauli_string_to_matrix,
)
H = np.array([[1.0, 0.5], [0.5, -1.0]], dtype=complex)
terms = pauli_string_decomposition(H)
recovered = pauli_string_to_matrix(terms)
print(terms)
print(np.allclose(H, recovered))pauli_string_decomposition() 返回 list[tuple[str, complex]],不是字典。默认丢弃绝对值小于 的系数。
接口分类
from unitarylab.library.pauli_operator.pauli_string_decomposition import (
pauli_string_decomposition,
pauli_string_to_matrix,
pauli_string_circuit,
pauli_string_evolution,
pauli_string_multiply,
pauli_string_product,
pauli_string_power,
pauli_string_commutator,
pauli_string_band_matrix,
pauli_string_band_matrix_prepared,
)| 接口 | 输入 | 返回 |
|---|---|---|
pauli_string_decomposition(H, sets=None, partition_commuting=True, real_symmetric_hint=False) | 厄米矩阵 | Pauli 项列表 |
pauli_string_to_matrix(decomposition) | 字符串、单项、列表或字典 | NumPy 矩阵 |
pauli_string_circuit(pauli_string) | 如 "XYZ" | 对应 Pauli 操作线路 |
pauli_string_evolution(pauli_string, theta) | Pauli 串和旋转角 | 线路 |
pauli_string_multiply(p1, p2) | 等长 Pauli 串 | (pauli_string, phase) |
pauli_string_product(decomposition) | 多个 Pauli 项 | 合并后的 Pauli 串和系数 |
pauli_string_power(decomposition, order) | Pauli 展开与非负整数阶 | 展开后的幂 |
pauli_string_commutator(p1, p2) | 等长 Pauli 串 | 对易子的 Pauli 串和系数 |
pauli_string_band_matrix(n_qubits, width, as_tuple=False) | 量子比特数与带宽 | 带状矩阵候选 Pauli 集 |
pauli_string_band_matrix_prepared(n_qubits, width) | 量子比特数与带宽 | 预处理后的候选集 |
分解选项
sets:只在指定的 Pauli 候选集中分解。partition_commuting=True:按对易关系重排结果,便于分组测量。real_symmetric_hint=True:输入确认是实对称矩阵时,跳过含奇数个Y的候选项。
矩阵维度必须为 ,并满足厄米性。Pauli 字符串只能包含 I、X、Y、Z;乘积和对易子的两个字符串必须等长。候选集过窄会遗漏矩阵分量,使用 sets 后应通过矩阵回构验证。
资源限制
完整 Pauli 基含 个字符串,通用分解会随量子比特数快速增长。已知矩阵结构时优先使用 real_symmetric_hint、sets 或带状矩阵候选集,并在小规模上检查 np.allclose()。
相关页面
最后更新于