[量子计算,与你有关]Part3-量子纠错编码

       欢迎来到YuleZhang的量子计算专栏,本专栏围绕着《量子信息与量子计算》陈汉武编展开,奉行费曼学习法,尽可能的用生动的语言和自己的理解来拆解这本书,从而不断巩固和进步,欢迎与我一起学习,同时也期待你宝贵的建议!

一、前言

       前面我们提到过量子的叠加态、纠缠态等神奇的性质,正是因为这些性质使得量子世界总是蒙着一层面纱,尽管已经拨开重重迷雾,仍是不得见其“素颜”。并且量子的这些状态在量子信道上进行传输时,还会受到环境噪声和自身相干性的影响,导致将要转发的信息“面目全非”。于是类似于传统信道的处理方式(例如海明码纠错等),我们在量子信道中也加入纠错编码,用来保证我们传输数据的准确和可靠性。
在这里插入图片描述

二、经典纠错编码

       为什么不直接学量子纠错编码方式呢,因为量子纠错就是在经典纠错的基础之上发展过来的,只是进行了适当的拓展而已。理解了这个,相信对于量子纠错你就已经掌握一半的内容了,下面来看一看“巨人的肩膀”是什么样的。
       先来设想一个最简单的场景,你要给你远在异地的女朋友发消息。假设这个信道容易被干扰,我们设你发1它收到0和发0收到1的概率为pp,也就是说你女朋友收到正确信息的概率是1p1-p。如下图所示。
在这里插入图片描述
       那么为了保证一定的容错率,为了你的女票能正确收到信息。我们将传送的1bit1bit数据重复三次再发出去,即当你发000表示你要发0,当你发111表示你发的是1。当你女票收到信息之后,采用多数决定法解码,如图所示
在这里插入图片描述
       这样处理确实能够纠正大部分错误,可也有“漏网之鱼”,即当所发的数据中两个或两个以上的比特位都被噪声影响时,那么女票就完全理解错了。这时候我们来计算一下这种情况发生的概率。两个比特错就是C32p2(1p)C_3^2p^2(1-p),三个比特都错就是C33p3C_3^3p^3,设p=0.01p=0.01则,那么其错误概率就是
C32p2(1p)+C33p3=(32p)p2=0.000298<0.01C_3^2p^2(1-p)+C_3^3p^3 = (3-2p)p^2=0.000298<0.01
       可以看到通过三比特重复编码,明显降低了误码率。

三、量子纠错编码

       下面“主角”即将出场——量子纠错编码,通过逻辑门操作结合上述多数决定法来实现量子纠错。这里要注意了!!!量子信道传输出现错误一般有以下三种情况

  1. 比特反转错误
  2. 相位反转错误
  3. 比特和相位都发生反转错误

       而经典的比特传递仅考虑比特反转错误。并且,显然第三种情况是第一种和第二种同时作用的结果,对应的纠错也可以结合。

3.1 bit反转信道的量子纠错编码

       这种情形跟经典信道的反转很类似,还是比较容易处理的。二者的显著区别就是信道中输入的信号变为了ψ=α0+β1|\psi⟩=\alpha|0⟩+\beta|1⟩。类比传统的情况,也就是说有1p1-p的概率收到的没有发生错误,即原样输出。而有pp的概率在传输过程中发生了反转。
       咦,到了这里停一下。量子里面的反转恰好可以用XX门来表示,也就是说有pp的概率使得女票得到XψX|\psi⟩的结果,总结起来就是下图
在这里插入图片描述
       同样的我们把传输的信息重复三次,注意这里使得编码保持线性。所以就有了以下式子,实际传输时的内容为ψ=α000+β111|\psi⟩=\alpha|000⟩+\beta|111⟩

qubit 编码
|0⟩ |0⟩|0⟩|0⟩=|000⟩
|1⟩ |1⟩|1⟩|1⟩=|111⟩

       那么实现信息重复的量子电路是什么样的呢,请看下图
在这里插入图片描述
       可以看到图中有两个控制非门,当输入ψ|\psi⟩为1时,第二位和第三位的0比特都发生反转,也就得到了111|111⟩。同理当输入ψ|\psi⟩为0时,第二位和第三位的0比特不发生反转,得到了000|000⟩,大功告成,这就是编码器了。
       下面考虑解码器的功能,是不是跟传统信道一模一样呢(那个多数决定法)!那么量子电路怎么设计呢,科学家们已经帮我们解决了这个问题,其组成也是控制非门,下面来看看它的结构
在这里插入图片描述
       可以看到,接收方添加2位qubit辅助信息,将其初始化为00|00⟩,同收到的3qubit信息一同送入解码器。若传输的信息没有发生反转,那么经过4个控制非门演算,其状态将顺序发生如下变化
在这里插入图片描述
       只需测量最后2位qubit,就能准确的判断出错误发生的位置。其对应关系如下
在这里插入图片描述
       当我们找出错误比特的位置,那么就能通过XGateX-Gate演算反转自动纠正错误了。
       很显然上述解码过程有些抽象,下面将举一个具体的例子来帮助理解。待发送内容为ψ=α0+β1|\psi⟩=\alpha|0⟩+\beta|1⟩,利用上述的编码器编码得到ψ=α000+β111|\psi⟩=\alpha|000⟩+\beta|111⟩。假设在传输的过程中第2个qubit发生反转错误,即接收方收到了α010+β101\alpha|010⟩+\beta|101⟩。不要着急,将这段序列送入解码器(图4-4)。通过一系列控制非门的运算,那么到虚线处计算的结果为α01011+β10111=(α010+β101)11\alpha|01011⟩+\beta|10111⟩=(\alpha|010⟩+\beta|101⟩)|11⟩       随后测定辅助位,以α2+β2=1|\alpha|^2+|\beta|^2=1的概率测定到辅助位为11|11⟩,查表发现其对应着第二位错误,对第二位实施XGateX-Gate即可得到正确的结果。
       对于bit反转的错误到这里就结束了,总结一下就是先采用三次重复编码器编码,随后传输,收到信息后添加辅助位送入解码器。将解码器的2位辅助输出位查表,找到对应的错误位置,最后XGateX-Gate纠正就完美了!

3.2 位相反转信道的量子纠错编码

       有了上面比特反转的基础,我们就能迅速明确我们发送的信息将以1p1-p的概率在传输时没有被干扰改变,同时也有pp的概率在传输时发生位相反转
       到了这里再停一下,位相反转是不是可以用ZGateZ-Gate来表示呢,于是同理得到了下图(位相反转信道)
在这里插入图片描述
       随后呢,就是将输入ψ=α0+β1|\psi⟩=\alpha|0⟩+\beta|1⟩送入编码器(上图4-3),得到ψ=α000+β111|\psi⟩=\alpha|000⟩+\beta|111⟩。将其经过位相反转信道传送,如果第一位qubit发生了位相反转,即接收方收到的信息为α000β111\alpha|000⟩-\beta|111⟩。对于这种情况显然就不能用比特反转里的多数决定法了,它面对此类问题显然毫无对策。
下面来回顾一下HH门(Hadamard变换)
H=12[1111]H=\frac{1}{\sqrt{2}} \left[ \begin{matrix} 1 & 1\\ 1 & -1\\ \end{matrix} \right]
H门有如下的性质
HH=H2=12[1111][1111]=[1001]=IH*H=H^2=\frac{1}{2} \left[ \begin{matrix} 1 & 1\\ 1 & -1\\ \end{matrix} \right] \left[ \begin{matrix} 1 & 1\\ 1 & -1\\ \end{matrix} \right]= \left[ \begin{matrix} 1 & 0\\ 0 & 1\\ \end{matrix} \right]=I
HZH=12[1111][1001][1111]=[0110]=X HZH=\frac{1}{2} \left[ \begin{matrix} 1 & 1\\ 1 & -1\\ \end{matrix} \right] \left[ \begin{matrix} 1 & 0\\ 0 & -1\\ \end{matrix} \right] \left[ \begin{matrix} 1 & 1\\ 1 & -1\\ \end{matrix} \right]=\left[ \begin{matrix} 0 & 1\\ 1 & 0\\ \end{matrix} \right]=X
       上述公式推算中,II表示单位矩阵,XX表示比特反转门。于是对于位相反转错误可以将其转为比特反转错误,随后再用比特反转信道纠错码就能实现纠错,获取正确的数据,总结如图4-6所示。
在这里插入图片描述
       其中虚线表示信息的不同位置,左侧是发送方,中间是传输过程中,右侧是接收方。下面来看看编码器和解码器的示意图(图4-7和图4-8)。
在这里插入图片描述
在这里插入图片描述
       相信已经非常直观了,为了便于理解,还是举个例子,详细过一遍这个过程。为了描述方便,先用下列方法定义状态+|+⟩|-⟩
+=H0=12[1111][10]=12[11] |+⟩=H|0⟩=\frac{1}{\sqrt{2}} \left[\begin{matrix} 1 & 1\\ 1 &-1 \end{matrix}\right]\left[\begin{matrix} 1 \\ 0 \end{matrix}\right]=\frac{1}{\sqrt{2}}\left[\begin{matrix} 1 \\ 1\end{matrix}\right]
=H1=12[1111][01]=12[11] |-⟩=H|1⟩=\frac{1}{\sqrt{2}} \left[\begin{matrix} 1 & 1\\ 1 &-1 \end{matrix}\right]\left[\begin{matrix} 0\\ 1 \end{matrix}\right]=\frac{1}{\sqrt{2}}\left[\begin{matrix} 1 \\ -1\end{matrix}\right]
       老规矩,信息经过重复码重复三次,随后每一个bit做HH门运算,就能得到以下3qubit的叠加态。
αH0H0H0+βH1H1H1=α++++β \alpha H|0⟩H|0⟩H|0⟩+\beta H|1⟩H|1⟩H|1⟩=\alpha |+++⟩+\beta |---⟩
       上面就是经过编码器编码后的结果,现在就要将这个结果发给对方啦!然鹅,在发送过程中,又有人恶意搞破坏,让第二位qubit发生了位相反转错误。想误导你呵呵,导致对方接收到了α+++β+\alpha|+-+⟩+\beta |-+-⟩。不过还好我们有图4-8解码器。先将得到的内容送入HH门进行运算。根据下面的运算公式我们得到经HH门运算的结果为α010+β101\alpha |010⟩+\beta|101⟩
H+=H(H0)=0H=H(H1)=1 H|+⟩=H(H|0⟩)=|0⟩ \\ H|-⟩=H(H|1⟩)=|1⟩
       下面就又转化成为bit反转问题,将其送入图4-4所示的解码器再进行反转运算就好了。总结一下,相比于bit反转的电路,位相反转在原有的基础上添加了HH门,巧妙的将问题进行了转化,从而最终能解开原有信息的面纱。

3.3 bit和位相同时发生反转

       有了上面的铺垫,这种情况应该比较显而易见了,我们的思路就是先纠正bit反转错误,再将位相错误转为bit反转错误,最后再次纠正bit反转错误,就能得到正确信息。带着这个思路,下面我们来看看编码器的样子。
在这里插入图片描述
       HH门及之前的很容易理解,跟位相反转一样。随后又在输出之前每一bit添加了重复三次操作,这主要是为了能够直接用来纠正bit反转错误
       到了这里可能有人会问了,为什么最开始的三位重复qubit不能直接用来纠正bit反转错误呢。还记得上面提到的位相反转错误最终转为bit反转错误吗?因此,开始的三位重复qubit是用来给位相反转处理后的bit反转预留的重复码,是留着用来完成位相错误纠正操作的。
       下面来看看解码器的示意图
在这里插入图片描述
       从图中可以看到,与我们上述描述一致,先对每一位纠正bit错误,随后直接送入4-8的位相反转纠正电路就能成功搞定bit和位相同时发生错误的纠错电路。
       以上就是本次学习的主要内容,内容有一些抽象,需要反复理解巩固!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章