对于一个由状态 ∣ ψ ⟩ |\psi\rangle ∣ψ⟩ 描述的量子系统,可以由一组测量算符 { M m } \{M_m\} {Mm} 描述,这些算符作用在被测量系统的态空间上,可能的测量结果 m m m 发生的概率为:
p ( m ) = ⟨ ψ ∣ M m H M m ∣ ψ ⟩ p(m)=\langle\psi|M_m^HM_m|\psi\rangle p(m)=⟨ψ∣MmHMm∣ψ⟩
测量后系统的状态为:
M m ∣ ψ ⟩ ⟨ ψ ∣ M m H M m ∣ ψ ⟩ \frac{M_m|\psi\rangle}{\sqrt{\langle\psi | M_m^H M_m |\psi \rangle}} ⟨ψ∣MmHMm∣ψ⟩Mm∣ψ⟩
测量算子需要满足完备性方程
∑ m M m H M m = I \sum_m M_m^H M_m =I m∑MmHMm=I
完备性方程描述了概率之和为 1 的事实,即
∑ m p ( m ) = ∑ m ⟨ ψ ∣ M m H M m ∣ ψ ⟩ \sum_m p(m)=\sum_m \langle\psi|M_m^HM_m|\psi\rangle m∑p(m)=m∑⟨ψ∣MmHMm∣ψ⟩
例:用 { ∣ 0 ⟩ , ∣ 1 ⟩ } \{|0\rangle,|1\rangle\} {∣0⟩,∣1⟩} 测量量子态 ∣ φ ⟩ = α ∣ 0 ⟩ + β ∣ 1 ⟩ |\varphi\rangle=\alpha|0\rangle+\beta|1\rangle ∣φ⟩=α∣0⟩+β∣1⟩
解: M 0 = ∣ 0 ⟩ ⟨ 0 ∣ = [ 1 0 0 0 ] , M 1 = ∣ 1 ⟩ ⟨ 1 ∣ = [ 0 0 0 1 ] M_0=|0\rangle\langle0|=\left[\begin{matrix} 1 & 0 \\ 0 & 0 \end{matrix}\right], M_1=|1\rangle\langle1|=\left[\begin{matrix} 0 & 0 \\ 0 & 1 \end{matrix}\right] M0=∣0⟩⟨0∣=[1000],M1=∣1⟩⟨1∣=[0001] ,显然 M 0 2 = M 0 , M 1 2 = M 1 , I = M 0 H M 0 + M 1 H M 1 = M 0 + M 1 M_0^2=M_0,M_1^2=M_1 , I=M_0^HM_0+M_1^HM_1=M_0+M_1 M02=M0,M12=M1,I=M0HM0+M1HM1=M0+M1,因此,对于 ∣ φ ⟩ = α ∣ 0 ⟩ + β ∣ 1 ⟩ |\varphi\rangle=\alpha|0\rangle+\beta|1\rangle ∣φ⟩=α∣0⟩+β∣1⟩,有
p ( 0 ) = ⟨ ψ ∣ M 0 H M 0 ∣ ψ ⟩ = ⟨ ψ ∣ M 0 ∣ ψ ⟩ = ∣ α ∣ 2 p(0)=\langle \psi | M_0^H M_0|\psi\rangle=\langle \psi | M_0|\psi\rangle=|\alpha|^2 p(0)=⟨ψ∣M0HM0∣ψ⟩=⟨ψ∣M0∣ψ⟩=∣α∣2
p ( 1 ) = ⟨ ψ ∣ M 1 H M 1 ∣ ψ ⟩ = ⟨ ψ ∣ M 1 ∣ ψ ⟩ = ∣ β ∣ 2 p(1)=\langle \psi | M_1^H M_1|\psi\rangle=\langle \psi | M_1|\psi\rangle=|\beta|^2 p(1)=⟨ψ∣M1HM1∣ψ⟩=⟨ψ∣M1∣ψ⟩=∣β∣2
所以,将以概率 ∣ α ∣ 2 |\alpha|^2 ∣α∣2 测得 ∣ 0 ⟩ |0\rangle ∣0⟩ ,以概率 ∣ β ∣ 2 |\beta|^2 ∣β∣2 测得 ∣ 1 ⟩ |1\rangle ∣1⟩ 。
测量公设的进一步认识:
测量共设是一个基本假设。测量系统和被测系统可以看做一个更大的封闭的量子系统的组成部分。而孤立的量子系统可以用幺正变换描述其演化过程。
测量公设的重要作用——区分量子态
密度算符是对量子的状态的一种不同的描述方法。前面我们一直了解到的是用状态向量表示一个量子系统的状态,我们也可以用密度算符对量子系统的状态进行描述。密度算符在描述 未知量子系统 和 复合系统子系统 方面更加有优越性。
系综:设量子系统以概率 p i p_i pi 处于状态 ϕ i \phi_i ϕi ,称 { p i , ∣ ϕ i ⟩ } \{p_i,|\phi_i\rangle\} {pi,∣ϕi⟩} 为一个系综,其中 p i ≥ 0 p_i \geq 0 pi≥0 ,且 ∑ i p i = 1 \sum_ip_i=1 ∑ipi=1 ,系统的 密度算子 为:
ρ = ∑ i p i ∣ ϕ i ⟩ ⟨ ϕ i ∣ \rho=\sum_i p_i|\phi_i\rangle\langle\phi_i| ρ=i∑pi∣ϕi⟩⟨ϕi∣
它是一个迹为 1 的半正定厄米算子。观察可以发现,这是外积和概率乘积的累加和,因此密度算子为一个矩阵。
纯态 :在密度算子的定义中若系统以概率 1 处于某个态 ∣ ϕ ⟩ |\phi\rangle ∣ϕ⟩ ,即系统的状态可以由一个态矢表示,则该系统是一个纯态。其密度算子为 ∣ ϕ ⟩ ⟨ ϕ ∣ |\phi\rangle\langle \phi | ∣ϕ⟩⟨ϕ∣。
混合态:若量子系统整体的状态不能用一个单独的态矢表示,它整体的状态可能是若干个状态中的一个,系统成为以不同的概率成为不同的态,即系统只能由若干不同的态矢描述,整个系统以概率 p i p_i pi 为 ∣ ϕ i ⟩ |\phi_i\rangle ∣ϕi⟩ ( i ≥ 1 i\geq1 i≥1),这样的系统称为混合态。
纯态与混合态的区别:纯态和混合态的最大区别是 t r ( ρ 纯 2 ) = 1 tr(\rho_{_{纯}}^2)=1 tr(ρ纯2)=1 ,而 t r ( ρ 混 2 ) < 1 tr(\rho_{_{混}}^2)<1 tr(ρ混2)<1 。
考察一个力学量 F F F 在纯态与混合态上的区别,假设算符 F ^ \hat{F} F^满足:
F ^ ∣ ϕ i ⟩ = f i ∣ ϕ i ⟩ \hat{F}|\phi_i\rangle=f_i|\phi_i\rangle F^∣ϕi⟩=fi∣ϕi⟩
具体到坐标表象:
可以看出,在纯态下,两个态之间发生干涉,而在混合态下,无干涉现象发生。纯态为 概率幅的叠加,称为 相干叠加 ,叠加的结果形成一个新的状态,混合态为 概率的叠加,称为 不相干叠加。
对于密度算符 ρ \rho ρ ,有
t r ( ρ 2 ) { = 1 ⟶ 纯 态 < 1 ⟶ 混 合 态 tr(\rho^2)\begin{cases} =1 & \longrightarrow & 纯态\\ <1 & \longrightarrow & 混合态\\ \end{cases} tr(ρ2){=1<1⟶⟶纯态混合态
密度算符是 厄米算符
ρ H = ( ∑ i p i ∣ ϕ i ⟩ ⟨ ϕ i ∣ ) H = ∑ i p i ∣ ϕ i ⟩ ⟨ ϕ i ∣ = ρ \rho^H=(\sum_ip_i|\phi_i\rangle\langle\phi_i|)^H= \sum_ip_i|\phi_i\rangle\langle\phi_i|=\rho ρH=(i∑pi∣ϕi⟩⟨ϕi∣)H=i∑pi∣ϕi⟩⟨ϕi∣=ρ
若混合态是由一系列相互正交的态构成的,则密度算符的本征态就是参与混合态的这些态 ∣ ϕ i ⟩ |\phi_i\rangle ∣ϕi⟩,而每个本征态对应的本征值就是每个态出现的概率 p i p_i pi ,即
ρ ∣ ϕ i ⟩ = p i ∣ ϕ i ⟩ \rho|\phi_i\rangle=p_i|\phi_i\rangle ρ∣ϕi⟩=pi∣ϕi⟩
密度算符是 半正定 的
⟨ ϕ ∣ ρ ∣ ϕ ⟩ = ⟨ ϕ ∣ ( ∑ i p i ∣ ϕ i ⟩ ⟨ ϕ i ∣ ) ∣ ϕ ⟩ = ∑ i p i ⟨ ϕ ∣ ϕ i ⟩ ⟨ ϕ i ∣ ϕ ⟩ = ∑ i p i ∣ ⟨ ϕ ∣ ϕ i ⟩ ∣ 2 ≥ 0 \begin{aligned} \langle\phi|\rho|\phi\rangle& =\langle\phi|(\sum_i p_i |\phi_i\rangle\langle\phi_i|)|\phi\rangle \\ &=\sum_i p_i\langle\phi|\phi_i\rangle\langle\phi_i|\phi\rangle \\ &=\sum_i p_i |\langle\phi|\phi_i\rangle|^2 \geq 0 \end{aligned} ⟨ϕ∣ρ∣ϕ⟩=⟨ϕ∣(i∑pi∣ϕi⟩⟨ϕi∣)∣ϕ⟩=i∑pi⟨ϕ∣ϕi⟩⟨ϕi∣ϕ⟩=i∑pi∣⟨ϕ∣ϕi⟩∣2≥0
密度算符可以进行谱分解
对于一个有若干子系统组成的大的量子体系,如果我们只对其中的子系统感兴趣,那么我们可以使用 约化密度算子 对复合量子系统进行分析。
约化密度算子:假设有物理系统 A A A 和 B B B ,其整体状态由密度算子 ρ A B \rho^{AB} ρAB 描述,那么,针对系统 A A A 和 B B B 的约化密度算子分别定义为:
目的 | 定义 | 含义 |
---|---|---|
得到系统A状态 | ρ A = t r B ( ρ A B ) \rho^A=tr_{_B}(\rho^{AB}) ρA=trB(ρAB) | 对B系统进行约化 |
得到系统B状态 | ρ B = t r A ( ρ A B ) \rho^B=tr_{_A}(\rho^{AB}) ρB=trA(ρAB) | 对A系统进行约化 |
t r B tr_B trB 是一个算子映射,称为在系统 B B B 上的 偏迹 ,偏迹就是将该系统的分量求内积,变换为一个数,而对其他系统的分量不做变换,即 对谁求偏迹,将谁求内积,其定义为:
t r A ( ∣ a 1 ⟩ ⟨ a 2 ∣ ⊗ ∣ b 1 ⟩ ⟨ b 2 ∣ ) = ∣ b 1 ⟩ ⟨ b 2 ∣ t r A ( ∣ a 1 ⟩ ⟨ a 2 ∣ ) = ∣ b 1 ⟩ ⟨ b 2 ∣ ⟨ a 2 ∣ a 1 ⟩ tr_{_A}(|a_1\rangle\langle a_2|\otimes|b_1\rangle\langle b_2|)= |b_1\rangle\langle b_2| \ tr_{_A}(|a_1\rangle\langle a_2|)= |b_1\rangle\langle b_2| \langle a_2|a_1\rangle trA(∣a1⟩⟨a2∣⊗∣b1⟩⟨b2∣)=∣b1⟩⟨b2∣ trA(∣a1⟩⟨a2∣)=∣b1⟩⟨b2∣⟨a2∣a1⟩
t r B ( ∣ a 1 ⟩ ⟨ a 2 ∣ ⊗ ∣ b 1 ⟩ ⟨ b 2 ∣ ) = ∣ a 1 ⟩ ⟨ a 2 ∣ t r B ( ∣ b 1 ⟩ ⟨ b 2 ∣ ) = ∣ a 1 ⟩ ⟨ a 2 ∣ ⟨ b 2 ∣ b 1 ⟩ tr_{_B}(|a_1\rangle\langle a_2|\otimes|b_1\rangle\langle b_2|)= |a_1\rangle\langle a_2| \ tr_{_B}(|b_1\rangle\langle b_2|)= |a_1\rangle\langle a_2| \langle b_2|b_1\rangle trB(∣a1⟩⟨a2∣⊗∣b1⟩⟨b2∣)=∣a1⟩⟨a2∣ trB(∣b1⟩⟨b2∣)=∣a1⟩⟨a2∣⟨b2∣b1⟩
一般来说,复合得到的整体的系统处于纯态,其子系统也有可能为混合态。如 Bell 态是一个两比特系统的纯态
∣ Ψ + ⟩ = 1 2 ( ∣ 0 ( 1 ) ⟩ ∣ 1 ( 2 ) ⟩ + ∣ 1 ( 0 ) ⟩ ∣ 0 ( 2 ) ⟩ ) |\Psi^+\rangle = \frac{1}{\sqrt{2}}( |0^{(1)}\rangle |1^{(2)}\rangle + |1^{(0)}\rangle |0^{(2)}\rangle ) ∣Ψ+⟩=21(∣0(1)⟩∣1(2)⟩+∣1(0)⟩∣0(2)⟩)
因为它就表示该系统的状态,所以其密度算子为
ρ = ∣ Ψ + ⟩ ⟨ Ψ + ∣ = 1 2 ( ∣ 0 ( 1 ) ⟩ ∣ 1 ( 2 ) ⟩ ⟨ 1 ( 2 ) ∣ ⟨ 0 ( 1 ) ∣ + ∣ 0 ( 1 ) ⟩ ∣ 1 ( 2 ) ⟩ ⟨ 0 ( 2 ) ∣ ⟨ 1 ( 1 ) ∣ + ∣ 1 ( 1 ) ⟩ ∣ 0 ( 2 ) ⟩ ⟨ 1 ( 2 ) ∣ ⟨ 0 ( 1 ) ∣ + ∣ 1 ( 1 ) ⟩ ∣ 0 ( 2 ) ⟩ ⟨ 0 ( 2 ) ∣ ⟨ 1 ( 1 ) ∣ ) \begin{aligned} \rho = |\Psi^+\rangle \langle\Psi^+| &=\frac{1}{2}( |0^{(1)}\rangle |1^{(2)}\rangle \langle1^{(2)}| \langle0^{(1)}| + |0^{(1)}\rangle |1^{(2)}\rangle \langle0^{(2)}| \langle1^{(1)}| \\ & +|1^{(1)}\rangle |0^{(2)}\rangle \langle1^{(2)}| \langle0^{(1)}| + |1^{(1)}\rangle |0^{(2)}\rangle \langle0^{(2)}| \langle1^{(1)}| ) \end{aligned} ρ=∣Ψ+⟩⟨Ψ+∣=21(∣0(1)⟩∣1(2)⟩⟨1(2)∣⟨0(1)∣+∣0(1)⟩∣1(2)⟩⟨0(2)∣⟨1(1)∣+∣1(1)⟩∣0(2)⟩⟨1(2)∣⟨0(1)∣+∣1(1)⟩∣0(2)⟩⟨0(2)∣⟨1(1)∣)
对第一个量子比特的约化密度算子就是对第二个量子比特求偏迹,将第二个量子比特约化:
ρ ( 1 ) = t r ( 2 ) ρ = t r ( 2 ) 1 2 ( ∣ 0 ( 1 ) ⟩ ∣ 1 ( 2 ) ⟩ ⟨ 1 ( 2 ) ∣ ⟨ 0 ( 1 ) ∣ + ∣ 0 ( 1 ) ⟩ ∣ 1 ( 2 ) ⟩ ⟨ 0 ( 2 ) ∣ ⟨ 1 ( 1 ) ∣ + ∣ 1 ( 1 ) ⟩ ∣ 0 ( 2 ) ⟩ ⟨ 1 ( 2 ) ∣ ⟨ 0 ( 2 ) ∣ + ∣ 1 ( 1 ) ⟩ ∣ 0 ( 2 ) ⟩ ⟨ 0 ( 2 ) ∣ ⟨ 1 ( 1 ) ∣ ) = 1 2 ( ∣ 0 ( 1 ) ⟩ ⟨ 0 ( 1 ) ∣ ⟨ 1 ( 2 ) ∣ 1 ( 2 ) ⟩ + ∣ 0 ( 1 ) ⟩ ⟨ 1 ( 1 ) ∣ ⟨ 0 ( 2 ) ∣ 1 ( 2 ) ⟩ + ∣ 1 ( 1 ) ⟩ ⟨ 0 ( 1 ) ∣ ⟨ 1 ( 2 ) ∣ 0 ( 2 ) ∣ ⟩ + ∣ 1 ( 1 ) ⟩ ⟨ 1 ( 1 ) ∣ ⟨ 0 ( 2 ) ∣ 0 ( 2 ) ⟩ ) = 1 2 ( ∣ 0 ( 1 ) ⟨ 0 ( 1 ) ∣ + ∣ 1 ( 1 ) ⟩ ⟨ 1 ( 1 ) ∣ ) \begin{aligned} \rho^{(1)} & =tr_{(2)}\rho & \\ &=tr_{(2)} \frac{1}{2} (|0^{(1)}\rangle |1^{(2)}\rangle \langle1^{(2)}| \langle0^{(1)}| + |0^{(1)}\rangle |1^{(2)}\rangle \langle0^{(2)}| \langle1^{(1)}| & \\ & +|1^{(1)}\rangle |0^{(2)}\rangle \langle1^{(2)}| \langle0^{(2)}| + |1^{(1)}\rangle |0^{(2)}\rangle \langle0^{(2)}| \langle1^{(1)}|) \\ &=\frac{1}{2} (|0^{(1)}\rangle \langle0^{(1)}| \textcolor{red}{\langle1^{(2)} |1^{(2)}\rangle} + |0^{(1)}\rangle \langle1^{(1)}| \textcolor{red}{\langle0^{(2)} | 1^{(2)} \rangle} & \\ & +|1^{(1)}\rangle \langle0^{(1)}| \textcolor{red}{\langle 1^{(2)} |0^{(2)} | \rangle} + |1^{(1)}\rangle \langle1^{(1)}| \textcolor{red}{\langle 0^{(2)} | 0^{(2)} \rangle }) \\ &=\frac{1}{2}(|0^{(1)}\langle0^{(1)}|+|1^{(1)}\rangle\langle1^{(1)}|) \end{aligned} ρ(1)=tr(2)ρ=tr(2)21(∣0(1)⟩∣1(2)⟩⟨1(2)∣⟨0(1)∣+∣0(1)⟩∣1(2)⟩⟨0(2)∣⟨1(1)∣+∣1(1)⟩∣0(2)⟩⟨1(2)∣⟨0(2)∣+∣1(1)⟩∣0(2)⟩⟨0(2)∣⟨1(1)∣)=21(∣0(1)⟩⟨0(1)∣⟨1(2)∣1(2)⟩+∣0(1)⟩⟨1(1)∣⟨0(2)∣1(2)⟩+∣1(1)⟩⟨0(1)∣⟨1(2)∣0(2)∣⟩+∣1(1)⟩⟨1(1)∣⟨0(2)∣0(2)⟩)=21(∣0(1)⟨0(1)∣+∣1(1)⟩⟨1(1)∣)
可以算出,该密度算子的平方的迹小于 1 ,且它表示的状态不能用一个态矢表示,是一个混合态。
这里简单介绍几个典型的量子算法和基本的原理。
RSA公钥密码体系
现有最普遍的加密算法是 RSA 公钥密码体系,其基本原理就是用两个大素数的合数进行加密,想要解密必须求出该合数对应的两个素数,在现有计算中的能力下,对于过大合数是无法在短时间内求出对应的两个素数的。Shor 设计了一种算法可以在极短的时间内利用量子计算机解决这个求素数的问题,这里我们先来了解一下 RSA 密码体系的基本原理。
Shor算法的描述
Shor算法最关键之处是利用量子傅立叶变换求函数的周期,所以只要求得函数的周期,就可以对合数进行分解。 其主要步骤为:
设 N N N 为要分解的大整数, 选择 m m m 使之满足 N 2 < 2 m < 2 N 2 N^2<2^m<2N^2 N2<2m<2N2.
随机选一正整数 a a a ,使得 a < N a
定义 f ( x ) = a x m o d N , x = 1 , 2 , 3 , ⋯ , n f(x)=a^x \bmod N \ \ ,x=1,2,3,\cdots ,n f(x)=axmodN ,x=1,2,3,⋯,n ,显然 f ( x ) f(x) f(x) 所取的值属于正整数集合 { 1 , 2 … , N - 1 } \{1,2…,N-1\} {1,2…,N-1} ,它是一个周期函数。
我们通过量子傅里叶变换 QFT 来求取 f ( x ) f(x) f(x) 的周期 T ,基本步骤为:
首先,对两组有m个量子比特的存储器进行幺正变换得到纠缠状态
∑ r = 0 2 m − 1 ∣ x i ⟩ ⊗ ∣ f ( x i ) ⟩ \sum_{r=0}^{2^m-1}|x_i\rangle \otimes |f(x_i)\rangle r=0∑2m−1∣xi⟩⊗∣f(xi)⟩
对存储器 x x x 进行傅里叶变换:
∣ x ⟩ = 2 − m / 2 ∑ k = 0 2 m − 1 e 2 π i k x 2 m ∣ k ⟩ |x\rangle=2^{-m/2}\sum_{k=0}^{2^m-1} e^{\frac{2\pi i kx}{2^m}} |k\rangle ∣x⟩=2−m/2k=0∑2m−1e2m2πikx∣k⟩
量子QFT就是将态前面的叠加系数变为原叠加系数的离散傅立叶变换,并且可以证明, 上述变换大约可以在 m 2 m^2 m2 步骤内完成。通过合并相消,最后可以得出只有 k k k 取下列值时系数明显不为 0 :
k = [ n 2 m T ] , ( n = 0 , 1 , ⋯ , T − 1 ) k=\left[ n\frac{2^m}{T}\right],(n=0,1,\cdots,T-1) k=[nT2m],(n=0,1,⋯,T−1)
化简可得:
2 m k = T n , ( n = 0 , 1 , ⋯ , T − 1 ) \frac{2^m}{k}=\frac{T}{n},(n=0,1,\cdots,T-1) k2m=nT,(n=0,1,⋯,T−1)
之后可以通过对 k k k 存储器进行测量,得到 k k k 的本征值,得到本征值后就可以通过上式算出周期 T T T 。
之后利用 g c d ( a T 2 − 1 , N ) gcd(a^\frac{T}{2}-1,N) gcd(a2T−1,N) 和 g c d ( a T 2 + 1 , N ) gcd(a^\frac{T}{2}+1,N) gcd(a2T+1,N) 求出两个质因数 n 1 , n 2 n_1,n_2 n1,n2 。
该算法指的是从 n 个未分类的元质中寻找出某个特定的元质。其 基本原理 为:
假设在 N 个元质的空间中搜索,为方便起见,假定 N=2n,且搜索问题恰好有 M 个解,这个问题的特例可以方便地表示为一个输入 x x x 的函数 f ( x ) f(x) f(x), x x x 是从 0 0 0 到 N - 1 N-1 N-1 的整数, f f f 的定义是:
若 x x x 是搜索问题的一个解,则 f ( x ) = 1 f(x)=1 f(x)=1, 而若 x x x 不是解, 则 f ( x ) = 0 f(x)=0 f(x)=0。
搜索问题都可归结为在判决函数:
f : Ω → 0 , 1 f: Ω→{0,1} f:Ω→0,1
对每个输入都可计算出来的条件下,从 N N N 元的可能解集合 Ω Ω Ω 中找出一个满足
f ( x ) = 1 f (x) =1 f(x)=1
的点 x x x 的问题。函数 f f f 称为一个 Oracle(黑匣子、数据库、神谕、预言)。
其 过程 为:
初始化:产生一个等幅度的状态叠合:
∣ 0 n , 0 ⟩ → 对 前 n 个 分 量 并 行 执 行 量 子 傅 里 叶 变 换 1 2 n ∑ x = 0 2 n − 1 ∣ x , 0 ⟩ |0^n,0\rangle\xrightarrow[]{对前n个分量并行执行量子傅里叶变换}\frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n-1}|x,0\rangle ∣0n,0⟩对前n个分量并行执行量子傅里叶变换2n1x=0∑2n−1∣x,0⟩
完成对判决函数的并行计算
1 2 n ∑ x = 0 2 n − 1 ∣ x , 0 ⟩ → 将 第 一 分 量 的 变 换 结 果 ⊕ 到 第 二 分 量 F : ∣ x , b ⟩ → ∣ x , b ⊕ f ( x ) ⟩ 1 2 n ∑ x = 0 2 n − 1 ∣ x , f ( x ) ⟩ \frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n-1}|x,0\rangle \xrightarrow[将第一分量的变换结果 \oplus 到第二分量]{F:|x,b\rangle \rightarrow |x,b\oplus f(x)\rangle} \frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n-1}|x,f(x)\rangle 2n1x=0∑2n−1∣x,0⟩F:∣x,b⟩→∣x,b⊕f(x)⟩将第一分量的变换结果⊕到第二分量2n1x=0∑2n−1∣x,f(x)⟩
对最后分量做 Z 操作 变换, 标出真解
1 2 n ∑ x = 0 2 n − 1 ∣ x , f ( x ) ⟩ → 对 第 二 分 量 做 “ Z 操 作 ” 变 换 1 2 n ∑ x = 0 2 n − 1 ( − 1 ) f ( x ) ∣ x , f ( x ) ⟩ \frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n-1}|x,f(x)\rangle \xrightarrow[]{对第二分量做 “Z操作” 变换} \frac{1}{\sqrt{2^n}}\sum_{x=0}^{2^n-1}(-1)^{f(x)}|x,f(x)\rangle 2n1x=0∑2n−1∣x,f(x)⟩对第二分量做“Z操作”变换2n1x=0∑2n−1(−1)f(x)∣x,f(x)⟩
该步达到的效果是只有真解的幅度才是负值。
对 ∣ x , f ( x ) ⟩ | x, f(x)\rangle ∣x,f(x)⟩的第一分量执行 D 变换——增大真解 b b b 对应的状态 ∣ b , 1 ⟩ |b,1\rangle ∣b,1⟩的出现概率。其中 D 变换的变换矩阵 D = ( d i j ) 2 n ⊗ 2 n D=(d_{ij})_{2^n \otimes 2^n} D=(dij)2n⊗2n,其中
d i j = { 2 1 − n − 1 , i ≠ j 2 1 − n , i = j d_{ij}=\begin{cases} &2^{1-n}-1 & ,i\neq j \\ &2^{1-n} & ,i= j \end{cases} dij={21−n−121−n,i=j,i=j
即幅度的变化规律 ( a 0 , a 1 , ⋯ , a 2 n − 1 ) → ( a 0 ′ , a 1 ′ , , ⋯ , a 2 n − 1 ′ ) (a_0,a_1,\cdots,a_{2^n-1})\rightarrow(a_0^{'},a_1^{'},,\cdots,a_{2^n-1}^{'}) (a0,a1,⋯,a2n−1)→(a0′,a1′,,⋯,a2n−1′) ( a i a_i ai 是 ∣ i ⟩ |i\rangle ∣i⟩ 的幅度) 为:
a i ′ = ∑ j = 0 2 n − 1 d i j a j = d i i a i = ( 2 1 − n − 1 ) a i + 2 1 − n ∑ j : j ≠ i a j = 2 1 − n ∑ j = 0 2 n − 1 a j − a i a_i^{'}=\sum_{j=0}^{2^n-1}d_{ij}a_j=d_{ii}a_i= (2^{1-n}-1)a_i+2^{1-n}\sum_{j:j\neq i}a_j= 2^{1-n}\sum_{j=0}^{2^n-1}a_j-a_i ai′=j=0∑2n−1dijaj=diiai=(21−n−1)ai+21−nj:j=i∑aj=21−nj=0∑2n−1aj−ai
该步是为了使达到的效果是真解的出现概率变大。
重复执行第三步至第四步 k 次后进行观察, 得到观察结果 | x,1并将 x 作为真解输出。
注意:
迭代的次数 k k k 的值必须预先设定:
k ≈ π 4 2 n M − 1 2 k\approx \frac{\pi}{4}\sqrt{\frac{2^n}{M}}-\frac{1}{2} k≈4πM2n−21
整个算法只计算 f ( x ) f(x) f(x) 一次。