paddle_quantum.data_analysis.vqls

VQLS模型

hadamard_test(phi, U, num_qubits)

给定酉算子 U 和量子态 \(|\phi\rangle\),计算 U 关于 \(|\phi\rangle\) 的期望,即 \(\langle\phi|U|\phi\rangle\)

参数:
  • phi (State) – 期望值里的量子态。

  • U (paddle.Tensor) – 期望值里的酉算子。

  • num_qubits (int) – 量子态的比特数。

返回:

返回计算的期望值的实数和虚数部分。

返回类型:

Tuple[paddle.Tensor, paddle.Tensor]

hadamard_overlap_test(phi, b, An, Am, num_qubits)

给定酉算子 Am, An 和量子态 \(|\phi\rangle\), b, 计算 \(\langle{b}| An |\phi\rangle\langle\phi| Am^\dagger |b\rangle\) 的值。

参数:
  • phi (State) – 计算里的量子态。

  • b (State) – 计算里的量子态。

  • Am (paddle.Tensor) – 计算里的酉算子。

  • An (paddle.Tensor) – 计算里的酉算子。

  • num_qubits (int) – 量子态的比特数。

返回:

返回计算的实数和虚数部分。

返回类型:

Tuple[paddle.Tensor, paddle.Tensor]

class VQLS(num_qubits, A, coefficients_real, coefficients_img, b, depth)

基类:paddle.nn.Layer

变分量子线性求解器(variational quantum linear solver, VQLS)模型的实现。

参数:
  • num_qubits (int) – 量子电路所包含的量子比特的数量。

  • A (List[paddle.Tensor]) – 分解输入矩阵所需要的酉矩阵列表。

  • coefficients_real (List[float]) – 对应酉矩阵系数的实数部分。

  • coefficients_img (List[float]) – 对应酉矩阵系数的虚数部分。

  • b (State) – 输入答案被编码成的量子态。

  • depth (int) – 模拟电路的深度。

forward()
返回:

返回模型的输出。

返回类型:

paddle.Tensor

compute(A, b, depth, iterations, LR, gamma)

求解线性方程组 Ax=b。

参数:
  • A (numpy.ndarray) – 输入矩阵。

  • b (numpy.ndarray) – 输入向量。

  • depth (int) – 模拟电路的深度。

  • iterations (int) – 优化的迭代次数。

  • LR (float) – 优化器的学习率。

  • gamma (Optional[float]) – 如果损失函数低于此值,则可以提前结束优化。 默认值为 0