量子算法核磁共振实现脉冲序列设计程序问题研究
2021-12-29彭永刚
彭永刚
(1.南京邮电大学 理学院 应用物理系,江苏 南京 210003;2.江苏省新能源技术工程实验室,江苏 南京 210003)
当今的笔记本电脑、台式机和服务器所提供的中央处理器称为经典计算机,与量子计算机进行对比,由晶体管制成的经典计算机的功能是通过操作0或1的数据位(比特)来执行计算的,而量子计算机是利用量子力学的性质(即量子态相干叠加性质和量子纠缠性质)以不同的方式执行计算的,从而比经典计算机更有效地执行计算,量子计算机可以在经典计算机上进行模拟,但模拟将花费很长时间和大量内存,因此,经典计算机只能模拟小量子比特数的量子算法.经典计算机的逻辑运算与算法运算不依赖于它们的硬件实现,在理想量子计算机中,量子比特被认为是理想的双态量子系统,量子算法是由一序列基本操作(幺正变换) 的乘积构成,量子算法的运行结果不依赖于量子计算机的具体物理实现,一台物理上实现的量子计算机是一个多体量子系统,其量子比特的内在量子动力学性质对其运算的结果是很重要的,考虑两个逻辑上独立的操作O1和O2,在理想量子计算机上,执行这两个相互独立逻辑操作的顺序并不重要,因为O1O2=O2O1,然而在物理实现的量子计算机上有时相互独立逻辑操作顺序是至关重要的,在有些情况下,O1O2≠O2O1,改变量子算法的逻辑操作序列的顺序物理实现的量子计算机就会给出错误结果,这个问题是不能通过量子纠错和量子容错解决的,我们把这个问题称为量子程序问题[1-3].
已经提出实现量子计算机的物理方案有超导量子计算方案[4]、离子阱方案[5]、腔量子电动力学方案[6]、核磁共振方案[7]以及量子点方案[8]等,这些量子计算机物理实现方案,各有各的优势,都存在需要攻克的技术难题,目前量子计算研究的核心内容主要是量子计算机的物理实现和可用量子算法的研究.
在量子计算机的物理实现上出现的量子程序问题是由于我们处理的是有相互作用的量子客体,对量子计算机来说量子比特之间会交换信息,我们以核磁共振量子计算机为例来说明量子程序问题,用射频脉冲磁场调控一个核自旋状态而不影响其它核自旋的状态是很困难的,在调控某一核自旋时,其它核自旋的状态也发生改变,没有一般规则预先知道量子算法中哪个基本操作、何种操作顺序会产生量子程序问题,导致不正确的结果,目前在理论上研究量子程序问题的唯一方法就是执行量子算法的数值计算来研究量子程序问题.
从理论上讲量子算法是由一序列基本操作(幺正变换)的乘积构成,从量子计算机核磁共振物理实现上说实现量子算法就是把一序列基本幺正变换编译成现代超导核磁共振谱仪上能够直接执行的核磁共振脉冲序列.我们讨论量子处理器是零温度且与环境没有耦合的量子系统,即模拟零温度封闭量子系统的量子算法核磁共振实现.本文从两量子位的核磁共振量子处理器的物理模型出发,利用Raedt[9]小组提出的自旋-1/2代数理论,根据量子控制非门的定义,介绍核磁共振实现量子控制非门逻辑上等价的4种不同核磁共振脉冲序列的设计过程,根据Grover量子算法原理,介绍了核磁共振实现两量子位Grover量子算法逻辑上等价的两种不同核磁共振脉冲序列设计过程,通过数值求解含时薛定谔方程等价于执行量子控制非门和两量子位Grover量子算法的物理实现过程,演示量子控制非门和两量子位Grover量子算法呈现的量子程序问题,分析与讨论了产生量子程序问题的原因.
1 量子算法核磁共振脉冲序列的设计
1.1 两量子位核磁共振量子处理器的物理模型
一个三氯甲烷(CHCl3)分子中,氢1H和碳13C原子的核自旋均为1/2,可作为一台两量子位的核磁共振量子处理器,在均匀磁场(静磁场)和外加射频磁场(振荡磁场)中,这个核自旋1/2两量子位系统的哈密顿量[7,9,10]表示为
(1)
1.2 单量子位逻辑门核磁共振实现
(2)
单个核自旋受到沿着z轴的均匀磁场和沿x轴的射频脉冲磁场作用,其状态随时间的演化,遵守含时薛定谔方程:
(3)
(4)
自旋绕x轴转动,需要在y轴上施加射频脉冲磁场. 核自旋绕x和y轴顺时针转动π/2的操作可表示为:
(5)
(6)
1.3 量子控制非门核磁共振实现不同脉冲序列的设计
量子计算中两核自旋之间通过核自旋与核自旋的相互作用交换量子信息,核自旋1和核自旋2之间的相互作用受控相移门[11]为
(7)
用直积方法定义两量子位逻辑门:
X1=X⊗I
(8)
Y2=I⊗Y
(9)
设两核自旋系统的初始波函数为
|ψ〉=a0|00〉+a1|01〉+a2|10〉+a3|11〉
(10)
(eiφ00c0+eiφ01c1)|01〉+
(eiφ10c2-eiφ11c3)|10〉+
(eiφ10c2+eiφ11c3)|11〉]
(11)
其中:c0=a0+a1,c1=a1-a0,c2=a2+a3,c3=a3-a2,由于量子控制非门的要求是当且仅当第一核自旋处于态|1〉时,才翻转第二核自旋状态,这要求:φ00=φ01,式(11)改为
eiβ(a2cosα+ia3sinα)|10〉+
eiβ(a3cosα+ia2sinα)|11〉]
(12)
式中β=α+φ11-φ00,α=(φ10-φ11)/2,eiφ00是无关紧要的整体相位因子,根据伊辛模型:
(13)
执行受控相移门I12=e-iτH,则:φ00=τ(J/4+h),φ01=φ10=-τJ/4,φ11=τ(J/4-h),考虑到φ00=φ01,式(12)改写为
e-iα(a2cosα+ia3sinα)|10〉+
e-iα(a3cosα+ia2sinα)|11〉]
(14)
(15)
(16)
τJ=-π
(17)
τ表示量子处理器在没有外界射频磁场作用时,两量子位系统的状态在哈密顿量式(13)的支配下,随时间演化的时间间隔.
在伊辛模型式(13)中两个核自旋感受到相同的静态磁场,但实际上两个核自旋感受到的是不同的静态磁场,这个静态磁场为
(18)
(19)
(20)
(21)
1.4 两量子位Grover算法核磁共振实现不同脉冲序列的设计
首先制备初始态|00〉为均匀叠加态|s〉核磁共振脉冲序列为
(22)
其中,Wj是作用在第j个量子位上的WH变换.
两量子位搜索量子算法的查询算符[12,13]为
Ua=I-2|10〉〈10|
(23)
分两步来实现,首先让系统核自旋之间的相互作用(式(1)的第一项)随时间自由演化(不加射频脉冲磁场)一段时间t,两量子位之间相互作用随时间演化算符[12]为
(24)
eiπ/4|10〉+e-iπ/4|11〉)
(25)
(26)
所以,
(27)
构造出查询算符Ua核磁共振脉冲序列为
(28)
因为,
(29)
同理可构造出查询算符另一个核磁共振脉冲序列:
(30)
在量子搜索算法中的平均值反转算符[12,13]为Us=2|s〉〈s|-I,对于两量子位量子搜索算法平均值反转算符为
(〈00|+〈01|+〈10|+〈11|)]-I
(31)
Us可表示为WH变换、条件相移变换P和另一个WH变换的乘积:
Us=W1W2PW1W2
(32)
用于构造Ua的脉冲序列方法也适用于条件相移门P,构造条件相移门P的脉冲序列为
(33)
Grover量子算法迭代算符[10,11]为U=UsUa,在|s〉态中搜索|10〉态的迭代算符U2的完整脉冲序列为
U2=W1W2PW1W2Ua
(34)
(35)
(36)
考虑到两个核自旋感受到不同的静态磁场的事实,需要对G(π)算符进行修改:
(37)
应该改写为
(38)
其中参数:
τ=-π/J
(39)
(40)
(41)
逻辑上等价的迭代算符的另一个核磁共振脉冲序列:
(42)
1.5 量子算法核磁共振脉冲序列参量设定
在理论研究工作中,采用文献[7]中参数取值:
(43)
(44)
(45)
采用自然单位,令ћ=1,这时两个核自旋处于一个静态磁场和一个射频正旋磁场中,在旋转参考系[14]中计算,当射频磁场与核自旋1发生共振,即
(46)
这时式(45)的解为
(47)
(48)
式(48)表明:要使核自旋1绕y轴转动π/2,但又不会影响核自旋2的状态,要求射频脉冲作用时间t1满足:
(49)
(50)
式(47)中第一个因子会产生一个相移,要消除这个相移对核自旋状态的影响,要求:
(51)
k1是正整数. 对脉冲参数的最后一个限制来自事实:
(52)
且0<γ<1,要使核自旋1绕y轴转动π/2,但又不会影响核自旋2的状态的条件式(49)—式(52),可得
(53)
同理,要使自旋2绕y轴转动π/2,而又不会影响自旋1的状态,可得
(54)
其中k2、n2是正整数,式(53)和(54)无精确解,但在k1和k2很大,γ为有理数时,令γ=N/M,0
(55)
表1 k=1核磁共振脉冲序列参数执行时间τ取值 /4πns
表2 k=1量子控制非门脉冲序列参数J和h取值 /π×109 Hz
表3 k=1 Grover量子算法脉冲序列参数J和h取值 /π×109 Hz
2 量子算法的脉冲序列设计程序问题演示与分析
2.1 含时薛定谔方程的数值求解方法
量子算法核磁共振物理实现脉冲序列设计程序问题可用含时薛定谔方程进行数值求解来演示,等价于执行量子算法. 核自旋系统随时间的演化遵守含时薛定谔方程[15]:
(56)
采用自然单位,令ћ=1,|Φ(t)〉描述整个量子计算机在时刻t的状态,H(t)为哈密顿量,利用第j量子位z方向分量的期望值,定义:
(57)
Qj是自旋1和自旋2的z分量期望值有关的量,Qj=1表示|1〉,Qj=0表示|0〉.
下面用Suzuki对称乘积[16,17]公式取代每个
U(t(n+1)δ,t+nδ):
e-iδHz/2e-iδHy/2e-iδHxe-iδHy/2e-iδHz/2
(58)
e-iδHy(t+(n+1/2)δ)/2e-iδHx(t+1/2)δ·
e-iδHy(t+(n+1/2)δ/2e-iδHz(t+(n+1/2)δ/2
(59)
其中
(60)
2.2 数值计算结果和量子程序问题演示与分析
图1 k=1, 执行CNOT1|11〉运算时,Q1和Q2随时间演化
图2 k=1,执行CNOT2|11〉运算时,Q1和Q2随时间演化
图3 k=1时,执行CNOT3|11〉运算时,Q1和Q2随时间演化
图4 k=1时,执行CNOT4|11〉运算时,Q1和Q2随时间演化
图5 k=32, 执行CNOT1|11〉运算时,Q1和Q2随时间演化
图6 k=32时,执行CNOT2|11〉运算时,Q1和Q2随时间演化
图7 k=32,执行CNOT3|11〉运算时,Q1和Q2随时间演化
图8 k=32,执行CNOT4|11〉运算时,Q1和Q2随时间演化
图9 k=4时, U2搜索|10〉时,Q1和Q2随时间演化
图10 k=4时,搜索|10〉时,Q1和Q2随时间演化
图11 k=32时,U2搜索|10〉时,Q1和Q2 随时间演化
图12 k=32时,搜索|10〉时Q1和Q2随时间演化
表4 k=1核磁共振脉冲序列执行时间τ、时间步长δ和执行步数m/4πns
表5 k= 1、4、8、32时,控制非门四种不同脉冲序列作用于|11〉后Q1和Q2的期望值
表6 k= 1、2、8、32时,Grover算法的两种不同脉冲序列搜索|s〉态中后|10〉 Q1和Q2的期望值
3 结论
在理论上量子处理器的相互独立基本操作(幺正变换)是可对易的,在物理上实际执行这些基本操作时,在有些情况下相互独立基本操作(幺正变换)并不对易,从而造成量子计算结果出错,我们称之为量子程序问题,量子程序问题产生的原因是:1) 理论上一个和两个量子比特完美的量子逻辑门操作与其物理实现的操作之间是有差异的;2) 使核自旋1发生共振射频脉冲磁场不仅会改变核自旋1的状态,也会改变核自旋2的状态;3) 射频脉冲作用时间远小于核自旋之间相互作用时间,在理论工作中核自旋之间相互作用对核自旋在射频脉冲作用下随着时间演化的影响可以忽略,但实际上会对两个核自旋之间产生相对相移. 据我们所知,目前理论上研究量子程序问题的唯一方法,是利用含时薛定谔方程数值求解,通过执行数值计算来模拟量子算法来研究量子程序问题.