mindquantum.algorithm.nisq.uccsd_singlet_get_packed_amplitudes
- mindquantum.algorithm.nisq.uccsd_singlet_get_packed_amplitudes(single_amplitudes, double_amplitudes, n_qubits, n_electrons)[源代码]
提取单态UCCSD算子的振幅系数。输出列表仅包含与单态UCCSD相关的振幅,顺序与 uccsd_singlet_generator 保持一致。
- 参数:
single_amplitudes (numpy.ndarray) - \(N\times N\) 维的数组,该数组存储着 \(t_{i,j} * (a_i^\dagger a_j - \text{H.C.})\) 和对应的排序好的单激发算符的振幅。
double_amplitudes (numpy.ndarray) - \(N\times N\times N\times N\) 数组,该数组存储着 \(t_{i,j,k,l} * (a_i^\dagger a_j a_k^\dagger a_l - \text{H.C.})\) 和对应的排序好的双激发算符的振幅。
n_qubits (int) - 用于表示系统的自旋轨道数,这也对应于非紧凑映射中的量子比特数。
n_electrons (int) - 物理系统中电子的数量。
- 返回:
ParameterResolver,存储着所有单激发态和双激发态算符的系数。在返回的系数中,单激发态系数位于双激发态之前。
样例:
>>> import numpy as np >>> from mindquantum.algorithm.nisq.chem import uccsd_singlet_get_packed_amplitudes >>> n_qubits, n_electrons = 4, 2 >>> np.random.seed(42) >>> ccsd_single_amps = np.random.random((4, 4)) >>> ccsd_double_amps = np.random.random((4, 4, 4, 4)) >>> uccsd_singlet_get_packed_amplitudes(ccsd_single_amps, ccsd_double_amps, ... n_qubits, n_electrons) {'d1_0': 0.76162, 's_0': 0.601115}, const: 0