量子计算(9)量子算法1:可逆线路
创始人
2024-06-02 14:31:02
0

        哈喽哈喽大家好呀!又到了一周一度小编分享量子计算的时刻啦!几天不见,大家是不是甚是想念小编呢。之前答应大家的,本周要开始进入量子算法的学习。提到算法,大家会想到什么?是深度优先算法?哈夫曼编码算法?排序算法?梯度下降法?还是说动态规划法?二分法?KMP算法?诸如此类,但是这些都是我们针对经典量子比特而设计出来的算法。那么,我们学习了这么多次量子计算的课程,有没有什么针对量子比特的算法呢?

        诶嘿,您还别说,还真有一些国内外大佬想出来的量子计算的算法,虽然目前量子计算的算法还没有完全开发完,也就是说,量子计算领域还有很多种人类并没有想出来的算法,但是目前想出来的一些算法,确实很厉害,相较于经典算法快了不少。

目录

一、可逆电路

二、设计电路

1、非门NOT

2、与门AND

        3、或门OR


一、可逆电路

       我们知道,处理量子信息的基本单元是量子逻辑门,量子信息经过各个量子逻辑门时,依据门功能发生变换,量子逻辑门对量子信息的操作其实就是一个酉变换,酉变换的一个重要特点就是这些酉变换都是可逆的,即每个量子逻辑门也是可逆的。

        比如说H门,我们证明一下,它是酉变换:

        首先,酉矩阵满足U^{\dagger }=(\overline{U})^{T}以及U^{\dagger }\cdot U=I_{n}

        而H门对应的矩阵为H=\frac{1}{\sqrt{2}}\begin{pmatrix} 1 &1 \\ 1& -1 \end{pmatrix},那么它的伴随为H^{\dagger }=\frac{1}{\sqrt{2}}\begin{pmatrix} 1 &1 \\ 1& -1 \end{pmatrix},经计算,发现它满足H\cdot H^{\dagger }=I_{n}

        同理,我们也可以一一验证X门、Y门、Z门以及众多的多量子逻辑门,都是酉变换。

        我们在量子电路中,不可能只用一个量子门,对吧。那么我们还需要证明:酉矩阵乘酉矩阵仍然是一个酉矩阵。

        设U1、U2均为个酉矩阵,那么我们有U_{1}^{\dagger }=(\overline{U_{1}})^{T}U_{2}^{\dagger }=(\overline{U_{2}})^{T},那么U_{1}^{\dagger }\cdot U_{2}^{\dagger }=(\overline{U_{1}})^{T}\cdot (\overline{U_{2}})^{T}。又因为A^{T}\cdot B^{T}=(BA)^{T},所以U_{1}^{\dagger }\cdot U_{2}^{\dagger }=(\overline{U_{2}}\cdot \overline{U_{1}})^{T}。而\overline{A}\cdot \overline{B}=\overline{BA},所以U_{1}^{\dagger }\cdot U_{2}^{\dagger }=(\overline{U_{1}\cdot U_{2}})^{T},满足酉矩阵的第一条性质。而U_{1}^{\dagger }\cdot U_{1}=I_{n}U_{2}^{\dagger }\cdot U_{2}=I_{n},那么(U1U_{2})^{\dagger }\cdot (U_{1}U_{2})=(\overline{U_{1}\cdot U_{2}})^{T}\cdot (U_{1}\cdot U_{2}),继续拆解括号里的内容有(U1U_{2})^{\dagger }\cdot (U_{1}U_{2})=(U_{2}^{\dagger }\cdot U_{1}^{\dagger })\cdot (U_{1}\cdot U_{2}),矩阵乘法具有结合性,所以最终有(U1U_{2})^{\dagger }\cdot (U_{1}U_{2})=I_{n}\cdot I_{n}=I_{n}

        因此,我们得出结论:量子电路由若干量子逻辑门级联构成,它是对量子信息作一系列酉变换以实现电路功能,而酉变换一定是可逆的,所以当我们设计电子线路与电子算法时,一定要考虑可逆的相关性质,小编总结如下。

        量子可逆逻辑电路具有以下特点:①输入线路与输出线路相等,而且满足函数是单射与满射的,即shuang射(CSDN挺奇怪的,不让我打出来这个词语);②没有反馈线路;③电路分层级联,有时为了保证电路可逆性需要人为添加一些辅助位,即没有用的数据位。

        那么我们需要了解一下shuang射是什么,这个其实是高中的知识,小编带大家温习一下:在集合论中,一个由集合X至集合Y的映射称为双射的,若对集合Y内的任意元素y,存在唯一一个集合X内的元素x,使得 f(x)。换句话说,f为双射的若其为两集合间的一对一对应,亦即同时单射且满射。

        一个n位输入、n位输出的量子线路,称为n×n规模的量子电路。

二、设计电路

        刚刚我们说到,量子线路是可逆线路,不过可惜的是,对于经典比特中的各种门,大多数都不是可逆的,下面我们将一一判别一下,并且带领大家“改造”这些经典电路门。

1、非门NOT

        何谓非门?非门(英语:NOT gate)又称反相器(英语:Inverter),是数字逻辑中实现逻辑非的逻辑门,功能见如下真值表:

输入A输出f(A)
10
01

        我们发现它完全满足可逆条件,既是满射,也是单射。而且我们还知道,在量子线路中用一个X门就能完成对非门的转换。

2、与门AND

        与门(英语:AND gate)又称"与电路"、逻辑"积"、逻辑"与"电路。是执行"与"运算的基本逻辑门电路。有多个输入端,一个输出端。当所有的输入同时为高电平(逻辑1)时,输出才为高电平,否则输出为低电平(逻辑0)。其真值表为:

输入1输入2输出
000
010
100
111

        很明显,输入数量与输出数量都不一致,更别说满足可逆条件了。我们需要对这个电路好好的“改造”一下,让它脱胎换骨!

        在经典电路中,我们用如下的方式,让它变得输入与输出一一对应。一般情况下,如果y=f(i)有n个输入与m个输出,我们改造的时候,会额外添加与原输出数量一致的输入以及与原输入数量一致的输出。也就是说增加m个输入以及n个输出。然后新增的输出值与原来的输入值一致,但是函数的输出需要变成未改造前的输出异或新添加的输入值。语言上很难理解,但是看下面这个例子大家就立马会了。

        在与门中,对应刚刚的改造方法,我们要添加一个输入与两个输出。并且原来的输出要改造成ab的“与”操作,然后与c异或的结果。这样子能满足一一对应,而且还能完美的满足单射与满射。 如图右侧的真值表所示。

        

        紧接着,请大家思考一下,这个电路怎么设计。不知道大家还记不记得Toffoli门,当前两个量子比特位1的时候,翻转第三量子比特。诶嘿?这乍一看,不就是Toffoli门能完成的操作吗?而且我们只需要控制c为|0>态,就能得到与操作后真正的值。

        那么依据前几篇文章的知识,我们是不是能够用pyqpanda实现“量子与门”操作?请大家动动手,和小编一起完成编程。

from pyqpanda import  *def get_number():a=int(input("请输入输入的值"))return a
//输入输入1与输入2的值if __name__ == "__main__":a=get_number()b=get_number()qvm = CPUQVM()qvm.init_qvm()qubits = qvm.qAlloc_many(3)cbits = qvm.cAlloc_many(3)cbits[2].set_val(b)cbits[1].set_val(a)branch0 = QProg()branch1 = QProg()branch2 = QProg()prog=QProg()prog1=QProg()branch1.insert(X(qubits[1]))//branch1用于当输入1为1时,使该线路由|0>变为|1>branch2.insert(X(qubits[2]))//与楼上同理prog1.insert(Toffoli(qubits[2],qubits[1],qubits[0]))//执行TOFFOLI门操作qif1=QIfProg(cbits[1]==1,branch1,branch0)qif2=QIfProg(cbits[2]==1,branch2,branch0)measure=Measure(qubits[0], cbits[0])prog.insert(qif1)prog.insert(qif2)prog.insert(prog1)prog.insert(measure)result1 = qvm.prob_run_dict(prog, qubits, -1)# 打印概率测量结果print(result1)

        结果如下图:

        概率为1的状态下,最末位的数值,即为与操作的数值。我们不难发现,“100”的概率为1,代表着这次与操作的结果为0。

3、或门OR

        与门都弄出来了,或门不就是照葫芦画瓢吗?我们将之改为可逆电路,此可逆电路的真值表为:

abcabf
000000
001001
010011
011010
100101
101100
110111
111110

        那么电路该怎么设计,请大家思考一下。小编给出自己的一点小看法:由德摩根律,a+b=\overline{\overline{a}\cdot \overline{b}},我们可以通过刚刚设计好的非门与与门来构造这个或门。

        作业:请大家思考一下,如何利用量子线路构造一个能完成-2到1的加法器。

        好的,本期的量子计算的文章就到这里啦,希望小编的文章对大家有所帮助,感兴趣的读者们请留下您宝贵的小心心,谢啦!

相关内容

热门资讯

拥有魔法般的装置——楼层叠加器... 想象一下,如果你能拥有一个魔法般的装置,它能让你在自己的房间里体验到不同楼层的乐趣,那该有多酷!这就...
gps rtk测量技术规范-G... 嘿,朋友们,今天咱们聊聊那个让地理测绘变得像变魔术一样的技术——GPSRTK测量!这玩意儿,简直不要...
igfxtrayexe-igf... 哎呀呀,说到这个igfxtray.exe,我就一肚子火!你知道吗,这小东西就像是藏在我电脑里的一个小...
辽宁朝阳二院双眼皮手术:技术好... 哎呀,说到辽宁朝阳二院的双眼皮手术,我这心里就激动得不行!你知道吗,那不仅仅是一双眼睛的变化,简直是...
番茄花园u盘装系统-番茄花园 ... 大家好呀,我今天真的是超级兴奋,要跟大家分享一下我最近的一次超级给力的电脑装系统经历!你们有没有试过...
四川资阳乐至县怎么样-四川资阳... 哎呀,说到四川资阳的乐至县,我这颗心就扑通扑通跳个不停!这个地方,简直就是个宝藏,藏着无数让人心动的...
望京医院儿科电话:让人又爱又恨... 哎呀呀,说到望京医院的儿科电话,我这心里就五味杂陈的。你知道的,每当孩子有个头疼脑热,你第一个想到的...
医保软件门诊管理系统:让看病变... 嘿,大家好!今天我要聊聊我们的医保软件门诊管理系统,这玩意儿真的是让看病变得有点儿小激动呢!以前去医...
深度系统win8.1纯净版-W... 嘿,大家好!今天我想聊聊我最近的一次电脑大改造——升级到了Win8.1纯净版。你知道吗?这次的改变,...
运维监控日常工作内容-运维小哥... 在这个数字化的世界里,有一群人,他们就像是守护者,默默地在后台守护着每一台服务器,每一次数据传输的安...
3s技术与数字地球-3S 技术... 3S技术——遥感(RS)、地理信息系统(GIS)和全球定位系统(GPS)——已经成为我们探索和理解这...
中国电信新视通:画质高清、稳定... 大家好,我是一个普通的上班族,今天要和大家聊一聊我最近迷上的中国电信新视通。这玩意儿,真的是太神奇了...
石大路红荔路口监控-红荔路与石... 啊,红荔路与石大路的交叉口,这个地方,每天都是车水马龙,人来人往的,热闹得不得了。但是你知道吗?就在...
空调省电的五种方法-夏天空调省... 嘿,小伙伴们!夏天到了,空调成了我们的救星,但电费也跟着飙升,是不是感觉钱包在滴血?别担心,今天我这...
gps定位系统工作原理-GPS... 大家好呀!今天我要和大家聊聊那个神奇的小东西——GPS定位系统!你们有没有想过,为什么我们走到哪里,...
证件号码43045664137... 嘿,你知道吗?每当我看到那个数字串——430456641374,我的心就不由自主地跳得快起来。这不仅...
breezeblocks:城市... 在这个喧嚣的城市里,每当我走过那些由breezeblocks构成的墙,心中总会涌起一股莫名的情绪。B...
linux当黑客-Linux ... 嘿,兄弟们,今天咱们聊聊Linux和黑客的故事,这可不是什么正经教程,就是我个人的一些小激动和小梦想...
2024执业助理医师考试查分-... 哎呀,说到这个执业助理医师考试查分,我的心都快跳出来了!每次考试结束,就像经历了一场激烈的战斗,考场...
extjs 验证码-ExtJS... 嘿,大家好!今天咱们聊聊一个超级重要但又常常被忽视的话题——ExtJS验证码。你知道吗,这个小东西可...