(一)量子世界   

今天的计算机使用标准的(或用物理学家的话来说,“经典的”)计算模型来执行计算与处理信息,此计算模型要追溯到图灵(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量子体验的更多相关文章

  1. IBM Bluemix体验:Containers

    国际版的Bluemix目前有三个region,US South,United Kingdom和Sydney.其中US South是功能最全的,UK其次,Sydney功能最少.Containers服务在 ...

  2. IBM Bluemix体验:Containers持久存储

    上一篇介绍了在Bluemix Containers服务中使用docker hub镜像和container的高可用配置.接下来我们尝试如何在容器中使用持久存储. 在Bluemix的Containers服 ...

  3. 寒假生活第一天——Github初体验

    快开学了,今天体验了一下github这个对我来说很是神秘的东西 它的定义来源于百度百科,如有异议,那就有吧.//gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格 ...

  4. IBM Bluemix体验:Containers进阶

    上一篇中介绍了Bluemix的Containers服务以及如何使用自定义的docker image创建一个容器实例并对外提供服务.除了自定义镜像之外,Bluemix Containers还可以使用Do ...

  5. 第一天的php体验

    第一次了解php.以前对于程序猿的认知是很片面的.因为没有了解过.今天通过一天的了解交流,有了新的认知.对于这个主要应用于前端的语言还是很有兴趣的.毕竟可以亲眼看到自己做出来的网页,心里的成就感肯定满 ...

  6. IBM新合作伙伴计划助力企业转型升级

        IBM作为老牌企业,一直在引领者技术方面的变革.当IBM再一次从自我革新开始,期望能够更快的将认知计算和云推广给自己的合作伙伴和用户们,以帮助他们在新的转型期内,能够快人一步.         ...

  7. Ruby 基础教程 第一部分总结

    第一部分:Ruby 初体验 第一章: Ruby 初探 前言 开头的这一章节讲了一些十分基础的内容,重要的几个话题有: ruby 命令的执行方法 对象.方法的概念 常见的打印方法 ruby 命令的执行方 ...

  8. Docker下实战zabbix三部曲之一:极速体验

    对于想学习和实践zabbix的读者来说,在真实环境搭建一套zabbix系统是件费时费力的事情,本文内容就是用docker来缩减搭建时间,目标是让读者们尽快投入zabbix系统的体验和实践: 环境信息 ...

  9. [转帖]IBM开源Power指令集:国产高性能CPU迎来新机遇?

    IBM开源Power指令集:国产高性能CPU迎来新机遇? https://www.cnbeta.com/articles/tech/880971.htm cnbeta的新闻.. 希望高性能CPU 能快 ...

随机推荐

  1. c++ 操作注册表

    1.       注册表简介 注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件,用于存储系统和应用程序的设置信息.16位驱动在Winnt (Win ...

  2. 2.Unable to instantiate Action, templateAction, defined for 'template_list' in namespace '/'templateAction

    1.错误说没有命名空间'templateAction,但是在struts里写了这个,名字跟Action的名字是一样的,为什么会报这个错误 2.反复检查路径和名字,都没有问题 3.发现没有对其进行注入操 ...

  3. 【堆】【kd-tree】bzoj2626 JZPFAR

    用堆记录答案.看看当前点是否比堆顶更优. #include<cstdio> #include<queue> #include<cstring> #include&l ...

  4. Linq to sql 语法方法示例

    联表查询,判断追加条件,对集合分页 ) { var data = from m in _db.AppArticleComment join o in _db.AppArticle on m.Artic ...

  5. (二分)Block Towers(cf626)

    http://www.codeforces.com/contest/626/problem/C 题意是有一群小朋友在堆房子,现在有n个小孩每次可以放两个积木,m个小孩,每次可以放3个积木,最后每个小孩 ...

  6. 响应式Web设计(Responsive Web design)的理念

    页面的设计与开发应当根据用户行为以及设备环境(系统平台.屏幕尺寸.屏幕定向等)进行相应的响应和调整.具体的实践方式由多方面组成,包括弹性网格和布局.图片.CSS media query的使用等.无论用 ...

  7. Oracle删除指定用户下所有对象

    --.sql脚本 --唯一注意的是下面的d:\dropuserobj.sql为操作的.sql; --用于删除当前用户的所有对象 --use for drop all objects in curren ...

  8. PostgreSQL学习记录-- 2016-03-11

    1.日期字段 “年月日”  使用 date “年月日 时分秒” 使用 timestamp without time zone 2.布尔字段 使用 boolean 3.字符字段 使用 character ...

  9. 集群NAS技术架构

    http://blog.csdn.net/liuaigui/article/details/6422700

  10. JsRender for index 循环索引使用说明

    循环是模版引擎必不可少的一部分,而说起循环,会引出一个至关重要的因素:索引. 所谓索引,即循环次数,通过索引,可以获取当前循环是第几次. 如果读者阅读过官方文档,会见到如下获取索引的方式: data: ...