주 콘텐츠로 건너뛰기

위상 추정 절차

다음으로, 위상 추정 문제를 푸는 양자 알고리즘인 위상 추정 절차에 대해 살펴보겠습니다.

먼저 낮은 정밀도의 워밍업으로 시작하여 이 방법의 기본 직관을 설명합니다. 그런 다음 위상 추정 절차에 사용되는 중요한 양자 연산인 양자 푸리에 변환과 그 양자 Circuit 구현에 대해 다룰 것입니다. 양자 푸리에 변환을 이해한 뒤에는 위상 추정 절차를 완전한 일반성으로 기술하고 그 성능을 분석합니다.

워밍업: 낮은 정밀도로 위상 근사하기

낮은 정밀도의 위상 추정 절차 예시를 몇 가지 살펴보는 것으로 시작하겠습니다. 이를 통해 나중에 다룰 일반적인 절차의 직관을 이해할 수 있습니다.

위상 킥백 활용하기

위상 추정 문제에 대한 간단한 접근법 중 하나는 위상 킥백 현상을 기반으로 하며, 이를 통해 우리가 구하고자 하는 값 θ\theta에 관한 정보를 얻을 수 있습니다. 이 방법은 본질적으로 나중에 다룰 일반 위상 추정 절차의 단일 Qubit 버전에 해당합니다.

위상 추정 문제의 입력 중 일부로, 연산 UU에 대한 유니터리 양자 Circuit이 주어집니다. 이 Circuit의 설명을 이용하면 제어(Controlled)-UU 연산에 대한 Circuit을 만들 수 있습니다. 아래 그림에서 왼쪽은 양자 Gate로 본 연산 UU이고, 오른쪽은 Controlled-UU 연산입니다.

유니터리 연산의 비제어 버전과 제어 버전

Controlled-UU 연산에 대한 양자 Circuit을 만들려면 UU의 Circuit에 제어 Qubit을 하나 추가한 뒤, UU의 Circuit에 있는 모든 Gate를 해당 Gate의 제어 버전으로 교체하면 됩니다. 즉, 새로 추가한 하나의 제어 Qubit이 UU Circuit의 모든 Gate를 실질적으로 제어하게 됩니다. 이를 위해서는 Circuit에 있는 모든 Gate의 제어 버전이 필요하지만, 게이트 집합에 포함되어 있지 않은 경우에도 이러한 제어 연산에 대한 Circuit은 항상 구성할 수 있습니다.

이제 다음 Circuit을 생각해 보겠습니다. 여기서 맨 위 Qubit을 제외한 모든 Qubit의 입력 상태 ψ\vert\psi\rangleUU의 고유 벡터인 양자 상태입니다.

위상 추정을 위한 단일 Qubit Circuit

이 Circuit의 측정 결과 확률은 고유 벡터 ψ\vert\psi\rangle에 대응하는 UU의 고유값에 따라 달라집니다. 정확히 어떻게 달라지는지 Circuit을 자세히 분석해 봅시다.

위상 추정을 위한 단일 Qubit Circuit의 상태 분석

Circuit의 초기 상태는 다음과 같습니다.

π0=ψ0\vert\pi_0\rangle = \vert\psi\rangle \vert 0\rangle

첫 번째 Hadamard Gate가 이 상태를 다음과 같이 변환합니다.

π1=ψ+=12ψ0+12ψ1.\vert\pi_1\rangle = \vert\psi\rangle \vert +\rangle = \frac{1}{\sqrt{2}} \vert\psi\rangle \vert 0\rangle + \frac{1}{\sqrt{2}} \vert\psi\rangle \vert 1\rangle.

다음으로 Controlled-UU 연산이 수행되어 다음 상태가 됩니다.

π2=12ψ0+12(Uψ)1.\vert\pi_2\rangle = \frac{1}{\sqrt{2}} \vert\psi\rangle \vert 0\rangle + \frac{1}{\sqrt{2}} \bigl(U \vert\psi\rangle\bigr) \vert 1\rangle.

ψ\vert\psi\rangle가 고유값 λ=e2πiθ\lambda = e^{2\pi i\theta}를 갖는 UU의 고유 벡터라는 가정을 이용하면, 이 상태를 다음과 같이 다시 쓸 수 있습니다.

π2=12ψ0+e2πiθ2ψ1=ψ(120+e2πiθ21)\vert\pi_2\rangle = \frac{1}{\sqrt{2}} \vert\psi\rangle \vert 0\rangle + \frac{e^{2\pi i \theta}}{\sqrt{2}} \vert\psi\rangle \vert 1\rangle = \vert\psi\rangle \otimes \left( \frac{1}{\sqrt{2}} \vert 0\rangle + \frac{e^{2\pi i \theta}}{\sqrt{2}} \vert 1\rangle\right)

여기서 위상 킥백 현상을 관찰할 수 있습니다. 쿼리 Gate를 사용하지 않기 때문에 Deutsch 알고리즘이나 Deutsch-Jozsa 알고리즘에서와는 약간 다르게 나타나지만, 아이디어는 유사합니다.

마지막으로 두 번째 Hadamard Gate가 수행됩니다. 약간의 정리를 거치면 다음 상태를 얻습니다.

π3=ψ(1+e2πiθ20+1e2πiθ21)\vert\pi_3\rangle = \vert\psi\rangle \otimes \left( \frac{1+ e^{2\pi i \theta}}{2} \vert 0\rangle + \frac{1 - e^{2\pi i \theta}}{2} \vert 1\rangle\right)

따라서 측정 결과로 0011이 나타날 확률은 다음과 같습니다.

p0=1+e2πiθ22=cos2(πθ)p1=1e2πiθ22=sin2(πθ).\begin{aligned} p_0 &= \left\vert \frac{1+ e^{2\pi i \theta}}{2} \right\vert^2 = \cos^2(\pi\theta)\\[1mm] p_1 &= \left\vert \frac{1- e^{2\pi i \theta}}{2} \right\vert^2 = \sin^2(\pi\theta). \end{aligned}

아래는 두 가능한 결과 0011의 확률을 θ\theta의 함수로 나타낸 그래프입니다.

위상 킥백에서 나온 결과 확률

두 확률의 합은 항상 11입니다. θ=0\theta = 0일 때 측정 결과는 항상 00이고, θ=1/2\theta = 1/2일 때는 항상 11임을 알 수 있습니다. 따라서 측정 결과가 θ\theta의 정확한 값을 알려주지는 않지만, 어느 정도의 정보를 제공합니다. 만약 θ=0\theta = 0 또는 θ=1/2\theta = 1/2 중 하나라는 것이 사전에 보장된다면, 오류 없이 어느 쪽인지를 이 Circuit으로 알아낼 수 있습니다.

직관적으로, Circuit의 측정 결과를 θ\theta에 대한 "1비트 정확도" 추정값으로 생각할 수 있습니다. 다시 말해, θ\theta를 이진 표기로 나타내고 1비트로 반올림하면 다음과 같은 수가 됩니다.

0.a={0a=012a=1.0.a = \begin{cases} 0 & a = 0\\ \frac{1}{2} & a = 1. \end{cases}

측정 결과는 비트 aa에 대한 추정값으로 볼 수 있습니다. θ\theta001/21/2도 아닌 경우, 추정이 틀릴 확률이 0이 아닙니다. 하지만 00 또는 1/21/2에 가까워질수록 오류 확률은 점점 작아집니다.

이 절차에서 두 Hadamard Gate가 어떤 역할을 하는지 생각해 보는 것은 자연스럽습니다.

  • 첫 번째 Hadamard Gate는 제어 Qubit을 0\vert 0\rangle1\vert 1\rangle의 균일한 중첩 상태로 만들어, 위상 킥백이 0\vert 0\rangle 상태가 아닌 1\vert 1\rangle 상태에 대해 발생하도록 합니다. 이를 통해 측정 결과에 영향을 미치는 상대적인 위상 차이가 생깁니다. 이 과정 없이 위상 킥백이 전역적인 위상을 만들어낸다면, 측정 결과의 확률에 아무런 영향을 주지 못합니다.

  • 두 번째 Hadamard Gate는 간섭 현상을 통해 θ\theta에 관한 정보를 얻을 수 있게 해줍니다. 두 번째 Hadamard Gate 이전에 맨 위 Qubit의 상태는 다음과 같습니다.

    120+e2πiθ21,\frac{1}{\sqrt{2}} \vert 0\rangle + \frac{e^{2\pi i \theta}}{\sqrt{2}} \vert 1\rangle,

    이 상태를 측정하면 0011 각각을 확률 1/21/2로 얻게 되어, θ\theta에 대한 정보를 전혀 얻을 수 없습니다. 그러나 두 번째 Hadamard Gate를 수행하면 θ\theta가 출력 확률에 영향을 미치게 됩니다.

위상 두 배로 만들기

위의 Circuit은 위상 킥백 현상을 이용해 θ\theta를 1비트 정확도로 근사합니다. 일부 상황에서는 1비트 정확도로 충분할 수 있지만, 소인수분해를 위해서는 훨씬 높은 정확도가 필요합니다. θ\theta에 대해 더 많은 정보를 어떻게 얻을 수 있을지가 자연스러운 의문입니다.

매우 간단한 방법 중 하나는 Circuit에서 Controlled-UU 연산을 두 개의 복사본으로 교체하는 것입니다. 다음 Circuit과 같습니다.

두 배 위상 킥백을 사용하는 단일 비트 위상 추정

Controlled-UU 연산을 두 번 적용하는 것은 Controlled-U2U^2 연산과 동일합니다. ψ\vert\psi\rangle가 고유값 λ=e2πiθ\lambda = e^{2\pi i \theta}를 갖는 UU의 고유 벡터라면, 이 상태는 U2U^2의 고유 벡터이기도 하며, 이 경우 고유값은 λ2=e2πi(2θ)\lambda^2 = e^{2\pi i (2\theta)}입니다.

따라서 이 버전의 Circuit을 실행하면, θ\theta2θ2\theta로 대체된 동일한 계산을 수행하는 것과 같습니다. 아래는 θ\theta00에서 11까지 변할 때의 출력 확률을 나타낸 그래프입니다.

두 배 위상 킥백에서 나온 결과 확률

이 방법은 실제로 θ\theta에 대한 추가 정보를 제공할 수 있습니다. θ\theta의 이진 표현이 다음과 같다면

θ=0.a1a2a3\theta = 0.a_1 a_2 a_3\cdots

θ\theta를 두 배로 하면 소수점이 오른쪽으로 한 자리 이동하는 효과가 있습니다.

2θ=a1.a2a32\theta = a_1. a_2 a_3\cdots

그리고 단위 원 위에서 이동할 때 θ=1\theta = 1θ=0\theta = 0을 동일시하므로, 비트 a1a_1은 확률에 영향을 미치지 않으며, θ\theta를 2비트로 반올림했을 때 소수점 이하 두 번째 비트에 대한 추정값을 얻게 됩니다. 예를 들어, θ\theta00 또는 1/41/4 중 하나라는 것이 사전에 알려진 경우, 측정 결과를 완전히 신뢰하여 어느 쪽인지 알 수 있습니다.

하지만 이 추정을 원래의 (두 배가 아닌) 위상 킥백 Circuit에서 얻은 정보와 어떻게 결합하여 θ\theta에 대해 가능한 한 정확한 정보를 얻을 수 있는지는 즉시 명확하지 않습니다. 한 걸음 물러서서 어떻게 진행할지 생각해 봅시다.

2-Qubit 위상 추정

위의 두 가지 방법을 별도로 고려하는 대신, 다음과 같이 하나의 Circuit으로 결합해 봅시다.

2-Qubit 위상 추정의 초기 설정

제어 연산 이후의 Hadamard Gate는 제거되었으며 측정도 아직 없습니다. θ\theta에 대해 최대한 많은 정보를 얻기 위한 옵션을 고려하면서 Circuit에 추가해 나갈 것입니다.

ψ\vert\psi\rangleUU의 고유 벡터인 경우 이 Circuit을 실행하면, 아래 Qubit들의 상태는 Circuit 전체에 걸쳐 ψ\vert\psi\rangle로 유지되고, 위상은 위쪽 두 Qubit의 상태로 "킥백"됩니다. 다음 그림을 통해 Circuit을 자세히 분석해 봅시다.

2-Qubit 위상 추정의 상태 분석

상태 π1\vert\pi_1\rangle은 다음과 같이 쓸 수 있습니다.

π1=ψ12a0=01a1=01a1a0.\vert\pi_1\rangle = \vert \psi\rangle \otimes \frac{1}{2} \sum_{a_0 = 0}^1 \sum_{a_1 = 0}^1 \vert a_1 a_0 \rangle.

첫 번째 Controlled-UU 연산이 수행되면, a0a_0 (맨 위 Qubit)가 11일 때만 고유값 λ=e2πiθ\lambda = e^{2\pi i\theta}가 위상으로 킥백됩니다. a0a_000일 때는 킥백이 발생하지 않습니다. 따라서 결과 상태를 다음과 같이 표현할 수 있습니다.

π2=ψ12a0=01a1=01e2πia0θa1a0.\vert\pi_2\rangle = \vert\psi\rangle \otimes \frac{1}{2} \sum_{a_0=0}^1 \sum_{a_1=0}^1 e^{2 \pi i a_0 \theta} \vert a_1 a_0 \rangle.

두 번째와 세 번째 Controlled-UU Gate도 유사하게 동작하지만, a0a_0 대신 a1a_1에 대해, 그리고 θ\theta 대신 2θ2\theta로 대체됩니다. 결과 상태는 다음과 같습니다.

π3=ψ12a0=01a1=01e2πi(2a1+a0)θa1a0.\vert\pi_3\rangle = \vert\psi\rangle\otimes\frac{1}{2}\sum_{a_0 = 0}^1 \sum_{a_1 = 0}^1 e^{2\pi i (2 a_1 + a_0)\theta} \vert a_1 a_0 \rangle.

이진 문자열 a1a0a_1 a_0를 이진 표기로 정수 x{0,1,2,3}x \in \{0,1,2,3\}을 나타내는 것으로 보면, 즉 x=2a1+a0x = 2 a_1 + a_0로 정의하면, 이 상태를 다음과 같이 쓸 수 있습니다.

π3=ψ12x=03e2πixθx\vert\pi_3\rangle = \vert \psi\rangle \otimes \frac{1}{2} \sum_{x = 0}^3 e^{2\pi i x \theta} \vert x \rangle

우리의 목표는 이 상태에서 θ\theta에 관한 정보를 최대한 추출하는 것입니다.

이 시점에서 θ=y4\theta = \frac{y}{4} (y{0,1,2,3}y\in\{0,1,2,3\}인 정수)가 보장된 특별한 경우를 고려해 봅시다. 다시 말해, θ{0,1/4,1/2,3/4}\theta\in \{0, 1/4, 1/2, 3/4\}이므로, 이 수를 이진 표기로 .00,00, .01,01, .10,10, .1111과 같이 2비트로 정확하게 표현할 수 있습니다. 일반적으로 θ\theta가 이 네 값 중 하나가 아닐 수도 있지만, 이 특별한 경우를 생각해 보면 일반적으로 θ\theta에 관한 정보를 가장 효과적으로 추출하는 방법을 파악하는 데 도움이 됩니다.

먼저 가능한 각 값 y{0,1,2,3}y \in \{0, 1, 2, 3\}에 대한 2-Qubit 상태 벡터를 정의합니다.

ϕy=12x=03e2πix(y4)x=12x=03e2πixy4x\vert \phi_y\rangle = \frac{1}{2} \sum_{x = 0}^3 e^{2\pi i x (\frac{y}{4})} \vert x \rangle = \frac{1}{2} \sum_{x = 0}^3 e^{2\pi i \frac{x y}{4}} \vert x \rangle

지수를 단순화하면 이 벡터들을 다음과 같이 쓸 수 있습니다.

ϕ0=120+121+122+123ϕ1=120+i21122i23ϕ2=120121+122123ϕ3=120i21122+i23\begin{aligned} \vert\phi_0\rangle & = \frac{1}{2} \vert 0 \rangle + \frac{1}{2} \vert 1 \rangle + \frac{1}{2} \vert 2 \rangle + \frac{1}{2} \vert 3 \rangle \\[3mm] \vert\phi_1\rangle & = \frac{1}{2} \vert 0 \rangle + \frac{i}{2} \vert 1 \rangle - \frac{1}{2} \vert 2 \rangle - \frac{i}{2} \vert 3 \rangle \\[3mm] \vert\phi_2\rangle & = \frac{1}{2} \vert 0 \rangle - \frac{1}{2} \vert 1 \rangle + \frac{1}{2} \vert 2 \rangle - \frac{1}{2} \vert 3 \rangle \\[3mm] \vert\phi_3\rangle & = \frac{1}{2} \vert 0 \rangle - \frac{i}{2} \vert 1 \rangle - \frac{1}{2} \vert 2 \rangle + \frac{i}{2} \vert 3 \rangle \end{aligned}

이 벡터들은 서로 직교합니다. 즉, 그 중 어떤 두 벡터를 골라 내적을 계산하면 00이 됩니다. 각 벡터는 단위 벡터이기도 하므로, {ϕ0,ϕ1,ϕ2,ϕ3}\{\vert\phi_0\rangle, \vert\phi_1\rangle, \vert\phi_2\rangle, \vert\phi_3\rangle\}은 정규직교 기저가 됩니다. 따라서 이 벡터들을 완벽하게 구별하는 측정이 존재함을 바로 알 수 있습니다. 즉, 그 중 하나가 주어지지만 어느 것인지 모르는 경우, 오류 없이 어느 것인지 알아낼 수 있습니다.

양자 Circuit으로 이러한 구별을 수행하려면 먼저 표준 기저 상태를 위 네 상태로 변환하는 유니터리 연산 VV를 정의합니다.

V00=ϕ0V01=ϕ1V10=ϕ2V11=ϕ3\begin{aligned} V \vert 00 \rangle & = \vert\phi_0\rangle \\ V \vert 01 \rangle & = \vert\phi_1\rangle \\ V \vert 10 \rangle & = \vert\phi_2\rangle \\ V \vert 11 \rangle & = \vert\phi_3\rangle \end{aligned}

VV4×44\times 4 행렬로 나타내려면, VV의 열을 상태 ϕ0,,ϕ3\vert\phi_0\rangle,\ldots,\vert\phi_3\rangle로 설정하면 됩니다.

V=12(11111i1i11111i1i)V = \frac{1}{2} \begin{pmatrix} 1 & 1 & 1 & 1\\[1mm] 1 & i & -1 & -i\\[1mm] 1 & -1 & 1 & -1\\[1mm] 1 & -i & -1 & i \end{pmatrix}

이것은 특별한 행렬로, 일부 독자들은 이미 접해 보았을 것입니다. 바로 44차원 이산 푸리에 변환과 관련된 행렬입니다. 이 사실에 비추어, 이 행렬을 VV 대신 QFT4\mathrm{QFT}_4라고 부르겠습니다. QFT\mathrm{QFT}는 *양자 푸리에 변환(Quantum Fourier Transform)*의 약자로, 본질적으로 유니터리 연산으로 본 이산 푸리에 변환입니다. 양자 푸리에 변환에 대해서는 곧 더 자세히, 그리고 더 일반적인 맥락에서 다루겠습니다.

QFT4=12(11111i1i11111i1i)\mathrm{QFT}_4 = \frac{1}{2} \begin{pmatrix} 1 & 1 & 1 & 1\\[1mm] 1 & i & -1 & -i\\[1mm] 1 & -1 & 1 & -1\\[1mm] 1 & -i & -1 & i \end{pmatrix}

이 연산의 역연산을 수행하면 반대 방향, 즉 상태 ϕ0,,ϕ3\vert\phi_0\rangle,\ldots,\vert\phi_3\rangle을 표준 기저 상태 0,,3\vert 0\rangle,\ldots,\vert 3\rangle으로 변환할 수 있습니다. 이렇게 하면 측정을 통해 θ=y/4\theta = y/4를 설명하는 값 y{0,1,2,3}y\in\{0,1,2,3\}을 알 수 있습니다. 아래는 이를 수행하는 양자 Circuit의 다이어그램입니다.

2-Qubit 위상 추정

요약하면, y{0,1,2,3}y\in\{0,1,2,3\}에 대해 θ=y/4\theta = y/4인 경우 이 Circuit을 실행하면, 측정 직전 상태는 ψy\vert \psi\rangle \vert y\rangle (2비트 이진 문자열로 인코딩된 yy)가 되므로, 측정을 통해 오류 없이 값 yy를 알 수 있습니다.

이 Circuit은 θ{0,1/4,1/2,3/4}\theta \in \{0,1/4,1/2,3/4\}인 특별한 경우에 동기를 두고 있지만, UUψ\vert \psi\rangle의 임의의 선택, 따라서 원하는 임의의 θ\theta 값에 대해 실행할 수 있습니다. 아래는 임의의 θ\theta 선택에 대해 Circuit이 생성하는 출력 확률의 그래프입니다.

2-Qubit 위상 추정의 결과 확률

이는 앞서 설명한 단일 Qubit 방식에 비해 명확한 개선입니다. 완벽하지는 않아서 잘못된 답을 줄 수도 있지만, 답은 θ\theta에 가까운 y/4y/4 값으로 강하게 치우쳐 있습니다. 특히, 가장 가능성 높은 결과는 항상 θ\theta에 가장 가까운 y/4y/4 값에 해당하며 (이전과 마찬가지로 θ=0\theta = 0θ=1\theta = 1을 동일시), 그래프를 보면 xx에 대한 이 가장 가까운 값이 항상 약 40%40\%보다 높은 확률로 나타납니다. θ\theta가 두 값의 정확히 중간, 예를 들어 θ=0.375\theta = 0.375인 경우, 두 개의 동등하게 가까운 yy 값이 동일한 확률로 나타납니다.

다수 Qubit으로의 일반화 준비

하나가 아닌 두 개의 제어 Qubit을 사용하고 4차원 양자 푸리에 변환의 역연산을 함께 사용함으로써 얻은 개선을 바탕으로, 이를 더욱 확장하는 것이 자연스러운 방향입니다. 즉, 제어 Qubit을 더 추가하는 것입니다. 이렇게 하면 일반적인 위상 추정 절차를 얻을 수 있습니다. 이것이 어떻게 동작하는지 곧 살펴보겠지만, 정확하게 설명하기 위해서는 양자 푸리에 변환을 더 일반적인 맥락에서 다루어야 합니다. 즉, 다른 차원에서 어떻게 정의되는지, 그리고 mm Qubit 양자 Circuit으로 어떻게 구현(또는 역연산)할 수 있는지를 살펴볼 필요가 있습니다.

양자 푸리에 변환

양자 푸리에 변환(Quantum Fourier transform)은 임의의 양의 정수 차원 NN에 대해 정의할 수 있는 유니터리 연산입니다. 이 절에서는 이 연산의 정의와, N=2mN = 2^m일 때 mm개의 Qubit에 대해 비용 O(m2)O(m^2)의 양자 Circuit으로 구현하는 방법을 살펴봅니다.

양자 푸리에 변환을 기술하는 행렬은 NN차원 벡터에 대한 유사 연산인 *이산 푸리에 변환(discrete Fourier transform)*에서 유도됩니다. 이 연산은 다양한 관점에서 생각할 수 있습니다. 예를 들어, 선형 사상으로서 순수하게 추상적·수학적 관점에서 이산 푸리에 변환을 바라볼 수 있습니다. 또는 계산적 관점에서, NN차원 복소수 벡터(실수부와 허수부를 이진 표기법으로 인코딩한다고 가정합시다)가 주어지고, 이산 푸리에 변환을 적용해 얻은 NN차원 벡터를 계산하는 것이 목표인 관점으로 볼 수도 있습니다. 우리의 초점은 세 번째 방식, 즉 이 변환을 양자 시스템에서 수행할 수 있는 유니터리 연산으로 보는 것입니다.

주어진 입력 벡터에 대해 이산 푸리에 변환을 효율적으로 계산하는 알고리즘으로 *고속 푸리에 변환(fast Fourier transform)*이 있습니다. 신호 처리를 비롯한 다양한 분야에 응용되며, 역사상 가장 중요한 알고리즘 중 하나로 꼽힙니다. NN이 2의 거듭제곱일 때 우리가 공부할 양자 푸리에 변환의 구현은, 고속 푸리에 변환을 가능하게 하는 바로 그 기반 구조에 기초하고 있습니다.

양자 푸리에 변환의 정의

양자 푸리에 변환을 정의하기 위해, 먼저 각 양의 정수 NN에 대해 복소수 ωN\omega_N을 다음과 같이 정의합니다.

ωN=e2πiN=cos(2πN)+isin(2πN).\omega_N = e^{\frac{2\pi i}{N}} = \cos\left(\frac{2\pi}{N}\right) + i \sin\left(\frac{2\pi}{N}\right).

이 수는 복소 단위원 위에서 11에서 시작하여 반시계 방향으로 2π/N2\pi/N 라디안, 즉 원주의 1/N1/N 만큼 이동했을 때 얻는 값입니다. 몇 가지 예를 들면 다음과 같습니다.

ω1=1ω2=1ω3=12+32iω4=iω8=1+i2ω16=2+22+222iω1000.998+0.063i\begin{gathered} \omega_1 = 1\\[1mm] \omega_2 = -1\\[1mm] \omega_3 = -\frac{1}{2} + \frac{\sqrt{3}}{2} i\\[2mm] \omega_4 = i\\[1mm] \omega_8 = \frac{1+i}{\sqrt{2}}\\[3mm] \omega_{16} = \frac{\sqrt{2 + \sqrt{2}}}{2} + \frac{\sqrt{2 - \sqrt{2}}}{2} i\\[2mm] \omega_{100} \approx 0.998 + 0.063 i \end{gathered}

이제 NN차원 양자 푸리에 변환을 정의할 수 있습니다. 이 변환은 표준 기저 상태 0,,N1\vert 0\rangle,\ldots,\vert N-1\rangle에 대응하는 행과 열을 갖는 N×NN\times N 행렬로 기술됩니다. 위상 추정에는 N=2mN = 2^m이 2의 거듭제곱인 경우만 필요하지만, 이 연산은 임의의 양의 정수 NN에 대해 정의할 수 있습니다.

QFTN=1Nx=0N1y=0N1ωNxyxy\mathrm{QFT}_N = \frac{1}{\sqrt{N}} \sum_{x = 0}^{N-1} \sum_{y = 0}^{N-1} \omega_N^{xy} \vert x \rangle\langle y\vert

앞서 언급했듯이, 이것은 NN차원 이산 푸리에 변환에 대응하는 행렬입니다. 이 행렬의 정의에서는 보통 앞의 1/N1/\sqrt{N} 인수가 포함되지 않는 경우도 있지만, 유니터리 행렬을 얻으려면 이 인수를 포함해야 합니다.

다음은 작은 NN 값에 대한 양자 푸리에 변환을 행렬로 나타낸 것입니다.

QFT1=(1)\mathrm{QFT}_1 = \begin{pmatrix} 1 \end{pmatrix} QFT2=12(1111)\mathrm{QFT}_2 = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1\\[1mm] 1 & -1 \end{pmatrix} QFT3=13(11111+i321i3211i321+i32)\mathrm{QFT}_3 = \frac{1}{\sqrt{3}} \begin{pmatrix} 1 & 1 & 1\\[2mm] 1 & \frac{-1 + i\sqrt{3}}{2} & \frac{-1 - i\sqrt{3}}{2}\\[2mm] 1 & \frac{-1 - i\sqrt{3}}{2} & \frac{-1 + i\sqrt{3}}{2} \end{pmatrix} QFT4=12(11111i1i11111i1i)\mathrm{QFT}_4 = \frac{1}{2} \begin{pmatrix} 1 & 1 & 1 & 1\\[1mm] 1 & i & -1 & -i\\[1mm] 1 & -1 & 1 & -1\\[1mm] 1 & -i & -1 & i \end{pmatrix} QFT8=122(1111111111+i2i1+i211i2i1i21i1i1i1i11+i2i1+i211i2i1i21111111111i2i1i211+i2i1+i21i1i1i1i11i2i1i211+i2i1+i2)\mathrm{QFT}_8 = \frac{1}{2\sqrt{2}} \begin{pmatrix} 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1\\[2mm] 1 & \frac{1+i}{\sqrt{2}} & i & \frac{-1+i}{\sqrt{2}} & -1 & \frac{-1-i}{\sqrt{2}} & -i & \frac{1-i}{\sqrt{2}}\\[2mm] 1 & i & -1 & -i & 1 & i & -1 & -i\\[2mm] 1 & \frac{-1+i}{\sqrt{2}} & -i & \frac{1+i}{\sqrt{2}} & -1 & \frac{1-i}{\sqrt{2}} & i & \frac{-1-i}{\sqrt{2}}\\[2mm] 1 & -1 & 1 & -1 & 1 & -1 & 1 & -1\\[2mm] 1 & \frac{-1-i}{\sqrt{2}} & i & \frac{1-i}{\sqrt{2}} & -1 & \frac{1+i}{\sqrt{2}} & -i & \frac{-1+i}{\sqrt{2}}\\[2mm] 1 & -i & -1 & i & 1 & -i & -1 & i\\[2mm] 1 & \frac{1-i}{\sqrt{2}} & -i & \frac{-1-i}{\sqrt{2}} & -1 & \frac{-1+i}{\sqrt{2}} & i & \frac{1+i}{\sqrt{2}}\\[2mm] \end{pmatrix}

특히, QFT2\mathrm{QFT}_2는 아다마르(Hadamard) 연산의 다른 이름임을 알 수 있습니다.

유니터리성

임의의 NN에 대해 QFTN\mathrm{QFT}_N이 유니터리임을 확인해 봅시다. 한 가지 방법은 열들이 정규직교 기저를 이룸을 보이는 것입니다. y=0y = 0부터 y=N1y = N-1까지, 열 번호 yy에 대응하는 벡터를 다음과 같이 정의할 수 있습니다.

ϕy=1Nx=0N1ωNxyx.\vert\phi_y\rangle = \frac{1}{\sqrt{N}} \sum_{x = 0}^{N-1} \omega_N^{xy} \vert x \rangle.

임의의 두 벡터의 내적을 계산하면 다음과 같습니다.

ϕzϕy=1Nx=0N1ωNx(yz)\langle \phi_z \vert \phi_y \rangle = \frac{1}{N} \sum_{x = 0}^{N-1} \omega_N^{x (y - z)}

이러한 합은 등비수열의 처음 NN항의 합에 관한 다음 공식을 이용해 계산할 수 있습니다.

1+α+α2++αN1={αN1α1if α1Nif α=11 + \alpha + \alpha^2 + \cdots + \alpha^{N-1} = \begin{cases} \frac{\alpha^N - 1}{\alpha - 1} & \text{if } \alpha\neq 1\\[2mm] N & \text{if } \alpha=1 \end{cases}

구체적으로, α=ωNyz\alpha = \omega_N^{y-z}로 놓고 이 공식을 사용합니다. y=zy = z이면 α=1\alpha = 1이므로, 공식을 적용하고 NN으로 나누면

ϕyϕy=1\langle \phi_y \vert \phi_y \rangle = 1

을 얻습니다.

yzy\neq z이면 α1\alpha \neq 1이므로, 공식에 의해

ϕzϕy=1NωNN(yz)1ωNyz1=1N11ωNyz1=0\langle \phi_z \vert \phi_y \rangle = \frac{1}{N} \frac{\omega_N^{N(y-z)} - 1}{\omega_N^{y-z} - 1} = \frac{1}{N} \frac{1 - 1}{\omega_N^{y-z} - 1} = 0

이 됩니다.

이렇게 되는 이유는 ωNN=e2πi=1\omega_N^N = e^{2\pi i} = 1이므로 ωNN(yz)=1yz=1\omega_N^{N(y-z)} = 1^{y-z} = 1이 되어 분자가 00이 되는 반면, ωNyz1\omega_N^{y-z} \neq 1이므로 분모는 00이 아니기 때문입니다. 직관적으로, 단위원 위에 고루 분포된 점들을 모두 더하면 서로 상쇄되어 00이 된다고 생각할 수 있습니다.

따라서 {ϕ0,,ϕN1}\{\vert\phi_0\rangle,\ldots,\vert\phi_{N-1}\rangle\}이 정규직교 집합임을 확인하였고,

ϕzϕy={1y=z0yz,\langle \phi_z \vert \phi_y \rangle = \begin{cases} 1 & y=z\\ 0 & y\neq z, \end{cases}

이로부터 QFTN\mathrm{QFT}_N이 유니터리임을 알 수 있습니다.

제어 위상 Gate

양자 Circuit으로 양자 푸리에 변환을 구현하려면 제어 위상(controlled-phase) Gate를 사용해야 합니다. *위상 연산(phase operation)*은 실수 α\alpha에 대해 다음과 같은 형태의 단일 Qubit 유니터리 연산입니다.

Pα=(100eiα)P_{\alpha} = \begin{pmatrix} 1 & 0\\[1mm] 0 & e^{i\alpha} \end{pmatrix}

이 Gate의 제어 버전은 다음과 같은 행렬을 갖습니다.

CPα=(100001000010000eiα)CP_{\alpha} = \begin{pmatrix} 1 & 0 & 0 & 0\\[1mm] 0 & 1 & 0 & 0\\[1mm] 0 & 0 & 1 & 0\\[1mm] 0 & 0 & 0 & e^{i\alpha} \end{pmatrix}

이 제어 Gate에서는 어느 Qubit이 제어이고 어느 Qubit이 대상인지가 사실 중요하지 않습니다. 두 가지 경우가 동치이기 때문입니다. 양자 Circuit 다이어그램에서 이 Gate를 나타내는 데는 다음 기호들 중 어느 것이든 사용할 수 있습니다.

양자 Circuit 다이어그램에서의 제어 위상 Gate 표현

세 번째 형태에서는 편의에 따라 α\alpha 레이블을 제어선 옆이나 아래쪽 제어 표시 아래에 놓기도 합니다.

N=2mN = 2^m이고 m2m\geq 2일 때 양자 푸리에 변환을 수행하려면, 표준 기저 상태에 대해 다음과 같이 작용하는 mm Qubit 연산을 수행해야 합니다.

yaω2mayya,\vert y \rangle \vert a \rangle \mapsto \omega_{2^m}^{ay} \vert y \rangle \vert a \rangle,

여기서 aa는 비트이고 y{0,,2m11}y \in \{0,\ldots,2^{m-1} - 1\}m1m-1비트 이진 표기법으로 인코딩된 수입니다. 이는 m=5m=5인 경우를 예시로 하여 다음을 일반화하면 제어 위상 Gate로 구현할 수 있습니다.

위상 주입을 위한 양자 Circuit 다이어그램

일반적으로, m2m\geq 2인 임의의 경우에 대해 비트 aa에 해당하는 맨 위 Qubit을 제어로 보고, yy의 최하위 비트에 해당하는 Qubit에는 α=π/2m1\alpha = \pi/2^{m-1}, yy의 최상위 비트에 해당하는 Qubit에는 α=π2\alpha = \frac{\pi}{2}의 위상 Gate PαP_{\alpha}를 적용합니다. 이 제어 위상 Gate들은 서로 교환 가능하며 어떤 순서로도 수행할 수 있습니다.

QFT의 Circuit 구현

이제 차원 N=2mN = 2^m22의 거듭제곱일 때 양자 푸리에 변환을 Circuit으로 구현하는 방법을 살펴보겠습니다. 양자 푸리에 변환을 구현하는 방법은 사실 여러 가지가 있지만, 이 방법이 알려진 것 중 가장 단순하다고 할 수 있습니다. 양자 푸리에 변환을 양자 Circuit으로 구현하는 방법을 알면, 그 역연산을 구현하는 것도 간단합니다. 각 Gate를 역연산(즉, 켤레 전치)으로 교체하고 Gate를 역순으로 적용하면 됩니다. 단일 Gate만으로 구성된 모든 양자 Circuit은 이 방법으로 역연산할 수 있습니다.

이 구현은 재귀적 특성을 가지므로, 재귀적인 방식으로 설명하는 것이 가장 자연스럽습니다. 기저 사례는 m=1m=1이며, 이 경우 양자 푸리에 변환은 하다마르(Hadamard) 연산입니다.

m2m \geq 2일 때 mm개의 Qubit에 대해 양자 푸리에 변환을 수행하려면, 다음 단계를 따릅니다. 각 단계의 동작은 표준 기저 상태 xa\vert x \rangle \vert a\rangle에 대해 설명하며, 여기서 x{0,,2m11}x\in\{0,\ldots,2^{m-1} - 1\}은 이진 표기법으로 m1m-1비트로 인코딩된 정수이고 aa는 단일 비트입니다.

  1. 먼저 하위/왼쪽의 m1m-1개 Qubit에 2m12^{m-1}차원 양자 푸리에 변환을 적용하여 다음 상태를 얻습니다:

    (QFT2m1x)a=12m1y=02m11ω2m1xyya.\Bigl(\mathrm{QFT}_{2^{m-1}} \vert x \rangle\Bigr) \vert a\rangle = \frac{1}{\sqrt{2^{m-1}}} \sum_{y = 0}^{2^{m-1} - 1} \omega_{2^{m-1}}^{xy} \vert y \rangle \vert a \rangle.

    이는 단일 Qubit에 대한 하다마르 연산을 기저 사례로 삼아, 한 Qubit 적은 경우에 대해 이 방법을 재귀적으로 적용함으로써 수행됩니다.

  2. 상위/오른쪽 Qubit을 제어로 사용하여 나머지 m1m-1개 Qubit의 각 표준 기저 상태 y\vert y\rangle에 위상 ω2my\omega_{2^m}^y를 주입하고(위에서 설명한 방법으로), 다음 상태를 얻습니다:

    12m1y=02m11ω2m1xyω2mayya.\frac{1}{\sqrt{2^{m-1}}} \sum_{y = 0}^{2^{m-1} - 1} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} \vert y \rangle \vert a \rangle.
  3. 상위/오른쪽 Qubit에 하다마르 Gate를 수행하여 다음 상태를 얻습니다:

    12my=02m11b=01(1)abω2m1xyω2mayyb.\frac{1}{\sqrt{2^{m}}} \sum_{y = 0}^{2^{m-1} - 1} \sum_{b=0}^1 (-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} \vert y \rangle \vert b \rangle.
  4. Qubit의 순서를 치환하여 최하위 비트가 최상위 비트가 되도록 하고, 나머지는 위/오른쪽으로 이동합니다:

    12my=02m11b=01(1)abω2m1xyω2mayby.\frac{1}{\sqrt{2^{m}}} \sum_{y = 0}^{2^{m-1} - 1} \sum_{b=0}^1 (-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} \vert b \rangle \vert y \rangle.

예를 들어, N=32=25N = 32 = 2^5일 때 얻는 Circuit은 다음과 같습니다. 이 다이어그램에서 Qubit에는 명확성을 위해 입력에 대한 표준 기저 벡터 xa\vert x\rangle \vert a\rangle와 출력에 대한 by\vert b\rangle \vert y\rangle에 해당하는 이름이 붙어 있습니다.

32차원 양자 푸리에 변환의 양자 Circuit 다이어그램

분석

방금 설명한 Circuit이 2m2^m차원 양자 푸리에 변환을 구현함을 검증하기 위해 필요한 핵심 공식은 다음과 같습니다:

(1)abω2m1xyω2may=ω2m(2x+a)(2m1b+y).(-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} = \omega_{2^m}^{(2x+ a)(2^{m-1}b + y)}.

이 공식은 정수 a,a, b,b, x,x, yy의 임의 선택에 대해 성립하지만, a,b{0,1}a,b\in\{0,1\}이고 x,y{0,,2m11}x,y\in\{0,\ldots,2^{m-1}-1\}인 경우에만 필요합니다. 우변의 지수에서 곱을 전개하여 확인할 수 있습니다.

ω2m(2x+a)(2m1b+y)=ω2m2mxbω2m2xyω2m2m1abω2may=(1)abω2m1xyω2may, \omega_{2^m}^{(2x+ a)(2^{m-1}b + y)} = \omega_{2^m}^{2^m xb} \omega_{2^m}^{2xy} \omega_{2^m}^{2^{m-1}ab} \omega_{2^m}^{ay} = (-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay},

여기서 두 번째 등호는

ω2m2mxb=(ω2m2m)xb=1xb=1\omega_{2^m}^{2^m xb} = \bigl(\omega_{2^m}^{2^m}\bigr)^{xb} = 1^{xb} = 1

이라는 관찰을 이용합니다.

2m2^m차원 양자 푸리에 변환은 모든 u{0,,2m1}u\in\{0,\ldots,2^m - 1\}에 대해 다음과 같이 정의됩니다.

QFT2mu=12mv=02m1ω2muvv\mathrm{QFT}_{2^m} \vert u\rangle = \frac{1}{\sqrt{2^m}} \sum_{v = 0}^{2^m - 1} \omega_{2^m}^{uv} \vert v\rangle

uuvv

u=2x+av=2m1b+y\begin{aligned} u & = 2x + a\\ v & = 2^{m-1}b + y \end{aligned}

(a,b{0,1}a,b\in\{0,1\}이고 x,y{0,,2m11}x,y\in\{0,\ldots,2^{m-1} - 1\})로 쓰면 다음을 얻습니다.

QFT2m2x+a=12my=02m11b=01ω2m(2x+a)(2m1b+y)b2m1+y=12my=02m11b=01(1)abω2m1xyω2mayb2m1+y.\begin{aligned} \mathrm{QFT}_{2^m} \vert 2x + a\rangle & = \frac{1}{\sqrt{2^m}} \sum_{y = 0}^{2^{m-1} - 1} \sum_{b=0}^1 \omega_{2^m}^{(2x+ a)(2^{m-1}b + y)} \vert b 2^{m-1} + y\rangle\\[2mm] & = \frac{1}{\sqrt{2^m}} \sum_{y = 0}^{2^{m-1} - 1} \sum_{b=0}^1 (-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} \vert b 2^{m-1} + y\rangle. \end{aligned}

마지막으로, 표준 기저 상태 xa\vert x \rangle \vert a\rangleby\vert b \rangle \vert y \rangle{0,,2m1}\{0,\ldots,2^m-1\} 범위의 정수에 대한 이진 인코딩으로 생각하면,

xa=2x+aby=2m1b+y,\begin{aligned} \vert x \rangle \vert a\rangle & = \vert 2x + a \rangle\\ \vert b \rangle \vert y \rangle & = \vert 2^{m-1}b + y\rangle, \end{aligned}

위 Circuit이 필요한 연산을 구현함을 알 수 있습니다. 양자 푸리에 변환을 수행하는 이 방법이 놀랍게 느껴진다면, 실제로 그럴 만합니다. 이것은 본질적으로 양자 Circuit 형태의 고속 푸리에 변환(FFT)입니다.

마지막으로, 방금 설명한 Circuit에서 사용되는 Gate의 수를 세어 보겠습니다. 제어-위상 Gate는 이전 수업에서 다룬 표준 Gate 집합에 포함되지 않지만, 우선 이를 무시하고 각각을 단일 Gate로 간주하여 계산하겠습니다.

mm의 각 가능한 선택에 대해 필요한 Gate 수를 sms_m이라 하겠습니다. m=1m=1이면 양자 푸리에 변환은 하다마르 연산이므로,

s1=1.s_1 = 1.

m2m\geq 2이면 위 Circuit에서 m1m-1개 Qubit에 대한 양자 푸리에 변환에 sm1s_{m-1}개의 Gate, m1m-1개의 제어-위상 Gate, 하다마르 Gate 1개, m1m-1개의 스왑 Gate가 필요하므로,

sm=sm1+(2m1).s_m = s_{m-1} + (2m - 1).

합산하여 닫힌 형식의 식을 구하면:

sm=k=1m(2k1)=m2.s_m = \sum_{k = 1}^m (2k - 1) = m^2.

실제로는 이 방법에서 설명하는 만큼 많은 스왑 Gate가 필요하지 않습니다. Gate를 약간 재배열하면 모든 스왑 Gate를 오른쪽으로 밀어낼 수 있고, 필요한 스왑 Gate 수를 m/2\lfloor m/2\rfloor개로 줄일 수 있습니다. 점근적으로 이것이 크게 개선된 것은 아닙니다: QFT2m\mathrm{QFT}_{2^m}을 수행하는 Circuit의 크기는 여전히 O(m2)O(m^2)입니다.

표준 Gate 집합의 Gate만을 사용하여 양자 푸리에 변환을 구현하려면, 각 제어-위상 Gate를 집합에 있는 Gate로 만들거나 근사해야 합니다. 필요한 Gate 수는 요구하는 정확도에 따라 달라지지만, mm의 함수로 보면 총 비용은 여전히 이차함수적입니다.

사실 PαP_{\alpha}α\alpha가 매우 작을 때 항등 연산에 매우 가깝다는 사실을 이용하면 — 즉 제어-위상 Gate 대부분을 그냥 생략해도 정확도 손실이 크지 않다는 점을 활용하여 — 이차보다 적은 수의 Gate로 양자 푸리에 변환을 상당히 정밀하게 근사하는 것도 가능합니다.

일반적인 절차와 분석

이제 위상 추정 절차를 일반적인 형태로 살펴보겠습니다. 아이디어는 위에서 고려한 2 Qubit 버전의 위상 추정을 아래 다이어그램이 제시하는 자연스러운 방식으로 확장하는 것입니다.

위상 추정 절차

위쪽에 새로운 제어 Qubit이 추가될 때마다 단일 연산 UU를 수행하는 횟수가 두 배가 됩니다. 이는 각 제어-단일 연산에서 UU의 지수로 다이어그램에 표시되어 있습니다.

제어-UkU^k 연산을 구현하는 가장 단순한 방법은 제어-UU 연산을 kk번 반복하는 것입니다. 이 방법을 사용한다면, 제어 Qubit을 추가하는 것이 Circuit 크기에 상당한 영향을 미친다는 점을 인식해야 합니다. 다이어그램처럼 mm개의 제어 Qubit이 있을 경우 총 2m12^m - 1번의 제어-UU 연산이 필요합니다. 이는 mm이 증가함에 따라 상당한 계산 비용이 발생함을 의미합니다. 하지만 동시에 θ\theta에 대한 훨씬 더 정확한 근사가 가능해집니다.

그러나 일부 UU의 선택에 대해서는 UU에 대한 Circuit을 단순히 kk번 반복하는 것보다 더 효율적인 방식으로 큰 kk 값에 대한 UkU^k 연산을 구현하는 Circuit을 만들 수 있다는 점도 중요합니다. 이에 대한 구체적인 예는 뒤에서 정수 인수분해의 맥락에서 살펴볼 것이며, 이전 단원에서 설명한 모듈러 지수화의 효율적인 알고리즘이 여기서 활약합니다.

이제 앞서 설명한 Circuit을 분석해 보겠습니다. 역 양자 푸리에 변환 직전의 상태는 다음과 같습니다:

12mx=02m1(Uxψ)x=ψ12mx=02m1e2πixθx.\frac{1}{\sqrt{2^m}} \sum_{x = 0}^{2^m - 1} \bigl( U^x \vert\psi\rangle \bigr) \vert x\rangle = \vert\psi\rangle \otimes \frac{1}{\sqrt{2^m}} \sum_{x = 0}^{2^m - 1} e^{2\pi i x\theta} \vert x\rangle.

특수한 경우

m=2m=2 경우에서 했던 것과 유사하게, 먼저 y{0,,2m1}y\in\{0,\ldots,2^m-1\}에 대해 θ=y/2m\theta = y/2^m인 특수한 경우를 고려합니다. 이 경우 역 양자 푸리에 변환 이전의 상태는 다음과 같이 다르게 쓸 수 있습니다:

ψ12mx=02m1e2πixy2mx=ψ12mx=02m1ω2mxyx=ψQFT2my.\vert\psi\rangle \otimes \frac{1}{\sqrt{2^m}} \sum_{x = 0}^{2^m - 1} e^{2\pi i \frac{xy}{2^m}} \vert x\rangle = \vert\psi\rangle \otimes \frac{1}{\sqrt{2^m}} \sum_{x = 0}^{2^m - 1} \omega_{2^m}^{xy} \vert x\rangle = \vert\psi\rangle \otimes \mathrm{QFT}_{2^m} \vert y\rangle.

따라서 역 양자 푸리에 변환을 적용하면 상태는

ψy\vert\psi\rangle \vert y\rangle

가 되고, 측정을 통해 yy(이진 부호화된 값)가 드러납니다.

확률의 경계

θ\theta가 정수 yy에 대해 y/2my/2^m의 형태를 취하지 않는 다른 값인 경우, 측정 결과가 확정적이지 않습니다. 하지만 서로 다른 결과에 대한 확률의 경계를 증명할 수 있습니다. 이어서 0θ<10\leq \theta < 1을 만족하는 임의의 θ\theta를 고려하겠습니다.

역 양자 푸리에 변환을 수행한 후 Circuit의 상태는 다음과 같습니다:

ψ12my=02m1x=02m1e2πix(θy/2m)y.\vert \psi \rangle \otimes \frac{1}{2^m} \sum_{y=0}^{2^m - 1} \sum_{x=0}^{2^m-1} e^{2\pi i x (\theta - y/2^m)} \vert y\rangle.

따라서 위쪽 mm개의 Qubit에 대한 측정을 수행하면 각 결과 yy가 다음 확률로 나타납니다:

py=12mx=02m1e2πix(θy/2m)2.p_y = \left\vert \frac{1}{2^m} \sum_{x=0}^{2^m - 1} e^{2\pi i x (\theta - y/2^m)} \right\vert^2.

이 확률들을 더 잘 이해하기 위해, 앞서 살펴본 등비급수의 첫 항들의 합에 대한 공식을 다시 사용합니다.

1+α+α2++αN1={αN1α1if α1Nif α=11 + \alpha + \alpha^2 + \cdots + \alpha^{N-1} = \begin{cases} \frac{\alpha^N - 1}{\alpha - 1} & \text{if } \alpha\neq 1\\[2mm] N & \text{if } \alpha=1 \end{cases}

pyp_y 공식에 나타나는 합은 α=e2πi(θy/2m)\alpha = e^{2\pi i (\theta - y/2^m)}으로 놓아 단순화할 수 있습니다. 다음과 같은 결과를 얻습니다.

x=02m1e2πix(θy/2m)={2mθ=y/2me2πi(2mθy)1e2πi(θy/2m)1θy/2m\sum_{x=0}^{2^m - 1} e^{2\pi i x (\theta - y/2^m)} = \begin{cases} 2^m & \theta = y/2^m\\[2mm] \frac{e^{2\pi i (2^m \theta - y)} - 1}{e^{2\pi i (\theta - y/2^m)} - 1} & \theta\neq y/2^m \end{cases}

따라서 θ=y/2m\theta = y/2^m인 경우 py=1p_y = 1임을 알 수 있으며(이 특수한 경우에서 이미 알고 있었던 것처럼), θy/2m\theta \neq y/2^m인 경우에는

py=122me2πi(2mθy)1e2πi(θy/2m)12p_y = \frac{1}{2^{2m}} \left\vert \frac{e^{2\pi i (2^m \theta - y)} - 1}{e^{2\pi i (\theta - y/2^m)} - 1}\right\vert^2

임을 알 수 있습니다.

단위원 위에서 호의 길이와 현의 길이가 어떻게 관련되는지를 생각하면 이 확률들에 대해 더 많은 것을 알 수 있습니다. 다음은 임의의 실수 δ[12,12]\delta\in \bigl[ -\frac{1}{2},\frac{1}{2}\bigr]에 대해 필요한 관계를 보여주는 그림입니다.

호와 현의 길이 관계 그림

먼저, 현의 길이(파란색)는 호의 길이(보라색)보다 클 수 없습니다:

e2πiδ12πδ.\bigl\vert e^{2\pi i \delta} - 1\bigr\vert \leq 2\pi\vert\delta\vert.

반대 방향으로 이 길이들을 비교하면, 호의 길이 대 현의 길이의 비율은 δ=±1/2\delta = \pm 1/2일 때 가장 크며, 이 경우 그 비율은 원의 반둘레를 지름으로 나눈 값인 π/2\pi/2입니다. 따라서 다음이 성립합니다:

2πδe2πiδ1π2,\frac{2\pi\vert\delta\vert}{\bigl\vert e^{2\pi i \delta} - 1\bigr\vert} \leq \frac{\pi}{2},

그러므로

e2πiδ14δ.\bigl\vert e^{2\pi i \delta} - 1\bigr\vert \geq 4\vert\delta\vert.

이 관계들에 기반한 분석은 다음 두 가지 사실을 드러냅니다.

  1. θ\theta가 실수이고 y{0,,2m1}y\in \{0,\ldots,2^m-1\}

    θy2m2(m+1)\Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert \leq 2^{-(m+1)}

    을 만족한다고 가정합니다.

    이는 y/2my/2^mθ\theta에 대한 최선의 mm비트 근사이거나, 정확히 y/2my/2^m(y1)/2m(y-1)/2^m 또는 (y+1)/2m(y+1)/2^m 사이의 중간에 위치함을 의미합니다. 따라서 θ\theta에 대한 두 최선의 근사 중 하나입니다.

    이 경우 pyp_y가 꽤 크다는 것을 증명하겠습니다. 고려하는 가정으로부터 2mθy1/2\vert 2^m \theta - y \vert \leq 1/2이 따라오므로, 호와 현의 길이에 관한 두 번째 관찰을 사용하여 다음을 결론지을 수 있습니다:

    e2πi(2mθy)142mθy=42mθy2m.\left\vert e^{2\pi i (2^m \theta - y)} - 1\right\vert \geq 4 \vert 2^m \theta - y \vert = 4 \cdot 2^m \cdot \Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert.

    또한 호와 현의 길이에 관한 첫 번째 관찰을 사용하여 다음을 결론지을 수 있습니다:

    e2πi(θy/2m)12πθy2m.\left\vert e^{2\pi i (\theta - y/2^m)} - 1\right\vert \leq 2\pi \Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert.

    이 두 부등식을 pyp_y에 적용하면 다음이 드러납니다:

    py122m1622m4π2=4π20.405.p_y \geq \frac{1}{2^{2m}} \frac{16 \cdot 2^{2m}}{4 \pi^2} = \frac{4}{\pi^2} \approx 0.405.

    이는 앞서 m=2m=2 버전의 위상 추정에서 최선의 결과가 40%40\%보다 높은 확률로 나타난다는 관찰을 설명해 줍니다. 정확히는 40%40\%가 아니라 4/π24/\pi^2이며, 실제로 이 경계는 모든 mm 선택에 대해 성립합니다.

  2. 이제 y{0,,2m1}y\in \{0,\ldots,2^m-1\}

    2mθy2m122^{-m} \leq \Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert \leq \frac{1}{2}

    을 만족한다고 가정합니다.

    이는 θ\thetay/2my/2^m 사이에 θ\theta에 대한 더 좋은 근사 z/2mz/2^m이 존재함을 의미합니다.

    이번에는 pyp_y가 너무 크지 않다는 것을 증명하겠습니다. 단위원 위의 임의의 두 점은 절댓값 차이가 최대 22라는 사실로부터 다음과 같은 간단한 관찰을 시작할 수 있습니다:

    e2πi(2mθy)12.\left\vert e^{2\pi i (2^m \theta - y)} - 1\right\vert \leq 2.

    또한 위에서 언급한 호와 현의 길이에 관한 두 번째 관찰을 이번에는 pyp_y의 분모에 적용하여 다음을 결론지을 수 있습니다:

    e2πi(θy/2m)14θy2m42m.\left\vert e^{2\pi i (\theta - y/2^m)} - 1\right\vert \geq 4\Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert \geq 4 \cdot 2^{-m}.

    두 부등식을 결합하면 다음이 드러납니다:

    py122m41622m=14.p_y \leq \frac{1}{2^{2m}} \frac{4}{16 \cdot 2^{-2m}} = \frac{1}{4}.

    이 경계는 우리의 목적에는 충분하지만 다소 거칩니다. 실제 확률은 보통 1/41/4보다 훨씬 낮습니다.

이 분석에서 중요한 결론은, θ\theta에 대한 매우 가까운 근사가 나타날 가능성이 높다는 것입니다. 즉, 최선의 mm비트 근사를 40%40\%보다 높은 확률로 얻을 수 있으며, 2m2^{-m} 이상 벗어난 근사는 나타날 가능성이 낮아 확률 상한이 25%25\%입니다.

이러한 보장이 주어지면, 위상 추정 절차를 여러 번 반복하여 θ\theta에 관한 통계적 증거를 수집함으로써 신뢰도를 높일 수 있습니다. 하단 Qubit 모음의 상태 ψ\vert\psi\rangle은 위상 추정 절차에 의해 변하지 않으므로, 원하는 만큼 절차를 반복해서 사용할 수 있다는 점을 주목하는 것이 중요합니다. 특히, 매번 Circuit을 실행할 때마다 40%40\%보다 높은 확률로 θ\theta에 대한 최선의 mm비트 근사를 얻으며, 2m2^{-m} 이상 벗어날 확률은 25%25\%로 경계가 지어집니다. Circuit을 여러 번 실행하고 가장 자주 나타나는 결과를 취한다면, 가장 자주 나타나는 결과가 최대 25%25\%의 확률로만 발생하는 것일 가능성은 극히 낮습니다. 결과적으로 θ\theta 값으로부터 1/2m1/2^m 이내에 있는 근사 y/2my/2^m을 매우 높은 확률로 얻을 수 있습니다. 실제로 1/2m1/2^m보다 더 크게 벗어날 가능성은 절차를 반복하는 횟수에 따라 지수적으로 감소합니다.

다음은 m=3m = 3m=4m=4일 때 연속된 세 가지 yy 값에 대한 확률을 θ\theta의 함수로 나타낸 두 그래프입니다. (명확성을 위해 세 가지 결과만 표시했습니다. 다른 결과에 대한 확률은 동일한 기본 함수를 순환 이동하여 구할 수 있습니다.)

3-Qubit 위상 추정의 결과 확률을 보여주는 그래프

4-Qubit 위상 추정의 결과 확률을 보여주는 그래프