第一部分:IBM量子体验
(一)量子世界
今天的计算机使用标准的(或用物理学家的话来说,“经典的”)计算模型来执行计算与处理信息,此计算模型要追溯到图灵(Turing)和冯・诺伊曼(Von Neumann)时期。在此模型中,所有信息可归约为比特(bits),一个比特可取0或1两者之一的值——并且所有处理可以通过简单的逻辑门(与、或、非、与非)来执行,这些逻辑门一次作用于一个或两个比特位。在计算过程中的任意一点,经典计算机的状态由其所有比特的状态所决定,这样一个具有n个比特位的计算机可以存在2n个可能的状态,范围从00...0(全零) 到11...1(全1)。
与此同时,量子计算机的能力在于其丰富地多的全部状态。一个量子计算机也具有比特,正如任一计算机一样。但其量子比特,又称为量子位(qubit,[kju:bit])不是表示0和1,而是可以表示0、1或同时表示0、1(即一个(0, 1)向量),这个属性被称为叠加(superposition)。这对于其本身而言并没有什么帮助,由于一台计算机其比特可能处于0到1之间的中间状态,正是一台模拟(analog)计算机,简直没有一台普通的数字计算机的能力强大。量子计算机利用了一种特殊的叠加,以至于一次允许指数级数量之多的逻辑状态,所有状态从|00...0⟩到|11...1⟩。这是一个强大的技能,并且没有任何一台经典计算机可以实现。这些量子叠加的绝大多数,以及对于量子计算最有用的就是纠缠(entangled)——它们是整个计算机的状态,它们不对应于任一数字分配,也不对应于单个量子位的模拟状态。尽管没有指数级数量之多的经典计算机的能力强大,但一台量子计算机要比任何一台经典计算机要强大得多——无论它是确定的、有概率的,还是模拟的。对于一些著名的问题(诸如因式分解大数),量子计算机很明显相比于经典计算机而言就是大赢家。一台工作的量子计算机在一天所能因式分解的数,对于经典计算机而言可能需要数百万年。
有人可能认为由于需要复杂的数学知识,理解量子计算或量子物理会显得比较困难……但实际上,从数学上而言,量子概念仅比高中代数稍复杂些而已。量子物理是困难的,因为像爱因斯坦的相对论,它要求消化简单却又违反直觉的概念。在相对论上,奇怪的概念是时间与空间是相互联系的,而直觉告诉我们,它们应用是相互独立的。如果你设法通过时间与空间开始给某个人解释相对论,那么你可能会迎来茫然的凝视。一个更好的开始方式就如爱因斯坦所做的,解释相对论遵循一个简单的物理原理:对于所有匀速移动的观察者而言,光速都是相同的。这一适度的概念然后就变为了极其深远的,并通过必然的逻辑通向爱因斯坦的时空。
为了要接触量子物理,我们必须接受的反直觉的概念有:
(1)在一个完美确定状态下的物理系统,仍然可能表现出随机行为。
(2)两个相距甚远而相互影响的系统仍然会以这种方式表现:尽管它们独立地随机,然而又会以某种方式紧密关联。
不幸的是,不像相对论,这些结论没有简单的物理原理可遵循。我们最好能做的就是将量子机制提取为一些听起来抽象的数学定律。从这些数学定律,对量子粒子(以及量子计算机中的量子位)的所有观察到的行为都可以被推导和预测。并且伴随着相对论,我们必须提防试图用经典术语来描述量子概念。
(二)黑、白与黑白中的量子定律
就目前我们所知,量子定律是最基本的物理定律;它们是不可侵犯的。以下是我们提炼出来的五条关键定律。
1、量子是与其它事物相似的系统
对于每个物理系统,相当于一个希尔伯特空间(Hilbert space)的维度等于系统最大个数能确切区分出来的状态。希尔伯特空间是具有复杂系数与内积的一个线性向量空间:⟨Φ|ψ⟩ = ∑Φi*ψi 。对于一单个量子位,有两个标准的正交状态(计算基础状态),一般记为:|0⟩ = (1 0)且|1⟩ = (0 1)。
2、一个量子状态是系统的一个配置
希尔伯特空间中的每个方向(射线)对应于系统的一个可能状态,有两个状态是明确可区分的,当且仅当这两个方向是正交的(即内积为零)。其它量子状态包括:|+⟩ = (1/√2)(1 1),|-⟩ = (1/√2)(1 -1),|↻⟩ = (1/√2)(1 i),|↺⟩ = (1/√2)(1 -i)。
3、一个量子状态改变;它自然想要演化,但它总是可以被撤销。
一个封闭系统的演化是在其希尔伯特空间的一个单位变换。单位意味着保留线性与内积。
4、组成——如何将各个部分组合成一个整体
一个复合系统的希尔伯特空间是各个部分希尔伯特空间的张量积。一个双量子位系统可以存在于一个乘积状态,诸如|00⟩或|0+⟩,但也可以存在于一个纠缠状态(|00⟩ + |11⟩) / √2,在这种情况下,任一量子位都不具有一个明确的状态,即便两个组合在一起会具有。
5、量子测量是概率性的
对相应于将其希尔伯特空间分解为正交子空间{∏j}系统的每一次可能测量,这里∑∏j = 1。在状态|ψ⟩上,结果j以概率P(j) = ⟨ψ|∏j|ψ⟩发生,并且在测量之后的状态为|ψj⟩ = ∏j|ψ⟩ / √P(j)。测量导致系统概率性地做出行为,并忘记其先前测量状态,除非该状态正好整个位于子空间∏j的其中之一。
(三)量子合成器
量子合成器是我们用于对一个量子处理器编程的图形化用户界面。对量子计算熟悉的人可以将合成器看作为构件量子电路的一个工具,可以使用包含良好定义的门电路以及测量的库。对于不熟悉的人来说,我们将会解释一些关键部分。
当你第一次点击上面的“Composer”标签,系统会询问你当前想要运行一个理想的量子处理器还是一个真实的量子处理器。这涉及到了系统的拓扑。在理想的处理器中,门可以被放置在任何地方,而在真实的处理器中,拓扑由正在我们实验室里运行的物理设备设置(注意,这限制了两个量子位门的某些使用性)。
一旦你处于“Composer”标签页面,你可以开始制作你自己的量子电路!我们把这个描述为一个量子谱,因为它在某些方面类似于音乐上的五线谱(即乐谱
第一部分:IBM量子体验的更多相关文章
- IBM Bluemix体验:Containers
国际版的Bluemix目前有三个region,US South,United Kingdom和Sydney.其中US South是功能最全的,UK其次,Sydney功能最少.Containers服务在 ...
- IBM Bluemix体验:Containers持久存储
上一篇介绍了在Bluemix Containers服务中使用docker hub镜像和container的高可用配置.接下来我们尝试如何在容器中使用持久存储. 在Bluemix的Containers服 ...
- 寒假生活第一天——Github初体验
快开学了,今天体验了一下github这个对我来说很是神秘的东西 它的定义来源于百度百科,如有异议,那就有吧.//gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格 ...
- IBM Bluemix体验:Containers进阶
上一篇中介绍了Bluemix的Containers服务以及如何使用自定义的docker image创建一个容器实例并对外提供服务.除了自定义镜像之外,Bluemix Containers还可以使用Do ...
- 第一天的php体验
第一次了解php.以前对于程序猿的认知是很片面的.因为没有了解过.今天通过一天的了解交流,有了新的认知.对于这个主要应用于前端的语言还是很有兴趣的.毕竟可以亲眼看到自己做出来的网页,心里的成就感肯定满 ...
- IBM新合作伙伴计划助力企业转型升级
IBM作为老牌企业,一直在引领者技术方面的变革.当IBM再一次从自我革新开始,期望能够更快的将认知计算和云推广给自己的合作伙伴和用户们,以帮助他们在新的转型期内,能够快人一步. ...
- Ruby 基础教程 第一部分总结
第一部分:Ruby 初体验 第一章: Ruby 初探 前言 开头的这一章节讲了一些十分基础的内容,重要的几个话题有: ruby 命令的执行方法 对象.方法的概念 常见的打印方法 ruby 命令的执行方 ...
- Docker下实战zabbix三部曲之一:极速体验
对于想学习和实践zabbix的读者来说,在真实环境搭建一套zabbix系统是件费时费力的事情,本文内容就是用docker来缩减搭建时间,目标是让读者们尽快投入zabbix系统的体验和实践: 环境信息 ...
- [转帖]IBM开源Power指令集:国产高性能CPU迎来新机遇?
IBM开源Power指令集:国产高性能CPU迎来新机遇? https://www.cnbeta.com/articles/tech/880971.htm cnbeta的新闻.. 希望高性能CPU 能快 ...
随机推荐
- 张小龙《微信背后的产品观》之PPT完整文字版
微信回顾 433天,一亿用户 成为移动互联网的新入口 启动(2010年11月19日) 用户数突破1亿 1.0 1月26日 2.0 5月10日 语音对讲 2.5 8月3日 查看那附近的人 3.0 10月 ...
- html+css知识整理
1.学网页最好的方法:学习别人的网页. 2.文档结构 <html>(超文本标记语言) <head> <title> </title> & ...
- VS20xx IDE开发应用时_拷贝VS环境的库文件DLL到目标设备上运行的操作步骤
问题场景: 当用VSIDE开发完一个项目,在部署到目标环境中时,配置文件OK,但是报错需要调试 <1>Deploying Visual C++ library DLLs as shared ...
- 使用NHibernate(7)-- 一对一 && 一对多 && 多对多
1, 一对一. 对于数据量比较大的时候,考虑查询的性能,肯能会把一个对象的属性分到两个表中存放:比如用户和用户资料,经常使用的一般是Id和用户名,用户资料(学校,籍贯等)是不经常被查询的,所以就会分成 ...
- 利用Docker Hub上的Nginx部署Web应用
Docker Hub上提供了很多镜像,如Nginx,我们不需要自己从ubuntu开始装Nginx再做发布,只需要先下载镜像到本地 docker pull nginx 在/opt下新建文件夹API,将需 ...
- ubuntu adobe flash player 安装
常规做法 1.先更新sudo apt-get update 2. sudo apt-get install flashplugin-installer 这次却卡在downloading这里 下不去.无 ...
- 使用 Microsoft Fakes 进行单元测试
本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 在编写单元测试时,我们会遇到不同的外部依赖项,大体上可以分为两类: 依赖于接口或抽象类 依赖于具体类 ...
- unity3D——自带寻路Navmesh入门教程(二)(转)
转自:http://liweizhaolili.blog.163.com/blog/static/16230744201271210237616/ 上一节简单介绍了NavMesh寻路的基本用法,这次来 ...
- CentOS升级MySQL到5.5
centOS的yum安装的MySQL是5.1版本,可通过官方的rpm包安装5.5版本 # 查看安装的相关项 rpm -qa|grep -i mysql # 停止服务 service mysqld st ...
- C# VS JAVA 差异 (未完待续)
1. 静态构造函数 C#中有静态构造函数, Java中没有静态构造函数.其实Java中有一个类似静态构造函数的东东,称作静态初始化,或者静态代码块,可以通过这样的代码实现相同的功能: 但是Java中静 ...