《基于张量网络的机器学习入门》学习笔记8

  • Shor算法
    • 来源
    • Shor算法的大致流程
      • 因数分解
      • 周期求取与量子傅里叶变换(QFT)

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<a<N 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 a2r​modN=−1,返回第一步;若 a r 2 m o d N ≠ − 1 a^{\frac{r}{2}}modN\ne-1 a2r​modN​=−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(a2r​−1,N),至此,完成分解。

下面我们看一个具体的例子:
例用 S h o r Shor Shor算法对 N = 15 N=15 N=15进行分解。
不妨取 a = 7 a=7 a=7,其满足 g c d ( 7 , 15 ) = 1 gcd(7,15)=1 gcd(7,15)=1,因此,构造函数为 f ( x ) = 7 x m o d 15 f(x)=7^xmod15 f(x)=7xmod15,有:
f ( 0 ) = 7 0 m o d 15 = 1 , f ( 1 ) = 7 1 m o d 15 = 7 , f ( 2 ) = 7 2 m o d 15 = 4 , f ( 3 ) = 7 3 m o d 15 = 13 , f ( 4 ) = 7 4 m o d 15 = 1 , f ( 5 ) = 7 5 m o d 15 = 7 , f ( 6 ) = 7 6 m o d 15 = 4 , f ( 7 ) = 7 7 m o d 15 = 13 , f ( 85 ) = 7 8 m o d 15 = 1 , f ( 9 ) = 7 9 m o d 15 = 7 , f ( 10 ) = 7 10 m o d 15 = 4 , f ( 11 ) = 7 11 m o d 15 = 13. f(0)=7^0mod15=1,f(1)=7^1mod15=7,f(2)=7^2mod15=4,f(3)=7^3mod15=13,\\ f(4)=7^4mod15=1,f(5)=7^5mod15=7,f(6)=7^6mod15=4,f(7)=7^7mod15=13,\\ f(85)=7^8mod15=1,f(9)=7^9mod15=7,f(10)=7^{10}mod15=4,f(11)=7^{11}mod15=13. f(0)=70mod15=1,f(1)=71mod15=7,f(2)=72mod15=4,f(3)=73mod15=13,f(4)=74mod15=1,f(5)=75mod15=7,f(6)=76mod15=4,f(7)=77mod15=13,f(85)=78mod15=1,f(9)=79mod15=7,f(10)=710mod15=4,f(11)=711mod15=13.
不难看出,周期 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\ne-1 a2r​modN=724​mod15=4​=−1,那么有
p = g c d ( 50 , 15 ) = 5 , q = g c d ( 48 , 15 ) = 3 p=gcd(50,15)=5,q=gcd(48,15)=3 p=gcd(50,15)=5,q=gcd(48,15)=3
传统计算机储存的是数据,而量子计算机储存的是分解后的结果,这一步不需要任何计算成本。量子计算机再分解的时候其实就是储存的过程,每个正交状态对应一个素数,存储的过程天然就分解了这个数。尽量不要把 1 , 0 1,0 1,0的传统概念套上去,并不利于理解。比如 15 15 15怎么在量子态下表示?首先找到对应的正交态,则自然是素数了, 15 = 3 × 5 15=3\times5 15=3×5,那么, ∣ 15 ⟩ = ∣ 3 ⟩ + ∣ 5 ⟩ |15\rangle=|3\rangle+|5\rangle ∣15⟩=∣3⟩+∣5⟩就可以了,这里的正交态对应的就是传统的 1 , 0 1,0 1,0。

周期求取与量子傅里叶变换(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=0∑2m−1​∣xi​⟩⊗∣f(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:∣x⟩→2m ​1​k=0∑2m−1​e2πkx/2m∣k⟩
可以看出,量子傅里叶变换就是将态前面的叠加系数变为原叠加系数的离散傅里叶变换。
将两个寄存器 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​⟩=∣R1​⟩∣R2​⟩=∣0⟩∣0⟩=∣00…⟩∣00…⟩
其中, 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=0∑2m−1​∣x⟩∣0⊗f(x)⟩=2m ​1​x=0∑2m−1​∣x⟩∣axmodN⟩
此时, 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<r,j=0,1,\cdots,A),A almodN=al+jrmodN(l<r,j=0,1,⋯,A),A是小于 ( 2 m − l ) / r (2^m-l)/r (2m−l)/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=0∑A​∣l+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/r−1,有:
∣ 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=0∑2m/r−1​∣l+jr⟩=x=0∑2m/r−1​f(x)∣x⟩
其中,若 x − l x-l x−l为 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 ∣R1​⟩QFT​=∑c∼​f(c)∣c⟩,f~​(c)=2mr ​​j=0∑2m/r−1​e2π(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=0∑2m/r−1​e2π(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=0∑2m/r−1​e2π(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 ∣R1​⟩QFT​=r ​1​k=0∑r−1​e2πlk∣rk2m​⟩
即周期从 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=0∑24−1​∣x⟩∣axmodN⟩=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| P∣1⟩​=∣1⟩⟨1∣,有:
∣ Ψ 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⟩)⊗(∣1⟩⟨1∣)∣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:∣x⟩→2 ​m1​k=0∑2m−1​e2πikx/2m∣k⟩=24 ​1​k=0∑24−1​e2πikx/16∣k⟩
那么对 ∣ 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 a2r​modN=724​mod15=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 1−j,通过重复 k k k次实验,至少成功一次的概率为 1 − j k 1-j^k 1−jk。不难看出,可以通过增加实验的次数来提高实验成功的概率。所以 S h o r Shor Shor算法是一种随机算法。

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

  1. 《基于张量网络的机器学习入门》学习笔记7

    <基于张量网络的机器学习入门>学习笔记7 量子算法 什么是量子算法 三个经典量子算法 Grover算法 背景 基本原理 例题 量子算法 什么是量子算法 例如我们求解一个问题,一个111千克 ...

  2. 《基于张量网络的机器学习入门》学习笔记6

    <基于张量网络的机器学习入门>学习笔记6 密度算符(密度矩阵) 具体到坐标表象 在纯态上 在混合态上 纯态下的密度算符 混合态下的密度算符 密度算符的性质 量子力学性质的密度算符描述 第一 ...

  3. 《基于张量网络的机器学习入门》学习笔记5

    <基于张量网络的机器学习入门>学习笔记5 量子概率体系 事件 互斥事件 概率与测量 不相容属性对 相容属性对 量子概率与经典概率的区别 量子测量 量子概率体系 我们将经典的实数概率扩展到复 ...

  4. 《基于张量网络的机器学习入门》学习笔记4

    <基于张量网络的机器学习入门>学习笔记4 量子概率 将概率复数化 分布与向量的表示 事件与Hilbert空间 不兼容属性及其复数概率表示 为什么一定要复数概率 量子概率 将概率复数化 在经 ...

  5. 《基于张量网络的机器学习入门》学习笔记2

    <基于张量网络的学习入门>学习笔记2 量子逻辑门 单量子逻辑门 恒等操作 泡利-X门(Pauli-X gate) 泡利-Y门(Pauli-Y gate) 泡利-Z门(Pauli-Z gat ...

  6. 《基于张量网络的机器学习入门》学习笔记1

    <基于张量网络的学习入门>学习笔记1 量子力学的三大奥义 什么是量子 量子力学的三大奥义--叠加.测量和纠缠 第一大奥义:量子的叠加态 第二大奥义:量子的测量 第三大奥义:量子的纠缠态 量 ...

  7. Kaggle教程 机器学习入门学习笔记

    机器学习入门学习笔记 [跳转]<Kaggle教程 机器学习入门>系列课程目录 >> 决策树 简介:是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零 ...

  8. 机器学习入门学习笔记:(4.2)SVM的核函数和软间隔

    前言 之前讲了有关基本的SVM的数学模型(机器学习入门学习笔记:(4.1)SVM算法).这次主要介绍介绍svm的核函数.软间隔等概念,并进行详细的数学推导.这里仅将自己的笔记记录下来,以便以后复习查看 ...

  9. 机器学习入门学习笔记:(3.2)ID3决策树程序实现

    前言 之前的博客中介绍了决策树算法的原理并进行了数学推导(机器学习入门学习笔记:(3.1)决策树算法).决策树的原理相对简单,决策树算法有:ID3,C4.5,CART等算法.接下来将对ID3决策树算法 ...

最新文章

  1. C语言结构体篇 结构体
  2. layoutSubviews总结(转)
  3. big endian little endian
  4. linux 系统管理(二) 磁盘分区
  5. Prim算法和Kruskal算法
  6. avro文件导入到hive_XML到Avro的转换
  7. mysql 流程控制语句,mysql PL(procedure language)流程控制语句
  8. python的网络应用_python 网络编程的应用模块
  9. python中的super使用方法[探索4]
  10. docsify,文档生成利器!
  11. php下使用phpmailer发送邮件
  12. rs485全双工中只接一组_RS485通讯的正确接线方式
  13. Unity 实现两个向量夹角为0~360度
  14. 小功能_mianBao_电影
  15. 什么是云原生架构?云原生和应用上云不是一码事!
  16. 【6G】基于 Dyncast 的算力网络架构
  17. 使用爬虫抓取网易云音乐热门评论生成好玩的词云
  18. 2022年SCAU计算智能题库
  19. 2014年国人开发的最热门的开源软件TOP 100
  20. android音频口通信——2FSK信号调制

热门文章

  1. 禅意设计:网络简洁设计的缘起和未来
  2. 塞瓦定理,逆定理,及其引伸的证明
  3. 百度收录带www和不带www域名的不同和解决办法
  4. 一些笔记本电脑的简单配置和价格
  5. 揭秘:QQ盗号背后的产业链,惊人的暴利!
  6. 想知道香港汇丰银行如何开户吗?
  7. SQOOP 部署及导入数据到 Hive 的实际应用
  8. 易安卓十六进制数转为十进制数_十六进制转换成十进制的具体算法?
  9. 杂项 20221108 finrl 的玩法 python技巧 查看版本信息
  10. 粒子群算法求函数极值