量子纠错码——Clifford group

Posted zmzzzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了量子纠错码——Clifford group相关的知识,希望对你有一定的参考价值。

Clifford code

Clifford group是什么?

简单的公式来表达,就是 (Cl_{n}=left{U: U P_{n} U^{dagger} in P_{n} ight})

用语言来描述,就是对一个泡利施加一个U操作,然后还是一个泡利。

首先,所有的泡利都属于(Cl_n),因为泡利矩阵自己相乘还是泡利。

但也有非泡利的矩阵在这里面,比如H也属于clifford,(HXH=Z),$ HZH=X$

另一个例子是 (S=sqrt{Z}=left(egin{array}{cc}1 & 0 0 & iend{array} ight))

(SZS^{dagger}=ZSS^{dagger}=Z)

(SXS^{dagger}=iY)

但是也并非所有的操作都属于(Cl_n),比如T门,(TZT^{dagger}=ZTT^{dagger}=ZS otin P)

对于单量子比特来说:(Cl_1=langle X,Z,H,S angle)

但是我们不仅只有单比特,对于多比特,他不是简单的(Cl_1^{otimes n}) ,因为多比特有纠缠。

比如(SWAP_{ij}) ,将第i个和第j个交换一下,这很明显操作完了还是一个泡利,属于(Cl_n)(operatorname{SWAP}_{i j} X_{i} operatorname{SWAP}_{i j}^{dagger}=X_{j})

除此之外还有CNOT,CNOT对于原来的泡利在受控比特和控制比特上有所不一样,对X和Z的影响也不一样,其效果如下表:

技术图片

事实上,我们可以用3个CNOT来构建一个SWAP

所以 (C l_{n}=langle H_{i},S_{j},CNOT_{i j} angle)

Clifford group可以做什么?

ok,我们已经知道Clifford的定义了,但是我们为什么要定义一个Clifford group呢?他有什么用?

5 qubit code

定义一组对应五比特编码的stabilizer,(S=langle Z X X Z I, I Z X X Z, Z I Z X X, X Z I Z X angle),我们可以很容易的给她加上最后一位变成(S=langle Z X X Z I, I Z X X Z, Z I Z X X, X Z I Z X, X X Z I Z angle),多出来的这个就是前面4个的乘积,所以不会影响到最后的结果。

接下来,我们定义 normalizers of S ,也就是(N(S))

对于(N(S)),我们只有一个要求,那就是(N(S)=left{p in P_{n} | p S p^{dagger}=S ight})

对于(p S p^{dagger}=S),我们可以换一种理解方式,即(pg=gp forall g in S)

trivial code

我们都知道,编码其实就是将低维的空间映射到高维,那么最为朴实的一种映射就是补零操作,(V_{S} inleft{|0 angle^{otimes n-k} otimes|Psi angle:|Psi angle in mathbb{C}^{2^{k}} ight}),这就是一个简单的把k比特映射到n比特空间的一种trival code。

这种编码的stabilizer很简单,(S=leftlangle Z_{1}, Z_{2} dots . Z_{n-k} ight angle)(Z_i)的意思是除了第i个比特是Z其他都是I,这个很好理解,因为前面n-k个比特我们都是(|0 angle),是Z的特征向量。

那这两个编码之间有什么关系吗?

我们可以给出以下声明:

对于任意的stabilizer code,都可以通过unitary的转化和trivial code等价。

而这个unitary就属于我们的Clifford group。

假设我有一组stabilizer (S),以及这个(S)对应的子空间(V_S),那么一定存在一个unitary U 使得 (USU^{dagger}=leftlangle Z_{1}, Z_{2} dots . Z_{n-k} ight angle)

这个时候,我们的子空间(V_{S})就变成了(V_{USU^{dagger}})

后一句话很好理解,原来这个子空间里的向量为(|psi angle),现在这个子空间里的每一个向量就变成了(U|psi angle)

((USU^{dagger})U|psi angle=US|psi angle=U|psi angle)

那么前一个为什么会存在这个U呢?

先来论证一下他的可能性,U会改变一些东西,但是有一些不会改变,比如,他不会改变这个的特征值,而正好,他们都是泡利矩阵,特征值都是正负1;又比如,U不会改变他们的对易和反对易,他们正好都是对易的操作。

事实上,对于泡利矩阵来说,只要他们的对易反对易的模式相同,那么我就可以用U对他们进行一个映射。

我们可以换一个视角从向量的角度来看一看这个问题

(a,b in mathbb{F}^n),那么(v=left(egin{array}{l}a bend{array} ight) in F^{2 n})

任意一个Pauli都可以用v来表示(X^{a} Z^{b}=sigma^{left(egin{array}{c}a bend{array} ight)})

那么Clifford group在做什么?

$UsigmavU{dagger} in P_n $

即,其实就是把(sigma^{v_1})映射成$sigma^{v_2} $

(Usigma^{v}U^{dagger}=(-1)^{f(v)}sigma^{g(v)})

我们的下一步就是看这里的函数f(v)和g(v)需要满足哪些条件

这里面一个限制就是U变换不会改变操作本来的对易和反对易。

技术图片

第二个等式是加上了(U^{dagger}U),因为这两个乘积为(I)不会有影响

第三个等式是带入公式(Usigma^{v}U^{dagger}=(-1)^{f(v)}sigma^{g(v)})

如果这里面的(sigma^v)就是我们的(sigma^{v_1+v_2}),那么后面我们的到的就是((-1)^{f(v_1+v_2)}sigma^{g(v_1+v_2)})

(g(v_1+v_2)=g(v_1)+g(v_2)),函数g是一个线性函数

g(v)=Mv

但是也不是所有的M是可行的。

(sigma^{v} sigma^{w} sigma^{v} sigma^{w}=(-1)^{v^{T}Lambda w} I) 其中(lambda=left(egin{array}{ll}0 & I 0 & 0end{array} ight))

我们可以先把他展开:

(U sigma^{N} U^{dagger}U sigma^{W} U^{dagger}U sigma^{N} U^{dagger}Usigma^{W}U=sigma^{Mv}sigma^{Mw}sigma^{Mv}sigma^{Mw})

这里没有系数,因为两个一模一样的系数乘起来就是1,所以系数可以省略掉。

而如果把(sigma^{Mw}sigma^{Mv})交换一下可以变成:

((-1)^{(Mv)^TLambda Mw}I)

我们可以得出:

(v^T Lambda w= v^TM^T Lambda M w)

(Lambda=M^T Lambda M)

而这个就是M需要满足的条件,属于symplectic group。

以上是关于量子纠错码——Clifford group的主要内容,如果未能解决你的问题,请参考以下文章

海明码校验和纠错原理 详细

差错控制 (纠错编码)

计算机网络-数据链路层差错控制(检错编码纠错编码)

计算机网络-数据链路层差错控制(检错编码纠错编码)

HDFS存储优化-纠错码

二维码生成之纠错码算法