量子计算入门(一):量子比特
admin
2023-09-22 12:47:22
0

Dirac表示法

介绍量子比特这个最基本的单位之前,还是需要先介绍一下对它的表示方法。

ket

如果你阅读过关于量子力学或量子计算的资料,你会经常发现这样一个符号:“ {\vert\ \ \rangle} ”(ket),里面有一些标号(比如0、1、2、 {\psi} 、 {E} 、...)。

这些符号(比如\vert 0 \rangle 、 {\vert 1 \rangle} 、 {\vert 2 \rangle} 、 {\vert \psi \rangle} 、 {\vert E \rangle} ...)表示的是希尔伯特空间中的元素。而且在我们讨论的大部分内容中,这些元素都将表示为【矩阵向量】。

里面的标号的作用,是方便在具体问题中表示这些元素的具体含义。(比如能级等等...)

bra

除此之外,还有一些反过来的符号:“ {\langle\ \ \vert} ”(bra),这表示的是刚才那些元素的共轭转置。

举个一个希尔伯特空间的实例: {C^2} ,取其中元素 {\vert \psi \rangle = \begin{pmatrix} x_1 + i y_1 \\ x_2 + i y_2 \end{pmatrix}}

那么 {\langle \psi \vert = \begin{pmatrix} x_1 - i y_1 & x_2 - i y_2 \end{pmatrix}}

乘积

我们习惯用矩阵表示这些元素,所以它们的乘积无非就是线性代数意义上的乘积。不过要注意的是,乘积得出来的新矩阵,一般就不是希尔伯特空间里的元素了(例如:2x1矩阵乘1x2矩阵,得出来的是2x2矩阵)。

内积

由于咱要讨论希尔伯特空间,所以内积的定义值得一提:

{(a,b) = \langle a \vert*\vert b\rangle = \langle a \vert b\rangle}

比如: {\vert a \rangle = \begin{pmatrix} a_1 \\ a_2 \end{pmatrix}} 、 {\vert b \rangle = \begin{pmatrix} b_1 \\ b_2 \end{pmatrix}}

{\langle a \vert b\rangle = \begin{pmatrix} a_1 & a_2 \end{pmatrix}\begin{pmatrix} b_1 \\ b_2 \end{pmatrix} = a_1 b_1 + a_2 b_2}

再看刚才的例子, {\psi} 与自己的内积就是:

{\langle\psi\vert\psi\rangle = \begin{pmatrix} x_1 - i y_1 & x_2 - i y_2 \end{pmatrix}\begin{pmatrix} x_1 + i y_1 \\ x_2 + i y_2 \end{pmatrix}}

{\quad\quad = x_1^2 + x_2^2 + y_1^2 + y_2^2}

容易证明,这样的内积定义完全符合希尔伯特空间的要求。

符号来源

bracket(括号),去掉c把它拆成“bra”和“ket”,正是这个左括号和右括号名字。这个写法是Dirac发明的,我们以后都将叫它“Dirac表示法”。


什么是量子比特?

了解传统计算科学的同学都知道,一个比特可能又两种状态,即0和1。

在量子计算里,我们需要定义的量子比特(qubit),包含但是【不限于】这两种状态: {\vert 0 \rangle} 和 {\vert 1 \rangle} 。

所有量子比特的状态都可以这样表示: {\vert\psi\rangle = \alpha\vert 0 \rangle + \beta\vert 1 \rangle} 。

( {\alpha,\ \beta\in C^2} ,且 {\left|\alpha\right|^2 + \left|\beta\right|^2 = 1} )

我们经常令: {\vert 0 \rangle = \begin{pmatrix} 1 \\ 0 \end{pmatrix}} 、 {\vert 1 \rangle = \begin{pmatrix} 0 \\ 1 \end{pmatrix}} 。

自然地, {\left\vert \psi\right\rangle = \alpha\vert 0\rangle + \beta \vert 1\rangle=\alpha\begin{pmatrix} 1 \\ 0 \end{pmatrix} + \beta\begin{pmatrix} 0 \\ 1 \end{pmatrix}=\begin{pmatrix} \alpha \\ \beta \end{pmatrix}} 。

概率

大伙可能会好奇,为什么一个量子比特的状态要这么写?

如果你了解过量子力学,你就会知道像量子比特这种物理系统,有多种可能被观察到的状态(刚才说了,量子比特是两种)。但它在每一时刻都有一个属性(在这里,正是 {\vert\psi\rangle} ),使得它有一定的概率被观察到第一个状态,也有一定的概率被观察到第二个状态(如果某种物理系统,有更多可能被观察到的状态,那就有概率出现第三个、第四个等等)。

举个具体的例子吧,一大堆电子经过力场被投射到屏幕上,几乎有一半的电子出现在了上方、另一半出现在了下方,两波电子【不连续】地被投射在了两个位置。于是科学家就开始将这种现象考虑为电子的两种状态,这俩状态等概率地发生(刚才说了一半上、一半下)。问题就在于,用于实验的这一大堆电子之间,没什么不同。但它们就是概率性地发生出了不同的状态。

在这里的 {\vert\psi\rangle} ,表示的就是状态为 {\vert 0\rangle} 时的概率是 {\alpha} 【模的平方】、状态为 {\vert 1\rangle} 时的概率是 {\beta} 【模的平方】。因为量子比特只能出现两种状态,所以他们的概率和为1,即 {\left|\alpha\right|^2 + \left|\beta\right|^2 = 1} 。

在本文末尾,我会粗略聊聊为什么会这样构建模型的问题。

一种可视化途径

给每个复数向量的分量取模,比如: {\begin{pmatrix} \alpha \\ \beta \end{pmatrix}\to \begin{pmatrix} \left|\alpha\right| \\ \left|\beta\right| \end{pmatrix}} ,再将得到的新向量映射到直角坐标平面上,可以得到这样的图片:



显然,由于对复数取模,使得这样的可视化表示失掉了一部分信息。但不得不说,这张图有利于构建用来表示量子比特的Bloch球面,具体细节后面讲。

Bloch 球面

刚才说了量子比特的状态

{\vert\psi\rangle = \alpha\vert 0 \rangle + \beta\vert 1 \rangle}

其中 {\alpha} 和 {\beta} 是复数,那我们完全可以这样来表示它俩:

{\alpha = |\alpha | (\cos \phi _{\alpha } + i\sin \phi _{\alpha }) = |\alpha | e^{i\phi _{\alpha }} \rightarrow ae^{i\phi _ a}}

{\beta = |\beta | (\cos \phi _{\beta } + i\sin \phi _{\beta }) = |\beta | e^{i\phi _{\beta }} \rightarrow be^{i\phi _ b}}

自然而然地,

{\lvert \psi \rangle = ae^{i\phi _ a} \vert 0 \rangle +be^{i\phi _ b} \vert 1 \rangle}

{\quad = e^{i\phi_a} ( a\vert 0 \rangle +be^{i(\phi_b - \phi_a) }\vert 1 \rangle ) \equiv e^{i\phi_a} ( a\vert 0 \rangle +be^{i\phi }\vert 1 \rangle )}

其中, {\phi =\phi _ b-\phi _ a} 。


我们可以说前面 {e^{i\phi _ a}} 是否存在不会影响我们对系统的观察。我们通常是以另一个量子比特去测量一个量子比特的(关于测量的具体内容,我会在后续的章节中讲),所以给定另一个量子比特 {\vert \mu \rangle =e^{i\phi _ g} \left( c\vert 0 \rangle +de^{i\phi _ r }\vert 1 \rangle \right)} ,我们需要求概率 {p(\mu )=\vert \langle \mu \vert \psi \rangle \vert ^{2}} 。

有:

{p(\mu )=\vert \langle \mu \vert \psi \rangle \vert ^{2}}

{=\left| \left( e^{-i\phi_g} \left( c\langle 0 \vert +de^{-i\phi_r }\langle 1 \vert \right) \right) \left(e^{i\phi_a} \left( a\lvert 0 \rangle +be^{i\phi }\lvert 1 \rangle \right)\right)\right|^{2}} {=\left| e^{i(\phi_{a}-\phi_{g})}\left( c\langle 0 \vert +de^{-i\phi_r }\langle 1 \vert \right)\left( a\lvert 0 \rangle +be^{i\phi }\lvert 1 \rangle \right)\right|^{2}}

{=\left| e^{i(\phi_{a}-\phi_{g})}\left( ac+bd e^{i(\phi-\phi_r)} \right)\right|^{2}}

{=\left| e^{i(\phi_{a}-\phi_{g})}\right|^{2} \left|\left( ac+bd e^{i(\phi-\phi_r)} \right)\right|^{2}}

{= \left|\left( ac+bd e^{i(\phi-\phi_r)} \right)\right|^{2}}


大伙看,那个 {e^{i(\phi-\phi_r)}} 有或没有是不影响概率的,所以我们以后就以 {\vert\psi_0\rangle = a\vert 0 \rangle +be^{i\phi }\vert 1 \rangle} 来等价地表示 {\vert\psi\rangle} 了。

球面的构建

我们就要以 {\vert\psi_0\rangle = a\vert 0 \rangle +be^{i\phi }\vert 1 \rangle} 来构建包括 {\vert\psi\rangle} 在内的所有 {e^{i\phi'}\vert\psi_0\rangle\ (\phi'\in[0,2\pi))}

之前提到过 {\left|\alpha\right|^2 + \left|\beta\right|^2 = 1} ,无非就是 {a^2 + b^2 = 1} ,

那么我们完全可以这么表示:

{a =\cos \frac{\theta}{2}}

{b =\sin \frac{\theta}{2}}

{(\theta\in[0,\pi],\ } 当然了: {\frac{\theta}{2}\in[0,\frac{\pi}{2}])}

回想一下上面的图1,现在我们就对 {\vert\psi_0\rangle} 画那类图。显然,它的横坐标是 {\left|a\right| = \cos \frac{\theta}{2}} ,纵坐标是 {\left|be^{i\phi }\right| = \left|b\right| = \sin \frac{\theta}{2}}

不错, {\vert\psi_0\rangle} 和 {\vert 0\rangle} 的夹角正好是 {\frac{\theta}{2}} 。

现在咱来看看Bloch球面:



我们再把图1坐标轴的所有角度翻成两倍(这时俩坐标轴 {\vert 0\rangle} 和 {\vert 1\rangle} 的夹角就变成了180°而不是90°),然后就得出了Bloch球面的竖切面(只要你愿意把 {\vert 0\rangle} 和 {\vert 1\rangle} 对应到球面上标注的位置), {\vert 0\rangle} 和 {\vert\psi_0\rangle} 的夹角也从原来的 {\frac{\theta}{2}} 变成了图2中的 {\theta} ,也就是 {\vert \psi_0\rangle} 在球面上的纬度。

经过刚才的一一映射之后,我们只剩下 {e^{i\phi}} 没有处理了,大伙不妨回忆一下在复平面xOy上怎么表示它的。没错,我们以 {e^{i\phi}} 在复平面xOy上方向取到 {\vert \psi_0\rangle} 在球面上的经度。

有了两个极坐标,状态 {\vert \psi_0\rangle} 在Bloch球面上的位置就确定了。

浅谈模型的构建

这一章只讲了量子比特、以及对它的一些表示。我敢说不少同学会问,量子比特不是个物理系统吗?为什么这波整了个抽象的数学体系,连复数都用上了?

首先,经过科学家的实验和总结,量子力学有几个比较公认假设,其中之一就是:任何封闭的物理系统都是一个在复数域上的希尔伯特向量空间,其中的元素就是系统的状态(这次咱说的的系统就是量子比特)。

由于这样的数学模型可以很好地理解甚至是操作物理系统,所以我们在做一些工作(设计量子计算机电路,等等)时,可能只用这些数学模型就够了。就类似于考虑传统计算机关注概念上的0和1,而不用过多地关注晶体管的实现。

至于这样的模型适用与多少、适用于哪些物理系统,我可能会在后续的章节中讲到。

相关内容