详解量子计算:相位反冲与相位反转

news2024/11/28 6:46:51

前言

本文需要对量子计算有一定的了解。需要的请翻阅我的量子专栏,这里不再涉及基础知识的科普。

量子相位反冲是什么?

相位反转(phase kickback)是量子计算中的一种现象,通常在量子算法中使用,例如量子相位估计算法。相位反冲可以用于将某些运算转化为在控制比特上的操作,从而实现更高效的量子算法。

相位反冲的主要思想是将一个控制比特和一个目标比特连接在一起,然后将目标比特进行某种操作,这个操作的相位会反冲到控制比特上,使得控制比特的状态发生改变。这样,我们可以通过测量控制比特的状态来获取目标比特上的信息。

在这里插入图片描述

例如,在量子相位估计算法中,我们想要估计一个相位角θ,我们可以构造一个相应的幺正运算U,将一个有用的状态|ψ⟩作为目标比特,将一个初始状态|0⟩作为控制比特,并将它们连接在一起。然后,对控制比特应用Hadamard门,使得它处于|+⟩状态,接着对U进行一个特定的操作,使得它的相位角为2kθ,其中k是控制比特的状态,最后再对控制比特进行测量,从而可以得到θ的估计。在这个过程中,相位反冲起到了关键作用,将目标比特的相位信息传递给了控制比特。

理解相位反冲

假设我们有一个叠加态 ∣ + ⟩ = 1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) |+\rangle = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) +=2 1(∣0+∣1⟩),和一个初始状态为 ∣ 0 ⟩ |0\rangle ∣0 的控制比特和目标比特。我们可以将它们放在一个线路中,并将控制比特上的Hadamard门作用在上面,将叠加态 ∣ + ⟩ |+\rangle + 与控制比特进行叠加,然后再应用CNOT门,将控制比特作为控制量子比特,目标比特作为目标量子比特。 这个操作的结果是

1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) ⊗ ∣ 0 ⟩ → Hadamard on control bit 1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) ( ∣ 0 ⟩ − ∣ 1 ⟩ ) → CNOT 1 2 ( ∣ 00 ⟩ − ∣ 01 ⟩ + ∣ 10 ⟩ − ∣ 11 ⟩ ) \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) \otimes |0\rangle \xrightarrow{\text{Hadamard on control bit}} \frac{1}{2}(|0\rangle + |1\rangle)(|0\rangle - |1\rangle) \xrightarrow{\text{CNOT}} \frac{1}{2}(|00\rangle - |01\rangle + |10\rangle - |11\rangle) 2 1(∣0+∣1⟩)∣0Hadamard on control bit 21(∣0+∣1⟩)(∣0∣1⟩)CNOT 21(∣00∣01+∣10∣11⟩)

控制比特的状态(第一个量子比特)已经传递到了目标比特的相位上。这就是相位反冲技术的一个例子。为了更好的理解他,对下面的一些概念进行普及:

正交归一化叠加态

1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) ⊗ ∣ 0 ⟩ → 1 2 ( ∣ 00 ⟩ + ∣ 11 ⟩ ) ,   1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) ⊗ ∣ 1 ⟩ → 1 2 ( ∣ 01 ⟩ + ∣ 10 ⟩ ) \begin{aligned} \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)\otimes|0\rangle &\rightarrow \frac{1}{\sqrt{2}}(|00\rangle + |11\rangle), \ \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)\otimes|1\rangle &\rightarrow \frac{1}{\sqrt{2}}(|01\rangle + |10\rangle) \end{aligned} 2 1(∣0+∣1⟩)∣02 1(∣00+∣11⟩), 2 1(∣0+∣1⟩)∣12 1(∣01+∣10⟩)

这个量子态可以写成:

1 2 ( ∣ 0 ⟩ ⊗ ∣ 0 ⟩ + ∣ 1 ⟩ ⊗ ∣ 1 ⟩ ) \frac{1}{\sqrt{2}}(|0\rangle\otimes|0\rangle + |1\rangle\otimes|1\rangle) 2 1(∣0∣0+∣1∣1⟩)

其中 ∣ 0 ⟩ ⊗ ∣ 0 ⟩ |0\rangle\otimes|0\rangle ∣0∣0 ∣ 1 ⟩ ⊗ ∣ 1 ⟩ |1\rangle\otimes|1\rangle ∣1∣1是基矢量,也就是正交的。因此,这个量子态是一个正交归一化叠加态。

假设有一个初始态 ∣ ψ ⟩ = ∣ 0 ⟩ |\psi\rangle = |0\rangle ψ=∣0,然后应用了一个 Hadamard 门,得到的叠加态为: ∣ ψ ′ ⟩ = H ∣ ψ ⟩ = 1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) |\psi'\rangle=H|\psi\rangle = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) ψ=Hψ=2 1(∣0+∣1⟩)

接着,将 ∣ ψ ′ ⟩ |\psi'\rangle ψ 作为控制态,和一个目标态 ∣ ψ ′ ′ ⟩ = ∣ 0 ⟩ |\psi''\rangle = |0\rangle ψ′′=∣0 经过 CNOT 门,得到的最终态为: ∣ ψ f i n a l ⟩ = 1 2 ( ∣ 00 ⟩ + ∣ 11 ⟩ ) |\psi_{final}\rangle = \frac{1}{\sqrt{2}}(|00\rangle + |11\rangle) ψfinal=2 1(∣00+∣11⟩)

此时,第一个量子比特处于正交归一化叠加态。而这个过程中就涉及了相位反演。
在量子力学中,一个系统可以被表示为其基态的叠加,每个基态都是一个量子态。如果基态是正交的且归一化,那么它们可以构成一个正交归一化基。一个系统也可以被表示为不同的基的线性组合,这些基构成正交归一化叠加态。这些叠加态不仅是描述量子态的方便工具,而且在许多实际应用中也具有重要作用,比如在量子计算和量子通信中。
下面是系统的概念:
正交归一化叠加态: 在量子力学中,一个量子态是指一个量子系统所处的状态。量子态可以用一个或多个复数表示,其中每个复数都对应于系统的一个可能状态。当涉及到多个态时,为了避免出现混乱,需要对这些态进行归一化和正交化。
归一化是指将一个向量除以其长度,以使其长度等于1。在量子力学中,归一化态是一个长度为1的量子态,它是由量子态中的每个系数除以归一化系数而得到的。归一化态在量子力学中非常重要,因为在某些情况下,只有归一化的态才能表示物理上可观测的状态。为了理解这个概念,下面我们来看一些例子:

1 2 ∣ 000 ⟩ + 3 2 ∣ 111 ⟩ \frac{1}{2}|000\rangle + \frac{\sqrt{3}}{2}|111\rangle 21∣000+23 ∣111:这是一个三量子比特的量子态。它的归一化系数为 1 4 + 3 4 = 1 \sqrt{\frac{1}{4} + \frac{3}{4}} = 1 41+43 =1
1 3 ∣ 000 ⟩ + 2 3 ∣ 111 ⟩ \frac{1}{\sqrt{3}}|000\rangle + \sqrt{\frac{2}{3}}|111\rangle 3 1∣000+32 ∣111:这是一个三量子比特的量子态。它的归一化系数为 1 3 + 2 3 = 1 \sqrt{\frac{1}{3} + \frac{2}{3}} = 1 31+32 =1

正交是指两个向量之间的内积为0,或者说两个向量之间的夹角为90度。在量子力学中,正交态是两个不同的量子态之间的内积为0的态。这意味着这些态可以互相区分并被用于描述系统的不同状态。例如,如果一个系统可以处于状态 ∣ 0 ⟩ |0\rangle ∣0 ∣ 1 ⟩ |1\rangle ∣1中,那么这两个态是正交的,因为它们的内积为0。
总之,正交归一化叠加态是指在一个量子系统中,多个归一化态之间是正交的,并且它们的叠加形成了一个新的归一化态。在量子计算中,正交归一化叠加态是一种常用的量子态,因为它们具有良好的可操作性和测量性质。常见的正交归一化叠加态包括Hadamard变换的超位置态和Bell态。

1 2 ( ∣ 00 ⟩ + ∣ 11 ⟩ ) \frac{1}{\sqrt{2}}(|00\rangle + |11\rangle) 2 1(∣00+∣11⟩):这是一个Bell态,也是一个常用的量子态。它可以通过将两个qubit都置于 ∣ + ⟩ |+\rangle +态并施加CNOT门来制备。
1 2 ( ∣ 00 ⟩ + ∣ 01 ⟩ ) \frac{1}{\sqrt{2}}(|00\rangle + |01\rangle) 2 1(∣00+∣01⟩):这是一个比特的叠加态。它可以通过对一个qubit施加Hadamard门来制备。

相位(全局与相对)

全局相位

全局相位是指一个量子态的相位旋转,它不会改变该量子态的物理性质。在量子力学中,一个量子态可以表示成幺正算符作用于某个基态,而幺正算符通常包含一个相位因子。对于一个给定的量子态,如果我们对这个幺正算符中的相位进行一个统一的改变,那么这个量子态就会产生一个全局相位的变化。这个全局相位的变化不会影响任何可观测量的测量结果,因此被视为无用的信息。
一个例子是两个量子比特的纠缠态 ∣ ψ ⟩ = 1 2 ( ∣ 01 ⟩ − ∣ 10 ⟩ ) |\psi\rangle = \frac{1}{\sqrt{2}}(|01\rangle - |10\rangle) ψ=2 1(∣01∣10⟩),这个态有一个全局相位因子 − 1 -1 1,并且有一个相对相位因子 i i i
全局相位因子表现为态矢量整体乘上一个复数,比如 e i θ e^{i\theta} eiθ,其中 θ \theta θ 是一个常数。在上面的例子中, − 1 -1 1 就是这个态的全局相位因子。
相对相位因子表现为态矢量中不同基态系数之间的复数因子,比如上面的例子中的 i i i。在这个例子中, ∣ 01 ⟩ |01\rangle ∣01 ∣ 10 ⟩ |10\rangle ∣10 的系数之间的相对相位因子是 i i i

在量子力学中,一个态矢量 ∣ ψ ⟩ |\psi\rangle ψ 可以表示为相对相位和全局相位的乘积形式: ∣ ψ ⟩ = e i γ e i θ ∣ u ⟩ ∣ψ⟩=e^{iγ}e^{iθ}|u⟩ ψ=eeiθu

其中 ∣ u ⟩ |u\rangle u 是一个固定的态矢量, θ \theta θ 是相对相位, γ \gamma γ 是全局相位。相对相位指的是相对于某个基态 ∣ u ⟩ |u\rangle u 的相位,而全局相位是指整个态矢量的相位。

首先,假设我们有一个两量子比特的纯态 ∣ ψ ⟩ |\psi\rangle ψ,其中第一个量子比特的状态是 ∣ 0 ⟩ |0\rangle ∣0,第二个量子比特的状态为

∣ ψ 2 ⟩ = α ∣ 0 ⟩ + β ∣ 1 ⟩ . |\psi_2\rangle = \alpha|0\rangle + \beta|1\rangle. ψ2=α∣0+β∣1.

假设我们在第一个量子比特上施加一个相位门 R z ( θ ) R_z(\theta) Rz(θ),我们可以得到如下的纯态:

∣ ψ ′ ⟩ = R z ( θ ) ∣ ψ ⟩ = ∣ 0 ⟩ ( α ∣ 0 ⟩ + β e i θ ∣ 1 ⟩ ) . |\psi'\rangle = R_z(\theta)|\psi\rangle = |0\rangle(\alpha|0\rangle + \beta e^{i\theta}|1\rangle). ψ=Rz(θ)ψ=∣0(α∣0+βeiθ∣1⟩).

现在,我们来计算相对相位。设 ∣ ψ 1 ⟩ = ∣ 0 ⟩ |\psi_1\rangle = |0\rangle ψ1=∣0,则

⟨ ψ 1 ∣ ψ ′ ⟩ = ⟨ 0 ∣ 0 ⟩ ( α ⟨ 0 ∣ 0 ⟩ + β e i θ ⟨ 0 ∣ 1 ⟩ ) = α . \langle\psi_1|\psi'\rangle = \langle 0|0\rangle(\alpha\langle 0|0\rangle + \beta e^{i\theta}\langle 0|1\rangle) = \alpha. ψ1ψ=0∣0(α0∣0+βeiθ0∣1⟩)=α.

类似地,设 ∣ ψ 1 ⟩ = ∣ 1 ⟩ |\psi_1\rangle = |1\rangle ψ1=∣1,则

⟨ ψ 1 ∣ ψ ′ ⟩ = ⟨ 1 ∣ 0 ⟩ ( α ⟨ 0 ∣ 1 ⟩ + β e i θ ⟨ 1 ∣ 1 ⟩ ) = β e i θ . \langle\psi_1|\psi'\rangle = \langle 1|0\rangle(\alpha\langle 0|1\rangle + \beta e^{i\theta}\langle 1|1\rangle) = \beta e^{i\theta}. ψ1ψ=1∣0(α0∣1+βeiθ1∣1⟩)=βeiθ.

因此,我们可以得到相对相位为 θ \theta θ

现在,我们来看一个有全局相位的例子。假设我们的初始态为

∣ ψ ⟩ = 1 2 ( ∣ 01 ⟩ − ∣ 10 ⟩ ) . |\psi\rangle = \frac{1}{\sqrt{2}}(|01\rangle - |10\rangle). ψ=2 1(∣01∣10⟩).

我们来计算施加相位门 R z ( θ ) R_z(\theta) Rz(θ) 之后的态。首先,我们需要将 R z ( θ ) R_z(\theta) Rz(θ) 展开成矩阵形式:

R z ( θ ) = [ e − i θ / 2 0 0 e i θ / 2 ] . R_z(\theta) = \begin{bmatrix} e^{-i\theta/2} & 0 \\ 0 & e^{i\theta/2} \end{bmatrix}. Rz(θ)=[eiθ/200eiθ/2].

对第一个量子比特施加 R z ( θ ) R_z(\theta) Rz(θ) 门后,我们得到的新态为:

∣ ψ ′ ⟩ = 1 2 ( e − i θ / 2 ∣ 0 ⟩ ∣ 1 ⟩ − e i θ / 2 ∣ 1 ⟩ ∣ 0 ⟩ ) . |\psi'\rangle = \frac{1}{\sqrt{2}}(e^{-i\theta/2}|0\rangle|1\rangle - e^{i\theta/2}|1\rangle|0\rangle). ψ=2 1(eiθ/2∣0∣1eiθ/2∣1∣0⟩).

现在,我们来计算两个态的内积:

⟨ ψ ∣ ψ ′ ⟩ = 1 2 [ 1 − 1 ] [ e − i θ / 2   − e i θ / 2 ] = − 1 2 e i θ / 2 . \langle\psi|\psi'\rangle = \frac{1}{\sqrt{2}}\begin{bmatrix} 1 & -1 \end{bmatrix}\begin{bmatrix} e^{-i\theta/2} \ -e^{i\theta/2} \end{bmatrix} = -\frac{1}{\sqrt{2}}e^{i\theta/2}. ψψ=2 1[11][eiθ/2 eiθ/2]=2 1eiθ/2.

由于内积的结果中有相位 e i θ / 2 e^{i\theta/2} eiθ/2,所以我们称这个量子态有全局相位。全局相位是一个复数,它可以表示为 θ = e i ϕ \theta= e^{i\phi} θ=eiϕ,其中 ϕ \phi ϕ是相位角。当我们对一个量子比特施加一个全局相位 θ \theta θ时,其密度矩阵的形式会发生变化,但在测量方面并没有影响。因此,全局相位通常被认为是量子态的“不可观测量”。

考虑一个单量子比特系统的初始状态为 ∣ ψ ⟩ = α ∣ 0 ⟩ + β ∣ 1 ⟩ |\psi\rangle=\alpha|0\rangle+\beta|1\rangle ψ=α∣0+β∣1,其中 α \alpha α β \beta β是复数且满足 ∣ α ∣ 2 + ∣ β ∣ 2 = 1 |\alpha|^2+|\beta|^2=1 α2+β2=1。假设我们施加一个全局相位 θ = e i ϕ \theta= e^{i\phi} θ=eiϕ,则量子态变为

∣ ψ ′ ⟩ = e i ϕ ( α ∣ 0 ⟩ + β ∣ 1 ⟩ ) |\psi'\rangle=e^{i\phi}(\alpha|0\rangle+\beta|1\rangle) ψ=eiϕ(α∣0+β∣1⟩)

我们可以将这个量子态写成极坐标形式:

∣ ψ ′ ⟩ = ∣ α ∣ e i ( ϕ + θ 1 ) ∣ 0 ⟩ + ∣ β ∣ e i ( ϕ + θ 2 ) ∣ 1 ⟩ |\psi'\rangle=|\alpha|e^{i(\phi+\theta_1)}|0\rangle+|\beta|e^{i(\phi+\theta_2)}|1\rangle ψ=αei(ϕ+θ1)∣0+βei(ϕ+θ2)∣1

其中, θ 1 \theta_1 θ1 θ 2 \theta_2 θ2 α \alpha α β \beta β的相位角, θ 1 + θ 2 = π \theta_1+\theta_2=\pi θ1+θ2=π

可以看出,全局相位 θ \theta θ只是改变了量子态中的全局相位,而不影响相对相位。因此,全局相位通常被忽略,因为它并不影响测量结果或量子计算中的其他操作。

相对相位

与全局相位相对的是相对相位,它指的是两个量子态之间的相对相位差异。
假设有两个量子态 ∣ ψ 1 ⟩ |\psi_1\rangle ψ1 ∣ ψ 2 ⟩ |\psi_2\rangle ψ2,它们的全局相位是一样的,即它们都被乘上了同一个复数因子 e i θ e^{i\theta} eiθ,其中 θ \theta θ 是相位角度,那么这两个量子态可以表示为:
∣ ψ 1 ⟩ = e i θ ∣ ϕ ⟩ |\psi_1\rangle=e^{i\theta}|\phi\rangle ψ1=eiθϕ
∣ ψ 1 ⟩ = e i θ ∣ φ ⟩ |\psi_1\rangle=e^{i\theta}|\varphi\rangle ψ1=eiθφ

其中 ∣ ϕ ⟩ |\phi\rangle ϕ ∣ φ ⟩ |\varphi\rangle φ 是两个不同的量子态。如果我们现在对 ∣ ψ 1 ⟩ |\psi_1\rangle ψ1 ∣ ψ 2 ⟩ |\psi_2\rangle ψ2 进行测量,它们所对应的概率幅值的比值为:

⟨ ψ 1 ∣ ψ 2 ⟩ ∣ ⟨ ψ 1 ∣ ψ 2 ⟩ ∣ = e i ϕ \frac{\langle\psi_1|\psi_2\rangle}{|\langle\psi_1|\psi_2\rangle|}=e^{i\phi} ψ1ψ2ψ1ψ2=eiϕ

其中 ϕ \phi ϕ ∣ ϕ ⟩ |\phi\rangle ϕ ∣ φ ⟩ |\varphi\rangle φ 之间的相对相位差。这个相对相位差是全局相位角度 θ \theta θ 的函数,而不是 ∣ ϕ ⟩ |\phi\rangle ϕ ∣ φ ⟩ |\varphi\rangle φ 的函数。因此,相对相位差是不受全局相位影响的,只与量子态 ∣ ϕ ⟩ |\phi\rangle ϕ ∣ φ ⟩ |\varphi\rangle φ 有关。
因此,我们可以通过改变 ∣ ϕ ⟩ |\phi\rangle ϕ ∣ φ ⟩ |\varphi\rangle φ 之间的相对相位差来改变它们之间的区别。这也就是为什么在量子计算中,相对相位非常重要,因为它可以被用来实现量子计算中的一些关键操作,比如量子傅里叶变换和量子相位估计。

总结一下,相对相位是不受全局相位影响的量子态之间的相位差,它可以被用来描述不同量子态之间的区别,并且在量子计算中有重要的应用。

相位反冲的例子

ex1)
∣ + ⟩ = 1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) |+\rangle= \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle) +=2 1(∣0+∣1⟩)
0 ⊗ ∣ + ⟩ = 1 2 ( ∣ 00 ⟩ + ∣ 01 ⟩ ) → CNOT-2 1 2 ( ∣ 00 ⟩ + ∣ 11 ⟩ ) 0\otimes|+\rangle= \frac{1}{\sqrt{2}}(|00\rangle+|01\rangle) \xrightarrow{\text{CNOT-2}} \frac{1}{\sqrt{2}}(|00\rangle+|11\rangle) 0+=2 1(∣00+∣01⟩)CNOT-2 2 1(∣00+∣11⟩)
U f : 1 2 ( ∣ 00 ⟩ + ∣ 11 ⟩ ) → U 1 2 ( ∣ 0 ⟩ ( − 1 ) f ( 0 ) ∣ 0 ⟩ + ∣ 1 ⟩ ( − 1 ) f ( 1 ) 1 ⟩ ) U_f: \frac{1}{\sqrt{2}}(|00\rangle+|11\rangle) \xrightarrow{\text{U}} \frac{1}{\sqrt{2}}(|0\rangle(-1)^{f(0)}|0\rangle+|1\rangle(-1)^{f(1)}1\rangle) Uf:2 1(∣00+∣11⟩)U 2 1(∣0(1)f(0)∣0+∣1(1)f(1)1⟩)

其中, ∣ 0 ⟩ |0\rangle ∣0 ∣ 1 ⟩ |1\rangle ∣1 分别表示量子比特的基态, ∣ + ⟩ |+\rangle + 表示 ∣ 0 ⟩ |0\rangle ∣0 ∣ 1 ⟩ |1\rangle ∣1 的正交归一化叠加态, ⊗ \otimes 表示张量积, U f U_f Uf 表示一个由 f f f 定义的量子门, ( − 1 ) f ( x ) (-1)^{f(x)} (1)f(x) 是一个复数相位,其取值为 + 1 +1 +1 − 1 -1 1,具体取决于 f ( x ) f(x) f(x) 的值。即测量第一个量子比特的结果时,如果结果为 ∣ 0 ⟩ |0\rangle ∣0 ,则说明第二位的结果也是 ∣ 0 ⟩ |0\rangle ∣0 ,此时并没有对第二个量子位进行测量,但是我们知道了第二个量子位的信息。这就是因为我们将第二个量子位操作的变化反转到了全局相位的变化上。

ex2)
假设有一个单量子比特的初始态 ∣ ψ ⟩ = ∣ 0 ⟩ |\psi\rangle = |0\rangle ψ=∣0,经过以下操作后进行测量得到结果 ∣ 1 ⟩ |1\rangle ∣1

∣ ψ ⟩ |\psi\rangle ψ 应用一个 Hadamard 门: H ∣ ψ ⟩ = 1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) H|\psi\rangle = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle) Hψ=2 1(∣0+∣1⟩)
∣ ψ ⟩ |\psi\rangle ψ 作为控制比特,将一个目标比特 ∣ − ⟩ = 1 2 ( ∣ 0 ⟩ − ∣ 1 ⟩ ) |-\rangle = \frac{1}{\sqrt{2}}(|0\rangle - |1\rangle) =2 1(∣0∣1⟩) 作为目标比特,进行 CNOT 操作: C N O T ∣ ψ ⟩ , ∣ − ⟩ 1 2 ( ∣ 0 ⟩ ∣ − ⟩ + ∣ 1 ⟩ ∣ + ⟩ ) CNOT_{|\psi\rangle,|-\rangle} \frac{1}{\sqrt{2}}(|0\rangle|-\rangle + |1\rangle|+\rangle) CNOTψ,2 1(∣0+∣1+⟩)
测量第一个量子比特。如果测量结果为 ∣ 0 ⟩ |0\rangle ∣0,则目标比特测量结果为 ∣ − ⟩ |-\rangle ;如果测量结果为 ∣ 1 ⟩ |1\rangle ∣1,则目标比特测量结果为 ∣ + ⟩ |+\rangle +
C N O T ∣ ψ ⟩ , ∣ − ⟩ 1 2 ( ∣ 0 ⟩ ∣ − ⟩ + ∣ 1 ⟩ ∣ + ⟩ ) = 1 2 ( ∣ 0 ⟩ ∣ − ⟩ − ∣ 1 ⟩ ∣ + ⟩ ) CNOT_{|\psi\rangle,|-\rangle}\frac{1}{\sqrt{2}}(|0\rangle|-\rangle + |1\rangle|+\rangle)=\frac{1}{\sqrt{2}}(|0\rangle|-\rangle - |1\rangle|+\rangle) CNOTψ,2 1(∣0+∣1+⟩)=2 1(∣0∣1+⟩)

在这个例子中,相位反转发生在第 2 步,当控制比特 ∣ ψ ⟩ |\psi\rangle ψ 的状态为 ∣ 1 ⟩ |1\rangle ∣1 时,目标比特的相位将反转。

ex3):一个复杂的例子
考虑一个双量子比特系统,其中第一个量子比特是控制量子比特,第二个量子比特是目标量子比特。假设目标量子比特处于状态 ∣ u ⟩ |u\rangle u,而控制量子比特处于状态 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) / 2 (|0\rangle + |1\rangle) / \sqrt{2} (∣0+∣1⟩)/2 ,即:
∣ ψ ⟩ = 1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) ∣ u ⟩ |\psi\rangle = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)|u\rangle ψ=2 1(∣0+∣1⟩)u
我们希望将目标量子比特的相位信息传递到控制量子比特上。为了实现这一目的,我们需要执行下面的操作:

  1. 用目标量子比特和一个第三个量子比特构成一个受控门。第三个量子比特的状态为 ∣ − ⟩ |-\rangle ,即 H ∣ − ⟩ = ∣ 1 ⟩ H|-\rangle = |1\rangle H=∣1 X ∣ − ⟩ = − ∣ − ⟩ = ∣ − ⟩ X|-\rangle = -|-\rangle=|-\rangle X==
  2. 将控制量子比特与第三个量子比特进行 CNOT 门操作。
  3. 将第三个量子比特和目标量子比特进行 CNOT 门操作(复原)。
  4. 再次将控制量子比特和第三个量子比特进行 CNOT 门操作(复原)。

下面是具体到公式的演示方法:

  • 将目标量子比特 ∣ u ⟩ |u\rangle u 与第三个量子比特 ∣ − ⟩ |-\rangle 进行 CNOT 门操作,得到如下状态:
    ∣ + ⟩ ∣ u ⟩ ∣ − ⟩ → CNOT-2,3 1 2 ∣ + ⟩ ( ∣ u ⟩ − ∣ u ⟩ ) |+\rangle|u\rangle|-\rangle \xrightarrow{\text{CNOT-2,3}} \frac{1}{\sqrt{2}}|+\rangle(|u\rangle-|u\rangle) +uCNOT-2,3 2 1+(uu⟩)

  • 将控制量子比特 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) / 2 (|0\rangle + |1\rangle) / \sqrt{2} (∣0+∣1⟩)/2 与第三个量子比特 ∣ − ⟩ |-\rangle 进行 CNOT 门操作,得到如下状态:
    1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) ( ∣ u ⟩ − ∣ u ⟩ ) − 1 2 ( ∣ 0 ⟩ − ∣ 1 ⟩ ) ( ∣ u ⟩ + ∣ u ⟩ ) ∣ − ⟩ \frac{1}{2}(|0\rangle+|1\rangle)(|u\rangle-|u\rangle) - \frac{1}{2}(|0\rangle-|1\rangle)(|u\rangle+|u\rangle)|-\rangle 21(∣0+∣1⟩)(uu⟩)21(∣0∣1⟩)(u+u⟩)

  • 将第三个量子比特 ∣ − ⟩ |-\rangle 与目标量子比特 ∣ u ⟩ |u\rangle u 进行 CNOT 门操作,得到如下状态:
    1 2 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) ( ∣ u ⟩ − ∣ u ⟩ ) − 1 2 ( ∣ 0 ⟩ − ∣ 1 ⟩ ) ( ∣ u ⟩ − ∣ u ⟩ ) ∣ − ⟩ \frac{1}{2}(|0\rangle+|1\rangle)(|u\rangle-|u\rangle) - \frac{1}{2}(|0\rangle-|1\rangle)(|u\rangle-|u\rangle)|-\rangle 21(∣0+∣1⟩)(uu⟩)21(∣0∣1⟩)(uu⟩)

  • 注意到此时,第二个量子比特 ∣ u ⟩ |u\rangle u 的相位信息已经传递到第三个量子比特 ∣ − ⟩ |-\rangle 上了。最后,将控制量子比特 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) / 2 (|0\rangle + |1\rangle) / \sqrt{2} (∣0+∣1⟩)/2 与第三个量子比特 ∣ − ⟩ |-\rangle 再进行一次 CNOT 门操作,得到如下状态:
    1 2 ( ∣ 0 ⟩ ∣ − ⟩ − ∣ 1 ⟩ ∣ − ⟩ ) ( ∣ u ⟩ − ∣ u ⟩ ) − 1 2 ( ∣ 0 ⟩ ∣ − ⟩ + ∣ 1 ⟩ ∣ − ⟩ ) ( ∣ u ⟩ − ∣ u ⟩ ) \frac{1}{2}(|0\rangle|-\rangle-|1\rangle|-\rangle)(|u\rangle-|u\rangle) - \frac{1}{2}(|0\rangle|-\rangle+|1\rangle|-\rangle)(|u\rangle-|u\rangle) 21(∣0∣1⟩)(uu⟩)21(∣0+∣1⟩)(uu⟩)

化简后可得:

1 2 ( ∣ 0 ⟩ − ∣ 1 ⟩ ) ∣ u ⟩ \frac{1}{\sqrt{2}}(|0\rangle - |1\rangle)|u\rangle 2 1(∣0∣1⟩)u

可以看到,控制量子比特的相位信息已经被传递到了目标量子比特上,并且多了一个负号。这就是相位反转的效果。
在这里插入图片描述

其中 Q 1 Q_1 Q1 表示控制量子比特, Q 2 Q_2 Q2 表示目标量子比特, Q 3 Q_3 Q3 表示第三个量子比特。

在该电路中,我们首先对 Q 2 Q_2 Q2 Q 3 Q_3 Q3 进行受控门操作,使得 Q 3 Q_3 Q3 的相位信息被传递到了 Q 2 Q_2 Q2 上。然后,我们将 Q 1 Q_1 Q1 Q 3 Q_3 Q3 进行 CNOT 门操作,这相当于在 Q 3 Q_3 Q3 的状态为 ∣ 1 ⟩ |1\rangle ∣1 的时候对 Q 1 Q_1 Q1 进行了 X X X 门操作。接着,我们将 Q 2 Q_2 Q2 Q 3 Q_3 Q3 进行 CNOT 门操作,这将使得 Q 1 Q_1 Q1 的相位信息被传递到了 Q 3 Q_3 Q3 上。最后,我们再次将 Q 1 Q_1 Q1 Q 3 Q_3 Q3 进行 CNOT 门操作,相当于在 Q 3 Q_3 Q3 的状态为 ∣ 1 ⟩ |1\rangle ∣1 的时候对 Q 1 Q_1 Q1 进行了 X X X 门操作。这一系列操作的结果是, Q 1 Q_1 Q1 的相位信息被传递到了 Q 1 Q_1 Q1 本身上,也就是实现了相位反冲的效果。
这个过程中实现相位反冲的关键在于第二步和第四步的 CNOT 门操作。具体来说,第二步的 CNOT 门操作实现了对于 Q 3 Q_3 Q3 ∣ 1 ⟩ |1\rangle ∣1 状态时,对 Q 1 Q_1 Q1 X X X 门操作,而第四步的 CNOT 门操作实现了对于 Q 3 Q_3 Q3 ∣ 1 ⟩ |1\rangle ∣1 状态时,再次对 Q 1 Q_1 Q1 X X X 门操作。
Q 2 Q_2 Q2 Q 3 Q_3 Q3 进行受控门操作时,由于 Q 3 Q_3 Q3 的初始状态为 ∣ − ⟩ |-\rangle ,所以相当于对 Q 2 Q_2 Q2 应用了一个相位门操作 S S S。因此,我们实际上实现的是对 Q 1 Q_1 Q1 应用了 S S S 门操作,将 Q 2 Q_2 Q2 的相位信息反冲到了 Q 1 Q_1 Q1 上。
然后在第二步和第四步的 CNOT 门操作中,当 Q 3 Q_3 Q3 处于 ∣ 1 ⟩ |1\rangle ∣1 状态时,它会对 Q 1 Q_1 Q1 施加一个 X X X 门操作,而当 Q 3 Q_3 Q3 处于 ∣ 0 ⟩ |0\rangle ∣0 状态时,则不会对 Q 1 Q_1 Q1 进行操作。因此,通过这两个 CNOT 门操作,我们可以将 Q 2 Q_2 Q2 的相位信息反冲到 Q 1 Q_1 Q1 上,实现了相位反冲的效果。
最终,我们得到的状态为 1 2 ( ∣ 0 ⟩ + e i ϕ ∣ 1 ⟩ ) ∣ u ⟩ \frac{1}{\sqrt{2}}(|0\rangle + e^{i\phi}|1\rangle)|u\rangle 2 1(∣0+eiϕ∣1⟩)u,其中 ϕ \phi ϕ Q 2 Q_2 Q2 的相位信息,已经被传递到了 Q 1 Q_1 Q1 上。

为了更好地理解,我们将带入纯数式,用纯数学的方式来计算。

假设量子态 u u u 是一个单比特量子态,它的数学表达式可以表示为:

u = α ∣ 0 ⟩ + β ∣ 1 ⟩ u = \alpha |0\rangle + \beta |1\rangle u=α∣0+β∣1

其中, α \alpha α β \beta β是复数, ∣ 0 ⟩ |0\rangle ∣0 ∣ 1 ⟩ |1\rangle ∣1分别是基态。

另外,叠加态 ∣ + ⟩ |+\rangle +也是一个单比特量子态,它的数学表达式可以表示为:

∣ + ⟩ = ∣ 0 ⟩ + ∣ 1 ⟩ 2 |+\rangle = \frac{|0\rangle + |1\rangle}{\sqrt{2}} +=2 ∣0+∣1

当叠加态 ∣ + ⟩ |+\rangle + 作为控制比特,量子态 ∣ 0 ⟩ |0\rangle ∣0 作为目标比特,应用CNOT门,可以得到:

CNOT ( ∣ + ⟩ ∣ 0 ⟩ ) = CNOT ( ∣ 0 ⟩ + ∣ 1 ⟩ 2 ⊗ ∣ 0 ⟩ ) = ∣ 00 ⟩ + ∣ 11 ⟩ 2 \text{CNOT}(|+\rangle |0\rangle) = \text{CNOT}\left(\frac{|0\rangle + |1\rangle}{\sqrt{2}} \otimes |0\rangle\right) = \frac{|00\rangle + |11\rangle}{\sqrt{2}} CNOT(+∣0⟩)=CNOT(2 ∣0+∣1∣0)=2 ∣00+∣11

因此,线路第二阶段与第四阶段输出的量子态可以表示为:

2 阶段: ∣ α 000 ⟩ − ∣ α 001 ⟩ + ∣ α 101 ⟩ − ∣ α 100 ⟩ + ∣ β 011 ⟩ − ∣ β 010 ⟩ − ∣ β 111 ⟩ + ∣ β 110 ⟩ 2 = ( ∣ 0 ⟩ ∣ u ⟩ − ∣ 1 ⟩ ∣ − u ⟩ ) ∣ − ⟩ 2阶段:\frac{|α000\rangle -|α001\rangle +|α101\rangle -|α100\rangle + |β011\rangle- |β010\rangle- |β111\rangle+ |β110\rangle}{2} =(|0\rangle|u\rangle-|1\rangle|-u\rangle)|-\rangle 2阶段:2α000α001+α101α100+β011β010β111+β110=(∣0u∣1u⟩)
4 阶段: ∣ α 000 ⟩ − ∣ α 001 ⟩ + ∣ α 100 ⟩ − ∣ α 101 ⟩ − ∣ β 011 ⟩ + ∣ β 010 ⟩ + ∣ β 110 ⟩ − ∣ β 111 ⟩ 2 = ( ∣ 0 ⟩ ∣ u ⟩ + ∣ 1 ⟩ ∣ u ⟩ ) ∣ − ⟩ 4阶段:\frac{|α000\rangle -|α001\rangle +|α100\rangle -|α101\rangle - |β011\rangle+ |β010\rangle+ |β110\rangle- |β111\rangle}{2} =(|0\rangle|u\rangle+|1\rangle|u\rangle)|-\rangle 4阶段:2α000α001+α100α101β011+β010+β110β111=(∣0u+∣1u⟩)

2阶段公式化简可得:

( ∣ 0 ⟩ ∣ u ⟩ − ∣ 1 ⟩ ∣ − u ⟩ ) ∣ − ⟩ = 1 2 ∣ 0 ⟩ ( α ∣ 0 ⟩ + β ∣ 1 ⟩ ) ⊗ ∣ − ⟩ − 1 2 ∣ 1 ⟩ ( α ∣ 0 ⟩ − β ∣ 1 ⟩ ) ⊗ ∣ − ⟩ = 1 2 ( ∣ 0 ⟩ ( α ∣ 0 ⟩ + β ∣ 1 ⟩ ) − ∣ 1 ⟩ ( α ∣ 0 ⟩ − β ∣ 1 ⟩ ) ) ⊗ ∣ − ⟩ (|0\rangle|u\rangle-|1\rangle|-u\rangle)|-\rangle=\frac{1}{\sqrt{2}}|0\rangle(\alpha|0\rangle + \beta|1\rangle) \otimes |-\rangle - \frac{1}{\sqrt{2}}|1\rangle(\alpha|0\rangle - \beta|1\rangle) \otimes |-\rangle=\frac{1}{\sqrt{2}}(|0\rangle(\alpha|0\rangle + \beta|1\rangle)-|1\rangle(\alpha|0\rangle - \beta|1\rangle))\otimes |-\rangle (∣0u∣1u⟩)=2 1∣0(α∣0+β∣1⟩)2 1∣1(α∣0β∣1⟩)=2 1(∣0(α∣0+β∣1⟩)∣1(α∣0β∣1⟩))

而同理4阶段公式化简可得:
1 2 ( ∣ 0 ⟩ ( α ∣ 0 ⟩ + β ∣ 1 ⟩ ) + ∣ 1 ⟩ ( α ∣ 0 ⟩ + β ∣ 1 ⟩ ) ) ⊗ ∣ − ⟩ \frac{1}{\sqrt{2}}(|0\rangle(\alpha|0\rangle + \beta|1\rangle)+|1\rangle(\alpha|0\rangle + \beta|1\rangle))\otimes |-\rangle 2 1(∣0(α∣0+β∣1⟩)+∣1(α∣0+β∣1⟩))

所以我们可以清楚的看到,量子反冲之前,当第一个量子位被测量后,我们无法得知第二个量子位的信息,它仍然是随机的。但是量子反冲之后,当第一个量子位被测量时,我们可以得知第二个量子位的相位信息。当第一个量子位确定时,第二个量子位也被确定了。
ex4)
假设三个量子比特分别为 q 1 q_1 q1, q 2 q_2 q2 q 3 q_3 q3,并且目标量子比特 q 3 q_3 q3 初始处于状态 ∣ u ⟩ |u\rangle u,而控制量子比特 q 1 q_1 q1 初始处于状态 ( ∣ 0 ⟩ + ∣ 1 ⟩ ) / 2 (|0\rangle + |1\rangle) / \sqrt{2} (∣0+∣1⟩)/2 ,其余量子比特初始处于状态 ∣ 0 ⟩ |0\rangle ∣0。则该过程可以表达为以下一系列的门操作:

将第三个量子比特 q 3 q_3 q3 应用一个 R z R_z Rz 旋转门,将其相位翻转 18 0 ∘ 180^{\circ} 180,即 R z ( π ) ∣ u ⟩ = − ∣ u ⟩ R_z(\pi)|u\rangle = -|u\rangle Rz(π)u=u

q 1 q_1 q1 和一个辅助量子比特 q 2 q_2 q2 进行 CNOT 门操作,得到状态: 1 2 ( ∣ 0 ⟩ ∣ 0 ⟩ + ∣ 1 ⟩ ∣ 1 ⟩ ) ∣ u ⟩ \frac{1}{\sqrt{2}}(|0\rangle|0\rangle + |1\rangle|1\rangle)|u\rangle 2 1(∣0∣0+∣1∣1⟩)u

q 2 q_2 q2 应用一个 H H H 门,得到状态: 1 2 ( ∣ 0 ⟩ ∣ 0 ⟩ + ∣ 1 ⟩ ∣ 1 ⟩ ) 1 2 ( ∣ 0 ⟩ − ∣ 1 ⟩ ) ∣ u ⟩ \frac{1}{\sqrt{2}}(|0\rangle|0\rangle + |1\rangle|1\rangle)\frac{1}{\sqrt{2}}(|0\rangle - |1\rangle)|u\rangle 2 1(∣0∣0+∣1∣1⟩)2 1(∣0∣1⟩)u

q 2 q_2 q2 q 3 q_3 q3 进行 CNOT 门操作,得到状态: 1 2 ( ∣ 0 ⟩ ∣ 0 ⟩ + ∣ 1 ⟩ ∣ 1 ⟩ ) 1 2 ( ∣ 0 ⟩ − ∣ 1 ⟩ ) ( ∣ u ⟩ − ∣ u ′ ⟩ ) \frac{1}{\sqrt{2}}(|0\rangle|0\rangle + |1\rangle|1\rangle)\frac{1}{\sqrt{2}}(|0\rangle - |1\rangle)(|u\rangle - |u'\rangle) 2 1(∣0∣0+∣1∣1⟩)2 1(∣0∣1⟩)(uu⟩) 其中, ∣ u ′ ⟩ |u'\rangle u 表示经过 R z R_z Rz 门操作后的目标量子比特状态。

q 1 q_1 q1 q 2 q_2 q2 再次进行 CNOT 门操作,得到状态: 1 2 ( ∣ 0 ⟩ ∣ u ⟩ − ∣ 1 ⟩ ∣ u ′ ⟩ ) 1 2 ( ∣ 0 ⟩ − ∣ 1 ⟩ ) \frac{1}{\sqrt{2}}(|0\rangle|u\rangle - |1\rangle|u'\rangle) \frac{1}{\sqrt{2}}(|0\rangle - |1\rangle) 2 1(∣0u∣1u⟩)2 1(∣0∣1⟩)

q 2 q_2 q2 再次应用一个 H H H 门,得到状态: 1 2 [ ( ∣ 0 ⟩ − ∣ 1 ⟩ ) ( ∣ u ⟩ − ∣ u ′ ⟩ ) ] \frac{1}{2}[(|0\rangle - |1\rangle)(|u\rangle - |u'\rangle)] 21[(∣0∣1⟩)(uu⟩)]

最后,将 q 1 q_1 q1 q 2 q_2 q2 进行一次 CNOT 门操作,得到状态: 1 2 [ ( ∣ 0 ⟩ − ∣ 1 ⟩ ) ( ∣ u ⟩ − ∣ u ′ ⟩ ) ] ∣ 0 ⟩ + 1 2 [ ( ∣ 0 ⟩ + ∣ 1 ⟩ ) ( ∣ u ⟩ + ∣ u ′ ⟩ ) ] ∣ 1 ⟩ \frac{1}{2}[(|0\rangle - |1\rangle)(|u\rangle - |u'\rangle)]|0\rangle + \frac{1}{2}[(|0\rangle + |1\rangle)(|u\rangle + |u'\rangle)]|1\rangle 21[(∣0∣1⟩)(uu⟩)]∣0+21[(∣0+∣1⟩)(u+u⟩)]∣1

我们可以看到,最终的状态中,第一个量子比特 q 1 q_1 q1 上的相位信息反转了,并且通过观察第二个量子比特 q 2 q_2 q2 的状态可以验证这一点。

相位反转与量子振幅放大算法

相位反转和相位反冲是两个不同的概念。相位反转通常是指改变一个量子态中某个比特的相位,即在Bloch球的经典视角下绕Z轴旋转一个角度,或者在复数表示下将相位取负。相位反转是一种常见的量子门操作,可以用于量子计算中的一些算法,如量子振幅放大算法。相位反冲是指一个比特的相位被反转后,与之相邻的另一个比特的相位也随之发生反转。在量子计算中,相位反冲可以用于制备纠缠态和量子错误校正等。

用目标量子比特和一个第三个量子比特构成一个受控门。第三个量子比特的状态为 ∣ − ⟩ |-\rangle ,即 H ∣ − ⟩ = ∣ 1 ⟩ H|-\rangle = |1\rangle H=∣1 X ∣ − ⟩ = ∣ − ⟩ X|-\rangle = |-\rangle X=
将控制量子比特与第三个量子比特进行 CNOT 门操作。
将第三个量子比特和目标量子比特进行 CNOT 门操作。
再次将控制量子比特和第三个量子比特进行 CNOT 门操作。
α ∣ 0 ⟩ c o n t r o l ∣ u ⟩ t a r g e t + β ∣ 1 ⟩ c o n t r o l ∣ u ⟩ t a r g e t → α ∣ 0 ⟩ c o n t r o l ∣ u ⟩ t a r g e t + β ∣ 1 ⟩ c o n t r o l ( − 1 ) u ∣ u ⟩ t a r g e t α|0\rangle_{control}|u\rangle_{target}+β|1\rangle_{control}|u\rangle_{target} \rightarrow α|0\rangle_{control}|u\rangle_{target}+β|1\rangle_{control}(-1)^u|u\rangle_{target} α∣0controlutarget+β∣1controlutargetα∣0controlutarget+β∣1control(1)uutarget

其中, α \alpha α β \beta β 是控制量子比特的两个状态。在这个过程中,第三个量子比特的相位翻转被“反弹”回控制量子比特,从而将目标量子比特的相位信息传递给控制量子比特。

相位反转(phase flip)和概率有一定的关系,因为在进行相位反转操作时,会导致量子态的相位发生改变,从而影响到测量时的概率分布。
∣ 0 ⟩ c o n t r o l ∣ u ⟩ t a r g e t → ∣ 0 ⟩ c o n t r o l ( − 1 ) u ∣ u ⟩ t a r g e t |0\rangle_{control}|u\rangle_{target} \rightarrow |0\rangle_{control}(-1)^u|u\rangle_{target} ∣0controlutarget∣0control(1)uutarget

具体来说,在量子力学中,一个量子态可以表示为幅度和相位的叠加。在测量量子态时,它会坍缩为一个确定的状态,且不同状态的概率分布由幅度的模长的平方给出。相位反转操作本身不会增加概率,因为量子态的模长平方代表的概率在相位反转后不会改变。但是在某些情况下,相位反转操作可以通过干涉的方式增加某些测量结果的概率。

量子振幅放大算法

假设有一个黑盒子程序 U U U,它能将输入 x x x 映射到输出 f ( x ) f(x) f(x),其中 f f f n n n 比特的布尔函数,且保证只有一个 x x x 使得 f ( x ) = 1 f(x) = 1 f(x)=1。我们的目标是找到这个满足 f ( x ) = 1 f(x) = 1 f(x)=1 x x x。对于经典计算机而言,需要进行 2 n 2^n 2n 次计算才能找到这个解,但对于量子计算机,量子振幅放大算法可以实现在 O ( N ) O(\sqrt{N}) O(N ) 次计算内找到这个解,其中 N = 2 n N = 2^n N=2n

算法的流程如下:
初始化:对于一个函数 f ( x ) f(x) f(x),我们选择一个初始状态 ∣ s ⟩ \vert s \rangle s和一个目标状态 ∣ t ⟩ \vert t \rangle t,并构造一个等概率的叠加态 ∣ ψ ⟩ = 1 N ∑ x = 0 N − 1 ∣ x ⟩ \vert \psi \rangle = \frac{1}{\sqrt{N}}\sum_{x=0}^{N-1}\vert x \rangle ψ=N 1x=0N1x,其中 N N N是状态的总数。这里我们假设 N N N 2 n 2^n 2n,其中 n n n是量子比特数。

反演操作:我们定义一个标记算符 U t U_t Ut,使得对于所有的 x x x U t ∣ x ⟩ = ( − 1 ) f ( x ) ∣ x ⟩ U_t\vert x \rangle = (-1)^{f(x)}\vert x \rangle Utx=(1)f(x)x,其中 f ( x ) = 1 f(x) = 1 f(x)=1当且仅当 x = t x=t x=t,否则 f ( x ) = 0 f(x)=0 f(x)=0。我们将标记算符 U t U_t Ut分解成两个操作:首先对于所有的 x x x,将 ∣ x ⟩ \vert x \rangle x映射到 ∣ x ⟩ \vert x \rangle x − ∣ x ⟩ -\vert x \rangle x上,然后将 − ∣ t ⟩ -\vert t \rangle t映射到 ∣ t ⟩ \vert t \rangle t上。这样,我们就得到了一个反演算符 U s U_s Us,使得 U s ∣ ψ ⟩ = 1 N ∑ x = 0 N − 1 ( − 1 ) s ( x ) ∣ x ⟩ U_s \vert \psi \rangle = \frac{1}{\sqrt{N}}\sum_{x=0}^{N-1}(-1)^{s(x)}\vert x \rangle Usψ=N 1x=0N1(1)s(x)x,其中 s ( x ) = 1 s(x) = 1 s(x)=1当且仅当 x ≠ t x \neq t x=t,否则 s ( x ) = − 1 s(x) = -1 s(x)=1

重复操作:我们将反演算符 U s U_s Us应用 k k k次,得到 ∣ ψ ′ ⟩ = U s k ∣ ψ ⟩ \vert \psi' \rangle = U_s^k \vert \psi \rangle ψ=Uskψ。这里 k k k的取值应该足够大,满足 4 k arcsin ⁡ 1 N ≈ π 2 4k \arcsin \frac{1}{\sqrt{N}} \approx \frac{\pi}{2} 4karcsinN 12π,其中 arcsin ⁡ \arcsin arcsin是反正弦函数。这样可以使得 ∣ ψ ′ ⟩ \vert \psi' \rangle ψ更加靠近目标状态 ∣ t ⟩ \vert t \rangle t

测量操作:最后我们进行一次测量操作,将 ∣ ψ ′ ⟩ \vert \psi' \rangle ψ映射到某个状态上。由于 ∣ ψ ′ ⟩ \vert \psi' \rangle ψ更加靠近目标状态 ∣ t ⟩ \vert t \rangle t,所以测量结果为 ∣ t ⟩ \vert t \rangle t的概率更大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/364312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亲测实现PopupWindow显示FlowLayout流式布局带固定文本/按钮(位置可改)

实现:动态绘制并带固定文本/按钮,固定文本/按钮固定在最后一行的右边且垂直居中,若最后一行放不下,则新开一行放到新行的右边且垂直居中(新行的行高跟前面的一样),可单选、多选、重置。 注&…

SQL零基础入门学习(六)

SQL零基础入门学习(六) SQL零基础入门学习(五) SQL 通配符 通配符可用于替代字符串中的任何其他字符。 SQL 通配符用于搜索表中的数据。 在 SQL 中,可使用以下通配符: 演示数据库 在本教程中&#xff…

robotframework自动化测试环境搭建

环境说明 win10 python版本&#xff1a;3.8.3rc1 安装清单 安装配置 selenium安装 首先检查pip命令是否安装&#xff1a; C:\Users\name>pipUsage:pip <command> [options]Commands:install Install packages.download Do…

掌握这10个测试方法,软件测试已登堂入室

当然还有很多测试方法&#xff0c;这些要根据实际不同应用场景而变化&#xff0c;这里就以键盘为例子进行测试方法的讲解。 1.需求测试 需求这种大家都知道这种主要是就是甲方或者项目经理写的&#xff0c;或者某些人需要什么我们就给什么&#xff0c;一般来讲一个东西给到…

API 接口应该如何设计?如何保证安全?如何签名?如何防重?

说明&#xff1a;在实际的业务中&#xff0c;难免会跟第三方系统进行数据的交互与传递&#xff0c;那么如何保证数据在传输过程中的安全呢&#xff08;防窃取&#xff09;&#xff1f;除了https的协议之外&#xff0c;能不能加上通用的一套算法以及规范来保证传输的安全性呢&am…

训练一个ChatGPT需要多少数据?

“风很大”的ChatGPT正在席卷全球。作为OpenAI在去年底才刚刚推出的机器人对话模型&#xff0c;ChatGPT在内容创作、客服机器人、游戏、社交等领域的落地应用正在被广泛看好。这也为与之相关的算力、数据标注、自然语言处理等技术开发带来了新的动力。自OpenAI发布ChatGPT以来&…

好用的SQL工具盘点:从学习到工作总有一款适合你

标题一.入坑阶段&#xff08;学习入门&#xff09;&#xff1a; 这个阶段一般就是小白&#xff0c;想学习SQL语言&#xff0c;然后到处找软件&#xff0c;找免费破解版找半天&#xff0c;找到了半天安装不下来&#xff0c;还可能把自己电脑搞中毒。 其实对于小白来说&#xf…

Shiro常用的Filter过滤器

Shiro常用的Filter过滤器 核心过滤器&#xff1a;DefaultFilter&#xff0c;配置了的相应路径的相应的拦截器进行处理 常用过滤器 authc&#xff1a;org.apache.shiro.web.filter.authc.FormAuthenticationFilter 需要认证登录才能访问 user&#xff1a;org.apache.shiro.w…

动作识别、检测、分割、解析相关数据集介绍

文章目录动作识别UCF101(UCF101 Human Actions dataset)Kinetics (Kinetics Human Action Video Dataset)动作检测 / 时序动作定位CharadesActivityNetMulti-THUMOSUCF101-24IKEA ASM动作分割Breakfast (The Breakfast Actions Dataset)GTEA (Georgia Tech Egocentric Activity…

谷粒学院项目对应知识点

1、数据库分库分表 1.1、业务分库 按照业务模块将数据分散到不同的数据库服务器&#xff0c;比如用户数据、商品数据、订单数据存放在三个不同的数据库服务器中&#xff0c;分散存储和访问压力。但也会带来一些问题&#xff1a; join 操作问题&#xff1a;业务分库后&#x…

[qiankun]-多页签缓存

[qiankun]-多页签缓存环境功能需求多页签缓存方案方案1.主服务进行html替换方案2.微服务vnode 替换方案3.每个微服务都不卸载微服务加载方式的选择微服务的路由路径选择微服务的缓存工具微服务的容器使用tab作为微服务的挂载容器使用微服务路由作为微服务的挂载容器场景描述微服…

day18_集合_List

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、集合框架体系 二、Collection 三、泛型 四、迭代 五、List 六、ArrayList 七、LinkedList 零、 复习昨日 throw和throws什么区别 throwthrows位置方法…

Word中批量调整图片大小

当一个文档中图片较多&#xff0c;又需要调整图片大小时&#xff0c;这时可以通过“宏”执行代码来批量调整。打开一个Word文档。“AltF8"键打开宏。设置“宏名”&#xff0c;并单击“创建”。创建完宏后&#xff0c;将进入Visual Basic 编辑器界面。在代码编辑区全选&…

WebDAV之π-Disk派盘+文件管理器

文件管理器 支持WebDAV方式连接π-Disk派盘。 推荐一款iOS上的免费文件管理器新秀。 文件管理器这是一款功能强大的文件管理工具,支持zip,rar,7z等压缩包的解压和压缩,支持小说,漫画,视频下载及播,极大提升日常办公,娱乐,文件管理的工作效率,使得文档的归档和管理随心…

Android system实战 — Android R(11) 进程保活白名单

Android system实战 — Android R 进程保活白名单0. 前言1. 具体实现1.1 准备工作1.2 源码实现1.2.1 源码1.2.2 diff文件0. 前言 最近在Android R上实现一些需求&#xff0c;进行记录一下&#xff0c;关于进程保活的基础知识可以参考Android system — 进程生命周期与ADJ&#…

纯手动搭建hadoop3.x集群记录002_安装hadoop3.x_创建xsync分发工具_配置ssh免密登录---大数据之Hadoop3.x工作笔记0164

1.首先我有 172.19.126.117 母机 对应 172.19.126.122 虚拟机 172.19.126.116 母机 对应 172.19.126.121 虚拟机 172.19.126.115 母机 对应 172.19.126.120 虚拟机 对吧,然后我们从115上 开始安装hadoop 2. 然后走到这个opt/software文件夹中,然后解压 hadoop-3.1.3.tar.…

nn.Dropout随机丢神经元的用法

前言&#xff1a; pytorch与tensorflow中均有nn.dropout,两者之间的使用方法&#xff0c;下面将介绍。 一、torch.nn.dropout 说明文档&#xff1a; r"""During training, randomly zeroes some of the elements of the input tensor with probability :att…

人员行为识别系统 TensorFlow

人员行为识别系统人员行为识别系统通过TensorFlow深度学习技术&#xff0c;人员行为识别算法对画面中区域人员不按要求穿戴、违规抽烟打电话、睡岗离岗以及作业流程不规范实时分析预警&#xff0c;发现违规行为立即抓拍告警。深度学习应用到实际问题中&#xff0c;一个非常棘手…

2.22 位运算

位运算 预备知识 首先注意二进制位数从0开始记录&#xff0c;即 15&#xff08;1111&#xff09;&#xff0c;位数分别为3210 左移和右移 左移 << 将某个数的二进制向左移动几位&#xff0c;低位补0 如5>>2 即20&#xff0c;左移k位即相当于乘上2的k次方 右移 >…

C++学习笔记-数组

所谓数组&#xff0c;就是相同数据类型的元素按一定顺序排列的集合&#xff0c;就是把有限个类型相同的变量用一个名字命名&#xff0c;然后用编号区分他们的变量的集合&#xff0c;这个名字称为数组名&#xff0c;编号称为下标。组成数组的各个变量称为数组的分量&#xff0c;…