量子计算的基本原理——本质上是在操作薛定谔的猫(同时去运算和操作死+不死两种状态)
2017-03-15 09:31
375 查看
摘自:https://www.zhihu.com/question/26933442/answer/34797301
更新了!~更新了!稍微写的更详细一点。我觉得这样应该能懂了。
请专家指正。下面论述是我个人的理解。这里是谈量子计算所以和纠缠瞬间塌缩关系不大。(当然我们也知道不能超光速传递信息。) 当然这是一种委婉的说法其实就是没有关系。量子通信是另外一个问题与这个问题无关。
量子比特的基本原理:这一部分我们会阐述二进制,二进制序列和对二进制序列的操作。
我们首先来看计算机是怎么保存数据的。计算机中,用0和1二进制序列保存数据。抽象的来看,二进制0和1分别代表了系统的两种“状态”。也就是说,我们只要能够找到一个有两个可以区分的状态的系统,就可以抽象的实现计算机的二进制。因此我们首先讨论如何在系统中实现二进制。
在经典计算机中,01由不同的电压实现,0代表低电压信号,1代表高电压信号。
在量子力学中,我们有很多天然的双态系统来实现这种两个可区分的状态(不需要太纠结量子力学的态表示什么)。比如自旋1/2系统,这在量子力学中对应自旋向上/向下两种状态的系统;或者更经典的光子的极化,比如一束光具有不同的偏振状态(比如左旋/右旋偏振光)。总之,我们能够在量子力学中找到实现二进制的系统。
在实现二进制之后,我们的下一步是需要得到二进制序列。
在经典计算机中,二进制序列由一个高低电压交错的脉冲实现。比如001对应于一个低电压-低电压-高电压的信号。在量子力学中,我们通过纠缠态实现二进制序列。具体而言,比如某个光子处于态
上, 我们可以把这个光子和其它光子纠缠起来得到一个N光子纠缠态
,这样我们就实现了一个二进制的序列。
在这里,量子世界和经典世界出现了不同。在经典世界中,我们只能同时拥有一个状态。比如,如果我们拥有了001态,我们就不能同时拥有010态,这是因为两个态的电压会叠加,如果同时拥有这两个态的话我们只能够得到011态。但是在量子世界中,我们可以得到叠加态。具体来说,系统的状态可以同时处于
态。其中叠加系数a,b的模方表示我们在测量中得到相应态的概率。比如,我们得到
的概率是
。当然概率归一化要求
。
我们阐述的态叠加原理会导致什么后果呢?比如我们通过Hadamard门制备了一个态,
并用这个态制备一个N光子纠缠态
, 那么我们看到,这个态就同时处于
到
的等概率叠加态。(最简单的例子,比如
)
这个事实说明了什么呢?与经典算法不同,我们的操作可以同时对上面的所有态进行。因此,如果我们能够找到一种有效的算法来同时处理这些态,那么我们就能够进行并行计算,因此我们算法的速度比起经典就大大提高了。这个并行与经典的并行算法的区别在于,经典的并行是把任务分成小的部分(比如算一个加法12+34,我们可以同时加十位和加各位然后最后加上两个结果),量子并行是同时处理了很多不一样的状态(同时计算了12+34,23+45, ...)。
更新了!~更新了!稍微写的更详细一点。我觉得这样应该能懂了。
请专家指正。下面论述是我个人的理解。这里是谈量子计算所以和纠缠瞬间塌缩关系不大。(当然我们也知道不能超光速传递信息。) 当然这是一种委婉的说法其实就是没有关系。量子通信是另外一个问题与这个问题无关。
量子比特的基本原理:这一部分我们会阐述二进制,二进制序列和对二进制序列的操作。
我们首先来看计算机是怎么保存数据的。计算机中,用0和1二进制序列保存数据。抽象的来看,二进制0和1分别代表了系统的两种“状态”。也就是说,我们只要能够找到一个有两个可以区分的状态的系统,就可以抽象的实现计算机的二进制。因此我们首先讨论如何在系统中实现二进制。
在经典计算机中,01由不同的电压实现,0代表低电压信号,1代表高电压信号。
在量子力学中,我们有很多天然的双态系统来实现这种两个可区分的状态(不需要太纠结量子力学的态表示什么)。比如自旋1/2系统,这在量子力学中对应自旋向上/向下两种状态的系统;或者更经典的光子的极化,比如一束光具有不同的偏振状态(比如左旋/右旋偏振光)。总之,我们能够在量子力学中找到实现二进制的系统。
在实现二进制之后,我们的下一步是需要得到二进制序列。
在经典计算机中,二进制序列由一个高低电压交错的脉冲实现。比如001对应于一个低电压-低电压-高电压的信号。在量子力学中,我们通过纠缠态实现二进制序列。具体而言,比如某个光子处于态
上, 我们可以把这个光子和其它光子纠缠起来得到一个N光子纠缠态
,这样我们就实现了一个二进制的序列。
在这里,量子世界和经典世界出现了不同。在经典世界中,我们只能同时拥有一个状态。比如,如果我们拥有了001态,我们就不能同时拥有010态,这是因为两个态的电压会叠加,如果同时拥有这两个态的话我们只能够得到011态。但是在量子世界中,我们可以得到叠加态。具体来说,系统的状态可以同时处于
态。其中叠加系数a,b的模方表示我们在测量中得到相应态的概率。比如,我们得到
的概率是
。当然概率归一化要求
。
我们阐述的态叠加原理会导致什么后果呢?比如我们通过Hadamard门制备了一个态,
并用这个态制备一个N光子纠缠态
, 那么我们看到,这个态就同时处于
到
的等概率叠加态。(最简单的例子,比如
)
这个事实说明了什么呢?与经典算法不同,我们的操作可以同时对上面的所有态进行。因此,如果我们能够找到一种有效的算法来同时处理这些态,那么我们就能够进行并行计算,因此我们算法的速度比起经典就大大提高了。这个并行与经典的并行算法的区别在于,经典的并行是把任务分成小的部分(比如算一个加法12+34,我们可以同时加十位和加各位然后最后加上两个结果),量子并行是同时处理了很多不一样的状态(同时计算了12+34,23+45, ...)。
相关文章推荐
- java--编写一个JFrame,标题为“计算的窗口”,在该窗口中组件的布局是FlowLayout。窗口中添加两个文本区,当我们在一个文本区中输入若干个数时,另一个文本区同时对输入的数进行求和运算并求
- shell同时启多个进程,并等待所有子进程结束,再做接下来的操作,最好能获取每个子进程的退出状态
- 在小工具中维护状态(在一个浏览器里同时登陆两个账号同时进行操作的实现)
- 比如你给它任意一个正整数,它可以按照一定的运算规则, 计算出得到1的最少操作次数。
- 这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询。这些是所有 Oracle 开发者都必备的技能,所以快快收藏吧!
- 记忆化搜索也是递归剪枝的一种,他记录计算过的状态节点如果遇到就爆栈不再深入,防止了重复计算,同时最优性剪枝也有相同的意味
- Java 位运算系列之通过位运算操作状态
- poj 2414 Phylogenetic Trees Inherited 完全二叉树 状态压缩位运算模拟集合操作 动态规划
- 练习LINQ:同时操作二维和一维数组,把二维数组转为一维,计算一维和二维值,字符串组合,计算数组和,数组筛选,排序
- VS2017 启动调试出现 无法启动程序“http://localhost:15613” 操作在当前状态中是非法的。 同时附加进程也是错误的解决方法
- Mohican_4/1 C语言 移位运算基本操作 计算二进制的个数
- 量子计算与通讯的基本原理(量子纠缠)
- 神经网络中embedding层作用——本质就是word2vec,数据降维,同时可以很方便计算同义词(各个word之间的距离),底层实现是2-gram(词频)+神经网络
- JAVA--编写一个JFrame,标题为“计算的窗口”,在该窗口中组件的布局是FlowLayout。窗口中添加两个文本区,当我们在一个文本区中输入若干个数时,另一个文本区同时对输入的数进行求和运算并求
- 做一个计时器示例 在页面上有一个文本框和一个普通按钮 在状态栏上显示,单击按钮,开始计时的提示信息 单击按钮时,在文本框显示计数的过程,同时要求按钮上的字,显示为“单击暂停” 此时单击按钮,暂停计时,同时按钮上的字显示为“继续计时”,要求这两种状态来回切换,来完成计数器的功能
- 关于状态码中二进制计算操作的问题(&,^,|)
- 状态与策略——审批操作的两种方案
- 多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。
- 关于在界面中反馈长时间运算的状态的方法
- 大整数阶乘的运算(可以计算1000!)