介绍量子比特这个最基本的单位之前,还是需要先介绍一下对它的表示方法。
如果你阅读过关于量子力学或量子计算的资料,你会经常发现这样一个符号:“ {\vert\ \ \rangle} ”(ket),里面有一些标号(比如0、1、2、 {\psi} 、 {E} 、...)。
这些符号(比如\vert 0 \rangle 、 {\vert 1 \rangle} 、 {\vert 2 \rangle} 、 {\vert \psi \rangle} 、 {\vert E \rangle} ...)表示的是希尔伯特空间中的元素。而且在我们讨论的大部分内容中,这些元素都将表示为【矩阵向量】。
里面的标号的作用,是方便在具体问题中表示这些元素的具体含义。(比如能级等等...)
除此之外,还有一些反过来的符号:“ {\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球面,具体细节后面讲。
刚才说了量子比特的状态
{\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,而不用过多地关注晶体管的实现。
至于这样的模型适用与多少、适用于哪些物理系统,我可能会在后续的章节中讲到。