量子计算III:Hello, QUANTUM world!

Visual Studio 2017 中加装Microsoft Quantum Development Kit开发包后,就可以使用Q#语言编写量子算法程序。量子编程的新世界就在眼前,我们要不要先打声招呼“Hello, QUANTUM world!”。
 
量子计算机是基于量子特性设计的计算机,我们在使用量子计算机之前,需要考虑一个问题:如何使用,或者说,按照什么模式来使用。粗略的做个类比,核弹是基于核反应的zha弹,威力无穷。当我们拥有了核弹这样的神器,我们应该构建一种怎样的策略来使用:是把常规武库全部报废,任何问题都用核弹来说话;还是同时持有常规武库和核武库,针对不同问题采用不同策略。
 
理论上,任何算法都能够在量子计算机上实现,输出一行字符串也不例外。但这样的应用,几乎不会用到任何量子特性,也不会发挥量子计算的任何优势。因此,一种合理的方案是,将量子计算机作为一个相对独立模块来使用,就像显卡、声卡、网卡一样。经典计算机做主机,运行主程序,遇到需要量子计算来解决的问题时,就调用子程序,在量子计算模块上运行量子算法。
 
在Visual Studio 2017中进行量子算法编程,采用的就是这种将量子计算作为相对独立模块对待的方式。用通用编程语言C#写主程序,用量子编程语言Q#编写子程序。
 
当建立了一个Q#应用工程HelloQ后,系统自动生成两个源程序文件,一个是C#主控程序Driver.cs,一个是Q#量子编程源程序Operation.qs。我们将Operation.qs改名为HelloQ.qs。

写完第一个量子计算程序之后,两个文件中的代码长的下面这个样子。
Driver.cs

HelloQ.qs

可是这程序看上去平平无奇啊。

实际上,这两段源码确实平平无奇,既不能秒解上古宝藏密文,也不能让AI智商暴涨。它所做的,是模拟了一个量子逻辑门操作哈达玛门(在图中,这个量子逻辑门操作还被注释掉了),也就是红框中这一句代码的功能。

经典计算机由晶体管构成,用高低电位表示二进制0和1数字信号。能够对数字信号进行逻辑运算的电路称为逻辑门,比如非门、与门、与非门、或非门、或门、异或门、异或非门,施密特触发门、缓冲器、驱动器等。

相应的,量子计算机由二态量子系统构成,比如一个光子,有水平偏振态和竖直偏振态,用两种不同偏振态表示量子态|0>和|1>。数学上,|0>表示向量{{1},{0}},|1>表示向量{{0},{1}}。

方便起见,以后分别用{{1},{0}}和{{0},{1}}分别表示向量

哈达玛门传输函数为

方便起见,以后用sqrt()表示开平方根。H可以写作H=(1/sqrt(2))·{{1, 1}, {1, -1}}

可以算出:
H·|0> = 1/sqrt(2)*|0> + 1/sqrt(2)*|1> ------------ (1)
H·|1> = 1/sqrt(2)*|0> - 1/sqrt(2)*|1> ------------ (2)

上面两个式子右边都是|0>和|1>的线性组合。一般的,对于|ψ>=α·|0> + β·|1>,我们称其为叠加状态。也就是,在同一时刻,这个量子位即处于|0>态、也处于|1>态。如果我们对该量子位进行测量,量子位的叠加状态就坍塌了,坍塌的意思是一旦被测量,量子位就处于|0>态或者|1>态了。是测量这个过程使得量子位出现在某一固定状态。其中,测得为|0>的概率为α的平方,测得为|1>的概论为β的平方。特殊的,测量|0>态的量子位,100%测得|0>态,测量|1>态的量子位,100%测得|1>态。

那么,对上面(1)式和(2)式所表达的量子态进行测量,得到|0>态和|1>态的概率分别是多少?对于(1)式,测得|0>态的概率为(1/sqrt(2))的平方,即0.5;测得|1>态的概率为(1/sqrt(2))的平方,即0.5。对于(2)式,测得|0>态的概率为(1/sqrt(2))的平方,即0.5;测得|1>态的概率为( - 1/sqrt(2))的平方,即0.5。

模拟哈达玛门,如果只经过一次实验,是看不出哈达玛门的特性的。进行一次测量,处于重叠态的量子位要么坍塌为|0>、要么坍塌为|1>,看不出概率特性。因此,要实验哈达玛门特性,需要反复测量多次。上面的代码对初始状态为|0>和|1>的量子位分别测量1000次。

如果将哈达玛门这一句代码注释掉,得到的结果为:

也就是,不经过哈达玛门,直接测量。初始态为|0>,测量1000次,1000次均为|0>态;初始态为|1>,测量1000次,1000次均为|1>态。

如果将哈达玛门这一句代码启用,得到的结果为:

也就是,经过哈达玛门,再测量。初始态为|0>,测量1000次,489次为|0>态(接近0.5的概率),511次为|1>(接近0.5的概率);初始态为|1>,测量1000次,486次为|0>态(接近0.5的概率),514次为|1>(接近0.5的概率)。这个结果和哈达玛门的数学概率结果吻合。实际上,如果我们再运行一次,具体次数可能不一样了,不过基本还是会和数学期望吻合。比如:

至此,可以认为这次仿真实验是成功的,实现了对哈达玛门的模拟,得到了与理论预期一致的结果。也就是,完成了量子计算的第一个程序。可以看到,量子编程不是科幻影视作品中的瑰丽想象。量子编程也是编程,需要实实在在的工作,也要一句句敲代码、编写量子计算机能够运行的程序。

未经允许请勿转载

原文地址:http://blog.51cto.com/13763747/2122710

时间: 2024-10-10 09:23:24

量子计算III:Hello, QUANTUM world!的相关文章

Google的量子计算之梦:比传统计算机快上1亿倍?

Google的量子计算之梦:比传统计算机快上1亿倍? 本文来自technologyreview,作者 Tom Simonite ,机器之心编译出品,参与:salmoner,薛矽,汪汪,微胖. 近日,谷歌宣布他们的量子计算机比传统计算机快上1亿倍,有人欢呼雀跃,有人提出质疑.让我们来看看背后的故事吧,看看物理学家John Martinis 如何帮谷歌实现炙手可热的量子计算之梦.他或许正手握着量子计算的圣杯,本文选自麻省理工科技评论. Martini团队追寻的神奇计算机 John Martinis用

新物理AI将可能成为量子计算革命的关键

新物理AI将可能成为量子计算革命的关键 据外媒报道,量子计算无疑是现在最令人兴奋的技术之一,但它的量子物理基础却让它成为了一个令人讨厌的概念理解甚至很难再展开其他事情.然而,最近物理学研究的一项突破可能会改变这一切并引发一场计算革命.不过这并不是第一次发生. 早在1943年,IBM的Thomas J Watson(Watson AI就是以他的名字命名的)曾说过一句名言:"我认为5台计算机足以满足整个世界市场."这可能是因为当时的电脑个头非常大,一台就占据了整个房间. 但到了1971年,

量子计算与现有的安全体系

你会希望某黑客假冒你的银行吗?近年来,量子计算机quantum computer已经出现在大众的视野当中.量子计算机被认为是第六类计算机,这六类计算机包括:人力Humans:在人造的计算工具出现之前,人类只能使用人力去进行计算.而承担计算工作的人,只能被称为“计算者”.模拟计算工具Mechanical analogue:由人类制造的一些模拟计算过程的小工具,例如安提凯希拉装置Antikythera mechanism.星盘astrolabe.计算尺slide rule等等.机械工具Mechani

量子计算与通讯的基本原理(量子纠缠)

1935年5月4日,爱因斯坦在<纽约时代>发表署名文章,严厉批评量子力学"超距感应"(即"量子纠结",Entanglement),他说:超距感应是"spooky action at a distance",意思是:超距感应是"魔鬼超距作用".爱因斯坦认为,使用波函数描述物理真实是"not complete"(是不完备的). 什么是"超距感应"?我们设想:有两个人在异地玩扑克牌

微软技术暨生态大会将登陆北京,量子计算会否来袭?

在2017年9月25日美国举办的微软Ignite及Envision大会上,微软向业界展示了在计算前沿的最新进展:支持量子计算的Visual Studio,包括集微软12年之力为可扩展量子计算机创建和优化的新编程语言.开发者可以在本地或在Microsoft Azure上使用调试工具和最新的模拟器,这些工具将在今年底前免费开放. 2017年10月31到11月3日,微软Tech Summit大会将登陆北京,把最新的计算前沿成果带到中国.微软Tech Summit大会又名"技术暨生态大会",由

关于量子计算的11种数学争论

量子计算是一个非常活跃且迅速扩大的研究领域.许多公司和研究机构都在这种未来主义和潜在的改变游戏规则的技术上花费很多.有些甚至在实验室中为量子计算机建立了玩具模型.例如,IBM的50-qubit量子计算机. 然而,就量子计算机与经典计算机相比,预测的潜在优势而言,一些科学家并不乐观.他们认为存在理论上的障碍和根本的局限性,这会显着降低量子计算的效率. 所以,对十一个反对意见: 1.在纸上工作,而不是在实践中. 2.违反扩展的教会图灵论文,从数学的角度来看,也许是最准确的反对意见,这是一个扩展的讨论

漫画 | 10分钟看懂量子比特、量子计算和量子算法

请做好准备,即将进入烧脑模式! 宏观世界的生活经验很多都是表象.比如,你可能认为世界的运行是确定的.可预测的:一个物体不可能同时处于两个相互矛盾的状态. 在微观世界中,这种表象被一种叫做量子力学的规律打破了. 量子力学指出,世界的运行并不确定,我们最多只能预测各种结果出现的概率:一个物体可以同时处于两个相互矛盾的状态中. 量子计算,就是直接利用量子力学的现象(例如量子叠加态)操纵数据的过程. 在本文中,我们简单地介绍量子叠加态.量子比特.量子测量和一种实现随机数据库搜索的量子算法. 夏天到了,烈

2018年度10大新兴技术:人工智能、量子计算、增强现实等

https://mp.weixin.qq.com/s/FEhGUixl00knNOu14sdbTg 9月19日,世界经济论坛和<科学美国人>联合发布了2018年度十大新兴技术榜单,人工智能及生物医药.新材料领域的技术入围,其中多项技术有望为治疗癌症带来新的解决办法.这些技术被认为在未来3~5年会对社会与经济产生重要影响. <科学美国人>与世界经济论坛联合发布了 2018 年全球十大新兴技术.这份榜单由<科学美国人>.<科学美国人>全球顾问委员会.世界经济论坛

西蒙算法在量子计算机上“跑”得更快

来自南非的一组研究团队近日成功地在量子计算机上运行了西蒙算法(Simon’s algorithm),且这一算法在量子计算机上的运行表现比电子计算机表现得更好.相关论文刊登在<物理评论快报>上. 量子计算机是一种基于量子力学的计算设备,用来存储数据的对象是量子比特而非经典计算机的电子比特. 科学界普遍认为,由于量子计算机能够利用量子纠缠和叠加等独特的量子物理属性,在运行某些特定算法时,它会比现有计算机更为快速和高效.遗憾的是,到目前为止,还没有办法在量子计算机上运行这些量子算法来检验这一理论.