paddle_quantum.hamiltonian

哈密顿量的功能实现。

class Hamiltonian(pauli_str, compress=True)

基类: object

Paddle Quantum 中的 Hamiltonian class

用户可以通过一个 Pauli string 来实例化该 class

参数:
  • pauli_str (list) – 用列表定义的 Hamiltonian,如 [(1, 'Z0, Z1'), (2, 'I')]

  • compress (bool, optional) – 是否对输入的 list 进行自动合并(例如 (1, 'Z0, Z1')(2, 'Z1, Z0') 这两项将被自动合并),默认为 True

备注

compressFalse, 则不会检查输入的合法性。

property n_terms

该哈密顿量的项数。

property pauli_str

该哈密顿量对应的 Pauli string。

property terms

该哈密顿量中的每一项,i.e. [['Z0, Z1'], ['I']]

property coefficients

该哈密顿量中每一项的系数,i.e. [1.0, 2.0]

property pauli_words

该哈密顿量中每一项对应的 Pauli word 构成的列表,i.e. ['ZIZ', 'IIX']

property pauli_words_r

该哈密顿量中每一项对应的简化(不包含 I) Pauli word 组成的列表,i.e. ['ZXZZ', 'Z', 'X']

property pauli_words_matrix

该哈密顿量中每一项对应的简化(不包含 I) Pauli word 对应的 matrix 组成的列表。

property sites

该哈密顿量中的每一项对应的量子比特编号组成的列表。

property n_qubits

该哈密顿量对应的量子比特数。

decompose_with_sites()

将 pauli_str 分解为系数、泡利字符串的简化形式以及它们分别作用的量子比特下标。

返回:

包含如下元素的 tuple:

  • coefficients: 元素为每一项的系数。

  • pauli_words_r: 元素为每一项的泡利字符串的简化形式,例如 ‘Z0, Z1, X3’ 这一项的泡利字符串为 ‘ZZX’。

  • sites: 元素为每一项作用的量子比特下标,例如 ‘Z0, Z1, X3’ 这一项的 site 为 [0, 1, 3]。

返回类型:

Tuple[list]

decompose_pauli_words()

将 pauli_str 分解为系数和泡利字符串。

返回:

包含如下元素的 tuple:

  • coefficients: 元素为每一项的系数。

  • pauli_words: 元素为每一项的泡利字符串,例如 ‘Z0, Z1, X3’ 这一项的泡利字符串为 ‘ZZIX’。

返回类型:

Tuple[list]

construct_h_matrix(qubit_num=None)

构建 Hamiltonian 在 Z 基底下的矩阵。

参数:

qubit_num (int, optional) – 量子比特数量,默认值为 1

返回:

Z 基底下的哈密顿量矩阵形式。

返回类型:

np.ndarray

class SpinOps(size, use_sparse=False)

基类: object

矩阵表示下的自旋算符,可以用来构建哈密顿量矩阵或者自旋可观测量。

参数:
  • size (int) – 系统的大小

  • use_sparse (bool, optional) – 是否使用 sparse matrix 计算,默认为 False

property sigz_p

\(S^z_i\) 算符组成的列表,其中每一项对应不同的 \(i\)

property sigy_p

\(S^y_i\) 算符组成的列表,其中每一项对应不同的 \(i\)

property sigx_p

\(S^x_i\) 算符组成的列表,其中每一项对应不同的 \(i\)