学习笔记 -《量子计算与编程入门》- 量子程序

1 量子计算原理

经典计算中,最基本的单元是比特,最基本的控制模式是逻辑门,可以通过逻辑门的组合来达到控制电路的目的。
类似地,处理量子比特的方式就是量子逻辑门,使用量子逻辑门可以有意识地使量子态发生演化,所以量子逻辑门是构成量子算法的基础。

1.1 酉变换

酉变换是一种矩阵,也是一种操作,它作用在量子态上得到的是一个新的量子态。之前博客也提到过:

在这里插入图片描述
U † U^† U 表示 U U U 的转置复共轭矩阵,酉矩阵的转置复共轭矩阵也是一个酉矩阵,酉变换是一种可逆变换。

一般酉变换在量子态上的作用是通过左乘以右矢进行的,例如:
∣ ψ ⟩ = U ∣ φ 0 ⟩ 或 ⟨ ψ ∣ = ⟨ φ 0 ∣ U † |ψ⟩=U|φ_0⟩ 或 ⟨ψ|=⟨φ_0|U^† ψ=Uφ0ψ=φ0U 由此可见,两个矢量的内积经过同一个酉变换之后保持不变:
⟨ φ ∣ ψ ⟩ = ⟨ φ ∣ U † U ∣ ψ ⟩ ⟨φ|ψ⟩=⟨φ|U†U|ψ⟩ φψ=φUUψ 类似地,也可以通过酉变换表示密度矩阵的演化:
ρ = U ρ 0 U † ρ=Uρ_0U^† ρ=Uρ0U这样就连混合态的演化也包含在内了。

1.2 矩阵的指数函数

在矩阵乘法的基础上,我们利用函数的幂级数来定义矩阵的指数函数。我们定义矩阵 A 的指数函数形式为:
e x p ( A ) = I + A + A 2 2 ! + A 3 3 ! + . . . exp(A)=I+A+\frac{A^2}{2\text{!}}+\frac{A^3}{3\text{!}}+... exp(A)=I+A+2A2+3A3+...

如果 A A A 是一个对角矩阵,即 A = d i a g ( A 11 , A 22 , A 33 , … ) A=diag\left( A_{11},A_{22},A_{33},… \right) A=diag(A11,A22,A33,),则有:
A n = d i a g ( A 11 n , A 22 n , A 33 n , … ) A^n=diag\left( A_{11}^{n},A_{22}^{n},A_{33}^{n},… \right) An=diag(A11n,A22n,A33n,) 从而得到:
e x p ( A ) = I + A + A 2 2 ! + A 3 3 ! + . . . = I + d i a g ( A 11 , A 22 , A 33 , … ) + d i a g ( A 11 2 , A 22 2 , A 33 2 , … ) 2 ! + d i a g ( A 11 3 , A 22 3 , A 33 3 , … ) 3 ! + . . . = d i a g ( 1 + A 11 + A 11 2 2 ! + A 11 3 3 ! + … , A 22 + A 22 2 2 ! + A 22 3 3 ! + … , A 33 + A 33 2 2 ! + A 33 3 3 ! + … , … … ) = d i a g ( e A 11 , e A 22 , e A 33 , … ) \begin{aligned} exp(A)&=I+A+\frac{A^2}{2\text{!}}+\frac{A^3}{3\text{!}}+... \\ &=I+diag\left( A_{11}^{},A_{22}^{},A_{33}^{},… \right) +\frac{diag\left( A_{11}^{2},A_{22}^{2},A_{33}^{2},… \right)}{2\text{!}}+\frac{diag\left( A_{11}^{3},A_{22}^{3},A_{33}^{3},… \right)}{3\text{!}}+... \\ &=diag\left( 1+A_{11}^{}+\frac{A_{11}^{2}}{2!}+\frac{A_{11}^{3}}{3!}+…, A_{22}^{}+\frac{A_{22}^{2}}{2!}+\frac{A_{22}^{3}}{3!}+…, A_{33}^{}+\frac{A_{33}^{2}}{2!}+\frac{A_{33}^{3}}{3!}+…, …… \right) \\ &=\mathrm{diag}\left( e^{A_{11}},e^{A_{22}},e^{A_{33}},… \right) \end{aligned} exp(A)=I+A+2A2+3A3+...=I+diag(A11,A22,A33,)+2diag(A112,A222,A332,)+3diag(A113,A223,A333,)+...=diag(1+A11+2!A112+3!A113+,A22+2!A222+3!A223+,A33+2!A332+3!A333+,)=diag(eA11,eA22,eA33,) 如果 A A A 不是一个对角矩阵,则利用酉变换可以将它对角化: A = U D U † A=UDU^{\dagger} A=UDU
则: A n = ( U D U † ) n = ( U D U † ) ( U D U † ) ( U D U † ) … … = U D n U † \begin{aligned} A^n&=\left( UDU^{\dagger} \right) ^n\\ &=\left( UDU^{\dagger} \right)\left( UDU^{\dagger} \right)\left( UDU^{\dagger} \right) ……\\ &=UD^nU^{\dagger}\\ \end{aligned} An=(UDU)n=(UDU)(UDU)(UDU)=UDnU 那么,类似地
exp ⁡ ( A ) = exp ⁡ ( U D U † ) = U U † + U D U † + U D 2 U † 2 ! + U D 3 U † 3 ! + . . . = U U † + U D U † + U D 2 2 ! U † + U D 3 3 ! U † + … = U ( I + D + D 2 2 ! + D 3 3 ! + … ) U † = U exp ⁡ ( D ) U † = U d i a g ( e D 11 , e D 22 , e D 33 , … ) U † \begin{aligned} \exp \left( A \right) &=\exp \left( UDU^{\dagger} \right)\\ &=UU^{\dagger}+UDU^{\dagger}+\frac{UD^2U^{\dagger}}{2\text{!}}+\frac{UD^3U^{\dagger}}{3\text{!}}+...\\ &=UU^{\dagger}+UDU^{\dagger}+U\frac{D^2}{2\text{!}}U^{\dagger}+U\frac{D^3}{3\text{!}}U^{\dagger}+…\\ &=U\left( I+D+\frac{D^2}{2\text{!}}+\frac{D^3}{3\text{!}}+… \right) U^{\dagger}\\ &=U\exp \left( D \right) U^{\dagger}\\ &=U\mathrm{diag}\left( e^{D_{11}},e^{D_{22}},e^{D_{33}},… \right) U^{\dagger}\\ \end{aligned} exp(A)=exp(UDU)=UU+UDU+2UD2U+3UD3U+...=UU+UDU+U2D2U+U3D3U+=U(I+D+2D2+3D3+)U=Uexp(D)U=Udiag(eD11,eD22,eD33,)U

注意:
e x p ( A + B ) ≠ e x p ( A ) e x p ( B ) ≠ e x p ( B ) e x p ( A ) exp\left( A+B \right) \ne exp\left( A \right) exp\left( B \right) \ne exp\left( B \right) exp\left( A \right) exp(A+B)=exp(A)exp(B)=exp(B)exp(A) 我们知道,当 A A A 是表示数的时候等号是成立的,但是当 A 表示是矩阵时,等式成立需要满足一定条件


通常,下面这种表达形式被称之为以 A A A生成元生成的酉变换。
U ( θ ) = e x p ( − i θ A ) U(\theta )=exp(−i\theta A) U(θ)=exp(iθA) 这种矩阵的指数运算可以利用 Matlab 中的 expm 命令进行方便地计算。

以单位矩阵为生成元,可以构建一种特殊的酉变换 u ( θ ) u(\theta ) u(θ)
u ( θ ) = e x p ( − i θ I ) = ( e − i θ 0 0 e − i θ ) = e x p ( − i θ ) I u(\theta )=exp(-i\theta I)=\left( \begin{matrix} e^{-i\theta}& 0\\ 0& e^{-i\theta}\\ \end{matrix} \right) =exp(-i\theta )I u(θ)=exp(iθI)=(eiθ00eiθ)=exp(iθ)I u ( θ ) u(\theta ) u(θ) 作用在态矢上面,相当于态矢每个分量同时乘以一个系数 e − i θ e^{-i\theta} eiθ。如果将作用后的态矢带入到密度矩阵的表达式中,会发现这一项系数会被消去。

这项系数称为量子态的整体相位。因为任何操作和测量都无法分辨两个相同的密度矩阵,所以量子态的整体相位一般情况下是不会对系统产生任何影响的。

1.3 单量子比特逻辑门

在经典计算机中,单比特逻辑门只有一种——非门(NOT gate),但是在量子计算机中,量子比特情况相对复杂,存在叠加态、相位,所以单量子比特逻辑门会有更加丰富的种类。

量子比特门可以用下面这幅图来表示:
在这里插入图片描述
横线表示一个量子比特从左到右按照时序演化的路线,通俗点讲,就是 ∣ ψ 0 > \left|\psi_0\right> ψ0 演变为 ∣ ψ 1 > \left|\psi_1\right> ψ1 的路线;

蓝色方框表示量子逻辑门,这个图标表示一个名为 U U U 的逻辑门作用在这条路线所代表的量子比特上。

对于一个处于 ∣ ψ 0 > \left|\psi_0\right> ψ0 的量子态,将这个量子逻辑门作用在上面时,相当于将这个代表量子逻辑门的酉矩阵左乘这个量子态的矢量,然后得到下一个时刻的量子态 ∣ ψ 1 > \left|\psi_1\right> ψ1
∣ ψ 1 > = U ∣ ψ 0 > \left|\psi_1\right>=U\left|\psi_0\right> ψ1=Uψ0 这个表达式对于所有的单比特门或者多比特门都是适用的。

对于一个有 n n n 个量子比特的量子系统,它的演化是通过一个 2 n × 2 n 2^n × 2^n 2n×2n 的酉矩阵来表达。

1.3.1 泡利矩阵

泡利矩阵(Pauli matrices)有时也被称作自旋矩阵(spin matrices)。有以下三种形式,分别是:
σ x = ( 0 1 1 0 ) σ y = ( 0 − i i 0 ) σ z = ( 1 0 0 − 1 ) \sigma _x=\left( \begin{matrix} 0& 1\\ 1& 0\\ \end{matrix} \right) \quad \sigma _y=\left( \begin{matrix} 0& -i\\ i& 0\\ \end{matrix} \right) \quad \sigma _z=\left( \begin{matrix} 1& 0\\ 0& -1\\ \end{matrix} \right) σx=(0110)σy=(0ii0)σz=(1001) 三个泡利矩阵所表示的泡利算符代表着对量子态矢量最基本的操作。

如将 σ x \sigma_x σx作用到 ∣ 0 > \left| 0 \right> 0 态上,经过矩阵运算,得到的末态为 ∣ 1 > \left| 1 \right> 1 态。

泡利矩阵的线性组合是完备的二维酉变换生成元,即所有满足 U U † = I UU^†=I UU=I U U U 都能通过下面这种方式得到:
U = e − i θ ( a σ x + b σ y + c σ z ) U=e^{-i\theta \left( a\sigma _x+b\sigma _y+c\sigma _z \right)} U=eiθ(aσx+bσy+cσz)

1.3.2 常见逻辑门以及含义

· Hadamard (H) 门

形式: H = 1 2 [ 1 1 1 − 1 ] H=\frac{1}{\sqrt{2}}\left[ \begin{matrix} 1& 1\\ 1& -1\\ \end{matrix} \right] H=2 1[1111] 线路表示:
在这里插入图片描述
功能:

  • 作用在单量子比特上:将基态变为叠加态
    1 2 [ 1 1 1 − 1 ] ∣ 0 > = ∣ 0 > + ∣ 1 > 2 \frac{1}{\sqrt{2}}\left[ \begin{matrix} 1& 1\\ 1& -1\\ \end{matrix} \right] \left| 0 \right> =\frac{\left| 0 \right> +\left| 1 \right>}{\sqrt{2}} 2 1[1111]0=2 0+1 1 2 [ 1 1 1 − 1 ] ∣ 1 > = ∣ 0 > − ∣ 1 > 2 \frac{1}{\sqrt{2}}\left[ \begin{matrix} 1& 1\\ 1& -1\\ \end{matrix} \right] \left| 1 \right> =\frac{\left| 0 \right> -\left| 1 \right>}{\sqrt{2}} 2 1[1111]1=2 01
  • 作用在任意量子态 ∣ ψ > = α ∣ 0 > + β ∣ 1 > \left| \psi \right> = \alpha\left| 0 \right> + \beta\left| 1 \right> ψ=α0+β1 上:
    ∣ ψ ′ > = H ∣ ψ > = 1 2 [ 1 1 1 − 1 ] [ α β ] = 1 2 [ α + β α − β ] = α + β 2 ∣ 0 > − α − β 2 ∣ 1 > \left| \psi ' \right> =H\left| \psi \right> =\frac{1}{\sqrt{2}}\left[ \begin{matrix} 1& 1\\ 1& -1\\ \end{matrix} \right] \left[ \begin{array}{c} \alpha\\ \beta\\ \end{array} \right] =\frac{1}{\sqrt{2}}\left[ \begin{array}{c} \alpha +\beta\\ \alpha -\beta\\ \end{array} \right] =\frac{\alpha +\beta}{\sqrt{2}}\left| 0 \right> -\frac{\alpha -\beta}{\sqrt{2}}\left| 1 \right> ψ=Hψ=2 1[1111][αβ]=2 1[α+βαβ]=2 α+β02 αβ1
· Pauli-X 门

形式: X = σ x = [ 0 1 1 0 ] X=\sigma _x=\left[ \begin{matrix} 0& 1\\ 1& 0\\ \end{matrix} \right] X=σx=[0110] 线路表示:在这里插入图片描述
功能:

  • 作用在单量子比特上:是经典计算机 NOT 门的量子等价,即将量子态进行翻转,因此又称 NOT 门。
    X ∣ 0 > = [ 0 1 1 0 ] [ 1 0 ] = [ 0 1 ] = ∣ 1 > X\left| 0 \right> =\left[ \begin{matrix} 0& 1\\ 1& 0\\ \end{matrix} \right] \left[ \begin{array}{c} 1\\ 0\\ \end{array} \right] =\left[ \begin{array}{c} 0\\ 1\\ \end{array} \right] =\left| 1 \right> X0=[0110][10]=[01]=1 X ∣ 1 > = [
  • 14
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诸葛思颖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值