五、量子纠错编码的原理

五、量子纠错编码


1.编码的背景


       前面我们讲述了量子密钥分配、量子高密度编码、量子隐形传态等概念及其相关内容,它们都需要传送 qubit 信息,或者需要共同拥有纠缠状态,因此我们需要无失真传送 qubit 信息的量子信道。但是现实中在量子信道上和量子存储设备中,由于各种噪声和量子自身的相干性,极易引发量子信息出错。为了克服由此引发的信息出错,量子信息学引入了经典信息学中的信道编码体系,即通过构造信息状态的自身重复、增加冗余方法达到系统能够自动纠正出错信息的目的,确保信息无误。


2.经典纠错编码


       首先我们先了解一下经典纠错码的重复码。对于传送比特的信道,在信道中传输时会以一定的概率出现比特错误,比如将比特 1 翻转为 0 ,或将比特 0 翻转为 1 。为了提高传送信息的可信度,我们通过在传送 1 bit 信息时将要传送的信息重复 3 次再发出去(信道编码),也就是按照下面的方式发送信息:

要发送的信息送往信道的 bit 列
0000
1111

       接收者在接收到信道的信息后,必须判断接收的信息是 0 还是 1 ,这个时候只需要数一下接收到的信息中 0 和 1 出现的次数,并采用多数决定法解码,即次数多的一方决定该信息是什么。例如若收到的信息为 {000,001,010,100} 中的某一个,我们就判断该信息为 0 ,若收到的信息属于 {011,101,110,111},则判定该信息为 1 。通过这种方式可以极大的降低信息传送过程中发生错误的概率。


3.解决bit反转错误的信道编码


       在量子信道中最容易发生的错误是 bit 反转错误,即一个量子比特 ∣ 0 ⟩ |0\rangle 0 在信道传输后变成了 ∣ 1 ⟩ |1\rangle 1。与经典的纠错码一样,作为最单纯的编码,考虑将 1 qubit 用 3 qubit 列编码,也就是用以下的方式编码:

qubit编码
∣ 0 ⟩ \vert0\rangle 0 ∣ 0 ⟩ ∣ 0 ⟩ ∣ 0 ⟩ = ∣ 000 ⟩ \vert0\rangle\vert0\rangle\vert0\rangle=\vert000\rangle 000=000
∣ 1 ⟩ \vert1\rangle 1 ∣ 1 ⟩ ∣ 1 ⟩ ∣ 1 ⟩ = ∣ 111 ⟩ \vert1\rangle\vert1\rangle\vert1\rangle=\vert111\rangle 111=111

并且设编码保持线性,即 ∣ φ ⟩ = α ∣ 0 ⟩ + β ∣ 1 ⟩ |\varphi\rangle=\alpha|0\rangle+\beta|1\rangle φ=α0+β1 编码后的形式为
∣ φ ⟩ = α ∣ 000 ⟩ + β ∣ 111 ⟩ |\varphi\rangle=\alpha|000\rangle+\beta|111\rangle φ=α000+β111 实际的编码器如下图所示:
在这里插入图片描述
通过该编码器我们可以发现当输入的状态是 ∣ 0 ⟩ |0\rangle 0 时,输出 ∣ 000 ⟩ |000\rangle 000 ;若输入状态为 ∣ 1 ⟩ |1\rangle 1 ,输出 ∣ 111 ⟩ |111\rangle 111

       接收者收到的 qubit 列是以量子状态叠加的方式来表述的: ∣ x 1 x 2 x 3 ⟩ |x_1x_2x_3\rangle x1x2x3 ,我们可以测出 x 1 、 x 2 、 x 3 x_1、x_2、x_3 x1x2x3 中 0 或 1 出现的个数,根据以下的方式进行解码:

接收到的消息解码结果
∣ 000 ⟩ ∣ 001 ⟩ ∣ 010 ⟩ ∣ 100 ⟩ \begin{matrix}\vert000\rangle \\ \vert001\rangle\\\vert010\rangle\\\vert100\rangle\end{matrix} 000001010100 ∣ 000 ⟩ \vert000\rangle 000
∣ 110 ⟩ ∣ 101 ⟩ ∣ 110 ⟩ ∣ 111 ⟩ \begin{matrix}\vert110\rangle \\ \vert101\rangle\\\vert110\rangle\\\vert111\rangle\end{matrix} 110101110111 ∣ 111 ⟩ \vert111\rangle 111

       解码操作是线性的,也就是说如果 ∣ φ ⟩ |\varphi\rangle φ 解码为 D ∣ φ ⟩ D|\varphi\rangle Dφ ∣ φ ′ ⟩ |\varphi'\rangle φ 解码成 D ∣ φ ′ ⟩ D|\varphi'\rangle Dφ 那么叠加状态 α ∣ φ ⟩ + β ∣ φ ′ ⟩ \alpha|\varphi\rangle+\beta|\varphi'\rangle αφ+βφ 的解码就转变成由 D ∣ φ ⟩ D|\varphi\rangle Dφ D ∣ φ ′ ⟩ D|\varphi'\rangle Dφ 决定的叠加状态表示,即
D ( α ∣ φ ⟩ + β ∣ φ ′ ⟩ ) = α D ∣ φ ⟩ + β D ∣ φ ′ ⟩ D(\alpha|\varphi\rangle+\beta|\varphi'\rangle)=\alpha D|\varphi\rangle+\beta D|\varphi'\rangle D(αφ+βφ)=αDφ+βDφ

       例如,对于 qubit ∣ φ ⟩ = α ∣ 0 ⟩ + β ∣ 1 ⟩ |\varphi\rangle=\alpha|0\rangle+\beta|1\rangle φ=α0+β1 ,我们先对它按上图进行编码,可以得到量子比特列 α ∣ 000 ⟩ + β ∣ 111 ⟩ \alpha|000\rangle+\beta|111\rangle α000+β111 ,将该量子比特列在信道中传输。假设在信道中第二个 qubit 发生了 bit 反转错误,即接受端收到的量子比特列为 α ∣ 010 ⟩ + β ∣ 101 ⟩ \alpha|010\rangle+\beta|101\rangle α010+β101 。这时我们通过解码可以得到
D ( α ∣ 010 ⟩ + β ∣ 101 ⟩ ) = α ( D ∣ 010 ⟩ ) + β ( D ∣ 101 ⟩ ) = α ∣ 000 ⟩ + β ∣ 111 ⟩ \begin{aligned} D(\alpha|010\rangle+\beta|101\rangle) &=\alpha(D|010\rangle)+\beta(D|101\rangle) \\ &=\alpha|000\rangle+\beta|111\rangle \end{aligned} D(α010+β101)=α(D010)+β(D101)=α000+β111 可以看到通过 D 变换我们就可以得到经过纠正的正确的信道信息。

       实际的 D 解码器如下图所示:

在这里插入图片描述

  1. 首先假设量子信道不失真,接收到的信息与发送的信息完全相等,接收的信息添加 2 位 qubit 辅助信息后状态如下:
    ( α ∣ 000 ⟩ + β ∣ 111 ⟩ ) ∣ 00 ⟩ = α ∣ 00000 ⟩ + β ∣ 11100 ⟩ (\alpha|000\rangle+\beta|111\rangle)|00\rangle=\alpha|00000\rangle+\beta|11100\rangle (α000+β111)00=α00000+β11100

    将上面的状态依次通过 D 解码器的 4 个控制非门,其状态将顺序发生如下变化:

    通过第几个通过后的状态
    通过第一个控制非门后 α ∣ 00000 ⟩ + β ∣ 11110 ⟩ \alpha\vert00000\rangle+\beta\vert11110\rangle α00000+β11110
    通过第二个控制非门后 α ∣ 00000 ⟩ + β ∣ 11100 ⟩ \alpha\vert00000\rangle+\beta\vert11100\rangle α00000+β11100
    通过第三个控制非门后 α ∣ 00000 ⟩ + β ∣ 11101 ⟩ \alpha\vert00000\rangle+\beta\vert11101\rangle α00000+β11101
    通过第四个控制非门后 α ∣ 00000 ⟩ + β ∣ 11100 ⟩ \alpha\vert00000\rangle+\beta\vert11100\rangle α00000+β11100

    最后的状态 α ∣ 00000 ⟩ + β ∣ 11100 ⟩ \alpha\vert00000\rangle+\beta\vert11100\rangle α00000+β11100 对应于上图中 D 解码器的点线状态,若以状态的最后 2 位 qubit 以 { ∣ 00 ⟩ 、 ∣ 01 ⟩ 、 ∣ 10 ⟩ 、 ∣ 11 ⟩ } \{|00\rangle、|01\rangle、|10\rangle、|11\rangle \} {00011011} 为基底进行测量,以概率 ∣ α ∣ 2 + ∣ β ∣ 2 = 1 |\alpha|^2+|\beta|^2=1 α2+β2=1 获得 ∣ 00 ⟩ |00\rangle 00

  2. 如果信息在传送过程中发生了失真,即若接收到的信息变成了 α ∣ 100 ⟩ + β ∣ 011 ⟩ \alpha|100\rangle+\beta|011\rangle α100+β011 ,再加上 2 位 qubit 辅助信息,其状态变为
    ( α ∣ 100 ⟩ + β ∣ 011 ⟩ ) ∣ 00 ⟩ = α ∣ 10000 ⟩ + β ∣ 01100 ⟩ (\alpha|100\rangle+\beta|011\rangle)|00\rangle=\alpha|10000\rangle+\beta|01100\rangle (α100+β011)00=α10000+β01100

    经过解码器的状态变换过程为:

    通过第几个通过后的状态
    通过第一个控制非门后 α ∣ 10010 ⟩ + β ∣ 01100 ⟩ \alpha\vert10010\rangle+\beta\vert01100\rangle α10010+β01100
    通过第二个控制非门后 α ∣ 10010 ⟩ + β ∣ 01110 ⟩ \alpha\vert10010\rangle+\beta\vert01110\rangle α10010+β01110
    通过第三个控制非门后 α ∣ 10010 ⟩ + β ∣ 01111 ⟩ \alpha\vert10010\rangle+\beta\vert01111\rangle α10010+β01111
    通过第四个控制非门后 α ∣ 10010 ⟩ + β ∣ 01110 ⟩ \alpha\vert10010\rangle+\beta\vert01110\rangle α10010+β01110

    对后两位进行测量,以概率 ∣ α ∣ 2 + ∣ β ∣ 2 = 1 |\alpha|^2+|\beta|^2=1 α2+β2=1 获得 ∣ 10 ⟩ |10\rangle 10。以同样的方式对发生在其他位置的 bit 反转错误的状态进行变换,会发现如下的规律:

    对后两位的测定结果错误的位置
    ∣ 00 ⟩ \vert00\rangle 00没有发生错误
    ∣ 10 ⟩ \vert10\rangle 10第一位
    ∣ 11 ⟩ \vert11\rangle 11第二位
    ∣ 01 ⟩ \vert01\rangle 01第三位
  3. 这样我们就知道当错误发生在不同的位置,其测定的结果就完全不一样,对于接收者,我们可以根据测出的结果在相应的 qubit 位上实施 bit 反转 X - Gate 演算就能够纠正错误。


4.解决位相翻转错误的信道编码


       在量子比特的信道传输中还有可能发生位相反转错误,即发送端发送的信息 ∣ φ ⟩ = α ∣ 0 ⟩ + β ∣ 1 ⟩ |\varphi\rangle=\alpha|0\rangle+\beta|1\rangle φ=α0+β1 ,在接收端变成了 ∣ φ ′ ⟩ = α ∣ 0 ⟩ − β ∣ 1 ⟩ |\varphi'\rangle=\alpha|0\rangle-\beta|1\rangle φ=α0β1 ,那么只用前面的编码和解码方式是不行的,下面我们来讨论针对这种错误的编码方式。

       在讲述量子逻辑门时我们有一个 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 2 = 1 2 [ 1 1 1 − 1 ] [ 1 1 1 − 1 ] = [ 1 0 0 1 ] 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] HH=H2=21[1111][1111]=[1001]

也就是对一个量子状态连续做两次 H - Gate 变换,实际就是一次恒等变换。

而对于一个发生了位相反转的量子状态 ∣ φ ⟩ |\varphi\rangle φ,我们可以用 Z - Gate 表示为
Z ∣ φ ⟩ = [ 1 0 0 − 1 ] ∣ φ ⟩ Z|\varphi\rangle=\left[ \begin{matrix} 1 & 0 \\ 0 & -1 \end{matrix} \right]|\varphi\rangle Zφ=[1001]φ

如果我对一个 Z - Gate 进行如下的两次 H - Gate 变换
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

可以看到该 Z - Gate 就变成了 X - Gate ,如果将这种变换应用到量子比特上,就将位相翻转的错误变换成了 bit 翻转错误。

通过上面的讨论,我们可以设计一种这样的编码方式,

  1. 对要传送的 qubit ∣ φ ⟩ |\varphi\rangle φ 先进行 H - Gate 变换为 H ∣ φ ⟩ H|\varphi\rangle Hφ ,将变换后的消息在量子信道上传输,在信道上会发生以下两种情况:

    是否发生位相翻转错误传输后的状态
    发生了位相翻转 Z H ∣ φ ⟩ ZH\vert\varphi\rangle ZHφ
    没有发生位相翻转 H ∣ φ ⟩ H\vert\varphi\rangle Hφ
  2. 只考虑位相翻转时,在接收端得到的可能结果就是上面两种情况,接收方对接收到的 qubit 再进行 H - Gate 变换会得到下面两种情况

    是否发生位相翻转错误再次变换后的状态
    发生了位相翻转 H Z H ∣ φ ⟩ = X ∣ φ ⟩ HZH\vert\varphi\rangle=X\vert\varphi\rangle HZHφ=Xφ
    没有发生位相翻转 H H ∣ φ ⟩ = ∣ φ ⟩ HH\vert\varphi\rangle=\vert\varphi\rangle HHφ=φ

       至此我们发现,如果只考虑位相翻转错误,我们通过上面的两步变换,可以得到两种状态 X ∣ φ ⟩ X\vert\varphi\rangle Xφ ∣ φ ⟩ \vert\varphi\rangle φ ,通过这种变换,我们就将发生的位相翻转错误转换成了 bit 反转错误。这时我们可以用上面解决 bit 反转错误的编码方式来解决位相反转的错误。具体的操作如下。

  1. 在发送端设置如下的编码器
    在这里插入图片描述
  2. 在接收端做如下的解码回路

在这里插入图片描述
例如,我们要传送的 qubit 为 α ∣ 0 ⟩ + β ∣ 1 ⟩ \alpha|0\rangle+\beta|1\rangle α0+β1,在发送端首先编码为 α ∣ + + + ⟩ + β ∣ − − − ⟩ \alpha|+++\rangle+\beta|---\rangle α++++β ,然后将其在信道中传输。我们假设第 2 个 qubit 上发生位相翻转错误,因为:
Z ∣ + ⟩ = [ 1 0 0 − 1 ] [ 1 2 1 2 ] = ∣ − ⟩      Z ∣ − ⟩ = [ 1 0 0 − 1 ] [ 1 2 − 1 2 ] = ∣ + ⟩ Z|+\rangle= \left[ \begin{matrix} 1 & 0 \\ 0 & -1 \end{matrix} \right] \left[ \begin{matrix} \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} \end{matrix} \right] =|-\rangle\ \ \ \ Z|-\rangle =\left[ \begin{matrix} 1 & 0 \\ 0 & -1 \end{matrix} \right] \left[ \begin{matrix} \frac{1}{\sqrt{2}} \\ \frac{-1}{\sqrt{2}} \end{matrix} \right] =|+\rangle Z+=[1001][2 12 1]=    Z=[1001][2 12 1]=+

所以收到的 qubit 列为 α ∣ + − + ⟩ + β ∣ − + − ⟩ \alpha|+-+\rangle+\beta|-+-\rangle α+++β+ ,再对其做 Hadamard 变换:
H ∣ + ⟩ = H ( H ∣ 0 ⟩ ) = ∣ 0 ⟩ H|+\rangle=H(H|0\rangle)=|0\rangle H+=H(H0)=0

H ∣ − ⟩ = H ( H ∣ 1 ⟩ ) = ∣ 1 ⟩ H|-\rangle=H(H|1\rangle)=|1\rangle H=H(H1)=1

收到的信息变换为 α ∣ 010 ⟩ + β ∣ 101 ⟩ \alpha|010\rangle+\beta|101\rangle α010+β101 ,再用上面的 bit 反转 D 解码器:
D ( α ∣ 010 ⟩ + β ∣ 101 ⟩ ) = > α ∣ 000 ⟩ + β ∣ 111 ⟩ D(\alpha|010\rangle+\beta|101\rangle)=>\alpha|000\rangle+\beta|111\rangle D(α010+β101)=>α000+β111

所以得知发送的 qubit 消息为 α ∣ 0 ⟩ + β ∣ 1 ⟩ \alpha|0\rangle+\beta|1\rangle α0+β1


5.一般性的量子纠错编码


       前面我们讨论的都是针对在信道中只发生一种错误的编码方案。这里我们讨论一下对于 bit 反转错误位相反转错误bit 反转与位相反转同时发生 这三种情况中任意一种发生时的纠错编码方案。

       首先假设 X 为 bit 反转演算、Z 为位相翻转演算,那么 bit 反转和位相反转同时发生时会有两种情况:
X Z = [ 0 1 1 0 ] [ 1 0 0 − 1 ] = [ 0 − 1 1 0 ] XZ=\left[ \begin{matrix} 0 & 1 \\ 1 & 0 \end{matrix} \right] \left[ \begin{matrix} 1 & 0 \\ 0 & -1 \end{matrix} \right]= \left[ \begin{matrix} 0 & -1 \\ 1 & 0 \end{matrix} \right] XZ=[0110][1001]=[0110]

Z X = [ 1 0 0 − 1 ] [ 0 1 1 0 ] = [ 0 1 − 1 0 ] ZX= \left[ \begin{matrix} 1 & 0 \\ 0 & -1 \end{matrix}\right] \left[ \begin{matrix} 0 & 1 \\ 1 & 0 \end{matrix} \right]= \left[ \begin{matrix} 0 & 1 \\ -1 & 0 \end{matrix} \right] ZX=[1001][0110]=[0110]

这里显然有 X Z = − Z X XZ=-ZX XZ=ZX,而 qubit 与其定数倍被认为是同一状态,因此用以上的两种演算作用在同一 qubit 上会得到同一结果状态。这里我们选择 X Z XZ XZ 作为 bit 反转和位相反转同时发生时的演算。

       下面我们讨论对任何一个 qubit 位出现 X , Z X , Z X,Z X Z XZ XZ 演算中的任何一种错误时,实现纠错编码的方法。

       Shor提出一种被称为 Shor 编码 的方法,它是一种 3 位 qubit 的 bit 反转纠错编码与位相翻转编码的组合编码。具体的编码方式如下:

  1. 首先将 qubit 进行 bit 反转纠错编码,得到
    ∣ 0 ⟩ = > ∣ 000 ⟩ |0\rangle => |000\rangle 0=>000 ∣ 1 ⟩ = > ∣ 111 ⟩ |1\rangle => |111\rangle 1=>111

  2. 再将 qubit 按照位相翻转编码方法进行编码
    状态 ∣ 0 ⟩ |0\rangle 0编码得到 ∣ + + + ⟩ |+++\rangle +++
    ( ∣ 0 ⟩ + ∣ 1 ⟩ 2 ) ( ∣ 0 ⟩ + ∣ 1 ⟩ 2 ) ( ∣ 0 ⟩ + ∣ 1 ⟩ 2 ) (\frac{|0\rangle+|1\rangle}{\sqrt{2}}) (\frac{|0\rangle+|1\rangle}{\sqrt{2}}) (\frac{|0\rangle+|1\rangle}{\sqrt{2}}) (2 0+1)(2 0+1)(2 0+1)
    状态 ∣ 1 ⟩ |1\rangle 1编码得到 ∣ − − − ⟩ |---\rangle
    ( ∣ 0 ⟩ − ∣ 1 ⟩ 2 ) ( ∣ 0 ⟩ − ∣ 1 ⟩ 2 ) ( ∣ 0 ⟩ − ∣ 1 ⟩ 2 ) (\frac{|0\rangle-|1\rangle}{\sqrt{2}}) (\frac{|0\rangle-|1\rangle}{\sqrt{2}}) (\frac{|0\rangle-|1\rangle}{\sqrt{2}}) (2 01)(2 01)(2 01)

  3. 然后再对每一个 qubit 进行 bit 反转纠错编码,得到

           状态 ∣ + ⟩ = ( ∣ 0 ⟩ + ∣ 1 ⟩ 2 ) |+\rangle=(\frac{|0\rangle+|1\rangle}{\sqrt{2}}) +=(2 0+1)编码得到 ∣ 000 ⟩ + ∣ 111 ⟩ 2 \frac{|000\rangle+|111\rangle}{\sqrt{2}} 2 000+111

           状态 ∣ − ⟩ = ( ∣ 0 ⟩ − ∣ 1 ⟩ 2 ) |-\rangle=(\frac{|0\rangle-|1\rangle}{\sqrt{2}}) =(2 01)编码得到 ∣ 000 ⟩ − ∣ 111 ⟩ 2 \frac{|000\rangle-|111\rangle}{\sqrt{2}} 2 000111

    将上面的两种编码组合起来,就可以得到 Shor 编码,即

           状态 ∣ 0 ⟩ |0\rangle 0编码得到:
    ( ∣ 000 ⟩ + ∣ 111 ⟩ ) ( ∣ 000 ⟩ + ∣ 111 ⟩ ) ( ∣ 000 ⟩ + ∣ 111 ⟩ ) 2 2 \frac{(|000\rangle+|111\rangle)(|000\rangle+|111\rangle)(|000\rangle+|111\rangle)}{2\sqrt{2}} 22 (000+111)(000+111)(000+111)

           状态 ∣ 1 ⟩ |1\rangle 1编码得到:
    ( ∣ 000 ⟩ − ∣ 111 ⟩ ) ( ∣ 000 ⟩ − ∣ 111 ⟩ ) ( ∣ 000 ⟩ − ∣ 111 ⟩ ) 2 2 \frac{(|000\rangle-|111\rangle)(|000\rangle-|111\rangle)(|000\rangle-|111\rangle)}{2\sqrt{2}} 22 (000111)(000111)(000111)
    实际的 Shor 编码的编码和解码器如下图所示:
    在这里插入图片描述

下面我们假设在信道上传输通过 Shor 编码的量子信息,当一个 bit 反转错误和一个位相翻转错误同时发生时我们怎么进行订正。例如要发送信息的状态为 ∣ φ ⟩ = α ∣ 0 ⟩ + β ∣ 1 ⟩ |\varphi\rangle=\alpha|0\rangle + \beta|1\rangle φ=α0+β1

  1. 先将状态转换为 Shor 编码
    ∣ φ ⟩ = α ( ∣ 000 ⟩ + ∣ 111 ⟩ ) ( ∣ 000 ⟩ + ∣ 111 ⟩ ) ( ∣ 000 ⟩ + ∣ 111 ⟩ ) 2 2 + β ( ∣ 000 ⟩ − ∣ 111 ⟩ ) ( ∣ 000 ⟩ − ∣ 111 ⟩ ) ( ∣ 000 ⟩ − ∣ 111 ⟩ ) 2 2 \begin{aligned} |\varphi\rangle &=\frac{\alpha(|000\rangle+|111\rangle)(|000\rangle+|111\rangle)(|000\rangle+|111\rangle)}{2\sqrt{2}} \\ & +\frac{\beta(|000\rangle-|111\rangle)(|000\rangle-|111\rangle)(|000\rangle-|111\rangle)}{2\sqrt{2}} \end{aligned} φ=22 α(000+111)(000+111)(000+111)+22 β(000111)(000111)(000111)

  2. 将其在量子信道中传输,假设第 1 位 qubit 发生 bit 反转、第 7 位发生位相反转,则接收者收到如下状态的比特列
    ∣ φ ′ ⟩ = α ( ∣ 100 ⟩ + ∣ 011 ⟩ ) ( ∣ 000 ⟩ + ∣ 111 ⟩ ) ( ∣ 000 ⟩ − ∣ 111 ⟩ ) 2 2 + β ( ∣ 100 ⟩ − ∣ 011 ⟩ ) ( ∣ 000 ⟩ − ∣ 111 ⟩ ) ( ∣ 000 ⟩ + ∣ 111 ⟩ ) 2 2 \begin{aligned} |\varphi'\rangle &=\frac{\alpha(|100\rangle+|011\rangle)(|000\rangle+|111\rangle)(|000\rangle-|111\rangle)}{2\sqrt{2}} \\ &+\frac{\beta(|100\rangle-|011\rangle)(|000\rangle-|111\rangle)(|000\rangle+|111\rangle)}{2\sqrt{2}} \end{aligned} φ=22 α(100+011)(000+111)(000111)+22 β(100011)(000111)(000+111)

  3. 首先考虑第 1 位到第 3 位 qubit 的处理,把它们视为三位 qubit 的 bit 纠缠码,利用解码器 D 进行解码可以得到
    D ( ∣ φ ⟩ 1 − 3 ′ ) = D ( α ( ∣ 100 ⟩ + ∣ 011 ⟩ ) 2 + β ( ∣ 100 ⟩ − ∣ 011 ⟩ ) 2 ) = α ( ∣ 000 ⟩ + ∣ 111 ⟩ ) 2 + β ( ∣ 000 ⟩ − ∣ 111 ⟩ ) 2 \begin{aligned} D(|\varphi\rangle'_{1-3}) & =D(\frac{\alpha(|100\rangle+|011\rangle)}{\sqrt{2}}+ \frac{\beta(|100\rangle-|011\rangle)}{\sqrt{2}}) \\ & =\frac{\alpha(|000\rangle+|111\rangle)}{\sqrt{2}}+ \frac{\beta(|000\rangle-|111\rangle)}{\sqrt{2}} \end{aligned} D(φ13)=D(2 α(100+011)+2 β(100011))=2 α(000+111)+2 β(000111)

    此时整体的状态变为
    ∣ φ ′ ′ ⟩ = α ( ∣ 000 ⟩ + ∣ 111 ⟩ ) ( ∣ 000 ⟩ + ∣ 111 ⟩ ) ( ∣ 000 ⟩ − ∣ 111 ⟩ ) 2 2 + β ( ∣ 000 ⟩ − ∣ 111 ⟩ ) ( ∣ 000 ⟩ − ∣ 111 ⟩ ) ( ∣ 000 ⟩ + ∣ 111 ⟩ ) 2 2 \begin{aligned} |\varphi''\rangle & = \frac{\alpha(|000\rangle+|111\rangle)(|000\rangle+|111\rangle)(|000\rangle-|111\rangle)}{2\sqrt{2}} \\ &+\frac{\beta(|000\rangle-|111\rangle)(|000\rangle-|111\rangle)(|000\rangle+|111\rangle)}{2\sqrt{2}} \end{aligned} φ=22 α(000+111)(000+111)(000111)+22 β(000111)(000111)(000+111)

    可以发现已经纠正了第 1 位 qubit 发生的 bit 反转错误。同理,如果在第 4 位到第 6 位的 qubit 或者在第 7 位到第 9 位的 qubit 中发生了 bit 反转,我们同样可以用这种方法来纠正错误。

  4. 为了纠正第 7 位的位相反转错误,我们从上面的状态中取出第 1 位、第 4 位和第 7 位三位 qubit 状态,如下所示:
    α ( ∣ 0 ⟩ + ∣ 1 ⟩ ) ( ∣ 0 ⟩ + ∣ 1 ⟩ ) ( ∣ 0 ⟩ − ∣ 1 ⟩ ) 2 2 + β ( ∣ 0 ⟩ − ∣ 1 ⟩ ) ( ∣ 0 ⟩ − ∣ 1 ⟩ ) ( ∣ 0 ⟩ + ∣ 1 ⟩ ) 2 2 \frac{\alpha(|0\rangle+|1\rangle)(|0\rangle+|1\rangle)(|0\rangle-|1\rangle)}{2\sqrt{2}}+ \beta\frac{(|0\rangle-|1\rangle)(|0\rangle-|1\rangle)(|0\rangle+|1\rangle)}{2\sqrt{2}} 22 α(0+1)(0+1)(01)+β22 (01)(01)(0+1)

    对此状态用状态 ∣ + ⟩ |+\rangle + ∣ − ⟩ |-\rangle 表示可以写成
    α ∣ + + − ⟩ + β ∣ − − + ⟩ \alpha|++-\rangle+\beta|--+\rangle α+++β+

    该状态可以看成是状态 α ∣ 0 ⟩ + β ∣ 1 ⟩ \alpha|0\rangle+\beta|1\rangle α0+β1 经过位相翻转编码器编码后在信道中传输,之后发生了位相翻转错误。现在我们将这三位使用位相翻转解码器进行纠错,即可纠正该错误。从而得到最终结果
    α ∣ 000 ⟩ + β ∣ 111 ⟩ \alpha|000\rangle+\beta|111\rangle α000+β111

    从结果状态中取出任意一位 qubit 就能恢复发送信息的原始状态 α ∣ 0 ⟩ + β ∣ 1 ⟩ \alpha|0\rangle+\beta|1\rangle α0+β1

证明表明,利用 Shor 编码能够订正 qubit 列中至多一位发生的任意量子错误。


6.无需测定的解码回路


       前面我们讲述了利用 Controlled-NOT-Gate 演算和测量的方法来进行 bit 反转错误的纠正,这样我们不仅需要量子回路,还需要测量和对错误 qubit 位进行反转操作,所以仅仅使用量子演算的机理是不能构成解码器的。下面将讲述仅仅利用量子回路或者量子门电路,不用进行测量就可以进行解码的方法。

       首先我们对 Controlled-NOT-Gate 演算更一般化,改进为 “控制 · 控制非门”(Controlled·Controlled-NOT-Gate)。“控制 · 控制非门” 的意思就是用两位控制一位,也就是 3 输入和 3 输出的量子演算,其量子逻辑回路如下所示:在这里插入图片描述

“控制 · 控制非门” 的量子演算为:
∣ x 1 x 2 x 3 ⟩ = > ∣   x 1 x 2 ( ( x 1   A N D   x 2 ) ⊕ x 3 )   ⟩ |x_1x_2x_3\rangle=>|\ x_1x_2((x_1\ AND \ x_2)\oplus x_3)\ \rangle x1x2x3=> x1x2((x1 AND x2)x3) 

从演算可以看出, x 1 x_1 x1 x 2 x_2 x2 先进行 运算,得到的结果再和 x 3 x_3 x3 进行控制非门演算,由控制非门的规则可以知道,只有 x 1   A N D   x 2 x_1 \ AND \ x_2 x1 AND x2 为 1 时, x 3 x_3 x3 才会发生改变,因此我们可以得到如下的变化规则:

输入( ∣ x 1 x 2 x 3 ⟩ \vert x_1x_2x_3\rangle x1x2x3输出 ( ∣ x 1 x 2 x 3 ⟩ \vert x_1x_2x_3\rangle x1x2x3
∣ 000 ⟩ \vert 000\rangle 000
∣ 001 ⟩ \vert 001\rangle 001
∣ 010 ⟩ \vert 010\rangle 010
∣ 011 ⟩ \vert 011\rangle 011
∣ 100 ⟩ \vert100\rangle 100
∣ 101 ⟩ \vert 101\rangle 101
∣ 000 ⟩ \vert 000\rangle 000
∣ 001 ⟩ \vert 001\rangle 001
∣ 010 ⟩ \vert 010\rangle 010
∣ 011 ⟩ \vert 011\rangle 011
∣ 100 ⟩ \vert100\rangle 100
∣ 101 ⟩ \vert 101\rangle 101
∣ 110 ⟩ \vert 110\rangle 110
∣ 111 ⟩ \vert 111\rangle 111
∣ 111 ⟩ \vert 111\rangle 111
∣ 110 ⟩ \vert 110\rangle 110

从上表可以看出,只有第二行的两个输入状态对应的输出状态会发生改变。

       下面我们再来看一个对 bit 反转错误解码回路的改进:
在这里插入图片描述

       若发送方发送信息 ∣ φ ⟩ = α ∣ 0 ⟩ + β ∣ 1 ⟩ |\varphi\rangle = \alpha|0\rangle+\beta|1\rangle φ=α0+β1,和前面一样,还使用 3 qubit 列进行编码,则编为 α ∣ 000 ⟩ + β ∣ 111 ⟩ \alpha|000\rangle+\beta|111\rangle α000+β111 ,如果在信道中第 2 位发生了 bit 反转错误,则接收端收到的状态为 α ∣ 010 ⟩ + β ∣ 101 ⟩ \alpha|010\rangle+\beta|101\rangle α010+β101

       将接收到的比特列输入上图所示的回路,经过虚线前的几个控制非门时它们状态的变化如下:

第几个逻辑门经过后的状态
输入 α ∣ 0 ‾ 10 ⟩ ∣ 0 ‾ 0 ⟩ + β ∣ 1 ‾ 01 ⟩ ∣ 0 ‾ 0 ⟩ \alpha\vert\underline010\rangle\vert\underline00\rangle+\beta\vert\underline101\rangle\vert\underline00\rangle α01000+β10100
第一个 α ∣ 0 1 ‾ 0 ⟩ ∣ 0 ‾ 0 ⟩ + β ∣ 1 0 ‾ 1 ⟩ ∣ 1 ‾ 0 ⟩ \alpha\vert0\underline10\rangle\vert\underline00\rangle+\beta\vert1\underline01\rangle\vert\underline10\rangle α01000+β10110
第二个 α ∣ 0 1 ‾ 0 ⟩ ∣ 1 0 ‾ ⟩ + β ∣ 1 0 ‾ 1 ⟩ ∣ 1 0 ‾ ⟩ \alpha\vert0\underline10\rangle\vert1\underline0\rangle+\beta\vert1\underline01\rangle\vert1\underline0\rangle α01010+β10110
第三个 α ∣ 01 0 ‾ ⟩ ∣ 1 1 ‾ ⟩ + β ∣ 10 1 ‾ ⟩ ∣ 1 0 ‾ ⟩ \alpha\vert01\underline0\rangle\vert1\underline1\rangle+\beta\vert10\underline1\rangle\vert1\underline0\rangle α01011+β10110
第四个 α ∣ 010 ⟩ ∣ 11 ⟩ + β ∣ 101 ⟩ ∣ 11 ⟩ \alpha\vert010\rangle\vert11\rangle+\beta\vert101\rangle\vert11\rangle α01011+β10111

得到上图虚线处的状态为:
α ∣ 01011 ⟩ + β ∣ 10111 ⟩ = ( α ∣ 010 ⟩ + β ∣ 101 ⟩ ) ∣ 11 ⟩ \alpha|01011\rangle+\beta|10111\rangle=(\alpha|010\rangle+\beta|101\rangle)|11\rangle α01011+β10111=(α010+β101)11

辅助 qubit 对的状态变成了 ∣ 11 ⟩ |11\rangle 11。同理我们可以验证在不同位置发生错误时,辅助 qubit 对的错误如下所示:

错误发生的位置辅助 qubit 的状态
没有错误 ∣ 00 ⟩ \vert00\rangle 00
第一位发生错误 ∣ 10 ⟩ \vert10\rangle 10
第二位发生错误 ∣ 11 ⟩ \vert11\rangle 11
第三位发生错误 ∣ 01 ⟩ \vert01\rangle 01

在上图的虚线后面有一个 “控制 · 控制非门” 的量子演算,根据演算规则和上面的推断,我们可以发现,如果在传输过程中第二位发生了错误,那么会让辅助位状态变为 ∣ 11 ⟩ |11\rangle 11 再经过 “控制 · 控制非门” ,就会让第二位发生 bit 反转,从而实现对错误的回路更正。我们就可以根据上面的三个 qubit 对来获得传送的正确信息。同时我们还能发现,如果是其他位发生了 bit 反转,整个回路的输出保持原样。这就是 可以订正第 2 位 qubit 发生错误的回路

       下面我们再来看看 可以订正第 1 位 qubit 发生错误的回路,其回路图如下所示:
在这里插入图片描述

从上面辅助 qubit 对的状态我们可以知道,当第一位发生错误时,辅助 qubit 对的状态为 ∣ 10 ⟩ |10\rangle 10 ,现在我们用上面虚线后面的逻辑门进行演算,从而实现对第一位的 qubit 进行 bit 反转。

       第三位 qubit 发生错误时,辅助 qubit 的状态为 ∣ 01 ⟩ |01\rangle 01,类比于第一位发生错误的情况,我们可以在订正第一位错误的回路上做一些改变就可以实现。

       另外,当我们实际进行解码时,并不需要将传送来的信息编码复原,我们利用多位编码是保证传送到接收者时利用三位复原,我们只要保证某一位一定是正确的就可以得到正确的信息。例如,对于第二位 qubit 错误进行订正的回路中,我们一定可以得到第二位的信息是正确的,所以可以判断第二位 qubit 的信息就是原信息。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值