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

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

一、前言

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

二、经典纠错编码

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

三、量子纠错编码

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

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

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

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

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

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

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

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

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

3.3 bit和位相同时发生反转

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

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值