• 单qubit量子门


    量子编程的基本单元就是量子门。量子编程有点像传统的电路设计,一个量子程序可以被写成量子门序列。
    image
    图中有一些符合,比如H门、X门、Z门、测量等,我们都会接触到。

    传统计算机程序的输入和输出可以不一样,但是量子程序是绝对不允许这样的。在两个方向可以逆转的操作不会丢失信息,而比如加法这样的就不行,你知道3是1+2还是0+3?
    image
    同理,qubit不会被拆分或合并。所以量子编程没有if-then-else之类的控制流程。

    qubit运算

    叠加态可以表示成

    \( |\psi\rangle=a_0|0\rangle+a_1|1\rangle\\=\cos\frac{\theta}{2}|0\rangle+e^{i\phi}\sin\frac{\theta}{2}|1\rangle\\=\cos\frac{\theta}{2}|0\rangle+\left(\cos\phi+i\sin\phi\right)\sin\frac{\theta}{2}|1\rangle \)
    image

    所以量子计算就是在控制\(\phi\)\(\theta\)这两个角。

    哈德玛门

    前面我们已经了解了哈德玛门,它的逆矩阵等于它自己。哈德玛门可以用来制备纠缠粒子,也可以用来强化某个状态的概率(比如将另一个状态的概率降为0)。
    对于\(n\)个qubit组成的系统,可以分别给每个qubit应用哈德玛门来制备一个状态均匀分布的叠加系统:
    image
    右上角的\(\otimes n\)表示并行应用\(n\)次;右边的\(x\)是状态空间中的每个向量。2应的方程是(这是\(n+1\)个qubit,但只给\(n\)个使用了哈德玛门):
    image

    整体相位

    一个叠加态可以表示为

    \[|\psi\rangle=e^{i\gamma}\left(\cos\frac{\theta}{2}|0\rangle+e^{i\phi}\sin\frac{\theta}{2}|1\rangle\right) \]

    其中,括号外面的称为整体相位,括号里面每个基向量的系数称为相对相位。两个向量在数学上不一样的话,如果它们只是整体相位不同,那在实际世界中是区分不出来的。比如两个向量整体相位相差\(\Delta\gamma=\pi\),它们测量的结果就是一样的。例如:

    \[\frac{-|0\rangle+|1\rangle}{\sqrt{2}},\frac{|0\rangle-|1\rangle}{\sqrt{2}} \]

    只有两个向量的相对相位不一样,它们测量结果才不一样。下面两个向量只有整体相位不同,所以测量结果一样;给他俩都应用\(H\)门,它们的相对相位就会变化,它们就会分别变成\(|0\rangle\)\(|1\rangle\)

    \[\frac{|0\rangle+|1\rangle}{\sqrt{2}},\frac{|0\rangle-|1\rangle}{\sqrt{2}} \]

    一些算法就是利用的这个原理对向量进行分组测量:
    image

    泡利门

    泡利门有三个,都非常简单,不像哈德玛门的定义那么复杂。三个泡利门是为了在三个维度方向旋转向量的:

    X泡利门

    \(X\)门会交换两个基向量的振幅,它将向量沿着\(x\)轴旋转。它一般被和经典逻辑中的(NOT)进行对比,因为它会反转\(|0\rangle\)\(|1\rangle\)

    \[\mathbf{X}=\begin{bmatrix} 0 & 1 \\ 1 & 0 \\ \end{bmatrix}=|1\rangle\langle0|+|0\rangle\langle1|\\ \alpha_0|0\rangle+\alpha_1|1\rangle\overset{X}{\rightarrow}\alpha_1|0\rangle+\alpha_0|1\rangle \]

    Y泡利门

    顾名思义,\(Y\)门会把向量沿着\(y\)轴翻转。

    \[\mathbf{Y}=\begin{bmatrix} 0 & i \\ i & 0 \\ \end{bmatrix}=i|1\rangle\langle0|-i|0\rangle\langle1|\\ \alpha_0|0\rangle+\alpha_1|1\rangle\overset{X}{\rightarrow}-i\alpha_1|0\rangle+i\alpha_0|1\rangle \]

    可见\(Y\)门会给系数乘上\(\pm i\)然后交换,它和\(X\)门的差别是查一个相位。

    Z泡利门

    \(Z\)门会保持\(|0\rangle\)的振幅不变,而给\(|1\rangle\)引一个负相位:

    \[\mathbf{Z}=\begin{bmatrix} 1 & 0 \\ 0 & -1 \\ \end{bmatrix}=|1\rangle\langle0|-|0\rangle\langle1|\\ \alpha_0|0\rangle+\alpha_1|1\rangle\overset{X}{\rightarrow}\alpha_0|0\rangle-\alpha_1|1\rangle \]

    相移

    除了\(Z\)门,还有一些门是向量沿着\(z\)轴翻转,比如\(T\)\(S\)
    image

    S门

    \(Z\)门是绕\(z\)轴转\(\pi\)\(S\)门是转半\(\pi\)

    \[\mathbf{S}=\begin{bmatrix} 1 & 0 \\ 0 & i \\ \end{bmatrix}=|1\rangle\langle0|+i|0\rangle\langle1| \]

    T门

    \(Z\)门是绕\(z\)轴转\(\pi\)\(S\)门是转\(\frac{\pi}{2}\)\(T\)门是转\(\frac{\pi}{4}\)

    \[\mathbf{S}=\begin{bmatrix} 1 & 0 \\ 0 & e^{{i\pi}/{4}} \\ \end{bmatrix}=|1\rangle\langle0|+e^{i\pi/4}|0\rangle\langle1| \]

    相移门

    更一般的,对于绕\(z\)轴转任意的\(\theta\)角,对\(|1\rangle\)的影响如下:

    \[\mathbf{S}=\begin{bmatrix} 1 & 0 \\ 0 & e^{i\theta} \\ \end{bmatrix}=|1\rangle\langle0|+e^{i\theta}|0\rangle\langle1| \]

    测量

    测量的符号看起来像一个仪表指针
    image

    幺矩阵

    幺门就是单位矩阵,不影响向量

    \[\mathbf{I}=\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} \]

    有时候为了看起来清晰,会额外在方程里加上
    image

    未完

    这里看完了1-qubit操作门,后面我们会说多qubit门。总结下:单qubit门就是在球面上移动向量。

  • 相关阅读:
    【转载】JAVA中线程的两种实现方法-实现Runnable接口和继承Thread类
    JAVA详设——UML(用例图、类图、时序图)
    FreeTDS-SQL Server在linux和unix下的免费驱动
    【转】移动oracle LOB索引到其他表空间
    [转载]JDBC读写Oracle的CLOB、BLOB
    JProgressBar与Timer的配套使用
    网页美工设计及源码
    分析SignalTap的仿真结果
    用SignalTap进行硬件仿真
    单周期CPU设计的理论基础
  • 原文地址:https://www.cnblogs.com/somefuture/p/16267530.html
Copyright © 2020-2023  润新知