《基于张量网络的机器学习入门》学习笔记8(Shor算法)

《基于张量网络的机器学习入门》学习笔记8(Shor算法)基于张量网络的机器学习入门 学习笔记 8Shor 算法来源 Shor 算法的大致流程因数分解周期求取与量子傅里叶变换 QFT Shor 算法来源 4 年 应用数学家 ShorShorShor 提出了一个实用的量子算法 通常称为 ShorShorShor 算法 其思想是将整数质因子分解问题转化为求解量子傅里叶变换的周期 将多个输入制备为量子态叠加 进行并行处理和操作 从而达到了量子加速的目的 可以在多项式时间内完成大整数质因数分解 所以 ShorShorShor 算法从诞生之时 就和以 RSARSA

Shor算法

来源

1994 1994 1994年,应用数学家 S h o r Shor Shor提出了 一个实用的量子算法,通常称为 S h o r Shor Shor算法。其思想是将整数质因子分解问题转化为求解量子傅里叶变换的周期, 将多个输入制备为量子态叠加, 进行并行处理和操作, 从而达到了量子加速的目的,可以在多项式时间内完成大整数质因数分解。所以 S h o r Shor Shor算法从诞生之时,就和以 R S A RSA RSA算法为根基的加密技术形成了不可调和的矛盾。

Shor算法的大致流程

完整的 S h o r Shor Shor算法需要经典计算机和量子计算机协作完成。其中量子计算机实现一个周期查找的函数,经典计算机负责整个算法流程的控制,以及调用量子算法。我们可以简单的讲 S h o r Shor Shor算法分成两个部分:
1.第一部分是讲因子分解问题转化为成周期问题,这部分可以用传统方式实现。
2.第二部分则是使用量子手段来搜寻这个周期,这一部分是 S h o r Shor Shor算法中体现量子加速的主要部分!

因数分解

假设待分解的整数为 N N N,分解步骤为:
1.选择任意数字 1 < a < N 1
1<a<N

2.计算 g c d ( a , N ) gcd(a,N) gcd(a,N),要满足 g c d ( a , N ) = 1 gcd(a,N)=1 gcd(a,N)=1,即 a a a N N N互质,否则返回第一步;
3.构造函数 f ( x ) = a x m o d N f(x)=a^xmodN f(x)=axmodN,并且寻找最小周期 r r r,使得 f ( x + r ) = f ( x ) f(x+r)=f(x) f(x+r)=f(x);(此为量子计算步骤)
4.若 r r r为奇数,则返回第一步;
5.若 a r 2 m o d N = − 1 a^{\frac{r}{2}}modN=-1 a2rmodN=1,返回第一步;若 a r 2 m o d N ≠ − 1 a^{\frac{r}{2}}modN\ne-1 a2rmodN=1,则 g c d ( a r 2 ± 1 , N ) gcd(a^{\frac{r}{2}}\pm1,N) gcd(a2r±1,N)所求的质因数为 p = g c d ( g c d ( a r 2 + 1 , N ) , q = g c d ( g c d ( a r 2 − 1 , N ) p=gcd(gcd(a^{\frac{r}{2}}+1,N),q=gcd(gcd(a^{\frac{r}{2}}-1,N) p=gcd(gcd(a2r+1,N),q=gcd(gcd(a2r1,N),至此,完成分解。




周期求取与量子傅里叶变换(QFT)

对两组有 m m m个量子比特的存储器进行幺正变换得到纠缠状态:
∑ i = 0 2 m − 1 ∣ x i ⟩ ⊗ ∣ f ( x i ) ⟩ , f ( x ) = a x m o d N \sum\limits_{i=0}^{2^m-1}|x_i\rangle\otimes|f(x_i)\rangle,f(x)=a^xmodN i=02m1xif(xi),f(x)=axmodN
对量子位进行傅里叶变换,即:
Q F T : ∣ x ⟩ → 1 2 m ∑ k = 0 2 m − 1 e 2 π k x / 2 m ∣ k ⟩ QFT:|x\rangle\to\frac{1}{\sqrt{2^m}}\sum\limits_{k=0}^{2^m-1}e^{2\pi kx/2^m}|k\rangle QFT:x2m
1
k=02m1e2πkx/2mk

可以看出,量子傅里叶变换就是将态前面的叠加系数变为原叠加系数的离散傅里叶变换。
将两个寄存器 R 1 R_1 R1 R 2 R_2 R2初始化为 0 0 0,即:
∣ Ψ 0 ⟩ = ∣ R 1 ⟩ ∣ R 2 ⟩ = ∣ 0 ⟩ ∣ 0 ⟩ = ∣ 00 …   ⟩ ∣ 00 …   ⟩ |\Psi_0\rangle=|R_1\rangle|R_2\rangle=|0\rangle|0\rangle=|00\dots\rangle|00\dots\rangle Ψ0=R1R2=00=0000
其中, R 1 R_1 R1存放函数的输入变量, R 2 R_2 R2存放计算结果。接着,对 R 1 R_1 R1中的每一位作 H H H变换,有:
H : ∣ Ψ 0 ⟩ → ∣ Ψ 1 ⟩ = 1 2 m ∑ x = 0 2 m − 1 ∣ x ⟩ ∣ 0 ⊗ f ( x ) ⟩ = 1 2 m ∑ x = 0 2 m − 1 ∣ x ⟩ ∣ a x m o d N ⟩ H:|\Psi_0\rangle\to|\Psi_1\rangle=\frac{1}{\sqrt{2^m}}\sum\limits_{x=0}^{2^m-1}|x\rangle|0\otimes f(x)\rangle=\frac{1}{\sqrt{2^m}}\sum\limits_{x=0}^{2^m-1}|x\rangle|a^xmodN\rangle H:Ψ0Ψ1=2m
1
x=02m1x0
f(x)=2m
1
x=02m1xaxmodN

此时, R 1 R_1 R1 R 2 R_2 R2处于纠缠状态。
测量 ∣ R 2 ⟩ |R_2\rangle R2,并假设其态坍缩为 z = a l m o d N z=a^lmodN z=almodN。因为 f ( x ) f(x) f(x)的周期为 r r r,所以 a l m o d N = a l + j r m o d N ( l < r , j = 0 , 1 , ⋯   , A ) , A a^lmodN=a^{l+jr}modN(l
almodN=al+jrmodN(l<r,j=0,1,,A),A
是小于 ( 2 m − l ) / r (2^m-l)/r (2ml)/r的最大整数,因此有:
x = l , l + r , ⋯   , l + A r x=l,l+r,\cdots,l+Ar x=l,l+r,,l+Ar
∣ R 2 ⟩ |R_2\rangle R2坍缩时, ∣ R 1 ⟩ |R_1\rangle R1相对应地坍缩为:
∣ R 1 ⟩ = 1 A + 1 ∑ j = 0 A ∣ l + j r ⟩ |R_1\rangle=\frac{1}{\sqrt{A+1}}\sum\limits_{j=0}^A|l+jr\rangle R1=A+1
1
j=0Al+
jr

可见, ∣ R 1 ⟩ |R_1\rangle R1是以 r r r为周期的一组态的叠加。若 2 m 2^m 2m r r r的整数倍,设 A = 2 m / r − 1 A=2^m/r-1 A=2m/r1,有:
∣ R 1 ⟩ = r 2 m ∑ j = 0 2 m / r − 1 ∣ l + j r ⟩ = ∑ x = 0 2 m / r − 1 f ( x ) ∣ x ⟩ |R_1\rangle=\sqrt{\frac{r}{2^m}}\sum\limits_{j=0}^{2^m/r-1}|l+jr\rangle=\sum\limits_{x=0}^{2^m/r-1}f(x)|x\rangle R1=2mr
j=02m/r1l+
jr=x=02m/r1f(x)x

其中,若 x − l x-l xl r r r的整数倍,那么 f ( x ) = r / 2 m f(x)=\sqrt{r/2^m} f(x)=r/2m
;否则, f ( x ) = 0 f(x)=0 f(x)=0.
此时,对 ∣ R 1 ⟩ |R_1\rangle R1作量子傅里叶变换,有:
∣ R 1 ⟩ Q F T = ∑ c ∼ f ( c ) ∣ c ⟩ , f ~ ( c ) = r 2 m ∑ j = 0 2 m / r − 1 e 2 π ( l + j r ) c / 2 m = r 2 m e 2 π j r c / 2 m c |R_1\rangle_{QFT}=\sum_c\nolimits^{\sim}f(c)|c\rangle,\tilde{f}(c)=\frac{\sqrt{r}}{2^m}\sum\limits_{j=0}^{2^m/r-1}e^{2\pi(l+jr)c/2^m}=\frac{\sqrt{r}}{2^m}e^{2\pi jrc/2^m}c R1QFT=cf(c)c,f~(c)=2mr
j=02m/r1e2π(l+jr)c/2m=
2mr
e2πjrc/2mc

c c c 2 m / r 2^m/r 2m/r的整数倍时, r 2 m ∑ j = 0 2 m / r − 1 e 2 π ( l + j r ) c / 2 m = 2 m r \frac{\sqrt{r}}{2^m}\sum\limits_{j=0}^{2^m/r-1}e^{2\pi(l+jr)c/2^m}=\frac{2^m}{r} 2mr
j=02m/r1e2π(l+jr)c/2m=
r2m
,否则 r 2 m ∑ j = 0 2 m / r − 1 e 2 π ( l + j r ) c / 2 m = 0 \frac{\sqrt{r}}{2^m}\sum\limits_{j=0}^{2^m/r-1}e^{2\pi(l+jr)c/2^m}=0 2mr
j=02m/r1e2π(l+jr)c/2m=
0

量子傅里叶变换增强了所需要的结果,使不需要的结果的概率为 0 0 0。由此可得,若 c c c 2 m / r 2^m/r 2m/r的整数倍 k k k时,有:
∣ R 1 ⟩ Q F T = 1 r ∑ k = 0 r − 1 e 2 π l k ∣ k 2 m r ⟩ |R_1\rangle_{QFT}=\frac{1}{\sqrt{r}}\sum\limits_{k=0}^{r-1}e^{2\pi lk}|\frac{k2^m}{r}\rangle R1QFT=r
1
k=0r1e2πlkrk2m

即周期从 r r r变为 2 m / r 2^m/r 2m/r
此时测量 ∣ R 1 ⟩ |R_1\rangle R1_{QFT},得到 c ′ = k 2 m r c^{‘}=\frac{k2^m}{r} c=rk2m,故 c ′ 2 m = k r \frac{c^{‘}}{2^m}=\frac{k}{r} 2mc=rk。因为 c ′ c^{‘} c 2 m 2^m 2m均已知,若 g c d ( k , r ) = 1 gcd(k,r)=1 gcd(k,r)=1,则可求出 r r r。最大的 r r r记为所求的 f ( x ) f(x) f(x)的周期。
S h o r Shor Shor算法用于例 1 1 1可得:
∣ Ψ 3 ⟩ = 1 2 4 ∑ x = 0 2 4 − 1 ∣ x ⟩ ∣ a x m o d N ⟩ = 1 2 4 ( ∣ 0 , 1 ⟩ + ∣ 1 , 7 ⟩ + ∣ 2 , 4 ⟩ + ∣ 3 , 13 ⟩ + ∣ 4 , 1 ⟩ + ⋯ + ∣ 15 , 13 ⟩ ) = 1 2 4 [ ( ∣ 0 ⟩ + ∣ 4 ⟩ + ∣ 8 ⟩ + ∣ 12 ⟩ ) ⊗ ∣ 1 ⟩ + ⋯   ] |\Psi_3\rangle=\frac{1}{\sqrt{2^4}}\sum\limits_{x=0}^{2^4-1}|x\rangle|a^xmodN\rangle=\frac{1}{\sqrt{2^4}}(|0,1\rangle+|1,7\rangle+|2,4\rangle+|3,13\rangle+|4,1\rangle+\cdots+|15,13\rangle)\\ =\frac{1}{\sqrt{2^4}}[(|0\rangle+|4\rangle+|8\rangle+|12\rangle)\otimes|1\rangle+\cdots] Ψ3=24
1
x=0241xaxmodN=
24
1
(0,1+
1,7+2,4+3,13+4,1++15,13)=24
1
[(0+
4+8+12)1+]

投影算符 P ∣ 1 ⟩ = ∣ 1 ⟩ ⟨ 1 ∣ P_{|1\rangle}=|1\rangle\langle1| P1=11,有:
∣ Ψ 4 ⟩ = 1 2 4 = 1 2 4 ( ∣ 0 ⟩ + ∣ 4 ⟩ + ∣ 8 ⟩ + ∣ 12 ⟩ ) ⊗ ( ∣ 1 ⟩ ⟨ 1 ∣ ) ∣ 1 ⟩ |\Psi_4\rangle=\frac{1}{\sqrt{2^4}}=\frac{1}{2^4}(|0\rangle+|4\rangle+|8\rangle+|12\rangle)\otimes(|1\rangle\langle1|)|1\rangle Ψ4=24
1
=
241(0+4+8+12)(11)1

已知,对 ∣ x ⟩ |x\rangle x作傅里叶变换为:
Q F T : ∣ x ⟩ → 1 2 m ∑ k = 0 2 m − 1 e 2 π i k x / 2 m ∣ k ⟩ = 1 2 4 ∑ k = 0 2 4 − 1 e 2 π i k x / 16 ∣ k ⟩ QFT:|x\rangle\to\frac{1}{\sqrt2^m}\sum\limits_{k=0}^{2^m-1}e^{2\pi ikx/2^m}|k\rangle=\frac{1}{\sqrt{2^4}}\sum\limits_{k=0}^{2^4-1}e^{2\pi ikx/16}|k\rangle QFT:x2
m
1
k=02m1e2πikx/2mk=
24
1
k=0241e2πikx/16k

那么对 ∣ 0 ⟩ , ∣ 4 ⟩ , ∣ 8 ⟩ , ∣ 12 ⟩ |0\rangle,|4\rangle,|8\rangle,|12\rangle 0,4,8,12分别做傅里叶变换,有:
在这里插入图片描述
将上述四个式子相加可得:
1 4 ( ∣ 0 ⟩ + ∣ 4 ⟩ + ∣ 8 ⟩ + ∣ 12 ⟩ ) \frac{1}{\sqrt{4}}(|0\rangle+|4\rangle+|8\rangle+|12\rangle) 4
1
(0+
4+8+12)

由此,可以得到周期为 r = 4 r=4 r=4,且 a r 2 m o d N = 7 4 2 m o d 15 = 4 ≠ 1 a^{\frac{r}{2}}modN=7^{\frac{4}{2}}mod15=4\ne1 a2rmodN=724mod15=4=1,那么有 p = g d c ( 50 , 15 ) = 5 , q = g c d ( 48 , 15 ) = 3 p=gdc(50,15)=5,q=gcd(48,15)=3 p=gdc(50,15)=5,q=gcd(48,15)=3
S h o r Shor Shor算法不能保证每次运行都能得到正确的结果。假设成功的概率是 1 − j 1-j 1j,通过重复 k k k次实验,至少成功一次的概率为 1 − j k 1-j^k 1jk。不难看出,可以通过增加实验的次数来提高实验成功的概率。所以 S h o r Shor Shor算法是一种随机算法。


































版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216501.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午11:43
下一篇 2026年3月18日 上午11:43


相关推荐

  • linux idea 激活码【2022.01最新】

    (linux idea 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~0HKL…

    2022年3月31日
    395
  • idea 2022 激活码永久 mac【2022.01最新】2022.02.27

    (idea 2022 激活码永久 mac)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html2K…

    2022年4月1日
    215
  • 转–《煮酒探西游》吴闲云

    转–《煮酒探西游》吴闲云煮酒探西游吴闲云目录(1)唐僧的父母之谜(2)《西游记》中最大的秘密(3)殷小姐为什么要绣球招亲(4)唐僧的亲爹究竟是谁(5)小姐为什么要弃婴江中(6)唐僧复仇(7)观音菩萨的黑帐(8)唐僧的相貌之谜(9)唐僧为什么要取经(10)唐太宗地府还魂(11)真经究竟有什么作用(12)取经难,传经更难(13)观音菩萨是一个什么样的人

    2022年6月6日
    47
  • java基础内容总结

    java基础内容总结

    2021年9月29日
    48
  • 中文乱码合集

    中文乱码合集-Dfile.encoding=UTF-8

    2022年7月11日
    106
  • windows查看mysql服务_win10启动错误

    windows查看mysql服务_win10启动错误2.Mysql不同的日志文件。日志文件记如文件中的信息类型log-error(错误日志)记录启动、运行或停止mysql时候出现的问题。log_queries(查询日志)记录建立的客户端连接和执行的语句。log_slave_updates(更新日志)记录更改数据的语句。不赞成使用该日志。log-bin(二进制日志)记录所有更改数据的语句。还用于复制。log_show_queries…

    2022年10月14日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号