• 量子计算基础——矩阵语言


    技术背景

    量子计算作为一种新的计算框架,采用了以超导、离子阱等物理体系的新语言来描述我们传统中所理解的矩阵运算。不同于传统计算机中的比特(经典比特)表示方法,量子计算的基本单元被称为量子比特。我们可以通过一个布洛赫球的模型来理解二者的区别:

    传统比特用高电平和低电平来表示一个经典比特的1态和0态,分别对应于布洛赫球模型的南极点和北极点。这是经典比特所能够表示的信息,相当于球表面的两个点,而一个量子比特所能够表示的信息,是整个球的表面(球体内部的点在特定体系下也能够取到,一般我们只取球的表面来表示量子比特的信息)。除了两个极点所表示的信息,与经典比特所表示的信息一致之外,其他的布洛赫球表面的点,表示的是量子力学中所特有的叠加态。也就是说,一个量子比特不仅仅可以表示0态和1态,还可以用一个概率分布来表示0态和1态的叠加态:qstate=P(state=0)0+P(state=1)1qstate=P(state=0)0+P(state=1)1

    除了通过叠加态扩展了表示空间之外,量子计算还可以通过量子纠缠的特性,来制造非矩阵乘积态。举个比较通俗的例子来说,如果我们抛两枚硬币到地上,得到的结果,就是两个硬币各自状态的矩阵乘积态:[,][,]=[,,,][,][,]=[,,,],换句话说,两个硬币之间是独立的。而量子纠缠,就可以使得我们能够得到[][]这样的结果集合,也就是将二者绑定。也正是对量子叠加和量子纠缠这两个重要量子特性的应用,使得量子计算机相比于传统计算机能够表现出性能上的极大优势,这种优势被称为Quantum Supremacy/Quantum Advantage,也就是量子优越性。同时,量子计算也被认为是打破传统半导体的摩尔定律或者指数墙的最有力工具。

    量子比特与量子操作

    前面我们提到,量子比特可以表示为0态和1态的一个叠加态,那么就不能用一个元素来表示了,我们可以一个量子态表述为:

    |ψ=[p0p1]

    因为p0p1分别表示的是取得0态与1态的概率,那么从线性叠加的角度来考虑,我们必须把0态和1态定义成矢量形式(基矢)的狄拉克符号:

    |0=[10],|1=[01]

    基于这两个基矢,我们可以重写单量子比特的量子态的形式:

    |ψ=p0|0+p1|1

    通常情况下,如果是一个归一化的量子态(纯态),有:

    p20+p21=1

    这同时也告诉我们,p0的本质意义其实是取得0态的概率的开根号(也就是概率幅),并非取得0态的概率,这个表述可能会导致一些疑惑,但是这样也是为了告诉大家叠加态与概率的关系。。表示完单量子比特的信息,我们同样可以推理一下多量子比特信息的表示,比如两量子比特和三量子比特的量子态表示:

    |ψ=p00|00+p01|01+p10|10+p11|11|ψ=p000|000+p001|001+p010|010+p011|011+p100|100+p101|101+p110|110+p111|111

    从这个表示形式中,我们也可以看出,一个n量子比特的量子计算机所能够表示的信息,是2n的空间,是指数级别上升的。所以一般认为,当量子计算机发展到50个完美量子比特以上时,就会真正意义上的实现量子优越性。

    这里插一段话,讲述一个不太经常被提到的,虽然不是很难,但是有可能让人感到迷惑的问题:给定的布洛赫球,实际上有三个坐标轴,为什么所表述的信息是2n,而不是3n次方?我们再回顾一下单量子比特的表达形式:

    |ψ=p0|0+p1|1=(px0+ipy0)|0+(px1+ipy1)|1

    公式中的i表示虚数单位,而这两个复数中所附带的相位,就是那一条缺失的坐标轴。但是,为什么这一个维度被“忽略”了呢?这一点其实跟硬件实现有关,在后面我们要提到的量子测量的模块中,一般只针对一个轴进行测量,制造坍缩的量子态,这就使得实际上只有两个轴向的操作会影响到最终的结果。但是我们又必须同时具备这三个轴,因为最终用于执行量子测量的轴,有可能是三个轴的某个叠加的位置(比如x=y=z这条直线)。

    在完成了量子比特的定义之后,我们需要定义一些基础的量子比特的操作,就类似于经典比特的逻辑门操作(与门、非门、与或门等等)。先从单个量子比特开始,我们首先回顾一下单位矩阵三个泡利矩阵

    σI=(1001),σX=(0110),σY=(0ii0),σZ=(1001)

    单位矩阵我们都可以理解,就是保持量子态不变。而通过这些基础的泡利矩阵,我们可以用RiθM,M=σX,σY,σZ去构造一些列绕X,Y,Z轴旋转的单比特旋转矩阵。我们可以把这些旋转矩阵的形式列出来,首先回顾一下指数矩阵的泰勒级数展开:

    eA=k=01k!Ak

    将矩阵iθM代入其中可以得到:

    RM(θ)=eiθσM=cos(θ2)σIisin(θ2)M,M(σX,σY,σZ)

    这便得到了将量子比特绕三个绕XYZ轴旋转的旋转矩阵。特殊地,在很多算法中都会使用到这样的一个单量子比特操作:Hadamard门,其定义为:

    H=22(σX+σZ)

    一般很少被提到,Hadamard门操作的几何意义,就是将一个量子比特绕X-Z的角平分线旋转180度。另外还有相位角量子门操作的形式:

    P(θ)=(100eiθ)

    当相位角取得π时,相位角等价于σZ。而相位门跟eiθσZ的不同之处在于,eiθσZ是分别对0态和1态的相位进行旋转,最后再进行叠加,而相位门是固定了0态的位置而旋转1态的相位,最终再进行叠加。从量子态上来看,二者实际上是等价的:

    |ψ=eiϕ1cosθ2|0+eiϕ2sinθ2|1=eiϕ1(cosθ2|0+ei(ϕ2ϕ1)sinθ2|1)=cosθ2|0+ei(ϕ2ϕ1)sinθ2|1=ψ(cosϕsinθ,sinϕsinθ,cosθ)

    根据以上的单比特门,加上一个双比特门,理论上就可以构成任意比特数的等效量子逻辑门,一般常用的两比特量子逻辑门是CNOT门,也叫CX门,其矩阵形式如下所示:

    CX=|00|I+|11|σX=(1000010000010010)

    通过Hadamard门与CX门,就可以构建一个两比特的纠缠态:Bell State,我们可以用IBM的Composer(参考链接3)来演示一下:

    从左下角的概率分布结果,我们就可以了解到最终的量子态为:22|00+22|11,这一点也可以从量子逻辑门操作来进行简单的分析,首先看下第一个量子比特作用Hadamard门的结果:

    H|0=22(1111)(10)=(2222)

    此时两个量子比特没有作用过两比特门,因此还是矩阵乘积态:

    |ψH=(2222)(10)=(220220)

    此时再作用一个CX门,得到最终的量子态:

    |ψfinal=CX|ψH=(1000010000010010)(220220)=(220022)

    这样,就完成了一个完全纠缠态的制备。制备完成后,对其中的任意一个量子比特进行测量,如果得到的结果是0态,那么另一个量子比特结果必然也是0态。除了CX门,还有另外一个有可能被经常使用到的两比特量子门是Swap门,顾名思义,就是交换两个量子比特的信息,其矩阵形式为:

    Swap=(1000001001000001)

    从矩阵元素上就可以看出其物理图像,Swap的本质操作是交换作用的两个量子比特的概率幅,因为|00|11态本身就具备对称关系,因此只需要交换|01|10这两个量子态的振幅即可,因此只有矩阵中间的两个元素进行了交换。

    总结概要

    量子计算是一门当下非常火热的技术,抛开个别企业对量子计算的过分吹嘘不谈,其本身是一门非常有意义的跨学科研究领域。本文仅从非物理科班专业的角度——用矩阵的语言去描述量子计算的基础单元和基础操作,包含量子态的含义、单比特量子门操作以及两比特量子门操作的矩阵形式。并且附带一定的物理图像,这一点其实非常重要,如果不断的推导公式,最终有可能迷失了其物理图像,这就脱离了我们做研究的初衷。

    版权声明

    本文首发链接为:https://www.cnblogs.com/dechinphy/p/quantum-base.html

    作者ID:DechinPhy

    更多原著文章请参考:https://www.cnblogs.com/dechinphy/

    打赏专用链接:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

    腾讯云专栏同步:https://cloud.tencent.com/developer/column/91958

    参考文献

    1. Quantum Computational Chemistry. Sam McArdle, Suguru Endo and other co-authors.
    2. The Basics of Quantum Computing for Chemists. Daniel Claudino.
    3. https://quantum-computing.ibm.com/composer/
    4. https://www.quantum-inspire.com/kbase/rz-gate/
  • 相关阅读:
    分布式事务解决方案之2PC
    SVN学习(001 svn安装)
    重学Android基础系列篇(三):架构动态编程技术原理
    数据结构实战开发教程(五)再论智能指针、循环链表的实现、双向链表的实现、双向循环链表的实现、Linux内核链表剖析
    鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
    ELK之LogStash插件grok和geoip的配置使用
    Helm 基础入门 Helm介绍与安装
    Python面试题_第 (4) 章
    MAA接枝聚苯乙烯(PSt-g-PMAA)共聚微球/聚醋酸乙烯酯接枝聚苯乙烯复合微球应用
    Java实现的企业员工考勤管理系统
  • 原文地址:https://www.cnblogs.com/dechinphy/p/quantum-base.html