你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

用于量子计算的线性代数

线性代数是量子计算的语言。 虽然你无需了解它即可实现或编写量子程序,但线性代数已被广泛用于描述量子比特的状态和量子操作,并用于预测量子计算机执行哪些操作来响应一系列说明。

就像熟悉量子物理学的基本概念可以帮助你了解量子计算一样,了解一些线性代数基础知识也可以帮助你了解量子算法的工作原理。 至少需要熟悉向量和矩阵乘法 。 如需重温这些代数概念的知识,请参阅下面这些介绍基础知识的教程:

量子计算中的向量和矩阵

一个量子比特的状态可能为 1 或 0,或者为这两种状态的叠加。 使用线性代数时,量子比特的状态被描述为向量,并由单列 矩阵$\begin{bmatrix} a b \\\end{bmatrix}$表示。 它也称为量子状态向量,必须满足 a|^2 + |b|^2 = 1$ 的要求$|。

矩阵的元素表示量子比特以某种方式折叠的概率,其中 $|a^2$ 表示折叠为零的概率,$|b|^2$ 表示折叠为| 1 的概率。 以下矩阵均表示有效的量子状态向量:

$$\begin{bmatrix}1 \\ 0\end{bmatrix}、 \begin{bmatrix} 0 \\ 1 \end{bmatrix}、{1}{\sqrt{2}}\begin{bmatrix}\frac{{1}{\sqrt{2}}\\\end{bmatrix}\frac{、\\\frac{{-1}{\sqrt{2}}\frac{1}{\sqrt{\begin{bmatrix}\text{\end{bmatrix}{2}} 和{2}}}\begin{bmatrix}\frac{1}{\sqrt{\frac{\\ -i。$$}{\sqrt{2}}\end{bmatrix}量子运算也可以由矩阵表示。 将量子操作应用于量子比特时,代表它们的两个矩阵将相乘,得到的答案表示执行该操作后量子比特的新状态。

下面是用矩阵乘法表示的两个常见的量子操作。

运算 X 由 Pauli 矩阵 $X$ 表示,

$$X =0 amp; 1 \\ 1 & 0 \end{bmatrix},&\begin{bmatrix}$$

用于将量子比特的状态从 0 翻转到 1(反之亦然),例如

$$\begin{bmatrix}0 &1\\ 1 &安培0\end{bmatrix}\begin{bmatrix} 1 \\ 0 \end{bmatrix}\begin{bmatrix}=0 \\ 1 。\end{bmatrix}$$

运算 H 由 Hadamard 转换 $H$ 表示,

$$H = \dfrac{1}{\sqrt{2}}\begin{bmatrix}1 &1\\ 1 &-1\end{bmatrix},$$

并将量子比特置于叠加状态,在这种状态下它甚至有可能以任一方式坍缩,如下所示

$$\frac{{1}{\sqrt{{2}}\begin{bmatrix}1 &安1\\ 1 &-1\end{bmatrix}\begin{bmatrix} 1 \\ 0 \end{bmatrix}=\frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ 1 \end{bmatrix}。$$

请注意, $|a|^2 =|b|^2 =\frac{1}{2}$,表示折叠到零和一个状态的概率是相同的。

代表量子操作的矩阵有一个要求 - 该矩阵必须是酉矩阵。 只要矩阵的逆等于矩阵的共轭转置,就是酉矩阵 。

表示两个量子比特的状态

在上面的示例中,使用单列矩阵 $\begin{bmatrix} a \\ b \end{bmatrix}$描述了一个量子比特的状态,并通过将两个矩阵相乘来描述对其应用运算。 但如果量子计算机使用多个量子比特,那么如何描述两个量子比特的组合状态呢?

注意

量子计算的真正强大来自于利用多个量子比特来执行计算。 有关本主题的深入探讨,请参阅 针对多个量子比特的操作

请记住,每个量子比特都是一个向量空间,因此不能只将其相乘。 而是使用 张量乘积,这是一个相关操作,用于从单个向量空间创建新的向量空间,并由 $\otimes$ 符号表示。 例如,计算两个量子比特状态 $\begin{bmatrix} a \\ b \end{bmatrix}$ 和 $\begin{bmatrix} c \\ d \end{bmatrix}$ 的张量积

$$\begin{bmatrix}a \\ b \end{bmatrix}\begin{bmatrix}\otimesc \\ d=\begin{bmatrix}\end{bmatrix}a \begin{bmatrix} c \\ d\\\end{bmatrix}b \begin{bmatrix}c \\ d=\end{bmatrix}\end{bmatrix}\begin{bmatrix} ac \\ ad \\ bc \\ bd .\end{bmatrix} $$

结果是一个四维矩阵,其中每个元素都代表一个概率。 例如, $ac$ 是两个量子比特崩溃到 0 和 0 的概率, $ad$ 是 0 和 1 的概率,依依此。

正如单个量子比特状态 a b 必须满足 a|^2 + |b|^2 = 1$ 才能表示量子状态的要求$|一样,双量子比特状态 $\begin{bmatrix} ac \\ ad \\ bc \\ bd \end{bmatrix}$ 必须满足 ac|^2 + |ad|^2 + |bc^2+ |bd||^2 = 1$ 的要求$|。\end{bmatrix}$\\$\begin{bmatrix}

总结

线性代数是用于描述量子计算和量子物理学的标准语言。 尽管 Microsoft Quantum Development Kit 附带的标准库可帮助你运行高级量子算法,而无需深入了解基础数学,但了解基础知识可帮助你快速入门,并提供坚实的基础来构建。

后续步骤