前言:
此时姐妹们对“算法的时间复杂性与问题的什么相关”都比较看重,你们都需要了解一些“算法的时间复杂性与问题的什么相关”的相关内容。那么小编在网摘上搜集了一些有关“算法的时间复杂性与问题的什么相关””的相关内容,希望同学们能喜欢,各位老铁们快快来了解一下吧!个人电脑
如果您正在阅读本文,您使用的是个人电脑(PC)。它可能有不同的形式,例如手机或笔记本电脑,但底层机制是相同的。
比特
个人电脑使用位进行所有操作。我们可以把比特想象成电灯开关。一点点的值可以是0或1。如果值为1,开关打开,灯泡就会亮起。如果值为0,则开关关闭,灯泡不会亮起。
比特插图。图片由作者提供。
重要的是要记住,PC中的位是独立的。如果你打开客厅的灯,厨房的灯也不会打开。
量子计算机
你可能没有在量子计算机(QC)上阅读这篇文章。量子计算机的构造与普通手机或笔记本电脑完全不同。
库比特
量子计算机使用所谓的量子比特,而不是比特。将量子比特想象成一个球体,箭头指向任何值。
量子比特令人兴奋的是,它可以存在于状态的叠加中。与充当电灯开关的位不同,我们在测量量子位元之前不知道它的值。如果你让厨房的灯开着,你可以确定它们在你回来时是开着的。
差异
为了了解量子计算机的作用,我们可以将普通计算机中的位与量子计算机中的量子位进行比较。第一个显著的区别是叠加。
叠加
还记得你高中时代吗?你还记得薛定谔的猫吗?如果你不这样做,那就是思想实验,将一只猫放在一个盒子里,盒子里的元素有50-50的机会释放毒药。盒子是关着的,作为观察者,在打开盒子之前,我们不知道猫是死了还是活着。
薛定谔的猫。Caro Asercion,CC BY 3.0 <;,通过维基共享资源。
同样的原则也适用于量子比特。在测量之前,我们不知道量子比特是1还是0。量子比特所处的状态可以看作是一种概率。
在上图中,当我们测量状态时,它有50%的概率是0或1。如果箭头更指向0,则测量时状态为0的概率会上升。
这种现象被称为叠加。与具有持久状态的经典位不同,量子位可以存在于状态的叠加中。曲比特可以是0、1或这些状态的任何同步叠加。只有在测量期间,量子比特才会坍缩成0或1。同样的原则也适用于薛定谔的猫。只有当我们打开盒子时,我们才能知道猫是死了还是活着。
纠缠
正如我们之前发现的,位是独立的。一个位的状态不会影响另一个位的状态。例如,打开厨房灯不会自动打开客厅的灯。
然而,在量子计算中,量子比特不是独立的。相反,量子比特相互纠缠。这意味着一个量子比特的状态与所有其他量子比特的状态直接相关。
干扰
这听起来很棘手。如果你在测量之前不知道每个状态,你怎么能计算?答案是干扰。每个量子比特可以用波函数来描述。如前所述,量子比特是纠缠的,整体波函数是所有量子比特的干扰。
当多个波函数相加时,就会发生干扰。它可以是建设性的,也可以是破坏性的。下面的图表可视化了这一点。
建设性和破坏性干扰图。
在2秒前,单个波加在一起,这是建设性的干扰。2秒后,波浪抵消,造成破坏性干扰。
量子算法旨在使用干扰和纠缠来操纵这些概率,以便在测量时更有可能观察到正确答案。
干扰概率图。图片由作者提供。
从理论上讲,如果进行足够的测量,将以高概率给出正确答案。
PC与QC
在讨论了常规位和量子位之间的区别后,很自然地问,使用量子计算机有什么好处?为了说明这一点,我们将举一个例子,我们将尝试使用普通PC和量子计算机破解密码。
示例:
假设你想破解一个有两个二进制数字的密码。然后,所有可能的密码组合都是:
00011011
每次您尝试破解密码时,都需要1、2、3或4次尝试。让我们试试这个。我们选择密码10。在我们第一次尝试中,我们将检查每个可能的答案。
00 - 错误01 - 错误10 - 正确11
不出所料,最终花了三次尝试才找到正确答案。如果我告诉你,通过量子计算,你可以使用格罗弗的算法在一次尝试中可靠地找到答案呢?我们构造了以下量子电路,实现了算法。
量子电路。图片由作者使用Qiskit提供。
我们一次运行该程序,并多次测量量子比特,以实现以下概率分布。根据我们的测量结果,概率最高的数字是10。我们找到了正确的密码。
准概率图。
计算成本
当今计算的最大问题之一是与不同操作相关的计算成本。如果我们再看上面的例子,我们知道对于2位,我们最多需要四次尝试才能找到正确答案。如果我们有3个比特呢?
2位:2 * 2 = 43位:2 * 2 * 2 = 84位:2 * 2 * 2 * 2 = 165位:2 * 2 * 2 * 2 * 2 * 2 = 326位:2 * 2 * 2 * 2 * 2 * 2 * 2 = 64复杂度:2^N
随着我们在密钥代码中添加更多位,计算它的复杂性呈指数级增长,2为N的幂,其中N是位数。
事实证明,使用量子计算可以降低某些问题的计算复杂性。例如,我们之前使用的格罗弗算法具有2^(N/2)的复杂度。如果我们比较这两种方法,我们会发现不可能使用大N的普通PC来计算数字,但可以使用量子计算来计算。
PC:2^50 = 1,125,899,906,842,624质量控制:2^(50/2)= 33,554,432
假设每次尝试需要一毫秒。然后,使用普通计算机,需要35,702年才能解决这个问题。然而,如果我们改用量子计算机,理论上需要9个小时。
电脑:1,125,899,906,842,624 * 0.001 / (24*3600*365) = 35702.0518QC:33,554,432 * 0.001 / (3600) = 9.32067556PC:35702年质量控制:9.32小时结论
量子计算机是由与家中的普通PC完全不同的架构构建的。量子计算使用量子比特,而不是独立位,量子比特是叠加的,相互纠缠在一起。这种新的计算方式为开发许多新算法打开了大门,从理论上讲,这些算法可以降低许多问题的时间复杂性。
量子计算
科学
标签: #算法的时间复杂性与问题的什么相关