쇼어 알고리즘

버들비·2021년 6월 9일
0

양자컴퓨터

목록 보기
4/4
post-custom-banner

What is Shor's algorithm?

다항시간 내에 인수분해를 할 수 있는 알고리즘.

In & Out

input: 양의 정수 N.
output: N=pq 인 인수 p, q

Procedure

  1. (고전 컴퓨터로) N과 서로소이며 1<a<N 인 임의의 양의 정수 a 를 고른다.

  2. (양자 컴퓨터로) f(x)=axf(x) = a^{x} mod N 이라는 주기함수에 대해, 함수의 주기 r을 구한다.

  3. (고전 컴퓨터로) 주기 r이 홀수라면 1번 절차로 돌아간다.
    r이 짝수라면 great common devisor(최대공약수), gcd(ar/21,N)gcd(a^{r/2}-1,N)gcd(ar/2+1,N)gcd(a^{r/2}+1,N) 를 계산한다. 이때 gcd가 1이거나 N이면 1번 절차로 돌아간다.
    아닌 경우, gcd가 N의 인수이다.

1번 절차의 소인수 판별과 3번 절차에서 gcd 를 구하는 계산은 고전 컴퓨터 알고리즘에서도 다항시간내에 계산이 가능하다.
하지만 2번 절차의 경우 2n2^{n} 형태로 증가하는 숫자에 대해 고전 알고리즘을 사용하면 exponential 한 계산복잡도를 가진다.
양자 컴퓨터의 경우 2n2^{n}이어도 다항시간 복잡도를 가진다.

Mathematical Formulae

Euler ϕ\phi function

ϕ(N)\phi(N) : N과 서로소(coprime)인 1부터 N 까지의 정수의 갯수.
ϕ(15)\phi(15) 에 해당하는 정수는 1, 2, 4, 7, 8, 11, 13, 14 로 ϕ(15)=8\phi(15)=8이다.

Operator U

주기함수에 대해, 다음 스텝으로 보내는 오퍼레이터를 U라고 하자.
예를 들어 a=7, N=15 인 경우, 7x7^{x} mod 15 는 1, 7, 4, 13, 1, ... 이런 주기성을 가진다.
이 경우 U1=7U|1\rangle=|7\rangle, U21=4U^{2}|1\rangle=|4\rangle... 가 된다.
일반화 해서 표현하면 다음과 같다.

Uy=aymodNU|y\rangle = |ay\mod N\rangle

U를 통해 주기성을 가지는 state들을 superposition 하면 eigenvalue 가 1인 U의 eigenstate u0|u_{0}\rangle 가 된다.

u0=1rk=0r1axmodN|u_{0}\rangle =\frac{1}{\sqrt{r}}\sum \limits_{k=0}^{r-1} |a^{x}\mod N\rangle

이때 다음과 같이 usu_{s}를 정의하면, eigenvalue 가 e(2πis)re^{\frac{(2\pi is)}{r}} 가 된다.

us=1rk=0r1e(2πiskr)axmodN|u_{s}\rangle =\frac{1}{\sqrt{r}}\sum \limits_{k=0}^{r-1} e^{(-\frac{2\pi i sk}{r})}|a^{x}\mod N\rangle

0sr10\leq s \leq r-1 이고, 만약 r이 짝수라면, eixe^{ix}의 주기성때문에 s=0r11rus=1\sum\limits_{s=0}^{r-1} \frac{1}{\sqrt{r}}|u_{s}\rangle=|1\rangle 이 된다.

Quantum Circuit

N=15, n=4, a=13 인 경우 소인수 분해를 위한 양자회로는 다음과 같다.

where fa,N=axf_{a,N} = a^{x} (mod N)
second register w|w\rangle를 target state 라고 하자.

step 0

00|0\rangle |0\rangle

step 1

[Hn0n0]0n[H^{\otimes n}|0\rangle^{\otimes n} |0\rangle]|0\rangle^{\otimes n}
=14[0+1+...+15]0\frac{1}{4}[|0\rangle + |1\rangle + ... + |15\rangle]|0\rangle

step 2

since 0z=z0\oplus z = z,
14[00130(mod15)+10131(mod15)+...+1501315(mod15)]\frac{1}{4}[|0\rangle |0\oplus 13^{0}(mod15)\rangle + |1\rangle |0\oplus 13^{1}(mod15)\rangle + ... + |15\rangle |0\oplus 13^{15}(mod15)\rangle]
=14[01+113+24+37\frac{1}{4}[|0\rangle|1\rangle +|1\rangle|13\rangle +|2\rangle|4\rangle +|3\rangle|7\rangle
+41+513+64+77+|4\rangle|1\rangle +|5\rangle|13\rangle +|6\rangle|4\rangle +|7\rangle|7\rangle
+81+913+104+117+|8\rangle|1\rangle +|9\rangle|13\rangle +|10\rangle|4\rangle +|11\rangle|7\rangle
+121+1313+144+157+|12\rangle|1\rangle +|13\rangle|13\rangle +|14\rangle|4\rangle +|15\rangle|7\rangle

step 3

after measuring w register, if 7|7\rangle is measured :
12[3+7+11+15]7\frac{1}{2}[|3\rangle + |7\rangle + |11\rangle + |15\rangle]|7\rangle

step 4

apply inverse QFT on the x register
QFTx~=x=1Ny=0N1e2πiNxyyQFT^{\dagger}|\tilde{x}\rangle = |x\rangle = \frac{1}{\sqrt{N}}\sum\limits_{y=0}^{N-1}e^{-\frac{2\pi i}{N}xy}|y\rangle
invers QFT on step 3 is
18[40+4i4484i12]\frac{1}{8}[4|0\rangle + 4i|4\rangle - 4|8\rangle -4i|12\rangle]

step 5

measuring the x|x\rangle register get 0|0\rangle or 4|4\rangle or 8|8\rangle or 12|12\rangle with equal probability of 14\frac{1}{4}

measured results peak near jNrj\frac{N}{r} for some integer jj.

If 0|0\rangle is measured: 0|0\rangle is trivial. If we measure 0|0\rangle, restart.

4|4\rangle: jNr=4j\frac{N}{r}=4\rightarrow if j=1j=1, r=4r=4 and rr is even.
ar/2a^{r/2} (mod N) = 134/213^{4/2} (mod 15) = 4
4+1=5, gcd(5,15) = 5.
4-1=3, gcd(3,15) = 3.

8|8\rangle: jNr=8j\frac{N}{r}=8\rightarrow if j=2j=2, r=4r=4 and rr is even. same above. If j=1j=1, r=2r=2,
ar/2a^{r/2} (mod N) = 132/213^{2/2} (mod 15) = 13
13+1=14, gcd(14,15) = 1.
13-1=12, gcd(12,15) = 3. 3 is factor of 15. partial solution. restart or re calculate with 15/3 = 5.

12|12\rangle: jNr=12j\frac{N}{r}=12\rightarrow if j=3j=3, r=4r=4 and rr is even. same above.

4개의 결과중 2.5개의 결과가 제대로 작동한다. 일반적으로, 제대로 작동할 확률 최소 1/2 이다.

N<2nN<2^{n} 이라면, 2n개의 큐빗을 이용해 소인수 분해가 가능하다

How Implements oracle UfU_{f}? UfU_{f} is QPE.

reference
쇼어 알고리즘

post-custom-banner

0개의 댓글