您的位置:首页 > 其它

来自量子世界的新技术---算法篇

2017-09-06 09:49 211 查看

来自量子世界的新技术—算法篇

综述

在量子世界里有两个算法非常重要,分别是shor,grover。Shor算法是用来解决大数质因子分解,如果其成功在硬件上实现,那么将会威胁到RSA加密算法;grover算法是实现无序数据库中搜索。

P,NP,NPC难题

p问题,英文全称polynomial problem多项式问题可以在多项式时间内解决的问题,

np 问题,英文全称non-deterministic polynomial,非确定性多项式问题,可以在多项式的时间里验证一个解的问题。

看概率是一头雾水,换个熟悉的角度,从算法的时间复杂度来看;

时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当问题规模扩大后,程序需要的增长的时间有多块。常见的复杂度包括,O(1),O(n),O(n!),0(n^2) ,O(a^n),O(lg(n))。其中按等级划分的话可以分为三类:

第一类非多项式(超级复杂):O(a^n),O(n!)

第二类多项式(可以接受):O(1),O(n),0(n^2)

第三类是最理想的O(lg(n))

大多数我们所说的优化,算法改进,所要做的工作就是要将时间复杂度从第一类一直降到第三类,这样计算机的处理效率就高。

第一类非多项式(超级复杂):O(a^n),O(n!),我们为了解决这类复杂度的问题叫做NP问题,当然这个很片面,但可以这样直观的去认识。

同样,我们为了 时间复杂度为O(1),O(n),0(n^2) 得问题叫做P问题。

我们的大数质因子分解的时间复杂度是O(2^(n/2)),看清楚这里的n在指数位置,也就是属于第一类。为超级复杂,我们称之为NP问题;

Shor算法的出现就是为了解决这样一个问题:将大数质因子分解的NP问题降为P问题;科学家经过n年的努力,都没有实质性的突破。大多数是受制于原来的物理计算机架构。但 有了量子计算机,并且利用其并行处理特性,是有可能实现这一类问题的转化。这个时候Shor算法就诞生了。他可以将复杂度降为
4000
O(n^2lg(lg(n)));至于怎么实现的,有兴趣可以接下去看…

算法数学推导

Shor算法的核心主要两个方面

第一:函数周期的确认

第二:量子傅里叶变化求周期

Peter W.shor首先提出了将质因子分解问题转化为周期确定性的问题。然后利用傅里叶变化找到周期

步骤一:确定函数周期

大数质因子分解问题:N为一直大奇数,N=p*q

(1),随机取出整数,y< 且gcd(y,N)= 1;可以有由辗转相除法得出,复杂度为O(n^2);

(2),定义f(x)=y^x mod N ,可以看出f(x)是一个周期函数 T= t;

则有y^x mod N = y^(x+t) mod N

故 y^x = 1 mod N

变形:(y(t/2))^2 - 1 = 0 mod N

(y(t/2))- 1) *(y(t/2))+1) = 0 mod N

用辗转相除法求出 y(t/2))+1 与N的最大公约数即可算出p

现在看看时间复杂度:计算f(x)的时间复杂度为O(n^2(lgn)(lglg(n)))

求f(x)的周期t需要量子傅里叶变化,复杂度为O(lgn)所以shor算法的时间复杂度为

O(n^2*(lgn)(lglg(n)))

重点:量子傅里叶变化

量子傅里叶变化(QFT)定义:



其中:m为量子位数,|x〉为量子态。这个式子很重要但是很抽象。

举个例子

令p = 3 , q = 5, N = 15 ,求15 的因子,

显然我们知道15的因子是 3,5。So easy,但只是举个例子。如下表格是求y^x mode N



以上可以认识到两点:

第一:具有周期性,即当 y = 2时,周期t = 4;

所以 y(t/2))+1 = 2^2 +1 = 5,所以5和15的公约数是5,那么一个因子是5。

第二:以上使用matlab工具一步步算的,计算量非常的大,N才15,计算数值已经到了14^15 ,次数就更不用说,是指数形式。在密码学rsa算法中,一般都是取512或者1024位,这样理论上可以算出来,但时间是耗几百万年。所以这是rsa加密算法安全性的原因。复杂度还是0(a^n),并没有改变。所以就要利用量子傅里叶变化。


,QFT为一个2m维的么正变换,它的作用是将一个单态转换为一个叠加态。

令m = 4时,x = 2


=

+


看出一个状态经过量子傅里叶变换后变成多个量子状态,并且其中一些量子态系数为负数,另一些状态系数为正数,这就使得经过QFT后状态的振幅分布呈现明显的集中。这为下一步对量子状态的测量而产生坍缩时,提供了较好的成功概率,这里是成功概率,因为波包塌缩测量具有概率性。

由于采用了具有周期性的余因子函数,在加上量子力学的几率幅的相因子的相干性(相长和相消)大大提高了量子傅里叶变化的效率,从而使量子傅里叶变化的位数与次数是多项式关系并非指数关系。

总结

只知道一个数展开后的形式,但如何通过波包塌缩确定周期t是一个问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: