量子计算基础——量子测量_javascript

量子的世界与经典的世界存在着信息的隔阂,我们可以通过多个量子比特所构成的量子态去存储大量的信息,以及进行规模大到经典计算机所无法执行的运算。但是毕竟我们还依然生活在经典的世界中,最终我们还是需要将量子态坍缩到经典比特再进行读取,而这个使得量子态坍缩的过程,就是一种量子测量的方法。通过大量的量子测量,我们就可以近似的获得到量子态矢量中所存储的信息。

技术背景

在上一篇​​博客​​中,我们用矩阵的语言介绍了量子计算中基本量子单元——量子比特,与量子门操作的相关概念。通过对量子态的各种操作,相当于传统计算机中对经典比特的操作,就可以完成一系列的运算了。但是量子计算的一个待解决的问题是,所有存储在量子态中的信息是没办法从经典世界直接读取的,只能通过量子测量,使得量子态坍缩到经典比特之后,才能够在经典世界里进行读取。

量子测量的矩阵形式

如果通过各种量子门操作构成的量子线路,也称为量子算法,会使得一个给定的量子态\(\left|\psi_0\right>\)变化到目标量子态\(\left|\psi_t\right>\)。那么以当前时代的量子计算机的条件来说,还没办法做到直接在量子态上存储和读取信息,只能够将其坍缩到经典比特上,去获取测量得到的分布信息,以此来近似为真实的量子态信息。当然,这个过程需要大量的测量。举一个具体的例子来说,假如我们对一个初始态为\(\left|0\right>\)的量子比特作用一个\(H\)门,那么得到的结果是:

\[H\left|0\right>=\frac{\sqrt{2}}{2}\left|0\right>+\frac{\sqrt{2}}{2}\left|1\right>=\left( \begin{matrix} \frac{\sqrt{2}}{2}\\ \frac{\sqrt{2}}{2} \end{matrix} \right) \]

那么最终量子测量所得到的概率应该为\(\left|0\right>:50%,\left|1\right>:50%\),而我们如果实际去测量的话,以IBM Composer(参考链接1)为例,就会得到这样的采样(通过量子测量得到经典统计结果的过程,也可以称之为采样)结果:

量子计算基础——量子测量_javascript_02

可以看到,采样得到量子态并不是完全等同于理论预测值,但是也非常的接近,采样得到\(\left|1\right>\)态的概率约为:49.22%。需要明确的是,这个误差是来自于测量本身的统计误差,随着测量次数的增长,这个误差会被逐渐的消减。而在真实的量子计算机上面去运行这样的程序的话,还有可能存在系统误差、环境误差等影响,这也是当前的量子计算机还得不到重大应用的根本原因所在。

那么回到我们所讲述的量子测量,可以看到在IBM Composer的截图中,我们在Hadamard门之后加了一个Measure的操作,并且在Measure操作的logo上还带了一个Z的字母,这表示的是量子测量在Z轴上进行,可以简单的理解为,把一个布洛赫球上的量子态矢量投影到Z轴上进行读取,最后得到一个统计的结果,布洛赫球的示意图如下所示:

量子计算基础——量子测量_量子计算_03

如果用数学矩阵来表示的话,Measure在量子计算中使用到了一个Observable观测量的概念,通过给定测量基,来使得量子态矢量坍缩,我们假定这样的一组测量基:

\[O_0=\left|0\right>\left<0\right|=\left( \begin{matrix} 1&0\\ 0&0 \end{matrix} \right)\\ O_1=\left|1\right>\left<1\right|=\left( \begin{matrix} 0&0\\ 0&1 \end{matrix} \right) \]

这里所使用的狄拉克符号,其实就是横向量与列向量,只是一个物理学上常用的简写标记,我们重点关注一下测量基的应用。测量基得到的结果是这样的形式:

\[P=\left<\psi_t\right|O\left|\psi_t\right> \]

然后把我们上述所得到的量子态矢量与测量基矩阵代入到上面的这个式子中,就可以得到以下的测量结果:

\[P_0=\left( \begin{matrix} \frac{\sqrt{2}}{2}& \frac{\sqrt{2}}{2} \end{matrix} \right)\left( \begin{matrix} 1&0\\ 0&0 \end{matrix} \right)\left( \begin{matrix} \frac{\sqrt{2}}{2}\\ \frac{\sqrt{2}}{2} \end{matrix} \right)=\left( \begin{matrix} \frac{\sqrt{2}}{2}& \frac{\sqrt{2}}{2} \end{matrix} \right)\left( \begin{matrix} \frac{\sqrt{2}}{2}\\ 0 \end{matrix} \right)=\frac{1}{2}\\ P_1=\left( \begin{matrix} \frac{\sqrt{2}}{2}& \frac{\sqrt{2}}{2} \end{matrix} \right)\left( \begin{matrix} 0&0\\ 0&1 \end{matrix} \right)\left( \begin{matrix} \frac{\sqrt{2}}{2}\\ \frac{\sqrt{2}}{2} \end{matrix} \right)=\left( \begin{matrix} \frac{\sqrt{2}}{2}& \frac{\sqrt{2}}{2} \end{matrix} \right)\left( \begin{matrix} 0\\ \frac{\sqrt{2}}{2} \end{matrix} \right)=\frac{1}{2} \]

这就等同于我们在Z轴的测量基下所计算得的理论预期结果,跟上述IBM Composer所得到的结果是一致的,这就是量子测量的最基本的运算。而在真正的量子算法实现过程中,尤其以近几年非常热门的NISQ(Near Term Intermediate Scale Quantum Computing)近期量子算法为例,其用于测量的测量基有依赖于实际的待求解问题,需要在实验过程中构造非常复杂的测量基,这个就留着后面的NISQ专题再进行介绍。

总结概要

量子的世界与经典的世界存在着信息的隔阂,我们可以通过多个量子比特所构成的量子态去存储大量的信息,以及进行规模大到经典计算机所无法执行的运算。但是毕竟我们还依然生活在经典的世界中,最终我们还是需要将量子态坍缩到经典比特再进行读取,而这个使得量子态坍缩的过程,就是一种量子测量的方法。通过大量的量子测量,我们就可以近似的获得到量子态矢量中所存储的信息。

作者ID:DechinPhy

腾讯云专栏同步:​​https://cloud.tencent.com/developer/column/91958​

参考链接

  1. ​https://quantum-computing.ibm.com/composer/​
  2. The Basics of Quantum Computing for Chemists. Daniel Claudino.

“留一手”加剧内卷,“讲不清”浪费时间。