Jordan-Wigner (JW) 变换

4. Jordan-Wigner (JW) 变换#

为什么要使用JW变换?#

基础概念#

通常在做哈密顿量问题的时候,使用量子计算机的求解可以变为一个求期望值的问题:

\[ \braket{\Psi|\hat{H}|\Psi} \]

而在实际求解过程中,又分为态的制备和哈密顿量的制备。如果把态的制备用酉算符\(\hat{U}\)来描述,实际上量子计算机最后要测量的量就是:

\[ \braket{0|\hat{U}^\dagger\hat{H}\hat{U}|0} \]

小心

这里的\(\ket{0}\)往往就是量子计算机的最原始初态,我们用算符\(\hat{U}\)作用上去得到的\(\hat{U}\ket{0}\)是我们用来做期望值的“运算态”。

而当我们做VQE的时候,会先从“量子计算机的初态”经过线路制备一个VQE的初态,然后再通过ansatz线路制备出“运算态”。这里的术语有时候会混淆。

思路#

想要完成这样的工作,首先容易想到的就是从量子化学的二次量子化(请参见二次量子化)所构造出的算符系统,进行一个一一对应的转换。

对于化学系统来说,天然就可以写出它的哈密顿量\(\hat{H}_{2^{nd}Qt}\),其他的体系,比如Ising模型,QUBO模型也可以简单的写出出哈密顿量。所以这种转化是比较直接的。

要求是,这转换应该使得在量子化学中二次量子化的所有算符,和在量子计算机的所有算符是一一对应的,并且这些算符的乘积也都是一一对应的。

作为一种简略的称呼,我们称量子化学的二次量子化的算符为费米子算符,而称量子计算机的qubits的算符为玻色子算符这种称呼并不仅仅因为它们的作用对象是Fermions / Bosons,也因为接下来我们要关注到的对易性。

备注

我们以一个上/下标\(f\)来记费米子算符,以一个上/下标\(b\)来记玻色子算符。我们期望的是,对所有的费米子算符的操作集合\(\{U_1^f, U_2^f, \cdots\}\) 能够找到对应关系\(M(U_i^f) \Rightarrow U_i^b\), 以及\(M(U_i^f * U_j^f) \Rightarrow U_i^b * U_j^b\).

实际上就是希望找到两个群的同构关系(见群论基础)

产生和湮灭算符#

幸运的是,在费米子算符中,不管是要组成运算态的产生算符\(\hat{U}\)还是要组成哈密顿量的算符\(\hat{H}\),都可以用两个简单的算符,产生算符\(a^\dagger_f\)湮灭算符\(a_f\)来搭建!

那么,能否直接使用量子比特的产生算符和湮灭算符直接替代呢?因为很容易想到,在费米子形式中,有:

\[ a^\dagger_f, a_f, \ket{vac}_f \]

在玻色子形式中,有:

\[ a^\dagger_b, a_b, \ket{vac}_b \]

费米子的态矢量和玻色子的态矢量都能被它们对应的产生湮灭算符作用,而产生看似相同的占据。相同的占据态做内积结果也一样,那么这样岂不是能直接算出想要的哈密顿量期望了吗?

答案并非如此。

尽管看似一样,但是当两个不同位置的费米子产生湮灭算符作用在同一个态上时,是反对易的:

\[ [a_i^f, a_j^f]_+ = 0 \]

这里的i,j是两个不相同的指标,\(a_i\), \(a_j\)既可以是产生算符也可以是湮灭算符。

而当两个不同位置的玻色子算符作用在一个态上时,是对易的:

\[ [a_i^b, a_j^b] = 0 \]

如果直接用玻色子算符替代费米子算符,那有时候本来该产生一个负号,就可能没有产生。假如有一个态\(\ket{0}+\ket{1}\)本来应该和它自己做内积,结果因为少了一个局部的负号和\(\ket{0}-\ket{1}\)做内积了,显然是影响结果的。(前者为2, 后者为0)

态矢量#

另一方面,费米子态和玻色子态的定义彼此间是不冲突的,因为它们的态矢量空间都是定义的内积正交且归一,而且都用0和1表征。假如只是简单的想对两个态做内积,\(\braket{x|y}_f\),就可以简单的在量子线路上制备一一对应的态\(\braket{x|y}_b\),然后测量内积的结果。

所以,经常可以看到这样的做法,对于哈密顿量和激发算符(比如VQE中的ansatz部分),一般都是要严格的做变换的(比如我们接下来要说的JW变换);但是对于初态的制备,往往比较随意,比如制备HF态,一般用几个X门也可以,用几个Y门也可以,其实实际的量子比特产生算符应该是\((X-iY)/2\)

../../_images/simple_HF_circuit.png

图 4.1 HF制备线路#

因为初态的制备,我们往往是知道自己要制备一个怎么样的态,因此只要能得到最终结果,过程不匹配也不成问题。然而对于一个激发算符的组合,往往由很多产生湮灭算符构成,其中包含不同的费米子位置,不仅徒手写出这样的线路非常困难,而且直接用玻色子替代费米子也会影响想要的结果。

一种最直接的变换方式,就是Jordan-Wigner变换。这种变换只对算符做变换,不对态矢量做变换。除此之外还有Parity变换和B-K变换,它们都涉及对态矢量做变换,尽管对态矢量的空间仍不影响,但是态矢量的含义会发生改变,相比JW就更为复杂。

记位算符#

费米子产生湮灭算符和玻色子产生湮灭算符最大的区别就在于费米子需要统计前面有几个非空的占据,因此引入一个记位算符

\[ F_i^b = 1 - 2n_i^b = 1 - 2a_i^{\dagger b}a_i^b \]

这样就有

\[ a_i^f = F_0F_1\cdots F_{i-1}a_i^b \]

这里的\(a\)算子可以是产生算符也可以是湮灭算符。

可以知道,引入这一串记位算符,可以统计前面非空的占据数并乘-1,这样构造的产生湮灭算符就可以拥有和费米子算符一致的对易性。

使用Pauli string的表示#

备注

以下对玻色子不再额外使用指标\(b\),但费米子还会用\(f\)示明。

对于qubit来说,\(\ket{0} = (1,0)^T\), \(\ket{1} = (0,1)^T\),因此可以发现产生算符就是:

\[\begin{split} a^\dagger = \begin{pmatrix} 0 & 0 \\ 1 & 0 \end{pmatrix} \end{split}\]

湮灭算符是

\[\begin{split} a = \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix} \end{split}\]

因此可以知道:

\[ F_i = 1 - 2a_i^{\dagger}a_i = Z_i \]
\[ a^\dagger = \frac{X-iY}{2} \]
\[ a = \frac{X+iY}{2} \]

所以对任意一个费米子算符有:

\[ a_f^\dagger \Rightarrow Z_0Z_1\cdots Z_{i-1}\frac{X-iY}{2} \]
\[ a_f \Rightarrow Z_0Z_1\cdots Z_{i-1}\frac{X+iY}{2} \]

这就是J-W变换的Pauli串形式。