搜索

x

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于辅助单比特测量的量子态读取算法

丁晨 李坦 张硕 郭楚 黄合良 鲍皖苏

引用本文:
Citation:

基于辅助单比特测量的量子态读取算法

丁晨, 李坦, 张硕, 郭楚, 黄合良, 鲍皖苏

A quantum state readout method based on a single ancilla qubit

Ding Chen, Li Tan, Zhang Shuo, Guo Chu, Huang He-Liang, Bao Wan-Su
PDF
HTML
导出引用
计量
  • 文章访问数:  3467
  • PDF下载量:  231
  • 被引次数: 0
出版历程
  • 收稿日期:  2021-06-04
  • 修回日期:  2021-07-23
  • 上网日期:  2021-10-19
  • 刊出日期:  2021-11-05

基于辅助单比特测量的量子态读取算法

    基金项目: 青年人才托举工程 (批准号: 2020-JCJQ-QT-030)、国家自然科学基金(批准号: 11905294, 11805279)、国防科技大学高性能计算国家重点实验室开放课题(批准号: 201901-01)和中国博士后科学基金资助的课题

摘要: 在量子计算过程中, 需要通过量子测量读取计算结果. 然而, 受限于物理实现, 对量子态的测量往往存在较大误差, 直接影响量子计算结果的正确提取, 以及限制量子计算的大规模扩展. 本文针对一种特定形式的量子态, 提出基于辅助单比特测量的量子态间接读取算法, 避免多比特测量带来的大量测量误差. 理论和模拟结果表明, 当所读取的量子态比特数较大时, 该算法相比于直接读取具有更高的正确率, 可用于大规模量子纠错和量子态的高保真度读取.

English Abstract

    • 20世纪80年代以来, 量子计算由于具有可快速求解困难问题的强大潜力, 得到了广泛的关注和研究. 人们已经设计出一系列具有加速能力的量子算法, 比如Shor算法[1]、Grover算法[2]、线性方程组量子求解算法[3]等. 量子计算的多种物理平台实现(如超导[4-13]、线性光学[14-24]、离子阱[25]、硅[26, 27]、 原子[28])也取得了巨大的进展, 人们于2019年[29]和2020年[30]两次在不同的量子计算体系上验证了量子霸权(量子优越性), 即证明了量子计算在某些问题上具备极大超越经典计算机的计算能力. 尽管随着理论研究的深入, 随机线路采样的经典模拟速度得到了不断提升[31, 32], 但中国研制的“祖冲之”号超导量子芯片[33]依然可以保持量子优越性. 目前, 量子计算已呈加速发展之势, 并已进入中等尺度含噪声量子(noisy intermediate-scale quantum, NISQ)时代, 具备实现量子机器学习[34-36]、量子盲计算[37-39]等量子计算近期应用的可能.

      影响量子计算大规模扩展的一个主要因素是噪声, 包括门操控误差、读取误差、串扰噪声、退相干噪声等. 不同噪声所带来的影响因不同物理系统而异. 以2019年谷歌实现量子霸权的Sycamore号超导量子计算处理器[29]为例, 读取误差比门操控误差高一个量级(单比特门误差0.16%, 两比特门误差0.62%, 读取误差3.8%). 量子态的读取总误差往往与量子态的比特数呈正相关, 通常来说, 所测量的量子比特数越多, 错误概率也就越大. 但量子态的测量是量子计算过程不可避免的. 在量子算法和量子纠错中, 人们都依赖测量进行计算结果读取和错误探测. 因此, 如何避免或减小测量误差将直接影响量子计算结果的正确提取与量子计算的大规模扩展.

      本文提出一种基于辅助单比特测量的量子态读取算法, 可以避免多比特测量引入的大量误差. 该算法适用于振幅的模长是二值的量子态$\left| a \right\rangle = $$ \displaystyle\sum\nolimits_{i = 0}^M a_i\left| i \right\rangle$, 其中$|a_i|^2\in \{0,\; \dfrac{1}{c}\},\; \forall i\in \Big\{0,\; \cdots,\; M \Big\}$. 它通过引入一个辅助比特, 将量子态的全部振幅编码到这个比特上, 使得仅通过测量这一个比特, 便可解码获取多比特量子态的信息. 对该算法进行了理论分析和数值模拟, 并与量子态的直接测量进行了比较. 结果表明, 当测量噪声较大, 或需读取的量子比特较多时, 本文算法可显著降低测量误差. 该算法适用的量子态具备一定代表性, 如Grover算法的输出态和量子纠错的错误探测比特等. 因此, 本文算法可直接提升部分量子计算过程的性能.

    • 本节将通过伪代码的方式, 介绍提出的基于辅助单比特测量的量子态间接读取算法. 该算法针对如下类型量子态:

      $ \left| a \right\rangle = \sum\limits_{i = 0}^M a_i\left| i \right\rangle , $

      其中量子态的振幅模长是二值的, 即所有振幅满足$|a_i|^2\in \big\{0,\; {1}/{c} \big\},\; \forall i\in \{0,\; \cdots ,\; M\}$, 其中c$ \left| a \right\rangle $中非零振幅的个数. 该形式量子态广泛存在于量子算法的输出中, 比如, 多目标Grover算法[2]所输出的态是所有目标态的均匀叠加.

      通常来说, 通过直接对量子算法的输出态进行测量, 便可读取计算结果. 具体来说, 就是对输出量子态进行多次制备, 每次制备以后, 对其所有比特在自然基矢下进行测量, 从而得到一个结果列表. 当$ \left| i \right\rangle $在结果列表中时, 则认为$|a_i|^2 = {1}/{c}$, 否则认为$ |a_i|^2 = 0 $. 由于直接读取需要读取每一个量子比特, 随着量子态规模的扩展, 读取结果正确性将呈指数级下降. 并且, 直接测量方法每次测量$ \left| a \right\rangle $都只坍缩到振幅非零的基矢上, 它在测出所有的非零振幅前无法确定那些振幅为0的基矢.

      本文提出的间接读取算法就是为了克服以上两个问题. 在已知c的情况下, 可以仅通过一个比特的测量来读出所有振幅模方$ |a_i|^2 $, 并确定其是0还是${1}/{c}$. 算法的大致思路是:

      1) 把$ \left| a \right\rangle $中要读取的振幅通过受控旋转编码到一个辅助比特的振幅上, 得到

      $ \sum a_i(\cos\theta_i\left| a \right\rangle \left| 0 \right\rangle +\sin\theta_i\left| a \right\rangle \left| 1 \right\rangle ), $

      为了使得测量辅助比特能够获取到量子态$ \left| a \right\rangle $的振幅信息, 受控旋转的角度需要特殊设计(具体见算法1).

      2) 测量辅助比特, 得到辅助比特中$ \left| 0 \right\rangle $的概率

      $ A'\approx\sum |a_i|^2\cos^2\theta_i. $

      3) 对$ A' $进行解码, 提取量子态的振幅信息$ |a_i|^2 $.

      根据需要, 可以读取所有的振幅模方$ |a_i|^2 $, 也可以只读取部分的$ |a_i|^2 $, 不同之处只在于受控旋转线路的设计. 而根据上面的讨论, 直接测量无法只读取部分$ |a_i|^2 $.

      下面用伪代码给出我们的读取算法流程.

    • 当需要知道所有基矢上的振幅模方时, 算法为

      Algorithm 1 基于辅助单比特测量的$ |a_i|^2 $读取算法.

      Input: $\left| a \right\rangle =\displaystyle\sum\nolimits_{i=0}^M a_i\left| i \right\rangle$, 其中$|a_i|^2\in\{0, {1}/{c}\}, i\in $$ \{0, \cdots, M\}$, 常数c, 测量次数N.

      Goal: 判断所有$ |a_i|^2 $的取值.

      1)加一个辅助比特, 进行受控旋转: $\left| a \right\rangle \left| 0 \right\rangle \xrightarrow[]{} $$ \displaystyle\sum\nolimits a_i\left| i \right\rangle R_i\left| 0 \right\rangle =\displaystyle\sum\nolimits a_i(\cos\theta_i\left| i \right\rangle \left| 0 \right\rangle +\sin\theta_i\left| i \right\rangle \left| 1 \right\rangle ),$其中$\cos\theta_i=2^{-\tfrac{i}{2}}$.

      2) 在自然基矢下测量辅助比特.

      3) 重复上述步骤N次, 统计得到0的频率$ N_0 $, 设${N_0}/{N}=A'$.

      4) $ i=0 $

      5) while $i \leqslant M$ do

      6)   if $A'\geqslant 1/(2^ic)$ then

      7)    $|a_i|^2 = {1}/{c}$

      8)   else

      9)    $ a_i=0 $

      10)   end if

      11)   $ A'=A'-|a_i|^2/2^i $

      12)   $ i=i+1 $

      13) end while

      Output: $|a_i|^2, \quad i=0, \cdots, M.$

    • 当我们只关注几个特定基矢上的振幅模方时, 算法为

      Algorithm 2 基于辅助单比特测量的部分$ |a_i|^2 $读取算法.

      Input: $\left| a \right\rangle =\displaystyle\sum\nolimits_{i=0}^M a_i\left| i \right\rangle$, 其中$|a_i|^2\in\{0, {1}/{c}\}, i\in $$ \{0, \cdots, M\}$, 常数c, 测量次数N, 需要读取的振幅位置列表$i_1, \cdots, i_m$.

      Goal: 判断$|a_{i_j}|^2, \quad j=1, \cdots, m$的取值.

      1) 加一个辅助比特, 进行受控旋转: $\left| a \right\rangle \left| 0 \right\rangle \xrightarrow[]{} $$ \displaystyle\sum\nolimits_{j=1}^m a_{i_j}\left| i_j \right\rangle R_{i_j}\left| 0 \right\rangle = \displaystyle \sum a_{i_j}(\cos\theta_{i_j}\left| i_j \right\rangle \left| 0 \right\rangle + \sin\theta_{i_j}\left| i_j \right\rangle \left| 1 \right\rangle ),$其中$\cos\theta_{i_j}=2^{-\tfrac{j-1}{2}}$.

      2) 在自然基矢下测量辅助比特.

      3) 重复上述步骤N次, 统计得到0的频率N0, 设N0/N = A'.

      4) $ j=1 $

      5) while $j\leqslant m$ do

      6)   if $A'\geqslant 1/(2^{j-1}c)$ then

      7)    $|a_{i_j}|^2= {1}/{c}$

      8)   else

      9)    $ a_{i_j}=0 $

      10)   end if

      11)   $ A'=A'-|a_{i_j}|^2/2^{j-1} $

      12)   $ j=j+1 $

      13) end while

      Output: $|a_{i_j}|^2, \quad j=1, \cdots, m.$

      事实上, 算法1是算法2的一个特例. 在算法2中, 当$ m = M+1 $$ i_j = j-1 $时, 便可得到算法1. 在算法1和算法2中, 为了保证算法达到所需要的正确概率, N的取值需要根据第3节中分析的正确概率下界$ P_1 $进行给出.

    • 本节将刻画量子比特测量噪声、测量次数等因素对算法正确概率的影响, 并说明算法2在避免测量误差上相比于直接测量存在优势.

      首先考虑测量噪声的一个简单模型. 即每个比特在测量时独立地按固定概率$ \eta $翻转. 此时测量n个比特时, 算法每次执行的正确概率是$ (1-\eta)^n $, N次执行的正确概率为

      $ P_{\text{测量}} = (1-\eta)^{nN}. $

      接着考虑在这种模型下算法2的正确概率. 设$A = \displaystyle\sum\nolimits^M_{i = 0}|a_i|^22^{-i}$, 从算法中对$ |a_i|^2 $的判断步骤可以看出, 当$\epsilon: = |A-A'|\geqslant\dfrac{1}{2^mc}$时, 会造成$ |a_{i_m}|^2 $的判断错误. 而$|A-A'|\leqslant\dfrac{1}{2^mc}$时, 算法能正确得到m$ |a_i|^2 $.

      我们依赖N次测量的统计结果$ A' $来估计A, 每次测量相当于投一个不均匀硬币, 因此有

      $ P(|A'-A|\leqslant \epsilon) = \sum\limits_{k = \left\lceil {\left( {A-\epsilon} \right)N} \right\rceil }^{\left\lfloor {(A+\epsilon)N} \right\rfloor} \left({\begin{aligned}{N}\\{k\;}\end{aligned}}\right)A^k(1-A)^{N-k}. $

      不考虑测量噪声时, 测量N次, 算法的正确概率为

      $ P_{\text{our}} = \sum\limits_{k = \left\lceil {\left( {A-\tfrac{1}{2^mc}} \right)N} \right\rceil }^{\left\lfloor {\left( {A+\tfrac{1}{2^mc}} \right)N} \right\rfloor }\left({\begin{aligned}{N}\\{k\;}\end{aligned}}\right)A^k(1-A)^{N-k}. $

      将测量噪声纳入考虑. 此时, 执行N次1比特测量, 算法的正确概率不小于

      $ \begin{split} & P_1 = P_{\text{测量}}P_{\text{our}}\\ =&\; (1-\eta)^{N}\sum\limits_{k = \left\lceil {\left( {A-\tfrac{1}{2^mc}} \right)N} \right\rceil }^{\left\lfloor {\left( {A+\tfrac{1}{2^mc}} \right)N} \right\rfloor }\left({\begin{aligned}{N}\\{k\;}\end{aligned}}\right)A^k(1-A)^{N-k}. \end{split}$

      在上式中, 直接将$ P_{\text{our}} $$ P_{\text{测量}} $相乘, 表达的是算法的N次测量都得到正确结果, 且算法能正确读出m$ |a_i|^2 $的概率. 当算法的N 次测量中存在错误时, 也有一些可能会正确地读出所需的m$ |a_i|^2 $, 那与所需读取的态$ \left| a \right\rangle $有关, 这里不予考虑.

      作为比较, 考虑另一种读取方法—对$ \left| a \right\rangle $的直接测量, 它直接对寄存器中的n个比特测量N 次, 并根据测量结果推断出对应的振幅模方. 比如, 如果测量结果里含有00, 则推断$|a_{00}|^2 = {1}/{c}$. 注意到直接方法每次测量都会把$ \left| a \right\rangle $投影到某一个振幅非零的基矢上. 在把所有振幅非零的项找到之前, 直接测量并不能确认剩下的振幅是不是0. 因此, 对直接测量方法来说, 读取部分$ |a_i|^2 $和全部$ |a_i|^2 $所需要的算法测量次数是一样的.

      不考虑测量误差时, 不妨设非零振幅对应指标为$1, \cdots, c$, 设$P_{k_1,\cdots, k_l}(N): = P\;(N\text{次测量结果不} $$ \text{包含} k_1, \cdots, k_l)$, 则直接测量方法的正确概率为

      $\begin{split} P_{\text{direct}} =\;& 1-P_{1,\cdots,c}(N) \\ = \;&1-\sum\limits_{1\leqslant i\leqslant c}P_i(N)-\sum\limits_{1\leqslant i\leqslant j\leqslant c}P_{i,j}(N)+\cdots\\ &+(-1)^{c+1}P_{1,\cdots,c}(N) \\ =\;& 1-\left({\begin{aligned}{c}\\{1}\end{aligned}}\right)\left( {1-\frac{1}{c}} \right)^N-\left({\begin{aligned}{c}\\{2}\end{aligned}}\right)\left( {1-\frac{2}{c}} \right)^N+\cdots\\ &+(-1)^{c+1}(1-1)^N \\ = \;&1-\mathop \sum \limits_{k = 1}^{c - 1} \left({\begin{aligned}{c}\\{k}\end{aligned}}\right)\left( {1-\frac{k}{c}} \right)^N(-1)^{k+1}. \end{split}$

      将测量误差纳入考虑. 此时, 由于执行Nn比特测量, 算法的正确概率不小于

      $ \begin{split} \;& P_2 = P_{\text{测量}}P_{\text{direct}}\\ =\;& (1-\eta)^{nN}\left[1-\mathop \sum \limits_{k = 1}^{c - 1} \left({\begin{aligned}{c}\\{k}\end{aligned}}\right)\left( {1-\frac{k}{c}} \right)^N(-1)^{k+1}\right]. \end{split}$

      与计算$ P_1 $的考虑相同, 上式中直接将$ P_{\text{direct}} $$ P_{\text{测量}} $相乘, 表达的是算法的N次测量都得到正确结果, 且算法能正确读出m$ |a_i|^2 $的概率. 本文不考虑算法在测量发生错误时依然正确地读出m$ |a_i|^2 $的情况.

      现在已经得到了两个算法的正确概率$ P_1 $$ P_2 $. 为了直观地比较$ P_1 $$ P_2 $的大小, 计算给定测量次数$ N = 10 $和测量噪声$ \eta $的情况下, 两个算法随机读取一个n比特量子态的平均正确概率, 结果如图1所示.

      图  1  两个算法随机读取多比特量子态的平均正确概率. 在左图中, 测量噪声$\eta$固定为0.05, 研究平均正确概率随测量噪声n的变化. 在右图中, 比特数n固定为3, 研究平均正确概率随测量噪声$\eta$的变化. 平均正确概率的计算方法为随机抽取1000个量子态计算对应的$P_1$$P_2$, 并取平均

      Figure 1.  Average probability of correctness of the two algorithms reading a n-qubit quantum state. In the left subgraph, the number of qubits is 3, and we investigate the dependence of average probability of correctness on the readout noise $\eta$. In the right subgraph, the readout noise $\eta=0.05$, and we investigate the dependence of average probability of correctness on the number of qubits. The values of average probability of correctness are calculated as the average of $P_1$ and $P_2$ on 1000 reading instances.

      图1可以看出, 比特数增加时, 两个算法的平均正确概率都会降低, 但算法2的平均正确概率始终大于直接测量; 测量噪声为0时, 直接测量的平均正确概率比算法2高0.02左右, 但随着测量噪声增大, 两个算法的平均正确概率都会降低, 直接测量的平均正确概率在测量噪声大于0.001时被算法2超过. 因此, 当n或者$ \eta $较大时, $ P_1 $都会高于$ P_2 $, 算法2都具有显然的优势.

    • 用qiskit语言[40]模拟了量子态读取的两个算法(算法2和直接测量算法)在多种情况下的表现, 并进行对比. 所有代码可以在https://github.com/helloinrm/readout查看和下载.

      首先模拟测量噪声对两个算法正确率的影响. 如图2所示, 设置了不同大小的测量噪声$\eta = 0, $$ 0.01, \;\cdots,\; 0.09$, 让算法2和直接测量算法对$ \left| 00 \right\rangle $态进行读取, 并设置测量次数$ N = 1 $. 将算法运行1000次, 并将两个算法对$ \left| 00 \right\rangle $读取正确与否进行统计, 得到算法的正确率和正确率的95%置信区间. 从图2可以看出, 测量噪声$ \eta $为0时, 两个算法正确率为1. 随着测量噪声$ \eta $的增加, 两个算法的正确率都会下降, 但直接测量算法的错误率下降更快.

      图  2  两个算法在多种情况下的正确率比较. 其中实线是正确率, 色带是95%置信区间. 图例中, direct代表直接测量, our代表算法2

      Figure 2.  Correctness rates of two algorithms under multiple circumstances. In the graph, the lines represent the correctness rates while the bands represent the 95% confidence intervals. In the legend, “direct” represents the direct method, “our” represents Alg. 2

      接着, 考察测量比特数对两个算法正确率的影响. 如图2所示, 设置测量噪声$ \eta = 0.05 $ (接近一些物理平台上的测量噪声参数), 让两个算法对不同比特数($n = 2, \cdots, 8$)的$\left| 0\cdots0 \right\rangle$态进行读取, 并设置测量次数$ N = 1 $. 将算法运行1000次, 得到算法的正确率和正确率的$95{\text{%}}$置信区间. 从图2可以看出, 比特数增加时, 算法2的正确率维持在0.05上下, 但直接测量算法正确率不断下降.

    • 在原先的方法中, 对所求振幅的编码方式是$A = \displaystyle\sum\nolimits^M_{i = 0}|a_i|^22^{-i}$, 它所对应的量子态振幅的特点是所有的振幅模方$ |a_i|^2 $等于0或者$ {1}/{c} $. 当所需要读取的振幅模方不再是二值的, 而是属于某一个有限集时, 依然可以通过设计特定的编码方式将这些振幅储存到一个辅助比特中, 并最终读取出来.

      举例来说, 当$ |a_i|^2\in \{0, b, d\}, \quad 0 < b < d $时, 设

      $ \cos\theta_i = q^{-\frac{i}{2}}. $

      此时

      $ A = \mathop \sum \limits_{i = 0}^M |a_i|^2q^{-i}. $

      为了保证从A的取值到所有$ |a_i|^2 $取值存在一一映射, 需要A关于q的高阶项和小于任意低阶项, 即

      $ d\mathop \sum \limits_{i = n}^\infty q^{-i} < \min\{b,d-1\}q^{-n+1}. $

      整理上式得出, q可以取$\min \left\{ {\dfrac{b}{d}, 1 - \dfrac{b}{d}} \right\} + 1$. 此时可以进行如下解码:

      Algorithm 3 离散振幅的解码算法.

      Input: A的估计值$ A' $.

      Goal: 判断$ |a_i|^2 $的取值.

      1) $ i=0 $

      2) while $j\leqslant M$ do

      3)   if $A'\geqslant dq^{-i}$ then

      4)    $ |a_{i_j}|^2=d $

      5)   else if $A'\geqslant bq^{-i}$ then

      6)    $ |a_{i_j}|^2=b $

      7)   else

      8)    $ a_{i_j}=0 $

      9)   end if

      10)   $ A'=A'-|a_{i_j}|^2/q^{j-1} $

      11)   $ j=j+1 $

      12) end while

      Output: $ |a_{i}|^2, \quad i=0, \cdots, M. $

    • 当所要读取振幅个数增多时, 算法执行受控旋转的最大角度不断逼近${\pi}/{2}$. 具体来说, 算法同时读取m个振幅时, $\theta_{\text{max}} = \text{arccos}( {{2^{\tfrac{{1 - m}}{2}}}} ).$ 这对量子计算物理实现中受控旋转的精度提出了较高要求.

      为了增强该算法对目前实现技术的适应性, 可以将振幅读取任务分割成几份, 通过多次调用算法2来避免高精度受控旋转. 比如, 将所需读取的m个振幅分为k份. 在每份中, 将所需读取的振幅指标作为输入调用算法2, 则此时所需进行的最大受控旋转角度是$\theta_{\text{max}} = \text{arccos}( {2^{\tfrac{k-m}{2 k}}})$, 降低了对受控旋转的精度要求.

    • 针对振幅是二值的这种特定形式的量子态, 提出了基于辅助单比特测量的量子态间接读取算法. 这种算法将所要读取的振幅编码到一个辅助量子比特上, 通过对单比特的测量来读取所需振幅. 从而避免了多比特测量带来的大量测量误差. 理论和模拟结果表明, 当所读取的量子态比特数较大时, 该算法相比于直接读取具有更高的正确率. 因此, 它可以用于大规模量子纠错和量子态的高保真度读取. 其高正确率也有助于降低量子算法的执行和测量次数, 有利于量子计算的大规模扩展.

      根据算法所能读取的特定量子态形式, 我们预期其可以在读取多目标Grover算法的输出态和量子纠错的错误探测比特时使用. 同时, 该算法的应用范围可以进行扩展, 以读取具有离散振幅的量子态. 考虑到这种扩展的思路在线路设计和编码方式上都具有较大的灵活度, 我们相信该算法的功能还可以大大扩增, 以符合更多的应用场景.

参考文献 (40)

目录

    /

    返回文章
    返回