当前位置 : 主页 > 编程语言 > 其它开发 >

量子计算中的幺正操作符和干涉现象

来源:互联网 收集:自由互联 发布时间:2022-05-30
OK,现在我们已经大概了解了量子计算机和量子位了。 可以回顾《量子计算机》和《qubit》 那该怎么控制这些神奇的qubit呢?传统计算机使用的是逻辑操作和普通代数,我们可以使用w

OK,现在我们已经大概了解了量子计算机和量子位了。

可以回顾《量子计算机》和《qubit》

那该怎么控制这些神奇的qubit呢?传统计算机使用的是逻辑操作和普通代数,我们可以使用while语句、if语句等编程技术,但是量子机都不能用。我们需要在量子力学原理下设计qubit的幺正运算。听起来很美好是吧,不过实际也不难。后面开始,我们会看一些幺正操作符,以及他们和薛定谔方程的关系(这样可以表明这些设计没有违反自然)。

量子门

传统计算机全是使用逻辑操作符,比如或且非、异或等,可以完成非常复杂的业务。量子机使用完全不同的操作符,称为量子门--Quantum Gate。所以我们没法把现有程序重新编译到量子机上使用,因为量子机利用的是量子纠缠和测量原理。
我们再看一下布洛赫球,理论上讲量子计算机就是通过控制角度\(\Phi\)\(\theta\)来移动球面上的点(点就是状态)。
image
而从数学上看,一个叠加态转变为另外一个叠加态使用的是矩阵形式的线性操作符\(U\)

\[|\phi\rangle\rightarrow U|\phi\rangle\ \]

对于单个qubit,操作符\(U\)是一个2阶方阵:

\[\begin{pmatrix} U_{00}& U_{01} \\ U_{10}&U_{11} \\ \end{pmatrix} \begin{pmatrix} \alpha_0 \\ \alpha_1 \\ \end{pmatrix} \]

薛定谔方程(选学)

这里使用的就是最简单的线性代数,从幺正操作符开始可以推导出薛定谔方程。薛定谔方程是描述量子力学系统状态的关键方程,它也得出了世界是线性的结论。如果不是线性的,那时间旅行和超光速都可以了。
当有

\[|\Psi,t\rangle=u(t,t_0)|\Psi,t_0\rangle,\forall t,t_0 \]

可得薛定谔方程:

\[i\hbar\frac{\partial }{\partial t}|\Psi,t\rangle=H(t)|\Psi,t\rangle \]

其中\(H\)是厄米算符。

薛定谔方程表明了状态是线性演化的,因为可以将其移项成:
image
由于是线性方程,那么对于方程两个解\(\Psi_1\)\(\Psi_2\)

\[D(\Psi_1)=(i\hbar \frac{\partial }{\partial t}-H)\Psi_1=0 \\ D(\Psi_2)=(i\hbar \frac{\partial }{\partial t}-H)\Psi_2=0 \]

它们的线性组合依然是方程的姐:

\[D(\alpha\Psi_1+\beta\Psi_2)=(i\hbar \frac{\partial }{\partial t}-H)(\alpha\Psi_1+\beta\Psi_2)\\ =\alpha(i\hbar \frac{\partial }{\partial t}-H)\Psi_1+\beta(i\hbar \frac{\partial }{\partial t}-H)\Psi_2\\ =0 \]

回到量子计算上,如果\(|0\rangle\)\(|1\rangle\)是系统两个可行状态,那么它们的线性组合也是可行的状态。

幺正操作

并非所有的线性操作都能在物理中使用,它们需要是幺正的而且满足

\[UU^\dagger=U^\dagger U=I \]

其中\(U^\dagger\)\(U\)的复共轭转置矩阵。比如

\[U=\frac{1}{2}\begin{bmatrix} 1+i & 1-i \\ 1-i & 1+i \\ \end{bmatrix} \]

转置就是第一行变第一列,第二行变第二列:

\[U^\dagger=\frac{1}{2}\begin{bmatrix} 1-i & 1+i \\ 1+i & 1-i \\ \end{bmatrix}\\ \therefore UU^\dagger=\frac{1}{4}\begin{bmatrix} 1+i & 1-i \\ 1-i & 1+i \\ \end{bmatrix} \begin{bmatrix} 1-i & 1+i \\ 1+i & 1-i \\ \end{bmatrix}=\frac{1}{4}\begin{bmatrix} 4 & 0 \\ 0 & 4 \\ \end{bmatrix}=I \]

幺正操作有个良好性质是不改变矩阵范数,所以单位球上叠加态的范数总是1:

\[\left\| |\phi\rangle|\right\|=\left\| U|\phi\rangle|\right\|=\mathbf{1} \]

看下面薛定谔方程的解,它天然就遵守这个幺正要求:

\[|\psi(t)\rangle=e^{-iHt}|\psi(0)\rangle\\ e^{-iHt}e^{iHt}=I \]

里面的\(H\)是厄密算符,它的共轭转置等于自己。下面是一个厄密算符的粒子:在\(z\)轴方向有一个均匀磁场\(E_0\)

\[H=\begin{bmatrix} E_0 & 0 \\ 0 & E_0 \\ \end{bmatrix} \]

把它代回上面的解,会使得状态在\(z\)轴旋转:

\[|\psi\rangle=\alpha|\uparrow \text{z}\rangle+\beta|\downarrow \text{z}\rangle\to|\psi(t)\rangle=\alpha e^{-iE_0t/\hbar}|\uparrow \text{z}\rangle+\beta e^{iE_0t/\hbar}|\downarrow \text{z}\rangle \]

幺正操作有啥物理含义呢?它表示操作是可逆的。比如看电影,电影可以正着放可以倒着放(一般的播放器估计还没这功能),你甚至不知道电影正在正放还是倒放。几乎所有的物理学定律都是时间上可逆的,极个别例外有泡利测量和热力学第二定律。
所以设计量子算法的时候尤其要注意这一点,比如异或XOR就不可逆,这会导致信息丢失。因为我们拿到结果1,不知道它是0和1的异或还是1和0的异或。量子操作就是量子门,它必须是幺正操作符,必须有另一个门能够完成逆操作。不管一个矩阵多复杂,只要数学上证明了它的幺正性,理论上科学家就能把它实现到量子机里。
为了实现算法的可逆性,有时候科学家不得不把一些输入带到输出里来。比如下面这个电路,把向量\(x\)又带出去了,这样对于结果是多余的,但是对于可逆是必要的的。
image

接下来看一个最常见的量子门:哈德玛门(Hadamard gate)

\[H=\frac{1}{\sqrt{2}}\begin{bmatrix} 1&1\\1&-1 \end{bmatrix} \]

或者用狄拉克记号表示:

\[H=\frac{|0\rangle+|1\rangle}{\sqrt{2}}\langle0|+\frac{|0\rangle-|1\rangle}{\sqrt{2}}\langle1| \]

哈德玛门作用在两个基态上的影响是:

\[H|0\rangle=\left ( \frac{|0\rangle+|1\rangle}{\sqrt{2}}\langle0|+\frac{|0\rangle-|1\rangle}{\sqrt{2}}\langle1|\right )|0\rangle= \frac{|0\rangle+|1\rangle}{\sqrt{2}}\\ H|1\rangle=\left ( \frac{|0\rangle+|1\rangle}{\sqrt{2}}\langle0|+\frac{|0\rangle-|1\rangle}{\sqrt{2}}\langle1|\right )|1\rangle= \frac{|0\rangle-|1\rangle}{\sqrt{2}} \]

这个计算过程极其简单:基向量自己的内积是他们的范数,等于1;基向量是正交的,相互的内积是0。所以一下子就得到结果了。有点像“分拣器”,作用在哪个基态上,结果就是这个基态自己的系数;另一个基态就丢失了。
或者你可以使用原始矩阵计算:

\[H|0\rangle=\frac{1}{\sqrt{2}}\begin{bmatrix} 1&1\\1&-1 \end{bmatrix}\begin{bmatrix} 1\\0 \end{bmatrix}=\frac{1}{\sqrt{2}}\begin{bmatrix} 1\\1 \end{bmatrix}=\frac{|0\rangle+|1\rangle}{\sqrt{2}}\\ H|1\rangle=\frac{1}{\sqrt{2}}\begin{bmatrix} 1&1\\1&-1 \end{bmatrix}\begin{bmatrix} 0\\1 \end{bmatrix}=\frac{1}{\sqrt{2}}\begin{bmatrix} 1\\-1 \end{bmatrix}=\frac{|0\rangle-|1\rangle}{\sqrt{2}} \]

这里面矩阵乘法倒是简单,就是最后的结果又拆成了基态的线性组合。
那哈德玛门的叠加态影响是啥?回顾一下布洛赫球,上篇文章我们列出了6个关键点,这里结果正是\(x\)轴和球面的交点:
image
所以应用一次哈德玛门的结果是得到两个概率一样的基态组合,它们的振幅都是1/2。测量以后有相等的概率得到两个基态。那再应用一次哈德玛门呢?你会惊讶的发现...


\[H\frac{|0\rangle+|1\rangle}{\sqrt{2}}=\left ( \frac{|0\rangle+|1\rangle}{\sqrt{2}}\langle0|+\frac{|0\rangle-|1\rangle}{\sqrt{2}}\langle1|\right )\left(\frac{|0\rangle+|1\rangle}{\sqrt{2}}\right)\\ =\left[ \frac{|0\rangle+|1\rangle}{\sqrt{2}}\left(\langle0|\frac{|0\rangle+|1\rangle}{\sqrt{2}}\right) + \frac{|0\rangle-|1\rangle}{\sqrt{2}}\left(\langle1|\frac{|0\rangle+|1\rangle}{\sqrt{2}}\right) \right]\\ =\left[ \frac{|0\rangle+|1\rangle}{2}\left(\langle0{|0\rangle+\langle0|1\rangle}\right) + \frac{|0\rangle-|1\rangle}{2}\left(\langle1|{0\rangle+\langle0|1\rangle}\right) \right]\\ =\frac{|0\rangle+|1\rangle}{2}+\frac{|0\rangle-|1\rangle}{2}\\ =|0\rangle \]


\[H\frac{|0\rangle-|1\rangle}{\sqrt{2}}=\left ( \frac{|0\rangle+|1\rangle}{\sqrt{2}}\langle0|+\frac{|0\rangle-|1\rangle}{\sqrt{2}}\langle1|\right )\left(\frac{|0\rangle-|1\rangle}{\sqrt{2}}\right)=|1\rangle \]


看到了吧,给一个基态应用两次哈德玛门结果保持不变。这已经证明哈德玛门是可逆的,而且“破壁人”就是自己:

\[H^\dagger=H\\ HH^\dagger|\psi\rangle=HH|\psi\rangle=|\psi\rangle \]

所以哈德玛门是幺正的

干涉

量子计算的基础是干涉和纠缠。当然不了解这些概念,从数学上也能理解量子计算。

干涉是波特有的现象,波的干涉会出现叠加和抵消。
image

为什么量子计算需要用到干涉?我们来做几个小实验。
第一个实验中制备一批入射光子,它们都被极化成状态\(|0\rangle\)。光子流会被\(45^{\circ}\)倾斜分光器\(B\)分成均匀的两束垂直光,在两条路上分别放一面镜子来将光反射到两个光子探测器\(D\)来检验光强。


马赫-曾德尔干涉仪
从经典力学角度看,光子被均匀分成两束,肯定到达探光器也是相等的强度。 第二个实验中,在探测器前面增加一个分光器$B_B$,两束光都可以经过这个分光器,又会被分成均匀的两束:

image
直觉上看,两个分光器是互不影响的(两个独立事件),每个探测器都应该接收到分光器的一半光。光走图中红线到达\(D_0\)的概率是

\[P(A,B)=P(A)P(B|A)\to P(A)P(B)=\frac{1}{4} \]

每个光子到\(D_0\)的概率是\(\frac{1}{4}\times2=\frac{1}{2}\),它要么走上面的路,要么走下面的路。所以每个探测器都接收到一半的光子。
但是实际的实验结果却不是这样的,只有\(D_0\)接收到光子
我们通过哈德玛门来建模实验中的状态转移。在第一个实验中,光子经过第一个分光器\(B_A\)后的状态变化是

\[|0\rangle\overset{B_A}{\rightarrow}\frac{|0\rangle+|1\rangle}{\sqrt{2}} \]

现在没有第二个分光器,直接使用探测器进行测量,所以每条路线的概率是\(\frac{1}{2}\)(一半的光子坍缩到\(|0\rangle\),一半的光子坍缩到\(|1\rangle\))。从结果上看,使用哈德玛门确实可以建模。在第二个实验中,由于有两个分光器,相当于使用哈德玛门两次。所以所有光子的状态维持了最初的\(|0\rangle\),只会有一个探测器探测到光子。所以实验结果证明了我们的量子门是正确的,而使用经典概率论方法得不到符合实际的结果。
你估计还是迷迷糊糊,觉得解释有点牵强。所以我们继续看第二次分光:
\( 第一次分光:H|0\rangle=\left ( \frac{|0\rangle+|1\rangle}{\sqrt{2}}\langle0|+\frac{|0\rangle-|1\rangle}{\sqrt{2}}\langle1|\right )|0\rangle=\frac{|0\rangle+|1\rangle}{\sqrt{2}}\\ 第二次分光:H\frac{|0\rangle+|1\rangle}{\sqrt{2}} \)
image
每个光子的叠加态中,状态\(|0\rangle\)得到了增强,状态\(|1\rangle\)被抵消掉了。
现在做第三个实验,在第一个分光器之后的上面路线上放一个探测器\(D_X\),就可以在\(D_1\)\(D_2\)都接收到光子。
image
这个符合量子力学的计算吗?光子在经过第一个分光器后向上走的一束经过了第一次探测,一半坍缩成\(|0\rangle\)一半坍缩成\(|1\rangle\)。然后经过第二个分光器,又变成了对半叠加态,一半去了\(D_0\)一半去了\(D_1\)
image
所以只要你知道光子走哪条路,最后就会在两个探测器上分别接收一半光子。额外的测量会改变系统的状态,粒子加密正是利用了这一点(称为“量子隐形传态”)。

物理学家可以利用量子门中的干涉行为模拟真实原子世界的干涉行为。经典方法是计算概率是否大于等于0:这要求事件互相独立,实际试验是不符合的。所以量子力学认为这样不对,需要引入复数和负数。不再使用概率论,而是使用干涉模型。这样干涉就和幺正算符一样了,可以在量子计算机中进行实现了:物理学家看着是干涉,数学家看到的是矩阵。

网友评论