本文可能不太适合入门学习(因为没有从很基础的部分讲起),仅仅作为自己个人的关键知识点总结,以帮助有一定基础的,需要快速区分、回顾一些量子基础知识的人。
参考资料:
下面我们简单介绍一下量子比特的基本概念。
关键:
在量子计算机中,我们通过量子比特来存储信息,我们称其为qubit。
qubit与经典的bit不同,它具有一个叠加态的性质(superposition)。
对于n个qubits,qubits的状态是2^n经典状态的叠加。
因此一个量子比特,能够表示的状态空间为:
|\psi\rangle\in C^2
对于n个量子比特,表示的状态空间为:
|\psi\rangle\in C^2\otimes C^2...\otimes C^2=C^{2^n}
当然,也不一定是qubit,可以是d维度的类似量子比特的信息单元,但是qubit是使用最多的。
上述的量子比特的量子态和经典比特的状态都是确定的,但是世界上不一定总是处于已知的量子态,也有可能处理未知的量子态。
未知(随机)的状态,在经典状态中,指的是有某个概率是某个状态。在量子状态中,指的也是有某个概率是某个量子态。(在量子领域,用专有名词:混合态-mixed state来表示上述的未知量子态)
举一个简单的例子,来理解经典中random的状态:
假设我们有一个硬币,我们在经典中抛出,假设我们获取字面,则获取1,或者花面,则获取0。
在抛出之后,本质上硬币是属于某个状态(0或者1),但我们不观察硬币,将不知道硬币到底是0还是1,但我们有希望能够描述硬币的状态,即可以通过一个概率分布(理想情况下,50%是0,50%是1)来描述当前硬币所表示的状态。
注意:当你根据某个可观测量(observable),测量一个量子的状态时,你同样会得到一些概率。注意区分量子态中测量的概率与混合量子态中的概率。
量子态可以通过下面三种基本数学工具来描述。
个人简单理解:
关键:需要大致了解不同方法是如何表示的,有什么常用的数学特性(定理)。
State Vector中文通常称为状态向量,由于一个量子态通过数据公式描述如下:
|\psi\rangle = \alpha_0|0\dots0\rangle+\alpha_1|10\dots0\rangle+\dots\alpha_{2^n}|1\dots1\rangle
其中n表示量子比特数目。
我们可以仅仅按顺序存储前面的系数,就可以表示整个量子的状态,可以写成如下列向量的形式:
[\alpha_0,\alpha_1,\dots,\alpha_{2^n}]^T
因此,可以将量子态表示为:
|\psi\rangle = [\alpha_0,\alpha_1,\dots,\alpha_{2^n}]^T
其中:
|i\rangle = [0,0,\dots,1,\dots,0]^T
当然,在量子力学中有一种说法:狄拉克符号或狄拉克标记(Dirac notation)是量子力学中广泛应用于描述量子态的一套标准符号系统。在这套系统中,每一个量子态都被描述为希尔伯特空间中的态向量,定义为右矢(ket):|\psi\rangle;每一个右矢的共轭转置定义为其左矢(bra) \langle \psi| ;换一种说法,右矢的厄米共轭(即取转置运算加上共轭复数运算),就可以得到左矢。
|\psi\rangle = [\alpha_0,\alpha_1,\dots,\alpha_{2^n}]^T \\ \langle \psi| = [\alpha_0^*,\alpha_1^*,\dots,\alpha_{2^n}^*]
这里稍微从量子计算与量子信息角度,讲解一下比较容易混淆的纠缠态,首先纠缠态也属于一种纯态。简单理解,可以理解为多个量子比特之间发生了量子纠错所产生的量子态,测量其中某一个量子比特状态,就可以确定另一个量子比特状态。
常遇到的纠缠态:
贝尔态(Bell state)有两个量子比特之间的纠错:
|\beta_{xy}\rangle = \frac{|0,y\rangle+(-1)^x|1,\overline{y}\rangle}{\sqrt{2}}
其中x,y通常表示输入到贝尔制备电路中的输入比特:
|\beta_{00}\rangle=\frac{1}{\sqrt{2}}(|0,0\rangle+|1,1\rangle)
明显,当我们测量到第一个量子比特为0时,第二个量子比特也为0,1同理。
GHZ态(GHZ state)的量子比特数M大于2:
|GHZ\rangle=\frac{|0\rangle^{\otimes M}\pm|1\rangle^{\otimes M}}{\sqrt{2}}
注意:
希望得到较为全面的了解可以参考:https://www.phy.pku.edu.cn/jhchen/files/Q-3.pdf(量子纠缠、混态与量子系综)
其实通过状态向量,就可以表示所有的量子态,但为什么需要密度矩阵呢? 两个原因:
1、通过状态向量无法表示混合态。
或许你可以通过 (p_x,|\psi_x\rangle) 表示有p_x的概率是 |\psi_x\rangle 状态,假设我们需要考虑 p_x=0 的话,理论上可能有无限个对 (p_x,|\psi_x\rangle) ,但理论上,我们可以通过密度矩阵的有限维度表示。(意会一下,Quantum Information Science II -MIT中提及的。但这个感觉并不关键,关键是通过向量形式,确实无法表示混合态)
2、通过上面的状态向量表示,我们发现,我们需要主动设置一个基才能表示量子态。
举一个简单的例子:
|\psi\rangle = \frac{1}{\sqrt2}(|0\rangle+|1\rangle)
其状态向量为:
(\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}})
但当换一组基(basic)时表示:
比如用 |+\rangle 和 |-\rangle :
|\psi\rangle = 1*|+\rangle+0*|-\rangle
此时其状态向量为:
(1,0)
因此,我们在确定一个状态向量时,首先要确定其基(一般我们是用|0\rangle,|1\rangle这类基,也被称为一般标准正交基)。
密度矩阵我们采用\rho符号来表示,数学定义可以由如下:
\rho = \sum_{i=0}^{2^n-1}p_i|\psi_i\rangle\langle\psi_i|
上述密度矩阵的定义是通过量子态定义的,当然通过一定的数学推导,我们可以得到其另一种等价的密度矩阵数学定义:
tr(\rho) = 1\\ \rho\ge0
中文描述,矩阵 \rho 的迹为1,并且为正定矩阵,则 \rho 可称为密度矩阵。
布洛赫球体(Bloch Sphere)有两种理解。
理解一:我们用角度描述的状态向量来表示纯态。
|\psi\rangle = cos(\frac{\theta}{2})|0\rangle+e^{i\varphi}sin(\frac{\theta}{2})|1\rangle\\ 0\le\theta \le \pi\\ 0\le\varphi \le 2\pi
混合态,可以通过下面向量(不是状态向量)来描述,在图中可以用:
|\Psi\rangle = r[cos(\frac{\theta}{2})|0\rangle+e^{i\varphi}sin(\frac{\theta}{2})|1\rangle]\\ 0\le\theta \le \pi\\ 0\le\varphi \le 2\pi \\ 0\le r \le1\\
图中r为距离原点的距离, \theta 表示与z轴的夹角, \varphi 表示在x-y平面的投影与x轴的夹角。当r为1时,表示纯态。(注意,上述已经忽略了全局相位)
理解二:我们从Bloch Sphere来理解量子态。
由于任意量子态的密度矩阵可通过泡利算符分解为如下:
\rho = \frac{I+\sum_{i=1}^3r_i\sigma_i}{2}=\frac{I+\vec{r}\cdot\vec{\sigma}}{2}
其中 ||\vec{r}||\le1 ,并且称为Bloch vector(布洛赫向量),即上图中的 \Psi (没有找个比较好的画图Bloch Sphere软件,因此使用的别人的图片)。同时上述密度矩阵的特征值:
eigs(\rho) = \frac{I\pm\|\vec{r}\|}{2}
角度与状态向量之间的关系:
\vec{r} = r[sin\theta cos\varphi,sin\theta sin\varphi,cos\theta]^T
其他结论:
R_x(\theta)=e^{-\frac{\theta}{2}\sigma_x}=cos(\frac{\theta}{2})I-isin(\frac{\theta}{2})\sigma_x\\ R_y(\theta)=e^{-\frac{\theta}{2}\sigma_y}=cos(\frac{\theta}{2})I-isin(\frac{\theta}{2})\sigma_y\\ R_z(\theta)=e^{-\frac{\theta}{2}\sigma_z}=cos(\frac{\theta}{2})I-isin(\frac{\theta}{2})\sigma_z=\begin{bmatrix} e^{-i\theta/2}&0\\ 0&e^{i\theta/2} \end{bmatrix}= e^{-\theta/2} \begin{bmatrix} 1&0\\ 0&e^{i\theta} \end{bmatrix}
任何单量子门U,可以写成:
U=R_z(\theta_3)R_x(\theta_2)R_z(\theta_1)=R_z(\theta_a)R_y(\theta_b)R_z(\theta_c)
任何单量子门的用于,也可以理解为Bloch vector绕某个 \vec{n} 轴进行旋转。