6.4 HHL算法

6.4.1 HHL算法介绍

HHL算法是一个用量子计算机解决线性问题Ax=b最优解的算法,广泛的被应用于许多量子机器学习算法中(如支持向量机SVM,主成分分析PCA等等)。量子算法在其经典计算对比下,呈指数级加速。Harrow, Hassidim 和 Lloyd(HHL)提出了一种求解线性系统 Ax=b (其中A是算子,x,b是向量)中x信息的量子线性系统分析。HHL算法解决了什么样的问题?那就是求解线性方程的问题。

HHL算法的输入和输出:

  • 输入:一个n*n的矩阵A和一个n维向量b,
  • 输出:n维向量x,满足Ax=b。
../../_images/hhl_1.png

HHL的限制条件:

  1. 输入的矩阵,必须是adjoint矩阵,当A不是Hermitian时,需要构造成adjoint矩阵。算法的输入部分如图1中红色方框所标出。输入q[2]存放在底部寄存器中,输入A作为相位估计中酉算子的一个组成部分。
  2. 输出x的形式:算法的输出如红色部分标出(同一个寄存器)。底部寄存器存放的是一个蕴含了向量x的量子态。 此处不需要知道这个状态具体情况。
../../_images/hhl_2.png

6.4.2 HHL算法的实现

下面给出 QRunes 实现 HHL 算法的代码示例:

6.4.3 HHL算法小结

线性系统是很多科学和工程领域的核心,由于HHL算法在特定条件下实现了相较于经典算法有指数加速效果,从而未来能够在机器学习、数值计算等场景有优势体现。配合Grover算法在数据方面的加速,将是未来量子机器学习,人工智等科技得以突破的关键性技术。